Innes Read | 21 Aug 17:12 2011
Picon

DreamPlug hang

Hi,

Newbie alert!  This is my first post and first steps with the Kirkwood 
ARM stuff so please go easy on me.

I've just obtained a Dreamplug device, basically a slightly upgraded 
Guruplug.  Following the Armedslack install instructions I get a solidly 
reproducible hang on initial kernel boot.  For grins I saw someone on 
the list had posted a 2.6.38.7 kernel and I installed the uImage for 
that onto a memory card and booted... with exactly the same result.  My 
uneducated guess is that there is some module that is locking the system 
up (wrong/missing) and/or I've forgotten something really important!

I'm happy to provide additional data and try suggestions out, in fact it 
would be a great learning experience on how the initial kernel stuff 
works.  I've pasted a failing boot below, and following that is a 
working one using the kernel supplied with the device.  Here's the 
failing boot from the U-Boot prompt.  The uImage file is on a FAT16 
partition, /dev/sdb1, and the uinitrd is the same place and also copied 
to the second ext2 partition, /dev/sdb2 (or in RAM if doing TFTP):

run bootcmd_sdb

(Re)start USB...
USB:   Register 10011 NbrPorts 1
USB EHCI 1.00
scanning bus for devices... 4 USB Device(s) found
        scanning bus for storage devices... 2 Storage Device(s) found
reading uImage

2024580 bytes read
## Booting kernel from Legacy Image at 06400000 ...
    Image Name:   Linux-2.6.38.7-kirkwood
    Created:      2011-05-26   7:29:53 UTC
    Image Type:   ARM Linux Kernel Image (uncompressed)
    Data Size:    2024516 Bytes = 1.9 MiB
    Load Address: 00008000
    Entry Point:  00008000
    Verifying Checksum ... OK
    Loading Kernel Image ... OK
OK

Starting kernel ...

