summaryrefslogtreecommitdiffstats
path: root/documentation/bsp-guide
diff options
context:
space:
mode:
authorScott Rifenbark <srifenbark@gmail.com>2018-03-08 09:22:40 -0800
committerRichard Purdie <richard.purdie@linuxfoundation.org>2018-03-25 09:41:12 +0100
commit776ac4c220859edf4b02ec25100ef52f8cba6216 (patch)
treeb06d761519fbc1187ca00a22303c70929e7237ad /documentation/bsp-guide
parentae64a41af54c322ec048dc4d116c87971121ef39 (diff)
downloadpoky-776ac4c220859edf4b02ec25100ef52f8cba6216.tar.gz
bsp-guide: Scrubbed the BSP structure section.
Made changes to sync the raspberrypi BSP example to what is really in the source directories. It was pretty out of date. Made some minor edits to the sections describing the framework of the BSP. (From yocto-docs rev: b222d0988cb365cb1943ee1857e5cfd6b9fe173a) 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.xml383
1 files changed, 226 insertions, 157 deletions
diff --git a/documentation/bsp-guide/bsp.xml b/documentation/bsp-guide/bsp.xml
index 8bc27cc207..1195b248de 100644
--- a/documentation/bsp-guide/bsp.xml
+++ b/documentation/bsp-guide/bsp.xml
@@ -310,38 +310,47 @@
310 <title>Example Filesystem Layout</title> 310 <title>Example Filesystem Layout</title>
311 311
312 <para> 312 <para>
313 Defining a common BSP directory structure allows end-users to understand and 313 Defining a common BSP directory structure allows
314 become familiar with that structure. 314 end-users to understand and become familiar with
315 A common format also encourages standardization of software support of hardware. 315 that standard.
316 A common format also encourages standardization
317 of software support for hardware.
316 </para> 318 </para>
317 319
318 <para> 320 <para>
319 The proposed form does have elements that are specific to the 321 The proposed form described in this section does
320 OpenEmbedded build system. 322 have elements that are specific to the OpenEmbedded
321 It is intended that this information can be 323 build system.
322 used by other build systems besides the OpenEmbedded build system 324 It is intended that developers can use this structure
323 and that it will be simple 325 with other build systems besides the OpenEmbedded build
324 to extract information and convert it to other formats if required. 326 system.
325 The OpenEmbedded build system, through its standard layers mechanism, can directly 327 It is also intended that it will be be simple to extract
326 accept the format described as a layer. 328 information and convert it to other formats if required.
327 The BSP captures all 329 The OpenEmbedded build system, through its standard
328 the hardware-specific details in one place in a standard format, which is 330 <ulink url='&YOCTO_DOCS_GS_URL;#the-yocto-project-layer-model'>layers mechanism</ulink>,
329 useful for any person wishing to use the hardware platform regardless of 331 can directly accept the format described as a layer.
330 the build system they are using. 332 The BSP layer captures all the hardware-specific details
333 in one place using a standard format, which is useful
334 for any person wishing to use the hardware platform
335 regardless of the build system they are using.
331 </para> 336 </para>
332 337
333 <para> 338 <para>
334 The BSP specification does not include a build system or other tools - 339 The BSP specification does not include a build system
335 it is concerned with the hardware-specific components only. 340 or other tools - the specification is concerned with
336 At the end-distribution point, you can ship the BSP combined with a build system 341 the hardware-specific components only.
337 and other tools. 342 At the end-distribution point, you can ship the BSP
338 However, it is important to maintain the distinction that these 343 layer combined with a build system and other tools.
339 are separate components that happen to be combined in certain end products. 344 Realize that it is important to maintain the distinction
345 that the BSP layer, a build system, and tools are
346 separate components that could to be combined in
347 certain end products.
340 </para> 348 </para>
341 349
342 <para> 350 <para>
343 Before looking at the common form for the file structure inside a BSP Layer, 351 Before looking at the common form for the file structure
344 you should be aware that some requirements do exist in order for a BSP to 352 inside a BSP Layer, you should be aware that some
353 requirements do exist in order for a BSP layer to
345 be considered compliant with the Yocto Project. 354 be considered compliant with the Yocto Project.
346 For that list of requirements, see the 355 For that list of requirements, see the
347 "<link linkend='released-bsp-requirements'>Released BSP Requirements</link>" 356 "<link linkend='released-bsp-requirements'>Released BSP Requirements</link>"
@@ -349,10 +358,11 @@
349 </para> 358 </para>
350 359
351 <para> 360 <para>
352 Below is the common form for the file structure inside a BSP Layer. 361 Below is the common form for the file structure
353 While you can use this basic form for the standard, realize that the actual structures 362 inside a BSP Layer.
354 for specific BSPs could differ. 363 While this basic form represents the standard,
355 364 realize that the actual file structures for specific
365 BSPs could differ.
356 <literallayout class='monospaced'> 366 <literallayout class='monospaced'>
357 meta-<replaceable>bsp_name</replaceable>/ 367 meta-<replaceable>bsp_name</replaceable>/
358 meta-<replaceable>bsp_name</replaceable>/<replaceable>bsp_license_file</replaceable> 368 meta-<replaceable>bsp_name</replaceable>/<replaceable>bsp_license_file</replaceable>
@@ -369,27 +379,39 @@
369 </para> 379 </para>
370 380
371 <para> 381 <para>
372 Below is an example of the Raspberry Pi BSP: 382 Below is an example of the Raspberry Pi BSP
373 383 layer that ships with the Yocto Project:
374 <literallayout class='monospaced'> 384 <literallayout class='monospaced'>
375 meta-raspberrypi/COPYING.MIT 385 meta-raspberrypi/COPYING.MIT
376 meta-raspberrypi/README 386 meta-raspberrypi/README.md
377 meta-raspberrypi/classes 387 meta-raspberrypi/classes
378 meta-raspberrypi/classes/linux-raspberrypi-base.bbclass
379 meta-raspberrypi/classes/sdcard_image-rpi.bbclass 388 meta-raspberrypi/classes/sdcard_image-rpi.bbclass
380 meta-raspberrypi/conf/ 389 meta-raspberrypi/conf/
381 meta-raspberrypi/conf/layer.conf 390 meta-raspberrypi/conf/layer.conf
382 meta-raspberrypi/conf/machine/ 391 meta-raspberrypi/conf/machine/
392 meta-raspberrypi/conf/machine/raspberrypi-cm.conf
393 meta-raspberrypi/conf/machine/raspberrypi-cm3.conf
383 meta-raspberrypi/conf/machine/raspberrypi.conf 394 meta-raspberrypi/conf/machine/raspberrypi.conf
395 meta-raspberrypi/conf/machine/raspberrypi0-wifi.conf
384 meta-raspberrypi/conf/machine/raspberrypi0.conf 396 meta-raspberrypi/conf/machine/raspberrypi0.conf
385 meta-raspberrypi/conf/machine/raspberrypi2.conf 397 meta-raspberrypi/conf/machine/raspberrypi2.conf
398 meta-raspberrypi/conf/machine/raspberrypi3-64.conf
386 meta-raspberrypi/conf/machine/raspberrypi3.conf 399 meta-raspberrypi/conf/machine/raspberrypi3.conf
387 meta-raspberrypi/conf/machine/include 400 meta-raspberrypi/conf/machine/include
388 meta-raspberrypi/conf/machine/include/rpi-base.inc 401 meta-raspberrypi/conf/machine/include/rpi-base.inc
389 meta-raspberrypi/conf/machine/include/rpi-default-providers.inc 402 meta-raspberrypi/conf/machine/include/rpi-default-providers.inc
390 meta-raspberrypi/conf/machine/include/rpi-default-settings.inc 403 meta-raspberrypi/conf/machine/include/rpi-default-settings.inc
391 meta-raspberrypi/conf/machine/include/rpi-default-versions.inc 404 meta-raspberrypi/conf/machine/include/rpi-default-versions.inc
392 meta-raspberrypi/conf/machine/include/rpi-tune-arm1176jzf-s.inc 405 meta-raspberrypi/conf/machine/include/tune-arm1176jzf-s.inc
406 meta-raspberrypi/docs
407 meta-raspberrypi/docs/Makefile
408 meta-raspberrypi/docs/conf.py
409 meta-raspberrypi/docs/contributing.md
410 meta-raspberrypi/docs/extra-apps.md
411 meta-raspberrypi/docs/extra-build-config.md
412 meta-raspberrypi/docs/index.rst
413 meta-raspberrypi/docs/layer-contents.md
414 meta-raspberrypi/docs/readme.md
393 meta-raspberrypi/files 415 meta-raspberrypi/files
394 meta-raspberrypi/files/custom-licenses 416 meta-raspberrypi/files/custom-licenses
395 meta-raspberrypi/files/custom-licenses/Broadcom 417 meta-raspberrypi/files/custom-licenses/Broadcom
@@ -399,12 +421,26 @@
399 meta-raspberrypi/recipes-bsp/bootfiles/rpi-config_git.bb 421 meta-raspberrypi/recipes-bsp/bootfiles/rpi-config_git.bb
400 meta-raspberrypi/recipes-bsp/common 422 meta-raspberrypi/recipes-bsp/common
401 meta-raspberrypi/recipes-bsp/common/firmware.inc 423 meta-raspberrypi/recipes-bsp/common/firmware.inc
402 meta-raspberrypi/recipes-bsp/formfactor_00.bbappend 424 meta-raspberrypi/recipes-bsp/formfactor
403 meta-raspberrypi/recipes-bsp/formfactor/raspberrypi/machconfig 425 meta-raspberrypi/recipes-bsp/formfactor/formfactor
404 meta-raspberrypi/recipes-bsp/rpi-mkimage_git.bb 426 meta-raspberrypi/recipes-bsp/formfactor/formfactor/raspberrypi
405 meta-raspberrypi/recipes-bsp/rpi-mkimage/License 427 meta-raspberrypi/recipes-bsp/formfactor/formfactor/raspberrypi/machconfig
406 meta-raspberrypi/recipes-bsp/rpi-mkimage/open-files-relative-to-script.patch 428 meta-raspberrypi/recipes-bsp/formfactor/formfactor_0.0.bbappend
407 meta-raspberrypi/recipes-bsp/u-boot/u-boot-rpi_git.bb 429 meta-raspberrypi/recipes-bsp/rpi-u-boot-src
430 meta-raspberrypi/recipes-bsp/rpi-u-boot-src/files
431 meta-raspberrypi/recipes-bsp/rpi-u-boot-src/files/boot.cmd.in
432 meta-raspberrypi/recipes-bsp/rpi-u-boot-src/rpi-u-boot-scr.bb
433 meta-raspberrypi/recipes-bsp/u-boot
434 meta-raspberrypi/recipes-bsp/u-boot/u-boot
435 meta-raspberrypi/recipes-bsp/u-boot/u-boot/*.patch
436 meta-raspberrypi/recipes-bsp/u-boot/u-boot_%.bbappend
437 meta-raspberrypi/recipes-connectivity
438 meta-raspberrypi/recipes-connectivity/bluez5
439 meta-raspberrypi/recipes-connectivity/bluez5/bluez5
440 meta-raspberrypi/recipes-connectivity/bluez5/bluez5/*.patch
441 meta-raspberrypi/recipes-connectivity/bluez5/bluez5/BCM43430A1.hcd
442 meta-raspberrypi/recipes-connectivity/bluez5/bluez5brcm43438.service
443 meta-raspberrypi/recipes-connectivity/bluez5/bluez5_%.bbappend
408 meta-raspberrypi/recipes-core 444 meta-raspberrypi/recipes-core
409 meta-raspberrypi/recipes-core/images 445 meta-raspberrypi/recipes-core/images
410 meta-raspberrypi/recipes-core/images/rpi-basic-image.bb 446 meta-raspberrypi/recipes-core/images/rpi-basic-image.bb
@@ -414,37 +450,41 @@
414 meta-raspberrypi/recipes-core/packagegroups/packagegroup-rpi-test.bb 450 meta-raspberrypi/recipes-core/packagegroups/packagegroup-rpi-test.bb
415 meta-raspberrypi/recipes-core/psplash 451 meta-raspberrypi/recipes-core/psplash
416 meta-raspberrypi/recipes-core/psplash/files 452 meta-raspberrypi/recipes-core/psplash/files
417 meta-raspberrypi/recipes-core/psplash/psplash_git.bbappend
418 meta-raspberrypi/recipes-core/psplash/files/psplash-raspberrypi-img.h 453 meta-raspberrypi/recipes-core/psplash/files/psplash-raspberrypi-img.h
454 meta-raspberrypi/recipes-core/psplash/psplash_git.bbappend
455 meta-raspberrypi/recipes-core/udev
456 meta-raspberrypi/recipes-core/udev/udev-rules-rpi
457 meta-raspberrypi/recipes-core/udev/udev-rules-rpi/99-com.rules
458 meta-raspberrypi/recipes-core/udev/udev-rules-rpi.bb
419 meta-raspberrypi/recipes-devtools 459 meta-raspberrypi/recipes-devtools
420 meta-raspberrypi/recipes-devtools/bcm2835 460 meta-raspberrypi/recipes-devtools/bcm2835
421 meta-raspberrypi/recipes-devtools/bcm2835/bcm2835_1.46.bb 461 meta-raspberrypi/recipes-devtools/bcm2835/bcm2835_1.52.bb
422 meta-raspberrypi/recipes-devtools/pi-blaster 462 meta-raspberrypi/recipes-devtools/pi-blaster
423 meta-raspberrypi/recipes-devtools/pi-blaster/files 463 meta-raspberrypi/recipes-devtools/pi-blaster/files
424 meta-raspberrypi/recipes-devtools/pi-blaster/*.patch 464 meta-raspberrypi/recipes-devtools/pi-blaster/files/*.patch
425 meta-raspberrypi/recipes-devtools/pi-blaster/pi-blaster.inc
426 meta-raspberrypi/recipes-devtools/pi-blaster/pi-blaster_git.bb 465 meta-raspberrypi/recipes-devtools/pi-blaster/pi-blaster_git.bb
427 meta-raspberrypi/recipes-devtools/python 466 meta-raspberrypi/recipes-devtools/python
428 meta-raspberrypi/recipes-devtools/python/python-rtimu 467 meta-raspberrypi/recipes-devtools/python/python-rtimu
429 meta-raspberrypi/recipes-devtools/python/python-rtimu/*.patch 468 meta-raspberrypi/recipes-devtools/python/python-rtimu/*.patch
430 meta-raspberrypi/recipes-devtools/python/python-rtimu_git.bb 469 meta-raspberrypi/recipes-devtools/python/python-rtimu_git.bb
431 meta-raspberrypi/recipes-devtools/python/python-sense-hat_2.1.0.bb 470 meta-raspberrypi/recipes-devtools/python/python-sense-hat_2.2.0.bb
432 meta-raspberrypi/recipes-devtools/python/rpi-gpio 471 meta-raspberrypi/recipes-devtools/python/rpi-gpio
433 meta-raspberrypi/recipes-devtools/python/rpi-gpio/*.patch 472 meta-raspberrypi/recipes-devtools/python/rpi-gpio/*.patch
434 meta-raspberrypi/recipes-devtools/python/rpi-gpio_0.6.1.bb 473 meta-raspberrypi/recipes-devtools/python/rpi-gpio_0.6.3.bb
435 meta-raspberrypi/recipes-devtools/python/rpio 474 meta-raspberrypi/recipes-devtools/python/rpio
436 meta-raspberrypi/recipes-devtools/python/rpio/*.patch 475 meta-raspberrypi/recipes-devtools/python/rpio/*.patch
437 meta-raspberrypi/recipes-devtools/python/rpio_0.10.0.bb 476 meta-raspberrypi/recipes-devtools/python/rpio_0.10.0.bb
438 meta-raspberrypi/recipes-devtools/wiringPi 477 meta-raspberrypi/recipes-devtools/wiringPi
439 meta-raspberrypi/recipes-devtools/wiringPi/files 478 meta-raspberrypi/recipes-devtools/wiringPi/files
440 meta-raspberrypi/recipes-devtools/wiringPi/files/*.patch 479 meta-raspberrypi/recipes-devtools/wiringPi/files/*.patch
441 meta-raspberrypi/recipes-devtools/wiringPi/wiringpi
442 meta-raspberrypi/recipes-devtools/wiringPi/wiringpi/*.patch
443 meta-raspberrypi/recipes-devtools/wiringPi/wiringpi_git.bb 480 meta-raspberrypi/recipes-devtools/wiringPi/wiringpi_git.bb
444 meta-raspberrypi/recipes-graphics 481 meta-raspberrypi/recipes-graphics
445 meta-raspberrypi/recipes-graphics/eglinfo 482 meta-raspberrypi/recipes-graphics/eglinfo
446 meta-raspberrypi/recipes-graphics/eglinfo/eglinfo-fb_%.bbappend 483 meta-raspberrypi/recipes-graphics/eglinfo/eglinfo-fb_%.bbappend
447 meta-raspberrypi/recipes-graphics/eglinfo/eglinfo-x11_%.bbappend 484 meta-raspberrypi/recipes-graphics/eglinfo/eglinfo-x11_%.bbappend
485 meta-raspberrypi/recipes-graphics/mesa
486 meta-raspberrypi/recipes-graphics/mesa/mesa-gl_%.bbappend
487 meta-raspberrypi/recipes-graphics/mesa/mesa_%.bbappend
448 meta-raspberrypi/recipes-graphics/userland 488 meta-raspberrypi/recipes-graphics/userland
449 meta-raspberrypi/recipes-graphics/userland/userland 489 meta-raspberrypi/recipes-graphics/userland/userland
450 meta-raspberrypi/recipes-graphics/userland/userland/*.patch 490 meta-raspberrypi/recipes-graphics/userland/userland/*.patch
@@ -458,58 +498,49 @@
458 meta-raspberrypi/recipes-graphics/vc-graphics/vc-graphics.inc 498 meta-raspberrypi/recipes-graphics/vc-graphics/vc-graphics.inc
459 meta-raspberrypi/recipes-graphics/wayland 499 meta-raspberrypi/recipes-graphics/wayland
460 meta-raspberrypi/recipes-graphics/wayland/weston_%.bbappend 500 meta-raspberrypi/recipes-graphics/wayland/weston_%.bbappend
461 meta-raspberrypi/recipes-graphics/weston
462 meta-raspberrypi/recipes-graphics/weston/weston_%.bbappend
463 meta-raspberrypi/recipes-graphics/xorg-xserver 501 meta-raspberrypi/recipes-graphics/xorg-xserver
464 meta-raspberrypi/recipes-graphics/xorg-xserver/xserver-xf86-config 502 meta-raspberrypi/recipes-graphics/xorg-xserver/xserver-xf86-config
465 meta-raspberrypi/recipes-graphics/xorg-xserver/xserver-xf86-config/rpi 503 meta-raspberrypi/recipes-graphics/xorg-xserver/xserver-xf86-config/rpi
466 meta-raspberrypi/recipes-graphics/xorg-xserver/xserver-xf86-config/rpi/xorg.conf 504 meta-raspberrypi/recipes-graphics/xorg-xserver/xserver-xf86-config/rpi/xorg.conf
467 meta-raspberrypi/recipes-graphics/xorg-xserver/xserver-xf86-config/rpi/xorg.conf.d 505 meta-raspberrypi/recipes-graphics/xorg-xserver/xserver-xf86-config/rpi/xorg.conf.d
468 meta-raspberrypi/recipes-graphics/xorg-xserver/xserver-xf86-config/rpi/xorg.conf.d/10-evdev.conf 506 meta-raspberrypi/recipes-graphics/xorg-xserver/xserver-xf86-config/rpi/xorg.conf.d/10-evdev.conf
469 meta-raspberrypi/recipes-graphics/xorg-xserver/xserver-xf86-config/rpi/xorg.conf.d/99-pitft.conf 507 meta-raspberrypi/recipes-graphics/xorg-xserver/xserver-xf86-config/rpi/xorg.conf.d/98-pitft.conf
508 meta-raspberrypi/recipes-graphics/xorg-xserver/xserver-xf86-config/rpi/xorg.conf.d/99-calibration.conf
470 meta-raspberrypi/recipes-graphics/xorg-xserver/xserver-xf86-config_0.1.bbappend 509 meta-raspberrypi/recipes-graphics/xorg-xserver/xserver-xf86-config_0.1.bbappend
510 meta-raspberrypi/recipes-graphics/xorg-xserver/xserver-xorg_%.bbappend
471 meta-raspberrypi/recipes-kernel 511 meta-raspberrypi/recipes-kernel
472 meta-raspberrypi/recipes-kernel/linux-firmware 512 meta-raspberrypi/recipes-kernel/linux-firmware
473 meta-raspberrypi/recipes-kernel/linux-firmware/linux-firmware 513 meta-raspberrypi/recipes-kernel/linux-firmware/files
474 meta-raspberrypi/recipes-kernel/linux-firmware/linux-firmware/LICENSE.broadcom_brcm80211 514 meta-raspberrypi/recipes-kernel/linux-firmware/files/brcmfmac43430-sdio.bin
475 meta-raspberrypi/recipes-kernel/linux-firmware/linux-firmware/brcmfmac43430-sdio.bin 515 meta-raspberrypi/recipes-kernel/linux-firmware/files/brcfmac43430-sdio.txt
476 meta-raspberrypi/recipes-kernel/linux-firmware/linux-firmware/brcmfmac43430-sdio.txt 516 meta-raspberrypi/recipes-kernel/linux-firmware/linux-firmware_%.bbappend
477 meta-raspberrypi/recipes-kernel/linux-firmware/linux-firmware_git.bbappend
478 meta-raspberrypi/recipes-kernel/linux 517 meta-raspberrypi/recipes-kernel/linux
479 meta-raspberrypi/recipes-kernel/linux/linux-raspberrypi-3.14 518 meta-raspberrypi/recipes-kernel/linux/linux-raspberrypi-dev.bb
480 meta-raspberrypi/recipes-kernel/linux/linux-raspberrypi-3.14/*.patch
481 meta-raspberrypi/recipes-kernel/linux/linux-raspberrypi-3.18
482 meta-raspberrypi/recipes-kernel/linux/linux-raspberrypi-3.18/*.patch
483 meta-raspberrypi/recipes-kernel/linux/linux-raspberrypi-4.1
484 meta-raspberrypi/recipes-kernel/linux/linux-raspberrypi-4.1/*.patch
485 meta-raspberrypi/recipes-kernel/linux/linux-raspberrypi.inc 519 meta-raspberrypi/recipes-kernel/linux/linux-raspberrypi.inc
486 meta-raspberrypi/recipes-kernel/linux/linux-raspberrypi 520 meta-raspberrypi/recipes-kernel/linux/linux-raspberrypi_4.14.bb
487 meta-raspberrypi/recipes-kernel/linux/linux-raspberrypi/defconfig 521 meta-raspberrypi/recipes-kernel/linux/linux-raspberrypi_4.9.bb
488 meta-raspberrypi/recipes-kernel/linux/linux-raspberrypi_3.14.bb
489 meta-raspberrypi/recipes-kernel/linux/linux-raspberrypi_3.18.bb
490 meta-raspberrypi/recipes-kernel/linux/linux-raspberrypi_4.1.bb
491 meta-raspberrypi/recipes-kernel/linux/linux-raspberrypi_4.4.bb
492 meta-raspberrypi/recipes-kernel/linux/linux.inc
493 meta-raspberrypi/recipes-multimedia 522 meta-raspberrypi/recipes-multimedia
494 meta-raspberrypi/recipes-multimedia/gstreamer 523 meta-raspberrypi/recipes-multimedia/gstreamer
495 meta-raspberrypi/recipes-multimedia/gstreamer/gstreamer1.0-omx 524 meta-raspberrypi/recipes-multimedia/gstreamer/gstreamer1.0-omx
496 meta-raspberrypi/recipes-multimedia/gstreamer/gstreamer1.0-omx/*.patch 525 meta-raspberrypi/recipes-multimedia/gstreamer/gstreamer1.0-omx/*.patch
497 meta-raspberrypi/recipes-multimedia/gstreamer/gstreamer1.0-omx_%.bbappend 526 meta-raspberrypi/recipes-multimedia/gstreamer/gstreamer1.0-omx_%.bbappend
498 meta-raspberrypi/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad_%.bbappend 527 meta-raspberrypi/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad_%.bbappend
528 meta-raspberrypi/recipes-multimedia/gstreamer/gstreamer1.0-omx-1.12
529 meta-raspberrypi/recipes-multimedia/gstreamer/gstreamer1.0-omx-1.12/*.patch
499 meta-raspberrypi/recipes-multimedia/omxplayer 530 meta-raspberrypi/recipes-multimedia/omxplayer
500 meta-raspberrypi/recipes-multimedia/omxplayer/omxplayer 531 meta-raspberrypi/recipes-multimedia/omxplayer/omxplayer
501 meta-raspberrypi/recipes-multimedia/omxplayer/omxplayer/*.patch 532 meta-raspberrypi/recipes-multimedia/omxplayer/omxplayer/*.patch
502 meta-raspberrypi/recipes-multimedia/omxplayer/omxplayer_git.bb 533 meta-raspberrypi/recipes-multimedia/omxplayer/omxplayer_git.bb
503 meta-raspberrypi/scripts 534 meta-raspberrypi/recipes-multimedia/x264
504 meta-raspberrypi/scripts/lib 535 meta-raspberrypi/recipes-multimedia/x264/x264_git.bbappend
505 meta-raspberrypi/scripts/lib/image 536 meta-raspberrypi/wic
506 meta-raspberrypi/scripts/lib/image/canned-wks 537 meta-raspberrypi/wic/sdimage-raspberrypi.wks
507 meta-raspberrypi/scripts/lib/image/canned-wks/sdimage-raspberrypi.wks
508 </literallayout> 538 </literallayout>
509 </para> 539 </para>
510 540
511 <para> 541 <para>
512 The following sections describe each part of the proposed BSP format. 542 The following sections describe each part of the proposed
543 BSP format.
513 </para> 544 </para>
514 545
515 <section id="bsp-filelayout-license"> 546 <section id="bsp-filelayout-license">
@@ -523,15 +554,24 @@
523 </para> 554 </para>
524 555
525 <para> 556 <para>
526 These optional files satisfy licensing requirements for the BSP. 557 These optional files satisfy licensing requirements
527 The type or types of files here can vary depending on the licensing requirements. 558 for the BSP.
528 For example, in the Raspberry Pi BSP all licensing requirements are handled with the 559 The type or types of files here can vary depending
560 on the licensing requirements.
561 For example, in the Raspberry Pi BSP all licensing
562 requirements are handled with the
529 <filename>COPYING.MIT</filename> file. 563 <filename>COPYING.MIT</filename> file.
530 </para> 564 </para>
531 565
532 <para> 566 <para>
533 Licensing files can be MIT, BSD, GPLv*, and so forth. 567 Licensing files can be MIT, BSD, GPLv*, and so forth.
534 These files are recommended for the BSP but are optional and totally up to the BSP developer. 568 These files are recommended for the BSP but are
569 optional and totally up to the BSP developer.
570 For information on how to maintain license
571 compliance, see the
572 "<ulink url='&YOCTO_DOCS_DEV_URL;#maintaining-open-source-license-compliance-during-your-products-lifecycle'>Maintaining Open Source License Compliance During Your Product's Lifecycle</ulink>"
573 section in the Yocto Project Development Tasks
574 Manual.
535 </para> 575 </para>
536 </section> 576 </section>
537 577
@@ -546,10 +586,11 @@
546 </para> 586 </para>
547 587
548 <para> 588 <para>
549 This file provides information on how to boot the live images that are optionally 589 This file provides information on how to boot the live
550 included in the <filename>binary/</filename> directory. 590 images that are optionally included in the
551 The <filename>README</filename> file also provides special information needed for 591 <filename>binary/</filename> directory.
552 building the image. 592 The <filename>README</filename> file also provides
593 information needed for building the image.
553 </para> 594 </para>
554 595
555 <para> 596 <para>
@@ -572,7 +613,8 @@
572 613
573 <para> 614 <para>
574 This file provides information on where to locate the BSP 615 This file provides information on where to locate the BSP
575 source files used to build the images (if any) that reside in 616 source files used to build the images (if any) that
617 reside in
576 <filename>meta-<replaceable>bsp_name</replaceable>/binary</filename>. 618 <filename>meta-<replaceable>bsp_name</replaceable>/binary</filename>.
577 Images in the <filename>binary</filename> would be images 619 Images in the <filename>binary</filename> would be images
578 released with the BSP. 620 released with the BSP.
@@ -584,7 +626,7 @@
584 If the BSP's <filename>binary</filename> directory is 626 If the BSP's <filename>binary</filename> directory is
585 missing or the directory has no images, an existing 627 missing or the directory has no images, an existing
586 <filename>README.sources</filename> file is 628 <filename>README.sources</filename> file is
587 meaningless. 629 meaningless and usually does not exist.
588 </note> 630 </note>
589 </para> 631 </para>
590 </section> 632 </section>
@@ -600,26 +642,30 @@
600 </para> 642 </para>
601 643
602 <para> 644 <para>
603 This optional area contains useful pre-built kernels and 645 This optional area contains useful pre-built kernels
604 user-space filesystem images released with the BSP that are 646 and user-space filesystem images released with the
605 appropriate to the target system. 647 BSP that are appropriate to the target system.
606 This directory typically contains graphical (e.g. Sato) and 648 This directory typically contains graphical (e.g. Sato)
607 minimal live images when the BSP tarball has been created and 649 and minimal live images when the BSP tarball has been
608 made available in the 650 created and made available in the
609 <ulink url='&YOCTO_HOME_URL;'>Yocto Project</ulink> website. 651 <ulink url='&YOCTO_HOME_URL;'>Yocto Project</ulink>
610 You can use these kernels and images to get a system running 652 website.
611 and quickly get started on development tasks. 653 You can use these kernels and images to get a system
654 running and quickly get started on development tasks.
612 </para> 655 </para>
613 656
614 <para> 657 <para>
615 The exact types of binaries present are highly 658 The exact types of binaries present are highly
616 hardware-dependent. 659 hardware-dependent.
617 The <filename>README</filename> file should be present in the 660 The
618 BSP Layer and it will explain how to use the images with the 661 <link linkend='bsp-filelayout-readme'><filename>README</filename></link>
619 target hardware. 662 file should be present in the BSP Layer and it
620 Additionally, the <filename>README.sources</filename> file 663 explains how to use the images with the target hardware.
621 should be present to locate the sources used to build the 664 Additionally, the
622 images and provide information on the Metadata. 665 <link linkend='bsp-filelayout-readme-sources'><filename>README.sources</filename></link>
666 file should be present to locate the sources used to
667 build the images and provide information on the
668 Metadata.
623 </para> 669 </para>
624 </section> 670 </section>
625 671
@@ -634,14 +680,18 @@
634 </para> 680 </para>
635 681
636 <para> 682 <para>
637 The <filename>conf/layer.conf</filename> file identifies the file structure as a 683 The <filename>conf/layer.conf</filename> file
638 layer, identifies the 684 identifies the file structure as a layer,
639 contents of the layer, and contains information about how the build 685 identifies the contents of the layer, and
640 system should use it. 686 contains information about how the build system should
641 Generally, a standard boilerplate file such as the following works. 687 use it.
642 In the following example, you would replace "<replaceable>bsp</replaceable>" and 688 Generally, a standard boilerplate file such as the
643 "<replaceable>_bsp</replaceable>" with the actual name 689 following works.
644 of the BSP (i.e. <replaceable>bsp_name</replaceable> from the example template). 690 In the following example, you would replace
691 <replaceable>bsp</replaceable> with the actual
692 name of the BSP (i.e.
693 <replaceable>bsp_name</replaceable> from the example
694 template).
645 </para> 695 </para>
646 696
647 <para> 697 <para>
@@ -662,8 +712,9 @@
662 </para> 712 </para>
663 713
664 <para> 714 <para>
665 To illustrate the string substitutions, here are the corresponding statements 715 To illustrate the string substitutions, here are
666 from the Raspberry Pi <filename>conf/layer.conf</filename> file: 716 the corresponding statements from the Raspberry
717 Pi <filename>conf/layer.conf</filename> file:
667 <literallayout class='monospaced'> 718 <literallayout class='monospaced'>
668 # We have a conf and classes directory, append to BBPATH 719 # We have a conf and classes directory, append to BBPATH
669 BBPATH .= ":${LAYERDIR}" 720 BBPATH .= ":${LAYERDIR}"
@@ -678,6 +729,9 @@
678 729
679 # Additional license directories. 730 # Additional license directories.
680 LICENSE_PATH += "${LAYERDIR}/files/custom-licenses" 731 LICENSE_PATH += "${LAYERDIR}/files/custom-licenses"
732 .
733 .
734 .
681 </literallayout> 735 </literallayout>
682 </para> 736 </para>
683 737
@@ -685,7 +739,8 @@
685 This file simply makes 739 This file simply makes
686 <ulink url='&YOCTO_DOCS_REF_URL;#bitbake-term'>BitBake</ulink> 740 <ulink url='&YOCTO_DOCS_REF_URL;#bitbake-term'>BitBake</ulink>
687 aware of the recipes and configuration directories. 741 aware of the recipes and configuration directories.
688 The file must exist so that the OpenEmbedded build system can recognize the BSP. 742 The file must exist so that the OpenEmbedded build system
743 can recognize the BSP.
689 </para> 744 </para>
690 </section> 745 </section>
691 746
@@ -700,41 +755,48 @@
700 </para> 755 </para>
701 756
702 <para> 757 <para>
703 The machine files bind together all the information contained elsewhere 758 The machine files bind together all the information
704 in the BSP into a format that the build system can understand. 759 contained elsewhere in the BSP into a format that
705 If the BSP supports multiple machines, multiple machine configuration files 760 the build system can understand.
706 can be present. 761 Each BSP Layer requires at least one machine file.
707 These filenames correspond to the values to which users have set the 762 If the BSP supports multiple machines, multiple
763 machine configuration files can exist.
764 These filenames correspond to the values to which
765 users have set the
708 <ulink url='&YOCTO_DOCS_REF_URL;#var-MACHINE'><filename>MACHINE</filename></ulink> variable. 766 <ulink url='&YOCTO_DOCS_REF_URL;#var-MACHINE'><filename>MACHINE</filename></ulink> variable.
709 </para> 767 </para>
710 768
711 <para> 769 <para>
712 These files define things such as the kernel package to use 770 These files define things such as the kernel package
771 to use
713 (<ulink url='&YOCTO_DOCS_REF_URL;#var-PREFERRED_PROVIDER'><filename>PREFERRED_PROVIDER</filename></ulink> 772 (<ulink url='&YOCTO_DOCS_REF_URL;#var-PREFERRED_PROVIDER'><filename>PREFERRED_PROVIDER</filename></ulink>
714 of virtual/kernel), the hardware drivers to 773 of
715 include in different types of images, any special software components 774 <ulink url='&YOCTO_DOCS_DEV_URL;#metadata-virtual-providers'>virtual/kernel</ulink>),
716 that are needed, any bootloader information, and also any special image 775 the hardware drivers to include in different types
717 format requirements. 776 of images, any special software components that are
777 needed, any bootloader information, and also any
778 special image format requirements.
718 </para> 779 </para>
719 780
720 <para> 781 <para>
721 Each BSP Layer requires at least one machine file. 782 This configuration file could also include a hardware
722 However, you can supply more than one file. 783 "tuning" file that is commonly used to define the
723 </para> 784 package architecture and specify optimization flags,
724 785 which are carefully chosen to give best performance
725 <para> 786 on a given processor.
726 This configuration file could also include a hardware "tuning"
727 file that is commonly used to define the package architecture
728 and specify optimization flags, which are carefully chosen
729 to give best performance on a given processor.
730 </para> 787 </para>
731 788
732 <para> 789 <para>
733 Tuning files are found in the <filename>meta/conf/machine/include</filename> 790 Tuning files are found in the
791 <filename>meta/conf/machine/include</filename>
734 directory within the 792 directory within the
735 <ulink url='&YOCTO_DOCS_REF_URL;#source-directory'>Source Directory</ulink>. 793 <ulink url='&YOCTO_DOCS_REF_URL;#source-directory'>Source Directory</ulink>.
736 For example, the <filename>ia32-base.inc</filename> file resides in the 794 For example, many <filename>tune-*</filename> files
737 <filename>meta/conf/machine/include</filename> directory. 795 (e.g. <filename>tune-arm1136jf-s.inc</filename>,
796 <filename>tun-1586-nlp.inc</filename>, and so forth)
797 reside in the
798 <filename>poky/meta/conf/machine/include</filename>
799 directory.
738 </para> 800 </para>
739 801
740 <para> 802 <para>
@@ -744,7 +806,7 @@
744 <filename>raspberrypi3.conf</filename> contains the 806 <filename>raspberrypi3.conf</filename> contains the
745 following statement: 807 following statement:
746 <literallayout class='monospaced'> 808 <literallayout class='monospaced'>
747 include conf/machine/raspberrypi2.conf 809 include conf/machine/include/rpi-base.inc
748 </literallayout> 810 </literallayout>
749 </para> 811 </para>
750 </section> 812 </section>
@@ -760,18 +822,19 @@
760 </para> 822 </para>
761 823
762 <para> 824 <para>
763 This optional directory contains miscellaneous recipe files for 825 This optional directory contains miscellaneous recipe
764 the BSP. 826 files for the BSP.
765 Most notably would be the formfactor files. 827 Most notably would be the formfactor files.
766 For example, in the Raspberry Pi BSP there is the 828 For example, in the Raspberry Pi BSP there is the
767 <filename>formfactor_0.0.bbappend</filename> file, which is an 829 <filename>formfactor_0.0.bbappend</filename> file,
768 append file used to augment the recipe that starts the build. 830 which is an append file used to augment the recipe
769 Furthermore, there are machine-specific settings used during 831 that starts the build.
770 the build that are defined by the 832 Furthermore, there are machine-specific settings used
771 <filename>machconfig</filename> file further down in the 833 during the build that are defined by the
772 directory. 834 <filename>machconfig</filename> file further down in
773 Here is the <filename>machconfig</filename> 835 the directory.
774 file for the Raspberry Pi BSP: 836 Here is the <filename>machconfig</filename> file for
837 the Raspberry Pi BSP:
775 <literallayout class='monospaced'> 838 <literallayout class='monospaced'>
776 HAVE_TOUCHSCREEN=0 839 HAVE_TOUCHSCREEN=0
777 HAVE_KEYBOARD=1 840 HAVE_KEYBOARD=1
@@ -783,8 +846,9 @@
783 </para> 846 </para>
784 847
785 <note><para> 848 <note><para>
786 If a BSP does not have a formfactor entry, defaults are established according to 849 If a BSP does not have a formfactor entry, defaults
787 the formfactor configuration file that is installed by the main 850 are established according to the formfactor
851 configuration file that is installed by the main
788 formfactor recipe 852 formfactor recipe
789 <filename>meta/recipes-bsp/formfactor/formfactor_0.0.bb</filename>, 853 <filename>meta/recipes-bsp/formfactor/formfactor_0.0.bb</filename>,
790 which is found in the 854 which is found in the
@@ -803,10 +867,11 @@
803 </para> 867 </para>
804 868
805 <para> 869 <para>
806 This optional directory contains recipes for the BSP if it has 870 This optional directory contains recipes for the
807 special requirements for graphics support. 871 BSP if it has special requirements for graphics
808 All files that are needed for the BSP to support a display are 872 support.
809 kept here. 873 All files that are needed for the BSP to support
874 a display are kept here.
810 </para> 875 </para>
811 </section> 876 </section>
812 877
@@ -830,15 +895,17 @@
830 Project kernel recipe found in the 895 Project kernel recipe found in the
831 <ulink url='&YOCTO_DOCS_REF_URL;#source-directory'>Source Directory</ulink> 896 <ulink url='&YOCTO_DOCS_REF_URL;#source-directory'>Source Directory</ulink>
832 at <filename>meta/recipes-kernel/linux</filename>. 897 at <filename>meta/recipes-kernel/linux</filename>.
833 You can append machine-specific changes to the kernel recipe 898 You can append machine-specific changes to the
834 by using a similarly named append file, which is located in 899 kernel recipe by using a similarly named append
835 the BSP Layer for your target device (e.g. the 900 file, which is located in the BSP Layer for your
901 target device (e.g. the
836 <filename>meta-<replaceable>bsp_name</replaceable>/recipes-kernel/linux</filename> directory). 902 <filename>meta-<replaceable>bsp_name</replaceable>/recipes-kernel/linux</filename> directory).
837 </para> 903 </para>
838 904
839 <para> 905 <para>
840 Suppose you are using the <filename>linux-yocto_4.4.bb</filename> 906 Suppose you are using the
841 recipe to build the kernel. 907 <filename>linux-yocto_4.4.bb</filename> recipe to
908 build the kernel.
842 In other words, you have selected the kernel in your 909 In other words, you have selected the kernel in your
843 <replaceable>bsp_name</replaceable><filename>.conf</filename> 910 <replaceable>bsp_name</replaceable><filename>.conf</filename>
844 file by adding 911 file by adding
@@ -851,14 +918,16 @@
851 PREFERRED_VERSION_linux-yocto ?= "4.4%" 918 PREFERRED_VERSION_linux-yocto ?= "4.4%"
852 </literallayout> 919 </literallayout>
853 <note> 920 <note>
854 When the preferred provider is assumed by default, the 921 When the preferred provider is assumed by
922 default, the
855 <filename>PREFERRED_PROVIDER</filename> 923 <filename>PREFERRED_PROVIDER</filename>
856 statement does not appear in the 924 statement does not appear in the
857 <replaceable>bsp_name</replaceable><filename>.conf</filename> file. 925 <replaceable>bsp_name</replaceable><filename>.conf</filename> file.
858 </note> 926 </note>
859 You would use the <filename>linux-yocto_4.4.bbappend</filename> 927 You would use the
860 file to append specific BSP settings to the kernel, thus 928 <filename>linux-yocto_4.4.bbappend</filename>
861 configuring the kernel for your particular BSP. 929 file to append specific BSP settings to the kernel,
930 thus configuring the kernel for your particular BSP.
862 </para> 931 </para>
863 932
864 <para> 933 <para>