diff options
-rw-r--r-- | documentation/dev-manual/dev-manual-model.xml | 75 | ||||
-rw-r--r-- | documentation/dev-manual/figures/bsp-dev-flow.png | bin | 57479 -> 56047 bytes |
2 files changed, 37 insertions, 38 deletions
diff --git a/documentation/dev-manual/dev-manual-model.xml b/documentation/dev-manual/dev-manual-model.xml index d75b21ddde..d23c347710 100644 --- a/documentation/dev-manual/dev-manual-model.xml +++ b/documentation/dev-manual/dev-manual-model.xml | |||
@@ -13,10 +13,12 @@ | |||
13 | <listitem><para><emphasis>System Development:</emphasis> | 13 | <listitem><para><emphasis>System Development:</emphasis> |
14 | System Development covers Board Support Package (BSP) development and kernel | 14 | System Development covers Board Support Package (BSP) development and kernel |
15 | modification or configuration. | 15 | modification or configuration. |
16 | If you want to examine specific examples of the system development models, | 16 | If you want to examine a specific example of the kernel modification and |
17 | see the "<link linkend='dev-manual-bsp-appendix'>BSP Development Example</link>" | 17 | configuration model, |
18 | appendix and the | 18 | see the "<link linkend='dev-manual-kernel-appendix'>Kernel Modification Example</link>" appendix. |
19 | "<link linkend='dev-manual-kernel-appendix'>Kernel Modification Example</link>" appendix. | 19 | For an example on how to create a BSP, see the |
20 | "<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>" | ||
21 | section in the Yocto Project Board Support Package (BSP) Developer's Guide. | ||
20 | </para></listitem> | 22 | </para></listitem> |
21 | <listitem><para><emphasis>User Application Development:</emphasis> | 23 | <listitem><para><emphasis>User Application Development:</emphasis> |
22 | User Application Development covers development of applications that you intend | 24 | User Application Development covers development of applications that you intend |
@@ -80,9 +82,11 @@ | |||
80 | 82 | ||
81 | <para> | 83 | <para> |
82 | The remainder of this section presents the basic steps used to create a BSP | 84 | The remainder of this section presents the basic steps used to create a BSP |
83 | based on an existing BSP that ships with the Yocto Project. | 85 | using the Yocto Project's |
84 | You can reference the "<link linkend='dev-manual-bsp-appendix'>BSP Development Example</link>" | 86 | <ulink url='&YOCTO_DOCS_BSP_URL;#using-the-yocto-projects-bsp-tools'>BSP Tools</ulink>. |
85 | appendix for a detailed example that uses the Crown Bay BSP as a base BSP from which to start. | 87 | For an example that shows how to create a new layer using the tools, see the |
88 | "<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>" | ||
89 | section in the Yocto Project Board Support Package (BSP) Developer's Guide. | ||
86 | </para> | 90 | </para> |
87 | 91 | ||
88 | <para> | 92 | <para> |
@@ -108,37 +112,23 @@ | |||
108 | process and to the tools you need. | 112 | process and to the tools you need. |
109 | For information on how to set up the Source Directory, see the | 113 | For information on how to set up the Source Directory, see the |
110 | "<link linkend='getting-setup'>Getting Setup</link>" section.</para></listitem> | 114 | "<link linkend='getting-setup'>Getting Setup</link>" section.</para></listitem> |
111 | <listitem><para><emphasis>Establish a local copy of the base BSP files</emphasis>: Having | 115 | <listitem><para><emphasis>Establish the <filename>meta-intel</filename> |
112 | the BSP files on your system gives you access to the build | 116 | repository on your system</emphasis>: Having local copies of the |
117 | supported BSP layers on your system gives you access to the build | ||
113 | process and to the tools you need for creating a BSP. | 118 | process and to the tools you need for creating a BSP. |
114 | For information on how to get these files, see the | 119 | For information on how to get these files, see the |
115 | "<link linkend='getting-setup'>Getting Setup</link>" section.</para></listitem> | 120 | "<link linkend='getting-setup'>Getting Setup</link>" section.</para></listitem> |
116 | <listitem><para><emphasis>Choose a BSP that is supported by the Yocto Project | 121 | <listitem><para><emphasis>Create your own BSP layer using the |
117 | as your base BSP</emphasis>: | 122 | <ulink url='&YOCTO_DOCS_BSP_URL;#creating-a-new-bsp-layer-using-the-yocto-bsp-script'><filename>yocto-bsp</filename></ulink> script</emphasis>: |
118 | The Yocto Project ships with several BSPs that support various hardware. | 123 | Layers are ideal for |
119 | It is best to base your new BSP on an existing BSP rather than create all the | ||
120 | recipes and configuration files from scratch. | ||
121 | While it is possible to create everything from scratch, basing your new BSP | ||
122 | on something that is close is much easier. | ||
123 | Or, at a minimum, leveraging off an existing BSP | ||
124 | gives you some structure with which to start.</para> | ||
125 | <para>At this point you need to understand your target hardware well enough to determine which | ||
126 | existing BSP it most closely matches. | ||
127 | Things to consider are your hardware’s on-board features, such as CPU type and graphics support. | ||
128 | You should look at the README files for supported BSPs to get an idea of which one | ||
129 | you could use. | ||
130 | A generic <trademark class='registered'>Intel</trademark> | ||
131 | <trademark class='trade'>Atom</trademark>-based BSP to consider is the | ||
132 | Crown Bay that does not support the <trademark class='registered'>Intel</trademark> | ||
133 | Embedded Media Graphics Driver (EMGD). | ||
134 | The remainder of this example uses that base BSP.</para> | ||
135 | <para>To see the supported BSPs, go to the | ||
136 | <ulink url='&YOCTO_HOME_URL;/download'>Downloads</ulink> page on the Yocto Project | ||
137 | website and click on “BSP Downloads.”</para></listitem> | ||
138 | <listitem><para><emphasis>Create your own BSP layer</emphasis>: Layers are ideal for | ||
139 | isolating and storing work for a given piece of hardware. | 124 | isolating and storing work for a given piece of hardware. |
140 | A layer is really just a location or area in which you place the recipes for your BSP. | 125 | A layer is really just a location or area in which you place the recipes for your BSP. |
141 | In fact, a BSP is, in itself, a special type of layer. | 126 | In fact, a BSP is, in itself, a special type of layer. |
127 | The simplest way to create a new BSP layer that is compliant with the | ||
128 | Yocto Project is to use the <filename>yocto-bsp</filename> script. | ||
129 | For information about that script, see the | ||
130 | "<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>" | ||
131 | section in the Yocto Project Board Support (BSP) Developer's Guide. | ||
142 | </para> | 132 | </para> |
143 | <para> | 133 | <para> |
144 | Another example that illustrates a layer is an application. | 134 | Another example that illustrates a layer is an application. |
@@ -170,25 +160,34 @@ | |||
170 | section of the Board Support Package (BSP) Development Guide. | 160 | section of the Board Support Package (BSP) Development Guide. |
171 | In the standard layout, you will notice a suggested structure for recipes and | 161 | In the standard layout, you will notice a suggested structure for recipes and |
172 | configuration information. | 162 | configuration information. |
173 | You can see the standard layout for the Crown Bay BSP in this example by examining the | 163 | You can see the standard layout for a BSP by examining |
174 | directory structure of the <filename>meta-crownbay</filename> layer inside the | 164 | any supported BSP found in the <filename>meta-intel</filename> layer inside |
175 | Source Directory.</para></listitem> | 165 | the Source Directory.</para></listitem> |
176 | <listitem><para><emphasis>Make configuration changes to your new BSP | 166 | <listitem><para><emphasis>Make configuration changes to your new BSP |
177 | layer</emphasis>: The standard BSP layer structure organizes the files you need | 167 | layer</emphasis>: The standard BSP layer structure organizes the files you need |
178 | to edit in <filename>conf</filename> and several <filename>recipes-*</filename> | 168 | to edit in <filename>conf</filename> and several <filename>recipes-*</filename> |
179 | directories within the BSP layer. | 169 | directories within the BSP layer. |
180 | Configuration changes identify where your new layer is on the local system | 170 | Configuration changes identify where your new layer is on the local system |
181 | and identify which kernel you are going to use. | 171 | and identify which kernel you are going to use. |
172 | When you run the <filename>yocto-bsp</filename> script you are able to interactively | ||
173 | configure many things for the BSP (e.g. keyboard, touchscreen, and so forth). | ||
182 | </para></listitem> | 174 | </para></listitem> |
183 | <listitem><para><emphasis>Make recipe changes to your new BSP layer</emphasis>: Recipe | 175 | <listitem><para><emphasis>Make recipe changes to your new BSP layer</emphasis>: Recipe |
184 | changes include altering recipes (<filename>.bb</filename> files), removing | 176 | changes include altering recipes (<filename>.bb</filename> files), removing |
185 | recipes you don't use, and adding new recipes that you need to support your hardware. | 177 | recipes you don't use, and adding new recipes or append files |
178 | (<filename>.bbappend</filename>) that you need to support your hardware. | ||
186 | </para></listitem> | 179 | </para></listitem> |
187 | <listitem><para><emphasis>Prepare for the build</emphasis>: Once you have made all the | 180 | <listitem><para><emphasis>Prepare for the build</emphasis>: Once you have made all the |
188 | changes to your BSP layer, there remains a few things | 181 | changes to your BSP layer, there remains a few things |
189 | you need to do for the OpenEmbedded build system in order for it to create your image. | 182 | you need to do for the OpenEmbedded build system in order for it to create your image. |
190 | You need to get the build environment ready by sourcing an environment setup script | 183 | You need to get the build environment ready by sourcing an environment setup script |
191 | and you need to be sure two key configuration files are configured appropriately.</para> | 184 | and you need to be sure two key configuration files are configured appropriately: |
185 | the <filename>conf/local.conf</filename> and the | ||
186 | <filename>conf/bblayers.conf</filename> file. | ||
187 | You must make the OpenEmbedded build system aware of your new layer. | ||
188 | See the | ||
189 | "<link linkend='enabling-your-layer'>Enabling Your Layer</link>" section | ||
190 | for information on how to let the build system know about your new layer.</para> | ||
192 | <para>The entire process for building an image is overviewed in the section | 191 | <para>The entire process for building an image is overviewed in the section |
193 | "<ulink url='&YOCTO_DOCS_QS_URL;#building-image'>Building an Image</ulink>" section | 192 | "<ulink url='&YOCTO_DOCS_QS_URL;#building-image'>Building an Image</ulink>" section |
194 | of the Yocto Project Quick Start. | 193 | of the Yocto Project Quick Start. |
diff --git a/documentation/dev-manual/figures/bsp-dev-flow.png b/documentation/dev-manual/figures/bsp-dev-flow.png index b20ee19223..1ccd9c3e3b 100644 --- a/documentation/dev-manual/figures/bsp-dev-flow.png +++ b/documentation/dev-manual/figures/bsp-dev-flow.png | |||
Binary files differ | |||