summaryrefslogtreecommitdiffstats
path: root/documentation/dev-manual/dev-manual-model.xml
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/dev-manual/dev-manual-model.xml
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/dev-manual/dev-manual-model.xml')
-rw-r--r--documentation/dev-manual/dev-manual-model.xml186
1 files changed, 0 insertions, 186 deletions
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