Codelead Systems

Codelead Systems is an independent flexible consulting company that specializes in custom, embedded and otherwise tricky solutions that require a bit more out of the box thinking than usual.

“You know when you dial a phone number how it magically connects you to the right person? We provide that magic”

We have been in business since early 2007 and we have a ever growing collection of satisfied customers that time and time again keep returning for yet another cost effective solution to that thing that would be really awesome to have.

Here are some of the products we have delivered:

When we stumble upon a particularly cool project, trick or hack we sometimes write a blog entry about it and how to use it. The blog is called “in the mind of a Codeleader” – you’ll find the latest posts beneath. Oh, by the way – if you like formalities, here is the CEO’s curriculum vitae

Recent Posts

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 0×0 and then jumps there. No interrupt handling for now.
Continue reading

  1. Basic SDRAM controller for Terasic DE2 board Leave a reply
  2. SDRAM is my friend Leave a reply
  3. Open a world of wonders with OpenRISC Leave a reply
  4. Who needs VRAM anyway? Or, calculating Mandelbrot on an FPGA 1 Reply
  5. Patch for Swedish keyboard layout in osx2x Leave a reply
  6. LeCroy 9350AM revisited Leave a reply
  7. A game of (J)TAG Leave a reply
  8. jTagging along 2 Replies
  9. Getting to know FW-7539 Leave a reply