
Hi Pawel:
On 2017年09月26日 19:34, Paweł Jarosz wrote:
Hi,
W dniu 25.09.2017 o 12:29, Heiko Stübner pisze:
Hi Andy,
Am Montag, 25. September 2017, 17:45:03 CEST schrieb Andy Yan:
On 2017年09月22日 13:56, Heiko Stuebner wrote:
Am Freitag, 22. September 2017, 08:50:49 CEST schrieb Andy Yan:
Hi Heiko:
On 2017年09月22日 08:24, Andy Yan wrote:
Hi Heiko:
On 2017年09月21日 22:55, Heiko Stübner wrote: > Hi Andy, > > Am Donnerstag, 21. September 2017, 22:03:32 CEST schrieb Andy Yan: >> Hi Heiko: >> I try to boot the upstream u-boot-rockchip branch on my rk3188 >> board >> with(rock_defconfig) >> >> But I got this error: >> early_init() >> nit_and_scan() returned error -22 >> early_init() failed: -22 >> ERROR ### Please RESET the board ### >> >> the current commit head is: 782088d("rockchip: imply ADC and >> SARADC_ROCKCHIP >> on supported SoCs") Do you ever meet something like this? > that is very strange. When testing Philipp's branch, I was also > testing the > commit you mention to see if anything broke since I last changed > u-boot > on my radxa rock. And the above commit started just fine, when > starting > from an sd-card. > > Not sure from which medium you're starting though. But from what I > remember Pawel got nand working in his rk3066 series, but that > is not > yet merged. > I boot from emmc, I will go on hack on it.
I finally can boot it with the rock_defconfig. But the way to
package the tpl spl u-boot a little different.
cat ${DIR}/out/tpl/u-boot-tpl.bin > tplspl.bin truncate -s 1020 tplspl.bin sed -i "/^/{1s/^/RK31/}" tplspl.bin cat ${DIR}/out/spl/u-boot-spl.bin > spl.bin truncate -s %2048 spl.bin cat spl.bin >> tplspl.bin Then the tplspl.bin + u-boot.bin should package by
boot_merger(tplsplb.in for FLashData, u-boot.bin for FlashBoot) from
rockchip downstream u-boot repo: ./tools/boot_merger ./tools/rk_tools/RKBOOT/RK310BMINIALL.ini download to emmc by "upgrade_tool ul" command. According to our
bootrom code author, the rk31(maybe include rk30) bootrom has a limitation that the idbblock couldn't accessed by upgrade_tool wl command.
I do have a script handling that [0]. At least for the sd-card variant a simple "openssl rc4" works just as well as the legacy boot_merger :-)
Heiko
[0] https://github.com/mmind/u-boot-rockchip/commit/81458bde873d6cf588e082ccf
556e818f46ad9df
Is there a way to download the out that generated by[0] to emmc/flash? It seems that the upgrate_tool can't access 0x40 of the emmc/nand on rk3188.
you have the @rock-chips.com address, so I'd guess you might even have the better resources to find out ;-) .
In any case, as I said I haven't looked at all at the internal storage on my radxarock so far.
But as the rk3066 and rk3188 are so similar I've added Paweł.
@Paweł: you had uboot starting from nand on your rk3066 board, maybe you could describe how you wrote it to the board so maybe Andy can check if he needs to adapt anything?
Almost all knowledge i had about rk3066 boot process was from Heiko and bootrom disassembly.
Andy, do you have any output on serial console ? (TPL, Uboot-spl or anything else) Can you compile u-boot with #define DEBUG in rk3188_common and send the output?
Here is my console output [1] that boot from a nand on rk3188 board. But I found that the board will reset again and again in spl stage if I defined DEBUG in rk3188_common [2]
Also you can check size of u-boot tpl (less than 1kb), u-boot spl + tpl (less than sram size on rk3188, i think it's 32KB)? This is important as you wont get any output on serial console if you don't meet this conditions. Also on rk3066 bootmerger FlashBoot size + FlashData size should be less than 256KB (32KB for FlashData, and the rest for FlashBoot, if it's more than 256KB, you get few lines of errors when flashing with upgrade_tool and might have no output on serial console)
Bellow is my binary blob size. And I got a knowledge that the safe size of FlashBoot + FlashData shoud be less than 128kb(some flashed can up to 256, but some may not).
-rwxrwxr-x 1 andy andy 788 u-boot-tpl.bin -rwxrwxr-x 1 andy andy 15956 u-boot-spl.bin -rw-rw-r-- 1 andy andy 98249 u-boot.bin
One more thing ... to boot from usb with openssl rc4 method on rk3066 i think only one back to bootrom is needed, two if you are booting from nand.
[1] tpl-1 Returning to boot ROM... tpl-2 spl first data training fail!
U-Boot SPL 2017.09-00107-g99c4c38-dirty (Sep 27 2017 - 08:46:48) Returning to boot ROM...
U-Boot 2017.09-00107-g99c4c38-dirty (Sep 27 2017 - 08:46:48 +0800)
Model: Radxa Rock DRAM: 2 GiB MMC: MMC Device 0 not found *** Warning - No MMC card found, using default environment
In: serial@20064000 Out: serial@20064000 Err: serial@20064000 Model: Radxa Rock =>
[2] tpl-1 Returning to boot ROM... tpl-2 spl spl_early_init() malloc_simple: size=18, ptr=18, limit=2000: 10085ff0 malloc_simple: size=54, ptr=6c, limit=2000: 10086008 malloc_simple: size=4, ptr=70, limit=2000: 1008605c uclass_find_device_by_seq: 0 -1 uclass_find_device_by_seq: 0 0 - -1 -1 'root_driver' - not found malloc_simple: size=18, ptr=88, limit=2000: 10086060 malloc_simple: size=54, ptr=dc, limit=2000: 10086078 malloc_simple: size=18, ptr=f4, limit=2000: 100860cc malloc_simple: size=54, ptr=148, limit=2000: 100860e4 Bound device reset to root_driver Bound device rockchip_rk3188_cru to root_driver malloc_simple: size=18, ptr=160, limit=2000: 10086138 malloc_simple: size=54, ptr=1b4, limit=2000: 10086150 malloc_simple: size=1cc, ptr=380, limit=2000: 100861a4 Bound device rockchip_rk3188_dmc to root_driver malloc_simple: size=18, ptr=398, limit=2000: 10086370 malloc_simple: size=54, ptr=3ec, limit=2000: 10086388 syscon: rockchip_rk3188_grf 1 Bound device rockchip_rk3188_grf to root_driver malloc_simple: size=18, ptr=404, limit=2000: 100863dc malloc_simple: size=54, ptr=458, limit=2000: 100863f4 Bound device rockchip_rk3188_pinctrl to root_driver malloc_simple: size=54, ptr=4ac, limit=2000: 10086448 syscon: rockchip_rk3188_pmu 3 Bound device rockchip_rk3188_pmu to root_driver malloc_simple: size=18, ptr=4c4, limit=2000: 1008649c malloc_simple: size=54, ptr=518, limit=2000: 100864b4 malloc_simple: size=44, ptr=55c, limit=2000: 10086508 Bound device rockchip_rk3188_uart to root_driver malloc_simple: size=54, ptr=5b0, limit=2000: 1008654c syscon: rockchip_rk3188_noc 0 Bound device rockchip_rk3188_noc to root_driver malloc_simple: size=10, ptr=5c0, limit=2000: 100865a0 uclass_find_device_by_seq: 0 -1 uclass_find_device_by_seq: 0 0 - -1 -1 'rockchip_rk3188_cru' - not found malloc_simple: size=c, ptr=5cc, limit=2000: 100865b0 uclass_find_device_by_seq: 0 -1 uclass_find_device_by_seq: 0 0 - -1 -1 'rockchip_rk3188_pinctrl' - not found malloc_simple: size=4, ptr=5d0, limit=2000: 100865bc uclass_find_device_by_seq: 0 -1 uclass_find_device_by_seq: 0 0 - -1 -1 'rockchip_rk3188_grf' - -1 -1 'rockchip_rk3188_pmu' - -1 -1 'rockchip_rk3188_noc' - not found malloc_simple: size=14, ptr=5e4, limit=2000: 100865c0 malloc_simple: size=10, ptr=5f4, limit=2000: 100865d4 malloc_simple: size=4, ptr=5f8, limit=2000: 100865e4 uclass_find_device_by_seq: 0 -1 uclass_find_device_by_seq: 0 0 - -1 0 'rockchip_rk3188_grf' - found uclass_find_device_by_seq: 0 1 - -1 0 'rockchip_rk3188_grf' - -1 -1 'rockchip_rk3188_pmu' - -1 -1 'rockchip_rk3188_noc' - not found malloc_simple: size=14, ptr=60c, limit=2000: 100865e8 malloc_simple: size=10, ptr=61c, limit=2000: 100865fc rk3188_pinctrl_probe: grf=20008000, pmu=20004000 PLL at 20000030: nf=99, nr=2, no=2, vco=1188000000 Hz, output=594000000 Hz PLL at 20000020: nf=32, nr=1, no=2, vco=768000000 Hz, output=384000000 Hz rockchip_mmc_set_clk: gclk_rate=148500000 malloc_simple: size=2c, ptr=648, limit=2000: 1008660c uclass_find_device_by_seq: 0 -1 uclass_find_device_by_seq: 0 0 - -1 -1 'rockchip_rk3188_dmc' - not found malloc_simple: size=14, ptr=65c, limit=2000: 10086638 malloc_simple: size=10, ptr=66c, limit=2000: 1008664c malloc_simple: size=4, ptr=670, limit=2000: 1008665c uclass_find_device_by_seq: 0 -1 uclass_find_device_by_seq: 0 0 - -1 0 'rockchip_rk3188_grf' - found uclass_find_device_by_seq: 0 1 - -1 0 'rockchip_rk3188_grf' - -1 1 'rockchip_rk3188_pmu' - found uclass_find_device_by_seq: 0 2 - -1 0 'rockchip_rk3188_grf' - -1 1 'rockchip_rk3188_pmu' - -1 -1 'rockchip_rk3188_noc' - not found malloc_simple: size=14, ptr=684, limit=2000: 10086660 malloc_simple: size=10, ptr=694, limit=2000: 10086674 clk_request(dev=10086078, clk=10086620) clk_set_rate(clk=10086620, rate=300000000) PLL at 20000010: nf=25, nr=2, no=1, vco=300000000 Hz, output=300000000 Hz /home/andy/WorkSpace/U-BOOT/u-boot/drivers/clk/rockchip/clk_rk3188.c:101: rkclk_set_pll: Assertion `vco_hz >= VCO_MIN_HZ & & vco_hz <= VCO_MAX_HZ && output_hz >= OUTPUT_MIN_HZ && output_hz <= OUTPUT_MAX_HZ && (div->no == 1 || !(div->no % 2))' fa iled. uclass_find_device_by_seq: 0 -1 uclass_find_device_by_seq: 0 0 - -1 -1 'reset' - not found tpl-1 Returning to boot ROM..
Cheers Paweł
Thanks Heiko