ARM – Pi2 – Kernel 4.4-rc5 – U-Boot Fail, and Workaround..
Recently attempted to update the Pi2 to Kernel 4.4-rc5, and encountered a problem..
The more recent proprietary Raspberry Pi 2 kernels have switched to using ‘DTB Overlays’ to control various components, but these are – currently – unsupported by U-Boot..
Booting the kernel with U-Boot results in mmc errors, and register dump:
.................... timeout waiting for hardware interrupt. mmc0: cmd op 25 arg 0x399f800 flags 0xb5 - resp 00000900 00000000 00000000 00000000, err 0 mmc0: data blocks 8 blksz 200 - err 0 mmc0: stop op 12 arg 0x0 flags 0x49d - resp 00000000 00000000 00000000 00000000, err 0 mmc0: =========== REGISTER DUMP =========== mmc0: SDCMD 0x00000099 mmc0: SDARG 0x0399f800 mmc0: SDTOUT 0x017d7840 mmc0: SDCDIV 0x00000003 mmc0: SDRSP0 0x00000900 mmc0: SDRSP1 0x00001918 mmc0: SDRSP2 0xffffffff mmc0: SDRSP3 0x0002c01f mmc0: SDHSTS 0x00000000 mmc0: SDVDD 0x00000001 mmc0: SDEDM 0x00010801 mmc0: SDHCFG 0x0000050e mmc0: SDHBCT 0x00000200 mmc0: SDHBLC 0x00000001 mmc0: ===========================================
The DTB Overlays only function with the old primitive bootloader – using parameters in config.txt..
After trying many options in the kernel config for mmc drivers, I eventually found a (nasty hack?) workaround..
I tried substituting an older known/good version of bcm2709-rpi-2-b.dtb (from Pi2 Kernel 4.0.5-rc4) for the ‘new’ one, and it booted OK..
Fedora 23 Kernel 4.4.0-rc5-v7 on an armv7l (ttyAMA0) ............. ]# uname -a Linux rgpi2 4.4.0-rc5-v7 #2 SMP PREEMPT Sat Dec 19 21:17:19 PST 2015 armv7l armv7l armv7l GNU/Linux
It makes some sense to control optional components using DTB Overlays, but odd that they seem to be used for major fixed components as well?
Robert Gadsdon. December 20, 2015.
Comments
ARM – Pi2 – Kernel 4.4-rc5 – U-Boot Fail, and Workaround.. — No Comments