Page 1 of 1

General Firmware Question

Posted: Tue May 22, 2012 10:18 pm
by sheriff076
Hello,

I've read a number of posts about firmware updates, in particular using the updater written by Hexxeh.

What I don't quite understand is where the firmware is stored, is it on the SD card (in the OS image somewhere) and its loaded to the Pi during boot or is it permanently stored on the hardware of the Pi. If its the latter, could the Pi be bricked during an update?

If its stored on the SD card and something screwed up, can all be restored by simply preparing the SD card with the OS from the download page again?

Thanks.

Re: General Firmware Question

Posted: Tue May 22, 2012 10:36 pm
by abishur
The firmware being discussed is stored in /boot on the SD card (which is technically the first partition, the FAT32 one, of the SD card). That's why anything that "bricks" the pi can be undone via a re-image of the SD card.

Re: General Firmware Question

Posted: Wed May 23, 2012 8:33 am
by sheriff076
Thanks for the reply,

At lease I can learn through making mistakes and know replacing the image can fix problems.

Another question on the firmware, is it possible to have a number of SD cards with different OS's or configurations on them for different purposes and just swap them around?

Re: General Firmware Question

Posted: Wed May 23, 2012 8:39 am
by rurwin
Yes. Switch the power off first ;-)

Re: General Firmware Question

Posted: Wed Jun 13, 2012 8:03 am
by ashbash
This was a useful thread for me, and probably others I would imagine, as even after using *nix for years I still struggled to understand what the "firmware" was that people were referring to ... cant say i'm convinced I have a full understanding yet :? so if anyone can answer some questions that would be great:

1. What is the equivalent of the rpi firmware on a normal x86 desktop running debian lets say?
2. What does the firmware contain exactly?
3. Does the hexxeh rpi-update use private repositories for (2) or does it obtain the files from debian/other/?

Thanks in advance,

Ashley

Re: General Firmware Question

Posted: Wed Jun 13, 2012 9:01 am
by AndrewS
ashbash wrote:1. What is the equivalent of the rpi firmware on a normal x86 desktop running debian lets say?
The BIOS on your motherboard, the BIOS on your GFX card, GRUB, the Linux kernel and Linux drivers.
2. What does the firmware contain exactly?
The 2-stage bootloader (/boot/bootcode.bin and /boot/loader.bin), the GPU firmware (/boot/start.elf), the Linux kernel (/boot/kernel.img), Linux kernel modules (/lib/modules/), hardware-access libraries/programs (/opt/vc/lib, /opt/vc/bin/, /opt/vc/sbin/) and example code (/opt/vc/sdk/)
3. Does the hexxeh rpi-update use private repositories for (2) or does it obtain the files from debian/other/?
It gets its updates from https://github.com/Hexxeh/rpi-firmware which is simply a copy of a subset of the files from https://github.com/raspberrypi/firmware

Re: General Firmware Question

Posted: Wed Jun 13, 2012 10:57 am
by ashbash
Andrew, thank you for taking the time on a detailed response, I'm sure I am not the only one interested to know :)

Having previously authored 7c00 code I would be interested in understanding how ARM boots through the stages and modes (if applicable).

For those interested in the ARM boot sequence I have found what appears to be an interesting page although not that detailed - http://blog.stranadurakov.com/2009/08/0 ... arm-linux/.

Cheers,

Ashley

Re: General Firmware Question

Posted: Wed Jun 13, 2012 11:41 am
by AndrewS
ashbash wrote:Having previously authored 7c00 code I would be interested in understanding how ARM boots through the stages and modes (if applicable).
The way the Pi boots is a "little unusual" ;)
Full details here: http://www.raspberrypi.org/phpBB3/viewt ... =63&t=6685

Re: General Firmware Question

Posted: Thu Feb 21, 2013 2:09 am
by dpoz
Just my two cents worth but I think the thread originator posed a very relevant question.

I think the term "Firmware" in respect of the PI is somewhat misleading, as it doesn't reside in non- volatile or battery supported memory within the device itself.

I'm sure many people will have been under the misaprehension that the firmware was loaded to, and stored on, the device during the initial installation.