summaryrefslogtreecommitdiffstats
path: root/documentation/bsp-guide
diff options
context:
space:
mode:
authorScott Rifenbark <srifenbark@gmail.com>2018-03-08 11:15:51 -0800
committerRichard Purdie <richard.purdie@linuxfoundation.org>2018-03-25 09:41:12 +0100
commitc8b2ba7523afd1611e7afb3d83b6df5c3df8326f (patch)
tree502b035ef830e93d11bf4a01e583fd2bdb504de8 /documentation/bsp-guide
parentdff40ea5cc21c0e2b77cd013cf31af6d0d906ce9 (diff)
downloadpoky-c8b2ba7523afd1611e7afb3d83b6df5c3df8326f.tar.gz
bsp-guide: Updated the section on developing a BSP
This section had several out-of-date items. They are all up to date now. (From yocto-docs rev: 247f3eceeccc645a1b556aea433d4cf66399e962) Signed-off-by: Scott Rifenbark <srifenbark@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Diffstat (limited to 'documentation/bsp-guide')
-rw-r--r--documentation/bsp-guide/bsp.xml205
1 files changed, 117 insertions, 88 deletions
diff --git a/documentation/bsp-guide/bsp.xml b/documentation/bsp-guide/bsp.xml
index 3cb52e20d5..45905f8b6b 100644
--- a/documentation/bsp-guide/bsp.xml
+++ b/documentation/bsp-guide/bsp.xml
@@ -944,18 +944,18 @@
944 <title>Developing a Board Support Package (BSP)</title> 944 <title>Developing a Board Support Package (BSP)</title>
945 945
946 <para> 946 <para>
947 This section contains the high-level procedure you can follow 947 This section contains the high-level procedure you can
948 to create a BSP using the Yocto Project's 948 follow to create a BSP using the Yocto Project's
949 <link linkend='using-the-yocto-projects-bsp-tools'>BSP Tools</link>. 949 <link linkend='using-the-yocto-projects-bsp-tools'>BSP Tools</link>.
950 Although not required for BSP creation, the 950 Although not required for BSP creation, the
951 <filename>meta-intel</filename> repository, which contains 951 <filename>meta-intel</filename> repository, which
952 many BSPs supported by the Yocto Project, is part of the 952 contains many BSPs supported by the Yocto Project,
953 example. 953 is part of the example.
954 </para> 954 </para>
955 955
956 <para> 956 <para>
957 For an example that shows how to create a new layer using 957 For an example that shows how to create a new
958 the tools, see the 958 layer using the tools, see the
959 "<link linkend='creating-a-new-bsp-layer-using-the-bitbake-layers-script'>Creating a New BSP Layer Using the <filename>bitbake-layers</filename> Script</link>" 959 "<link linkend='creating-a-new-bsp-layer-using-the-bitbake-layers-script'>Creating a New BSP Layer Using the <filename>bitbake-layers</filename> Script</link>"
960 section. 960 section.
961 </para> 961 </para>
@@ -972,37 +972,40 @@
972 <para> 972 <para>
973 <orderedlist> 973 <orderedlist>
974 <listitem><para> 974 <listitem><para>
975 <emphasis>Set up Your Host Development System to Support 975 <emphasis>Set up Your Host Development System
976 Development Using the Yocto Project</emphasis>: 976 to Support Development Using the Yocto
977 Project</emphasis>:
977 See the 978 See the
978 "<ulink url='&YOCTO_DOCS_QS_URL;#yp-resources'>Setting Up to Use the Yocto Project</ulink>" 979 "<ulink url='&YOCTO_DOCS_DEV_URL;#setting-up-the-development-host-to-use-the-yocto-project'>Setting Up the Development Host to Use the Yocto Project</ulink>"
979 section in the Yocto Project Quick Start for options on how 980 section in the Yocto Project Development Tasks
980 to get a build host ready to use the Yocto Project. 981 Manual for options on how to get a system ready
982 to use the Yocto Project.
981 </para></listitem> 983 </para></listitem>
982 <listitem><para> 984 <listitem><para>
983 <emphasis>Establish the <filename>meta-intel</filename> 985 <emphasis>Establish the
986 <filename>meta-intel</filename>
984 Repository on Your System:</emphasis> 987 Repository on Your System:</emphasis>
985 Having local copies of these supported BSP layers on 988 Having local copies of these supported BSP layers
986 your system gives you access to layers you might be able 989 on your system gives you access to layers you
987 to build on or modify to create your BSP. 990 might be able to leverage when creating your BSP.
988 For information on how to get these files, see the 991 For information on how to get these files, see the
989 "<link linkend='preparing-your-build-host-to-work-with-bsp-layers'>Preparing Your Build Host to Work with BSP Layers</link>" 992 "<link linkend='preparing-your-build-host-to-work-with-bsp-layers'>Preparing Your Build Host to Work with BSP Layers</link>"
990 section. 993 section.
991 </para></listitem> 994 </para></listitem>
992 <listitem><para> 995 <listitem><para>
993 <emphasis>Create Your Own BSP Layer Using the 996 <emphasis>Create Your Own BSP Layer Using the
994 <link linkend='creating-a-new-bsp-layer-using-the-bitbake-layers-script'><filename>yocto-bsp</filename></link> 997 <filename>bitbake-layers</filename>
995 script:</emphasis> 998 Script:</emphasis>
996 Layers are ideal for isolating and storing work for a 999 Layers are ideal for isolating and storing work
997 given piece of hardware. 1000 for a given piece of hardware.
998 A layer is really just a location or area in which you 1001 A layer is really just a location or area in which you
999 place the recipes and configurations for your BSP. 1002 place the recipes and configurations for your BSP.
1000 In fact, a BSP is, in itself, a special type of layer. 1003 In fact, a BSP is, in itself, a special type of layer.
1001 The simplest way to create a new BSP layer that is 1004 The simplest way to create a new BSP layer that is
1002 compliant with the Yocto Project is to use the 1005 compliant with the Yocto Project is to use the
1003 <filename>yocto-bsp</filename> script. 1006 <filename>bitbake-layers</filename> script.
1004 For information about that script, see the 1007 For information about that script, see the
1005 "<link linkend='creating-a-new-bsp-layer-using-the-bitbake-layers-script'>Creating a New BSP Layer Using the yocto-bsp Script</link>" 1008 "<link linkend='creating-a-new-bsp-layer-using-the-bitbake-layers-script'>Creating a New BSP Layer Using the <filename>bitbake-layers</filename> Script</link>"
1006 section.</para> 1009 section.</para>
1007 1010
1008 <para>Another example that illustrates a layer 1011 <para>Another example that illustrates a layer
@@ -1012,91 +1015,123 @@
1012 compile and run. 1015 compile and run.
1013 The layer, in this case, would be where all the 1016 The layer, in this case, would be where all the
1014 recipes that define those dependencies are kept. 1017 recipes that define those dependencies are kept.
1015 The key point for a layer is that it is an isolated 1018 The key point for a layer is that it is an
1016 area that contains all the relevant information for 1019 isolated area that contains all the relevant
1017 the project that the OpenEmbedded build system knows 1020 information for the project that the
1018 about. 1021 OpenEmbedded build system knows about.
1019 For more information on layers, see the 1022 For more information on layers, see the
1023 "<ulink url='&YOCTO_DOCS_GS_URL;#the-yocto-project-layer-model'>The Yocto Project Layer Model</ulink>"
1024 section in the Getting Started With Yocto Project
1025 Manual.
1026 You can also reference the
1020 "<ulink url='&YOCTO_DOCS_DEV_URL;#understanding-and-creating-layers'>Understanding and Creating Layers</ulink>" 1027 "<ulink url='&YOCTO_DOCS_DEV_URL;#understanding-and-creating-layers'>Understanding and Creating Layers</ulink>"
1021 section in the Yocto Project Development Tasks Manual. 1028 section in the Yocto Project Development Tasks
1029 Manual.
1022 For more information on BSP layers, see the 1030 For more information on BSP layers, see the
1023 "<link linkend='bsp-layers'>BSP Layers</link>" 1031 "<link linkend='bsp-layers'>BSP Layers</link>"
1024 section. 1032 section.
1025 <note><title>Notes</title> 1033 <note><title>Notes</title>
1026 <para>Five BSPs exist that are part of the Yocto
1027 Project release:
1028 <filename>beaglebone</filename> (ARM),
1029 <filename>mpc8315e</filename> (PowerPC),
1030 and <filename>edgerouter</filename> (MIPS).
1031 The recipes and configurations for these five BSPs
1032 are located and dispersed within the
1033 <ulink url='&YOCTO_DOCS_REF_URL;#source-directory'>Source Directory</ulink>.
1034 </para>
1035
1036 <para>Three core Intel BSPs exist as part of the Yocto
1037 Project release in the
1038 <filename>meta-intel</filename> layer:
1039 <itemizedlist> 1034 <itemizedlist>
1040 <listitem><para> 1035 <listitem><para>
1041 <filename>intel-core2-32</filename>, 1036 Five hardware reference BSPs exist
1042 which is a BSP optimized for the Core2 family of CPUs 1037 that are part of the Yocto Project release
1043 as well as all CPUs prior to the Silvermont core. 1038 and are located in the
1039 <filename>poky/meta-yocto-bsp</filename> BSP
1040 layer:
1041 <itemizedlist>
1042 <listitem><para>
1043 Texas Instruments Beaglebone
1044 (<filename>beaglebone-yocto</filename>
1045 </para></listitem>
1046 <listitem><para>
1047 Freescale MPC8315E-RDB
1048 (<filename>mpc8315e-rdb</filename>)
1049 </para></listitem>
1050 <listitem><para>
1051 Ubiquiti Networks EdgeRouter Lite
1052 (<filename>edgerouter</filename>)
1053 </para></listitem>
1054 <listitem><para>
1055 Two general IA platforms
1056 (<filename>genericx86</filename> and
1057 <filename>genericx86-64</filename>)
1058 </para></listitem>
1059 </itemizedlist>
1044 </para></listitem> 1060 </para></listitem>
1045 <listitem><para> 1061 <listitem><para>
1046 <filename>intel-corei7-64</filename>, 1062 Three core Intel BSPs exist as part of
1047 which is a BSP optimized for Nehalem and later 1063 the Yocto Project release in the
1048 Core and Xeon CPUs as well as Silvermont and later 1064 <filename>meta-intel</filename> layer:
1049 Atom CPUs, such as the Baytrail SoCs. 1065 <itemizedlist>
1066 <listitem><para>
1067 <filename>intel-core2-32</filename>,
1068 which is a BSP optimized for the Core2
1069 family of CPUs as well as all CPUs
1070 prior to the Silvermont core.
1071 </para></listitem>
1072 <listitem><para>
1073 <filename>intel-corei7-64</filename>,
1074 which is a BSP optimized for Nehalem
1075 and later Core and Xeon CPUs as well
1076 as Silvermont and later Atom CPUs,
1077 such as the Baytrail SoCs.
1078 </para></listitem>
1079 <listitem><para>
1080 <filename>intel-quark</filename>,
1081 which is a BSP optimized for the
1082 Intel Galileo gen1 &amp; gen2
1083 development boards.
1084 </para></listitem>
1085 </itemizedlist>
1050 </para></listitem> 1086 </para></listitem>
1051 <listitem><para> 1087 </itemizedlist>
1052 <filename>intel-quark</filename>,
1053 which is a BSP optimized for the Intel Galileo
1054 gen1 &amp; gen2 development boards.
1055 </para></listitem>
1056 </itemizedlist></para>
1057 </note></para> 1088 </note></para>
1058 1089
1059 <para>When you set up a layer for a new BSP, you should 1090 <para>When you set up a layer for a new BSP,
1060 follow a standard layout. 1091 you should follow a standard layout.
1061 This layout is described in the 1092 This layout is described in the
1062 "<link linkend='bsp-filelayout'>Example Filesystem Layout</link>" 1093 "<link linkend='bsp-filelayout'>Example Filesystem Layout</link>"
1063 section. 1094 section.
1064 In the standard layout, you will notice a suggested 1095 In the standard layout, notice the suggested
1065 structure for recipes and configuration information. 1096 structure for recipes and configuration
1066 You can see the standard layout for a BSP by examining 1097 information.
1067 any supported BSP found in the 1098 You can see the standard layout for a BSP
1068 <filename>meta-intel</filename> layer inside the Source 1099 by examining any supported BSP found in the
1069 Directory. 1100 <filename>meta-intel</filename> layer inside
1101 the Source Directory.
1070 </para></listitem> 1102 </para></listitem>
1071 <listitem><para> 1103 <listitem><para>
1072 <emphasis>Make Configuration Changes to Your New BSP 1104 <emphasis>Make Configuration Changes to Your New
1073 Layer:</emphasis> 1105 BSP Layer:</emphasis>
1074 The standard BSP layer structure organizes the files 1106 The standard BSP layer structure organizes the
1075 you need to edit in <filename>conf</filename> and 1107 files you need to edit in
1076 several <filename>recipes-*</filename> 1108 <filename>conf</filename> and several
1077 directories within the BSP layer. 1109 <filename>recipes-*</filename> directories
1078 Configuration changes identify where your new layer 1110 within the BSP layer.
1079 is on the local system and identify which kernel you 1111 Configuration changes identify where your new
1080 are going to use. 1112 layer is on the local system and identifies the
1081 When you run the <filename>yocto-bsp</filename> script, 1113 kernel you are going to use.
1082 you are able to interactively configure many things for 1114 When you run the
1083 the BSP (e.g. keyboard, touchscreen, and so forth). 1115 <filename>bitbake-layers</filename> script,
1116 you are able to interactively configure many
1117 things for the BSP (e.g. keyboard, touchscreen,
1118 and so forth).
1084 </para></listitem> 1119 </para></listitem>
1085 <listitem><para> 1120 <listitem><para>
1086 <emphasis>Make Recipe Changes to Your New BSP 1121 <emphasis>Make Recipe Changes to Your New BSP
1087 Layer:</emphasis> 1122 Layer:</emphasis>
1088 Recipe changes include altering recipes 1123 Recipe changes include altering recipes
1089 (<filename>.bb</filename> files), removing recipes you 1124 (<filename>*.bb</filename> files), removing
1090 do not use, and adding new recipes or append files 1125 recipes you do not use, and adding new recipes
1091 (<filename>.bbappend</filename>) that you need to 1126 or append files (<filename>.bbappend</filename>)
1092 support your hardware. 1127 that support your hardware.
1093 </para></listitem> 1128 </para></listitem>
1094 <listitem><para> 1129 <listitem><para>
1095 <emphasis>Prepare for the Build:</emphasis> 1130 <emphasis>Prepare for the Build:</emphasis>
1096 Once you have made all the changes to your BSP layer, 1131 Once you have made all the changes to your BSP
1097 there remains a few things you need to do for the 1132 layer, there remains a few things you need to
1098 OpenEmbedded build system in order for it to create 1133 do for the OpenEmbedded build system in order
1099 your image. 1134 for it to create your image.
1100 You need to get the build environment ready by 1135 You need to get the build environment ready by
1101 sourcing an environment setup script 1136 sourcing an environment setup script
1102 (i.e. <filename>oe-init-build-env</filename>) 1137 (i.e. <filename>oe-init-build-env</filename>)
@@ -1110,13 +1145,7 @@
1110 "<ulink url='&YOCTO_DOCS_DEV_URL;#enabling-your-layer'>Enabling Your Layer</ulink>" 1145 "<ulink url='&YOCTO_DOCS_DEV_URL;#enabling-your-layer'>Enabling Your Layer</ulink>"
1111 section in the Yocto Project Development Tasks Manual 1146 section in the Yocto Project Development Tasks Manual
1112 for information on how to let the build system 1147 for information on how to let the build system
1113 know about your new layer.</para> 1148 know about your new layer.
1114
1115 <para>The entire process for building an image is
1116 overviewed in the section
1117 "<ulink url='&YOCTO_DOCS_QS_URL;#qs-building-images'>Building Images</ulink>" section
1118 of the Yocto Project Quick Start.
1119 You might want to reference this information.
1120 </para></listitem> 1149 </para></listitem>
1121 <listitem><para> 1150 <listitem><para>
1122 <emphasis>Build the Image:</emphasis> 1151 <emphasis>Build the Image:</emphasis>