Unix & Linux Stack Exchange is a question and answer site for users of Linux, FreeBSD and other Un*x-like operating systems. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

I've worked with a few embedded systems, but now I'd like to make my own piece of hardware and despite a pretty thorough knowledge of Linux, I have no idea how to get Linux up and running on new hardware. So I'm looking for resources on how to do some board bringup/support.

Some more details: I'm wondering about the following kinds of things: How does Linux know the processor configuration - e.g. how the pins are configured, how much cache is there, is there an MMU present. How does Linux know about the board layout - e.g. which pins are the memory bus, where is the row select, column select, which pins are an i2c bus, and so on.

share|improve this question
up vote 3 down vote accepted

I worked on a system using uboot which had custom hardware and was ported to arm and powerpc. There were two things that needed to be set up. First there is a place in u-boot where you can add board support to set registers and create handler functions for accessing RAM or FLASH on your device.

You then have to write similar support in the /arch part of the linux tree. I think keywords to google for are "board support"

share|improve this answer

A relatively popular boot loader for embedded devices is Uboot:



The Uboot project originated from Germany; Uboot sounds like submarine in German, so the name sounds somewhat funny for German ears.

I hope I didn't tell you something obvious.

share|improve this answer

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.