[U-Boot-Users] Ramdisk larger than 8M causes problem

Hi,
I am facing a problem that ,I built a ramdisk(16M) larger than 8M, the kernel couldn't start up correctly with this ramdisk , the filesystem couln't be mounted and "kernel panic" happened. But if the ramdisk is smaller than or equal to 8M , it works fine. I tried the two method as what the website (http://www.denx.de/wiki/view/DULG/RamdiskGreaterThan4MBCausesProblems) said. but it takes no effect. Anybody gives me some hints? Thanks in advance! By the way ,I use u-boot-1.1.4 , and cpu core: arm926ej, Memory:128M Here is the details: ................................................ MDISK: Compressed image found at block 0 Unable to handle kernel NULL pointer dereference at virtual address 0000000c pgd = c0004000 [0000000c] *pgd=00000000 Internal error: Oops: 5 [#1] Modules linked in: CPU: 0 PC is at __mark_inode_dirty+0x28/0x174 LR is at update_atime+0x94/0xc0 pc : [<c003c274>] lr : [<c0130180>] Not tainted sp : c1771720 ip : c1771748 fp : c1771744 r10: 00001000 r9 : 00000000 r8 : 00000000 r7 : c15b3000 r6 : 00000000 r5 : 00000001 r4 : c15af7c8 r3 : 00000000 r2 : 28d0edc8 r1 : 00000001 r0 : c15af7c8 Flags: nzcv IRQs on FIQs on Mode SVC_32 Segment kernel Control: A005317F Table: 00004000 DAC: 00000017 Process swapper (pid: 1, stack limit = 0xc17701a0) Stack: (0xc1771720 to 0xc1772000) 1720: 38db9cd0 2ff7fbc8 c15af7c8 c1771748 00000000 00000000 c1771764 c1771748 ........................................................................................................................................... Backtrace: [<c003c24c>] (__mark_inode_dirty+0x0/0x174) from [<c0130180>] (update_atime+0x94/0xc0) r7 = 00000000 r6 = 00000000 r5 = C1771748 r4 = C15AF7C8 [<c01300ec>] (update_atime+0x0/0xc0) from [<c004112c>] (do_generic_mapping_read+0x634/0x648) r5 = 00000000 r4 = 001A3000 [<c0040af8>] (do_generic_mapping_read+0x0/0x648) from [<c0101ba0>] (__generic_file_aio_read+0x1bc/0x1e0) [<c01019e4>] (__generic_file_aio_read+0x0/0x1e0) from [<c0101d08>] (generic_file_read+0x94/0xc0) [<c0101c74>] (generic_file_read+0x0/0xc0) from [<c0027864>] (vfs_read+0xc0/0x17c) [<c00277a4>] (vfs_read+0x0/0x17c) from [<c0027970>] (sys_read+0x50/0x7c) [<c0027920>] (sys_read+0x0/0x7c) from [<c0009648>] (fill_inbuf+0x3c/0x90) r8 = 000008E0 r7 = 00000000 r6 = 00000008 r5 = 000008DF r4 = C039E79C [<c000960c>] (fill_inbuf+0x0/0x90) from [<c000972c>] (inflate_codes+0x90/0x480) r4 = 00000000 [<c000969c>] (inflate_codes+0x0/0x480) from [<c000a310>] (inflate_dynamic+0x658/0x6cc) [<c0009cb8>] (inflate_dynamic+0x0/0x6cc) from [<c000ab9c>] (rd_load_image+0x808/0xfdc) [<c000a394>] (rd_load_image+0x0/0xfdc) from [<c000b518>] (initrd_load+0x40/0x304) [<c000b4d8>] (initrd_load+0x0/0x304) from [<c0008e78>] (prepare_namespace+0xa8/0x12c) [<c0008dd0>] (prepare_namespace+0x0/0x12c) from [<c00b8f80>] (init+0x108/0x1d4) r5 = C1770000 r4 = C007B084 [<c00b8e78>] (init+0x0/0x1d4) from [<c00e56b4>] (do_exit+0x0/0xae8) r6 = 00000000 r5 = 00000000 r4 = 00000000 Code: e1a04000 e5907098 0a000004 e5973024 (e593300c) <0>Kernel panic - not syncing: Attempted to kill init!
Best regards, Rboert

Hi Robert,
I am facing a problem that ,I built a ramdisk(16M) larger than 8M,
the kernel couldn't start up correctly with this ramdisk , the filesystem couln't be mounted and "kernel panic" happened. But if the ramdisk is smaller than or equal to 8M , it works fine. I tried the two method as what the website (http://www.denx.de/wiki/view/DULG/RamdiskGreaterThan4MBCausesProblems) said. but it takes no effect. Anybody gives me some hints?
This is really offtopic on the U-Boot ML, but anyway...
The 8MB are usually a compiled in limit for the size of ramdisks. You can either change CONFIG_BLK_DEV_RAM_SIZE at compile time or provide a command line parameter to the kernel, e.g. "ramdisk_size=8192k".
Best wishes Detlev
participants (2)
-
Detlev Zundel
-
Robert