aboutsummaryrefslogtreecommitdiff
path: root/doc/develop/board_best_practices.rst
diff options
context:
space:
mode:
authorTom Rini <trini@konsulko.com>2023-08-09 08:28:50 -0400
committerTom Rini <trini@konsulko.com>2023-08-09 08:28:50 -0400
commitf26eda936bfb49c99d3c7829d416809013b95d3f (patch)
treeaff9939b5ed0f27d243a2c8cf6ee802232c7cd2c /doc/develop/board_best_practices.rst
parent5852b1d2c3be4d3ae1ba17f729230deefacfc8bb (diff)
parentfa43709b8d7aa30b6d1039dce854c5eea86f122f (diff)
Merge tag 'doc-2023-10-rc3' of https://source.denx.de/u-boot/custodians/u-boot-efi
Pull request for doc-2023-10-rc3 Documentation: * Update examples for imx8mp_evk * OpenOCD debugging guide for TI K3 boards * Explain using gadget devices on TI boards * Describe best practices for board ports
Diffstat (limited to 'doc/develop/board_best_practices.rst')
-rw-r--r--doc/develop/board_best_practices.rst26
1 files changed, 26 insertions, 0 deletions
diff --git a/doc/develop/board_best_practices.rst b/doc/develop/board_best_practices.rst
new file mode 100644
index 0000000000..f44401eab7
--- /dev/null
+++ b/doc/develop/board_best_practices.rst
@@ -0,0 +1,26 @@
+.. SPDX-License-Identifier: GPL-2.0+:
+
+Best Practices for Board Ports
+==============================
+
+In addition to the regular best practices such as using :doc:`checkpatch` and
+following the :doc:`docstyle` and the :doc:`codingstyle` there are some things
+which are specific to creating a new board port.
+
+* Implement :doc:`bootstd` to ensure that most operating systems will be
+ supported by the platform.
+
+* The platform defconfig file must be generated via `make savedefconfig`.
+
+* The Kconfig and Kbuild infrastructure supports using "fragments" that can be
+ used to apply changes on top of a defconfig file. These can be useful for
+ many things such as:
+
+ * Supporting different firmware locations (e.g. eMMC, SD, QSPI).
+
+ * Multiple board variants when runtime detection is not desired.
+
+ * Supporting different build types such as production and development.
+
+ Kconfig fragments should reside in the board directory itself rather than in
+ the top-level `configs/` directory.