From 2840ed1a64fab91f7b338c33ccc42394d1a36f1e Mon Sep 17 00:00:00 2001 From: Henrik Grimler Date: Sun, 21 Jun 2026 14:32:58 +0200 Subject: [PATCH] u-boot-samsung-i9100: update to 2026.07-rc4 And build from tag in exynos4-mainline/u-boot repo instead of carrying all the patches in pmaports. In this tag booting from emmc is supported, i.e. https://gitlab.postmarketos.org/postmarketOS/pmaports/-/work_items/3993 is fixed. As in previous tag i9100 is supported by modifying the board files for exynos4210-trats, quality is not good enough for sending upstream. Fixes: https://gitlab.postmarketos.org/postmarketOS/pmaports/-/work_items/3993 Part-of: --- ...onfigs-trats-update-values-for-i9100.patch | 68 --- ...t-most-of-board-samsung-trats-remove.patch | 408 ------------------ ...RGE-board-samsung-trats-enable-ldo17.patch | 26 -- ...4210-trats-i9100-fix-eMMC-and-sdcard.patch | 34 -- ...d-some-variables-necessary-for-extli.patch | 48 --- ...sable-BOOTCOMMAND-so-that-autoboot-c.patch | 35 -- ...0007-configs-trats-increase-env_size.patch | 27 -- ...ts-clk-enable-most-of-CLK_GATE_BLOCK.patch | 41 -- device/testing/u-boot-samsung-i9100/APKBUILD | 37 +- 9 files changed, 15 insertions(+), 709 deletions(-) delete mode 100644 device/testing/u-boot-samsung-i9100/0001-DONOTMERGE-configs-trats-update-values-for-i9100.patch delete mode 100644 device/testing/u-boot-samsung-i9100/0002-DONOTMERGE-Revert-most-of-board-samsung-trats-remove.patch delete mode 100644 device/testing/u-boot-samsung-i9100/0003-DONOTMERGE-board-samsung-trats-enable-ldo17.patch delete mode 100644 device/testing/u-boot-samsung-i9100/0004-ARM-dts-exynos4210-trats-i9100-fix-eMMC-and-sdcard.patch delete mode 100644 device/testing/u-boot-samsung-i9100/0005-configs-trats-add-some-variables-necessary-for-extli.patch delete mode 100644 device/testing/u-boot-samsung-i9100/0006-configs-trats-disable-BOOTCOMMAND-so-that-autoboot-c.patch delete mode 100644 device/testing/u-boot-samsung-i9100/0007-configs-trats-increase-env_size.patch delete mode 100644 device/testing/u-boot-samsung-i9100/0008-trats-clk-enable-most-of-CLK_GATE_BLOCK.patch diff --git a/device/testing/u-boot-samsung-i9100/0001-DONOTMERGE-configs-trats-update-values-for-i9100.patch b/device/testing/u-boot-samsung-i9100/0001-DONOTMERGE-configs-trats-update-values-for-i9100.patch deleted file mode 100644 index 3d6d5940f..000000000 --- a/device/testing/u-boot-samsung-i9100/0001-DONOTMERGE-configs-trats-update-values-for-i9100.patch +++ /dev/null @@ -1,68 +0,0 @@ -From 2543814609a0d9efb607809292e59e12fd05955b Mon Sep 17 00:00:00 2001 -From: Henrik Grimler -Date: Sun, 29 Sep 2024 13:44:10 +0200 -Subject: [PATCH] DONOTMERGE: configs: trats: update values for i9100 - -i9100 is similar to trats, but needs a different load address. Also -add some convenient commands while we are at it, and -disable (non-working) usb stuff. ---- - configs/trats_defconfig | 17 ++++++----------- - 1 file changed, 6 insertions(+), 11 deletions(-) - -diff --git a/configs/trats_defconfig b/configs/trats_defconfig -index 70f7e06ba9c8..486b91137615 100644 ---- a/configs/trats_defconfig -+++ b/configs/trats_defconfig -@@ -3,7 +3,7 @@ CONFIG_SKIP_LOWLEVEL_INIT=y - CONFIG_ARCH_CPU_INIT=y - CONFIG_SYS_L2CACHE_OFF=y - CONFIG_ARCH_EXYNOS=y --CONFIG_TEXT_BASE=0x63300000 -+CONFIG_TEXT_BASE=0x40008000 - CONFIG_SYS_MALLOC_LEN=0x5001000 - CONFIG_SYS_MALLOC_F_LEN=0x400 - CONFIG_ARCH_EXYNOS4=y -@@ -15,7 +15,7 @@ CONFIG_ENV_SIZE=0x1000 - CONFIG_ENV_OFFSET=0x7000 - CONFIG_DEFAULT_DEVICE_TREE="exynos4210-trats" - CONFIG_SYS_MONITOR_LEN=262144 --CONFIG_SYS_LOAD_ADDR=0x44800000 -+CONFIG_SYS_LOAD_ADDR=0x4ee00000 - CONFIG_SYS_MEM_TOP_HIDE=0x100000 - CONFIG_FIT=y - CONFIG_FIT_VERBOSE=y -@@ -29,14 +29,16 @@ CONFIG_SYS_CONSOLE_INFO_QUIET=y - CONFIG_MISC_INIT_R=y - CONFIG_SYS_PROMPT="Trats # " - # CONFIG_CMD_XIMG is not set --CONFIG_CMD_THOR_DOWNLOAD=y -+CONFIG_CMD_BIND=y -+CONFIG_CMD_CLK=y - CONFIG_CMD_DFU=y -+CONFIG_CMD_GPIO=y - CONFIG_CMD_GPT=y - CONFIG_CMD_I2C=y - CONFIG_CMD_MMC=y --CONFIG_CMD_USB_MASS_STORAGE=y - CONFIG_CMD_CACHE=y - # CONFIG_CMD_SLEEP is not set -+CONFIG_CMD_PMIC=y - CONFIG_CMD_EXT4_WRITE=y - CONFIG_OF_CONTROL=y - CONFIG_ENV_OVERWRITE=y -@@ -54,11 +56,4 @@ CONFIG_MMC_SDHCI_S5P=y - CONFIG_DM_PMIC=y - CONFIG_PMIC_MAX8997=y - CONFIG_USB=y --CONFIG_USB_GADGET=y --CONFIG_USB_GADGET_MANUFACTURER="Samsung" --CONFIG_USB_GADGET_VENDOR_NUM=0x04e8 --CONFIG_USB_GADGET_PRODUCT_NUM=0x6601 --CONFIG_USB_GADGET_DWC2_OTG=y --CONFIG_USB_GADGET_DWC2_OTG_PHY=y --CONFIG_USB_GADGET_DOWNLOAD=y - CONFIG_LIB_HW_RAND=y --- -2.50.1 - diff --git a/device/testing/u-boot-samsung-i9100/0002-DONOTMERGE-Revert-most-of-board-samsung-trats-remove.patch b/device/testing/u-boot-samsung-i9100/0002-DONOTMERGE-Revert-most-of-board-samsung-trats-remove.patch deleted file mode 100644 index e9539e34a..000000000 --- a/device/testing/u-boot-samsung-i9100/0002-DONOTMERGE-Revert-most-of-board-samsung-trats-remove.patch +++ /dev/null @@ -1,408 +0,0 @@ -From 06e3b3e24dc1b68ac7e988d0dd28cd0967b31fce Mon Sep 17 00:00:00 2001 -From: Henrik Grimler -Date: Sun, 29 Sep 2024 13:54:07 +0200 -Subject: [PATCH] DONOTMERGE: Revert most of "board: samsung: trats: remove the - unnecessary codes" - -This reverts commit 5dfbd7bad8b3db6034e6bdcb449f08ec848e64fd. - -All these setup values should be properly handled by a pinctrl driver -instead. ---- - board/samsung/trats/trats.c | 314 +++++++++++++++++++++--------------- - 1 file changed, 182 insertions(+), 132 deletions(-) - -diff --git a/board/samsung/trats/trats.c b/board/samsung/trats/trats.c -index 6efc6f3831df..3d4981b7b990 100644 ---- a/board/samsung/trats/trats.c -+++ b/board/samsung/trats/trats.c -@@ -41,131 +41,188 @@ u32 get_board_rev(void) - - struct dwc2_plat_otg_data s5pc210_otg_data; - --#if !CONFIG_IS_ENABLED(DM_I2C) /* TODO(maintainer): Convert to driver model */ --static void trats_low_power_mode(void) -+unsigned char max8997_reg_ldo(int uV) - { -- struct exynos4_clock *clk = -- (struct exynos4_clock *)samsung_get_base_clock(); -- struct exynos4_power *pwr = -- (struct exynos4_power *)samsung_get_base_power(); -- -- /* Power down CORE1 */ -- /* LOCAL_PWR_CFG [1:0] 0x3 EN, 0x0 DIS */ -- writel(0x0, &pwr->arm_core1_configuration); -- -- /* Change the APLL frequency */ -- /* ENABLE (1 enable) | LOCKED (1 locked) */ -- /* [31] | [29] */ -- /* FSEL | MDIV | PDIV | SDIV */ -- /* [27] | [25:16] | [13:8] | [2:0] */ -- writel(0xa0c80604, &clk->apll_con0); -- -- /* Change CPU0 clock divider */ -- /* CORE2_RATIO | APLL_RATIO | PCLK_DBG_RATIO | ATB_RATIO */ -- /* [30:28] | [26:24] | [22:20] | [18:16] */ -- /* PERIPH_RATIO | COREM1_RATIO | COREM0_RATIO | CORE_RATIO */ -- /* [14:12] | [10:8] | [6:4] | [2:0] */ -- writel(0x00000100, &clk->div_cpu0); -- -- /* CLK_DIV_STAT_CPU0 - wait until clock gets stable (0 = stable) */ -- while (readl(&clk->div_stat_cpu0) & 0x1111111) -- continue; -- -- /* Change clock divider ratio for DMC */ -- /* DMCP_RATIO | DMCD_RATIO */ -- /* [22:20] | [18:16] */ -- /* DMC_RATIO | DPHY_RATIO | ACP_PCLK_RATIO | ACP_RATIO */ -- /* [14:12] | [10:8] | [6:4] | [2:0] */ -- writel(0x13113117, &clk->div_dmc0); -- -- /* CLK_DIV_STAT_DMC0 - wait until clock gets stable (0 = stable) */ -- while (readl(&clk->div_stat_dmc0) & 0x11111111) -- continue; -- -- /* Turn off unnecessary power domains */ -- writel(0x0, &pwr->xxti_configuration); /* XXTI */ -- writel(0x0, &pwr->cam_configuration); /* CAM */ -- writel(0x0, &pwr->tv_configuration); /* TV */ -- writel(0x0, &pwr->mfc_configuration); /* MFC */ -- writel(0x0, &pwr->g3d_configuration); /* G3D */ -- writel(0x0, &pwr->gps_configuration); /* GPS */ -- writel(0x0, &pwr->gps_alive_configuration); /* GPS_ALIVE */ -- -- /* Turn off unnecessary clocks */ -- writel(0x0, &clk->gate_ip_cam); /* CAM */ -- writel(0x0, &clk->gate_ip_tv); /* TV */ -- writel(0x0, &clk->gate_ip_mfc); /* MFC */ -- writel(0x0, &clk->gate_ip_g3d); /* G3D */ -- writel(0x0, &clk->gate_ip_image); /* IMAGE */ -- writel(0x0, &clk->gate_ip_gps); /* GPS */ -+ unsigned char ret; -+ if (uV <= 800000) -+ return 0; -+ if (uV >= 3950000) -+ return MAX8997_LDO_MAX_VAL; -+ ret = (uV - 800000) / 50000; -+ if (ret > MAX8997_LDO_MAX_VAL) { -+ printf("MAX8997 LDO SETTING ERROR (%duV) -> %u\n", uV, ret); -+ ret = MAX8997_LDO_MAX_VAL; -+ } -+ -+ return ret; - } --#endif - --int exynos_power_init(void) -+static int pmic_init_max8997(void) - { --#if !CONFIG_IS_ENABLED(DM_I2C) /* TODO(maintainer): Convert to driver model */ -- int chrg, ret; -- struct power_battery *pb; -- struct pmic *p_fg, *p_chrg, *p_muic, *p_bat; -+ printf("%s\n", __func__); -+ struct udevice *dev; -+ int i = 0, ret = 0; -+ u32 val; - -- /* -- * For PMIC/MUIC the I2C bus is named as I2C5, but it is connected -- * to logical I2C adapter 0 -- * -- * The FUEL_GAUGE is marked as I2C9 on the schematic, but connected -- * to logical I2C adapter 1 -- */ -- ret = power_fg_init(I2C_9); -- ret |= power_muic_init(I2C_5); -- ret |= power_bat_init(0); -+ ret = pmic_get("max8997-pmic@66", &dev); - if (ret) - return ret; - -- p_fg = pmic_get("MAX17042_FG"); -- if (!p_fg) { -- puts("MAX17042_FG: Not found\n"); -- return -ENODEV; -- } -+ /* BUCK1 VARM: 1.2V */ -+ val = (1200000 - 650000) / 25000; -+ ret |= pmic_reg_write(dev, MAX8997_REG_BUCK1DVS1, val); -+ val = ENBUCK | ACTIVE_DISCHARGE; /* DVS OFF */ -+ ret |= pmic_reg_write(dev, MAX8997_REG_BUCK1CTRL, val); - -- p_chrg = pmic_get("MAX8997_PMIC"); -- if (!p_chrg) { -- puts("MAX8997_PMIC: Not found\n"); -- return -ENODEV; -- } -+ /* BUCK2 VINT: 1.1V */ -+ val = (1100000 - 650000) / 25000; -+ ret |= pmic_reg_write(dev, MAX8997_REG_BUCK2DVS1, val); -+ val = ENBUCK | ACTIVE_DISCHARGE; /* DVS OFF */ -+ ret |= pmic_reg_write(dev, MAX8997_REG_BUCK2CTRL, val); - -- p_muic = pmic_get("MAX8997_MUIC"); -- if (!p_muic) { -- puts("MAX8997_MUIC: Not found\n"); -- return -ENODEV; -- } - -- p_bat = pmic_get("BAT_TRATS"); -- if (!p_bat) { -- puts("BAT_TRATS: Not found\n"); -- return -ENODEV; -- } -+ /* BUCK3 G3D: 1.1V - OFF */ -+ val |= pmic_reg_read(dev, MAX8997_REG_BUCK3CTRL); -+ val &= ~ENBUCK; -+ ret |= pmic_reg_write(dev, MAX8997_REG_BUCK3CTRL, val); - -- p_fg->parent = p_bat; -- p_chrg->parent = p_bat; -- p_muic->parent = p_bat; -+ val = (1100000 - 750000) / 50000; -+ ret |= pmic_reg_write(dev, MAX8997_REG_BUCK3DVS, val); - -- p_bat->low_power_mode = trats_low_power_mode; -- p_bat->pbat->battery_init(p_bat, p_fg, p_chrg, p_muic); -+ /* BUCK4 CAMISP: 1.2V - OFF */ -+ val |= pmic_reg_read(dev, MAX8997_REG_BUCK4CTRL); -+ val &= ~ENBUCK; -+ ret |= pmic_reg_write(dev, MAX8997_REG_BUCK4CTRL, val); - -- pb = p_bat->pbat; -- chrg = p_muic->chrg->chrg_type(p_muic); -- debug("CHARGER TYPE: %d\n", chrg); -+ val = (1200000 - 650000) / 25000; -+ ret |= pmic_reg_write(dev, MAX8997_REG_BUCK4DVS, val); - -- if (!p_chrg->chrg->chrg_bat_present(p_chrg)) { -- puts("No battery detected\n"); -- return 0; -+ /* BUCK5 VMEM: 1.2V */ -+ val = (1200000 - 650000) / 25000; -+ for (i = 0; i < 8; i++) -+ ret |= pmic_reg_write(dev, MAX8997_REG_BUCK5DVS1 + i, val); -+ -+ val = ENBUCK | ACTIVE_DISCHARGE; /* DVS OFF */ -+ ret |= pmic_reg_write(dev, MAX8997_REG_BUCK5CTRL, val); -+ -+ /* BUCK6 CAM AF: 2.8V */ -+ /* No Voltage Setting Register */ -+ /* GNSLCT 3.0X */ -+ val = GNSLCT; -+ ret |= pmic_reg_write(dev, MAX8997_REG_BUCK6CTRL, val); -+ -+ /* BUCK7 VCC_SUB: 2.0V */ -+ val = (2000000 - 750000) / 50000; -+ ret |= pmic_reg_write(dev, MAX8997_REG_BUCK7DVS, val); -+ -+ /* LDO1 VADC: 3.3V */ -+ val = max8997_reg_ldo(3300000) | DIS_LDO; /* OFF */ -+ ret |= pmic_reg_write(dev, MAX8997_REG_LDO1CTRL, val); -+ -+ /* LDO1 Disable active discharging */ -+ val |= pmic_reg_read(dev, MAX8997_REG_LDO1CONFIG); -+ val &= ~LDO_ADE; -+ ret |= pmic_reg_write(dev, MAX8997_REG_LDO1CONFIG, val); -+ -+ /* LDO2 VALIVE: 1.1V */ -+ val = max8997_reg_ldo(1100000) | EN_LDO; -+ ret |= pmic_reg_write(dev, MAX8997_REG_LDO2CTRL, val); -+ -+ /* LDO3 VUSB/MIPI: 1.1V */ -+ val = max8997_reg_ldo(1100000) | DIS_LDO; /* OFF */ -+ ret |= pmic_reg_write(dev, MAX8997_REG_LDO3CTRL, val); -+ -+ /* LDO4 VMIPI: 1.8V */ -+ val = max8997_reg_ldo(1800000) | DIS_LDO; /* OFF */ -+ ret |= pmic_reg_write(dev, MAX8997_REG_LDO4CTRL, val); -+ -+ /* LDO5 VHSIC: 1.2V */ -+ val = max8997_reg_ldo(1200000) | DIS_LDO; /* OFF */ -+ ret |= pmic_reg_write(dev, MAX8997_REG_LDO5CTRL, val); -+ -+ /* LDO6 VCC_1.8V_PDA: 1.8V */ -+ val = max8997_reg_ldo(1800000) | EN_LDO; -+ ret |= pmic_reg_write(dev, MAX8997_REG_LDO6CTRL, val); -+ -+ /* LDO7 CAM_ISP: 1.8V */ -+ val = max8997_reg_ldo(1800000) | DIS_LDO; /* OFF */ -+ ret |= pmic_reg_write(dev, MAX8997_REG_LDO7CTRL, val); -+ -+ /* LDO8 VDAC/VUSB: 3.3V */ -+ val = max8997_reg_ldo(3300000) | DIS_LDO; /* OFF */ -+ ret |= pmic_reg_write(dev, MAX8997_REG_LDO8CTRL, val); -+ -+ /* LDO9 VCC_2.8V_PDA: 2.8V */ -+ val = max8997_reg_ldo(2800000) | EN_LDO; -+ ret |= pmic_reg_write(dev, MAX8997_REG_LDO9CTRL, val); -+ -+ /* LDO10 VPLL: 1.1V */ -+ val = max8997_reg_ldo(1100000) | EN_LDO; -+ ret |= pmic_reg_write(dev, MAX8997_REG_LDO10CTRL, val); -+ -+ /* LDO11 TOUCH: 2.8V */ -+ val = max8997_reg_ldo(2800000) | DIS_LDO; /* OFF */ -+ ret |= pmic_reg_write(dev, MAX8997_REG_LDO11CTRL, val); -+ -+ /* LDO12 VTCAM: 1.8V */ -+ val = max8997_reg_ldo(1800000) | DIS_LDO; /* OFF */ -+ ret |= pmic_reg_write(dev, MAX8997_REG_LDO12CTRL, val); -+ -+ /* LDO13 VCC_3.0_LCD: 3.0V */ -+ val = max8997_reg_ldo(3000000) | DIS_LDO; /* OFF */ -+ ret |= pmic_reg_write(dev, MAX8997_REG_LDO13CTRL, val); -+ -+ /* LDO14 MOTOR: 3.0V */ -+ val = max8997_reg_ldo(3000000) | DIS_LDO; /* OFF */ -+ ret |= pmic_reg_write(dev, MAX8997_REG_LDO14CTRL, val); -+ -+ /* LDO15 LED_A: 2.8V */ -+ val = max8997_reg_ldo(2800000) | DIS_LDO; /* OFF */ -+ ret |= pmic_reg_write(dev, MAX8997_REG_LDO15CTRL, val); -+ -+ /* LDO16 CAM_SENSOR: 1.8V */ -+ val = max8997_reg_ldo(1800000) | DIS_LDO; /* OFF */ -+ ret |= pmic_reg_write(dev, MAX8997_REG_LDO16CTRL, val); -+ -+ /* LDO17 VTF: 2.8V */ -+ val = max8997_reg_ldo(2800000) | DIS_LDO; /* OFF */ -+ ret |= pmic_reg_write(dev, MAX8997_REG_LDO17CTRL, val); -+ -+ /* LDO18 TOUCH_LED 3.3V */ -+ val = max8997_reg_ldo(3300000) | DIS_LDO; /* OFF */ -+ ret |= pmic_reg_write(dev, MAX8997_REG_LDO18CTRL, val); -+ -+ /* LDO21 VDDQ: 1.2V */ -+ val = max8997_reg_ldo(1200000) | EN_LDO; -+ ret |= pmic_reg_write(dev, MAX8997_REG_LDO21CTRL, val); -+ -+ /* SAFEOUT for both 1 and 2: 4.9V, Active discharge, Enable */ -+ val = (SAFEOUT_4_90V << 0) | (SAFEOUT_4_90V << 2) | -+ ACTDISSAFEO1 | ACTDISSAFEO2 | ENSAFEOUT1 | ENSAFEOUT2; -+ ret |= pmic_reg_write(dev, MAX8997_REG_SAFEOUTCTRL, val); -+ -+ if (ret) { -+ puts("MAX8997 PMIC setting error!\n"); -+ return -1; - } - -- p_fg->fg->fg_battery_check(p_fg, p_bat); -+ return 0; -+} - -- if (pb->bat->state == CHARGE && chrg == CHARGER_USB) -- puts("CHARGE Battery !\n"); --#endif -+int exynos_power_init(void) -+{ -+ int ret; -+ -+ /* -+ * For PMIC/MUIC the I2C bus is named as I2C5, but it is connected -+ * to logical I2C adapter 0 -+ * -+ * The FUEL_GAUGE is marked as I2C9 on the schematic, but connected -+ * to logical I2C adapter 1 -+ */ -+ ret = pmic_init_max8997(); -+ if (ret) -+ return ret; - - return 0; - } -@@ -217,7 +274,7 @@ static int s5pc210_phy_control(int on) - struct udevice *dev; - int reg, ret; - -- ret = pmic_get("max8997-pmic", &dev); -+ ret = pmic_get("max8997-pmic@66", &dev); - if (ret) - return ret; - -@@ -287,15 +344,14 @@ int board_usb_init(int index, enum usb_init_type init) - - int g_dnl_board_usb_cable_connected(void) - { --#if !CONFIG_IS_ENABLED(DM_I2C) /* TODO(maintainer): Convert to driver model */ -- struct pmic *muic = pmic_get("MAX8997_MUIC"); -- if (!muic) -+ struct udevice *dev; -+ int ret; -+ -+ ret = pmic_get("max8997-pmic@66", &dev); -+ if (ret) - return 0; - - return !!muic->chrg->chrg_type(muic); --#else -- return false; --#endif - - } - #endif -@@ -399,48 +455,42 @@ int exynos_early_init_f(void) - - int lcd_power(void) - { --#if !CONFIG_IS_ENABLED(DM_I2C) /* TODO(maintainer): Convert to driver model */ -+ struct udevice *dev; - int ret = 0; -- struct pmic *p = pmic_get("MAX8997_PMIC"); -- if (!p) -- return -ENODEV; - -- if (pmic_probe(p)) -- return 0; -+ ret = pmic_get("max8997-pmic@66", &dev); -+ if (ret) -+ return -ENODEV; - - /* LDO15 voltage: 2.2v */ -- ret |= pmic_reg_write(p, MAX8997_REG_LDO15CTRL, 0x1c | EN_LDO); -+ ret |= pmic_reg_write(dev, MAX8997_REG_LDO15CTRL, 0x1c | EN_LDO); - /* LDO13 voltage: 3.0v */ -- ret |= pmic_reg_write(p, MAX8997_REG_LDO13CTRL, 0x2c | EN_LDO); -+ ret |= pmic_reg_write(dev, MAX8997_REG_LDO13CTRL, 0x2c | EN_LDO); - - if (ret) { - puts("MAX8997 LDO setting error!\n"); - return -1; - } --#endif - return 0; - } - - int mipi_power(void) - { --#if !CONFIG_IS_ENABLED(DM_I2C) /* TODO(maintainer): Convert to driver model */ -+ struct udevice *dev; - int ret = 0; -- struct pmic *p = pmic_get("MAX8997_PMIC"); -- if (!p) -- return -ENODEV; - -- if (pmic_probe(p)) -- return 0; -+ ret = pmic_get("max8997-pmic@66", &dev); -+ if (ret) -+ return -ENODEV; - - /* LDO3 voltage: 1.1v */ -- ret |= pmic_reg_write(p, MAX8997_REG_LDO3CTRL, 0x6 | EN_LDO); -+ ret |= pmic_reg_write(dev, MAX8997_REG_LDO3CTRL, 0x6 | EN_LDO); - /* LDO4 voltage: 1.8v */ -- ret |= pmic_reg_write(p, MAX8997_REG_LDO4CTRL, 0x14 | EN_LDO); -+ ret |= pmic_reg_write(dev, MAX8997_REG_LDO4CTRL, 0x14 | EN_LDO); - - if (ret) { - puts("MAX8997 LDO setting error!\n"); - return -1; - } --#endif - return 0; - } --- -2.50.1 - diff --git a/device/testing/u-boot-samsung-i9100/0003-DONOTMERGE-board-samsung-trats-enable-ldo17.patch b/device/testing/u-boot-samsung-i9100/0003-DONOTMERGE-board-samsung-trats-enable-ldo17.patch deleted file mode 100644 index d8bd1ce00..000000000 --- a/device/testing/u-boot-samsung-i9100/0003-DONOTMERGE-board-samsung-trats-enable-ldo17.patch +++ /dev/null @@ -1,26 +0,0 @@ -From 394d82bf51c8856f80071c1ba45fb97d9e0270f9 Mon Sep 17 00:00:00 2001 -From: Henrik Grimler -Date: Sat, 26 Jul 2025 21:28:25 +0200 -Subject: [PATCH] DONOTMERGE: board: samsung: trats: enable ldo17 - -Or else reading from sdcards cannot work on i9100. ---- - board/samsung/trats/trats.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/board/samsung/trats/trats.c b/board/samsung/trats/trats.c -index 3d4981b7b990..33bf8be8a0e9 100644 ---- a/board/samsung/trats/trats.c -+++ b/board/samsung/trats/trats.c -@@ -185,7 +185,7 @@ static int pmic_init_max8997(void) - ret |= pmic_reg_write(dev, MAX8997_REG_LDO16CTRL, val); - - /* LDO17 VTF: 2.8V */ -- val = max8997_reg_ldo(2800000) | DIS_LDO; /* OFF */ -+ val = max8997_reg_ldo(2800000) | EN_LDO; - ret |= pmic_reg_write(dev, MAX8997_REG_LDO17CTRL, val); - - /* LDO18 TOUCH_LED 3.3V */ --- -2.50.1 - diff --git a/device/testing/u-boot-samsung-i9100/0004-ARM-dts-exynos4210-trats-i9100-fix-eMMC-and-sdcard.patch b/device/testing/u-boot-samsung-i9100/0004-ARM-dts-exynos4210-trats-i9100-fix-eMMC-and-sdcard.patch deleted file mode 100644 index 20d0cf092..000000000 --- a/device/testing/u-boot-samsung-i9100/0004-ARM-dts-exynos4210-trats-i9100-fix-eMMC-and-sdcard.patch +++ /dev/null @@ -1,34 +0,0 @@ -From 44dac4d2cbaadc2e03e825a223fef741e95b33f2 Mon Sep 17 00:00:00 2001 -From: Henrik Grimler -Date: Sat, 26 Jul 2025 21:33:21 +0200 -Subject: [PATCH] ARM: dts: exynos4210-trats (i9100): fix eMMC and sdcard - -sdhci0 is non-removable (eMMC) on i9100, and sdhci2 should be -ACTIVE_LOW to match linux kernel. ---- - arch/arm/dts/exynos4210-trats.dts | 3 ++- - 1 file changed, 2 insertions(+), 1 deletion(-) - -diff --git a/arch/arm/dts/exynos4210-trats.dts b/arch/arm/dts/exynos4210-trats.dts -index 88e9c0ed2bb0..57fd8ecae3f6 100644 ---- a/arch/arm/dts/exynos4210-trats.dts -+++ b/arch/arm/dts/exynos4210-trats.dts -@@ -240,6 +240,7 @@ - }; - - &sdhci0 { -+ non-removable; - bus-width = <8>; - pwr-gpios = <&gpk0 2 0>; - status = "okay"; -@@ -247,6 +248,6 @@ - - &sdhci2 { - bus-width = <4>; -- cd-gpios = <&gpx3 4 0>; -+ cd-gpios = <&gpx3 4 1>; - status = "okay"; - }; --- -2.50.1 - diff --git a/device/testing/u-boot-samsung-i9100/0005-configs-trats-add-some-variables-necessary-for-extli.patch b/device/testing/u-boot-samsung-i9100/0005-configs-trats-add-some-variables-necessary-for-extli.patch deleted file mode 100644 index 3cf21b760..000000000 --- a/device/testing/u-boot-samsung-i9100/0005-configs-trats-add-some-variables-necessary-for-extli.patch +++ /dev/null @@ -1,48 +0,0 @@ -From b13641ae44d93c7dc2dd658ab3a81a1beba1fe35 Mon Sep 17 00:00:00 2001 -From: Henrik Grimler -Date: Sun, 27 Jul 2025 10:33:30 +0200 -Subject: [PATCH] configs: trats: add some variables necessary for extlinux - boot - -With these changes we can successfully boot linux through -extlinux. All of the added variables are likely not needed, but I am -too lazy to check each one. ---- - include/configs/trats.h | 14 ++++++++++++++ - 1 file changed, 14 insertions(+) - -diff --git a/include/configs/trats.h b/include/configs/trats.h -index 2067327918a2..c2ff8a71c3be 100644 ---- a/include/configs/trats.h -+++ b/include/configs/trats.h -@@ -10,6 +10,10 @@ - #define __CONFIG_TRATS_H - - #include -+#define BOOT_TARGET_DEVICES(func) \ -+ func(MMC, mmc, 1) \ -+ func(MMC, mmc, 0) -+#include - - #ifndef CONFIG_SYS_L2CACHE_OFF - #define CFG_SYS_PL310_BASE 0x10502000 -@@ -55,6 +59,16 @@ - "/Image.itb ext4 0 2\0" - - #define CFG_EXTRA_ENV_SETTINGS \ -+ "kernel_addr_r=0x42000000\0" \ -+ "kerneladdr=0x42000000\0" \ -+ "fdt_addr_r=0x44000000\0" \ -+ "fdtaddr=0x44000000\0" \ -+ "scriptaddr=0x43000000\0" \ -+ "pxefile_addr_r=0x45000000\0" \ -+ "initrd_high=0x46000000\0" \ -+ "ramdisk_addr_r=0x46000000\0" \ -+ "initrdaddr=0x46000000\0" \ -+ BOOTENV \ - "bootk=" \ - "run loaduimage;" \ - "if run loaddtb; then " \ --- -2.50.1 - diff --git a/device/testing/u-boot-samsung-i9100/0006-configs-trats-disable-BOOTCOMMAND-so-that-autoboot-c.patch b/device/testing/u-boot-samsung-i9100/0006-configs-trats-disable-BOOTCOMMAND-so-that-autoboot-c.patch deleted file mode 100644 index 18d0303ec..000000000 --- a/device/testing/u-boot-samsung-i9100/0006-configs-trats-disable-BOOTCOMMAND-so-that-autoboot-c.patch +++ /dev/null @@ -1,35 +0,0 @@ -From 33fe50f03c35fe49a4564a7772aab62a82d95d4f Mon Sep 17 00:00:00 2001 -From: Henrik Grimler -Date: Sat, 9 Aug 2025 07:30:48 +0200 -Subject: [PATCH] configs: trats: disable BOOTCOMMAND so that autoboot can work - -BOOTCOMMAND was set to `run autoboot`, which does not work. Unset the -variable so that it runs `run distro_bootcmd` instead, which does -work. Also re-generate config while at it. ---- - configs/trats_defconfig | 2 -- - 1 file changed, 2 deletions(-) - -diff --git a/configs/trats_defconfig b/configs/trats_defconfig -index 486b91137615..f2d3908f6bc4 100644 ---- a/configs/trats_defconfig -+++ b/configs/trats_defconfig -@@ -22,7 +22,6 @@ CONFIG_FIT_VERBOSE=y - CONFIG_DISTRO_DEFAULTS=y - CONFIG_USE_BOOTARGS=y - CONFIG_BOOTARGS="Please use defined boot" --CONFIG_BOOTCOMMAND="run autoboot" - CONFIG_SYS_PBSIZE=1024 - CONFIG_SYS_CONSOLE_IS_IN_ENV=y - CONFIG_SYS_CONSOLE_INFO_QUIET=y -@@ -30,7 +29,6 @@ CONFIG_MISC_INIT_R=y - CONFIG_SYS_PROMPT="Trats # " - # CONFIG_CMD_XIMG is not set - CONFIG_CMD_BIND=y --CONFIG_CMD_CLK=y - CONFIG_CMD_DFU=y - CONFIG_CMD_GPIO=y - CONFIG_CMD_GPT=y --- -2.50.1 - diff --git a/device/testing/u-boot-samsung-i9100/0007-configs-trats-increase-env_size.patch b/device/testing/u-boot-samsung-i9100/0007-configs-trats-increase-env_size.patch deleted file mode 100644 index 2fd01a7e8..000000000 --- a/device/testing/u-boot-samsung-i9100/0007-configs-trats-increase-env_size.patch +++ /dev/null @@ -1,27 +0,0 @@ -From 8004f0f13eb584a41e0e6b63f97cde84d22d74e5 Mon Sep 17 00:00:00 2001 -From: Henrik Grimler -Date: Sat, 9 Aug 2025 07:35:47 +0200 -Subject: [PATCH] configs: trats: increase env_size - -With 0x1000 it is too small after we pull in config_distro_bootcmd.h -and its environment. ---- - configs/trats_defconfig | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/configs/trats_defconfig b/configs/trats_defconfig -index f2d3908f6bc4..5f240b49dbc2 100644 ---- a/configs/trats_defconfig -+++ b/configs/trats_defconfig -@@ -11,7 +11,7 @@ CONFIG_TARGET_TRATS=y - CONFIG_EXYNOS_ACE_SHA=y - CONFIG_HAS_CUSTOM_SYS_INIT_SP_ADDR=y - CONFIG_CUSTOM_SYS_INIT_SP_ADDR=0x447fff10 --CONFIG_ENV_SIZE=0x1000 -+CONFIG_ENV_SIZE=0x2000 - CONFIG_ENV_OFFSET=0x7000 - CONFIG_DEFAULT_DEVICE_TREE="exynos4210-trats" - CONFIG_SYS_MONITOR_LEN=262144 --- -2.50.1 - diff --git a/device/testing/u-boot-samsung-i9100/0008-trats-clk-enable-most-of-CLK_GATE_BLOCK.patch b/device/testing/u-boot-samsung-i9100/0008-trats-clk-enable-most-of-CLK_GATE_BLOCK.patch deleted file mode 100644 index ba3763bd1..000000000 --- a/device/testing/u-boot-samsung-i9100/0008-trats-clk-enable-most-of-CLK_GATE_BLOCK.patch +++ /dev/null @@ -1,41 +0,0 @@ -From 0edf0a40522c7918724db6bc777f35999c013be1 Mon Sep 17 00:00:00 2001 -From: Henrik Grimler -Date: Sun, 10 Aug 2025 08:30:07 +0200 -Subject: [PATCH] trats: clk: enable most of CLK_GATE_BLOCK - -Without these individual bits linux hangs when initialising different -nodes, specifically when reading clk values. - -BIT_BLOCK_CLK_LCD0 is needed for mdma1 (dma-controller@12850000). -BIT_BLOCK_CLK_MFC is needed for mfc_l (sysmmu@13620000). -BIT_BLOCK_CLK_TV is needed for sysmmu_tv (sysmmu@12e20000). -BIT_BLOCK_CLK_CAM is needed for sysmmu_fimc0 (sysmmu@11a20000). -BIT_BLOCK_CLK_LCD1 is needed for sysmmu_fimd1 (sysmmu@12220000). -BIT_BLOCK_CLK_G3D is needed by touchscreen, without it linux hangs -after ~35 s when setting up touchscreen. ---- - board/samsung/trats/setup.h | 8 +++++++- - 1 file changed, 7 insertions(+), 1 deletion(-) - -diff --git a/board/samsung/trats/setup.h b/board/samsung/trats/setup.h -index 739bdf95f8c6..744c4b900e60 100644 ---- a/board/samsung/trats/setup.h -+++ b/board/samsung/trats/setup.h -@@ -609,7 +609,13 @@ - | (CLK_EN << BIT_PERIL_CLK_SLIMBUS))) - #define CLK_GATE_IP_PERIR_VAL (CLK_GATE_IP_PERIR_ALL_DIS \ - | ~((CLK_EN << BIT_PERIR_CLK_KEYIF))) --#define CLK_GATE_BLOCK_VAL CLK_GATE_BLOCK_ALL_DIS -+#define CLK_GATE_BLOCK_VAL (CLK_GATE_BLOCK_ALL_DIS \ -+ | (CLK_EN << BIT_BLOCK_CLK_LCD0)\ -+ | (CLK_EN << BIT_BLOCK_CLK_MFC)\ -+ | (CLK_EN << BIT_BLOCK_CLK_TV)\ -+ | (CLK_EN << BIT_BLOCK_CLK_CAM)\ -+ | (CLK_EN << BIT_BLOCK_CLK_LCD1)\ -+ | (CLK_EN << BIT_BLOCK_CLK_G3D)) - - /* PS_HOLD: Data Hight, Output En */ - #define BIT_DAT 8 --- -2.50.1 - diff --git a/device/testing/u-boot-samsung-i9100/APKBUILD b/device/testing/u-boot-samsung-i9100/APKBUILD index a65cbed07..82780b13d 100644 --- a/device/testing/u-boot-samsung-i9100/APKBUILD +++ b/device/testing/u-boot-samsung-i9100/APKBUILD @@ -1,7 +1,7 @@ maintainer="Henrik Grimler " pkgname=u-boot-samsung-i9100 -pkgver=2025.10_rc2 -pkgrel=1 +pkgver=2026.07_rc4 +pkgrel=0 pkgdesc="u-boot bootloader for i9100 (close to mainline)" url="https://www.denx.de/wiki/U-Boot/" arch="armv7" @@ -9,6 +9,7 @@ license="GPL-2.0-or-later OFL-1.1 BSD-2-Clause BSD-3-Clause WITH eCos-exception- ISC LGPL-2.0-only LGPL-2.1-only X11" options="!check !strip !tracedeps pmb:cross-native" # no tests makedepends=" + bash bc bison dtc @@ -24,19 +25,19 @@ makedepends=" swig util-linux-dev " -_tag="v${pkgver//_/-}" +_tag="v${pkgver//_/-}-exynos4-i9100_(trats-mod)" source=" - https://gitlab.com/u-boot/u-boot/-/archive/${_tag}/u-boot-${_tag}.tar.bz2 - 0001-DONOTMERGE-configs-trats-update-values-for-i9100.patch - 0002-DONOTMERGE-Revert-most-of-board-samsung-trats-remove.patch - 0003-DONOTMERGE-board-samsung-trats-enable-ldo17.patch - 0004-ARM-dts-exynos4210-trats-i9100-fix-eMMC-and-sdcard.patch - 0005-configs-trats-add-some-variables-necessary-for-extli.patch - 0006-configs-trats-disable-BOOTCOMMAND-so-that-autoboot-c.patch - 0007-configs-trats-increase-env_size.patch - 0008-trats-clk-enable-most-of-CLK_GATE_BLOCK.patch + https://gitlab.com/exynos4-mainline/u-boot/-/archive/$_tag/u-boot-$_tag.tar.bz2 " -builddir="$srcdir/u-boot-$_tag" +builddir="$srcdir/u-boot-$pkgver" + +prepare() { + # Avoid having a folder with ( ) in filename, which u-boot + # does not handle well + mv "$srcdir/u-boot-$_tag" "$srcdir/u-boot-$pkgver" + + default_prepare +} build() { touch include/config.h @@ -53,13 +54,5 @@ package() { } sha512sums=" -2b06e462f77131bdb303a23e92d1086d0b8ffd4fd98ead1e3700d3b5eea5857478f63c98dc4760f2d9199750ac549cb5367cd6162d20c26333b92dbb5eab2361 u-boot-v2025.10-rc2.tar.bz2 -b85b61b5c83adb11fc4ed91092dd73cdf7f8a92558071856b6c3491ee293a3000736bc0bf6c0164a56098754cda49431c023e5adc344ca7df098069da2e1e5a5 0001-DONOTMERGE-configs-trats-update-values-for-i9100.patch -0d54643ce6670116bc130bca71c500e0e3af956f917544e6574878091e7ddfb96753eea34686a8c81d297cdf75a3beba67a26735cfb601bfb5e3cdceb3a97e0c 0002-DONOTMERGE-Revert-most-of-board-samsung-trats-remove.patch -68ac00258f05b0e266b35c5406571dfde69a5aae37468e659f5cd1430ea3af5a92b527592b46d90af7cc704782f9ced570fbb76dafa2e83d2a6429b4fee9862b 0003-DONOTMERGE-board-samsung-trats-enable-ldo17.patch -9960e08783dc35acfc25374c5f2e2a8b3a091e42474de505d860335c8ac90d05ceae746bac3abe6a2a6d3f8dcac5242c95f2aea14412cdfda0d1dcd874f52744 0004-ARM-dts-exynos4210-trats-i9100-fix-eMMC-and-sdcard.patch -5e334ed2378688f85e6634bcddbe22ac5a2c2eb463e86965a84daececb8ddc0a3eef75bf1700de210c433e65087707c864ff2d1829e99f1baeee6a42ad6071f8 0005-configs-trats-add-some-variables-necessary-for-extli.patch -52f1c15fc74d574613823380d41ba635f5e806470956eca0e08724af182788d8545011946599bf8306ce99136c55be7e291c606a10bf75a58b3a857eee8f0c05 0006-configs-trats-disable-BOOTCOMMAND-so-that-autoboot-c.patch -6f5a0a3e068ba60ca557cdf1b449c769f7ca3763cf32cc13e05ec06d7f56c732e4073e87a79fabf73300b5d541b6046d30e355bc07039dedba5a5bc8a6726ffa 0007-configs-trats-increase-env_size.patch -6d28220ddb972fc9bc14cd9396feaf9a7a15e7b87c81af02f739f621f07e37b24e3e8da2015bec1f4557f49c43670e367618a39abd686fb18e1433c3a6be918d 0008-trats-clk-enable-most-of-CLK_GATE_BLOCK.patch +5045f7dbfb8db6ba07080959940378e18aaa6ce39c56d8fccff4580045d03bafd5705bf9fbb49ab2df441ac36c1deb243b1cf9be7d0ff253f27c118db3daa48a u-boot-v2026.07-rc4-exynos4-i9100_(trats-mod).tar.bz2 "