[U-Boot-Users] RAM disk.. Almost there.. Some success... then failure

Luke Fimmerzane lukefimmerzane at hotmail.com
Fri Mar 19 19:01:31 CET 2004


I know that this is probably in the 'infra-red' region of the 'visible' 
U-boot spectrum but I managed to get my root file system runnning from a RAM 
disk held in RAM but the same RAM disk placed in FLASH failed.

For example if I tftpboot my kernel to RAM, tftpboot my RAMDISK to RAM
and then issue
bootm 30300000 30500000 it mounts an ext2 file system, calls init and the 
world is a good place to be!

BUT if I tftpboot my kernel to RAM, store my root file system in FLASH (the 
exact same RAM disk as above) at address 8200000 and then issue
bootm 30300000 8200000 I get the following errors:

Kernel command line: root=/dev/ram ramdisk=12000
DEBUG: timer count 15626
Console: colour dummy device 80x30
Calibrating delay loop... 49.86 BogoMIPS
Memory: 64MB = 64MB total
Memory: 62880KB available (1253K code, 257K data, 76K init)
Dentry-cache hash table entries: 8192 (order: 4, 65536 bytes)
Inode-cache hash table entries: 4096 (order: 3, 32768 bytes)
Mount-cache hash table entries: 1024 (order: 1, 8192 bytes)
Buffer-cache hash table entries: 4096 (order: 2, 16384 bytes)
Page-cache hash table entries: 16384 (order: 4, 65536 bytes)
POSIX conformance testing by UNIFIX
Linux NET4.0 for Linux 2.4
Based upon Swansea University Computer Society NET3.039
Initializing RT netlink socket
CPU clock = 200.000 Mhz, HCLK = 100.000 Mhz, PCLK = 50.000 Mhz
Starting kswapd
devfs: v1.10 (20020120) Richard Gooch (rgooch at atnf.csiro.au)
devfs: boot_options: 0x1
ttyS%d0 at I/O 0x50000000 (irq = 52) is a S3C2410
ttyS%d1 at I/O 0x50004000 (irq = 55) is a S3C2410
ttyS%d2 at I/O 0x50008000 (irq = 58) is a S3C2410
Console: switching to colour frame buffer device 30x40
Installed S3C2410 frame buffer
pty: 256 Unix98 ptys configured
s3c2410-ts initialized
S3C2410 Real Time Clock Driver v0.1
block: 128 slots per queue, batch=32
RAMDISK driver initialized: 16 RAM disks of 12000K size 1024 blocksize
eth0: cs8900 rev J(3.3 Volts) found at 0xd0000300
cs89x0 media RJ-45, IRQ 37
No NAND device found!!!
NET4: Linux TCP/IP 1.0 for NET4.0
IP Protocols: ICMP, UDP, TCP, IGMP
IP: routing cache hash table of 512 buckets, 4Kbytes
TCP: Hash tables configured (established 4096 bind 4096)
NET4: Unix domain sockets 1.0/SMP for Linux NET4.0.
NetWinder Floating Point Emulator V0.95 (c) 1998-1999 Rebel.com
Unable to handle kernel paging request at virtual address 98200040
pgd = c0004000
*pgd = 00000000, *pmd = 00000000
Internal error: Oops: 0
CPU: 0
pc : [<c0127acc>]    lr : [<c00b60f0>]    Not tainted
sp : c02efd48  ip : 00000000  fp : c02efd78
r10: ffffffff  r9 : 00000000  r8 : c02eff38
r7 : 00000000  r6 : c02eff38  r5 : 00000200  r4 : 00000000
r3 : 00000000  r2 : 000001fc  r1 : 98200040  r0 : c03f8400
Flags: nzCv  IRQs on  FIQs on  Mode SVC_32  Segment kernel
Control: 317F  Table: 30004000  DAC: 0000001D
Process swapper (pid: 1, stackpage=c02ef000)
Stack: (0xc02efd38 to 0xc02f0000)
fd20:                                                       c00b60f0 
c0127acc
fd40: 20000013 ffffffff 00000200 00000000 00000200 c02eff38 00000000 
c00b60f0
fd60: 00000000 c03f8400 c02eff18 c02efda4 c02efd7c c0010f34 c00b608c 
c02efdd8
fd80: c02eff18 c0160edc c02ee000 c02db660 000001fa c02db860 c02effa8 
c02efda8
fda0: c001127c c0010ea8 c02efeb0 000000fa 00000100 00000100 c02efdd4 
00000000
fdc0: 00000000 000001f0 00000000 00000000 00000000 5c2d2f7c 00000000 
00000000
fde0: c02db860 00000000 00000000 00000000 00000000 00000000 00000000 
00000000
fe00: 00000000 00000000 00000000 00000000 00000000 00000000 00000000 
00000000
fe20: 00000000 00000000 00000000 00000000 00000000 00000000 00000000 
00000000
fe40: 00000000 00000000 00000000 c02db660 00000000 00000000 00000000 
00000000
fe60: 00000000 00000000 00000000 00000000 00000000 00000000 00000000 
00000000
fe80: 00000000 00000000 00000000 00000000 00000000 00000000 00000000 
00000000
fea0: 00000000 00000000 00000000 00000000 00000000 00000000 c02efdd8 
00000000
fec0: c0160edc 00000000 00020000 00000003 00000000 00000000 00000000 
00000000
fee0: 00000000 00000000 00000000 00000000 00000000 00000000 00000000 
00000000
ff00: 00000000 00000000 00000000 00000000 00000000 00000000 00000000 
00000000
ff20: c02efe44 00000000 c0166958 00000000 00020000 00000001 00000000 
00000000
ff40: 00000000 00000000 00000000 00000000 00000000 00000000 00000000 
00000000
ff60: 00000000 00000000 00000000 00000000 00000000 00000000 00000000 
00000000
ff80: c015ea2c c016b240 c0175b74 00000000 c0166930 41129200 3001629c 
c02effb8
ffa0: c02effac c00116cc c0011104 c02effe0 c02effbc c001b12c c00116bc 
c0034998
ffc0: 00000000 c018d540 c016ba7c c016ba64 c015ec48 c02efff4 c02effe4 
c001b230
ffe0: c001b0e0 00000000 00000000 c02efff8 c001cbf8 c001b22c 00000000 
00000000
Backtrace:
Function entered at [<c00b607c>] from [<c0010f34>]
r6 = C02EFF18  r5 = C03F8400  r4 = 00000000
Function entered at [<c0010e98>] from [<c001127c>]
Function entered at [<c00110f4>] from [<c00116cc>]
Function entered at [<c00116ac>] from [<c001b12c>]
Function entered at [<c001b0d0>] from [<c001b230>]
r8 = C015EC48  r7 = C016BA64  r6 = C016BA7C  r5 = C018D540
r4 = 00000000
Function entered at [<c001b21c>] from [<c001cbf8>]
r4 = 00000000
Code: 1a00002c e2522004 4282c004 4a00001b (e4913004)
Kernel panic: Attempted to kill init!


