Bootloader for DE-2 board with OpenRISC

The last days have been filled with a lot of Verilog and ModelSim, so I thought it would be nice with some softer programing for a change.

After spending more time than I care to admit on hunting down the architecture reference guide (it is here if you need it) I figured I could as well write the bootloader that my OpenRISC platform will require. Since I haven't written anything about what I have in mind, here is a quick overview what I'm looking at creating:

  • Implement OpenRISC
  • Make the platform fit the DE-2 board from Terasic
  • It must be able to boot Linux
  • It would be awesome if I can get the DM9000 network controller working

That is the very formal (hmm) requirement specification I have in mind.

Anyhow, to boot Linux on the DE-2 platform I would need to have a big RAM (hence the SDRAM controller) of a couple megabytes at least. I would also need to have some permanent storage to boot from; the flash memory will be good for that I think.

When booting Linux the kernel expect that it resides in RAM space and will begin writing to memory. This is not so good when booting from flash. Therefore I need to transfer the kernel from flash to SDRAM and then execute the kernel from there. The bootloader would possibly need to update interrupt tables and such.

I present the version 0.1 bootloader. It prints a nice message, copies an image from directly after the bootloader to 0x0 and then jumps there. No interrupt handling for now.

Comments

Popular posts from this blog

Open Datacenter Hardware - What is OCP?

Open Datacenter Hardware - Leopard Server