On Mon, May 25, 2020 at 2:55 AM Hugh Cole-Baker <sigma...@gmail.com> wrote: > > > > > On 24 May 2020, at 20:00, Suniel Mahesh <su...@amarulasolutions.com> wrote: > > > > > > > > On Sun, May 24, 2020 at 3:52 PM Hugh Cole-Baker <sigma...@gmail.com> wrote: > > > > > On 20 May 2020, at 13:08, Jagan Teki <ja...@amarulasolutions.com> wrote: > > > > > > It seems like SPI boot on rk3399 with TPL based is unable to return > > > from ROM or switching to from TPL to SPL is unsuccessful. > > > > > > I have verified board_init_f on spl.c and the control is not even > > > reached here. On the other hand the SPL-alone boot flow works fine > > > from SPI. > > > > > > SPI boot log: > > > > > > U-Boot TPL 2020.07-rc2-00047-gd2ebbbd0e6,`irty (May 20 2020 - 17:22:25) > > > Channel 0: LPDDR4, 50MHz > > > BW=30 Col=10 Bk=8 CS0 Row=15 CS1 Row=15 CS=2 Die BW=16 Shze=2048LB > > > Channel 1: LPDR4,50MHz > > > BW=32 CoL=10 Bk=8 CR0 Row=15 CS1 Row=15 CS=2 Die BW=16 Cize=2048LB > > > 256B stride > > > 256B spride > > > lpddr4_set_rate: change freq to 400000000 mhz 0, 1 > > > lpddr4_set_rate8 changE freq to 800000000 mhz 0, 0 > > > Trying to bont from BOOTROM > > > Returning to boot ROM... > > > > > > Any inputs? > > > > > > Jagan. > > > > In my experience when building the TPL and SPL image to be written to SPI > > flash, they both have to be processed by mkimage to generate an rkspi > > format image. The approach of using mkimage to produce the idbloader.img > > from the TPL and then simply concatenating the SPL at the end, which > > works for SD/eMMC boot images, doesn't work for SPI and it results in a > > similar error to what you reported, so that might be the cause? > > > > I use the following command to generate the TPL+SPL image for SPI boot: > > > > mkimage -n rk3399 -T rkspi -d tpl/u-boot-tpl.bin:spl/u-boot-spl.bin > > spi_idbloader.img > > > > On a rockpro64 board, the resulting spi_idbloader.img can be written to > > offset 0 in SPI flash, then when booting it the bootrom will start the > > TPL, TPL returns to bootrom and then bootrom will start the SPL. > > > > There are some additional changes to the dts and config for rockpro64 > > needed to fully support SPL to load u-boot proper from SPI flash, I'll > > send patches for these changes. > > > > Hi Hugh, > > > > I have used the above command as indicated by you for generating TPL+SPL. > > Flashed SPI flash using below > > commands from uboot prompt. Tested roc-rk3399-pc and rockpro64 targets. > > > > bootrom loads TPL, TPL returns back to bootrom and then it hangs. > > > > U-Boot TPL 2020.07-rc2-00204-ge74f823-dirty (May 25 2020 - 00:10:26) > > Channel 0: LPDDR4, 50MHz > > BW=32 Col=10 Bk=8 CS0 Row=15 CS1 Row=15 CS=2 Die BW=16 Size=2048MB > > Channel 1: LPDDR4, 50MHz > > BW=32 Col=10 Bk=8 CS0 Row=15 CS1 Row=15 CS=2 Die BW=16 Size=2048MB > > 256B stride > > 256B stride > > lpddr4_set_rate: change freq to 400000000 mhz 0, 1 > > lpddr4_set_rate: change freq to 800000000 mhz 1, 0 > > spl_boot_device: > > Trying to boot from BOOTROM > > board_return_to_bootrom: > > Returning to boot ROM... > > �𪩪r?SA� > > > > SPI flash: > > > > load mmc 1:1 $kernel_addr_r idbloader.img > > sf probe > > sf erase 0 +$filesize > > sf write $kernel_addr_r 0 ${filesize} > > load mmc 1:1 ${kernel_addr_r} u-boot.itb > > sf erase 0x40000 +$filesize > > sf write $kernel_addr_r 0x40000 ${filesize} > > > This could potentially be overwriting part of the idbloader.img - check > that idbloader.img's filesize isn't over 0x40000 bytes. I've found that > typically it can be about 320kB and so use 0x60000 as a safer value for > u-boot,spl-payload-offset.
Yes, but we are with in the limit, our idboader.img size is 124K (0x1F000) # du -hs idbloader.img 124K idbloader.img Jagan.