diff options
Diffstat (limited to 'Documentation/board.dox')
-rw-r--r-- | Documentation/board.dox | 95 |
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 + +*/ |