What is SPI? What does it do?

I have a dumb question. Can someone provide/link to an explanation of what SPI is? Knowing that it is “Serial Peripheral Interface” doesn’t really help.

It is a chip on the board, right? What in general are its tasks? How is it used for booting? And what are the other ways of booting? Should I use it or avoid it?

Thanks!

Incognito,

A quick search on Google provided this link. https://www.circuitbasics.com/basics-of-the-spi-communication-protocol/ I hope this helps. I use I2C interface for some Arduino projects, it is similar but faster and works better in high noise (electrical interference) environments.

Jon

Hi @incognito
While SPI in general is just the name of a type of communication bus, with this device we are usually referring to a SPI flash chip. In this case this chip is just a 16MB large memory chip. By default it currently is empty but it can be programmed with an image of U-Boot that can act as a bootloader and extend the native capabilities of the RK3588 SoC. By itself the RK3588 can boot from SD card, eMMC and this SPI flash chip. When a bootable image is available on the SPI flash it will be started and the image then can load some more drivers that allows booting from other devices/interfaces (e.g. NVMe, USB, Ethernet, etc.) or provide other functionality. 16MB is not much but sufficient for a basic bootloader.

3 Likes

Very helpful. Thank you

Wonder if we will have possibilty in the future to chose what we want to use as boot device.

There are already 3 bootable of the i believe 5 available.

  • MicroSdCard
  • NVME
  • eMMC
  • USB (probably will come)

In the topic i made i aksed the question about being able to also boot from USB. Answer is there. So what is left is network boot (not sure if this is possible).

So what else do you want?