________________________________
From: Yusuf Altıparmak <[email protected]>
Sent: Thursday, January 16, 2020 12:09 AM
To: Michael Donahoe <[email protected]>; 
[email protected] <[email protected]>; 
[email protected] <[email protected]>
Subject: Re: [meta-freescale] Ramdisk booting: EXT4-fs (ram0): bad geometry 
error.



________________________________

Hello

With t1042d4rdb-64b and yocto 2.7 ( 
https://source.codeaurora.org/external/qoriq/qoriq-components/yocto-sdk/tree/readme?h=warrior
 ) I am having bad geometry error while booting and U-boot is freezing. I 
declared "setenv intrd_high=0xffffffff" to use large rootfs but I am unable to 
reach root login. Can anyone help me about this situation ?

Full error console log is here:

RAMDISK: gzip image found at block 0
RAMDISK: incomplete write (17195 != 32768)
write error
EXT4-fs (ram0): bad geometry: block count 435752 exceeds size of device (131072 
blocks)
VFS: Mounted root (ext2 filesystem) on device 1:0.
devtmpfs: mounted
Freeing unused kernel memory: 536K
This architecture does not have kernel memory protection.
Run /sbin/init as init process
attempt to access beyond end of device
ram0: rw=0, want=450632, limit=262144
Buffer I/O error on dev ram0, logical block 225315, async page read
attempt to access beyond end of device
ram0: rw=0, want=454376, limit=262144
Buffer I/O error on dev ram0, logical block 227187, async page read
attempt to access beyond end of device
ram0: rw=0, want=458082, limit=262144
Buffer I/O error on dev ram0, logical block 229040, async page read
attempt to access beyond end of device
ram0: rw=0, want=458084, limit=262144
Buffer I/O error on dev ram0, logical block 229041, async page read
Run /etc/init as init process
attempt to access beyond end of device
ram0: rw=0, want=456378, limit=262144
Buffer I/O error on dev ram0, logical block 228188, async page read
attempt to access beyond end of device
ram0: rw=0, want=457688, limit=262144
Buffer I/O error on dev ram0, logical block 228843, async page read
attempt to access beyond end of device
ram0: rw=0, want=458086, limit=262144
Buffer I/O error on dev ram0, logical block 229042, async page read
Run /bin/init as init process
attempt to access beyond end of device
ram0: rw=0, want=457942, limit=262144
Buffer I/O error on dev ram0, logical block 228970, async page read
Run /bin/sh as init process
attempt to access beyond end of device
ram0: rw=0, want=457942, limit=262144
Buffer I/O error on dev ram0, logical block 228970, async page read
Kernel panic - not syncing: No working init found.  Try passing init= option to 
kernel. See Linux Documentation/admin.
CPU: 3 PID: 1 Comm: swapper/0 Not tainted 4.19.26+gc0c2141 #1
Call Trace:
[c0000001f3107c70] [c000000000a69bf4] .dump_stack+0xa8/0xec (unreliable)
[c0000001f3107d00] [c00000000004b580] .panic+0x12c/0x2e8
[c0000001f3107db0] [c000000000002464] .kernel_init+0x10c/0x128
[c0000001f3107e30] [c0000000000009f4] .ret_from_kernel_thread+0x58/0x64
Rebooting in 180 seconds..

printenv output:

baudrate=115200
bdev=sda3
bootargs=root=/dev/ram rw console=ttyS0,115200
bootcmd=setenv bootargs root=/dev/ram rw console=$consoledev,$baudrate 
$othbootargs;bootm e8020000 e9300000 e8800000
bootdelay=3
bootfile=uImage
c=ffe
consoledev=ttyS0
eth1addr=00:04:9F:05:B7:B1
eth2addr=00:04:9F:05:B7:B2
eth3addr=00:04:9F:05:B7:B3
eth4addr=00:04:9F:05:B7:B4
eth5addr=00:04:9f:8e:7b:b4
ethact=FM1@DTSEC1
ethaddr=00:04:9F:05:B7:B0
ethprime=e1000#0
fdtaddr=2000000
fdtfile=uImage-t1042d4rdb.dtb
fileaddr=2000000
filesize=9a83
fman_ucode=eff00000
gatewayip=192.168.10.4
hvboot=setenv bootargs console=$consoledev,$baudrate 
config-addr=0xfe8900000;bootm 0xfe8700000 - 0xfe8800000
hwconfig=fsl_ddr:bank_intlv=cs0_cs1
initrd_high=0xffffffff
ipaddr=192.168.10.99
loadaddr=1000000
netdev=eth0
netmask=255.255.255.0
nfsboot=setenv bootargs root=/dev/nfs rw nfsroot=$serverip:$rootpath 
ip=$ipaddr:$serverip:$gatewayip:$netmask:$hostnar
nohvboot=tftp 1000000 $dir/$bootfile;tftp 5000000 $dir/$ramdiskfile;tftp 
2000000 $dir/$fdtfile;setenv bootargs root=/;
othbootargs=ramdisk_size=1000000
ramboot=setenv bootargs root=/dev/ram rw console=$consoledev,$baudrate 
$othbootargs;tftp $ramdiskaddr $ramdiskfile;tfr
ramdisk_size=41943040
ramdiskaddr=5000000
ramdiskfile=fsl-image-core-t1042d4rdb.ext2.gz.u-boot
rootpath=/opt/nfsroot
serverip=192.168.10.50
tftpflash=tftpboot $loadaddr $uboot && protect off $ubootaddr +$filesize && 
erase $ubootaddr +$filesize && cp.b $loade
uboot=u-boot.bin
ubootaddr=0xeff40000

Environment size: 1871/8188 bytes

and the commands I used:

tftp 10000000 uImage--4.19-r0-t1042d4rdb-64b-20200106043637.bin
tftp 1f000000 t1042d4rdb--4.19-r0-t1042d4rdb-64b-20200106043637.dtb
tftp 20000000 rootfs.ext2.gz.u-boot
bootm 10000000 20000000 1f000000


What is BLK_DEV_RAM_SIZE set to in the kernel?

Hello,
It's set to;
CONFIG_BLK_DEV_RAM_SIZE=131072

Oh, I think I see now.  bootargs by default is only set to 'root=/dev/ram rw 
console=ttyS0,115200'.  It looks like you have ramboot to update it but you are 
loading the ramFS to a different location and from the output you did not run 
it.  Anyways, if you pass in a ramdisk_size that is as large as the ramFS you 
are loading it should work (provided you have enough RAM).  Without it the 
kernel uses what is set in the config, resulting in this error EXT4-fs (ram0): 
bad geometry: block count 435752 exceeds size of device (131072 blocks).  
Should be able to either increase the size in the kernel or pass in a proper 
ramdisk_size in bootargs.  Use the existing ramboot as a guide and update it. 
Make sure ramdisk_size is the correct size of the ramdisk you are loading.  
Then run 'run ramboot' prior to 'bootm 10000000 20000000 1f000000'





Reply via email to