Uncompressing Linux... done, booting the kernel.
[    0.000000] Linux version 2.6.38.7-kirkwood (root <at> slackware) (gcc 
version 4.5.2 (GCC) ) #1 PREEMPT Thu May 26 08:29:19 BST 2011
[    0.000000] CPU: Feroceon 88FR131 [56251311] revision 1 (ARMv5TE), 
cr=00053977
[    0.000000] CPU: VIVT data cache, VIVT instruction cache
[    0.000000] Machine: Marvell GuruPlug Reference Board
[    0.000000] Memory policy: ECC disabled, Data cache writeback
[    0.000000] Built 1 zonelists in Zone order, mobility grouping on. 
Total pages: 130048
[    0.000000] Kernel command line: console=ttyS0,115200 root=/dev/sdb2 
panic=10 rootwait
[    0.000000] PID hash table entries: 2048 (order: 1, 8192 bytes)
[    0.000000] Dentry cache hash table entries: 65536 (order: 6, 262144 
bytes)
[    0.000000] Inode-cache hash table entries: 32768 (order: 5, 131072 
bytes)
[    0.000000] Memory: 512MB = 512MB total
[    0.000000] Memory: 515308k/515308k available, 8980k reserved, 0K highmem
[    0.000000] Virtual kernel memory layout:
[    0.000000]     vector  : 0xffff0000 - 0xffff1000   (   4 kB)
[    0.000000]     fixmap  : 0xfff00000 - 0xfffe0000   ( 896 kB)
[    0.000000]     DMA     : 0xffc00000 - 0xffe00000   (   2 MB)
[    0.000000]     vmalloc : 0xe0800000 - 0xfe800000   ( 480 MB)
[    0.000000]     lowmem  : 0xc0000000 - 0xe0000000   ( 512 MB)
[    0.000000]     modules : 0xbf000000 - 0xc0000000   (  16 MB)
[    0.000000]       .init : 0xc0008000 - 0xc0029000   ( 132 kB)
[    0.000000]       .text : 0xc0029000 - 0xc03ce968   (3735 kB)
[    0.000000]       .data : 0xc03d0000 - 0xc03f7af8   ( 159 kB)
[    0.000000] Preemptable hierarchical RCU implementation.
[    0.000000] 	RCU-based detection of stalled CPUs is disabled.
[    0.000000] 	Verbose stalled-CPUs detection is disabled.
[    0.000000] NR_IRQS:114
[    0.000000] sched_clock: 32 bits at 200MHz, resolution 5ns, wraps 
every 21474ms
[    0.000000] Console: colour dummy device 80x30
[    3.656806] Calibrating delay loop... 1192.75 BogoMIPS (lpj=5963776)
[    3.896687] pid_max: default: 32768 minimum: 301
[    3.896820] Security Framework initialized
[    3.896892] Mount-cache hash table entries: 512
[    3.897193] Initializing cgroup subsys ns
[    3.897205] ns_cgroup deprecated: consider using the 'clone_children' 
flag without the ns_cgroup.
[    3.897218] Initializing cgroup subsys cpuacct
[    3.897233] Initializing cgroup subsys devices
[    3.897242] Initializing cgroup subsys freezer
[    3.897251] Initializing cgroup subsys net_cls
[    3.897280] CPU: Testing write buffer coherency: ok
[    3.899729] print_constraints: dummy:
[    3.899900] NET: Registered protocol family 16
[    3.901086] Kirkwood: MV88F6281-A1, TCLK=200000000.
[    3.901099] Feroceon L2: Cache support initialised.
[    3.910270] bio: create slab <bio-0> at 0
[    3.911024] vgaarb: loaded
[    3.912520] Switching to clocksource orion_clocksource
[    3.916683] Switched to NOHz mode on CPU #0
[    3.931135] NET: Registered protocol family 2
[    3.931348] IP route cache hash table entries: 4096 (order: 2, 16384 
bytes)
[    3.932062] TCP established hash table entries: 16384 (order: 5, 
131072 bytes)
[    3.932415] TCP bind hash table entries: 16384 (order: 4, 65536 bytes)
[    3.933112] TCP: Hash tables configured (established 16384 bind 16384)
[    3.933125] TCP reno registered
[    3.933138] UDP hash table entries: 256 (order: 0, 4096 bytes)
[    3.933161] UDP-Lite hash table entries: 256 (order: 0, 4096 bytes)
[    3.933454] NET: Registered protocol family 1
[    3.934652] audit: initializing netlink socket (disabled)
[    3.934688] type=2000 audit(0.270:1): initialized
[    3.993557] VFS: Disk quotas dquot_6.5.2
[    3.993672] Dquot-cache hash table entries: 1024 (order 0, 4096 bytes)
[    3.993781] JFFS2 version 2.2. (NAND) (SUMMARY)  © 2001-2006 Red Hat, 
Inc.
[    3.994168] msgmni has been set to 1006
[    3.995000] Block layer SCSI generic (bsg) driver version 0.4 loaded 
(major 253)
[    3.995015] io scheduler noop registered
[    3.995024] io scheduler deadline registered
[    3.995084] io scheduler cfq registered (default)
[    4.170023] Serial: 8250/16550 driver, 2 ports, IRQ sharing disabled
[    4.191940] serial8250.0: ttyS0 at MMIO 0xf1012000 (irq = 33) is a 16550A
[    4.565649] console [ttyS0] enabled
[    4.577548] brd: module loaded

The system locks up absolutely solid at this point, every time, whether 
I boot with the 2.6.38.7 kernel as above or if I boot, via TFTP, the 
install kernel from Slackware 13.37.  For comparison, here's the boot 
from the stock kernel that comes with the Dreamplug:

U-Boot 2011.06-02334-g8f495d9-dirty (Mar 28 2011 - 05:21:06)
Marvell-DreamPlug

SoC:   Kirkwood 88F6281_A0
DRAM:  512 MiB
SF: Detected MX25L1606 with page size 256, total 1 MiB
In:    serial
Out:   serial
Err:   serial
Net:   egiga0, egiga1
88E1121 Initialized on egiga0
88E1121 Initialized on egiga1
Hit any key to stop autoboot: 0
Marvell>> printenv

baudrate=115200
x_bootcmd_ethernet=ping 192.168.2.1
x_bootcmd_usb=usb start
x_bootcmd_kernel=fatload usb 0 0x6400000 uImage
x_bootargs=console=ttyS0,115200
x_bootargs_root=root=/dev/sda2 rootdelay=10
ethact=egiga0
ethaddr=F0:AD:4E:00:7B:4B
eth1addr=F0:AD:4E:00:7B:4C
ipaddr=192.168.1.14
serverip=192.168.1.13
arcNumber=2659
mainlineLinux=yes
bootdelay=10
bootcmd_sdb=setenv bootargs console=ttyS0,115200 root=/dev/sdb2 panic=10 
rootwait; usb start; run boot_sdb;
boot_sdb=fatload usb 1 0x6400000 uImage; bootm 0x6400000;
bootcmd_sda=${bootcmd_eth}; ${x_bootcmd_usb}; ${x_bootcmd_kernel}; 
setenv bootargs ${x_bootargs} ${x_bootargs_root}; bootm 0x6400000;
bootcmd_eth=setenv ethact egiga0; ${x_bootcmd_ethernet}; setenv ethact 
egiga1; ${x_bootcmd_ethernet}
clear_kernel_in_mem=echo Purging kernel in memory; mw 0x6400000 0x0 0x300000
bootcmd=run clear_kernel_in_mem; run bootcmd_sdb; run bootcmd_sda
stdin=serial
stdout=serial
stderr=serial