ANY IDEAS? Is there something different between a RAM disk stored in RAM and 
a
RAM disk stored in FLASH. Or am I missing a boot argument?

Thanks,
Luke

[[[By the way for anyone that is interested ...here's a summary of the state 
of my working configuration for running a RAMDISK from a RAM location.
#define CONFIG_CMDLINE_TAG	 1	/* enable passing of ATAGs	*/
#define CONFIG_SETUP_MEMORY_TAGS 1
#define CONFIG_INITRD_TAG	 1

The command line I pass to the kernel is
setenv bootargs root=/dev/ram ramdisk=12000
I found that if I didn't specify a ramdisk size then I get the following 
error
RAMDISK: Compressed image found at block 0
RAMDISK: incomplete write (ramdisk too small?) (-28 != 32768)
I think this might be related to CONFIG_BLK_DEV_RAM_SIZE=4096. But haven't
had a chance to check it out. My uncompressed RAM is 12M, my compressed RAM 
is 4M

I also had to enable devfs in the kernel or else I get the following error
Warning: unable to open an initial console.]]]

Thanks again
Luke

_________________________________________________________________
All the action. All the drama. Get NCAA hoops coverage at MSN Sports by 
ESPN. http://msn.espn.go.com/index.html?partnersite=espn





More information about the U-Boot mailing list