Page 1 of 1

Does the Pi3 actually have "firmware"?

Posted: Sat Dec 23, 2017 1:19 am
by M1dn1ghtN1nj4
I'm and Android guy, so I'm plenty familiar with how "firmware" works. However, when it comes to the Pi3, it seems to get hazy.

For example, on a cell phone, there are is a bootloader partition, which is upgradable through software flashing. The "firmware" resides on the /system partition (also upgradable, obviously).

Does the Pi3 have such a thing as a "bootloader" or other "microcode"-style upgradable "firmware"? Or when you say "firmware" are you referring to ANY data that resides on the microSD card?

If it's all on the microSD card, that means that the Pi itself does NOT actually have ANY upgradable firmware onboard. If you're upgrading what's on the SD card, that's only the kernel and such.

That means there is no actual upgradable chip on the Pi that can be flashed, that would contain improvements to onboard controllers, bootcode, or anything else.

Some clarity here would be nice. :D

Re: Does the Pi3 actually have "firmware"?

Posted: Sat Dec 23, 2017 2:13 am
by davidcoton
There is no upgradable code on the Pi board.
The SOC contains some fixed ROM code to boot then GPU and find a device with a boot partition. On later Pi2 and Pi3 models this can be SDCard, USB, or network. Earlier models can only boot from SDCard.
There is some OTP (one time programmable) ROM that controls boot device selection for Pi2/3.
Everything else is on the boot partition -- kernel, firmware et al. Until you get to the full Raspbian root.

Re: Does the Pi3 actually have "firmware"?

Posted: Sat Dec 23, 2017 3:33 am
by M1dn1ghtN1nj4
davidcoton wrote:
Sat Dec 23, 2017 2:13 am
There is no upgradable code on the Pi board.
The SOC contains some fixed ROM code to boot then GPU and find a device with a boot partition. On later Pi2 and Pi3 models this can be SDCard, USB, or network. Earlier models can only boot from SDCard.
There is some OTP (one time programmable) ROM that controls boot device selection for Pi2/3.
Everything else is on the boot partition -- kernel, firmware et al. Until you get to the full Raspbian root.
Perfect. That's exactly the explanation I needed. I'm still fairly new to the Pi, so I want to learn as much about it as I can. Thanks for your clear response.

Re: Does the Pi3 actually have "firmware"?

Posted: Sat Dec 23, 2017 8:46 am
by jamesh
Note that the boot partition on SD card contains firmware that is loaded to the GPU. That firmware can easily be upgraded.

Google for Pi boot sequence. All explained there.

Re: Does the Pi3 actually have "firmware"?

Posted: Sat Dec 23, 2017 8:59 am
by broe23
M1dn1ghtN1nj4 wrote:
Sat Dec 23, 2017 3:33 am
davidcoton wrote:
Sat Dec 23, 2017 2:13 am
There is no upgradable code on the Pi board.
The SOC contains some fixed ROM code to boot then GPU and find a device with a boot partition. On later Pi2 and Pi3 models this can be SDCard, USB, or network. Earlier models can only boot from SDCard.
There is some OTP (one time programmable) ROM that controls boot device selection for Pi2/3.
Everything else is on the boot partition -- kernel, firmware et al. Until you get to the full Raspbian root.
Perfect. That's exactly the explanation I needed. I'm still fairly new to the Pi, so I want to learn as much about it as I can. Thanks for your clear response.
Start reading up on Linux and how he created the Linux Kernal, which is also how Google created the Android OS with all of the different companies that are a part of the group. Then grab some material on Debian, Raspbian, etc.. The only difference is that the Android devices retain the OS on a Flash ROM that can be corrupted, where as with the PI, you can use either a SSD or SD card. There are some others out there that can run Linux, Windows 10 IoT and Android. While retaining in onboard Flash ROM.