On 04/10/2011 08:49 AM, Hamo wrote:
Dear lists, I have be studying CBFS filesystem these days. Since coreboot only supports IA32 architecture now, the CBFS has hard-coded boot address and all the boot-related code and master header are located at around 0xFFFFFFF0. But as ARM read their first instruction at 0x0, we need change the CBFS filesystem but not destroy IA32 support. When porting to ARM, how should the rom be organized? I have 2 ideas:
- Totally rewrite the CBFS structure on ARM according to that one on
IA32 to meet the requirement of ARM architecture, including move the reset code and bootblock to the start of ROM(at address 0x0) and put all the other components follow them. In this way, we should rewrite the CBFStool and add a new option to CBFStool to tell it the architecture we are using. 2. Use the same structure on IA32 architecture but set the master header's offset to other value than 0x0 so that we can put boot code at the start of rom. Which one should I take or Do we have any better choice? Hope for your help.
How about spitting up the code using pre-processing directives? One for arm and one for IA32? Just a thought.