From 6048bbbb920373ac19bbcd7aa6bb61654bc92885 Mon Sep 17 00:00:00 2001 From: Marius Dinu Date: Wed, 11 Jun 2025 11:04:54 +0000 Subject: rk3288: add fdtoverlay_addr_r to default env rk3288 is missing fdtoverlay_addr_r. The new addresses match those used by rk3308. Tested on Asus TinkerBoard S. Signed-off-by: Marius Dinu Cc: Simon Glass Cc: Philipp Tomsich Cc: Kever Yang Reviewed-by: Quentin Schulz Reviewed-by: Kever Yang --- include/configs/rk3288_common.h | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'include') diff --git a/include/configs/rk3288_common.h b/include/configs/rk3288_common.h index 0c449e31099..52c3695ff8e 100644 --- a/include/configs/rk3288_common.h +++ b/include/configs/rk3288_common.h @@ -18,7 +18,8 @@ #define ENV_MEM_LAYOUT_SETTINGS \ "scriptaddr=0x00000000\0" \ "pxefile_addr_r=0x00100000\0" \ - "fdt_addr_r=0x01f00000\0" \ + "fdt_addr_r=0x01e00000\0" \ + "fdtoverlay_addr_r=0x01f00000\0" \ "kernel_addr_r=0x02000000\0" \ "ramdisk_addr_r=0x04000000\0" -- cgit v1.2.3 From 1961bba4bc341573db98a6fd34eac771e914681f Mon Sep 17 00:00:00 2001 From: Quentin Schulz Date: Wed, 13 Aug 2025 16:07:43 +0200 Subject: power: rk8xx: allow to customize RK806 reset mode The RK806 PMIC has a bitfield for configuring the restart/reset behavior (which I assume Rockchip calls "function") whenever the PMIC is reset either programmatically (c.f. DEV_RST in the datasheet) or via PWRCTRL or RESETB pins. For RK806, the following values are possible for RST_FUN: 0b00 means "Restart PMU" 0b01 means "Reset all the power off reset registers, forcing the state to switch to ACTIVE mode" 0b10 means "Reset all the power off reset registers, forcing the state to switch to ACTIVE mode, and simultaneously pull down the RESETB PIN for 5mS before releasing" 0b11 means the same as for 0b10 just above. This adds the appropriate logic in the driver to parse the new rockchip,reset-mode DT property to pass this information. It just happens that the values in the binding match the values to write in the bitfield so no mapping is necessary. For backward compatibility reasons, if the property is missing we set it to 0b10 (i.e. BIT(7)) like before this commit was merged instead of leaving it untouched like in the kernel driver. Note that this does nothing useful for U-Boot at the moment as the ways to reset the device (e.g. via `reset` command) doesn't interact with the RK8xx PMIC and simply does a CPU reset. Considering the upstream Linux kernel left this register untouched until (assumed) v6.17[1], this is useful for cases in which the U-Boot bootloader has this patch (and running with a DT with rockchip,reset-mode property set) and running an upstream kernel before (assumed) v6.17, or alternatively later without the property in the kernel DT. [1] https://git.kernel.org/pub/scm/linux/kernel/git/lee/mfd.git/commit/?id=87b48d86b77686013f5c2a8866ed299312b671db Signed-off-by: Quentin Schulz Reviewed-by: Kever Yang --- include/power/rk8xx_pmic.h | 2 ++ 1 file changed, 2 insertions(+) (limited to 'include') diff --git a/include/power/rk8xx_pmic.h b/include/power/rk8xx_pmic.h index 31221aa46b6..913b6ebe6d9 100644 --- a/include/power/rk8xx_pmic.h +++ b/include/power/rk8xx_pmic.h @@ -212,6 +212,8 @@ enum { #define RK817_POWER_EN_SAVE0 0x99 #define RK817_POWER_EN_SAVE1 0xa4 +#define RK806_RST_FUN_MSK GENMASK(7, 6) + #define RK806_POWER_EN(x) (0x00 + (x)) /* POWER_ENx register lower 4 bits are write-protected unless the associated top bit is set */ #define RK806_POWER_EN_CLRSETBITS(bit, val) (((val) << (bit)) | (1 << ((bit) + 4))) -- cgit v1.2.3 From 5138d3a561dc9441f956378aa649f7804874e8b8 Mon Sep 17 00:00:00 2001 From: Anurag Dutta Date: Mon, 1 Sep 2025 11:46:56 +0530 Subject: include: env: ti: Use .env for environment variables Add omap common environment variables to .env. We retain the old-style C environment .h files to maintain compatibility with other omap devices that have not moved to using .env yet. Signed-off-by: Anurag Dutta --- include/configs/ti_omap5_common.h | 228 -------------------------------------- include/env/ti/dfu.env | 53 +++++++++ 2 files changed, 53 insertions(+), 228 deletions(-) create mode 100644 include/env/ti/dfu.env (limited to 'include') diff --git a/include/configs/ti_omap5_common.h b/include/configs/ti_omap5_common.h index 39102f15eb9..9e02b0d0040 100644 --- a/include/configs/ti_omap5_common.h +++ b/include/configs/ti_omap5_common.h @@ -39,216 +39,6 @@ #define DFUARGS #endif -#include -#include - -#ifndef CONSOLEDEV -#define CONSOLEDEV "ttyS2" -#endif - -#ifndef PARTS_DEFAULT -/* - * Default GPT tables for eMMC (Linux and Android). Notes: - * 1. Keep partitions aligned to erase group size (512 KiB) when possible - * 2. Keep partitions in sync with DFU_ALT_INFO_EMMC (see dfu.h) - * 3. Keep 'bootloader' partition (U-Boot proper) start address in sync with - * CONFIG_SYS_MMCSD_RAW_MODE_U_BOOT_SECTOR (see common/spl/Kconfig) - */ -#define PARTS_DEFAULT \ - /* Linux partitions */ \ - "uuid_disk=${uuid_gpt_disk};" \ - "name=bootloader,start=384K,size=1792K,uuid=${uuid_gpt_bootloader};" \ - "name=rootfs,start=2688K,size=-,uuid=${uuid_gpt_rootfs}\0" \ - /* Android partitions */ \ - "partitions_android=" \ - "uuid_disk=${uuid_gpt_disk};" \ - "name=xloader,start=128K,size=256K,uuid=${uuid_gpt_xloader};" \ - "name=bootloader,size=2048K,uuid=${uuid_gpt_bootloader};" \ - "name=uboot-env,start=2432K,size=256K,uuid=${uuid_gpt_reserved};" \ - "name=misc,size=128K,uuid=${uuid_gpt_misc};" \ - "name=boot_a,size=20M,uuid=${uuid_gpt_boot_a};" \ - "name=boot_b,size=20M,uuid=${uuid_gpt_boot_b};" \ - "name=dtbo_a,size=8M,uuid=${uuid_gpt_dtbo_a};" \ - "name=dtbo_b,size=8M,uuid=${uuid_gpt_dtbo_b};" \ - "name=vbmeta_a,size=64K,uuid=${uuid_gpt_vbmeta_a};" \ - "name=vbmeta_b,size=64K,uuid=${uuid_gpt_vbmeta_b};" \ - "name=recovery,size=64M,uuid=${uuid_gpt_recovery};" \ - "name=super,size=2560M,uuid=${uuid_gpt_super};" \ - "name=metadata,size=16M,uuid=${uuid_gpt_metadata};" \ - "name=userdata,size=-,uuid=${uuid_gpt_userdata}" -#endif /* PARTS_DEFAULT */ - -#if defined(CONFIG_CMD_AVB) -#define AVB_VERIFY_CHECK "if run avb_verify; then " \ - "echo AVB verification OK.;" \ - "set bootargs $bootargs $avb_bootargs;" \ - "else " \ - "echo AVB verification failed.;" \ - "exit; fi;" -#define AVB_VERIFY_CMD "avb_verify=avb init 1; avb verify $slot_suffix;\0" -#else -#define AVB_VERIFY_CHECK "" -#define AVB_VERIFY_CMD "" -#endif - -#define CONTROL_PARTITION "misc" - -#if defined(CONFIG_CMD_BCB) && defined(CONFIG_ANDROID_AB) -#define AB_SELECT_SLOT \ - "if part number mmc 1 " CONTROL_PARTITION " control_part_number; " \ - "then " \ - "echo " CONTROL_PARTITION \ - " partition number:${control_part_number};" \ - "bcb ab_select slot_name mmc ${mmcdev}:${control_part_number};" \ - "else " \ - "echo " CONTROL_PARTITION " partition not found;" \ - "exit;" \ - "fi;" \ - "setenv slot_suffix _${slot_name};" -#define AB_SELECT_ARGS \ - "setenv bootargs_ab androidboot.slot_suffix=${slot_suffix}; " \ - "echo A/B cmdline addition: ${bootargs_ab};" \ - "setenv bootargs ${bootargs} ${bootargs_ab};" -#else -#define AB_SELECT_SLOT "" -#define AB_SELECT_ARGS "" -#endif - -/* - * Prepares complete device tree blob for current board (for Android boot). - * - * Boot image or recovery image should be loaded into $loadaddr prior to running - * these commands. The logic of these commnads is next: - * - * 1. Read correct DTB for current SoC/board from boot image in $loadaddr - * to $fdtaddr - * 2. Merge all needed DTBO for current board from 'dtbo' partition into read - * DTB - * 3. User should provide $fdtaddr as 3rd argument to 'bootm' - */ -#define PREPARE_FDT \ - "echo Preparing FDT...; " \ - "if test $board_name = am57xx_evm_reva3; then " \ - "echo \" Reading DTBO partition...\"; " \ - "part start mmc ${mmcdev} dtbo${slot_suffix} p_dtbo_start; " \ - "part size mmc ${mmcdev} dtbo${slot_suffix} p_dtbo_size; " \ - "mmc read ${dtboaddr} ${p_dtbo_start} ${p_dtbo_size}; " \ - "echo \" Reading DTB for AM57x EVM RevA3...\"; " \ - "abootimg get dtb --index=0 dtb_start dtb_size; " \ - "cp.b $dtb_start $fdtaddr $dtb_size; " \ - "fdt addr $fdtaddr 0x80000; " \ - "echo \" Applying DTBOs for AM57x EVM RevA3...\"; " \ - "adtimg addr $dtboaddr; " \ - "adtimg get dt --index=0 dtbo0_addr dtbo0_size; " \ - "fdt apply $dtbo0_addr; " \ - "adtimg get dt --index=1 dtbo1_addr dtbo1_size; " \ - "fdt apply $dtbo1_addr; " \ - "elif test $board_name = beagle_x15_revc; then " \ - "echo \" Reading DTB for Beagle X15 RevC...\"; " \ - "abootimg get dtb --index=0 dtb_start dtb_size; " \ - "cp.b $dtb_start $fdtaddr $dtb_size; " \ - "fdt addr $fdtaddr 0x80000; " \ - "else " \ - "echo Error: Android boot is not supported for $board_name; " \ - "exit; " \ - "fi; " \ - -#define DEFAULT_COMMON_BOOT_TI_ARGS \ - "console=" CONSOLEDEV ",115200n8\0" \ - "fdtfile=undefined\0" \ - "finduuid=part uuid mmc 0:2 uuid\0" \ - "usbtty=cdc_acm\0" \ - "vram=16M\0" \ - AVB_VERIFY_CMD \ - "partitions=" PARTS_DEFAULT "\0" \ - "optargs=\0" \ - "dofastboot=0\0" \ - "emmc_android_boot=" \ - "setenv mmcdev 1; " \ - "mmc dev $mmcdev; " \ - "mmc rescan; " \ - AB_SELECT_SLOT \ - "if bcb load " __stringify(CONFIG_FASTBOOT_FLASH_MMC_DEV) " " \ - CONTROL_PARTITION "; then " \ - "setenv ardaddr -; " \ - "if bcb test command = bootonce-bootloader; then " \ - "echo Android: Bootloader boot...; " \ - "bcb clear command; bcb store; " \ - "fastboot 1; " \ - "exit; " \ - "elif bcb test command = boot-recovery; then " \ - "echo Android: Recovery boot...; " \ - "setenv ardaddr $loadaddr;" \ - "setenv apart recovery; " \ - "else " \ - "echo Android: Normal boot...; " \ - "setenv ardaddr $loadaddr; " \ - "setenv apart boot${slot_suffix}; " \ - "fi; " \ - "else " \ - "echo Warning: BCB is corrupted or does not exist; " \ - "echo Android: Normal boot...; " \ - "fi; " \ - "setenv eval_bootargs setenv bootargs $bootargs; " \ - "run eval_bootargs; " \ - "setenv machid fe6; " \ - AVB_VERIFY_CHECK \ - AB_SELECT_ARGS \ - "if part start mmc $mmcdev $apart boot_start; then " \ - "part size mmc $mmcdev $apart boot_size; " \ - "mmc read $loadaddr $boot_start $boot_size; " \ - PREPARE_FDT \ - "bootm $loadaddr $ardaddr $fdtaddr; " \ - "else " \ - "echo $apart partition not found; " \ - "exit; " \ - "fi;\0" - -#define DEFAULT_FDT_TI_ARGS \ - "findfdt="\ - "if test $board_name = omap5_uevm; then " \ - "setenv fdtfile omap5-uevm.dtb; fi; " \ - "if test $board_name = dra7xx; then " \ - "setenv fdtfile dra7-evm.dtb; fi;" \ - "if test $board_name = dra72x-revc; then " \ - "setenv fdtfile dra72-evm-revc.dtb; fi;" \ - "if test $board_name = dra72x; then " \ - "setenv fdtfile dra72-evm.dtb; fi;" \ - "if test $board_name = dra71x; then " \ - "setenv fdtfile dra71-evm.dtb; fi;" \ - "if test $board_name = dra76x_acd; then " \ - "setenv fdtfile dra76-evm.dtb; fi;" \ - "if test $board_name = beagle_x15; then " \ - "setenv fdtfile am57xx-beagle-x15.dtb; fi;" \ - "if test $board_name = beagle_x15_revb1; then " \ - "setenv fdtfile am57xx-beagle-x15-revb1.dtb; fi;" \ - "if test $board_name = beagle_x15_revc; then " \ - "setenv fdtfile am57xx-beagle-x15-revc.dtb; fi;" \ - "if test $board_name = am5729_beagleboneai; then " \ - "setenv fdtfile am5729-beagleboneai.dtb; fi;" \ - "if test $board_name = am572x_idk; then " \ - "setenv fdtfile am572x-idk.dtb; fi;" \ - "if test $board_name = am574x_idk; then " \ - "setenv fdtfile am574x-idk.dtb; fi;" \ - "if test $board_name = am57xx_evm; then " \ - "setenv fdtfile am57xx-beagle-x15.dtb; fi;" \ - "if test $board_name = am57xx_evm_reva3; then " \ - "setenv fdtfile am57xx-beagle-x15.dtb; fi;" \ - "if test $board_name = am571x_idk; then " \ - "setenv fdtfile am571x-idk.dtb; fi;" \ - "if test $fdtfile = undefined; then " \ - "echo WARNING: Could not determine device tree to use; fi; \0" - -#define GET_OVERLAY_MMC_TI_ARGS \ - "get_overlay_mmc=" \ - "fdt address ${fdtaddr};" \ - "fdt resize 0x100000;" \ - "for overlay in $name_overlays;" \ - "do;" \ - "load mmc ${bootpart} ${dtboaddr} ${bootdir}/dtb/${overlay} &&" \ - "fdt apply ${dtboaddr};" \ - "done;\0" \ - #define BOOT_TARGET_DEVICES(func) \ func(TI_MMC, ti_mmc, na) \ func(MMC, mmc, 0) \ @@ -265,24 +55,6 @@ #include #define CFG_EXTRA_ENV_SETTINGS \ - DEFAULT_LINUX_BOOT_ENV \ - DEFAULT_MMC_TI_ARGS \ - "bootpart=0:2\0" \ - "bootdir=/boot\0" \ - "get_name_kern=" \ - "if test $boot_fit -eq 1; then " \ - "setenv bootfile fitImage; " \ - "else " \ - "setenv bootfile zImage; " \ - "fi\0" \ - DEFAULT_FIT_TI_ARGS \ - "get_fit_config=setenv name_fit_config ${fdtfile}\0" \ - DEFAULT_COMMON_BOOT_TI_ARGS \ - DEFAULT_FDT_TI_ARGS \ - GET_OVERLAY_MMC_TI_ARGS \ - DFUARGS \ - NETARGS \ - NANDARGS \ BOOTENV /* diff --git a/include/env/ti/dfu.env b/include/env/ti/dfu.env new file mode 100644 index 00000000000..b925730c6f5 --- /dev/null +++ b/include/env/ti/dfu.env @@ -0,0 +1,53 @@ +dfu_alt_info_mmc= + boot part 0 1; + rootfs part 0 2; + MLO fat 0 1; + MLO.raw raw 0x100 0x200; + u-boot.img.raw raw 0x300 0x1000; + u-env.raw raw 0x1300 0x200; + spl-os-args.raw raw 0x1500 0x200; + spl-os-image.raw raw 0x1700 0x6900; + spl-os-args fat 0 1; + spl-os-image fat 0 1; + u-boot.img fat 0 1; + uEnv.txt fat 0 1 + +dfu_alt_info_emmc= + rawemmc raw 0 3751936; + boot part 1 1; + rootfs part 1 2; + MLO fat 1 1; + MLO.raw raw 0x100 0x200; + u-boot.img.raw raw 0x300 0x1000; + u-env.raw raw 0x1300 0x200; + spl-os-args.raw raw 0x1500 0x200; + spl-os-image.raw raw 0x1700 0x6900; + spl-os-args fat 1 1; + spl-os-image fat 1 1; + u-boot.img fat 1 1; + uEnv.txt fat 1 1 + +#if CONFIG_MTD_RAW_NAND +dfu_alt_info_nand= + SPL part 0 1; + SPL.backup1 part 0 2; + SPL.backup2 part 0 3; + SPL.backup3 part 0 4; + u-boot part 0 5; + u-boot-spl-os part 0 6; + kernel part 0 8; + rootfs part 0 9 +#endif + +dfu_alt_info_ram= + kernel ram 0x80200000 0x4000000; + fdt ram 0x80f80000 0x80000; + ramdisk ram 0x81000000 0x4000000 + +dfu_alt_info_qspi= + MLO raw 0x0 0x040000; + u-boot.img raw 0x040000 0x0100000; + u-boot-spl-os raw 0x140000 0x080000; + u-boot-env raw 0x1C0000 0x010000; + u-boot-env.backup raw 0x1D0000 0x010000; + kernel raw 0x1E0000 0x800000 -- cgit v1.2.3 From bc020bf53adca747a533a364969bc6396ef58b13 Mon Sep 17 00:00:00 2001 From: Anurag Dutta Date: Mon, 1 Sep 2025 11:46:57 +0530 Subject: board: ti: am57xx: Change to using .env Move to using .env file for setting up environment variables for am57xx and dra7xx. Signed-off-by: Anurag Dutta --- include/configs/am57xx_evm.h | 19 +------------------ include/configs/dra7xx_evm.h | 24 ------------------------ 2 files changed, 1 insertion(+), 42 deletions(-) (limited to 'include') diff --git a/include/configs/am57xx_evm.h b/include/configs/am57xx_evm.h index 266b77fbf68..8c29c940478 100644 --- a/include/configs/am57xx_evm.h +++ b/include/configs/am57xx_evm.h @@ -11,30 +11,13 @@ #ifndef __CONFIG_AM57XX_EVM_H #define __CONFIG_AM57XX_EVM_H -#include #include #define CFG_SYS_NS16550_COM1 UART1_BASE /* Base EVM has UART0 */ #define CFG_SYS_NS16550_COM2 UART2_BASE /* UART2 */ #define CFG_SYS_NS16550_COM3 UART3_BASE /* UART3 */ -#ifndef CONFIG_XPL_BUILD -#define DFUARGS \ - "dfu_bufsiz=0x10000\0" \ - DFU_ALT_INFO_MMC \ - DFU_ALT_INFO_EMMC \ - DFU_ALT_INFO_RAM \ - DFU_ALT_INFO_QSPI -#else -#ifdef CONFIG_SPL_DFU -#define DFUARGS \ - "dfu_bufsiz=0x10000\0" \ - DFU_ALT_INFO_RAM -#endif -#endif - -#include - /* CPSW Ethernet */ +#include #endif /* __CONFIG_AM57XX_EVM_H */ diff --git a/include/configs/dra7xx_evm.h b/include/configs/dra7xx_evm.h index 3c960ca2ce2..9df7ef055bf 100644 --- a/include/configs/dra7xx_evm.h +++ b/include/configs/dra7xx_evm.h @@ -11,40 +11,16 @@ #ifndef __CONFIG_DRA7XX_EVM_H #define __CONFIG_DRA7XX_EVM_H -#include - #define CFG_MAX_MEM_MAPPED 0x80000000 #ifndef CONFIG_QSPI_BOOT /* MMC ENV related defines */ #endif -#if (CONFIG_CONS_INDEX == 1) -#define CONSOLEDEV "ttyS0" -#elif (CONFIG_CONS_INDEX == 3) -#define CONSOLEDEV "ttyS2" -#endif #define CFG_SYS_NS16550_COM1 UART1_BASE /* Base EVM has UART0 */ #define CFG_SYS_NS16550_COM2 UART2_BASE /* UART2 */ #define CFG_SYS_NS16550_COM3 UART3_BASE /* UART3 */ -#ifndef CONFIG_XPL_BUILD -#define DFUARGS \ - "dfu_bufsiz=0x10000\0" \ - DFU_ALT_INFO_MMC \ - DFU_ALT_INFO_EMMC \ - DFU_ALT_INFO_RAM \ - DFU_ALT_INFO_QSPI -#endif - -#ifdef CONFIG_XPL_BUILD -#ifdef CONFIG_SPL_DFU -#define DFUARGS \ - "dfu_bufsiz=0x10000\0" \ - DFU_ALT_INFO_RAM -#endif -#endif - #include /* NAND support */ -- cgit v1.2.3