Environment size: 940/4092 bytes
Marvell>> run bootcmd_sda

(Re)start USB...
USB:   Register 10011 NbrPorts 1
USB EHCI 1.00
scanning bus for devices... 4 USB Device(s) found
        scanning bus for storage devices... 2 Storage Device(s) found
reading uImage

2712400 bytes read
## Booting kernel from Legacy Image at 06400000 ...
    Image Name:   Linux-2.6.33.6
    Created:      2011-02-08   8:18:48 UTC
    Image Type:   ARM Linux Kernel Image (uncompressed)
    Data Size:    2712336 Bytes = 2.6 MiB
    Load Address: 00008000
    Entry Point:  00008000
    Verifying Checksum ... OK
    Loading Kernel Image ... OK
OK

Starting kernel ...

Uncompressing Linux... done, booting the kernel.
Linux version 2.6.33.6 (root <at> localhost.localdomain) (gcc version 4.2.1) 
#1 PREEMPT Tue Feb 8 03:18:41 EST 2011
CPU: Feroceon 88FR131 [56251311] revision 1 (ARMv5TE), cr=00053977
CPU: VIVT data cache, VIVT instruction cache
Machine: Marvell GuruPlug Reference Board
Memory policy: ECC disabled, Data cache writeback
Built 1 zonelists in Zone order, mobility grouping on.  Total pages: 130048
Kernel command line: console=ttyS0,115200 root=/dev/sda2 rootdelay=10
PID hash table entries: 2048 (order: 1, 8192 bytes)
Dentry cache hash table entries: 65536 (order: 6, 262144 bytes)
Inode-cache hash table entries: 32768 (order: 5, 131072 bytes)
Memory: 256MB 256MB = 512MB total
Memory: 513408KB available (4832K code, 862K data, 140K init, 0K highmem)
SLUB: Genslabs=11, HWalign=32, Order=0-3, MinObjects=0, CPUs=1, Nodes=1
Hierarchical RCU implementation.
NR_IRQS:114
Console: colour dummy device 80x30
Calibrating delay loop... 1192.75 BogoMIPS (lpj=5963776)
Mount-cache hash table entries: 512
CPU: Testing write buffer coherency: ok
NET: Registered protocol family 16
Kirkwood: MV88F6281-A1, TCLK=200000000.
Feroceon L2: Cache support initialised.
bio: create slab <bio-0> at 0
vgaarb: loaded
SCSI subsystem initialized
usbcore: registered new interface driver usbfs
usbcore: registered new interface driver hub
usbcore: registered new device driver usb
cfg80211: Using static regulatory domain info
cfg80211: Regulatory domain: 00
     (start_freq - end_freq  <at>  bandwidth), (max_antenna_gain, max_eirp)
     (2402000 KHz - 2472000 KHz  <at>  40000 KHz), (600 mBi, 2000 mBm)
     (2457000 KHz - 2482000 KHz  <at>  20000 KHz), (600 mBi, 2000 mBm)
     (2474000 KHz - 2494000 KHz  <at>  20000 KHz), (600 mBi, 2000 mBm)
     (5170000 KHz - 5250000 KHz  <at>  40000 KHz), (600 mBi, 2000 mBm)
     (5735000 KHz - 5835000 KHz  <at>  40000 KHz), (600 mBi, 2000 mBm)
