writing bootloader for FPGA processor

Discussions on more advanced topics such as monolithic vs micro-kernels, transactional memory models, and paging vs segmentation should go here. Use this forum to expand and improve the wiki!
Post Reply
ravi_chobey
Posts: 13
Joined: Mon Apr 14, 2008 2:32 am
Location: Pune,India

writing bootloader for FPGA processor

Post by ravi_chobey »

Hi All,

Can some body give an idea to write a bootloader for Xilinx FPGA based processor?

Regards,
Ravi
User avatar
JamesM
Member
Member
Posts: 2935
Joined: Tue Jul 10, 2007 5:27 am
Location: York, United Kingdom
Contact:

Post by JamesM »

Hi,

The wiki page for Xilinx says that they mainly configure their FPGAs as systems on a chip with (up to 2) PowerPC cores.

PowerPC cores in non embedded systems tend to be booted by OpenFirmware (or another OpenBIOS compliant loader), and from there booting an OS is easy (OpenFirmware provides filesystem support so it can just load an ELF from disk and execute).

However as your chip is embedded, OpenFirmware possibly won't be available, owing to the fact that it is massive. In which case your best bet is to read the PowerPC manual to find out where it starts on bootup, and what is required to boot it. This will involve poking binaries into the ROM or flash from which it boots - but with an embedded device I suppose you were expecting to do that anyway!

Cheers,

James
grover
Posts: 17
Joined: Wed Apr 30, 2008 7:20 am

Post by grover »

The PowerPC boots as usual by jumping to its reset vector (not sure which address right now, I'm at home and don't have my virtex dev board next to me.)

Ussually you initialize the FPGA (Virtex-4 in my case) by programming it with a bitstream from an external processor or SystemACE or System Flash. The FPGA contains a BRAM, which is mapped into the address space of the Power PC and also contains the jump for the reset vector. This is all programmed in one step if I recall correctly. From there on you have code running on the PowerPC and can do anything you like, like loading your operating system or embedded software from flash into SRAM/SDRAM and run it from there.
Post Reply