From 9ed200a70efbbaadccbaf7b04be2ab49b50b464b Mon Sep 17 00:00:00 2001 From: Jens Maus Date: Tue, 4 May 2021 20:42:57 +0200 Subject: [PATCH] add ODROID-C2/C4/N2/N2+ support for RPI-RF-MOD/HM-MOD-RPI-PCB integration (#1323) * add ODROID-C2/C4/N2/N2+ support for RPI-RF-MOD/HM-MOD-RPI-PCB integration * updated rpi-rf-mod package to latest version with dtbo fixes --- .../board/hardkernel/kernel-amlogic.config | 3 +- .../board/hardkernel/odroid-c2/boot-env.txt | 2 + .../board/hardkernel/odroid-c2/hassos-hook.sh | 4 + .../board/hardkernel/odroid-c2/uboot-boot.ush | 26 +++++- .../board/hardkernel/odroid-c4/boot-env.txt | 2 + .../board/hardkernel/odroid-c4/hassos-hook.sh | 4 + .../board/hardkernel/odroid-c4/uboot-boot.ush | 26 +++++- .../board/hardkernel/odroid-n2/boot-env.txt | 2 + .../board/hardkernel/odroid-n2/hassos-hook.sh | 4 + .../board/hardkernel/odroid-n2/uboot-boot.ush | 29 ++++++- .../board-odroidc2-add-uartA-uartC.patch | 32 +++++++ .../general-meson64-i2cX-missing-pins.patch | 22 +++++ ...el-0013-C4-arm64-dts-add-uart_A-node.patch | 41 +++++++++ ...0021-C4-arm64-dts-add-i2c2-i2c3-node.patch | 85 +++++++++++++++++++ .../configs/odroid_c2_defconfig | 3 + .../configs/odroid_c4_defconfig | 3 + .../configs/odroid_n2_defconfig | 3 + .../0001-kernel-Makefile.patch | 2 +- .../package/rpi-rf-mod/Config.in | 15 ++++ .../package/rpi-rf-mod/rpi-rf-mod.mk | 11 ++- .../etc/sysctl.d/30-cp15barrier.conf | 3 + 21 files changed, 315 insertions(+), 7 deletions(-) create mode 100644 buildroot-external/board/hardkernel/odroid-c2/boot-env.txt create mode 100644 buildroot-external/board/hardkernel/odroid-c4/boot-env.txt create mode 100644 buildroot-external/board/hardkernel/odroid-n2/boot-env.txt create mode 100644 buildroot-external/board/hardkernel/patches/linux/board-odroidc2-add-uartA-uartC.patch create mode 100644 buildroot-external/board/hardkernel/patches/linux/general-meson64-i2cX-missing-pins.patch create mode 100644 buildroot-external/board/hardkernel/patches/linux/hardkernel-0013-C4-arm64-dts-add-uart_A-node.patch create mode 100644 buildroot-external/board/hardkernel/patches/linux/hardkernel-0021-C4-arm64-dts-add-i2c2-i2c3-node.patch create mode 100644 buildroot-external/rootfs-overlay/etc/sysctl.d/30-cp15barrier.conf diff --git a/buildroot-external/board/hardkernel/kernel-amlogic.config b/buildroot-external/board/hardkernel/kernel-amlogic.config index 5534a9528..d0d45b608 100644 --- a/buildroot-external/board/hardkernel/kernel-amlogic.config +++ b/buildroot-external/board/hardkernel/kernel-amlogic.config @@ -5454,7 +5454,8 @@ CONFIG_RTC_INTF_DEV=y # CONFIG_RTC_DRV_ABB5ZES3 is not set # CONFIG_RTC_DRV_ABEOZ9 is not set # CONFIG_RTC_DRV_ABX80X is not set -# CONFIG_RTC_DRV_DS1307 is not set +CONFIG_RTC_DRV_DS1307=m +# CONFIG_RTC_DRV_DS1307_CENTURY is not set # CONFIG_RTC_DRV_DS1374 is not set # CONFIG_RTC_DRV_DS1672 is not set # CONFIG_RTC_DRV_HYM8563 is not set diff --git a/buildroot-external/board/hardkernel/odroid-c2/boot-env.txt b/buildroot-external/board/hardkernel/odroid-c2/boot-env.txt new file mode 100644 index 000000000..1870a8e10 --- /dev/null +++ b/buildroot-external/board/hardkernel/odroid-c2/boot-env.txt @@ -0,0 +1,2 @@ +# Uncomment this to enable GPIO support for RPI-RF-MOD/HM-MOD-RPI-PCB +#overlays=rpi-rf-mod diff --git a/buildroot-external/board/hardkernel/odroid-c2/hassos-hook.sh b/buildroot-external/board/hardkernel/odroid-c2/hassos-hook.sh index 6e0a71282..540f3a48a 100755 --- a/buildroot-external/board/hardkernel/odroid-c2/hassos-hook.sh +++ b/buildroot-external/board/hardkernel/odroid-c2/hassos-hook.sh @@ -10,6 +10,10 @@ function hassos_pre_image() { cp "${BINARIES_DIR}/boot.scr" "${BOOT_DATA}/boot.scr" cp "${BINARIES_DIR}/meson-gxbb-odroidc2.dtb" "${BOOT_DATA}/meson-gxbb-odroidc2.dtb" + mkdir -p "${BOOT_DATA}/overlays" + cp "${BINARIES_DIR}"/*.dtbo "${BOOT_DATA}/overlays/" + cp "${BOARD_DIR}/boot-env.txt" "${BOOT_DATA}/haos-config.txt" + echo "console=tty0 console=ttyAML0,115200n8" > "${BOOT_DATA}/cmdline.txt" # SPL diff --git a/buildroot-external/board/hardkernel/odroid-c2/uboot-boot.ush b/buildroot-external/board/hardkernel/odroid-c2/uboot-boot.ush index a89ea235b..f9872d9df 100644 --- a/buildroot-external/board/hardkernel/odroid-c2/uboot-boot.ush +++ b/buildroot-external/board/hardkernel/odroid-c2/uboot-boot.ush @@ -25,9 +25,33 @@ setenv bootargs_hassos "zram.enabled=1 zram.num_devices=3 apparmor=1 security=ap setenv bootargs_a "root=PARTUUID=48617373-06 rootfstype=squashfs ro rootwait" setenv bootargs_b "root=PARTUUID=48617373-08 rootfstype=squashfs ro rootwait" +# Load environment from haos-config.txt +if test -e mmc ${devnum}:1 haos-config.txt; then + fatload mmc ${devnum}:1 ${ramdisk_addr_r} haos-config.txt + env import -t ${ramdisk_addr_r} ${filesize} +fi + # Load extraargs fileenv mmc ${devnum}:1 ${ramdisk_addr_r} cmdline.txt cmdline -fatload mmc ${devnum}:1 ${fdt_addr_r} meson-gxbb-odroidc2.dtb + +# Load device tree +setenv fdtfile "meson-gxbb-odroidc2.dtb" +echo "Loading standard device tree ${fdtfile}" +fatload mmc ${devnum}:1 ${fdt_addr_r} ${fdtfile} +fdt addr ${fdt_addr_r} + +# load dt overlays +fdt resize 65536 +for overlay_file in ${overlays}; do + if fatload mmc ${devnum}:1 ${ramdisk_addr_r} overlays/${overlay_file}.dtbo; then + echo "Applying kernel provided DT overlay ${overlay_file}.dtbo" + fdt apply ${ramdisk_addr_r} || setenv overlay_error "true" + fi +done +if test "${overlay_error}" = "true"; then + echo "Error applying DT overlays, restoring original DT" + fatload mmc ${devnum}:1 ${fdt_addr_r} ${fdtfile} +fi # logical volumes get numbered after physical ones. # 1. boot diff --git a/buildroot-external/board/hardkernel/odroid-c4/boot-env.txt b/buildroot-external/board/hardkernel/odroid-c4/boot-env.txt new file mode 100644 index 000000000..1870a8e10 --- /dev/null +++ b/buildroot-external/board/hardkernel/odroid-c4/boot-env.txt @@ -0,0 +1,2 @@ +# Uncomment this to enable GPIO support for RPI-RF-MOD/HM-MOD-RPI-PCB +#overlays=rpi-rf-mod diff --git a/buildroot-external/board/hardkernel/odroid-c4/hassos-hook.sh b/buildroot-external/board/hardkernel/odroid-c4/hassos-hook.sh index 2bc36ddb0..06cc30b09 100755 --- a/buildroot-external/board/hardkernel/odroid-c4/hassos-hook.sh +++ b/buildroot-external/board/hardkernel/odroid-c4/hassos-hook.sh @@ -9,6 +9,10 @@ function hassos_pre_image() { cp "${BINARIES_DIR}/boot.scr" "${BOOT_DATA}/boot.scr" cp "${BINARIES_DIR}/meson-sm1-odroid-c4.dtb" "${BOOT_DATA}/meson-sm1-odroid-c4.dtb" + mkdir -p "${BOOT_DATA}/overlays" + cp "${BINARIES_DIR}"/*.dtbo "${BOOT_DATA}/overlays/" + cp "${BOARD_DIR}/boot-env.txt" "${BOOT_DATA}/haos-config.txt" + echo "console=tty0 console=ttyAML0,115200n8" > "${BOOT_DATA}/cmdline.txt" # SPL diff --git a/buildroot-external/board/hardkernel/odroid-c4/uboot-boot.ush b/buildroot-external/board/hardkernel/odroid-c4/uboot-boot.ush index 48c421e2f..228ba3fa7 100644 --- a/buildroot-external/board/hardkernel/odroid-c4/uboot-boot.ush +++ b/buildroot-external/board/hardkernel/odroid-c4/uboot-boot.ush @@ -25,9 +25,33 @@ setenv bootargs_hassos "zram.enabled=1 zram.num_devices=3 apparmor=1 security=ap setenv bootargs_a "root=PARTUUID=48617373-06 rootfstype=squashfs ro rootwait" setenv bootargs_b "root=PARTUUID=48617373-08 rootfstype=squashfs ro rootwait" +# Load environment from haos-config.txt +if test -e mmc ${devnum}:1 haos-config.txt; then + fatload mmc ${devnum}:1 ${ramdisk_addr_r} haos-config.txt + env import -t ${ramdisk_addr_r} ${filesize} +fi + # Load extraargs fileenv mmc ${devnum}:1 ${ramdisk_addr_r} cmdline.txt cmdline -fatload mmc ${devnum}:1 ${fdt_addr_r} meson-sm1-odroid-c4.dtb + +# Load device tree +setenv fdtfile "meson-sm1-odroid-c4.dtb" +echo "Loading standard device tree ${fdtfile}" +fatload mmc ${devnum}:1 ${fdt_addr_r} ${fdtfile} +fdt addr ${fdt_addr_r} + +# load dt overlays +fdt resize 65536 +for overlay_file in ${overlays}; do + if fatload mmc ${devnum}:1 ${ramdisk_addr_r} overlays/${overlay_file}.dtbo; then + echo "Applying kernel provided DT overlay ${overlay_file}.dtbo" + fdt apply ${ramdisk_addr_r} || setenv overlay_error "true" + fi +done +if test "${overlay_error}" = "true"; then + echo "Error applying DT overlays, restoring original DT" + fatload mmc ${devnum}:1 ${fdt_addr_r} ${fdtfile} +fi # logical volumes get numbered after physical ones. # 1. boot diff --git a/buildroot-external/board/hardkernel/odroid-n2/boot-env.txt b/buildroot-external/board/hardkernel/odroid-n2/boot-env.txt new file mode 100644 index 000000000..1870a8e10 --- /dev/null +++ b/buildroot-external/board/hardkernel/odroid-n2/boot-env.txt @@ -0,0 +1,2 @@ +# Uncomment this to enable GPIO support for RPI-RF-MOD/HM-MOD-RPI-PCB +#overlays=rpi-rf-mod diff --git a/buildroot-external/board/hardkernel/odroid-n2/hassos-hook.sh b/buildroot-external/board/hardkernel/odroid-n2/hassos-hook.sh index f007929bb..43bfaed79 100755 --- a/buildroot-external/board/hardkernel/odroid-n2/hassos-hook.sh +++ b/buildroot-external/board/hardkernel/odroid-n2/hassos-hook.sh @@ -9,6 +9,10 @@ function hassos_pre_image() { cp "${BINARIES_DIR}/boot.scr" "${BOOT_DATA}/boot.scr" cp "${BINARIES_DIR}"/*.dtb "${BOOT_DATA}/" + mkdir -p "${BOOT_DATA}/overlays" + cp "${BINARIES_DIR}"/*.dtbo "${BOOT_DATA}/overlays/" + cp "${BOARD_DIR}/boot-env.txt" "${BOOT_DATA}/haos-config.txt" + echo "console=tty0 console=ttyAML0,115200n8" > "${BOOT_DATA}/cmdline.txt" # SPL diff --git a/buildroot-external/board/hardkernel/odroid-n2/uboot-boot.ush b/buildroot-external/board/hardkernel/odroid-n2/uboot-boot.ush index 8e1e4bb20..c00980ea6 100644 --- a/buildroot-external/board/hardkernel/odroid-n2/uboot-boot.ush +++ b/buildroot-external/board/hardkernel/odroid-n2/uboot-boot.ush @@ -25,12 +25,37 @@ setenv bootargs_hassos "zram.enabled=1 zram.num_devices=3 apparmor=1 security=ap setenv bootargs_a "root=PARTUUID=48617373-06 rootfstype=squashfs ro rootwait" setenv bootargs_b "root=PARTUUID=48617373-08 rootfstype=squashfs ro rootwait" +# Load environment from haos-config.txt +if test -e mmc ${devnum}:1 haos-config.txt; then + fatload mmc ${devnum}:1 ${ramdisk_addr_r} haos-config.txt + env import -t ${ramdisk_addr_r} ${filesize} +fi + # Load extraargs fileenv mmc ${devnum}:1 ${ramdisk_addr_r} cmdline.txt cmdline + +# Load device tree if test "${soc_rev}" = "c"; then - fatload mmc ${devnum}:1 ${fdt_addr_r} meson-g12b-odroid-n2-plus.dtb + setenv fdtfile "meson-g12b-odroid-n2-plus.dtb" else - fatload mmc ${devnum}:1 ${fdt_addr_r} meson-g12b-odroid-n2.dtb + setenv fdtfile "meson-g12b-odroid-n2.dtb" +fi + +echo "Loading standard device tree ${fdtfile}" +fatload mmc ${devnum}:1 ${fdt_addr_r} ${fdtfile} +fdt addr ${fdt_addr_r} + +# load dt overlays +fdt resize 65536 +for overlay_file in ${overlays}; do + if fatload mmc ${devnum}:1 ${ramdisk_addr_r} overlays/${overlay_file}.dtbo; then + echo "Applying kernel provided DT overlay ${overlay_file}.dtbo" + fdt apply ${ramdisk_addr_r} || setenv overlay_error "true" + fi +done +if test "${overlay_error}" = "true"; then + echo "Error applying DT overlays, restoring original DT" + fatload mmc ${devnum}:1 ${fdt_addr_r} ${fdtfile} fi # logical volumes get numbered after physical ones. diff --git a/buildroot-external/board/hardkernel/patches/linux/board-odroidc2-add-uartA-uartC.patch b/buildroot-external/board/hardkernel/patches/linux/board-odroidc2-add-uartA-uartC.patch new file mode 100644 index 000000000..f69246083 --- /dev/null +++ b/buildroot-external/board/hardkernel/patches/linux/board-odroidc2-add-uartA-uartC.patch @@ -0,0 +1,32 @@ +diff --git a/arch/arm64/boot/dts/amlogic/meson-gxbb-odroidc2.dts b/arch/arm64/boot/dts/amlogic/meson-gxbb-odroidc2.dts +index 1cc9dc6..9f48dff 100644 +--- a/arch/arm64/boot/dts/amlogic/meson-gxbb-odroidc2.dts ++++ b/arch/arm64/boot/dts/amlogic/meson-gxbb-odroidc2.dts +@@ -16,6 +16,8 @@ + + aliases { + serial0 = &uart_AO; ++ serial1 = &uart_A; ++ serial2 = &uart_C; + ethernet0 = ðmac; + }; + +@@ -290,6 +355,18 @@ + pinctrl-names = "default"; + }; + ++&uart_A { ++ status = "disabled"; ++ pinctrl-0 = <&uart_a_pins>; ++ pinctrl-names = "default"; ++}; ++ ++&uart_C { ++ status = "disabled"; ++ pinctrl-0 = <&uart_c_pins>; ++ pinctrl-names = "default"; ++}; ++ + &usb0_phy { + status = "okay"; + phy-supply = <&usb_otg_pwr>; diff --git a/buildroot-external/board/hardkernel/patches/linux/general-meson64-i2cX-missing-pins.patch b/buildroot-external/board/hardkernel/patches/linux/general-meson64-i2cX-missing-pins.patch new file mode 100644 index 000000000..078587ed6 --- /dev/null +++ b/buildroot-external/board/hardkernel/patches/linux/general-meson64-i2cX-missing-pins.patch @@ -0,0 +1,22 @@ +diff --git a/arch/arm64/boot/dts/amlogic/meson-gxbb.dtsi b/arch/arm64/boot/dts/amlogic/meson-gxbb.dtsi +index 98cbba6..48ca119 100644 +--- a/arch/arm64/boot/dts/amlogic/meson-gxbb.dtsi ++++ b/arch/arm64/boot/dts/amlogic/meson-gxbb.dtsi +@@ -321,6 +322,8 @@ + + &i2c_A { + clocks = <&clkc CLKID_I2C>; ++ pinctrl-names = "default"; ++ pinctrl-0 = <&i2c_a_pins>; + }; + + &i2c_AO { +@@ -329,6 +332,8 @@ + + &i2c_B { + clocks = <&clkc CLKID_I2C>; ++ pinctrl-names = "default"; ++ pinctrl-0 = <&i2c_b_pins>; + }; + + &i2c_C { diff --git a/buildroot-external/board/hardkernel/patches/linux/hardkernel-0013-C4-arm64-dts-add-uart_A-node.patch b/buildroot-external/board/hardkernel/patches/linux/hardkernel-0013-C4-arm64-dts-add-uart_A-node.patch new file mode 100644 index 000000000..62ca2d1c7 --- /dev/null +++ b/buildroot-external/board/hardkernel/patches/linux/hardkernel-0013-C4-arm64-dts-add-uart_A-node.patch @@ -0,0 +1,41 @@ +From ca89096189299862a7b2b3123d96fc8bfbe74ce3 Mon Sep 17 00:00:00 2001 +From: Hyeonki Hong +Date: Tue, 14 Apr 2020 14:15:25 +0900 +Subject: [PATCH 13/74] ODROID-C4: arm64/dts: add uart_A node + +Change-Id: Ib66a03da2fcf39fc459c20c9f98b1baca34dcf5b +--- + arch/arm64/boot/dts/amlogic/meson-sm1-odroid-c4.dts | 9 ++++++++- + 1 file changed, 8 insertions(+), 1 deletion(-) + +diff --git a/arch/arm64/boot/dts/amlogic/meson-sm1-odroid-c4.dts b/arch/arm64/boot/dts/amlogic/meson-sm1-odroid-c4.dts +index 1b749bd340ce..e5d73598c131 100644 +--- a/arch/arm64/boot/dts/amlogic/meson-sm1-odroid-c4.dts ++++ b/arch/arm64/boot/dts/amlogic/meson-sm1-odroid-c4.dts +@@ -14,8 +14,9 @@ / { + model = "Hardkernel ODROID-C4"; + + aliases { +- serial0 = &uart_AO; + ethernet0 = ðmac; ++ serial0 = &uart_AO; ++ serial1 = &uart_A; + }; + + chosen { +@@ -385,6 +386,12 @@ &sd_emmc_c { + vqmmc-supply = <&flash_1v8>; + }; + ++&uart_A { ++ status = "okay"; ++ pinctrl-names = "default"; ++ pinctrl-0 = <&uart_a_pins>; ++}; ++ + &uart_AO { + status = "okay"; + pinctrl-0 = <&uart_ao_a_pins>; +-- +2.25.1 + diff --git a/buildroot-external/board/hardkernel/patches/linux/hardkernel-0021-C4-arm64-dts-add-i2c2-i2c3-node.patch b/buildroot-external/board/hardkernel/patches/linux/hardkernel-0021-C4-arm64-dts-add-i2c2-i2c3-node.patch new file mode 100644 index 000000000..d092c7c76 --- /dev/null +++ b/buildroot-external/board/hardkernel/patches/linux/hardkernel-0021-C4-arm64-dts-add-i2c2-i2c3-node.patch @@ -0,0 +1,85 @@ +From 400645dd70ae5a0efbbce35067c8674d380ed2a7 Mon Sep 17 00:00:00 2001 +From: Hyeonki Hong +Date: Wed, 13 May 2020 10:37:28 +0900 +Subject: [PATCH 21/74] ODROID-C4: arm64/dts: add i2c2, i2c3 node + +Change-Id: Id75f935111744ff6945791deefef20f897dc98ac +(cherry picked from commit 3f4b2ffd0905946175c478baa65361695e78e0de) +--- + .../boot/dts/amlogic/meson-sm1-odroid-c4.dts | 53 +++++++++++++++++++ + 1 file changed, 53 insertions(+) + +diff --git a/arch/arm64/boot/dts/amlogic/meson-sm1-odroid-c4.dts b/arch/arm64/boot/dts/amlogic/meson-sm1-odroid-c4.dts +index 831053aa6dff..5988dc5f34d0 100644 +--- a/arch/arm64/boot/dts/amlogic/meson-sm1-odroid-c4.dts ++++ b/arch/arm64/boot/dts/amlogic/meson-sm1-odroid-c4.dts +@@ -16,6 +16,8 @@ / { + + aliases { + ethernet0 = ðmac; ++ i2c0 = &i2c2; ++ i2c1 = &i2c3; + serial0 = &uart_AO; + serial1 = &uart_A; + spi0 = &spicc0; +@@ -434,6 +436,57 @@ &ir { + linux,rc-map-name = "rc-odroid"; + }; + ++&i2c2 { ++ status = "okay"; ++ ++ /* ++ * 40 Pin Header : SDA(GPIOX.17->3 Pin) ++ * SCL(GPIOX.18->5 Pin) ++ */ ++ pinctrl-names = "default"; ++ pinctrl-0 = <&i2c2_master_pins1>; ++ ++ /* default 400k */ ++ clock-frequency = <400000>; ++}; ++ ++&i2c3 { ++ /* default i2c clock-frequency is 100Khz */ ++ status = "okay"; ++ ++ /* ++ * 40 Pin Header : SDA(GPIOA.14->27 Pin) ++ * SCL(GPIOA.15->28 Pin) ++ */ ++ pinctrl-names = "default"; ++ pinctrl-0 = <&i2c3_master_pins2>; ++ ++ /* default 100k */ ++ clock-frequency = <100000>; ++}; ++ ++&periphs_pinctrl { ++ i2c2_master_pins1: i2c2-master-pins1 { ++ mux { ++ groups = "i2c2_sda_x", ++ "i2c2_sck_x"; ++ function = "i2c2"; ++ bias-pull-up; ++ drive-strength-microamp = <3000>; ++ }; ++ }; ++ ++ i2c3_master_pins2: i2c3-master-pins2 { ++ mux { ++ groups = "i2c3_sda_a", ++ "i2c3_sck_a"; ++ function = "i2c3"; ++ bias-pull-up; ++ drive-strength-microamp = <3000>; ++ }; ++ }; ++}; ++ + &pwm_AO_cd { + pinctrl-0 = <&pwm_ao_d_e_pins>; + pinctrl-names = "default"; +-- +2.25.1 + diff --git a/buildroot-external/configs/odroid_c2_defconfig b/buildroot-external/configs/odroid_c2_defconfig index 14e18c9f5..2b5078cff 100644 --- a/buildroot-external/configs/odroid_c2_defconfig +++ b/buildroot-external/configs/odroid_c2_defconfig @@ -29,6 +29,7 @@ BR2_LINUX_KERNEL_CONFIG_FRAGMENT_FILES="$(BR2_EXTERNAL_HASSOS_PATH)/kernel/hasso BR2_LINUX_KERNEL_LZ4=y BR2_LINUX_KERNEL_DTS_SUPPORT=y BR2_LINUX_KERNEL_INTREE_DTS_NAME="amlogic/meson-gxbb-odroidc2" +BR2_LINUX_KERNEL_DTB_OVERLAY_SUPPORT=y BR2_LINUX_KERNEL_NEEDS_HOST_OPENSSL=y BR2_LINUX_KERNEL_NEEDS_HOST_LIBELF=y BR2_PACKAGE_BUSYBOX_CONFIG="$(BR2_EXTERNAL_HASSOS_PATH)/busybox.config" @@ -112,3 +113,5 @@ BR2_PACKAGE_DOSFSTOOLS=y BR2_PACKAGE_DOSFSTOOLS_FSCK_FAT=y BR2_PACKAGE_RTL8812AU=y BR2_PACKAGE_RPI_RF_MOD=y +BR2_PACKAGE_RPI_RF_MOD_DTS=y +BR2_PACKAGE_RPI_RF_MOD_DTS_ODROID-C2=y diff --git a/buildroot-external/configs/odroid_c4_defconfig b/buildroot-external/configs/odroid_c4_defconfig index 7f7c8d2fe..47b98cacb 100644 --- a/buildroot-external/configs/odroid_c4_defconfig +++ b/buildroot-external/configs/odroid_c4_defconfig @@ -29,6 +29,7 @@ BR2_LINUX_KERNEL_CONFIG_FRAGMENT_FILES="$(BR2_EXTERNAL_HASSOS_PATH)/kernel/hasso BR2_LINUX_KERNEL_LZ4=y BR2_LINUX_KERNEL_DTS_SUPPORT=y BR2_LINUX_KERNEL_INTREE_DTS_NAME="amlogic/meson-sm1-odroid-c4" +BR2_LINUX_KERNEL_DTB_OVERLAY_SUPPORT=y BR2_LINUX_KERNEL_NEEDS_HOST_OPENSSL=y BR2_LINUX_KERNEL_NEEDS_HOST_LIBELF=y BR2_PACKAGE_BUSYBOX_CONFIG="$(BR2_EXTERNAL_HASSOS_PATH)/busybox.config" @@ -110,3 +111,5 @@ BR2_PACKAGE_HARDKERNEL_BOOT=y BR2_PACKAGE_HARDKERNEL_BOOT_ODROID_C4=y BR2_PACKAGE_RTL8812AU=y BR2_PACKAGE_RPI_RF_MOD=y +BR2_PACKAGE_RPI_RF_MOD_DTS=y +BR2_PACKAGE_RPI_RF_MOD_DTS_ODROID-C4=y diff --git a/buildroot-external/configs/odroid_n2_defconfig b/buildroot-external/configs/odroid_n2_defconfig index b9fa36d8e..2bc2e49c2 100644 --- a/buildroot-external/configs/odroid_n2_defconfig +++ b/buildroot-external/configs/odroid_n2_defconfig @@ -29,6 +29,7 @@ BR2_LINUX_KERNEL_CONFIG_FRAGMENT_FILES="$(BR2_EXTERNAL_HASSOS_PATH)/kernel/hasso BR2_LINUX_KERNEL_LZ4=y BR2_LINUX_KERNEL_DTS_SUPPORT=y BR2_LINUX_KERNEL_INTREE_DTS_NAME="amlogic/meson-g12b-odroid-n2 amlogic/meson-g12b-odroid-n2-plus" +BR2_LINUX_KERNEL_DTB_OVERLAY_SUPPORT=y BR2_LINUX_KERNEL_NEEDS_HOST_OPENSSL=y BR2_LINUX_KERNEL_NEEDS_HOST_LIBELF=y BR2_PACKAGE_BUSYBOX_CONFIG="$(BR2_EXTERNAL_HASSOS_PATH)/busybox.config" @@ -112,3 +113,5 @@ BR2_PACKAGE_DOSFSTOOLS=y BR2_PACKAGE_DOSFSTOOLS_FSCK_FAT=y BR2_PACKAGE_RTL8812AU=y BR2_PACKAGE_RPI_RF_MOD=y +BR2_PACKAGE_RPI_RF_MOD_DTS=y +BR2_PACKAGE_RPI_RF_MOD_DTS_ODROID-N2=y diff --git a/buildroot-external/package/generic_raw_uart/0001-kernel-Makefile.patch b/buildroot-external/package/generic_raw_uart/0001-kernel-Makefile.patch index adab383b5..96d7b389a 100644 --- a/buildroot-external/package/generic_raw_uart/0001-kernel-Makefile.patch +++ b/buildroot-external/package/generic_raw_uart/0001-kernel-Makefile.patch @@ -12,7 +12,7 @@ +ifeq ($(CONFIG_ARCH_ROCKCHIP),y) obj-m += dw_apb_raw_uart.o +endif -+ifeq ($(CONFIG_ARCH_MESON64_ODROIDC2),y) ++ifeq ($(CONFIG_ARCH_MESON),y) obj-m += meson_raw_uart.o -obj-m += fake_hmrf.o +endif diff --git a/buildroot-external/package/rpi-rf-mod/Config.in b/buildroot-external/package/rpi-rf-mod/Config.in index c6b4fba9b..d0fac83fc 100644 --- a/buildroot-external/package/rpi-rf-mod/Config.in +++ b/buildroot-external/package/rpi-rf-mod/Config.in @@ -24,6 +24,21 @@ config BR2_PACKAGE_RPI_RF_MOD_DTS_TINKER help For the ASUS Tinkerboard +config BR2_PACKAGE_RPI_RF_MOD_DTS_ODROID-C4 + bool "Odroid-C4" + help + For the Odroid-C4 + +config BR2_PACKAGE_RPI_RF_MOD_DTS_ODROID-N2 + bool "Odroid-N2" + help + For the Odroid-N2 + +config BR2_PACKAGE_RPI_RF_MOD_DTS_ODROID-C2 + bool "Odroid-C2" + help + For the Odroid-C2 + endchoice endif diff --git a/buildroot-external/package/rpi-rf-mod/rpi-rf-mod.mk b/buildroot-external/package/rpi-rf-mod/rpi-rf-mod.mk index e37fcd822..1abfe178d 100644 --- a/buildroot-external/package/rpi-rf-mod/rpi-rf-mod.mk +++ b/buildroot-external/package/rpi-rf-mod/rpi-rf-mod.mk @@ -11,7 +11,7 @@ # ############################################################# -RPI_RF_MOD_VERSION = 97bd31203445d14e3d97e1d6e7a0bcf93b400c2e +RPI_RF_MOD_VERSION = 3b0311063973669d0b5310a3d3e4b6280ac4f438 RPI_RF_MOD_SITE = $(call github,jens-maus,RaspberryMatic,$(RPI_RF_MOD_VERSION)) RPI_RF_MOD_LICENSE = Apache-2.0 RPI_RF_MOD_DEPENDENCIES = host-dtc @@ -23,6 +23,15 @@ ifeq ($(BR2_PACKAGE_RPI_RF_MOD_DTS_RPI),y) else ifeq ($(BR2_PACKAGE_RPI_RF_MOD_DTS_TINKER),y) # ASUS Tinkerboard DTS file RPI_RF_MOD_DTS_FILE = rpi-rf-mod-tinker +else ifeq ($(BR2_PACKAGE_RPI_RF_MOD_DTS_ODROID-C4),y) + # Odroid C4 DTS file + RPI_RF_MOD_DTS_FILE = rpi-rf-mod-odroid-c4 +else ifeq ($(BR2_PACKAGE_RPI_RF_MOD_DTS_ODROID-N2),y) + # Odroid N2/N2+ DTS file + RPI_RF_MOD_DTS_FILE = rpi-rf-mod-odroid-n2 +else ifeq ($(BR2_PACKAGE_RPI_RF_MOD_DTS_ODROID-C2),y) + # Odroid C2 DTS file + RPI_RF_MOD_DTS_FILE = rpi-rf-mod-odroid-c2 endif define RPI_RF_MOD_BUILD_CMDS diff --git a/buildroot-external/rootfs-overlay/etc/sysctl.d/30-cp15barrier.conf b/buildroot-external/rootfs-overlay/etc/sysctl.d/30-cp15barrier.conf new file mode 100644 index 000000000..cccbe84d5 --- /dev/null +++ b/buildroot-external/rootfs-overlay/etc/sysctl.d/30-cp15barrier.conf @@ -0,0 +1,3 @@ +# disable "deprecated CP15 Barrier instruction" warnings +# https://www.kernel.org/doc/Documentation/arm64/legacy_instructions.txt +abi.cp15_barrier = 2