Jump to content

Booting ROCK Pi 4(A/B/C) with mainline u-boot in SPI, NVMe and Armbian v20.11.x


Recommended Posts

Posted

Hi. I have soldered a Spansion FL064LIF01 SPI flash on my ROCK PI 4 SE and it is not recognised by debug console:

Quote

Loading Environment from SPIFlash... jedec_spi_nor flash@0: unrecognized JEDEC id bytes: 01, 60, 17
*** Warning - spi_flash_probe_bus_cs() failed, using default environment

The wierd thing is that "lsblk" detect it:

Quote

mtdblock0    31:0    0     8M  0 disk

I have connected an ASM1166 SATA controller to m.2 slot and installing armbian to boot from SD and have root on SATA works fine, but fails if install to boot from MTD and have root on SATA. Is there any way to include ASM1166 driver in u-boot to be able to boot the board using MTD+ SATA ASM1166  adapter? 

Is it possible to make u-boot to cycle from eMMC->SPI->SD->USB->NVME->PXE like in RPi5 for example?

Thanks

Posted
10 hours ago, DeMo said:

The wierd thing is that "lsblk" detect it:

That is because it is the linux kernel that is driving you own/custom SPI-flash chip. When you power on the board, it follows a certain priority of devices, see schematics of the board. It might be that SPI-flash is not included. And if included, the U-Boot you put in there might assume different wiring or none at all. It is can be because the U-Boot config it is compiled from does not include the right options. So create a custom U-Boot for your custom board.

 

Posted

I don't have a custom board. I have a ROCK PI 4 SE. These boards do not come with SPI flash IC soldered on the board, but have space if one chooses to solder SPI flash himself. Since I couldn't find flash IC that Raxda recommends: https://wiki.radxa.com/Rockpi4/hardware/spi_flash (W25Q64FV; GD25Q127CSIG;XT25F32B;XT25F128B) I found equivalent to W25Q64FV. The vendor Id of FL064LIF01 is different so I'm guessing that is why it is not recognized. I read that Piter75 had support for XTX flashes at first so other flash ICs can be added maybe?

Quote

So create a custom U-Boot for your custom board.

This is exactly what my goal is but since I'm new to this I though posting on forum and ask for some help would not hurt.

Thanks

Posted

The foreign added SPI-flash makes it custom in terms of Armbian bootloader.

Look how to build U-Boot from Armbian build environment (development basically) or find howto on denx.de. It been a while since I last did that myself, so things might have changed a bit.

Posted
Quote

The foreign added SPI-flash makes it custom in terms of Armbian bootloader.

Well its equivalent so other than vendor not beeing in a database does not count as custom in my books, but that is beside the point. Armbian correctly recognizes the size and I can write to it and that is important.

Now flashing an existing image is simple. My preferred way is dd as described by Piter75:

dd if=uboot.img of=/dev/mtdblock0 bs=4K for u-boot images

and

dd if=idbloader.img of=/dev/mtdblock0 seek=64 bs=512 conv=sync

dd if=u-boot.itb of=/dev/mtdblock0 seek=16384 bs=512 conv=sync

if used with image tree blob. Nice thing is that if new u-boot hangs or does not boot I can just short pin 23-25 to boot from SD card and try again. Since I have an 8Mb flash I would really like to bake in m.2 to SATA drivers - for ASM1166 in my case. Any pointers are welcome.

 

DeMo

 

 

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
×
×
  • Create New...

Important Information

Terms of Use - Privacy Policy - Guidelines