[#3925] sdio mmc on bf548 fails to load ext2 filesystem
Submitted By: Vivi Li
Open Date
2008-02-21 06:49:53 Close Date
2008-03-17 04:52:16
Priority:
Medium High Assignee:
Cliff Cai
Status:
Closed Fixed In Release:
N/A
Found In Release:
N/A Release:
Category:
N/A Board:
N/A
Processor:
N/A Silicon Revision:
Is this bug repeatable?:
Yes Resolution:
N/A
Uboot version or rev.:
Toolchain version or rev.:
08r1
App binary format:
N/A
Summary: sdio mmc on bf548 fails to load ext2 filesystem
Details:
For sdiommc on bf548 in 08r1 branch, it will fail to mount ext2 file system for the second time.
Log is as below:
--
Linux version 2.6.22.18-ADI-2008R1-svn4311 (test@uclinux84-bf548-kernel) (gcc version 4.1.2 (ADI sv8
Hardware Trace Active and Enabled
Reset caused by Software reset
Blackfin support (C) 2004-2007 Analog Devices, Inc.
Compiled for ADSP-BF548 Rev 0.0
Blackfin Linux support by blackfin.uclinux.org/
Processor Speed: 525 MHz core clock and 131 MHz System Clock
Board Memory: 64MB
Kernel Managed Memory: 64MB
Memory map:
text = 0x00001000-0x001814c0
rodata = 0x00182000-0x001fd104
data = 0x001fe000-0x00216000
stack = 0x001fe000-0x00200000
init = 0x00216000-0x005be000
bss = 0x005be000-0x005cf610
available = 0x005cf610-0x03dff000
DMA Zone = 0x03e00000-0x04000000
Instruction Cache Enabled
Data Cache Enabled (write-through)
Built 1 zonelists. Total pages: 15748
Kernel command line: root=/dev/mtdblock0 rw ip=10.100.4.50:10.100.4.174:10.100.4.174:255.255.255.0:f
Configuring Blackfin Priority Driven Interrupts
PID hash table entries: 256 (order: 8, 1024 bytes)
Dentry cache hash table entries: 8192 (order: 3, 32768 bytes)
Inode-cache hash table entries: 4096 (order: 2, 16384 bytes)
Memory available: 56956k/65536k RAM, (3744k init code, 1537k kernel code, 664k data, 2048k dma, 584)
Blackfin Scratchpad data SRAM: 4 KB
Blackfin Data A SRAM: 16 KB (15 KB free)
Blackfin Data B SRAM: 16 KB (16 KB free)
Blackfin Instruction SRAM: 48 KB (42 KB free)
Security Framework v1.0.0 initialized
Mount-cache hash table entries: 512
NET: Registered protocol family 16
Blackfin GPIO Controller
Blackfin DMA Controller
ezkit_init(): registering device resources
SCSI subsystem initialized
NET: Registered protocol family 2
IP route cache hash table entries: 1024 (order: 0, 4096 bytes)
TCP established hash table entries: 2048 (order: 2, 16384 bytes)
TCP bind hash table entries: 2048 (order: 1, 8192 bytes)
TCP: Hash tables configured (established 2048 bind 2048)
TCP reno registered
io scheduler noop registered
io scheduler anticipatory registered (default)
io scheduler cfq registered
bf54x-lq043: FrameBuffer initializing...
dma_alloc_init: dma_page @ 0x030fc000 - 512 pages at 0x03e00000
bfin-otp: initialized
bfin-wdt: initialized: timeout=20 sec (nowayout=0)
Serial: Blackfin serial driver
bfin-uart.1: ttyBF0 at MMIO 0xffc02000 (irq = 48) is a BFIN-UART
RAMDISK driver initialized: 16 RAM disks of 4096K size 1024 blocksize
smsc911x: Driver version 2007-07-13.
register bfin atapi driver
scsi0 : pata-bf54x
ata1: PATA max UDMA/66 cmd 0x00000000 ctl 0xffc03800 bmdma 0x00000000 irq 68
ata1.00: ATA-6: TOSHIBA MK4032GAX, AD101A, max UDMA/100
ata1.00: 78140160 sectors, multi 16: LBA48
ata1.00: configured for UDMA/66
blk_queue_max_hw_segments: set to minimum 1
scsi 0:0:0:0: Direct-Access ATA TOSHIBA MK4032GA AD10 PQ: 0 ANSI: 5
sd 0:0:0:0: [sda] 78140160 512-byte hardware sectors (40008 MB)
sd 0:0:0:0: [sda] Write Protect is off
sd 0:0:0:0: [sda] Write cache: enabled, read cache: enabled, doesn't support DPO or FUA
sd 0:0:0:0: [sda] 78140160 512-byte hardware sectors (40008 MB)
sd 0:0:0:0: [sda] Write Protect is off
sd 0:0:0:0: [sda] Write cache: enabled, read cache: enabled, doesn't support DPO or FUA
sda: sda1 sda2
sd 0:0:0:0: [sda] Attached SCSI disk
physmap platform flash device: 00400000 at 20000000
physmap-flash.0: Found 1 x16 devices at 0x0 in 16-bit bank
NOR chip too large to fit in mapping. Attempting to cope...
Intel/Sharp Extended Query Table at 0x010A
Intel/Sharp Extended Query Table at 0x010A
Intel/Sharp Extended Query Table at 0x010A
Intel/Sharp Extended Query Table at 0x010A
Intel/Sharp Extended Query Table at 0x010A
Using buffer write method
Using auto-unlock on power-up/resume
cfi_cmdset_0001: Erase suspend on write enabled
Reducing visibility of 32768KiB chip to 4096KiB
RedBoot partition parsing not available
bfin-spi bfin-spi.0: Blackfin BF5xx on-chip SPI Contoller Driver, Version 1.0, regs_base@ffc00500, 4
bfin-spi bfin-spi.1: Blackfin BF5xx on-chip SPI Contoller Driver, Version 1.0, regs_base@ffc02300, 5
input: bf54x-keys as /class/input/input0
bf54x-keys: Blackfin BF54x Keypad registered IRQ 76
rtc-bfin rtc-bfin: rtc core: registered rtc-bfin as rtc0
i2c /dev entries driver
i2c-bfin-twi i2c-bfin-twi.1: Blackfin BF5xx on-chip I2C TWI Contoller Driver, Version 1.8, regs_bas0
Advanced Linux Sound Architecture Driver Version 1.0.12rc1 (Thu Jun 22 13:55:50 2006 UTC).
ASoC version 0.13.1
AD1980 SoC Audio Codec
asoc: AC97 <-> bf5xx-ac97 mapping ok
ALSA device list:
#0: bf5xx-board (AD1980-MMAP)
TCP cubic registered
NET: Registered protocol family 1
NET: Registered protocol family 17
rtc-bfin rtc-bfin: setting the system clock to 2004-05-31 19:35:54 (1086032154)
mmcblk0: mmc0:e624 SD01G 992000KiB
mmcblk0: p1
eth0: SMSC911x/921x identified at 0x24000000, IRQ: 175
eth0: SMSC911x MAC Address: b6:db:69:a7:02:8e
eth0: link down
IP-Config: Complete:
device=eth0, addr=10.100.4.50, mask=255.255.255.0, gw=10.100.4.174,
host=BF548, domain=, nis-domain=(none),
bootserver=10.100.4.174, rootserver=10.100.4.174, rootpath=
Freeing unused kernel memory: 3744k freed
eth0: link up, 100Mbps, full-duplex, lpa 0x41E1
_____________________________________
a8888b. / Welcome to the uClinux distribution \
d888888b. / _ _ \
8P"YP"Y88 / | | |_| __ __ (TM) |
8|o||o|88 _____/ | | _ ____ _ _ \ \/ / |
8' .88 \ | | | | _ \| | | | \ / |
8`._.' Y8. \ | |__ | | | | | |_| | / \ |
d/ `8b. \ \____||_|_| |_|\____|/_/\_\ |
dP . Y8b. \ For embedded processors including |
d8:' " `::88b \ the Analog Devices Blackfin /
d8" 'Y88b \___________________________________/
:8P ' :888
8a. : _a88P For further information, check out:
._/"Yaa_: .| 88P| - blackfin.uclinux.org/
\ YP" `| 8P `. - docs.blackfin.uclinux.org/
/ \.___.d| .' - www.uclinux.org/
`--..__)8888P`._.' jgs/a:f - www.analog.com/blackfin
Have a lot of fun...
BusyBox v1.4.1 (2008-02-21 08:25:15 CST) Built-in shell (msh)
Enter 'help' for a list of built-in commands.
root:/> fdisk /dev/mmcblk0
The number of cylinders for this disk is set to 31000.
There is nothing wrong with that, but this is larger than 1024,
and could in certain setups cause problems with:
1) software that runs at boot time (e.g., old versions of LILO)
2) booting and partitioning software from other OSs
(e.g., DOS FDISK, OS/2 FDISK)
Command (m for help): p
Disk /dev/mmcblk0: 4 heads, 16 sectors, 31000 cylinders
Units = cylinders of 64 * 512 bytes
Device Boot Start End Blocks Id System
/dev/mmcblk0p1 1 8193 262168 83 Linux
Command (m for help): q
root:/> mke2fs /dev/mmcblk0p1
mke2fs 1.39 (29-May-2006)
warning: 23 blocks unused.
Filesystem label=
OS type: Linux
Block size=1024 (log=0)
Fragment size=1024 (log=0)
33024 inodes, 262145 blocks
13108 blocks (5%) reserved for the super user
First data block=1
32 block groups
8192 blocks per group, 8192 fragments per group
1032 inodes per group
Superblock backups stored on blocks:
8193, 24577, 40961, 57345, 73729, 204801, 221185
Writing inode tables: done
Writing superblocks and filesystem accounting information: done
This filesystem will be automatically checked every 25 mounts or
180.00 days, whichever comes first. Use tune2fs -c or -i to override.
root:/> mount -t ext2 /dev/mmcblk0p1 /mnt/
root:/> ls /mnt/
lost+found
root:/> umount /mnt/
root:/> mount
rootfs on / type rootfs (rw)
proc on /proc type proc (rw)
ramfs on /var type ramfs (rw)
sysfs on /sys type sysfs (rw)
devpts on /dev/pts type devpts (rw)
debugfs on /sys/kernel/debug type debugfs (rw)
securityfs on /sys/kernel/security type securityfs (rw)
root:/> mount -t ext2 /dev/mmcblk0p1 /mnt/
mount: mounting /dev/mmcblk0p1 on /mnt/ failed
root:/>
--
Even if ext2 fs can be mounted successfully, it still got error message when use this filesystem.
Log is as below:
--
root:/> fdisk /dev/mmcblk0
The number of cylinders for this disk is set to 31000.
There is nothing wrong with that, but this is larger than 1024,
and could in certain setups cause problems with:
1) software that runs at boot time (e.g., old versions of LILO)
2) booting and partitioning software from other OSs
(e.g., DOS FDISK, OS/2 FDISK)
Command (m for help): p
Disk /dev/mmcblk0: 4 heads, 16 sectors, 31000 cylinders
Units = cylinders of 64 * 512 bytes
Device Boot Start End Blocks Id System
/dev/mmcblk0p1 1 8193 262168 83 Linux
/dev/mmcblk0p2 8194 31000 729824 6 FAT16
Command (m for help): q
root:/> mke2fs /dev/mmcblk0p1
mke2fs 1.39 (29-May-2006)
warning: 23 blocks unused.
Filesystem label=
OS type: Linux
Block size=1024 (log=0)
Fragment size=1024 (log=0)
33024 inodes, 262145 blocks
13108 blocks (5%) reserved for the super user
First data block=1
32 block groups
8192 blocks per group, 8192 fragments per group
1032 inodes per group
Superblock backups stored on blocks:
8193, 24577, 40961, 57345, 73729, 204801, 221185
Writing inode tables: done
Writing superblocks and filesystem accounting information: done
This filesystem will be automatically checked every 24 mounts or
180.00 days, whichever comes first. Use tune2fs -c or -i to override.
root:/> mount -t ext2 /dev/mmcblk0p1 /mnt/
mount: mounting /dev/mmcblk0p1 on /mnt/ failed
root:/> mke2fs /dev/mmcblk0p1
mke2fs 1.39 (29-May-2006)
warning: 23 blocks unused.
Filesystem label=
OS type: Linux
Block size=1024 (log=0)
Fragment size=1024 (log=0)
33024 inodes, 262145 blocks
13108 blocks (5%) reserved for the super user
First data block=1
32 block groups
8192 blocks per group, 8192 fragments per group
1032 inodes per group
Superblock backups stored on blocks:
8193, 24577, 40961, 57345, 73729, 204801, 221185
Writing inode tables: done
Writing superblocks and filesystem accounting information: done
This filesystem will be automatically checked every 28 mounts or
180.00 days, whichever comes first. Use tune2fs -c or -i to override.
root:/>
root:/>
root:/> mount -t ext2 /dev/mmcblk0p1 /mnt/
root:/> ls /mnt/
lost+found
root:/> mount
rootfs on / type rootfs (rw)
proc on /proc type proc (rw)
ramfs on /var type ramfs (rw)
sysfs on /sys type sysfs (rw)
devpts on /dev/pts type devpts (rw)
debugfs on /sys/kernel/debug type debugfs (rw)
securityfs on /sys/kernel/security type securityfs (rw)
/dev/mmcblk0p1 on /mnt type ext2 (rw)
root:/> cp /sbin/busybox /mnt/
root:/> umount /mnt/
root:/> mount
rootfs on / type rootfs (rw)
proc on /proc type proc (rw)
ramfs on /var type ramfs (rw)
sysfs on /sys type sysfs (rw)
devpts on /dev/pts type devpts (rw)
debugfs on /sys/kernel/debug type debugfs (rw)
securityfs on /sys/kernel/security type securityfs (rw)
root:/> mount -t ext2 /dev/mmcblk0p1 /mnt/
root:/> cp /sbin/busybox /mnt/
EXT2-fs error (device mmcblk0p1): ext2_check_page: bad entry in directory #2: rec_len is smaller th8
'/mnt/busybox' exists
root:/> mount
rootfs on / type rootfs (rw)
proc on /proc type proc (rw)
ramfs on /var type ramfs (rw)
sysfs on /sys type sysfs (rw)
devpts on /dev/pts type devpts (rw)
debugfs on /sys/kernel/debug type debugfs (rw)
securityfs on /sys/kernel/security type securityfs (rw)
/dev/mmcblk0p1 on /mnt type ext2 (rw)
root:/>
--
Follow-ups
--- Vivi Li 2008-03-06 04:24:40
Mount ext2 file system and delete an existed file, EXT2-fs error happens again.
--
root:/> echo 100 > /proc/sys/vm/pagecache_ratio
root:/> mount -t ext2 /dev/mmcblk0p1 /mnt/
drwxr-xr-x 3 root root 1.0k Jan 17 01:13 .
drwxr-xr-x 14 root root 0 Jan 1 2007 ..
drwx------ 2 root root 12.0k Jan 17 01:13 lost+found
root:/> time dd if=/dev/zero of=/mnt/10.bin bs=1M count=10
10+0 records in
10+0 records out
real 0m 5.32s
user 0m 0.00s
sys 0m 0.48s
root:/> umount /mnt/
root:/> mount -t ext2 /dev/mmcblk0p1 /mnt/
root:/> ls -lha /mnt/
drwxr-xr-x 3 root root 1.0k Jan 17 01:13 .
drwxr-xr-x 14 root root 0 Jan 1 2007 ..
-rw-r--r-- 1 root root 10.0M Jan 17 01:13 10.bin
drwx------ 2 root root 12.0k Jan 17 01:13 lost+found
root:/> rm /mnt/10.bin
EXT2-fs error (device mmcblk0p1): ext2_free_blocks: bit already cleared for
block 8385
EXT2-fs error (device mmcblk0p1): ext2_free_blocks: bit already cleared for
block 8386
EXT2-fs error (device mmcblk0p1): ext2_free_blocks: bit already cleared for
block 8387
EXT2-fs error (device mmcblk0p1): ext2_free_blocks: bit already cleared for
block 8388
EXT2-fs error (device mmcblk0p1): ext2_free_blocks: bit already cleared for
block 8389
EXT2-fs error (device mmcblk0p1): ext2_free_blocks: bit already cleared for
block 8390
EXT2-fs error (device mmcblk0p1): ext2_free_blocks: bit already cleared for
block 8391
EXT2-fs error (device mmcblk0p1): ext2_free_blocks: bit already cleared for
block 8392
EXT2-fs error (device mmcblk0p1): ext2_free_blocks: bit already cleared for
block 8393
EXT2-fs error (device mmcblk0p1): ext2_free_blocks: bit already cleared for
block 8394
EXT2-fs error (device mmcblk0p1): ext2_free_blocks: bit already cleared for
block 8395
EXT2-fs error (device mmcblk0p1): ext2_free_blocks: bit already cleared for
block 8396
EXT2-fs error (device mmcblk0p1): ext2_free_blocks: bit already cleared for
block 8397
EXT2-fs error (device mmcblk0p1): ext2_free_blocks: bit already cleared for
block 8398
EXT2-fs error (device mmcblk0p1): ext2_free_blocks: bit already cleared for
block 8400
...
--
--- Cliff Cai 2008-03-17 03:09:44
It's ok on v1.3 BF548.
Cliff
--- Vivi Li 2008-03-17 04:28:02
Yes, it's OK in BF548 v1.3. Should be hardware problem. So close it.
Files
Changes
Commits
Dependencies
Duplicates
Associations
Tags
File Name File Type File Size Posted By
No Files Were Found