Hi Hamo,
On Tue, Jun 14, 2011 at 8:44 AM, Hamo hamo.by@gmail.com wrote:
Dear lists, I have been studying the boot process of coreboot more deeply, and following questions came out:
- Which code clean the bss and set sp pointer to the stack? Since
those addresses are defined in coreboot_ram.ld, Should it be in ramstage? If so, where are they? I don't find them. If not, where are they and how do they know the addresses of bss and stack?
/* bss does not contain data, it is just a space that should be zero * initialized on startup. (typically uninitialized global variables) * crt0.S fills between _bss and _ebss with zeroes. */
As the comment says, it is handled by the ramstage crt0.S code. The stack is the same that is used by romstage until it is changed by ramstage.
- What's the propose of romstage? Some init in romstage has been done
in bootblock, and why those init are done twice?
What do you see done twice? There should be a minimal overlap. Some things need to be setup for romstage to run.
Marc