cfg80211: Calling CRDA to update world regulatory domain
Switching to clocksource orion_clocksource
NET: Registered protocol family 2
IP route cache hash table entries: 4096 (order: 2, 16384 bytes)
TCP established hash table entries: 16384 (order: 5, 131072 bytes)
TCP bind hash table entries: 16384 (order: 4, 65536 bytes)
TCP: Hash tables configured (established 16384 bind 16384)
TCP reno registered
UDP hash table entries: 256 (order: 0, 4096 bytes)
UDP-Lite hash table entries: 256 (order: 0, 4096 bytes)
NET: Registered protocol family 1
RPC: Registered udp transport module.
RPC: Registered tcp transport module.
RPC: Registered tcp NFSv4.1 backchannel transport module.
JFFS2 version 2.2. (NAND) © 2001-2006 Red Hat, Inc.
JFS: nTxBlock = 4012, nTxLock = 32102
msgmni has been set to 1003
alg: No test for stdrng (krng)
io scheduler noop registered
io scheduler deadline registered
io scheduler cfq registered (default)
Serial: 8250/16550 driver, 2 ports, IRQ sharing disabled
serial8250.0: ttyS0 at MMIO 0xf1012000 (irq = 33) is a 16550A
console [ttyS0] enabled
brd: module loaded
loop: module loaded
No NAND device found.
MV-643xx 10/100/1000 ethernet driver version 1.4
mv643xx_eth smi: probed
net eth0: port 0 with MAC address f0:ad:4e:00:7b:4b
net eth1: port 0 with MAC address f0:ad:4e:00:7b:4c
ehci_hcd: USB 2.0 'Enhanced' Host Controller (EHCI) Driver
orion-ehci orion-ehci.0: Marvell Orion EHCI
orion-ehci orion-ehci.0: new USB bus registered, assigned bus number 1
orion-ehci orion-ehci.0: irq 19, io mem 0xf1050000
orion-ehci orion-ehci.0: USB 2.0 started, EHCI 1.00
hub 1-0:1.0: USB hub found
hub 1-0:1.0: 1 port detected
Initializing USB Mass Storage driver...
usbcore: registered new interface driver usb-storage
USB Mass Storage support registered.
usbcore: registered new interface driver ums-datafab
usbcore: registered new interface driver ums-freecom
usbcore: registered new interface driver ums-jumpshot
usbcore: registered new interface driver ums-sddr09
usbcore: registered new interface driver ums-sddr55
mice: PS/2 mouse device common for all mice
rtc-mv rtc-mv: rtc core: registered rtc-mv as rtc0
i2c /dev entries driver
cpuidle: using governor ladder
cpuidle: using governor menu
sdhci: Secure Digital Host Controller Interface driver
sdhci: Copyright(c) Pierre Ossman
mmc0: mvsdio driver initialized, lacking card detect (fall back to polling)
Registered led device: guruplug:red:health
Registered led device: guruplug:green:health
Registered led device: guruplug:red:wmode
Registered led device: guruplug:green:wmode
mv_xor_shared mv_xor_shared.0: Marvell shared XOR driver
mv_xor_shared mv_xor_shared.1: Marvell shared XOR driver
mv_xor mv_xor.0: Marvell XOR: ( xor cpy )
mmc0: new high speed SDIO card at address 0001
mv_xor mv_xor.1: Marvell XOR: ( xor fill cpy )
mv_xor mv_xor.2: Marvell XOR: ( xor cpy )
mv_xor mv_xor.3: Marvell XOR: ( xor fill cpy )
usbcore: registered new interface driver hiddev
usbcore: registered new interface driver usbhid
usbhid: USB HID core driver
oprofile: using timer interrupt.
TCP cubic registered
NET: Registered protocol family 17
lib80211: common routines for IEEE802.11 drivers
rtc-mv rtc-mv: setting system clock to 2011-08-21 14:12:27 UTC (1313935947)
Waiting 10sec before mounting root device...
usb 1-1: new high speed USB device using orion-ehci and address 2
hub 1-1:1.0: USB hub found
hub 1-1:1.0: 4 ports detected
usb 1-1.1: new high speed USB device using orion-ehci and address 3
scsi0 : usb-storage 1-1.1:1.0
usb 1-1.4: new full speed USB device using orion-ehci and address 4
input: C-Media USB Headphone Set   as 
/devices/platform/orion-ehci.0/usb1/1-1/1-1.4/1-1.4:1.3/input/input0
generic-usb 0003:0D8C:000C.0001: input: USB HID v1.00 Device [C-Media 
USB Headphone Set  ] on usb-orion-ehci.0-1.4/input3
scsi 0:0:0:0: Direct-Access     Generic  STORAGE DEVICE   9910 PQ: 0 ANSI: 0
sd 0:0:0:0: Attached scsi generic sg0 type 0
scsi 0:0:0:1: Direct-Access     Generic  STORAGE DEVICE   9910 PQ: 0 ANSI: 0
sd 0:0:0:0: [sda] 3842048 512-byte logical blocks: (1.96 GB/1.83 GiB)
sd 0:0:0:1: Attached scsi generic sg1 type 0
sd 0:0:0:0: [sda] Write Protect is off
sd 0:0:0:0: [sda] Assuming drive cache: write through
sd 0:0:0:1: [sdb] 16121856 512-byte logical blocks: (8.25 GB/7.68 GiB)
sd 0:0:0:1: [sdb] Write Protect is off
sd 0:0:0:1: [sdb] Assuming drive cache: write through
sd 0:0:0:0: [sda] Assuming drive cache: write through
  sda: sda1 sda2
