Well, this has been a fun (and annoying) process... :-) Maybe there's some secret (or not so secret) info that I'm not finding, but I've thus far been unable to get any uboot build to successfully load kernel and initrd from a removable device. I've tried a usb stick and an mmc card, for what it's worth.
I have a 4G minisd card in there, partitioned with sdb1 as a 100M fat32 and sdb2 as the remainder in ext4. I guess I should go back and try fat16 and such to see if that has better results, but for now, I *know* this arrangement works: I made the kernel and initrd images available via tftp and got them flashed to nand like this: Marvell>> tftp 0x6400000 uImage-kirkwood Using egiga0 device TFTP from server 192.168.13.11; our IP address is 192.168.13.50 Filename 'uImage-kirkwood'. Load address: 0x6400000 Loading: ################################################################# ################################################################# ################################################################# ################################################################# ################################################################# ################################################################# #################### done Bytes transferred = 2096780 (1ffe8c hex) Marvell>> nand erase 0x100000 0x400000 NAND erase: device 0 offset 0x100000, size 0x400000 Erasing at 0x4e0000 -- 100% complete. OK Marvell>> nand write.e 0x6400000 0x100000 0x400000 NAND write: device 0 offset 0x100000, size 0x400000 4194304 bytes written: OK Marvell>> tftp 0x6400000 uinitrd-kirkwood Using egiga0 device TFTP from server 192.168.13.11; our IP address is 192.168.13.50 Filename 'uinitrd-kirkwood'. Load address: 0x6400000 Loading: ################################################################# ################################################################# ################################################################# ################################################################# ################################################################# ################################################################# ################################################################# ################################################################# ################################################################# ################################################################# ################################################################# ################################################################# ################################################################# ################################################################# ################################################################# ################################################################# ################################################################# ################################################################# ################################################################# ################################################################# ################################################################# ################################################################# ################################################################# ########### done Bytes transferred = 7706248 (759688 hex) Marvell>> nand erase 0x500000 0x1fb00000 NAND erase: device 0 offset 0x500000, size 0x1fb00000 Skipping bad block at 0x19ee0000 Erasing at 0x1ffe0000 -- 100% complete. OK Marvell>> nand write.e 0x6400000 0x500000 0x800000 NAND write: device 0 offset 0x500000, size 0x800000 8388608 bytes written: OK Now, let's verify that this did what I think it did: Marvell>> nand start Marvell>> nand read.e 0x00800000 0x100000 0x400000 Marvell>> nand read.e 0x01100000 0x500000 0x600000 Marvell>> iminfo 0x00800000 ## Checking Image at 00800000 ... Legacy image found Image Name: Linux-2.6.33.5-kirkwood Image Type: ARM Linux Kernel Image (uncompressed) Data Size: 2096716 Bytes = 2 MB Load Address: 00008000 Entry Point: 00008000 Verifying Checksum ... OK Marvell>> iminfo 0x01100000 ## Checking Image at 01100000 ... Legacy image found Image Name: Slackware ARM Initial RAM disk f Image Type: ARM Linux RAMDisk Image (gzip compressed) Data Size: 7706184 Bytes = 7.3 MB Load Address: 00000000 Entry Point: 00000000 Verifying Checksum ... OK Okay, both images look good - yay! Now here's the important bits from the uboot environment: Marvell>> printenv bootdelay=3 baudrate=115200 ethact=egiga0 eth1addr=02:50:43:eb:75:43 ethaddr=00:50:43:01:5D:EA arcNumber=2659 mainlineLinux=yes filesize=759688 fileaddr=6400000 ipaddr=192.168.13.50 serverip=192.168.13.11 stdin=serial stdout=serial stderr=serial bootargs_root=root=/dev/sdb2 waitforroot=10 rootfs=ext4 bootargs_console=console=ttyS0,115200 bootcmd_slack=bootm 0x00800000 0x01100000 bootcmd_usb=usb start; bootcmd=setenv bootargs $(bootargs_console) $(bootargs_root); run bootcmd_usb; run bootcmd_nand; run bootcmd_slack; bootcmd_nand=nand start; nand read.e 0x00800000 0x100000 0x400000; nand read.e 0x01100000 0x500000 0x800000 Environment size: 629/131068 bytes Note that putting the initrd into nand like this WILL kill the jffs2 root filesystem shipped with the guruplug. FWIW, I'm also getting the stacktrace on halt/reboot: The system is going down for reboot NOW! INIT: Sending processes the TERM signal INIT: SendingRunning shutdown script /etc/rc.d/rc.6: Saving system time to the hardware clock (UTC). Stopping system message bus... Unmounting remote filesystems. [ 112.344583] default_device_exit: failed to move eth0 to init_net: -22 [ 112.356199] kernel BUG at net/core/dev.c:5805! [ 112.360745] Unable to handle kernel NULL pointer dereference at virtual address 00000000 [ 112.368881] pgd = c0004000 [ 112.371676] [00000000] *pgd=00000000 [ 112.375283] Internal error: Oops: 817 [#1] PREEMPT [ 112.380094] last sysfs file: /sys/devices/platform/orion-ehci.0/usb1/1-1/1-1.1/1-1.1:1.0/host1/target1:0:0/1:0:0:1/block/sdb/size [ 112.391794] Modules linked in: ipv6 nls_utf8 nls_cp437 fuse uap8xxx libertas_sdio btmrvl_sdio libertas btmrvl bluetooth cfg80211 rfkill lib80211 mv_cesa aes_generic mvsdio nfs lockd nfs_acl auth_rpcgss sunrpc mv643xx_eth fscache xfs jfs reiserfs ext4 ext3 ext2 mbcache dm_mod md_mod exportfs jbd2 jbd vfat fat ums_onetouch ums_jumpshot ums_alauda ums_sddr55 ums_sddr09 ums_isd200 ums_freecom ums_usbat ums_cypress usb_storage usb_libusual ohci_hcd usbhid hid uhci_hcd ehci_hcd usbcore nls_base sata_mv libata mmc_block mmc_core scsi_tgt sr_mod cdrom sd_mod crc_t10dif sg scsi_mod [ 112.443316] CPU: 0 Not tainted (2.6.33.5-kirkwood #2) [ 112.448744] PC is at __bug+0x18/0x24 [ 112.452340] LR is at __bug+0x14/0x24 [ 112.455935] pc : [<c002b33c>] lr : [<c002b338>] psr: 60000013 [ 112.455940] sp : df851f28 ip : 00000000 fp : df801f28 [ 112.467477] r10: 00000000 r9 : c0267860 r8 : c040cc68 [ 112.472727] r7 : df851f30 r6 : c04736c8 r5 : dfd3e000 r4 : dfeb6000 [ 112.479284] r3 : 00000000 r2 : df851f1c r1 : c0381b51 r0 : 00000038 [ 112.485843] Flags: nZCv IRQs on FIQs on Mode SVC_32 ISA ARM Segment kernel [ 112.493184] Control: 0005397f Table: 1e014000 DAC: 00000017 [ 112.498957] Process netns (pid: 9, stack limit = 0xdf850270) [ 112.504642] Stack: (0xdf851f28 to 0xdf852000) [ 112.509024] 1f20: dfeb6000 c026dc68 32766564 bf5a1a00 c0473690 df851f68 [ 112.517248] 1f40: c040cc6c c040ced8 c0473690 df851f68 c040cc6c c0267028 c040ced8 c040cc4c [ 112.525471] 1f60: c0412d60 c0267970 c04736a4 c04736a4 c047369c c047369c df850000 df801f20 [ 112.533693] 1f80: c0412d60 c005bc90 00000000 00000000 00000e88 00000000 df838b00 c005fcb4 [ 112.541917] 1fa0: df851fa0 df851fa0 df801f20 df823f00 df851fd4 c005ba88 df801f20 00000000 [ 112.550139] 1fc0: 00000000 00000000 00000000 c005f848 00000000 00000000 df851fd8 df851fd8 [ 112.558362] 1fe0: 00000000 00000000 00000000 00000000 00000000 c0028a74 0000ffff 0000ffff [ 112.566593] [<c002b33c>] (__bug+0x18/0x24) from [<c026dc68>] (default_device_exit+0x84/0xc0) [ 112.575084] [<c026dc68>] (default_device_exit+0x84/0xc0) from [<c0267028>] (ops_exit_list+0x2c/0x60) [ 112.584263] [<c0267028>] (ops_exit_list+0x2c/0x60) from [<c0267970>] (cleanup_net+0x110/0x1b8) [ 112.592927] [<c0267970>] (cleanup_net+0x110/0x1b8) from [<c005bc90>] (worker_thread+0x208/0x2cc) [ 112.601765] [<c005bc90>] (worker_thread+0x208/0x2cc) from [<c005f848>] (kthread+0x78/0x80) [ 112.610072] [<c005f848>] (kthread+0x78/0x80) from [<c0028a74>] (kernel_thread_exit+0x0/0x8) [ 112.618469] Code: e1a01000 e59f000c eb0b13a2 e3a03000 (e5833000) [ 112.624677] ---[ end trace 5962ca148b8ec255 ]--- Saving random seed from /dev/urandom in /etc/random-seed. Turning off swap. Unmounting local file systems. tmpfs umounted tmpfs umounted /dev/sdb1 umounted usbfs umounted /dev/sdb2 umounted Remounting root filesystem read-only. /dev/sdb2 on / type ext4 (ro) Rebooting. Anyway, it's up and running now, even though I guess I'll have to use the JTAG console on any kernel upgrades :/ r...@guruplug:~# uname -a Linux guruplug 2.6.33.5-kirkwood #2 PREEMPT Thu May 27 14:47:11 BST 2010 armv5tel Feroceon 88FR131 rev 1 (v5l) Marvell GuruPlug Reference Board GNU/Linux r...@guruplug:~# mount /dev/sdb2 on / type ext4(rw,relatime,barrier=1,data=ordered) proc on /proc type proc (rw) sysfs on /sys type sysfs (rw) usbfs on /proc/bus/usb type usbfs (rw) /dev/sdb1 on /boot type vfat (rw) tmpfs on /dev/shm type tmpfs (rw) tmpfs on /tmp type tmpfs (rw) -RW
signature.asc
Description: PGP signature
_______________________________________________ ARMedslack mailing list [email protected] http://lists.armedslack.org/mailman/listinfo/armedslack
