Marvell 86868 SDIO firmware loading failure

Maurus Cuelenaere mcuelenaere at gmail.com
Tue Oct 13 15:10:13 EDT 2009


Hi,

I'm porting Linux 2.6.32 over to the SmartQ 7, an ARM11 MID running on the
Samsung S3C6410 SoC.

The board has a Universal Scientific Industrial WM-G-MR-09 wifi chip (see [1]),
which has a Marvell 88W8686 as chipset (and is connected over SDIO).

I've compiled the libertas drivers statically, but get these messages in the
kernel log:

[   11.200000] libertas_sdio mmc2:0001:1: firmware: requesting sd8686.bin
[   18.880000] libertas: firmware wants 16 bytes
[   18.880000] libertas: firmware wants 512 bytes
[   18.970000] libertas: firmware wants 17 bytes
[   18.970000] libertas: firmware helper signalled error
[   19.050000] libertas: failed to load firmware

(I'm using SD-8686-LINUX26-SYSKT-9.70.3.p24-26409.P45-GPL.zip, see [2])

[1] - http://www.edom.com.tw/vender/product/WM-G-MR-09_Spec_v17_20071012.pdf
[2] - http://www.marvell.com/drivers/driverDisplay.do?driverId=203

Any ideas?

P.S.: I've attached the full dmesg log below

P.P.S.: could you please CC me when replying as I disabled receiving messages
from this mailing list.

Thanks,
Maurus Cuelenaere


[    0.000000] Linux version 2.6.32-rc3-00082-g37e6b6d-dirty
(mcuelenaere at wim2160) (gcc version 4.3.3 (GCC) ) #304 PREEMPT Tue Oct
13 00:25:03 CEST 2009
[    0.000000] CPU: ARMv6-compatible processor [410fb766] revision 6
(ARMv7), cr=00c5387f
[    0.000000] CPU: VIPT nonaliasing data cache, VIPT nonaliasing
instruction cache
[    0.000000] Machine: SmartQ 7
[    0.000000] Memory policy: ECC disabled, Data cache writeback
[    0.000000] On node 0 totalpages: 32768
[    0.000000] free_area_init_node: node 0, pgdat 8036e488,
node_mem_map 803c1000
[    0.000000]   Normal zone: 256 pages used for memmap
[    0.000000]   Normal zone: 0 pages reserved
[    0.000000]   Normal zone: 32512 pages, LIFO batch:7
[    0.000000] CPU S3C6410 (id 0x36410101)
[    0.000000] s3c6410_init_clocks: initialising clocks
[    0.000000] S3C24XX Clocks, (c) 2004 Simtec Electronics
[    0.000000] s3c6400_setup_clocks: registering clocks
[    0.000000] s3c6400_setup_clocks: clkdiv0 = 01043310
[    0.000000] s3c6400_setup_clocks: xtal is 12000000
[    0.000000] S3C64XX: PLL settings, A=532000000, M=532000000, E=24000000
[    0.000000] S3C64XX: HCLK2=266000000, HCLK=133000000, PCLK=66500000
[    0.000000] mout_apll: source is fout_apll (1), rate is 532000000
[    0.000000] mout_epll: source is fout_epll (1), rate is 24000000
[    0.000000] mout_mpll: source is mpll (1), rate is 532000000
[    0.000000] mmc_bus: source is mout_epll (0), rate is 24000000
[    0.000000] mmc_bus: source is mout_epll (0), rate is 24000000
[    0.000000] mmc_bus: source is mout_epll (0), rate is 24000000
[    0.000000] usb-bus-host: source is clk_48m (0), rate is 48000000
[    0.000000] s3c64xx_clk_doutmpll_get_rate: parent is 532000000
[    0.000000] uclk1: source is dout_mpll (1), rate is 66500000
[    0.000000] spi-bus: source is mout_epll (0), rate is 24000000
[    0.000000] spi-bus: source is mout_epll (0), rate is 24000000
[    0.000000] audio-bus: source is mout_epll (0), rate is 24000000
[    0.000000] audio-bus: source is mout_epll (0), rate is 24000000
[    0.000000] irda-bus: source is mout_epll (0), rate is 24000000
[    0.000000] camera: source is hclk2 (0), rate is 266000000
[    0.000000] Built 1 zonelists in Zone order, mobility grouping on.
Total pages: 32512
[    0.000000] Kernel command line: loglevel=6 rootwait
s3cfb.backlight=80 root=/dev/mmcblk1p1
[    0.000000] Unknown boot option `s3cfb.backlight=80': ignoring
[    0.000000] PID hash table entries: 512 (order: -1, 2048 bytes)
[    0.000000] Dentry cache hash table entries: 16384 (order: 4, 65536 bytes)
[    0.000000] Inode-cache hash table entries: 8192 (order: 3, 32768 bytes)
[    0.000000] Memory: 128MB = 128MB total
[    0.000000] Memory: 125936KB available (3016K code, 452K data, 120K
init, 0K highmem)
[    0.000000] SLUB: Genslabs=11, HWalign=32, Order=0-3, MinObjects=0,
CPUs=1, Nodes=1
[    0.000000] Hierarchical RCU implementation.
[    0.000000] NR_IRQS:246
[    0.000000] s3c64xx_init_irq: initialising interrupts
[    0.000000] VIC @f4000000: id 0x00041192, vendor 0x41
[    0.000000] VIC @f4010000: id 0x00041192, vendor 0x41
[    0.000000] timer tcon=00000000, tcnt 1b0f0, tcfg
00000201,00010000, usec 00001719
[    0.000000] Console: colour dummy device 80x30
[    0.000000] console [tty0] enabled
[    0.000000] Calibrating delay loop... 530.84 BogoMIPS (lpj=2654208)
[    0.250000] Mount-cache hash table entries: 512
[    0.250000] CPU: Testing write buffer coherency: ok
[    0.250000] NET: Registered protocol family 16
[    0.370000] s3c64xx_dma_init: Registering DMA channels
[    0.370000] s3c64xx_dma_init1: registering DMA 0 (88808100)
[    0.370000] s3c64xx_dma_init1: registering DMA 1 (88808120)
[    0.370000] s3c64xx_dma_init1: registering DMA 2 (88808140)
[    0.370000] s3c64xx_dma_init1: registering DMA 3 (88808160)
[    0.370000] s3c64xx_dma_init1: registering DMA 4 (88808180)
[    0.370000] s3c64xx_dma_init1: registering DMA 5 (888081a0)
[    0.370000] s3c64xx_dma_init1: registering DMA 6 (888081c0)
[    0.370000] s3c64xx_dma_init1: registering DMA 7 (888081e0)
[    0.370000] PL080: IRQ 73, at 88808000
[    0.370000] s3c64xx_dma_init1: registering DMA 8 (8880c100)
[    0.370000] s3c64xx_dma_init1: registering DMA 9 (8880c120)
[    0.370000] s3c64xx_dma_init1: registering DMA 10 (8880c140)
[    0.370000] s3c64xx_dma_init1: registering DMA 11 (8880c160)
[    0.370000] s3c64xx_dma_init1: registering DMA 12 (8880c180)
[    0.370000] s3c64xx_dma_init1: registering DMA 13 (8880c1a0)
[    0.370000] s3c64xx_dma_init1: registering DMA 14 (8880c1c0)
[    0.370000] s3c64xx_dma_init1: registering DMA 15 (8880c1e0)
[    0.370000] PL080: IRQ 74, at 8880c000
[    0.370000] S3C6410: Initialising architecture
[    0.370000] s3c24xx-pwm s3c24xx-pwm.1: tin at 33250000, tdiv at
33250000, tin=divclk, base 8
[    0.370000] s3c-adc s3c-adc: attached adc driver
[    0.410000] bio: create slab <bio-0> at 0
[    0.420000] SCSI subsystem initialized
[    0.420000] usbcore: registered new interface driver usbfs
[    0.420000] usbcore: registered new interface driver hub
[    0.420000] usbcore: registered new device driver usb
[    0.440000] NET: Registered protocol family 2
[    0.440000] IP route cache hash table entries: 1024 (order: 0, 4096 bytes)
[    0.440000] TCP established hash table entries: 4096 (order: 3, 32768 bytes)
[    0.440000] TCP bind hash table entries: 4096 (order: 2, 16384 bytes)
[    0.440000] TCP: Hash tables configured (established 4096 bind 4096)
[    0.440000] TCP reno registered
[    0.440000] NET: Registered protocol family 1
[    0.490000] msgmni has been set to 246
[    0.490000] io scheduler noop registered
[    0.490000] io scheduler anticipatory registered
[    0.490000] io scheduler deadline registered
[    0.490000] io scheduler cfq registered (default)
[    0.520000] Console: switching to colour frame buffer device 100x30
[    0.540000] s3c-fb s3c-fb: window 0: fb
[    1.420000] libertas_sdio: Libertas SDIO driver
[    1.420000] libertas_sdio: Copyright Pierre Ossman
[    1.430000] ohci_hcd: USB 1.1 'Open' Host Controller (OHCI) Driver
[    1.440000] s3c2410-ohci s3c2410-ohci: S3C24XX OHCI
[    1.440000] s3c2410-ohci s3c2410-ohci: new USB bus registered,
assigned bus number 1
[    1.450000] s3c2410-ohci s3c2410-ohci: irq 79, io mem 0x74300000
[    1.510000] usb usb1: New USB device found, idVendor=1d6b, idProduct=0001
[    1.520000] usb usb1: New USB device strings: Mfr=3, Product=2,
SerialNumber=1
[    1.520000] usb usb1: Product: S3C24XX OHCI
[    1.530000] usb usb1: Manufacturer: Linux
2.6.32-rc3-00082-g37e6b6d-dirty ohci_hcd
[    1.530000] usb usb1: SerialNumber: s3c24xx
[    1.540000] usb usb1: configuration #1 chosen from 1 choice
[    1.550000] hub 1-0:1.0: USB hub found
[    1.550000] hub 1-0:1.0: 2 ports detected
[    1.560000] Initializing USB Mass Storage driver...
[    1.570000] usbcore: registered new interface driver usb-storage
[    1.570000] USB Mass Storage support registered.
[    1.580000] s3c-hsotg s3c-hsotg: regs 88820000, irq 90
[    1.590000] s3c-hsotg s3c-hsotg: Failed to get CSftRst asserted
[    1.590000] s3c-hsotg s3c-hsotg: GRXFSIZ=0x00001800, GNPTXFSIZ=0x18001800
[    1.600000] s3c-hsotg s3c-hsotg: cannot create debug root
[    1.600000] s3c-hsotg s3c-hsotg: DCFG=0x00200000, DCTL=0x00000000,
DIEPMSK=0000000f
[    1.610000] s3c-hsotg s3c-hsotg: GAHBCFG=0x00000000, 0x44=0x00000000
[    1.620000] s3c-hsotg s3c-hsotg: GRXFSIZ=0x00000800, GNPTXFSIZ=0x01c00800
[    1.620000] s3c-hsotg s3c-hsotg: DPTx[1] FSize=768, StAddr=0x00001000
[    1.630000] s3c-hsotg s3c-hsotg: DPTx[2] FSize=768, StAddr=0x00003300
[    1.630000] s3c-hsotg s3c-hsotg: DPTx[3] FSize=768, StAddr=0x00003600
[    1.640000] s3c-hsotg s3c-hsotg: DPTx[4] FSize=768, StAddr=0x00003900
[    1.640000] s3c-hsotg s3c-hsotg: DPTx[5] FSize=768, StAddr=0x00003c00
[    1.650000] s3c-hsotg s3c-hsotg: DPTx[6] FSize=768, StAddr=0x00003f00
[    1.650000] s3c-hsotg s3c-hsotg: DPTx[7] FSize=768, StAddr=0x00004200
[    1.660000] s3c-hsotg s3c-hsotg: DPTx[8] FSize=768, StAddr=0x00004500
[    1.660000] s3c-hsotg s3c-hsotg: DPTx[9] FSize=768, StAddr=0x00004800
[    1.670000] s3c-hsotg s3c-hsotg: DPTx[10] FSize=768, StAddr=0x00004b00
[    1.670000] s3c-hsotg s3c-hsotg: DPTx[11] FSize=768, StAddr=0x00004e00
[    1.680000] s3c-hsotg s3c-hsotg: DPTx[12] FSize=768, StAddr=0x00005100
[    1.680000] s3c-hsotg s3c-hsotg: DPTx[13] FSize=768, StAddr=0x00005400
[    1.690000] s3c-hsotg s3c-hsotg: DPTx[14] FSize=768, StAddr=0x00005700
[    1.690000] s3c-hsotg s3c-hsotg: DPTx[15] FSize=768, StAddr=0x00005a00
[    1.690000] s3c-hsotg s3c-hsotg: ep0-in: EPCTL=0x00008000,
SIZ=0x00000000, DMA=0x00000000
[    1.700000] s3c-hsotg s3c-hsotg: ep0-out: EPCTL=0x00008000,
SIZ=0x00000000, DMA=0x00000000
[    1.700000] s3c-hsotg s3c-hsotg: ep1-in: EPCTL=0x00000000,
SIZ=0x00000000, DMA=0x00000000
[    1.710000] s3c-hsotg s3c-hsotg: ep1-out: EPCTL=0x00000000,
SIZ=0x00000000, DMA=0x00000000
[    1.710000] s3c-hsotg s3c-hsotg: ep2-in: EPCTL=0x00000000,
SIZ=0x00000000, DMA=0x00000000
[    1.710000] s3c-hsotg s3c-hsotg: ep2-out: EPCTL=0x00000000,
SIZ=0x00000000, DMA=0x00000000
[    1.720000] s3c-hsotg s3c-hsotg: ep3-in: EPCTL=0x00000000,
SIZ=0x00000000, DMA=0x00000000
[    1.720000] s3c-hsotg s3c-hsotg: ep3-out: EPCTL=0x00000000,
SIZ=0x00000000, DMA=0x00000000
[    1.720000] s3c-hsotg s3c-hsotg: ep4-in: EPCTL=0x00000000,
SIZ=0x00000000, DMA=0x00000000
[    1.730000] s3c-hsotg s3c-hsotg: ep4-out: EPCTL=0x00000000,
SIZ=0x00000000, DMA=0x00000000
[    1.730000] s3c-hsotg s3c-hsotg: ep5-in: EPCTL=0x00000000,
SIZ=0x00000000, DMA=0x00000000
[    1.740000] s3c-hsotg s3c-hsotg: ep5-out: EPCTL=0x00000000,
SIZ=0x00000000, DMA=0x00000000
[    1.740000] s3c-hsotg s3c-hsotg: ep6-in: EPCTL=0x00000000,
SIZ=0x00000000, DMA=0x00000000
[    1.740000] s3c-hsotg s3c-hsotg: ep6-out: EPCTL=0x00000000,
SIZ=0x00000000, DMA=0x00000000
[    1.750000] s3c-hsotg s3c-hsotg: ep7-in: EPCTL=0x00000000,
SIZ=0x00000000, DMA=0x00000000
[    1.750000] s3c-hsotg s3c-hsotg: ep7-out: EPCTL=0x00000000,
SIZ=0x00000000, DMA=0x00000000
[    1.750000] s3c-hsotg s3c-hsotg: ep8-in: EPCTL=0x00000000,
SIZ=0x00000000, DMA=0x00000000
[    1.760000] s3c-hsotg s3c-hsotg: ep8-out: EPCTL=0x00000000,
SIZ=0x00000000, DMA=0x00000000
[    1.760000] s3c-hsotg s3c-hsotg: ep9-in: EPCTL=0x00000000,
SIZ=0x00000000, DMA=0x00000000
[    1.770000] s3c-hsotg s3c-hsotg: ep9-out: EPCTL=0x00000000,
SIZ=0x00000000, DMA=0x00000000
[    1.770000] s3c-hsotg s3c-hsotg: ep10-in: EPCTL=0x00000000,
SIZ=0x00000000, DMA=0x00000000
[    1.770000] s3c-hsotg s3c-hsotg: ep10-out: EPCTL=0x00000000,
SIZ=0x00000000, DMA=0x00000000
[    1.780000] s3c-hsotg s3c-hsotg: ep11-in: EPCTL=0x00000000,
SIZ=0x00000000, DMA=0x00000000
[    1.780000] s3c-hsotg s3c-hsotg: ep11-out: EPCTL=0x00000000,
SIZ=0x00000000, DMA=0x00000000
[    1.790000] s3c-hsotg s3c-hsotg: ep12-in: EPCTL=0x00000000,
SIZ=0x00000000, DMA=0x00000000
[    1.790000] s3c-hsotg s3c-hsotg: ep12-out: EPCTL=0x00000000,
SIZ=0x00000000, DMA=0x00000000
[    1.800000] s3c-hsotg s3c-hsotg: ep13-in: EPCTL=0x00000000,
SIZ=0x00000000, DMA=0x00000000
[    1.800000] s3c-hsotg s3c-hsotg: ep13-out: EPCTL=0x00000000,
SIZ=0x00000000, DMA=0x00000000
[    1.810000] s3c-hsotg s3c-hsotg: ep14-in: EPCTL=0x00000000,
SIZ=0x00000000, DMA=0x00000000
[    1.810000] s3c-hsotg s3c-hsotg: ep14-out: EPCTL=0x00000000,
SIZ=0x00000000, DMA=0x00000000
[    1.820000] s3c-hsotg s3c-hsotg: DVBUSDIS=0x000017d7, DVBUSPULSE=000005b8
[    1.820000] g_cdc gadget: using random self ethernet address
[    1.830000] g_cdc gadget: using random host ethernet address
[    1.830000] usb0: MAC 2a:b2:ae:82:12:57
[    1.840000] usb0: HOST MAC 12:7d:7a:0a:35:cf
[    1.840000] g_cdc gadget: controller 's3c-hsotg' not recognized;
trying CDC Composite (ECM + ACM)
[    1.850000] g_cdc gadget: CDC Composite Gadget, version: King
Kamehameha Day 2008
[    1.860000] g_cdc gadget: g_cdc ready
[    1.860000] s3c-hsotg s3c-hsotg: EP0: DIEPCTL0=0x00008000,
DOEPCTL0=0x00008000
[    1.870000] s3c-hsotg s3c-hsotg: DCTL=0x00000002
[    1.870000] s3c-hsotg s3c-hsotg: EP0: DIEPCTL0=0x00008000,
DOEPCTL0=0x80008000
[    1.880000] s3c-hsotg s3c-hsotg: s3c_hsotg_irq: USBRst
[    1.880000] s3c-hsotg s3c-hsotg: GNPTXSTS=000801c0
[    1.890000] s3c-hsotg s3c-hsotg: S3C_GINTSTS_USBSusp
[    1.890000] s3c-hsotg s3c-hsotg: bound driver g_cdc
[    1.900000] mice: PS/2 mouse device common for all mice
[    1.910000] input: gpio-keys as /devices/platform/gpio-keys.0/input/input0
[    1.920000] s3c-ts s3c-ts: Starting
[    1.920000] s3c-ts s3c-ts: Created Group filter len:12 coords:2
close:10 thresh:6
[    1.930000] s3c-ts s3c-ts: Created Median filter len:20 coords:2
dec_threshold:24
[    1.930000] s3c-ts s3c-ts: Created Mean filter len:4 coords:2
[    1.940000] s3c-ts s3c-ts: Created Linear filter coords:2
[    1.940000] s3c-ts s3c-ts: 4 filter(s) initialized
[    1.950000] s3c-ts s3c-ts: Successfully loaded
[    1.960000] input: s3c TouchScreen as /devices/virtual/input/input1
[    1.970000] i2c /dev entries driver
[    1.980000] i2c-gpio i2c-gpio.0: using pins 139 (SDA) and 138 (SCL)
[    1.980000] cpuidle: using governor ladder
[    1.990000] sdhci: Secure Digital Host Controller Interface driver
[    2.000000] sdhci: Copyright(c) Pierre Ossman
[    2.000000] s3c-sdhci s3c-sdhci.1: clock source 0: hsmmc (133000000 Hz)
[    2.010000] s3c-sdhci s3c-sdhci.1: clock source 1: hsmmc (133000000 Hz)
[    2.020000] s3c-sdhci s3c-sdhci.1: clock source 2: mmc_bus (24000000 Hz)
[    2.020000] Registered led device: mmc0::
[    2.030000] mmc0: SDHCI controller on samsung-hsmmc [s3c-sdhci.1] using ADMA
[    2.040000] s3c-sdhci s3c-sdhci.0: clock source 0: hsmmc (133000000 Hz)
[    2.040000] s3c-sdhci s3c-sdhci.0: clock source 1: hsmmc (133000000 Hz)
[    2.050000] s3c-sdhci s3c-sdhci.0: clock source 2: mmc_bus (24000000 Hz)
[    2.060000] Registered led device: mmc1::
[    2.060000] mmc1: SDHCI controller on samsung-hsmmc [s3c-sdhci.0] using ADMA
[    2.070000] s3c-sdhci s3c-sdhci.2: clock source 0: hsmmc (133000000 Hz)
[    2.070000] s3c-sdhci s3c-sdhci.2: clock source 1: hsmmc (133000000 Hz)
[    2.080000] s3c-sdhci s3c-sdhci.2: clock source 2: mmc_bus (24000000 Hz)
[    2.090000] mmc0: Minimum clock frequency too high for identification mode
[    2.090000] s3c6410_setup_sdhci0_cfg_card: CTRL 2=c0004100, 3=80808080
[    2.100000] Registered led device: mmc2::
[    2.110000] mmc2: SDHCI controller on samsung-hsmmc [s3c-sdhci.2] using ADMA
[    2.110000] Registered led device: red
[    2.130000] Registered led device: green
[    2.140000] Advanced Linux Sound Architecture Driver Version 1.0.21.
[    2.140000] ALSA device list:
[    2.150000]   No soundcards found.
[    2.160000] TCP cubic registered
[    2.160000] lib80211: common routines for IEEE802.11 drivers
[    2.170000] lib80211_crypt: registered algorithm 'NULL'
[    2.180000] VFP support v0.3: implementor 41 architecture 1 part 20
variant b rev 5
[    2.190000] drivers/rtc/hctosys.c: unable to open rtc device (rtc0)
[    2.200000] Waiting for root device /dev/mmcblk1p1...
[    2.260000] s3c6410_setup_sdhci0_cfg_card: CTRL 2=c0004100, 3=00008080
[    2.270000] mmc0: new high speed SD card at address d555
[    2.270000] blk_queue_max_sectors: set to minimum 8
[    2.280000] mmcblk0: mmc0:d555 ST01G 979 MiB
[    2.290000]  mmcblk0: p1 p2 p3
[    2.320000] mmc1: Minimum clock frequency too high for identification mode
[    2.320000] s3c6410_setup_sdhci0_cfg_card: CTRL 2=c0004100, 3=80808080
[    2.370000] s3c6410_setup_sdhci0_cfg_card: CTRL 2=c0004100, 3=00008080
[    2.380000] mmc1: new high speed SD card at address 0002
[    2.380000] blk_queue_max_sectors: set to minimum 8
[    2.390000] mmcblk1: mmc1:0002 00000 1.90 GiB
[    2.400000]  mmcblk1: p1 p2
[    2.430000] mmc2: Minimum clock frequency too high for identification mode
[    2.430000] s3c6410_setup_sdhci0_cfg_card: CTRL 2=c0004100, 3=80808080
[    2.440000] EXT3-fs warning: maximal mount count reached, running
e2fsck is recommended
[    2.450000] kjournald starting.  Commit interval 5 seconds
[    2.470000] SDIO: ignoring broken CISTPL_VERS_1
[    2.480000] s3c6410_setup_sdhci0_cfg_card: CTRL 2=c0004120, 3=00008080
[    2.490000] mmc2: new SDIO card at address 0001
[    2.500000] libertas_sdio mmc2:0001:1: firmware: requesting sd8686_helper.bin
[    2.510000] EXT3 FS on mmcblk1p1, internal journal
[    2.510000] EXT3-fs: mounted filesystem with writeback data mode.
[    2.520000] VFS: Mounted root (ext3 filesystem) on device 179:9.
[    2.530000] Freeing init memory: 120K
[   11.200000] libertas_sdio mmc2:0001:1: firmware: requesting sd8686.bin
[   18.880000] libertas: firmware wants 16 bytes
[   18.880000] libertas: firmware wants 512 bytes
[   18.970000] libertas: firmware wants 17 bytes
[   18.970000] libertas: firmware helper signalled error
[   19.050000] libertas: failed to load firmware
[   19.120000] libertas_sdio: probe of mmc2:0001:1 failed with error -5



More information about the libertas-dev mailing list