diff options
author | Scott Rifenbark <srifenbark@gmail.com> | 2018-03-08 11:15:51 -0800 |
---|---|---|
committer | Richard Purdie <richard.purdie@linuxfoundation.org> | 2018-03-25 09:41:12 +0100 |
commit | c8b2ba7523afd1611e7afb3d83b6df5c3df8326f (patch) | |
tree | 502b035ef830e93d11bf4a01e583fd2bdb504de8 /documentation/bsp-guide/bsp.xml | |
parent | dff40ea5cc21c0e2b77cd013cf31af6d0d906ce9 (diff) | |
download | poky-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/bsp.xml')
-rw-r--r-- | documentation/bsp-guide/bsp.xml | 205 |
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 & 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 & 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> |