sda: p2 size 3653412 exceeds device capacity, limited to end of disk
sd 0:0:0:1: [sdb] Assuming drive cache: write through
  sdb:
sd 0:0:0:0: [sda] Assuming drive cache: write through
sd 0:0:0:0: [sda] Attached SCSI removable disk
  sdb1 sdb2
sd 0:0:0:1: [sdb] Assuming drive cache: write through
sd 0:0:0:1: [sdb] Attached SCSI removable disk
EXT3-fs (sda2): warning: maximal mount count reached, running e2fsck is 
recommended
kjournald starting.  Commit interval 5 seconds
EXT3-fs (sda2): using internal journal
EXT3-fs (sda2): mounted filesystem with writeback data mode
VFS: Mounted root (ext3 filesystem) on device 8:2.
Freeing init memory: 140K
  * Filesystem type 'fusectl' is not supported. Skipping mount.
  * Setting preliminary keymap...       
[ OK ]
  * Starting kernel event manager...       
[ OK ]
  * Loading hardware drivers...        Bluetooth: Core ver 2.15
NET: Registered protocol family 31
Bluetooth: HCI device and connection manager initialized
Bluetooth: HCI socket layer initialized
sata_mv sata_mv.0: version 1.28
sata_mv sata_mv.0: slots 32 ports 1
scsi1 : sata_mv
libertas_sdio: Libertas SDIO driver
ata1: SATA max UDMA/133 irq 21
libertas_sdio: Copyright Pierre Ossman
libertas_sdio mmc0:0001:1: firmware: requesting sd8688_helper.bin
ata1: SATA link down (SStatus 0 SControl F300)
libertas: can't load helper firmware
libertas: failed to load helper firmware
libertas_sdio: probe of mmc0:0001:1 failed with error -2
Bluetooth: vendor=0x2df, device=0x9105, class=255, fn=2
btmrvl_sdio mmc0:0001:2: firmware: requesting sd8688_helper.bin
btmrvl_sdio_download_helper: request_firmware(helper) failed, error code 
= -2
btmrvl_sdio_download_fw: Failed to download helper!
btmrvl_sdio_probe: Downloading firmware failed!
eth1: link up, 100 Mb/s, full duplex, flow control disabled
uap_probe: vendor=0x02DF device=0x9104 class=0 function=1
uap_sdio mmc0:0001:1: firmware: requesting mrvl/helper_sd.bin
uap_sdio mmc0:0001:1: firmware: requesting mrvl/sd8688_ap.bin
UAP FW is active
usbcore: registered new interface driver snd-usb-audio
kjournald starting.  Commit interval 5 seconds
EXT3-fs (sdb2): using internal journal
EXT3-fs (sdb2): mounted filesystem with writeback data mode
NET: Registered protocol family 10
ADDRCONF(NETDEV_UP): eth0: link is not ready

[ OK ]
  * Loading kernel modules...         * Loading manual drivers... 
      
[ OK ]
  * Setting kernel variables (/etc/sysctl.conf)...       
[ OK ]
  * Setting kernel variables (/etc/sysctl.d/10-console-messages.conf)... 
       
[ OK ]
  * Setting kernel variables (/etc/sysctl.d/10-network-security.conf)... 
       
[ OK ]
  * Activating swap...       
[ OK ]
  * Starting early crypto disks...       
[ OK ]
  * Starting remaining crypto disks...       
[ OK ]
  * Checking file systems...        fsck 1.41.4 (27-Jan-2009)

[ OK ]
  * Mounting local filesystems...       
[ OK ]
  * Activating swapfile swap...       
[ OK ]
  * Configuring network interfaces...       
[ OK ]
  * Setting up console font and keymap...       
[ OK ]
  * Starting system log daemon...       
[ OK ]
  * Starting kernel log daemon...       
[ OK ]

  * Starting system message bus dbus       Ubuntu 9.04 DreamPlug ttyS0

Cheers,  Innes.

Gmane