diff options
author | Scott Rifenbark <srifenbark@gmail.com> | 2017-06-28 13:51:27 -0700 |
---|---|---|
committer | Richard Purdie <richard.purdie@linuxfoundation.org> | 2017-07-12 00:28:14 +0100 |
commit | a8c8680f84a9d3496676be4d30c52f90c1c7c1d1 (patch) | |
tree | c06fb2b921b157235905f031db649ea90f03526b /documentation/dev-manual | |
parent | d552379be3b0240866d1a7d6fe206c0d93aeb43b (diff) | |
download | poky-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')
-rw-r--r-- | documentation/dev-manual/dev-manual-model.xml | 186 | ||||
-rw-r--r-- | documentation/dev-manual/figures/bsp-dev-flow.png | bin | 42751 -> 0 bytes |
2 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 & 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 | ||
diff --git a/documentation/dev-manual/figures/bsp-dev-flow.png b/documentation/dev-manual/figures/bsp-dev-flow.png deleted file mode 100644 index 540b0abb9f..0000000000 --- a/documentation/dev-manual/figures/bsp-dev-flow.png +++ /dev/null | |||
Binary files differ | |||