summaryrefslogtreecommitdiffstats
path: root/recipes-bsp
diff options
context:
space:
mode:
authorPaul Barker <pbarker@konsulko.com>2020-11-25 14:58:59 +0000
committerAndrei Gherzan <andrei@gherzan.ro>2020-11-27 14:29:55 +0000
commit8827040d9c218f68ae3ee6a5814929888ed61581 (patch)
tree78e999c3da833e601073c807075c427ff43ee2d5 /recipes-bsp
parentba6a809a55514a10717bf7b371a63dae440f2cd9 (diff)
downloadmeta-raspberrypi-8827040d9c218f68ae3ee6a5814929888ed61581.tar.gz
rpi-cmdline: Move cmdline.txt generation to a separate recipe
Instead of generating cmdline.txt in the kernel recipe, it is generated in a standalone recipe and pulled in as a dependency of the bootfiles recipe. This simplifies the process of using a linux-yocto, linux-mainline or similiar kernel recipe instead of linux-raspberrypi. In the rpi-cmdline recipe the command line is built from fragments which can all be easily overridden. The variables `SERIAL` and `CMA` are renamed to `CMDLINE_SERIAL` and `CMDLINE_CMA` for consistency. The cmdline.txt file is created in the do_compile step to allow further customisation via do_compile_append if needed. Signed-off-by: Paul Barker <pbarker@konsulko.com>
Diffstat (limited to 'recipes-bsp')
-rw-r--r--recipes-bsp/bootfiles/bootfiles.bb4
-rw-r--r--recipes-bsp/bootfiles/rpi-cmdline.bb49
2 files changed, 51 insertions, 2 deletions
diff --git a/recipes-bsp/bootfiles/bootfiles.bb b/recipes-bsp/bootfiles/bootfiles.bb
index 80e226d..d081806 100644
--- a/recipes-bsp/bootfiles/bootfiles.bb
+++ b/recipes-bsp/bootfiles/bootfiles.bb
@@ -9,7 +9,7 @@ include recipes-bsp/common/raspberrypi-firmware.inc
9 9
10INHIBIT_DEFAULT_DEPS = "1" 10INHIBIT_DEFAULT_DEPS = "1"
11 11
12DEPENDS = "rpi-config" 12DEPENDS = "rpi-config rpi-cmdline"
13 13
14COMPATIBLE_MACHINE = "^rpi$" 14COMPATIBLE_MACHINE = "^rpi$"
15 15
@@ -34,7 +34,7 @@ do_deploy() {
34 touch ${DEPLOYDIR}/${PN}/${PN}-${PV}.stamp 34 touch ${DEPLOYDIR}/${PN}/${PN}-${PV}.stamp
35} 35}
36 36
37do_deploy[depends] += "rpi-config:do_deploy" 37do_deploy[depends] += "rpi-config:do_deploy rpi-cmdline:do_deploy"
38 38
39addtask deploy before do_build after do_install 39addtask deploy before do_build after do_install
40do_deploy[dirs] += "${DEPLOYDIR}/${PN}" 40do_deploy[dirs] += "${DEPLOYDIR}/${PN}"
diff --git a/recipes-bsp/bootfiles/rpi-cmdline.bb b/recipes-bsp/bootfiles/rpi-cmdline.bb
new file mode 100644
index 0000000..97db4e3
--- /dev/null
+++ b/recipes-bsp/bootfiles/rpi-cmdline.bb
@@ -0,0 +1,49 @@
1SUMMARY = "cmdline.txt file used to boot the kernel on a Raspberry Pi device"
2LICENSE = "MIT"
3LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/MIT;md5=0835ade698e0bcf8506ecda2f7b4f302"
4
5COMPATIBLE_MACHINE = "^rpi$"
6INHIBIT_DEFAULT_DEPS = "1"
7inherit deploy nopackages
8
9CMDLINE_DWC_OTG ?= "dwc_otg.lpm_enable=0"
10CMDLINE_ROOTFS ?= "root=/dev/mmcblk0p2 rootfstype=ext4 rootwait"
11
12CMDLINE_SERIAL ?= "${@oe.utils.conditional("ENABLE_UART", "1", "console=serial0,115200", "", d)}"
13
14CMDLINE_CMA ?= "${@oe.utils.conditional("RASPBERRYPI_CAMERA_V2", "1", "cma=64M", "", d)}"
15
16CMDLINE_PITFT ?= "${@bb.utils.contains("MACHINE_FEATURES", "pitft", "fbcon=map:10 fbcon=font:VGA8x8", "", d)}"
17
18# Add the kernel debugger over console kernel command line option if enabled
19CMDLINE_KGDB ?= '${@oe.utils.conditional("ENABLE_KGDB", "1", "kgdboc=serial0,115200", "", d)}'
20
21# Disable rpi logo on boot
22CMDLINE_LOGO ?= '${@oe.utils.conditional("DISABLE_RPI_BOOT_LOGO", "1", "logo.nologo", "", d)}'
23
24# You can define CMDLINE_DEBUG as "debug" in your local.conf or distro.conf
25# to enable kernel debugging.
26CMDLINE_DEBUG ?= ""
27
28CMDLINE = " \
29 ${CMDLINE_DWC_OTG} \
30 ${CMDLINE_SERIAL} \
31 ${CMDLINE_ROOTFS} \
32 ${CMDLINE_CMA} \
33 ${CMDLINE_KGDB} \
34 ${CMDLINE_LOGO} \
35 ${CMDLINE_PITFT} \
36 ${CMDLINE_DEBUG} \
37 "
38
39do_compile() {
40 echo "${CMDLINE}" > "${WORKDIR}/cmdline.txt"
41}
42
43do_deploy() {
44 install -d "${DEPLOYDIR}/${BOOTFILES_DIR_NAME}"
45 install -m 0644 "${WORKDIR}/cmdline.txt" "${DEPLOYDIR}/${BOOTFILES_DIR_NAME}"
46}
47
48addtask deploy before do_build after do_install
49do_deploy[dirs] += "${DEPLOYDIR}/${BOOTFILES_DIR_NAME}"