[yocto] [meta-raspberrypi][PATCH v2 1/1] Support for .dtbo files for dtb overlays, required by firmware after 2016/04/12
Herve Jourdain
herve.jourdain at neuf.fr
Sat May 14 03:15:52 PDT 2016
Signed-off-by: Herve Jourdain <herve.jourdain at neuf.fr>
---
classes/linux-raspberrypi-base.bbclass | 4 +--
classes/sdcard_image-rpi.bbclass | 6 ++--
conf/machine/include/rpi-base.inc | 30 +++++++++----------
.../0002-fix-dtbo-rules.patch | 35 ++++++++++++++++++++++
.../0001-fix-dtbo-rules.patch | 27 +++++++++++++++++
recipes-kernel/linux/linux-raspberrypi_4.1.bb | 1 +
recipes-kernel/linux/linux-raspberrypi_4.4.bb | 1 +
7 files changed, 84 insertions(+), 20 deletions(-)
create mode 100644 recipes-kernel/linux/linux-raspberrypi-4.1/0002-fix-dtbo-rules.patch
create mode 100644 recipes-kernel/linux/linux-raspberrypi-4.4/0001-fix-dtbo-rules.patch
diff --git a/classes/linux-raspberrypi-base.bbclass b/classes/linux-raspberrypi-base.bbclass
index 40beef1..f2f0a5a 100644
--- a/classes/linux-raspberrypi-base.bbclass
+++ b/classes/linux-raspberrypi-base.bbclass
@@ -32,8 +32,8 @@ def get_dts(d, ver):
def split_overlays(d, out):
dts = get_dts(d, None)
if out:
- overlays = oe.utils.str_filter_out('\S+\-overlay\.dtb$', dts, d)
+ overlays = oe.utils.str_filter_out('\S+\.dtbo$', dts, d)
else:
- overlays = oe.utils.str_filter('\S+\-overlay\.dtb$', dts, d)
+ overlays = oe.utils.str_filter('\S+\.dtbo$', dts, d)
return overlays
diff --git a/classes/sdcard_image-rpi.bbclass b/classes/sdcard_image-rpi.bbclass
index 4dfd7a3..e510ce0 100644
--- a/classes/sdcard_image-rpi.bbclass
+++ b/classes/sdcard_image-rpi.bbclass
@@ -110,7 +110,7 @@ IMAGE_CMD_rpi-sdimg () {
;;
*)
if test -n "${DTS}"; then
- # Device Tree Overlays are assumed to be suffixed by '-overlay.dtb' string and will be put in a dedicated folder
+ # Device Tree Overlays are assumed to be suffixed by '.dtbo' string and will be put in a dedicated folder
DT_OVERLAYS="${@split_overlays(d, 0)}"
DT_ROOT="${@split_overlays(d, 1)}"
@@ -124,9 +124,9 @@ IMAGE_CMD_rpi-sdimg () {
# Copy device tree overlays to dedicated folder
mmd -i ${WORKDIR}/boot.img overlays
for DTB in ${DT_OVERLAYS}; do
- DTB_BASE_NAME=`basename ${DTB} .dtb`
+ DTB_BASE_NAME=`basename ${DTB} ".dtbo"`
- mcopy -i ${WORKDIR}/boot.img -s ${DEPLOY_DIR_IMAGE}/${KERNEL_IMAGETYPE}-${DTB_BASE_NAME}.dtb ::overlays/${DTB_BASE_NAME}.dtb
+ mcopy -i ${WORKDIR}/boot.img -s ${DEPLOY_DIR_IMAGE}/${KERNEL_IMAGETYPE}-${DTB_BASE_NAME}.dtbo ::overlays/${DTB_BASE_NAME}.dtbo
done
fi
mcopy -i ${WORKDIR}/boot.img -s ${DEPLOY_DIR_IMAGE}/${KERNEL_IMAGETYPE}${KERNEL_INITRAMFS}-${MACHINE}.bin ::${SDIMG_KERNELIMAGE}
diff --git a/conf/machine/include/rpi-base.inc b/conf/machine/include/rpi-base.inc
index 56ca83e..47eb23b 100644
--- a/conf/machine/include/rpi-base.inc
+++ b/conf/machine/include/rpi-base.inc
@@ -22,21 +22,21 @@ KERNEL_DEVICETREE ?= " \
bcm2709-rpi-2-b.dtb \
bcm2710-rpi-3-b.dtb \
\
- overlays/hifiberry-amp-overlay.dtb \
- overlays/hifiberry-dac-overlay.dtb \
- overlays/hifiberry-dacplus-overlay.dtb \
- overlays/hifiberry-digi-overlay.dtb \
- overlays/i2c-rtc-overlay.dtb \
- overlays/iqaudio-dac-overlay.dtb \
- overlays/iqaudio-dacplus-overlay.dtb \
- overlays/lirc-rpi-overlay.dtb \
- overlays/pitft22-overlay.dtb \
- overlays/pitft28-resistive-overlay.dtb \
- overlays/pps-gpio-overlay.dtb \
- overlays/rpi-ft5406-overlay.dtb \
- overlays/w1-gpio-overlay.dtb \
- overlays/w1-gpio-pullup-overlay.dtb \
- overlays/pi3-miniuart-bt-overlay.dtb \
+ overlays/hifiberry-amp.dtbo \
+ overlays/hifiberry-dac.dtbo \
+ overlays/hifiberry-dacplus.dtbo \
+ overlays/hifiberry-digi.dtbo \
+ overlays/i2c-rtc.dtbo \
+ overlays/iqaudio-dac.dtbo \
+ overlays/iqaudio-dacplus.dtbo \
+ overlays/lirc-rpi.dtbo \
+ overlays/pitft22.dtbo \
+ overlays/pitft28-resistive.dtbo \
+ overlays/pps-gpio.dtbo \
+ overlays/rpi-ft5406.dtbo \
+ overlays/w1-gpio.dtbo \
+ overlays/w1-gpio-pullup.dtbo \
+ overlays/pi3-miniuart-bt.dtbo \
"
KERNEL_IMAGETYPE ?= "Image"
diff --git a/recipes-kernel/linux/linux-raspberrypi-4.1/0002-fix-dtbo-rules.patch b/recipes-kernel/linux/linux-raspberrypi-4.1/0002-fix-dtbo-rules.patch
new file mode 100644
index 0000000..25564c2
--- /dev/null
+++ b/recipes-kernel/linux/linux-raspberrypi-4.1/0002-fix-dtbo-rules.patch
@@ -0,0 +1,35 @@
+diff --git a/arch/arm/Makefile b/arch/arm/Makefile
+index afd559d..06819fd 100644
+--- a/arch/arm/Makefile
++++ b/arch/arm/Makefile
+@@ -322,6 +322,8 @@ $(INSTALL_TARGETS):
+
+ %.dtb: | scripts
+ $(Q)$(MAKE) $(build)=$(boot)/dts MACHINE=$(MACHINE) $(boot)/dts/$@
++%.dtbo: | scripts
++ $(Q)$(MAKE) $(build)=$(boot)/dts MACHINE=$(MACHINE) $(boot)/dts/$@
+
+ PHONY += dtbs dtbs_install
+
+diff --git a/scripts/Makefile.lib b/scripts/Makefile.lib
+index 79e8661..d9bc367 100644
+--- a/scripts/Makefile.lib
++++ b/scripts/Makefile.lib
+@@ -292,6 +292,17 @@ cmd_dtc = mkdir -p $(dir ${dtc-tmp}) ; \
+ $(obj)/%.dtb: $(src)/%.dts FORCE
+ $(call if_changed_dep,dtc)
+
++quiet_cmd_dtco = DTCO $@
++cmd_dtco = mkdir -p $(dir ${dtc-tmp}) ; \
++ $(CPP) $(dtc_cpp_flags) -x assembler-with-cpp -o $(dtc-tmp) $< ; \
++ $(objtree)/scripts/dtc/dtc -@ -H epapr -O dtb -o $@ -b 0 \
++ -i $(dir $<) $(DTC_FLAGS) \
++ -d $(depfile).dtc.tmp $(dtc-tmp) ; \
++ cat $(depfile).pre.tmp $(depfile).dtc.tmp > $(depfile)
++
++$(obj)/%.dtbo: $(src)/%-overlay.dts FORCE
++ $(call if_changed_dep,dtco)
++
+ dtc-tmp = $(subst $(comma),_,$(dot-target).dts.tmp)
+
+ # Bzip2
diff --git a/recipes-kernel/linux/linux-raspberrypi-4.4/0001-fix-dtbo-rules.patch b/recipes-kernel/linux/linux-raspberrypi-4.4/0001-fix-dtbo-rules.patch
new file mode 100644
index 0000000..ef04a72
--- /dev/null
+++ b/recipes-kernel/linux/linux-raspberrypi-4.4/0001-fix-dtbo-rules.patch
@@ -0,0 +1,27 @@
+diff --git a/arch/arm/Makefile b/arch/arm/Makefile
+index a2e7cf7..673c1cb 100644
+--- a/arch/arm/Makefile
++++ b/arch/arm/Makefile
+@@ -333,6 +333,8 @@ $(INSTALL_TARGETS):
+
+ %.dtb: | scripts
+ $(Q)$(MAKE) $(build)=$(boot)/dts MACHINE=$(MACHINE) $(boot)/dts/$@
++%.dtbo: | scripts
++ $(Q)$(MAKE) $(build)=$(boot)/dts MACHINE=$(MACHINE) $(boot)/dts/$@
+
+ PHONY += dtbs dtbs_install
+
+diff --git a/scripts/Makefile.lib b/scripts/Makefile.lib
+index 3079c4f..6cc3766 100644
+--- a/scripts/Makefile.lib
++++ b/scripts/Makefile.lib
+@@ -293,7 +293,8 @@ $(obj)/%.dtb: $(src)/%.dts FORCE
+ $(call if_changed_dep,dtc)
+
+ quiet_cmd_dtco = DTCO $@
+-cmd_dtco = $(CPP) $(dtc_cpp_flags) -x assembler-with-cpp -o $(dtc-tmp) $< ; \
++cmd_dtco = mkdir -p $(dir ${dtc-tmp}) ; \
++ $(CPP) $(dtc_cpp_flags) -x assembler-with-cpp -o $(dtc-tmp) $< ; \
+ $(objtree)/scripts/dtc/dtc -@ -H epapr -O dtb -o $@ -b 0 \
+ -i $(dir $<) $(DTC_FLAGS) \
+ -d $(depfile).dtc.tmp $(dtc-tmp) ; \
diff --git a/recipes-kernel/linux/linux-raspberrypi_4.1.bb b/recipes-kernel/linux/linux-raspberrypi_4.1.bb
index 79fac66..4d02ea6 100644
--- a/recipes-kernel/linux/linux-raspberrypi_4.1.bb
+++ b/recipes-kernel/linux/linux-raspberrypi_4.1.bb
@@ -5,6 +5,7 @@ LINUX_VERSION ?= "4.1.21"
SRCREV = "ff45bc0e8917c77461b2901e2743e6339bb70413"
SRC_URI = "git://github.com/raspberrypi/linux.git;protocol=git;branch=rpi-4.1.y \
file://0001-dts-add-overlay-for-pitft22.patch \
+ file://0002-fix-dtbo-rules.patch \
"
require linux-raspberrypi.inc
diff --git a/recipes-kernel/linux/linux-raspberrypi_4.4.bb b/recipes-kernel/linux/linux-raspberrypi_4.4.bb
index f6e1005..831ac5a 100644
--- a/recipes-kernel/linux/linux-raspberrypi_4.4.bb
+++ b/recipes-kernel/linux/linux-raspberrypi_4.4.bb
@@ -4,5 +4,6 @@ LINUX_VERSION ?= "4.4.8"
SRCREV = "fe7ad6aa5c6940817fe971d80a7b2a1d6052190a"
SRC_URI = "git://github.com/raspberrypi/linux.git;protocol=git;branch=rpi-4.4.y \
+ file://0001-fix-dtbo-rules.patch \
"
require linux-raspberrypi.inc
--
2.7.4
More information about the yocto
mailing list