rk3188 (radxa rock pro) boot failure w/ barebox 2018-04 and later

perachet7 at gmail.com perachet7 at gmail.com
Fri Sep 14 14:33:55 PDT 2018

Hey Sam,

Thanks for your reply.

First, there was a glitch while bisecting the thing. After all it was this 

  first bad commit: [f382224173ebf8a7fce42cf09179b5f6bc7dc6c9] ARM: scroll 
past image end without ld_var

git log f382224173ebf8a7fce42cf09179b5f6bc7dc6c9
commit f382224173ebf8a7fce42cf09179b5f6bc7dc6c9 (refs/bisect/bad)
Author: Sascha Hauer <s.hauer at pengutronix.de>
Date:   Tue Mar 13 08:26:21 2018 +0100

    ARM: scroll past image end without ld_var
    ld_var is going to be removed, cope without it. In the PBL image
    we want to get the location after the binary to the place where
    the compressed image is located. To do this Put a variable at
    the very end of the binary, get it's location and add an offset.
    Signed-off-by: Sascha Hauer <s.hauer at pengutronix.de>

triggering the boot failure. 

Note aside: Ironically, the related code is amongst other lines one that 
matches your description about get_runtime_offset().


Turns out, the toolchain wasn't playing along. Using the standard cross-arm-
eabihf toolchain

  arm-linux-gnueabihf-gcc (Ubuntu/Linaro 7.3.0-16ubuntu3) 7.3.0

the above commit triggers this Does-Not-Boot situation. It would just hang 
once DDR is initialized. 

However, using the latest OSELAS toolchain provided by pengutronix

  arm-v7m-eabi-gcc (OSELAS.Toolchain-2018.02.0 7-20180201) 7.3.1 20180201

the boot failure just does not happen and bb v2018.09.0 is booting the rk3188 
quite happily:

DDR Version 1.04 20140217
Bus Width=32 Col=10 Bank=8 Row=15 CS=2 Die Bus-Width=16 Size=2048MB
Memory OK

barebox 2018.09.0 #39 Thu Sep 13 16:53:12 CEST 2018

Board: Radxa Rock
clk_register clk xin24m is already registered, skipping!
arc-emac 10204000.ethernet: ARC EMAC detected with id: 0x7fd02
mdio_bus: miibus0: probed
dw_mmc 10214000.dwmmc: registered as 10214000.dwmmc
mshc1: detected SD card version 1.0
mshc1: registered mshc1
netconsole: registered as netconsole-1
i2c-gpio i2c-gpio0: using pins 58 (SDA) and 59 (SCL)
malloc space: 0x9fefd660 -> 0xdfdfacbf (size 1023 MiB)
gpio-leds.6: probe permanently deferred
envfs: no envfs (magic mismatch) - envfs never written?
running /env/bin/init...

Hit any key to stop autoboot:    3

So, after all, _almost_ everything is fine.

barebox at Radxa Rock:/ saveenv 
saving environment
ERROR: dw_mmc 10214000.dwmmc: dwmci_write_data_pio: FIFO overflow timeout
ERROR: dw_mmc 10214000.dwmmc: dwmci_write_data_pio: FIFO flush timeout

One less to go, yet one to go.



More information about the barebox mailing list