+Kever Yang
On Thu, 22 Dec 2022 at 18:30, Marcin Woźniak <marcin.wadow...@gmail.com> wrote: > > Hello, > > I would like to let you know how i've lost about 2 weeks because of lack > of Rockchip BOOTROM documentation. > > I tried to use Mainline Uboot to Boot NanoPI R2S using soldered SPI > Winbond 25Q256 chip. > > I had to make some patches in Uboot core files to make it work. > > First one adds SPI boot device. File > |arch/arm/mach-rockchip/rk3328/rk3328.c with adding: | > > |[BROM_BOOTSOURCE_SPINOR] "/spi@ff190000", |const char * const > boot_devices || > > Second was |arch/arm/mach-rockchip/spl-boot-order.c and last if statement:| > > |if (!uclass_get_device_by_of_offset(UCLASS_SPI, node, &parent)) return > BOOT_DEVICE_SPI;| > > || > > This patch is added because RockChip SPI driver is using UCLASS_SPI > instead of SPI_FLASH so boot device wasn't connecting with right DM > Driver rk_spi.c > > Third one fixed SPL and it was added at the end: |drivers/spi/rk_spi.c > | > > |DM_DRIVER_ALIAS(rockchip_rk3288_spi, rockchip_rk3328_spi);| > > After that board booted successfully. Second bigger problem was a > mistake and lack of RockChip Bootrom documentation. > > I've soldered 32Mbyte Flash and didn't know that U-Boot in SPL was > switching it's 3-byte address mode to 4-byte one to gain access to full > 32 Mbytes. > > The problem was that board booted in cold-start but after issuing > "reset" - it was going to MASKROM mode like no SPI was soldered or empty. > > After loosing two weeks i figured that RockChip bootrom talks to SPI > using only 3-byte addressing. > > So leaving 4-byte switched by UBoot SPI chip made it unusable to > RockChip Bootrom. I found this by dumping Bootrom and decompiling it. > > I don't know if it's enough information to make a patch to MainLine (at > least for SPI boot in RK3328). > > Problem with 3-byte addressing is a complete different story. > > Sorry for my "unproffesional" mail. I am writing this type of message > for a first time. > > Marcin > > > > || > > |||||||| > > ||