Can't mount /dev/mtdblock# - looking for clue ?

David H. Lynch Jr. dhlii at dlasys.net
Fri Dec 15 15:00:24 EST 2006


    I am improving the BSP for the Pico E12/E14
    I have developed a map driver for the onboard Spansion mirrobit nor
flash - A driver was required because the flash is accesible to boht the
host and target and  the target has to map the flash into its memory to
access it. I am testing the flash map driver  and implimenting a
filesystem driver for Pico's filesystem.

    The mtd map driver seems to pass simple tests - I can hexdump
selected regions of /dev/mtd0 and I get what I expect.

    I am now trying to work on the PicoFS filesystem driver. I have lots
of debugging in the PicoFS driver so attempting to do anything should
spray the console with output.

    When I try to mount -t picofs -r /dev/mtdblock0 /mnt

    I get "mount: Mounting /dev/mtdblock0 on /mnt failed: No such device"

    I have CONFIG_MTD_BLOCK enabled.

    I have tried with and without partitioning in the map driver with
the same results.

    cut and past of my most recent attempt is below.

    Thanks in advance.
===========================================================================================



Loading MonitorK.elf.
Pico Monitor V3.9.2.5 Dec  8 2006 10:05:42 10000000.
Loading zImage.elf.
Calling 00800000, flags=0
Config Options: PICO_DEBUG PICO_EXPERIMENTAL PICO_DISABLE_MCE MTD_PICO
SERIAL_UARTLITE SERIAL_UARTLITE_PICO SERIAL_KEYHOLE
SERIAL_KEYHOLE_CONSOLE PICOFS

loaded at:     00800000 00AC014C
board data at: 0FFF0030 0FFF005C
relocated to:  00804060 0080408C

zimage at:     00804F43 00ABD9F7
avail ram:     00AC1000 0FFFFFFF

Linux/PPC load:
commandline:   root=/dev/ram
Uncompressing Linux...done.
Now booting the kernel

Linux version 2.6.19-g2b5f6dcc-dirty (root at pico.dlasys.net) (gcc version
3.4.1) #10 Sat Dec 9 05:44:54 EST 2006
Pico Virtex-4 port
Port by DLA Systems (info at dlasys.net)
Zone PFN ranges:
  DMA             0 ->    65535
  Normal      65535 ->    65535
early_node_map[1] active PFN ranges
    0:        0 ->    65535
Built 1 zonelists.  Total pages: 65024
Kernel command line:   root=/dev/ram
Xilinx INTC #0 at 0x41200000 mapped to 0xF5FFD000
PID hash table entries: 1024 (order: 10, 4096 bytes)
Dentry cache hash table entries: 32768 (order: 5, 131072 bytes)
Inode-cache hash table entries: 16384 (order: 4, 65536 bytes)
Memory: 255488k available (1344k kernel code, 644k data, 2056k init, 0k
highmem)
Mount-cache hash table entries: 512
NET: Registered protocol family 16
            
NET: Registered protocol family 2
IP route cache hash table entries: 2048 (order: 1, 8192 bytes)
TCP established hash table entries: 8192 (order: 3, 32768 bytes)
TCP bind hash table entries: 4096 (order: 2, 16384 bytes)
TCP: Hash tables configured (established 8192 bind 4096)
TCP reno registered
io scheduler noop registered (default)
Serial: Xilinx uartlite driver $Revision: 0.10 $ 1 ports
Serial: Pico keyhole driver $Revision: 0.20 $
ttyS0 at MMIO 0x70000000 (irq = -1) is a keyhole
RAMDISK driver initialized: 16 RAM disks of 8192K size 1024 blocksize
pico-Flash.0: Found 1 x16 devices at 0x0 in 16-bit bank
 Amd/Fujitsu Extended Query Table at 0x0040
pico-Flash.0: CFI does not contain boot bank location. Assuming top.
number of CFI chips: 1
cfi_cmdset_0002: Disabling erase-suspend-program due to code brokenness.
picoFlash: info->nr_parts=2
picoFlash: partsz
picoFlash: pico_partitions[0].size=02000000
picoFlash: pico_partitions[0].offset=00000000
picoFlash: pico_partitions[1].size=02000000
picoFlash: pico_partitions[1].offset=02000000
Creating 2 MTD partitions on "pico-Flash.0":
0x00000000-0x02000000 : "PicoFS"
0x02000000-0x04000000 : "JFFS2"
TCP cubic registered
NET: Registered protocol family 17
Freeing unused kernel memory: 2056k init
command='/bin/sh' action='2' terminal='/dev/ttyS0'

command='/etc/init.d/rcS' action='1' terminal='/dev/ttyS0'

command='/sbin/init' action='128' terminal='/dev/ttyS0'

command='/sbin/reboot' action='32' terminal='/dev/ttyS0'

command='/sbin/swapoff -a 2>/dev/null' action='64' terminal='/dev/ttyS0'

command='/bin/umount -a -r' action='64' terminal='/dev/ttyS0'

Starting DHCP client: udhcpc already running.

BusyBox v1.2.0 (2006.07.21-07:20+0000) Built-in shell (ash)
Enter 'help' for a list of built-in commands.

/ $ cat /proc/mtd
dev:    size   erasesize  name
mtd0: 02000000 00020000 "PicoFS"
mtd1: 02000000 00020000 "JFFS2"
/ ls -al /dev/m*
crw-------    1 root     root       1,   1 Jan  1 00:00 /dev/mem
crw-------    1 root     root      90,   0 Jan  1 00:00 /dev/mtd0
crw-------    1 root     root      90,   2 Jan  1 00:00 /dev/mtd1
crw-------    1 root     root      90,   4 Jan  1 00:00 /dev/mtd2
crw-------    1 root     root      90,   6 Jan  1 00:00 /dev/mtd3
brw-------    1 root     root      31,   0 Jan  1 00:00 /dev/mtdblock0
brw-------    1 root     root      31,   1 Jan  1 00:00 /dev/mtdblock1
brw-------    1 root     root      31,   2 Jan  1 00:00 /dev/mtdblock2
brw-------    1 root     root      31,   3 Jan  1 00:00 /dev/mtdblock3
/ $ mount -t picofs /dev/mtdblock0 /mnt
mount: Mounting /dev/mtdblock0 on /mnt failed: No such device
/ $ mount -t picofs /dev/mtdblock1 /mnt
mount: Mounting /dev/mtdblock1 on /mnt failed: No such device
/ $ mount -t picofs /dev/mtdblock2 /mnt
mount: Mounting /dev/mtdblock2 on /mnt failed: No such device
/ $


-- 
Dave Lynch 					  	    DLA Systems
Software Development:  				         Embedded Linux
717.627.3770 	       dhlii at dlasys.net 	  http://www.dlasys.net
fax: 1.253.369.9244 			           Cell: 1.717.587.7774
Over 25 years' experience in platforms, languages, and technologies too numerous to list.

"Any intelligent fool can make things bigger and more complex... It takes a touch of genius - and a lot of courage to move in the opposite direction."
Albert Einstein






More information about the linux-mtd mailing list