Adding new board support

Thomas Petazzoni thomas.petazzoni at free-electrons.com
Sat Jun 14 11:59:24 EDT 2014


Hello,

On Sat, 7 Jun 2014 12:57:34 +0530, AYAN KUMAR HALDER wrote:

> 1. Create a config file under arch/arm/configs/ for your board. You
> may refer to any of the standard configuration which closely resembles
> your board's configuration. To start with enable the basic
> configurations such as processor, timer, uart, etc and disable SMP
> which are the bare minimum requirements for the board to boot.
> 2. Add a folder under arch/arm/<mach-yourplatformname>.  Add board.c
> where your can register your platform devices such as pcie, nand, usb,
> uart, gpio, rtc etc
> 3, Under the same folder above, add timer.c to initialize your
> timers.Add clock.c to enable/disable clocks and change clock rate of
> various Functional Blocks. Add <yourplatformname.c> to initialize your
> processor specific details such as global timers, arm pmu, interrupts,
> cache, global dma, ACP, SCU and inter-processor interrupt( if later
> you decide to enable SMP)
> 4. It is advisable to refer to a standard platform (like versatile -
> express ) to understand the board specific configurations in Linux.

Sorry to say so, but those recommendations are quite wrong when the
goal is to add the support for a new _board_ in the kernel. What you're
describing here are roughly the steps to add the support for a new SoC
or family of SoC.

If what's needed is adding support for a new board that uses an ARM SoC
already supported by the kernel, then all what's needed is either
writing a Device Tree file (if the ARM SoC in question is supported
through the Device Tree) or writing a board file in an existing
mach-<foo> folder.

Best regards,

Thomas
-- 
Thomas Petazzoni, CTO, Free Electrons
Embedded Linux, Kernel and Android engineering
http://free-electrons.com



More information about the Kernelnewbies mailing list