summaryrefslogtreecommitdiffstats
path: root/Documentation/board.dox
diff options
context:
space:
mode:
Diffstat (limited to 'Documentation/board.dox')
-rw-r--r--Documentation/board.dox95
1 files changed, 95 insertions, 0 deletions
diff --git a/Documentation/board.dox b/Documentation/board.dox
new file mode 100644
index 0000000000..07425e4ea9
--- /dev/null
+++ b/Documentation/board.dox
@@ -0,0 +1,95 @@
+/** @page dev_board Adapting a new Board
+
+To add a new board to @a barebox a few steps must be done, to extend and modify
+the @a barebox source tree.
+
+@section board_add_files Files/Directories to be added
+
+ - arch/\<architecture\>/boards/\<boardname\>
+ - arch/\<architecture\>/boards/\<boardname\>/Makefile
+ - arch/\<architecture\>/boards/\<boardname\>/\<boardname\>.c
+ - arch/\<architecture\>/boards/\<boardname\>/\<boardname\>.dox
+ - include/configs/\<boardname\>.h
+ - arch/\<architecture\>/configs/\<boardname\>_defconfig
+
+@subsection board_makefile arch/\<architecture\>/boards/\<boardname\>Makefile
+
+@verbatim
+ obj-y += all files that builds the BSP (Assembler and/or C files)
+@endverbatim
+
+@subsection board_basefile arch/\<architecture\>/boards/\<boardname\>\<boardname\>.c
+
+TBD
+
+@subsection board_doxygen arch/\<architecture\>/boards/\<boardname\>/\<boardname\>.dox
+
+This file should describe in short words your new board, what CPU
+it uses, what resources are provided and features it supports.
+
+Use the doxygen style for this kind of documentation. Below you find a
+template for this kind of file:
+
+@verbatim
+/** @page <boardname> <Manufacturer> <Board's Name>
+
+This board uses an <architecture> based CPU. The board is shipped with:
+
+- many MiB NOR type Flash Memory
+- many MiB SDRAM
+- a very special network controller
+
+and so on.
+
+*/
+@endverbatim
+
+To make your new shiny file visible in the automatically generated
+documentation you must sort in the used page lable ("<boardname>" in the
+template above) into Documentation/boards.dox as:
+
+@verbatim
+ ...
+ @subpage <boardname>
+ ...
+@endverbatim
+
+at the right architecture.
+
+@note Consider to use an unique page lable.
+
+@subsection board_lscript arch/\<architecture\>/boards/\<boardname\>/barebox.lds.S
+
+If your board needs a special binary @a barebox layout, you can provide a local
+board linker script file. This will replace the generic one provided by your
+architecture or CPU support.
+
+Add this file with
+
+@verbatim
+ extra-y += <board_linker_script>
+@endverbatim
+
+in your local \b Makefile to the list of files, forwarded to the last linking step.
+
+@section board_defconfig arch/\<architecture\>/configs/\<boardname\>_defconfig
+
+TBD
+
+@section board_mod_files These files needs to be modified:
+
+ - modify Documentation/board.dox
+ - modify arch/\<architecture\>/Kconfig
+ - add your board (MACH_*) to the list
+ - add your default text base address for this architecture (ARCH_TEXT_BASE)
+ - add BOARDINFO with valueable info for your board
+ - modify arch/\<architecture\>/Makefile:
+ - add board-$(MACH_*) = \<your board_dir\>
+
+First, the new board should be visible in the menu.
+
+@section board_specific_cpu Porting hints for specific CPUs
+
+@li @subpage dev_s3c24xx_mach
+
+*/