diff --git a/packages/bsp/aml-s9xx-box/boot/build-u-boot/u-boot-s905x3-ugoos-x3.patch b/packages/bsp/aml-s9xx-box/boot/build-u-boot/u-boot-s905x3-ugoos-x3.patch new file mode 100644 index 0000000000..fef0ba1a00 --- /dev/null +++ b/packages/bsp/aml-s9xx-box/boot/build-u-boot/u-boot-s905x3-ugoos-x3.patch @@ -0,0 +1,149 @@ +diff -urN a/arch/arm/dts/meson-g12-common-u-boot.dtsi b/arch/arm/dts/meson-g12-common-u-boot.dtsi +--- a/arch/arm/dts/meson-g12-common-u-boot.dtsi 2024-04-02 13:58:58.000000000 +0300 ++++ b/arch/arm/dts/meson-g12-common-u-boot.dtsi 2024-05-24 00:14:31.586647868 +0300 +@@ -5,13 +5,6 @@ + */ + + / { +- /* Keep HW order from U-Boot */ +- aliases { +- /delete-property/ mmc0; +- /delete-property/ mmc1; +- /delete-property/ mmc2; +- }; +- + soc { + bootph-all; + }; +diff -urN a/arch/arm/dts/meson-sm1-sei610.dts b/arch/arm/dts/meson-sm1-sei610.dts +--- a/arch/arm/dts/meson-sm1-sei610.dts 2024-04-02 13:58:58.000000000 +0300 ++++ b/arch/arm/dts/meson-sm1-sei610.dts 2024-05-24 00:14:31.586647868 +0300 +@@ -13,7 +13,7 @@ + + / { + compatible = "seirobotics,sei610", "amlogic,sm1"; +- model = "SEI Robotics SEI610"; ++ model = "Armbian aml-s9xx-box u-boot s905x3"; + + aliases { + serial0 = &uart_AO; +diff -urN a/arch/arm/dts/meson-sm1-u-boot.dtsi b/arch/arm/dts/meson-sm1-u-boot.dtsi +--- a/arch/arm/dts/meson-sm1-u-boot.dtsi 2024-04-02 13:58:58.000000000 +0300 ++++ b/arch/arm/dts/meson-sm1-u-boot.dtsi 2024-05-24 00:14:31.586647868 +0300 +@@ -6,15 +6,3 @@ + + #include "meson-g12-common-u-boot.dtsi" + +-&sd_emmc_a { +- compatible = "amlogic,meson-sm1-mmc"; +-}; +- +-&sd_emmc_b { +- compatible = "amlogic,meson-sm1-mmc"; +-}; +- +-&sd_emmc_c { +- compatible = "amlogic,meson-sm1-mmc"; +-}; +- +diff -urN a/configs/sei610_defconfig b/configs/sei610_defconfig +--- a/configs/sei610_defconfig 2024-04-02 13:58:58.000000000 +0300 ++++ b/configs/sei610_defconfig 2024-05-24 00:16:30.479991003 +0300 +@@ -14,31 +14,23 @@ + CONFIG_OF_LIBFDT_OVERLAY=y + CONFIG_DM_RESET=y + CONFIG_MESON_G12A=y +-CONFIG_DEBUG_UART_BASE=0xff803000 +-CONFIG_DEBUG_UART_CLOCK=24000000 +-CONFIG_IDENT_STRING=" sei610" ++CONFIG_IDENT_STRING=" armbian-sm1" + # CONFIG_PSCI_RESET is not set + CONFIG_SYS_LOAD_ADDR=0x1000000 +-CONFIG_DEBUG_UART=y + CONFIG_REMAKE_ELF=y + CONFIG_FIT=y + CONFIG_FIT_SIGNATURE=y + CONFIG_FIT_VERBOSE=y + CONFIG_LEGACY_IMAGE_FORMAT=y + CONFIG_OF_BOARD_SETUP=y +-CONFIG_USE_PREBOOT=y +-CONFIG_PREBOOT="run load_logo" +-# CONFIG_CONSOLE_MUX is not set ++CONFIG_DISPLAY_BOARDINFO_LATE=y ++CONFIG_CONSOLE_MUX=y + # CONFIG_DISPLAY_CPUINFO is not set + CONFIG_MISC_INIT_R=y +-CONFIG_AVB_VERIFY=y + CONFIG_SYS_MAXARGS=32 + # CONFIG_CMD_BDI is not set +-CONFIG_CMD_ADTIMG=y +-CONFIG_CMD_ABOOTIMG=y + # CONFIG_CMD_IMI is not set + CONFIG_CMD_BCB=y +-CONFIG_CMD_DFU=y + CONFIG_CMD_GPIO=y + CONFIG_CMD_GPT=y + # CONFIG_CMD_LOADS is not set +@@ -48,18 +40,12 @@ + # CONFIG_CMD_SETEXPR is not set + CONFIG_CMD_BMP=y + CONFIG_CMD_REGULATOR=y +-CONFIG_CMD_AVB=y + CONFIG_OF_CONTROL=y + CONFIG_ENV_IS_IN_MMC=y + CONFIG_SYS_RELOC_GD_ENV_ADDR=y + CONFIG_SYS_MMC_ENV_DEV=2 + CONFIG_SYS_MMC_ENV_PART=1 + CONFIG_DFU_RAM=y +-CONFIG_USB_FUNCTION_FASTBOOT=y +-CONFIG_FASTBOOT_BUF_ADDR=0x6000000 +-CONFIG_FASTBOOT_FLASH=y +-CONFIG_FASTBOOT_FLASH_MMC_DEV=2 +-CONFIG_FASTBOOT_CMD_OEM_FORMAT=y + # CONFIG_INPUT is not set + CONFIG_MMC_MESON_GX=y + CONFIG_DM_MDIO=y +@@ -73,8 +59,6 @@ + CONFIG_MESON_EE_POWER_DOMAIN=y + CONFIG_DM_REGULATOR=y + CONFIG_DM_REGULATOR_FIXED=y +-CONFIG_DEBUG_UART_ANNOUNCE=y +-CONFIG_DEBUG_UART_SKIP_INIT=y + CONFIG_MESON_SERIAL=y + CONFIG_USB=y + CONFIG_DM_USB_GADGET=y +@@ -100,4 +84,6 @@ + CONFIG_BMP_16BPP=y + CONFIG_BMP_24BPP=y + CONFIG_BMP_32BPP=y +-CONFIG_LIBAVB=y ++CONFIG_CMD_BOOTEFI=y ++CONFIG_EFI_LOADER=y ++CONFIG_USB_KEYBOARD=y +diff -urN a/include/configs/sei610.h b/include/configs/sei610.h +--- a/include/configs/sei610.h 2024-04-02 13:58:58.000000000 +0300 ++++ b/include/configs/sei610.h 2024-05-24 00:14:31.586647868 +0300 +@@ -9,22 +9,6 @@ + #ifndef __CONFIG_H + #define __CONFIG_H + +-#define LOGO_UUID "43a3305d-150f-4cc9-bd3b-38fca8693846;" +-#define ROOT_UUID "ddb8c3f6-d94d-4394-b633-3134139cc2e0;" +- +-#define PARTS_DEFAULT \ +- "uuid_disk=${uuid_gpt_disk};" \ +- "name=logo,start=512K,size=2M,uuid=" LOGO_UUID \ +- "name=misc,size=512K,uuid=${uuid_gpt_misc};" \ +- "name=dtbo,size=8M,uuid=${uuid_gpt_dtbo};" \ +- "name=vbmeta,size=512K,uuid=${uuid_gpt_vbmeta};" \ +- "name=boot,size=32M,bootable,uuid=${uuid_gpt_boot};" \ +- "name=recovery,size=32M,uuid=${uuid_gpt_recovery};" \ +- "name=cache,size=256M,uuid=${uuid_gpt_cache};" \ +- "name=super,size=2304M,uuid=${uuid_gpt_super};" \ +- "name=userdata,size=12274M,uuid=${uuid_gpt_userdata};" \ +- "name=rootfs,size=-,uuid=" ROOT_UUID +- +-#include ++#include + + #endif /* __CONFIG_H */ diff --git a/packages/bsp/aml-s9xx-box/boot/u-boot-s905x3-ugoosx3 b/packages/bsp/aml-s9xx-box/boot/u-boot-s905x3-ugoosx3 new file mode 100644 index 0000000000..08f3cf888a Binary files /dev/null and b/packages/bsp/aml-s9xx-box/boot/u-boot-s905x3-ugoosx3 differ diff --git a/patch/kernel/archive/meson64-6.6/dt/meson-sm1-ugoos-x3.dts b/patch/kernel/archive/meson64-6.6/dt/meson-sm1-ugoos-x3.dts new file mode 100644 index 0000000000..4c51af7b39 --- /dev/null +++ b/patch/kernel/archive/meson64-6.6/dt/meson-sm1-ugoos-x3.dts @@ -0,0 +1,290 @@ +// SPDX-License-Identifier: (GPL-2.0+ OR MIT) +/* + * Copyright (c) 2019 BayLibre SAS. All rights reserved. + * Copyright (c) 2020 Christian Hewitt + * Copyright (c) 2021 flippy + */ + +/dts-v1/; + +#include "meson-sm1-ac2xx.dtsi" +#include + +/ { + compatible = "amlogic,sm1"; + model = "Ugoos X3"; + + aliases { + rtc0 = &rtc; + rtc1 = &vrtc; + }; + + leds { + compatible = "gpio-leds"; + + red_led { + label = "red"; + gpios = <&gpio_ao GPIOAO_10 GPIO_ACTIVE_HIGH>; + default-state = "on"; + }; + + blue_led { + label = "blue"; + gpios = <&gpio_ao GPIOAO_11 GPIO_ACTIVE_HIGH>; + default-state = "on"; + }; + }; + + sound { + compatible = "amlogic,axg-sound-card"; + model = "UGOOS-X3"; + audio-aux-devs = <&tdmout_b>; + audio-routing = "TDMOUT_B IN 0", "FRDDR_A OUT 1", + "TDMOUT_B IN 1", "FRDDR_B OUT 1", + "TDMOUT_B IN 2", "FRDDR_C OUT 1", + "TDM_B Playback", "TDMOUT_B OUT"; + + assigned-clocks = <&clkc CLKID_MPLL2>, + <&clkc CLKID_MPLL0>, + <&clkc CLKID_MPLL1>; + assigned-clock-parents = <0>, <0>, <0>; + assigned-clock-rates = <294912000>, + <270950400>, + <393216000>; + status = "okay"; + + dai-link-0 { + sound-dai = <&frddr_a>; + }; + + dai-link-1 { + sound-dai = <&frddr_b>; + }; + + dai-link-2 { + sound-dai = <&frddr_c>; + }; + + /* 8ch hdmi interface */ + dai-link-3 { + sound-dai = <&tdmif_b>; + dai-format = "i2s"; + dai-tdm-slot-tx-mask-0 = <1 1>; + dai-tdm-slot-tx-mask-1 = <1 1>; + dai-tdm-slot-tx-mask-2 = <1 1>; + dai-tdm-slot-tx-mask-3 = <1 1>; + mclk-fs = <256>; + + codec { + sound-dai = <&tohdmitx TOHDMITX_I2S_IN_B>; + }; + }; + + /* hdmi glue */ + dai-link-4 { + sound-dai = <&tohdmitx TOHDMITX_I2S_OUT>; + + codec { + sound-dai = <&hdmi_tx>; + }; + }; + }; + + vddgpu: regulator-vddgpu { + compatible = "regulator-fixed"; + regulator-name = "mali"; + regulator-min-microvolt = <800000>; + regulator-max-microvolt = <800000>; + vin-supply = <&ao_5v>; + regulator-always-on; + }; + + usb_pwr_en: regulator-usb-pwr-en { + compatible = "regulator-fixed"; + regulator-name = "USB_PWR_EN"; + regulator-min-microvolt = <5000000>; + regulator-max-microvolt = <5000000>; + vin-supply = <&ao_5v>; + + gpio = <&gpio GPIOH_5 GPIO_ACTIVE_HIGH>; + enable-active-high; + }; +}; + +&vddcpu { + regulator-min-microvolt = <721000>; + regulator-max-microvolt = <1022000>; + pwms = <&pwm_AO_cd 1 1250 0>; +}; + +&arb { + status = "okay"; +}; + +&clkc_audio { + status = "okay"; +}; + +ðmac { + status = "okay"; + + pinctrl-0 = <ð_pins>, <ð_rgmii_pins>; + pinctrl-names = "default"; + phy-mode = "rgmii-txid"; + phy-handle = <&external_phy>; + + rx-internal-delay-ps = <800>; + + snps,aal; + snps,rxpbl = <0x8>; + snps,txpbl = <0x8>; + + rx-fifo-depth = <4096>; + tx-fifo-depth = <4096>; + + nvmem-cells = <ð_mac>; + nvmem-cell-names = "eth_mac"; +}; + +&ext_mdio { + external_phy: ethernet-phy@0 { + /* Realtek RTL8211F (0x001cc916) */ + reg = <0>; + max-speed = <1000>; + + reset-assert-us = <10000>; + reset-deassert-us = <80000>; + reset-gpios = <&gpio GPIOZ_15 (GPIO_ACTIVE_LOW | GPIO_OPEN_DRAIN)>; + + interrupt-parent = <&gpio_intc>; + /* MAC_INTR on GPIOZ_14 */ + interrupts = ; + }; +}; + +&frddr_a { + status = "okay"; +}; + +&frddr_b { + status = "okay"; +}; + +&frddr_c { + status = "okay"; +}; + +&tdmif_b { + status = "okay"; +}; + +&tdmout_b { + status = "okay"; +}; + +&tohdmitx { + status = "okay"; +}; + +&uart_A { + status = "okay"; + + pinctrl-0 = <&uart_a_pins>, <&uart_a_cts_rts_pins>; + pinctrl-names = "default"; + uart-has-rtscts; + + bluetooth { + compatible = "brcm,bcm43438-bt"; + shutdown-gpios = <&gpio GPIOX_17 GPIO_ACTIVE_HIGH>; + max-speed = <2000000>; + clocks = <&wifi32k>; + clock-names = "lpo"; + }; +}; + +&mali { + mali-supply=<&vddgpu>; +}; + +&usb { + dr_mode = "host"; + vbus-supply = <&usb_pwr_en>; +}; + +&usb2_phy0 { + phy-supply = <&ao_5v>; +}; + +&usb2_phy1 { + phy-supply = <&ao_5v>; +}; + +&i2c3 { + status = "okay"; + pinctrl-0 = <&i2c3_sda_a_pins>, <&i2c3_sck_a_pins>; + pinctrl-names = "default"; + + rtc: rtc@51 { + compatible = "haoyu,hym8563"; + reg = <0x51>; + wakeup-source; + + #clock-cells = <0>; + clock-frequency = <32768>; + clock-output-names = "xin32k"; + }; +}; + +/* SDIO */ +&sd_emmc_a { + /delete-property/ sd-uhs-sdr104; + sd-uhs-sdr50; + max-frequency = <100000000>; + + //sd-uhs-ddr50; + //max-frequency = <50000000>; + + //sd-uhs-sdr104; + //max-frequency = <200000000>; +}; + +/* SD card */ +&sd_emmc_b { + cap-sd-highspeed; + max-frequency = <100000000>; +}; + +/* eMMC */ +&sd_emmc_c { + max-frequency = <200000000>; +}; + +&cpu_opp_table { + opp-2016000000 { + opp-hz = /bits/ 64 <2016000000>; + opp-microvolt = <1000000>; + }; +}; + +&efuse { + eth_mac: eth_mac@0 { + reg = <0x0 0x06>; + }; + + bt_mac: bt_mac@6 { + reg = <0x6 0x06>; + }; + + wifi_mac: wifi_mac@12 { + reg = <0x0c 0x06>; + }; + + usid: usid@18 { + reg = <0x12 0x10>; + }; +}; +/* +&openvfd { + status = "disabled"; +}; +*/ \ No newline at end of file diff --git a/patch/kernel/archive/meson64-6.8/dt/meson-sm1-ugoos-x3.dts b/patch/kernel/archive/meson64-6.8/dt/meson-sm1-ugoos-x3.dts new file mode 100644 index 0000000000..4c51af7b39 --- /dev/null +++ b/patch/kernel/archive/meson64-6.8/dt/meson-sm1-ugoos-x3.dts @@ -0,0 +1,290 @@ +// SPDX-License-Identifier: (GPL-2.0+ OR MIT) +/* + * Copyright (c) 2019 BayLibre SAS. All rights reserved. + * Copyright (c) 2020 Christian Hewitt + * Copyright (c) 2021 flippy + */ + +/dts-v1/; + +#include "meson-sm1-ac2xx.dtsi" +#include + +/ { + compatible = "amlogic,sm1"; + model = "Ugoos X3"; + + aliases { + rtc0 = &rtc; + rtc1 = &vrtc; + }; + + leds { + compatible = "gpio-leds"; + + red_led { + label = "red"; + gpios = <&gpio_ao GPIOAO_10 GPIO_ACTIVE_HIGH>; + default-state = "on"; + }; + + blue_led { + label = "blue"; + gpios = <&gpio_ao GPIOAO_11 GPIO_ACTIVE_HIGH>; + default-state = "on"; + }; + }; + + sound { + compatible = "amlogic,axg-sound-card"; + model = "UGOOS-X3"; + audio-aux-devs = <&tdmout_b>; + audio-routing = "TDMOUT_B IN 0", "FRDDR_A OUT 1", + "TDMOUT_B IN 1", "FRDDR_B OUT 1", + "TDMOUT_B IN 2", "FRDDR_C OUT 1", + "TDM_B Playback", "TDMOUT_B OUT"; + + assigned-clocks = <&clkc CLKID_MPLL2>, + <&clkc CLKID_MPLL0>, + <&clkc CLKID_MPLL1>; + assigned-clock-parents = <0>, <0>, <0>; + assigned-clock-rates = <294912000>, + <270950400>, + <393216000>; + status = "okay"; + + dai-link-0 { + sound-dai = <&frddr_a>; + }; + + dai-link-1 { + sound-dai = <&frddr_b>; + }; + + dai-link-2 { + sound-dai = <&frddr_c>; + }; + + /* 8ch hdmi interface */ + dai-link-3 { + sound-dai = <&tdmif_b>; + dai-format = "i2s"; + dai-tdm-slot-tx-mask-0 = <1 1>; + dai-tdm-slot-tx-mask-1 = <1 1>; + dai-tdm-slot-tx-mask-2 = <1 1>; + dai-tdm-slot-tx-mask-3 = <1 1>; + mclk-fs = <256>; + + codec { + sound-dai = <&tohdmitx TOHDMITX_I2S_IN_B>; + }; + }; + + /* hdmi glue */ + dai-link-4 { + sound-dai = <&tohdmitx TOHDMITX_I2S_OUT>; + + codec { + sound-dai = <&hdmi_tx>; + }; + }; + }; + + vddgpu: regulator-vddgpu { + compatible = "regulator-fixed"; + regulator-name = "mali"; + regulator-min-microvolt = <800000>; + regulator-max-microvolt = <800000>; + vin-supply = <&ao_5v>; + regulator-always-on; + }; + + usb_pwr_en: regulator-usb-pwr-en { + compatible = "regulator-fixed"; + regulator-name = "USB_PWR_EN"; + regulator-min-microvolt = <5000000>; + regulator-max-microvolt = <5000000>; + vin-supply = <&ao_5v>; + + gpio = <&gpio GPIOH_5 GPIO_ACTIVE_HIGH>; + enable-active-high; + }; +}; + +&vddcpu { + regulator-min-microvolt = <721000>; + regulator-max-microvolt = <1022000>; + pwms = <&pwm_AO_cd 1 1250 0>; +}; + +&arb { + status = "okay"; +}; + +&clkc_audio { + status = "okay"; +}; + +ðmac { + status = "okay"; + + pinctrl-0 = <ð_pins>, <ð_rgmii_pins>; + pinctrl-names = "default"; + phy-mode = "rgmii-txid"; + phy-handle = <&external_phy>; + + rx-internal-delay-ps = <800>; + + snps,aal; + snps,rxpbl = <0x8>; + snps,txpbl = <0x8>; + + rx-fifo-depth = <4096>; + tx-fifo-depth = <4096>; + + nvmem-cells = <ð_mac>; + nvmem-cell-names = "eth_mac"; +}; + +&ext_mdio { + external_phy: ethernet-phy@0 { + /* Realtek RTL8211F (0x001cc916) */ + reg = <0>; + max-speed = <1000>; + + reset-assert-us = <10000>; + reset-deassert-us = <80000>; + reset-gpios = <&gpio GPIOZ_15 (GPIO_ACTIVE_LOW | GPIO_OPEN_DRAIN)>; + + interrupt-parent = <&gpio_intc>; + /* MAC_INTR on GPIOZ_14 */ + interrupts = ; + }; +}; + +&frddr_a { + status = "okay"; +}; + +&frddr_b { + status = "okay"; +}; + +&frddr_c { + status = "okay"; +}; + +&tdmif_b { + status = "okay"; +}; + +&tdmout_b { + status = "okay"; +}; + +&tohdmitx { + status = "okay"; +}; + +&uart_A { + status = "okay"; + + pinctrl-0 = <&uart_a_pins>, <&uart_a_cts_rts_pins>; + pinctrl-names = "default"; + uart-has-rtscts; + + bluetooth { + compatible = "brcm,bcm43438-bt"; + shutdown-gpios = <&gpio GPIOX_17 GPIO_ACTIVE_HIGH>; + max-speed = <2000000>; + clocks = <&wifi32k>; + clock-names = "lpo"; + }; +}; + +&mali { + mali-supply=<&vddgpu>; +}; + +&usb { + dr_mode = "host"; + vbus-supply = <&usb_pwr_en>; +}; + +&usb2_phy0 { + phy-supply = <&ao_5v>; +}; + +&usb2_phy1 { + phy-supply = <&ao_5v>; +}; + +&i2c3 { + status = "okay"; + pinctrl-0 = <&i2c3_sda_a_pins>, <&i2c3_sck_a_pins>; + pinctrl-names = "default"; + + rtc: rtc@51 { + compatible = "haoyu,hym8563"; + reg = <0x51>; + wakeup-source; + + #clock-cells = <0>; + clock-frequency = <32768>; + clock-output-names = "xin32k"; + }; +}; + +/* SDIO */ +&sd_emmc_a { + /delete-property/ sd-uhs-sdr104; + sd-uhs-sdr50; + max-frequency = <100000000>; + + //sd-uhs-ddr50; + //max-frequency = <50000000>; + + //sd-uhs-sdr104; + //max-frequency = <200000000>; +}; + +/* SD card */ +&sd_emmc_b { + cap-sd-highspeed; + max-frequency = <100000000>; +}; + +/* eMMC */ +&sd_emmc_c { + max-frequency = <200000000>; +}; + +&cpu_opp_table { + opp-2016000000 { + opp-hz = /bits/ 64 <2016000000>; + opp-microvolt = <1000000>; + }; +}; + +&efuse { + eth_mac: eth_mac@0 { + reg = <0x0 0x06>; + }; + + bt_mac: bt_mac@6 { + reg = <0x6 0x06>; + }; + + wifi_mac: wifi_mac@12 { + reg = <0x0c 0x06>; + }; + + usid: usid@18 { + reg = <0x12 0x10>; + }; +}; +/* +&openvfd { + status = "disabled"; +}; +*/ \ No newline at end of file