summaryrefslogtreecommitdiffstats
path: root/documentation
diff options
context:
space:
mode:
authorScott Rifenbark <srifenbark@gmail.com>2017-06-28 13:51:27 -0700
committerRichard Purdie <richard.purdie@linuxfoundation.org>2017-07-12 00:28:14 +0100
commita8c8680f84a9d3496676be4d30c52f90c1c7c1d1 (patch)
treec06fb2b921b157235905f031db649ea90f03526b /documentation
parentd552379be3b0240866d1a7d6fe206c0d93aeb43b (diff)
downloadpoky-a8c8680f84a9d3496676be4d30c52f90c1c7c1d1.tar.gz
dev-manual, bsp-guide: Moved BSP development workflow section
Fixes [YOCTO #11630] Moved the section on BSP Development workflow from the dev-manual into the bsp-guide. This procedure needs to live in the BSP guide. Many links had to be fixed. (From yocto-docs rev: fbf06240f83221929aea237660146e0076207f6a) Signed-off-by: Scott Rifenbark <srifenbark@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Diffstat (limited to 'documentation')
-rw-r--r--documentation/Makefile2
-rw-r--r--documentation/bsp-guide/bsp.xml191
-rw-r--r--documentation/bsp-guide/figures/bsp-dev-flow.png (renamed from documentation/dev-manual/figures/bsp-dev-flow.png)bin42751 -> 42751 bytes
-rw-r--r--documentation/dev-manual/dev-manual-model.xml186
4 files changed, 190 insertions, 189 deletions
diff --git a/documentation/Makefile b/documentation/Makefile
index 6a2f22e40e..3c02a3c2f0 100644
--- a/documentation/Makefile
+++ b/documentation/Makefile
@@ -88,6 +88,7 @@ ifeq ($(DOC),bsp-guide)
88XSLTOPTS = --xinclude 88XSLTOPTS = --xinclude
89ALLPREQ = html eclipse tarball 89ALLPREQ = html eclipse tarball
90TARFILES = bsp-style.css bsp-guide.html figures/bsp-title.png \ 90TARFILES = bsp-style.css bsp-guide.html figures/bsp-title.png \
91 figures/bsp-dev-flow.png \
91 eclipse 92 eclipse
92MANUALS = $(DOC)/$(DOC).html $(DOC)/eclipse 93MANUALS = $(DOC)/$(DOC).html $(DOC)/eclipse
93FIGURES = figures 94FIGURES = figures
@@ -128,7 +129,6 @@ TARFILES = dev-style.css dev-manual.html \
128 figures/wip.png 129 figures/wip.png
129 else 130 else
130TARFILES = dev-style.css dev-manual.html \ 131TARFILES = dev-style.css dev-manual.html \
131 figures/bsp-dev-flow.png \
132 figures/dev-title.png \ 132 figures/dev-title.png \
133 figures/kernel-dev-flow.png \ 133 figures/kernel-dev-flow.png \
134 figures/kernel-overview-1.png figures/kernel-overview-2-generic.png \ 134 figures/kernel-overview-1.png figures/kernel-overview-2-generic.png \
diff --git a/documentation/bsp-guide/bsp.xml b/documentation/bsp-guide/bsp.xml
index 50822db2c2..f452c6eaec 100644
--- a/documentation/bsp-guide/bsp.xml
+++ b/documentation/bsp-guide/bsp.xml
@@ -83,8 +83,8 @@
83 83
84 <para> 84 <para>
85 For information on the BSP development workflow, see the 85 For information on the BSP development workflow, see the
86 "<ulink url='&YOCTO_DOCS_DEV_URL;#developing-a-board-support-package-bsp'>Developing a Board Support Package (BSP)</ulink>" 86 "<link linkend='developing-a-board-support-package-bsp'>Developing a Board Support Package (BSP)</link>"
87 section in the Yocto Project Development Manual. 87 section.
88 For more information on how to set up a local copy of source files 88 For more information on how to set up a local copy of source files
89 from a Git repository, see the 89 from a Git repository, see the
90 "<ulink url='&YOCTO_DOCS_DEV_URL;#working-with-yocto-project-source-files'>Working With Yocto Project Source Files</ulink>" 90 "<ulink url='&YOCTO_DOCS_DEV_URL;#working-with-yocto-project-source-files'>Working With Yocto Project Source Files</ulink>"
@@ -710,6 +710,193 @@
710 </section> 710 </section>
711 </section> 711 </section>
712 712
713 <section id='developing-a-board-support-package-bsp'>
714 <title>Developing a Board Support Package (BSP)</title>
715
716 <para>
717 A BSP is a collection of recipes that, when applied during a build, results in
718 an image that you can run on a particular board.
719 Thus, the package when compiled into the new image, supports the operation of the board.
720 </para>
721
722 <note>
723 For a brief list of terms used when describing the development process in the Yocto Project,
724 see the
725 "<ulink url='&YOCTO_DOCS_REF_URL;#yocto-project-terms'>Yocto Project Terms</ulink>" section.
726 </note>
727
728 <para>
729 The remainder of this section presents the basic
730 steps used to create a BSP using the Yocto Project's
731 <link linkend='using-the-yocto-projects-bsp-tools'>BSP Tools</link>.
732 Although not required for BSP creation, the
733 <filename>meta-intel</filename> repository, which contains
734 many BSPs supported by the Yocto Project, is part of the example.
735 </para>
736
737 <para>
738 For an example that shows how to create a new layer using the tools, see the
739 "<link linkend='creating-a-new-bsp-layer-using-the-yocto-bsp-script'>Creating a New BSP Layer Using the yocto-bsp Script</link>"
740 section.
741 </para>
742
743 <para>
744 The following illustration and list summarize the BSP creation general workflow.
745 </para>
746
747 <para>
748 <imagedata fileref="figures/bsp-dev-flow.png" width="6in" depth="7in" align="center" scalefit="1" />
749 </para>
750
751 <para>
752 <orderedlist>
753 <listitem><para><emphasis>Set up your host development system to support
754 development using the Yocto Project</emphasis>: See the
755 "<ulink url='&YOCTO_DOCS_QS_URL;#the-linux-distro'>The Linux Distribution</ulink>"
756 and the
757 "<ulink url='&YOCTO_DOCS_QS_URL;#packages'>The Build Host Packages</ulink>" sections both
758 in the Yocto Project Quick Start for requirements.</para></listitem>
759 <listitem><para><emphasis>Establish a local copy of the project files on your
760 system</emphasis>: You need this
761 <ulink url='&YOCTO_DOCS_REF_URL;#source-directory'>Source Directory</ulink>
762 available on your host system.
763 Having these files on your system gives you access to the build
764 process and to the tools you need.
765 For information on how to set up the Source Directory,
766 see the
767 "<ulink url='&YOCTO_DOCS_DEV_URL;#working-with-yocto-project-source-files'>Working With Yocto Project Source Files</ulink>"
768 section in the Yocto Project Development Manual.
769 </para></listitem>
770 <listitem><para><emphasis>Establish the <filename>meta-intel</filename>
771 repository on your system</emphasis>: Having local copies
772 of these supported BSP layers on your system gives you
773 access to layers you might be able to build on or modify
774 to create your BSP.
775 For information on how to get these files, see the
776 "<ulink url='&YOCTO_DOCS_DEV_URL;#setting-up-bsp-layers'>Setting Up BSP Layers</ulink>"
777 section in the Yocto Project Development Manual.
778 </para></listitem>
779 <listitem><para><emphasis>Create your own BSP layer using the
780 <link linkend='creating-a-new-bsp-layer-using-the-yocto-bsp-script'><filename>yocto-bsp</filename></link> script</emphasis>:
781 Layers are ideal for
782 isolating and storing work for a given piece of hardware.
783 A layer is really just a location or area in which you place
784 the recipes and configurations for your BSP.
785 In fact, a BSP is, in itself, a special type of layer.
786 The simplest way to create a new BSP layer that is compliant with the
787 Yocto Project is to use the <filename>yocto-bsp</filename> script.
788 For information about that script, see the
789 "<link linkend='creating-a-new-bsp-layer-using-the-yocto-bsp-script'>Creating a New BSP Layer Using the yocto-bsp Script</link>"
790 section.
791 </para>
792
793 <para>
794 Another example that illustrates a layer
795 is an application.
796 Suppose you are creating an application that has
797 library or other dependencies in order for it to
798 compile and run.
799 The layer, in this case, would be where all the
800 recipes that define those dependencies are kept.
801 The key point for a layer is that it is an isolated
802 area that contains all the relevant information for
803 the project that the OpenEmbedded build system knows
804 about.
805 For more information on layers, see the
806 "<ulink url='&YOCTO_DOCS_DEV_URL;#understanding-and-creating-layers'>Understanding and Creating Layers</ulink>"
807 section in the Yocto Project Development Manual.
808 For more information on BSP layers, see the
809 "<link linkend='bsp-layers'>BSP Layers</link>"
810 section.
811 <note>
812 <para>
813 Five BSPs exist that are part of the Yocto Project release:
814 <filename>beaglebone</filename> (ARM),
815 <filename>mpc8315e</filename> (PowerPC),
816 and <filename>edgerouter</filename> (MIPS).
817 The recipes and configurations for these five BSPs
818 are located and dispersed within the
819 <ulink url='&YOCTO_DOCS_REF_URL;#source-directory'>Source Directory</ulink>.
820 </para>
821
822 <para>
823 Three core Intel BSPs exist as part of the Yocto
824 Project release in the
825 <filename>meta-intel</filename> layer:
826 <itemizedlist>
827 <listitem><para><filename>intel-core2-32</filename>,
828 which is a BSP optimized for the Core2 family of CPUs
829 as well as all CPUs prior to the Silvermont core.
830 </para></listitem>
831 <listitem><para><filename>intel-corei7-64</filename>,
832 which is a BSP optimized for Nehalem and later
833 Core and Xeon CPUs as well as Silvermont and later
834 Atom CPUs, such as the Baytrail SoCs.
835 </para></listitem>
836 <listitem><para><filename>intel-quark</filename>,
837 which is a BSP optimized for the Intel Galileo
838 gen1 &amp; gen2 development boards.
839 </para></listitem>
840 </itemizedlist>
841 </para>
842 </note>
843 </para>
844
845 <para>When you set up a layer for a new BSP, you should follow a standard layout.
846 This layout is described in the
847 "<link linkend='bsp-filelayout'>Example Filesystem Layout</link>"
848 section.
849 In the standard layout, you will notice a suggested structure for recipes and
850 configuration information.
851 You can see the standard layout for a BSP by examining
852 any supported BSP found in the <filename>meta-intel</filename> layer inside
853 the Source Directory.</para></listitem>
854 <listitem><para><emphasis>Make configuration changes to your new BSP
855 layer</emphasis>: The standard BSP layer structure organizes the files you need
856 to edit in <filename>conf</filename> and several <filename>recipes-*</filename>
857 directories within the BSP layer.
858 Configuration changes identify where your new layer is on the local system
859 and identify which kernel you are going to use.
860 When you run the <filename>yocto-bsp</filename> script, you are able to interactively
861 configure many things for the BSP (e.g. keyboard, touchscreen, and so forth).
862 </para></listitem>
863 <listitem><para><emphasis>Make recipe changes to your new BSP layer</emphasis>: Recipe
864 changes include altering recipes (<filename>.bb</filename> files), removing
865 recipes you do not use, and adding new recipes or append files
866 (<filename>.bbappend</filename>) that you need to support your hardware.
867 </para></listitem>
868 <listitem><para><emphasis>Prepare for the build</emphasis>: Once you have made all the
869 changes to your BSP layer, there remains a few things
870 you need to do for the OpenEmbedded build system in order for it to create your image.
871 You need to get the build environment ready by sourcing an environment setup script
872 (i.e. <filename>oe-init-build-env</filename> or
873 <filename>oe-init-build-env-memres</filename>)
874 and you need to be sure two key configuration files are configured appropriately:
875 the <filename>conf/local.conf</filename> and the
876 <filename>conf/bblayers.conf</filename> file.
877 You must make the OpenEmbedded build system aware of your new layer.
878 See the
879 "<ulink url='&YOCTO_DOCS_DEV_URL;#enabling-your-layer'>Enabling Your Layer</ulink>"
880 section in the Yocto Project Development Manual
881 for information on how to let the build system know about your new layer.</para>
882 <para>The entire process for building an image is overviewed in the section
883 "<ulink url='&YOCTO_DOCS_QS_URL;#qs-building-images'>Building Images</ulink>" section
884 of the Yocto Project Quick Start.
885 You might want to reference this information.</para></listitem>
886 <listitem><para><emphasis>Build the image</emphasis>: The OpenEmbedded build system
887 uses the BitBake tool to build images based on the type of image you want to create.
888 You can find more information about BitBake in the
889 <ulink url='&YOCTO_DOCS_BB_URL;'>BitBake User Manual</ulink>.
890 </para>
891 <para>The build process supports several types of images to satisfy different needs.
892 See the
893 "<ulink url='&YOCTO_DOCS_REF_URL;#ref-images'>Images</ulink>" chapter
894 in the Yocto Project Reference Manual for information on
895 supported images.</para></listitem>
896 </orderedlist>
897 </para>
898 </section>
899
713 <section id='requirements-and-recommendations-for-released-bsps'> 900 <section id='requirements-and-recommendations-for-released-bsps'>
714 <title>Requirements and Recommendations for Released BSPs</title> 901 <title>Requirements and Recommendations for Released BSPs</title>
715 902
diff --git a/documentation/dev-manual/figures/bsp-dev-flow.png b/documentation/bsp-guide/figures/bsp-dev-flow.png
index 540b0abb9f..540b0abb9f 100644
--- a/documentation/dev-manual/figures/bsp-dev-flow.png
+++ b/documentation/bsp-guide/figures/bsp-dev-flow.png
Binary files differ
diff --git a/documentation/dev-manual/dev-manual-model.xml b/documentation/dev-manual/dev-manual-model.xml
index d2c84eae03..8b9aa4a223 100644
--- a/documentation/dev-manual/dev-manual-model.xml
+++ b/documentation/dev-manual/dev-manual-model.xml
@@ -76,192 +76,6 @@
76 configuration. 76 configuration.
77 </para> 77 </para>
78 78
79 <section id='developing-a-board-support-package-bsp'>
80 <title>Developing a Board Support Package (BSP)</title>
81
82 <para>
83 A BSP is a collection of recipes that, when applied during a build, results in
84 an image that you can run on a particular board.
85 Thus, the package when compiled into the new image, supports the operation of the board.
86 </para>
87
88 <note>
89 For a brief list of terms used when describing the development process in the Yocto Project,
90 see the
91 "<ulink url='&YOCTO_DOCS_REF_URL;#yocto-project-terms'>Yocto Project Terms</ulink>" section.
92 </note>
93
94 <para>
95 The remainder of this section presents the basic
96 steps used to create a BSP using the Yocto Project's
97 <ulink url='&YOCTO_DOCS_BSP_URL;#using-the-yocto-projects-bsp-tools'>BSP Tools</ulink>.
98 Although not required for BSP creation, the
99 <filename>meta-intel</filename> repository, which contains
100 many BSPs supported by the Yocto Project, is part of the example.
101 </para>
102
103 <para>
104 For an example that shows how to create a new layer using the tools, see the
105 "<ulink url='&YOCTO_DOCS_BSP_URL;#creating-a-new-bsp-layer-using-the-yocto-bsp-script'>Creating a New BSP Layer Using the yocto-bsp Script</ulink>"
106 section in the Yocto Project Board Support Package (BSP) Developer's Guide.
107 </para>
108
109 <para>
110 The following illustration and list summarize the BSP creation general workflow.
111 </para>
112
113 <para>
114 <imagedata fileref="figures/bsp-dev-flow.png" width="6in" depth="7in" align="center" scalefit="1" />
115 </para>
116
117 <para>
118 <orderedlist>
119 <listitem><para><emphasis>Set up your host development system to support
120 development using the Yocto Project</emphasis>: See the
121 "<ulink url='&YOCTO_DOCS_QS_URL;#the-linux-distro'>The Linux Distribution</ulink>"
122 and the
123 "<ulink url='&YOCTO_DOCS_QS_URL;#packages'>The Build Host Packages</ulink>" sections both
124 in the Yocto Project Quick Start for requirements.</para></listitem>
125 <listitem><para><emphasis>Establish a local copy of the project files on your
126 system</emphasis>: You need this
127 <ulink url='&YOCTO_DOCS_REF_URL;#source-directory'>Source Directory</ulink>
128 available on your host system.
129 Having these files on your system gives you access to the build
130 process and to the tools you need.
131 For information on how to set up the Source Directory,
132 see the
133 "<link linkend='working-with-yocto-project-source-files'>Working With Yocto Project Source Files</link>"
134 section.
135 </para></listitem>
136 <listitem><para><emphasis>Establish the <filename>meta-intel</filename>
137 repository on your system</emphasis>: Having local copies
138 of these supported BSP layers on your system gives you
139 access to layers you might be able to build on or modify
140 to create your BSP.
141 For information on how to get these files, see the
142 "<link linkend='setting-up-bsp-layers'>Setting Up BSP Layers</link>" section.
143 </para></listitem>
144 <listitem><para><emphasis>Create your own BSP layer using the
145 <ulink url='&YOCTO_DOCS_BSP_URL;#creating-a-new-bsp-layer-using-the-yocto-bsp-script'><filename>yocto-bsp</filename></ulink> script</emphasis>:
146 Layers are ideal for
147 isolating and storing work for a given piece of hardware.
148 A layer is really just a location or area in which you place
149 the recipes and configurations for your BSP.
150 In fact, a BSP is, in itself, a special type of layer.
151 The simplest way to create a new BSP layer that is compliant with the
152 Yocto Project is to use the <filename>yocto-bsp</filename> script.
153 For information about that script, see the
154 "<ulink url='&YOCTO_DOCS_BSP_URL;#creating-a-new-bsp-layer-using-the-yocto-bsp-script'>Creating a New BSP Layer Using the yocto-bsp Script</ulink>"
155 section in the Yocto Project Board Support (BSP) Developer's Guide.
156 </para>
157
158 <para>
159 Another example that illustrates a layer
160 is an application.
161 Suppose you are creating an application that has
162 library or other dependencies in order for it to
163 compile and run.
164 The layer, in this case, would be where all the
165 recipes that define those dependencies are kept.
166 The key point for a layer is that it is an isolated
167 area that contains all the relevant information for
168 the project that the OpenEmbedded build system knows
169 about.
170 For more information on layers, see the
171 "<link linkend='understanding-and-creating-layers'>Understanding and Creating Layers</link>"
172 section.
173 For more information on BSP layers, see the
174 "<ulink url='&YOCTO_DOCS_BSP_URL;#bsp-layers'>BSP Layers</ulink>"
175 section in the Yocto Project Board Support Package (BSP)
176 Developer's Guide.
177 <note>
178 <para>
179 Five BSPs exist that are part of the Yocto Project release:
180 <filename>beaglebone</filename> (ARM),
181 <filename>mpc8315e</filename> (PowerPC),
182 and <filename>edgerouter</filename> (MIPS).
183 The recipes and configurations for these five BSPs
184 are located and dispersed within the
185 <ulink url='&YOCTO_DOCS_REF_URL;#source-directory'>Source Directory</ulink>.
186 </para>
187
188 <para>
189 Three core Intel BSPs exist as part of the Yocto
190 Project release in the
191 <filename>meta-intel</filename> layer:
192 <itemizedlist>
193 <listitem><para><filename>intel-core2-32</filename>,
194 which is a BSP optimized for the Core2 family of CPUs
195 as well as all CPUs prior to the Silvermont core.
196 </para></listitem>
197 <listitem><para><filename>intel-corei7-64</filename>,
198 which is a BSP optimized for Nehalem and later
199 Core and Xeon CPUs as well as Silvermont and later
200 Atom CPUs, such as the Baytrail SoCs.
201 </para></listitem>
202 <listitem><para><filename>intel-quark</filename>,
203 which is a BSP optimized for the Intel Galileo
204 gen1 &amp; gen2 development boards.
205 </para></listitem>
206 </itemizedlist>
207 </para>
208 </note>
209 </para>
210
211 <para>When you set up a layer for a new BSP, you should follow a standard layout.
212 This layout is described in the
213 "<ulink url='&YOCTO_DOCS_BSP_URL;#bsp-filelayout'>Example Filesystem Layout</ulink>"
214 section of the Board Support Package (BSP) Development Guide.
215 In the standard layout, you will notice a suggested structure for recipes and
216 configuration information.
217 You can see the standard layout for a BSP by examining
218 any supported BSP found in the <filename>meta-intel</filename> layer inside
219 the Source Directory.</para></listitem>
220 <listitem><para><emphasis>Make configuration changes to your new BSP
221 layer</emphasis>: The standard BSP layer structure organizes the files you need
222 to edit in <filename>conf</filename> and several <filename>recipes-*</filename>
223 directories within the BSP layer.
224 Configuration changes identify where your new layer is on the local system
225 and identify which kernel you are going to use.
226 When you run the <filename>yocto-bsp</filename> script, you are able to interactively
227 configure many things for the BSP (e.g. keyboard, touchscreen, and so forth).
228 </para></listitem>
229 <listitem><para><emphasis>Make recipe changes to your new BSP layer</emphasis>: Recipe
230 changes include altering recipes (<filename>.bb</filename> files), removing
231 recipes you do not use, and adding new recipes or append files
232 (<filename>.bbappend</filename>) that you need to support your hardware.
233 </para></listitem>
234 <listitem><para><emphasis>Prepare for the build</emphasis>: Once you have made all the
235 changes to your BSP layer, there remains a few things
236 you need to do for the OpenEmbedded build system in order for it to create your image.
237 You need to get the build environment ready by sourcing an environment setup script
238 (i.e. <filename>oe-init-build-env</filename> or
239 <filename>oe-init-build-env-memres</filename>)
240 and you need to be sure two key configuration files are configured appropriately:
241 the <filename>conf/local.conf</filename> and the
242 <filename>conf/bblayers.conf</filename> file.
243 You must make the OpenEmbedded build system aware of your new layer.
244 See the
245 "<link linkend='enabling-your-layer'>Enabling Your Layer</link>" section
246 for information on how to let the build system know about your new layer.</para>
247 <para>The entire process for building an image is overviewed in the section
248 "<ulink url='&YOCTO_DOCS_QS_URL;#qs-building-images'>Building Images</ulink>" section
249 of the Yocto Project Quick Start.
250 You might want to reference this information.</para></listitem>
251 <listitem><para><emphasis>Build the image</emphasis>: The OpenEmbedded build system
252 uses the BitBake tool to build images based on the type of image you want to create.
253 You can find more information about BitBake in the
254 <ulink url='&YOCTO_DOCS_BB_URL;'>BitBake User Manual</ulink>.
255 </para>
256 <para>The build process supports several types of images to satisfy different needs.
257 See the
258 "<ulink url='&YOCTO_DOCS_REF_URL;#ref-images'>Images</ulink>" chapter
259 in the Yocto Project Reference Manual for information on
260 supported images.</para></listitem>
261 </orderedlist>
262 </para>
263 </section>
264
265 <section id='modifying-the-kernel'> 79 <section id='modifying-the-kernel'>
266 <title><anchor id='kernel-spot' />Modifying the Kernel</title> 80 <title><anchor id='kernel-spot' />Modifying the Kernel</title>
267 81