From 68e822d13260ffde98409d2ffd97b3c59346308a Mon Sep 17 00:00:00 2001 From: Patrick Yavitz Date: Thu, 6 Feb 2025 10:48:37 -0500 Subject: [PATCH] Amper Gateway AM-GZ80x: `Update u-boot to v2025.01` Signed-off-by: Patrick Yavitz --- config/boards/gateway-gz80x.conf | 4 +- ...001-Add-board-Amper-Gateway-AM-GZ80x.patch | 480 ++++++++++++++++++ ...002-HACK-mmc-meson-gx-limit-to-24MHz.patch | 26 + ...change-clock-phase-value-on-axg-SoCs.patch | 56 ++ .../004-HACK-meson64-boot-target-usb.patch | 33 ++ 5 files changed, 597 insertions(+), 2 deletions(-) create mode 100644 patch/u-boot/v2025.01/board_gateway-gz80x/001-Add-board-Amper-Gateway-AM-GZ80x.patch create mode 100644 patch/u-boot/v2025.01/board_gateway-gz80x/002-HACK-mmc-meson-gx-limit-to-24MHz.patch create mode 100644 patch/u-boot/v2025.01/board_gateway-gz80x/003-mmc-meson-gx-change-clock-phase-value-on-axg-SoCs.patch create mode 100644 patch/u-boot/v2025.01/board_gateway-gz80x/004-HACK-meson64-boot-target-usb.patch diff --git a/config/boards/gateway-gz80x.conf b/config/boards/gateway-gz80x.conf index 6536357f6c..0a05cb82d0 100644 --- a/config/boards/gateway-gz80x.conf +++ b/config/boards/gateway-gz80x.conf @@ -5,8 +5,8 @@ BOARD_MAINTAINER="pyavitz" BOOTCONFIG="amper_gateway_am-gz80x_defconfig" KERNEL_TARGET="current,edge" KERNEL_TEST_TARGET="current" -BOOTBRANCH_BOARD="tag:v2024.07" -BOOTPATCHDIR="v2024.07" +BOOTBRANCH_BOARD="tag:v2025.01" +BOOTPATCHDIR="v2025.01" BOOT_FDT_FILE="amlogic/meson-axg-amper-gateway-am-gz80x.dtb" SRC_EXTLINUX="yes" SRC_CMDLINE="console=ttyAML0,115200n8 clk_ignore_unused loglevel=7" diff --git a/patch/u-boot/v2025.01/board_gateway-gz80x/001-Add-board-Amper-Gateway-AM-GZ80x.patch b/patch/u-boot/v2025.01/board_gateway-gz80x/001-Add-board-Amper-Gateway-AM-GZ80x.patch new file mode 100644 index 0000000000..65faeff831 --- /dev/null +++ b/patch/u-boot/v2025.01/board_gateway-gz80x/001-Add-board-Amper-Gateway-AM-GZ80x.patch @@ -0,0 +1,480 @@ +From 7d170bc4d0c2fbdb01bdf5b0fd9b8201cf65b121 Mon Sep 17 00:00:00 2001 +From: Patrick Yavitz +Date: Thu, 19 Sep 2024 17:39:49 -0400 +Subject: [PATCH] Add board Amper Gateway AM-GZ80x + +Signed-off-by: Patrick Yavitz +--- + ...son-axg-amper-gateway-am-gz80x-u-boot.dtsi | 9 + + configs/amper_gateway_am-gz80x_defconfig | 69 ++++ + .../meson-axg-amper-gateway-am-gz80x.dts | 37 +++ + .../meson-axg-amper-gateway-gz80x.dtsi | 297 ++++++++++++++++++ + 4 files changed, 412 insertions(+) + create mode 100644 arch/arm/dts/meson-axg-amper-gateway-am-gz80x-u-boot.dtsi + create mode 100644 configs/amper_gateway_am-gz80x_defconfig + create mode 100644 dts/upstream/src/arm64/amlogic/meson-axg-amper-gateway-am-gz80x.dts + create mode 100644 dts/upstream/src/arm64/amlogic/meson-axg-amper-gateway-gz80x.dtsi + +diff --git a/arch/arm/dts/meson-axg-amper-gateway-am-gz80x-u-boot.dtsi b/arch/arm/dts/meson-axg-amper-gateway-am-gz80x-u-boot.dtsi +new file mode 100644 +index 0000000000..814f891bdc +--- /dev/null ++++ b/arch/arm/dts/meson-axg-amper-gateway-am-gz80x-u-boot.dtsi +@@ -0,0 +1,9 @@ ++// SPDX-License-Identifier: (GPL-2.0+ OR MIT) ++/* ++ * Copyright (c) 2024 Patrick Yavitz ++ */ ++ ++&saradc { ++ status = "okay"; ++ vref-supply = <&vddio_ao18>; ++}; +diff --git a/configs/amper_gateway_am-gz80x_defconfig b/configs/amper_gateway_am-gz80x_defconfig +new file mode 100644 +index 0000000000..5991f66c29 +--- /dev/null ++++ b/configs/amper_gateway_am-gz80x_defconfig +@@ -0,0 +1,69 @@ ++CONFIG_ARM=y ++CONFIG_ARCH_MESON=y ++CONFIG_TEXT_BASE=0x01000000 ++CONFIG_NR_DRAM_BANKS=1 ++CONFIG_HAS_CUSTOM_SYS_INIT_SP_ADDR=y ++CONFIG_CUSTOM_SYS_INIT_SP_ADDR=0x20000000 ++CONFIG_ENV_SIZE=0x2000 ++CONFIG_DM_GPIO=y ++CONFIG_DEFAULT_DEVICE_TREE="amlogic/meson-axg-amper-gateway-am-gz80x" ++CONFIG_OF_LIBFDT_OVERLAY=y ++CONFIG_DM_RESET=y ++CONFIG_MESON_AXG=y ++CONFIG_DEBUG_UART_BASE=0xff803000 ++CONFIG_DEBUG_UART_CLOCK=24000000 ++CONFIG_IDENT_STRING=" gateway-am-gz80x" ++CONFIG_SYS_LOAD_ADDR=0x01000000 ++CONFIG_DEBUG_UART=y ++CONFIG_REMAKE_ELF=y ++CONFIG_SD_BOOT=y ++CONFIG_OF_BOARD_SETUP=y ++CONFIG_USE_PREBOOT=y ++CONFIG_PREBOOT="usb start" ++# CONFIG_DISPLAY_CPUINFO is not set ++CONFIG_MISC_INIT_R=y ++CONFIG_SYS_MAXARGS=32 ++# CONFIG_CMD_BDI is not set ++# CONFIG_CMD_IMI is not set ++CONFIG_CMD_EEPROM=y ++CONFIG_CMD_ADC=y ++CONFIG_CMD_GPIO=y ++CONFIG_CMD_I2C=y ++# CONFIG_CMD_LOADS is not set ++CONFIG_CMD_MMC=y ++CONFIG_CMD_USB=y ++CONFIG_CMD_USB_MASS_STORAGE=y ++CONFIG_CMD_REGULATOR=y ++CONFIG_CMD_BTRFS=y ++CONFIG_PARTITION_TYPE_GUID=y ++CONFIG_OF_CONTROL=y ++CONFIG_SYS_RELOC_GD_ENV_ADDR=y ++CONFIG_SARADC_MESON=y ++CONFIG_DM_I2C=y ++CONFIG_SYS_I2C_MESON=y ++CONFIG_MMC_MESON_GX=y ++CONFIG_PHY_REALTEK=y ++CONFIG_ETH_DESIGNWARE_MESON8B=y ++CONFIG_MESON_GXL_USB_PHY=y ++CONFIG_PINCTRL=y ++CONFIG_PINCTRL_MESON_AXG=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 ++CONFIG_USB_XHCI_HCD=y ++CONFIG_USB_XHCI_DWC3=y ++CONFIG_USB_DWC2=y ++CONFIG_USB_DWC3=y ++# CONFIG_USB_DWC3_GADGET is not set ++CONFIG_USB_DWC3_MESON_GXL=y ++CONFIG_USB_GADGET=y ++CONFIG_USB_GADGET_VENDOR_NUM=0x1b8e ++CONFIG_USB_GADGET_PRODUCT_NUM=0xfada ++CONFIG_USB_GADGET_DWC2_OTG=y ++CONFIG_USB_GADGET_DOWNLOAD=y ++CONFIG_EXT4_WRITE=y ++CONFIG_RANDOM_UUID=y +diff --git a/dts/upstream/src/arm64/amlogic/meson-axg-amper-gateway-am-gz80x.dts b/dts/upstream/src/arm64/amlogic/meson-axg-amper-gateway-am-gz80x.dts +new file mode 100644 +index 0000000000..0a7b48bd03 +--- /dev/null ++++ b/dts/upstream/src/arm64/amlogic/meson-axg-amper-gateway-am-gz80x.dts +@@ -0,0 +1,37 @@ ++// SPDX-License-Identifier: (GPL-2.0+ OR MIT) ++/* ++ * Copyright (c) 2024 Patrick Yavitz ++ */ ++ ++/dts-v1/; ++ ++#include "meson-axg-amper-gateway-gz80x.dtsi" ++ ++/ { ++ compatible = "amper,gateway-am-gz80x", "amlogic,a113x", "amlogic,meson-axg"; ++ model = "Amper Gateway AM-GZ80x"; ++ ++ aliases { ++ serial1 = &uart_B; ++ serial2 = &uart_AO_B; ++ ethernet0 = ðmac; ++ }; ++ ++ /* 1024MB RAM */ ++ memory@0 { ++ device_type = "memory"; ++ reg = <0x0 0x0 0x0 0x40000000>; ++ }; ++}; ++ ++&sd_emmc_b { ++ sdio: wifi@1 { ++ reg = <1>; ++ }; ++}; ++ ++&uart_B { ++ status = "okay"; ++ pinctrl-0 = <&uart_b_z_pins>; ++ pinctrl-names = "default"; ++}; +diff --git a/dts/upstream/src/arm64/amlogic/meson-axg-amper-gateway-gz80x.dtsi b/dts/upstream/src/arm64/amlogic/meson-axg-amper-gateway-gz80x.dtsi +new file mode 100644 +index 0000000000..807238c4a6 +--- /dev/null ++++ b/dts/upstream/src/arm64/amlogic/meson-axg-amper-gateway-gz80x.dtsi +@@ -0,0 +1,297 @@ ++// SPDX-License-Identifier: (GPL-2.0+ OR MIT) ++/* ++ * Copyright (c) 2024 Patrick Yavitz ++ */ ++ ++/dts-v1/; ++ ++#include "meson-axg.dtsi" ++#include ++#include ++#include ++ ++/ { ++ aliases { ++ serial0 = &uart_AO; ++ }; ++ ++ chosen { ++ stdout-path = "serial0:115200n8"; ++ }; ++ ++ emmc_pwrseq: emmc-pwrseq { ++ compatible = "mmc-pwrseq-emmc"; ++ reset-gpios = <&gpio BOOT_9 GPIO_ACTIVE_LOW>; ++ }; ++ ++ gpio-keys-polled { ++ compatible = "gpio-keys-polled"; ++ poll-interval = <100>; ++ ++ button-power { ++ label = "power"; ++ linux,code = ; ++ gpios = <&gpio_ao GPIOAO_6 GPIO_ACTIVE_HIGH>; ++ }; ++ }; ++ ++ leds { ++ compatible = "gpio-leds"; ++ ++ led-blue { ++ color = ; ++ function = LED_FUNCTION_STATUS; ++ gpios = <&gpio_ao GPIOAO_3 GPIO_ACTIVE_HIGH>; ++ linux,default-trigger = "default-on"; ++ }; ++ ++ led-green { ++ color = ; ++ function = LED_FUNCTION_STATUS; ++ gpios = <&gpio_ao GPIOAO_4 GPIO_ACTIVE_HIGH>; ++ linux,default-trigger = "mmc1"; ++ }; ++ ++ led-red { ++ color = ; ++ function = LED_FUNCTION_STATUS; ++ gpios = <&gpio_ao GPIOAO_7 GPIO_ACTIVE_HIGH>; ++ linux,default-trigger = "usb-host"; ++ }; ++ }; ++ ++ reserved-memory { ++ linux,cma { ++ size = <0x0 0x400000>; ++ }; ++ }; ++ ++ sdio_pwrseq: sdio-pwrseq { ++ compatible = "mmc-pwrseq-simple"; ++ reset-gpios = <&gpio GPIOX_7 GPIO_ACTIVE_LOW>; ++ clocks = <&wifi32k>; ++ clock-names = "ext_clock"; ++ }; ++ ++ thermal-zones { ++ cpu_thermal: cpu-thermal { ++ polling-delay-passive = <250>; ++ polling-delay = <1000>; ++ thermal-sensors = <&scpi_sensors 0>; ++ trips { ++ cpu_passive: cpu-passive { ++ temperature = <70000>; /* millicelsius */ ++ hysteresis = <2000>; /* millicelsius */ ++ type = "passive"; ++ }; ++ ++ cpu_hot: cpu-hot { ++ temperature = <80000>; /* millicelsius */ ++ hysteresis = <2000>; /* millicelsius */ ++ type = "hot"; ++ }; ++ ++ cpu_critical: cpu-critical { ++ temperature = <100000>; /* millicelsius */ ++ hysteresis = <2000>; /* millicelsius */ ++ type = "critical"; ++ }; ++ }; ++ ++ cpu_cooling_maps: cooling-maps { ++ map0 { ++ trip = <&cpu_passive>; ++ cooling-device = <&cpu0 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>, ++ <&cpu1 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>, ++ <&cpu2 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>, ++ <&cpu3 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>; ++ }; ++ ++ map1 { ++ trip = <&cpu_hot>; ++ cooling-device = <&cpu0 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>, ++ <&cpu1 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>, ++ <&cpu2 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>, ++ <&cpu3 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>; ++ }; ++ }; ++ }; ++ }; ++ ++ usb_pwr: regulator-usb_pwr { ++ compatible = "regulator-fixed"; ++ regulator-name = "USB_PWR"; ++ regulator-min-microvolt = <5000000>; ++ regulator-max-microvolt = <5000000>; ++ vin-supply = <&vcc_5v>; ++ regulator-always-on; ++ ++ gpio = <&gpio_ao GPIOAO_5 GPIO_ACTIVE_HIGH>; ++ enable-active-high; ++ }; ++ ++ vcc_3v3: regulator-vcc_3v3 { ++ compatible = "regulator-fixed"; ++ regulator-name = "VCC_3V3"; ++ regulator-min-microvolt = <3300000>; ++ regulator-max-microvolt = <3300000>; ++ vin-supply = <&vddao_3v3>; ++ regulator-always-on; ++ }; ++ ++ vcc_5v: regulator-vcc_5v { ++ compatible = "regulator-fixed"; ++ regulator-name = "VCC5V"; ++ regulator-min-microvolt = <5000000>; ++ regulator-max-microvolt = <5000000>; ++ regulator-always-on; ++ }; ++ ++ vddao_3v3: regulator-vddao_3v3 { ++ compatible = "regulator-fixed"; ++ regulator-name = "VDDAO_3V3"; ++ regulator-min-microvolt = <3300000>; ++ regulator-max-microvolt = <3300000>; ++ vin-supply = <&vcc_5v>; ++ regulator-always-on; ++ }; ++ ++ vddio_ao18: regulator-vddio_ao18 { ++ compatible = "regulator-fixed"; ++ regulator-name = "VDDIO_AO18"; ++ regulator-min-microvolt = <1800000>; ++ regulator-max-microvolt = <1800000>; ++ vin-supply = <&vddao_3v3>; ++ regulator-always-on; ++ }; ++ ++ vddio_boot: regulator-vddio_boot { ++ compatible = "regulator-fixed"; ++ regulator-name = "VDDIO_BOOT"; ++ regulator-min-microvolt = <3300000>; ++ regulator-max-microvolt = <3300000>; ++ vin-supply = <&vddao_3v3>; ++ regulator-always-on; ++ }; ++ ++ vccq_1v8: regulator-vccq_1v8 { ++ compatible = "regulator-fixed"; ++ regulator-name = "VCCQ_1V8"; ++ regulator-min-microvolt = <1800000>; ++ regulator-max-microvolt = <1800000>; ++ vin-supply = <&vddao_3v3>; ++ regulator-always-on; ++ }; ++ ++ wifi32k: wifi32k { ++ compatible = "pwm-clock"; ++ #clock-cells = <0>; ++ clock-frequency = <32768>; ++ pwms = <&pwm_ab 0 30518 0>; /* PWM_A at 32.768KHz */ ++ }; ++}; ++ ++&cpu0 { ++ #cooling-cells = <2>; ++}; ++ ++&cpu1 { ++ #cooling-cells = <2>; ++}; ++ ++&cpu2 { ++ #cooling-cells = <2>; ++}; ++ ++&cpu3 { ++ #cooling-cells = <2>; ++}; ++ ++ðmac { ++ status = "okay"; ++ pinctrl-0 = <ð_rmii_x_pins>; ++ pinctrl-names = "default"; ++ phy-mode = "rmii"; ++}; ++ ++/* Peripheral I2C bus (on motherboard) */ ++&i2c_AO { ++ status = "okay"; ++ pinctrl-0 = <&i2c_ao_sck_10_pins>, <&i2c_ao_sda_11_pins>; ++ pinctrl-names = "default"; ++}; ++ ++&pwm_ab { ++ status = "okay"; ++ pinctrl-0 = <&pwm_a_x20_pins>; ++ pinctrl-names = "default"; ++}; ++ ++/* WiFi module */ ++&sd_emmc_b { ++ status = "okay"; ++ #address-cells = <1>; ++ #size-cells = <0>; ++ ++ pinctrl-0 = <&sdio_pins>; ++ pinctrl-1 = <&sdio_clk_gate_pins>; ++ pinctrl-names = "default", "clk-gate"; ++ ++ bus-width = <4>; ++ cap-sd-highspeed; ++ max-frequency = <50000000>; ++ disable-wp; ++ non-removable; ++ ++ mmc-pwrseq = <&sdio_pwrseq>; ++ ++ vmmc-supply = <&vddao_3v3>; ++ vqmmc-supply = <&vddio_boot>; ++}; ++ ++/* eMMC Storage */ ++&sd_emmc_c { ++ status = "okay"; ++ pinctrl-0 = <&emmc_pins>, <&emmc_ds_pins>; ++ pinctrl-1 = <&emmc_clk_gate_pins>; ++ pinctrl-names = "default", "clk-gate"; ++ ++ bus-width = <8>; ++ cap-mmc-highspeed; ++ max-frequency = <200000000>; ++ non-removable; ++ disable-wp; ++ mmc-ddr-1_8v; ++ mmc-hs200-1_8v; ++ ++ mmc-pwrseq = <&emmc_pwrseq>; ++ ++ vmmc-supply = <&vcc_3v3>; ++ vqmmc-supply = <&vccq_1v8>; ++}; ++ ++&spicc1 { ++ status = "okay"; ++ pinctrl-0 = <&spi1_x_pins>, <&spi1_ss0_x_pins>; ++ pinctrl-names = "default"; ++}; ++ ++/* UART Console */ ++&uart_AO { ++ status = "okay"; ++ pinctrl-0 = <&uart_ao_a_pins>; ++ pinctrl-names = "default"; ++}; ++ ++/* UART Wireless module */ ++&uart_AO_B { ++ status = "okay"; ++ pinctrl-0 = <&uart_ao_b_z_pins>; ++ pinctrl-names = "default"; ++ reset-gpios = <&gpio GPIOZ_6 GPIO_ACTIVE_HIGH>; ++}; ++ ++&usb { ++ status = "okay"; ++ vbus-supply = <&usb_pwr>; ++}; +-- +2.39.5 + +From ef5448afc8f03237dcc87741b241505769a8af42 Mon Sep 17 00:00:00 2001 +From: Patrick Yavitz +Date: Thu, 19 Sep 2024 17:47:20 -0400 +Subject: [PATCH] CONFIG_OF_UPSTREAM + +Compile upstream dt + +Signed-off-by: Patrick Yavitz +--- + configs/amper_gateway_am-gz80x_defconfig | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/configs/amper_gateway_am-gz80x_defconfig b/configs/amper_gateway_am-gz80x_defconfig +index 5991f66c29..d1d9749bdb 100644 +--- a/configs/amper_gateway_am-gz80x_defconfig ++++ b/configs/amper_gateway_am-gz80x_defconfig +@@ -1,3 +1,4 @@ ++CONFIG_OF_UPSTREAM=y + CONFIG_ARM=y + CONFIG_ARCH_MESON=y + CONFIG_TEXT_BASE=0x01000000 +-- +2.39.5 + diff --git a/patch/u-boot/v2025.01/board_gateway-gz80x/002-HACK-mmc-meson-gx-limit-to-24MHz.patch b/patch/u-boot/v2025.01/board_gateway-gz80x/002-HACK-mmc-meson-gx-limit-to-24MHz.patch new file mode 100644 index 0000000000..2d75c9be11 --- /dev/null +++ b/patch/u-boot/v2025.01/board_gateway-gz80x/002-HACK-mmc-meson-gx-limit-to-24MHz.patch @@ -0,0 +1,26 @@ +From b7a337d756d275f501ff8f7273b9527f52983183 Mon Sep 17 00:00:00 2001 +From: Neil Armstrong +Date: Thu, 6 Feb 2025 10:18:26 -0500 +Subject: [PATCH] HACK: mmc: meson-gx: limit to 24MHz + +Signed-off-by: Neil Armstrong +--- + drivers/mmc/meson_gx_mmc.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/drivers/mmc/meson_gx_mmc.c b/drivers/mmc/meson_gx_mmc.c +index 5852b24c6d2..818e8cf0a93 100644 +--- a/drivers/mmc/meson_gx_mmc.c ++++ b/drivers/mmc/meson_gx_mmc.c +@@ -278,7 +278,7 @@ static int meson_mmc_probe(struct udevice *dev) + cfg->host_caps = MMC_MODE_8BIT | MMC_MODE_4BIT | + MMC_MODE_HS_52MHz | MMC_MODE_HS; + cfg->f_min = DIV_ROUND_UP(SD_EMMC_CLKSRC_24M, CLK_MAX_DIV); +- cfg->f_max = 100000000; /* 100 MHz */ ++ cfg->f_max = SD_EMMC_CLKSRC_24M; + cfg->b_max = 511; /* max 512 - 1 blocks */ + cfg->name = dev->name; + +-- +2.39.5 + diff --git a/patch/u-boot/v2025.01/board_gateway-gz80x/003-mmc-meson-gx-change-clock-phase-value-on-axg-SoCs.patch b/patch/u-boot/v2025.01/board_gateway-gz80x/003-mmc-meson-gx-change-clock-phase-value-on-axg-SoCs.patch new file mode 100644 index 0000000000..d23368bb26 --- /dev/null +++ b/patch/u-boot/v2025.01/board_gateway-gz80x/003-mmc-meson-gx-change-clock-phase-value-on-axg-SoCs.patch @@ -0,0 +1,56 @@ +From c15acb64d820ccc9edada3817d4d6c56a34a63e8 Mon Sep 17 00:00:00 2001 +From: Vyacheslav Bocharov +Date: Thu, 6 Feb 2025 10:19:22 -0500 +Subject: [PATCH] mmc: meson-gx: change clock phase value on axg SoCs + +Amlogic AXG SoCs seems doesn't work over 50MHz. When phase sets to 270', +it's working fine over 50MHz on Amlogic AXG SoCs. +Based on 0dbb54eb3257c243c7968f967a6b183b1edb56c8 by Neil Armstrong + + +To distinguish which value is used adds an u-boot only axg compatible. + +Signed-off-by: Vyacheslav Bocharov +--- + drivers/mmc/meson_gx_mmc.c | 5 +++-- + drivers/mmc/meson_gx_mmc.h | 1 + + 2 files changed, 4 insertions(+), 2 deletions(-) + +diff --git a/drivers/mmc/meson_gx_mmc.c b/drivers/mmc/meson_gx_mmc.c +index 818e8cf0a93..74607b3201f 100644 +--- a/drivers/mmc/meson_gx_mmc.c ++++ b/drivers/mmc/meson_gx_mmc.c +@@ -67,7 +67,8 @@ static void meson_mmc_config_clock(struct mmc *mmc) + * Other SoCs use CLK_CO_PHASE_180 by default. + * It needs to find what is a proper value about each SoCs. + */ +- if (meson_gx_mmc_is_compatible(mmc->dev, MMC_COMPATIBLE_SM1)) ++ if (meson_gx_mmc_is_compatible(mmc->dev, MMC_COMPATIBLE_SM1) || ++ meson_gx_mmc_is_compatible(mmc->dev, MMC_COMPATIBLE_AXG)) + meson_mmc_clk |= CLK_CO_PHASE_270; + else + meson_mmc_clk |= CLK_CO_PHASE_180; +@@ -321,7 +322,7 @@ int meson_mmc_bind(struct udevice *dev) + + static const struct udevice_id meson_mmc_match[] = { + { .compatible = "amlogic,meson-gx-mmc", .data = MMC_COMPATIBLE_GX }, +- { .compatible = "amlogic,meson-axg-mmc", .data = MMC_COMPATIBLE_GX }, ++ { .compatible = "amlogic,meson-axg-mmc", .data = MMC_COMPATIBLE_AXG }, + { .compatible = "amlogic,meson-sm1-mmc", .data = MMC_COMPATIBLE_SM1 }, + { /* sentinel */ } + }; +diff --git a/drivers/mmc/meson_gx_mmc.h b/drivers/mmc/meson_gx_mmc.h +index 8974b78f559..53201ceddae 100644 +--- a/drivers/mmc/meson_gx_mmc.h ++++ b/drivers/mmc/meson_gx_mmc.h +@@ -12,6 +12,7 @@ + enum meson_gx_mmc_compatible { + MMC_COMPATIBLE_GX, + MMC_COMPATIBLE_SM1, ++ MMC_COMPATIBLE_AXG, + }; + + #define SDIO_PORT_A 0 +-- +2.39.5 + diff --git a/patch/u-boot/v2025.01/board_gateway-gz80x/004-HACK-meson64-boot-target-usb.patch b/patch/u-boot/v2025.01/board_gateway-gz80x/004-HACK-meson64-boot-target-usb.patch new file mode 100644 index 0000000000..b2551eac86 --- /dev/null +++ b/patch/u-boot/v2025.01/board_gateway-gz80x/004-HACK-meson64-boot-target-usb.patch @@ -0,0 +1,33 @@ +From 5f25b3fba1b7a36edf12033e922d4e95047e15cd Mon Sep 17 00:00:00 2001 +From: Patrick Yavitz +Date: Thu, 6 Feb 2025 10:21:13 -0500 +Subject: [PATCH] HACK: meson64 boot target usb + +By changing the USB boot order, it makes it possible +to recover the current install on the eMMC by booting +via USB. + +NOTE: There is no SD Card support. + +Signed-off-by: Patrick Yavitz +--- + include/configs/meson64.h | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/include/configs/meson64.h b/include/configs/meson64.h +index f3275b37a51..3ace59880bd 100644 +--- a/include/configs/meson64.h ++++ b/include/configs/meson64.h +@@ -119,8 +119,8 @@ + #define BOOT_TARGET_DEVICES(func) \ + func(ROMUSB, romusb, na) \ + func(USB_DFU, usbdfu, na) \ +- BOOT_TARGET_MMC(func) \ + BOOT_TARGET_DEVICES_USB(func) \ ++ BOOT_TARGET_MMC(func) \ + BOOT_TARGET_NVME(func) \ + BOOT_TARGET_SCSI(func) \ + BOOT_TARGET_PXE(func) \ +-- +2.39.5 +