From 449cfa8e8b473d50992cfa74c43d22d20645c1d6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dominik=20W=C3=B3jt?= Date: Thu, 31 Oct 2024 14:55:39 +0100 Subject: [PATCH 1/2] Add MXQ target. Copy HDMI fix from odroid-c1. --- config/boards/aml-s805-mxq.tvb | 18 ++++ config/bootscripts/boot-aml-s805-mxq.cmd | 30 ++++++ .../0067-meson8b-mxq-add-HDMI-support.patch | 92 +++++++++++++++++++ 3 files changed, 140 insertions(+) create mode 100644 config/boards/aml-s805-mxq.tvb create mode 100644 config/bootscripts/boot-aml-s805-mxq.cmd create mode 100644 patch/kernel/archive/meson-6.10/0067-meson8b-mxq-add-HDMI-support.patch diff --git a/config/boards/aml-s805-mxq.tvb b/config/boards/aml-s805-mxq.tvb new file mode 100644 index 000000000000..6a1557968be0 --- /dev/null +++ b/config/boards/aml-s805-mxq.tvb @@ -0,0 +1,18 @@ +# MXQ TV box based on Amlogic S805 quad core 1GB RAM SoC GBE +BOARD_NAME="MXQ" +BOARDFAMILY="meson8b" +BOARD_MAINTAINER="" +KERNEL_TARGET="current,edge" +KERNEL_TEST_TARGET="current" +BOOTCONFIG="none" +BOOTSCRIPT="boot-aml-s805-mxq.cmd:boot.cmd" +# The preinstalled U-BOOT looks for this script +BOOTSCRIPT_OUTPUT="s805_autoscript" + +BOOTSIZE="200" +BOOTFS_TYPE="fat" +BOOT_LOGO=desktop + +family_tweaks() { + cp $SRC/packages/blobs/splash/armbian-u-boot-24.bmp $SDCARD/boot/boot.bmp +} diff --git a/config/bootscripts/boot-aml-s805-mxq.cmd b/config/bootscripts/boot-aml-s805-mxq.cmd new file mode 100644 index 000000000000..da48b5d5f318 --- /dev/null +++ b/config/bootscripts/boot-aml-s805-mxq.cmd @@ -0,0 +1,30 @@ +# TODO: extract dtb file name to config script +# TODO: support for boot from usb + +setenv rootdev "LABEL=armbi_root" +setenv rootfstype "ext4" + +# Default Console Device Setting +setenv console "both" +setenv verbosity "1" + +# Enable/Disable USB autosuspend (seems broken on current (6.x) kernels) +# 0 = disabled +# 1 = enabled +setenv usb_autosuspend "0" + +########################################### +if test "${console}" = "display" || test "${console}" = "both"; then setenv consoleargs "console=tty1"; fi +if test "${console}" = "serial" || test "${console}" = "both"; then setenv consoleargs "console=ttyAML0,115200n8 ${consoleargs}"; fi +setenv consoleargs "${consoleargs} no_console_suspend consoleblank=0" +if test "${usb_autosuspend}" = "0"; then setenv extraargs "usbcore.autosuspend=-1"; fi + +# Boot Arguments +setenv bootargs "root=${rootdev} rootwait rw ${consoleargs} rootfstype=${rootfstype} loglevel=${verbosity} ${extraargs}" + +# Booting +fatload mmc 0:1 0x20800000 uImage +fatload mmc 0:1 0x22000000 uInitrd +fatload mmc 0:1 0x21800000 dtb/meson8b-mxq.dtb + +bootm 0x20800000 0x22000000 0x21800000 diff --git a/patch/kernel/archive/meson-6.10/0067-meson8b-mxq-add-HDMI-support.patch b/patch/kernel/archive/meson-6.10/0067-meson8b-mxq-add-HDMI-support.patch new file mode 100644 index 000000000000..eeda43e6ddd1 --- /dev/null +++ b/patch/kernel/archive/meson-6.10/0067-meson8b-mxq-add-HDMI-support.patch @@ -0,0 +1,92 @@ +From 0a16d190127f66d1955482d7f896f2f8fc637218 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Dominik=20W=C3=B3jt?= +Date: Tue, 29 Oct 2024 19:31:00 +0100 +Subject: meson8b-mxq: add HDMI support + +Copied from 0066-ARM-dts-meson8b-odroid-c1-enable-HDMI-for-the-Odroid.patch + +--- + arch/arm/boot/dts/amlogic/meson8b-mxq.dts | 60 +++++++++++++++++++++++ + 1 file changed, 60 insertions(+) + +diff --git a/arch/arm/boot/dts/amlogic/meson8b-mxq.dts b/arch/arm/boot/dts/amlogic/meson8b-mxq.dts +index 7adedd3258c3..43e9ea14da2f 100644 +--- a/arch/arm/boot/dts/amlogic/meson8b-mxq.dts ++++ b/arch/arm/boot/dts/amlogic/meson8b-mxq.dts +@@ -27,6 +27,50 @@ memory { + reg = <0x40000000 0x40000000>; + }; + ++ hdmi-connector { ++ compatible = "hdmi-connector"; ++ type = "a"; ++ ++ port { ++ hdmi_connector_in: endpoint { ++ remote-endpoint = <&hdmi_tx_tmds_out>; ++ }; ++ }; ++ }; ++ ++ ++ sound { ++ compatible = "amlogic,gx-sound-card"; ++ model = "ODROID-C1"; ++ ++ assigned-clocks = <&clkc CLKID_MPLL0>, ++ <&clkc CLKID_MPLL1>; ++ assigned-clock-rates = <294912000>, ++ <270950400>; ++ ++ dai-link-0 { ++ sound-dai = <&aiu AIU_CPU CPU_I2S_FIFO>; ++ }; ++ ++ dai-link-1 { ++ sound-dai = <&aiu AIU_CPU CPU_I2S_ENCODER>; ++ dai-format = "i2s"; ++ mclk-fs = <256>; ++ ++ codec-0 { ++ sound-dai = <&aiu AIU_HDMI CTRL_I2S>; ++ }; ++ }; ++ ++ dai-link-2 { ++ sound-dai = <&aiu AIU_HDMI CTRL_OUT>; ++ ++ codec-0 { ++ sound-dai = <&hdmi_tx 0>; ++ }; ++ }; ++ }; ++ + vcck: regulator-vcck { + compatible = "pwm-regulator"; + +@@ -91,6 +135,22 @@ vddee: regulator-vddee { + }; + }; + ++&aiu { ++ status = "okay"; ++}; ++ ++&hdmi_tx { ++ status = "okay"; ++ pinctrl-0 = <&hdmi_hpd_pins>, <&hdmi_i2c_pins>; ++ pinctrl-names = "default"; ++}; ++ ++&hdmi_tx_tmds_port { ++ hdmi_tx_tmds_out: endpoint { ++ remote-endpoint = <&hdmi_connector_in>; ++ }; ++}; ++ + &cpu0 { + cpu-supply = <&vcck>; + }; +-- +2.39.5 + From 5e7dbac1e5cebaa812e92e6534dc0b3d42bc9dfe Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dominik=20W=C3=B3jt?= Date: Mon, 11 Nov 2024 16:30:30 +0100 Subject: [PATCH 2/2] meson8, MXQ: add boot from usb support, configurable dtb --- config/boards/aml-s805-mxq.tvb | 1 + config/bootenv/aml-s805-mxq.txt | 3 +++ config/bootscripts/boot-aml-s805-mxq.cmd | 25 +++++++++++++++++++----- 3 files changed, 24 insertions(+), 5 deletions(-) create mode 100644 config/bootenv/aml-s805-mxq.txt diff --git a/config/boards/aml-s805-mxq.tvb b/config/boards/aml-s805-mxq.tvb index 6a1557968be0..5ff0ed54cd1c 100644 --- a/config/boards/aml-s805-mxq.tvb +++ b/config/boards/aml-s805-mxq.tvb @@ -8,6 +8,7 @@ BOOTCONFIG="none" BOOTSCRIPT="boot-aml-s805-mxq.cmd:boot.cmd" # The preinstalled U-BOOT looks for this script BOOTSCRIPT_OUTPUT="s805_autoscript" +BOOTENV_FILE="aml-s805-mxq.txt" BOOTSIZE="200" BOOTFS_TYPE="fat" diff --git a/config/bootenv/aml-s805-mxq.txt b/config/bootenv/aml-s805-mxq.txt new file mode 100644 index 000000000000..b7edee36c491 --- /dev/null +++ b/config/bootenv/aml-s805-mxq.txt @@ -0,0 +1,3 @@ +dtb_file=/dtb/meson8b-mxq.dtb + +# The following contents are auto-generated. diff --git a/config/bootscripts/boot-aml-s805-mxq.cmd b/config/bootscripts/boot-aml-s805-mxq.cmd index da48b5d5f318..2ad46d2e4321 100644 --- a/config/bootscripts/boot-aml-s805-mxq.cmd +++ b/config/bootscripts/boot-aml-s805-mxq.cmd @@ -1,5 +1,7 @@ -# TODO: extract dtb file name to config script -# TODO: support for boot from usb +# DO NOT EDIT THIS FILE +# +# Please edit /boot/armbianEnv.txt to set supported parameters +# setenv rootdev "LABEL=armbi_root" setenv rootfstype "ext4" @@ -13,6 +15,19 @@ setenv verbosity "1" # 1 = enabled setenv usb_autosuspend "0" +# Find the bootdev +# Same order is followed as in factory U-BOOT, when searching for this script, +# so same device should be found. +# We can't use `test -z` due to the bug: https://lists.denx.de/pipermail/u-boot/2005-August/011447.html +env set bootdev "" +if test -n "${bootdev}"; test $? != 0; then if fatload usb 0 11000000 s805_autoscript; then env set bootdev "usb 0"; fi; fi; +if test -n "${bootdev}"; test $? != 0; then if fatload usb 1 11000000 s805_autoscript; then env set bootdev "usb 1"; fi; fi; +if test -n "${bootdev}"; test $? != 0; then if fatload usb 2 11000000 s805_autoscript; then env set bootdev "usb 2"; fi; fi; +if test -n "${bootdev}"; test $? != 0; then if fatload usb 3 11000000 s805_autoscript; then env set bootdev "usb 3"; fi; fi; +if test -n "${bootdev}"; test $? != 0; then if fatload mmc 0 11000000 s805_autoscript; then env set bootdev "mmc 0"; fi; fi; + +fatload ${bootdev} 0x20800000 /armbianEnv.txt && env import -t 0x20800000 ${filesize} + ########################################### if test "${console}" = "display" || test "${console}" = "both"; then setenv consoleargs "console=tty1"; fi if test "${console}" = "serial" || test "${console}" = "both"; then setenv consoleargs "console=ttyAML0,115200n8 ${consoleargs}"; fi @@ -23,8 +38,8 @@ if test "${usb_autosuspend}" = "0"; then setenv extraargs "usbcore.autosuspend=- setenv bootargs "root=${rootdev} rootwait rw ${consoleargs} rootfstype=${rootfstype} loglevel=${verbosity} ${extraargs}" # Booting -fatload mmc 0:1 0x20800000 uImage -fatload mmc 0:1 0x22000000 uInitrd -fatload mmc 0:1 0x21800000 dtb/meson8b-mxq.dtb +fatload "${bootdev}" 0x20800000 /uImage +fatload "${bootdev}" 0x22000000 /uInitrd +fatload "${bootdev}" 0x21800000 "${dtb_file}" bootm 0x20800000 0x22000000 0x21800000