From ef4d9621376ef9e2048fc935b7cc7c8aa70b4b06 Mon Sep 17 00:00:00 2001 From: Nishanth Menon Date: Fri, 25 Apr 2025 12:31:11 -0500 Subject: board: beagle: beagley-ai: Add pattern match for MAINTAINERS just use beagley_ai as pattern match for the files and folders involved. Signed-off-by: Nishanth Menon Reviewed-by: Udit Kumar Reviewed-by: Bryan Brattlof Reviewed-by: Andrew Davis --- board/beagle/beagley-ai/MAINTAINERS | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/board/beagle/beagley-ai/MAINTAINERS b/board/beagle/beagley-ai/MAINTAINERS index 1623329b714..04d5f67aba6 100644 --- a/board/beagle/beagley-ai/MAINTAINERS +++ b/board/beagle/beagley-ai/MAINTAINERS @@ -3,6 +3,4 @@ M: Robert Nelson M: Tom Rini S: Maintained F: board/beagle/beagley-ai/ -F: include/configs/beagley_ai.h -F: configs/am67a_beagley_ai_r5_defconfig -F: configs/am67a_beagley_ai_a53_defconfig +N: beagley_ai -- cgit v1.3.1 From 6f478ce788e9137ede4b085330d35ff91b919285 Mon Sep 17 00:00:00 2001 From: Nishanth Menon Date: Fri, 25 Apr 2025 12:31:12 -0500 Subject: arch: arm: dts: k3-am67a-beagley-ai-u-boot: Mark main_gpio1 as bootph-all main_gpio1 controls the voltage for the SDcard from 3.3v to 1.8v. This is required for proper operation of SDcard through various boot stages. Fixes the following seen in the boot log: failed to set vqmmc-voltage to 3.3V Signed-off-by: Nishanth Menon Reviewed-by: Bryan Brattlof Reviewed-by: Andrew Davis --- arch/arm/dts/k3-am67a-beagley-ai-u-boot.dtsi | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/arch/arm/dts/k3-am67a-beagley-ai-u-boot.dtsi b/arch/arm/dts/k3-am67a-beagley-ai-u-boot.dtsi index 6c52038cdca..6330ca93fc7 100644 --- a/arch/arm/dts/k3-am67a-beagley-ai-u-boot.dtsi +++ b/arch/arm/dts/k3-am67a-beagley-ai-u-boot.dtsi @@ -53,6 +53,10 @@ status = "disabled"; }; +&main_gpio1 { + bootph-all; +}; + #if IS_ENABLED(CONFIG_TARGET_J722S_R5_BEAGLEY_AI) &binman { -- cgit v1.3.1 From d096ff98c88143d58e32e017a607f54b61c22cac Mon Sep 17 00:00:00 2001 From: Nishanth Menon Date: Fri, 25 Apr 2025 12:31:13 -0500 Subject: beagle: beagley-ai: env: Set up the boot devices and boot methods We just have a single MMC on BeagleY-AI. So drop all other boot options, In the meanwhile, we also will use efiboot and standard boot methods consistent with other K3 Beagle products. Signed-off-by: Nishanth Menon Reviewed-by: Udit Kumar Reviewed-by: Bryan Brattlof Reviewed-by: Andrew Davis --- board/beagle/beagley-ai/beagley-ai.env | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/board/beagle/beagley-ai/beagley-ai.env b/board/beagle/beagley-ai/beagley-ai.env index 10d62034e1a..db29d13420a 100644 --- a/board/beagle/beagley-ai/beagley-ai.env +++ b/board/beagle/beagley-ai/beagley-ai.env @@ -11,7 +11,8 @@ args_all=setenv optargs ${optargs} earlycon=ns16550a,mmio32,0x02800000 ${mtdparts} run_kern=booti ${loadaddr} ${rd_spec} ${fdtaddr} -boot_targets=mmc1 mmc0 pxe dhcp +boot_targets=mmc1 +bootmeths=script extlinux efi pxe boot=mmc mmcdev=1 bootpart=1:2 -- cgit v1.3.1 From b522c3031e34b72c416a83fb542adb954f754f3d Mon Sep 17 00:00:00 2001 From: Nishanth Menon Date: Fri, 25 Apr 2025 12:31:14 -0500 Subject: beagle: beagley-ai: env: Setup scripts for LED control Most of the users of BeagleY-AI are headless OR do not use serial port. In such cases, it is very useful for the device to provide some level of indication to know what state their board is at. Unfortunately, with a single LED (ignoring the :heartbeat), the options are limited. This is a precursor patch to actually enabling the LED options that will use the same in the follow on patches. Signed-off-by: Nishanth Menon Reviewed-by: Bryan Brattlof Reviewed-by: Andrew Davis --- board/beagle/beagley-ai/beagley-ai.env | 2 ++ 1 file changed, 2 insertions(+) diff --git a/board/beagle/beagley-ai/beagley-ai.env b/board/beagle/beagley-ai/beagley-ai.env index db29d13420a..16a03acfca3 100644 --- a/board/beagle/beagley-ai/beagley-ai.env +++ b/board/beagle/beagley-ai/beagley-ai.env @@ -10,6 +10,8 @@ console=ttyS2,115200n8 args_all=setenv optargs ${optargs} earlycon=ns16550a,mmio32,0x02800000 ${mtdparts} run_kern=booti ${loadaddr} ${rd_spec} ${fdtaddr} +set_led_state_fail_load=led led-0 off +set_led_state_start_load=led led-0 on boot_targets=mmc1 bootmeths=script extlinux efi pxe -- cgit v1.3.1 From ca24877039074c4585ed87d58b2e7edc15217d80 Mon Sep 17 00:00:00 2001 From: Nishanth Menon Date: Fri, 25 Apr 2025 12:31:15 -0500 Subject: beagle: beagley-ai: env: Enable DFU env options Just enable dfu options, We have MMC and RAM as options here. Signed-off-by: Nishanth Menon Reviewed-by: Udit Kumar Reviewed-by: Bryan Brattlof Reviewed-by: Andrew Davis --- board/beagle/beagley-ai/beagley-ai.env | 1 + 1 file changed, 1 insertion(+) diff --git a/board/beagle/beagley-ai/beagley-ai.env b/board/beagle/beagley-ai/beagley-ai.env index 16a03acfca3..70afbf9763f 100644 --- a/board/beagle/beagley-ai/beagley-ai.env +++ b/board/beagle/beagley-ai/beagley-ai.env @@ -1,5 +1,6 @@ #include #include +#include #if CONFIG_CMD_REMOTEPROC #include -- cgit v1.3.1 From 4786f89c1222fe52cc1d0d594588f1e2d488fdd8 Mon Sep 17 00:00:00 2001 From: Nishanth Menon Date: Fri, 25 Apr 2025 12:31:16 -0500 Subject: configs: am67a_beagley_ai*: Use saveddefconfig Drop using j722s_evm defconfig since the evm has numerous features that we do not need on BeagleY-AI platform. As new peripherals get added to EVM support, we end up having to cleanup after in beagle configurations. Instead of doing that, just split up BeagleY's configuration independently out. NOTE: no cleanup has been done to this configuration to allow for reproducibility. The cleanups are done in follow on patches Acked-by: Andrew Davis Signed-off-by: Nishanth Menon Reviewed-by: Bryan Brattlof Reviewed-by: Andrew Davis --- configs/am67a_beagley_ai_a53_defconfig | 163 +++++++++++++++++++++++++++------ configs/am67a_beagley_ai_r5_defconfig | 132 ++++++++++++++++++++++++-- 2 files changed, 258 insertions(+), 37 deletions(-) diff --git a/configs/am67a_beagley_ai_a53_defconfig b/configs/am67a_beagley_ai_a53_defconfig index b0903b6ae8f..295ff1740b7 100644 --- a/configs/am67a_beagley_ai_a53_defconfig +++ b/configs/am67a_beagley_ai_a53_defconfig @@ -1,37 +1,144 @@ -#include - CONFIG_ARM=y CONFIG_ARCH_K3=y +CONFIG_SYS_MALLOC_F_LEN=0x8000 +CONFIG_TI_COMMON_CMD_OPTIONS=y +CONFIG_SPL_GPIO=y +CONFIG_SPL_LIBCOMMON_SUPPORT=y +CONFIG_SPL_LIBGENERIC_SUPPORT=y CONFIG_SOC_K3_J722S=y CONFIG_TARGET_J722S_A53_BEAGLEY_AI=y - +CONFIG_HAS_CUSTOM_SYS_INIT_SP_ADDR=y +CONFIG_CUSTOM_SYS_INIT_SP_ADDR=0x80480000 +CONFIG_ENV_SIZE=0x40000 +CONFIG_DM_GPIO=y +CONFIG_SPL_DM_SPI=y CONFIG_DEFAULT_DEVICE_TREE="ti/k3-am67a-beagley-ai" -CONFIG_SPL_OF_LIST="ti/k3-am67a-beagley-ai" -CONFIG_OF_LIST="ti/k3-am67a-beagley-ai" - -CONFIG_BOOTCOMMAND="run findfdt; run envboot; run distro_bootcmd" -CONFIG_EXT4_WRITE=y -CONFIG_LZO=y +CONFIG_OF_LIBFDT_OVERLAY=y +CONFIG_DM_RESET=y +CONFIG_SPL_MMC=y +CONFIG_SPL_SERIAL=y +CONFIG_SPL_STACK_R_ADDR=0x82000000 +CONFIG_SPL_TEXT_BASE=0x80080000 +CONFIG_SPL_HAS_BSS_LINKER_SECTION=y +CONFIG_SPL_BSS_START_ADDR=0x80a00000 +CONFIG_SPL_BSS_MAX_SIZE=0x80000 +CONFIG_SPL_STACK_R=y +CONFIG_SPL_FS_FAT=y +CONFIG_SPL_LIBDISK_SUPPORT=y +# CONFIG_SYS_MALLOC_CLEAR_ON_INIT is not set +CONFIG_SPL_LOAD_FIT=y +CONFIG_SPL_LOAD_FIT_ADDRESS=0x81000000 +CONFIG_BOOTSTD_FULL=y CONFIG_AUTOBOOT_KEYED=y CONFIG_AUTOBOOT_PROMPT="Press SPACE to abort autoboot in %d seconds\n" CONFIG_AUTOBOOT_DELAY_STR="d" CONFIG_AUTOBOOT_STOP_STR=" " -CONFIG_TI_I2C_BOARD_DETECT=n -CONFIG_SPL_SPI=n -CONFIG_SPL_SPI_FLASH_SUPPORT=n -CONFIG_SPL_DM_SPI_FLASH=n -CONFIG_SPL_MTD_SUPPORT=n -CONFIG_SPL_MTD_SUPPORT=n -CONFIG_DM_SPI_FLASH=n -CONFIG_SPI_FLASH=n -CONFIG_MTD=n -CONFIG_MTD_PARTITIONS=n -CONFIG_DM_MTD=n -CONFIG_MTD_UBI=n -CONFIG_CMD_UBIFS=n -CONFIG_CMD_UBI=n -CONFIG_DFU_SF=n -CONFIG_DM_SPI=n -CONFIG_SPL_SPI_LOAD=n -CONFIG_SPL_MTD=n -CONFIG_CMD_SPI=n +CONFIG_BOOTCOMMAND="run findfdt; run envboot; run distro_bootcmd" +CONFIG_BOARD_LATE_INIT=y +CONFIG_SPL_MAX_SIZE=0x58000 +CONFIG_SPL_PAD_TO=0x0 +CONFIG_SPL_SYS_MALLOC_SIMPLE=y +CONFIG_SPL_SYS_MMCSD_RAW_MODE=y +CONFIG_SYS_MMCSD_RAW_MODE_U_BOOT_SECTOR=0x1400 +CONFIG_SPL_DMA=y +CONFIG_SPL_ENV_SUPPORT=y +CONFIG_SPL_FS_LOAD_PAYLOAD_NAME="u-boot.img" +CONFIG_SPL_I2C=y +CONFIG_SPL_DM_MAILBOX=y +CONFIG_SPL_POWER_DOMAIN=y +CONFIG_SPL_RAM_DEVICE=y +CONFIG_SPL_THERMAL=y +CONFIG_SPL_YMODEM_SUPPORT=y +CONFIG_CMD_CLK=y +# CONFIG_CMD_SPI is not set +CONFIG_CMD_USB_MASS_STORAGE=y +CONFIG_OF_CONTROL=y +CONFIG_SPL_OF_CONTROL=y +CONFIG_OF_UPSTREAM=y +CONFIG_MULTI_DTB_FIT=y +CONFIG_SPL_MULTI_DTB_FIT=y +CONFIG_SPL_MULTI_DTB_FIT_NO_COMPRESSION=y +CONFIG_NET_RANDOM_ETHADDR=y +CONFIG_SPL_DM=y +CONFIG_SPL_DM_DEVICE_REMOVE=y +CONFIG_SPL_DM_SEQ_ALIAS=y +CONFIG_REGMAP=y +CONFIG_SPL_REGMAP=y +CONFIG_SPL_SYSCON=y +CONFIG_SPL_OF_TRANSLATE=y +CONFIG_CLK=y +CONFIG_SPL_CLK=y +CONFIG_CLK_TI_SCI=y +CONFIG_DFU_MMC=y +CONFIG_DFU_RAM=y +CONFIG_SYS_DFU_DATA_BUF_SIZE=0x40000 +CONFIG_SYS_DFU_MAX_FILE_SIZE=0x800000 +CONFIG_DMA_CHANNELS=y +CONFIG_TI_K3_NAVSS_UDMA=y +CONFIG_USB_FUNCTION_FASTBOOT=y +CONFIG_FASTBOOT_BUF_ADDR=0xC0000000 +CONFIG_FASTBOOT_BUF_SIZE=0x2F000000 +CONFIG_TI_SCI_PROTOCOL=y +CONFIG_SPL_DM_GPIO_LOOKUP_LABEL=y +CONFIG_DA8XX_GPIO=y +CONFIG_DM_PCA953X=y +CONFIG_SPL_DM_PCA953X=y +CONFIG_DM_I2C=y +CONFIG_SYS_I2C_OMAP24XX=y +CONFIG_DM_MAILBOX=y +CONFIG_K3_SEC_PROXY=y +CONFIG_I2C_EEPROM=y +CONFIG_SPL_I2C_EEPROM=y +CONFIG_FS_LOADER=y +CONFIG_SUPPORT_EMMC_BOOT=y +CONFIG_MMC_IO_VOLTAGE=y +CONFIG_SPL_MMC_IO_VOLTAGE=y +CONFIG_MMC_HS400_SUPPORT=y +CONFIG_SPL_MMC_HS400_SUPPORT=y +CONFIG_MMC_SDHCI=y +CONFIG_MMC_SDHCI_ADMA=y +CONFIG_SPL_MMC_SDHCI_ADMA=y +CONFIG_MMC_SDHCI_AM654=y +CONFIG_PHY_TI_DP83867=y +CONFIG_TI_AM65_CPSW_NUSS=y +CONFIG_PINCTRL=y +CONFIG_SPL_PINCTRL=y +CONFIG_PINCTRL_SINGLE=y +CONFIG_POWER_DOMAIN=y +CONFIG_TI_SCI_POWER_DOMAIN=y +CONFIG_DM_REGULATOR=y +CONFIG_SPL_DM_REGULATOR=y +CONFIG_DM_REGULATOR_FIXED=y +CONFIG_SPL_DM_REGULATOR_FIXED=y +CONFIG_DM_REGULATOR_GPIO=y +CONFIG_SPL_DM_REGULATOR_GPIO=y +CONFIG_K3_SYSTEM_CONTROLLER=y +CONFIG_RESET_TI_SCI=y +CONFIG_DM_SERIAL=y +CONFIG_SOC_DEVICE=y +CONFIG_SOC_DEVICE_TI_K3=y +CONFIG_SOC_TI=y +CONFIG_SPI=y +CONFIG_SYSRESET=y +CONFIG_SPL_SYSRESET=y +CONFIG_SYSRESET_TI_SCI=y +CONFIG_DM_THERMAL=y +CONFIG_USB=y +CONFIG_DM_USB_GADGET=y +CONFIG_SPL_DM_USB_GADGET=y +CONFIG_SPL_USB_HOST=y +CONFIG_USB_XHCI_HCD=y +CONFIG_USB_DWC3=y +CONFIG_USB_DWC3_GENERIC=y +CONFIG_SPL_USB_DWC3_GENERIC=y +CONFIG_SPL_USB_DWC3_AM62=y +CONFIG_USB_DWC3_AM62=y +CONFIG_SPL_USB_STORAGE=y +CONFIG_USB_GADGET=y +CONFIG_SPL_USB_GADGET=y +CONFIG_USB_GADGET_MANUFACTURER="Texas Instruments" +CONFIG_USB_GADGET_VENDOR_NUM=0x0451 +CONFIG_USB_GADGET_PRODUCT_NUM=0x6165 +CONFIG_SPL_DFU=y +CONFIG_FS_FAT_MAX_CLUSTSIZE=16384 +CONFIG_LZO=y diff --git a/configs/am67a_beagley_ai_r5_defconfig b/configs/am67a_beagley_ai_r5_defconfig index 5380747fe3c..35c77e57e10 100644 --- a/configs/am67a_beagley_ai_r5_defconfig +++ b/configs/am67a_beagley_ai_r5_defconfig @@ -1,14 +1,128 @@ -#include - CONFIG_ARM=y CONFIG_ARCH_K3=y +CONFIG_SYS_MALLOC_F_LEN=0x9000 +CONFIG_SPL_LIBCOMMON_SUPPORT=y +CONFIG_SPL_LIBGENERIC_SUPPORT=y CONFIG_SOC_K3_J722S=y +CONFIG_K3_QOS=y CONFIG_TARGET_J722S_R5_BEAGLEY_AI=y - +CONFIG_HAS_CUSTOM_SYS_INIT_SP_ADDR=y +CONFIG_CUSTOM_SYS_INIT_SP_ADDR=0x43c4a7f0 +CONFIG_SF_DEFAULT_SPEED=25000000 +CONFIG_SF_DEFAULT_MODE=0 +CONFIG_ENV_SIZE=0x20000 +CONFIG_ENV_OFFSET=0x680000 +CONFIG_SPL_DM_SPI=y CONFIG_DEFAULT_DEVICE_TREE="k3-am67a-r5-beagley-ai" -CONFIG_SPL_OF_LIST="k3-am67a-r5-beagley-ai" -CONFIG_OF_LIST="k3-am67a-r5-beagley-ai" - -CONFIG_TI_I2C_BOARD_DETECT=n -CONFIG_SPL_DM_SPI_FLASH=n -CONFIG_SPL_MTD_SUPPORT=n +CONFIG_DM_RESET=y +CONFIG_SPL_MMC=y +CONFIG_SPL_SERIAL=y +CONFIG_SPL_DRIVERS_MISC=y +CONFIG_SPL_STACK_R_ADDR=0x82000000 +CONFIG_SPL_SYS_MALLOC_F_LEN=0x8000 +CONFIG_SPL_TEXT_BASE=0x43c00000 +CONFIG_SPL_HAS_BSS_LINKER_SECTION=y +CONFIG_SPL_BSS_START_ADDR=0x43c7b000 +CONFIG_SPL_BSS_MAX_SIZE=0x3000 +CONFIG_SPL_STACK_R=y +CONFIG_SPL_SIZE_LIMIT=0x3C000 +CONFIG_SPL_SIZE_LIMIT_PROVIDE_STACK=0x5000 +CONFIG_SPL_FS_FAT=y +CONFIG_SPL_LIBDISK_SUPPORT=y +CONFIG_SPL_SPI_FLASH_SUPPORT=y +CONFIG_SPL_SPI=y +CONFIG_SPL_LOAD_FIT=y +CONFIG_SPL_LOAD_FIT_ADDRESS=0x80080000 +# CONFIG_DISPLAY_CPUINFO is not set +CONFIG_SPL_SIZE_LIMIT_SUBTRACT_GD=y +CONFIG_SPL_SIZE_LIMIT_SUBTRACT_MALLOC=y +CONFIG_SPL_MAX_SIZE=0x6ce00 +CONFIG_SPL_PAD_TO=0x0 +CONFIG_SPL_SYS_REPORT_STACK_F_USAGE=y +CONFIG_SPL_SYS_MALLOC_SIMPLE=y +CONFIG_SPL_SEPARATE_BSS=y +CONFIG_SPL_EARLY_BSS=y +CONFIG_SPL_SYS_MMCSD_RAW_MODE=y +CONFIG_SYS_MMCSD_RAW_MODE_U_BOOT_SECTOR=0x400 +CONFIG_SPL_DMA=y +CONFIG_SPL_DM_MAILBOX=y +CONFIG_SPL_DM_RESET=y +CONFIG_SPL_POWER_DOMAIN=y +CONFIG_SPL_RAM_DEVICE=y +# CONFIG_SPL_SPI_FLASH_TINY is not set +CONFIG_SPL_SPI_FLASH_SFDP_SUPPORT=y +CONFIG_SPL_SPI_LOAD=y +CONFIG_SYS_SPI_U_BOOT_OFFS=0x80000 +CONFIG_SPL_THERMAL=y +CONFIG_SPL_YMODEM_SUPPORT=y +CONFIG_HUSH_PARSER=y +CONFIG_CMD_ASKENV=y +CONFIG_CMD_DFU=y +CONFIG_CMD_GPT=y +CONFIG_CMD_MMC=y +# CONFIG_CMD_SETEXPR is not set +CONFIG_CMD_TIME=y +CONFIG_CMD_FAT=y +CONFIG_OF_CONTROL=y +CONFIG_SPL_OF_CONTROL=y +CONFIG_ENV_IS_NOWHERE=y +CONFIG_ENV_IS_IN_MMC=y +CONFIG_SYS_RELOC_GD_ENV_ADDR=y +CONFIG_SYS_MMC_ENV_PART=1 +CONFIG_NO_NET=y +CONFIG_SPL_DM=y +CONFIG_SPL_DM_DEVICE_REMOVE=y +CONFIG_SPL_DM_SEQ_ALIAS=y +CONFIG_REGMAP=y +CONFIG_SPL_REGMAP=y +CONFIG_SPL_OF_TRANSLATE=y +CONFIG_CLK=y +CONFIG_SPL_CLK=y +CONFIG_SPL_CLK_CCF=y +CONFIG_SPL_CLK_K3_PLL=y +CONFIG_SPL_CLK_K3=y +CONFIG_DMA_CHANNELS=y +CONFIG_TI_K3_NAVSS_UDMA=y +CONFIG_TI_SCI_PROTOCOL=y +# CONFIG_GPIO is not set +CONFIG_DM_I2C=y +CONFIG_SYS_I2C_OMAP24XX=y +CONFIG_DM_MAILBOX=y +CONFIG_K3_SEC_PROXY=y +CONFIG_ESM_K3=y +CONFIG_MMC_HS400_SUPPORT=y +CONFIG_MMC_SDHCI=y +CONFIG_MMC_SDHCI_ADMA=y +CONFIG_SPL_MMC_SDHCI_ADMA=y +CONFIG_MMC_SDHCI_AM654=y +CONFIG_MTD=y +CONFIG_DM_MTD=y +CONFIG_MTD_SPI_NAND=y +CONFIG_DM_SPI_FLASH=y +CONFIG_SPI_FLASH_SFDP_SUPPORT=y +CONFIG_SPI_FLASH_SOFT_RESET=y +CONFIG_SPI_FLASH_SOFT_RESET_ON_BOOT=y +CONFIG_SPI_FLASH_SPANSION=y +CONFIG_SPI_FLASH_S28HX_T=y +CONFIG_PINCTRL=y +# CONFIG_PINCTRL_GENERIC is not set +CONFIG_SPL_PINCTRL=y +# CONFIG_SPL_PINCTRL_GENERIC is not set +CONFIG_PINCTRL_SINGLE=y +CONFIG_POWER_DOMAIN=y +CONFIG_TI_POWER_DOMAIN=y +CONFIG_K3_SYSTEM_CONTROLLER=y +CONFIG_RESET_TI_SCI=y +CONFIG_SPECIFY_CONSOLE_INDEX=y +CONFIG_DM_SERIAL=y +CONFIG_SOC_DEVICE=y +CONFIG_SOC_DEVICE_TI_K3=y +CONFIG_SOC_TI=y +CONFIG_SPI=y +CONFIG_DM_SPI=y +CONFIG_CADENCE_QSPI=y +CONFIG_TIMER=y +CONFIG_SPL_TIMER=y +CONFIG_OMAP_TIMER=y +CONFIG_LIB_RATIONAL=y +CONFIG_SPL_LIB_RATIONAL=y -- cgit v1.3.1 From 208ac0681edba07601af30815ed50052a6286f06 Mon Sep 17 00:00:00 2001 From: Nishanth Menon Date: Fri, 25 Apr 2025 12:31:17 -0500 Subject: configs:am67a_beagley_ai*: Drop un-necessary config options Drop SPI, EMMC, GPIO expanders that come with EVM etc. Signed-off-by: Nishanth Menon Reviewed-by: Bryan Brattlof Reviewed-by: Andrew Davis --- configs/am67a_beagley_ai_a53_defconfig | 8 -------- configs/am67a_beagley_ai_r5_defconfig | 23 ----------------------- 2 files changed, 31 deletions(-) diff --git a/configs/am67a_beagley_ai_a53_defconfig b/configs/am67a_beagley_ai_a53_defconfig index 295ff1740b7..cbf19a03b13 100644 --- a/configs/am67a_beagley_ai_a53_defconfig +++ b/configs/am67a_beagley_ai_a53_defconfig @@ -11,7 +11,6 @@ CONFIG_HAS_CUSTOM_SYS_INIT_SP_ADDR=y CONFIG_CUSTOM_SYS_INIT_SP_ADDR=0x80480000 CONFIG_ENV_SIZE=0x40000 CONFIG_DM_GPIO=y -CONFIG_SPL_DM_SPI=y CONFIG_DEFAULT_DEVICE_TREE="ti/k3-am67a-beagley-ai" CONFIG_OF_LIBFDT_OVERLAY=y CONFIG_DM_RESET=y @@ -50,7 +49,6 @@ CONFIG_SPL_RAM_DEVICE=y CONFIG_SPL_THERMAL=y CONFIG_SPL_YMODEM_SUPPORT=y CONFIG_CMD_CLK=y -# CONFIG_CMD_SPI is not set CONFIG_CMD_USB_MASS_STORAGE=y CONFIG_OF_CONTROL=y CONFIG_SPL_OF_CONTROL=y @@ -81,8 +79,6 @@ CONFIG_FASTBOOT_BUF_SIZE=0x2F000000 CONFIG_TI_SCI_PROTOCOL=y CONFIG_SPL_DM_GPIO_LOOKUP_LABEL=y CONFIG_DA8XX_GPIO=y -CONFIG_DM_PCA953X=y -CONFIG_SPL_DM_PCA953X=y CONFIG_DM_I2C=y CONFIG_SYS_I2C_OMAP24XX=y CONFIG_DM_MAILBOX=y @@ -90,11 +86,8 @@ CONFIG_K3_SEC_PROXY=y CONFIG_I2C_EEPROM=y CONFIG_SPL_I2C_EEPROM=y CONFIG_FS_LOADER=y -CONFIG_SUPPORT_EMMC_BOOT=y CONFIG_MMC_IO_VOLTAGE=y CONFIG_SPL_MMC_IO_VOLTAGE=y -CONFIG_MMC_HS400_SUPPORT=y -CONFIG_SPL_MMC_HS400_SUPPORT=y CONFIG_MMC_SDHCI=y CONFIG_MMC_SDHCI_ADMA=y CONFIG_SPL_MMC_SDHCI_ADMA=y @@ -118,7 +111,6 @@ CONFIG_DM_SERIAL=y CONFIG_SOC_DEVICE=y CONFIG_SOC_DEVICE_TI_K3=y CONFIG_SOC_TI=y -CONFIG_SPI=y CONFIG_SYSRESET=y CONFIG_SPL_SYSRESET=y CONFIG_SYSRESET_TI_SCI=y diff --git a/configs/am67a_beagley_ai_r5_defconfig b/configs/am67a_beagley_ai_r5_defconfig index 35c77e57e10..0a7e1c84c4a 100644 --- a/configs/am67a_beagley_ai_r5_defconfig +++ b/configs/am67a_beagley_ai_r5_defconfig @@ -8,10 +8,7 @@ CONFIG_K3_QOS=y CONFIG_TARGET_J722S_R5_BEAGLEY_AI=y CONFIG_HAS_CUSTOM_SYS_INIT_SP_ADDR=y CONFIG_CUSTOM_SYS_INIT_SP_ADDR=0x43c4a7f0 -CONFIG_SF_DEFAULT_SPEED=25000000 -CONFIG_SF_DEFAULT_MODE=0 CONFIG_ENV_SIZE=0x20000 -CONFIG_ENV_OFFSET=0x680000 CONFIG_SPL_DM_SPI=y CONFIG_DEFAULT_DEVICE_TREE="k3-am67a-r5-beagley-ai" CONFIG_DM_RESET=y @@ -49,10 +46,6 @@ CONFIG_SPL_DM_MAILBOX=y CONFIG_SPL_DM_RESET=y CONFIG_SPL_POWER_DOMAIN=y CONFIG_SPL_RAM_DEVICE=y -# CONFIG_SPL_SPI_FLASH_TINY is not set -CONFIG_SPL_SPI_FLASH_SFDP_SUPPORT=y -CONFIG_SPL_SPI_LOAD=y -CONFIG_SYS_SPI_U_BOOT_OFFS=0x80000 CONFIG_SPL_THERMAL=y CONFIG_SPL_YMODEM_SUPPORT=y CONFIG_HUSH_PARSER=y @@ -65,10 +58,7 @@ CONFIG_CMD_TIME=y CONFIG_CMD_FAT=y CONFIG_OF_CONTROL=y CONFIG_SPL_OF_CONTROL=y -CONFIG_ENV_IS_NOWHERE=y -CONFIG_ENV_IS_IN_MMC=y CONFIG_SYS_RELOC_GD_ENV_ADDR=y -CONFIG_SYS_MMC_ENV_PART=1 CONFIG_NO_NET=y CONFIG_SPL_DM=y CONFIG_SPL_DM_DEVICE_REMOVE=y @@ -90,20 +80,10 @@ CONFIG_SYS_I2C_OMAP24XX=y CONFIG_DM_MAILBOX=y CONFIG_K3_SEC_PROXY=y CONFIG_ESM_K3=y -CONFIG_MMC_HS400_SUPPORT=y CONFIG_MMC_SDHCI=y CONFIG_MMC_SDHCI_ADMA=y CONFIG_SPL_MMC_SDHCI_ADMA=y CONFIG_MMC_SDHCI_AM654=y -CONFIG_MTD=y -CONFIG_DM_MTD=y -CONFIG_MTD_SPI_NAND=y -CONFIG_DM_SPI_FLASH=y -CONFIG_SPI_FLASH_SFDP_SUPPORT=y -CONFIG_SPI_FLASH_SOFT_RESET=y -CONFIG_SPI_FLASH_SOFT_RESET_ON_BOOT=y -CONFIG_SPI_FLASH_SPANSION=y -CONFIG_SPI_FLASH_S28HX_T=y CONFIG_PINCTRL=y # CONFIG_PINCTRL_GENERIC is not set CONFIG_SPL_PINCTRL=y @@ -118,9 +98,6 @@ CONFIG_DM_SERIAL=y CONFIG_SOC_DEVICE=y CONFIG_SOC_DEVICE_TI_K3=y CONFIG_SOC_TI=y -CONFIG_SPI=y -CONFIG_DM_SPI=y -CONFIG_CADENCE_QSPI=y CONFIG_TIMER=y CONFIG_SPL_TIMER=y CONFIG_OMAP_TIMER=y -- cgit v1.3.1 From f8924c373bf88beb366fb1807def93714a9d5508 Mon Sep 17 00:00:00 2001 From: Nishanth Menon Date: Fri, 25 Apr 2025 12:31:18 -0500 Subject: configs: am67a_beagley_ai_a53: Enable additional features Enable basic EFI debug features, switch over to stdboot, enable GPIO, LED and PMIC used on this platform. And enable UHS mode support for SD cards in U-Boot. Unlike other BeagleBoard products, BeagleY-AI does not have alternative onboard non-volatile memories, so capsule support does not make sense. Acked-by: Andrew Davis Signed-off-by: Nishanth Menon Reviewed-by: Bryan Brattlof Reviewed-by: Andrew Davis --- configs/am67a_beagley_ai_a53_defconfig | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/configs/am67a_beagley_ai_a53_defconfig b/configs/am67a_beagley_ai_a53_defconfig index cbf19a03b13..9a5172cda1f 100644 --- a/configs/am67a_beagley_ai_a53_defconfig +++ b/configs/am67a_beagley_ai_a53_defconfig @@ -32,7 +32,7 @@ CONFIG_AUTOBOOT_KEYED=y CONFIG_AUTOBOOT_PROMPT="Press SPACE to abort autoboot in %d seconds\n" CONFIG_AUTOBOOT_DELAY_STR="d" CONFIG_AUTOBOOT_STOP_STR=" " -CONFIG_BOOTCOMMAND="run findfdt; run envboot; run distro_bootcmd" +CONFIG_BOOTCOMMAND="run set_led_state_start_load; run envboot; bootflow scan -lb; run set_led_state_fail_load" CONFIG_BOARD_LATE_INIT=y CONFIG_SPL_MAX_SIZE=0x58000 CONFIG_SPL_PAD_TO=0x0 @@ -49,7 +49,9 @@ CONFIG_SPL_RAM_DEVICE=y CONFIG_SPL_THERMAL=y CONFIG_SPL_YMODEM_SUPPORT=y CONFIG_CMD_CLK=y +CONFIG_CMD_GPIO_READ=y CONFIG_CMD_USB_MASS_STORAGE=y +CONFIG_CMD_EFIDEBUG=y CONFIG_OF_CONTROL=y CONFIG_SPL_OF_CONTROL=y CONFIG_OF_UPSTREAM=y @@ -81,6 +83,10 @@ CONFIG_SPL_DM_GPIO_LOOKUP_LABEL=y CONFIG_DA8XX_GPIO=y CONFIG_DM_I2C=y CONFIG_SYS_I2C_OMAP24XX=y +CONFIG_LED=y +CONFIG_SPL_LED=y +CONFIG_LED_GPIO=y +CONFIG_SPL_LED_GPIO=y CONFIG_DM_MAILBOX=y CONFIG_K3_SEC_PROXY=y CONFIG_I2C_EEPROM=y @@ -88,6 +94,7 @@ CONFIG_SPL_I2C_EEPROM=y CONFIG_FS_LOADER=y CONFIG_MMC_IO_VOLTAGE=y CONFIG_SPL_MMC_IO_VOLTAGE=y +CONFIG_MMC_UHS_SUPPORT=y CONFIG_MMC_SDHCI=y CONFIG_MMC_SDHCI_ADMA=y CONFIG_SPL_MMC_SDHCI_ADMA=y @@ -99,12 +106,15 @@ CONFIG_SPL_PINCTRL=y CONFIG_PINCTRL_SINGLE=y CONFIG_POWER_DOMAIN=y CONFIG_TI_SCI_POWER_DOMAIN=y +CONFIG_DM_PMIC=y +CONFIG_PMIC_TPS65219=y CONFIG_DM_REGULATOR=y CONFIG_SPL_DM_REGULATOR=y CONFIG_DM_REGULATOR_FIXED=y CONFIG_SPL_DM_REGULATOR_FIXED=y CONFIG_DM_REGULATOR_GPIO=y CONFIG_SPL_DM_REGULATOR_GPIO=y +CONFIG_DM_REGULATOR_TPS65219=y CONFIG_K3_SYSTEM_CONTROLLER=y CONFIG_RESET_TI_SCI=y CONFIG_DM_SERIAL=y -- cgit v1.3.1 From 9f5f9965960fa3019c27609bc1baedfd0ab4bfe6 Mon Sep 17 00:00:00 2001 From: Nishanth Menon Date: Fri, 25 Apr 2025 12:31:19 -0500 Subject: doc: beagle: Add BeagleY-AI documentation Document the BeagleY-AI usage, build and basic debug hints Reviewed-by: Udit Kumar Signed-off-by: Nishanth Menon Reviewed-by: Bryan Brattlof Reviewed-by: Andrew Davis --- doc/board/beagle/am67a_beagley_ai.rst | 244 ++++++++++++++++++++++++++++++++++ doc/board/beagle/index.rst | 1 + doc/board/ti/k3.rst | 1 + 3 files changed, 246 insertions(+) create mode 100644 doc/board/beagle/am67a_beagley_ai.rst diff --git a/doc/board/beagle/am67a_beagley_ai.rst b/doc/board/beagle/am67a_beagley_ai.rst new file mode 100644 index 00000000000..3d2fc4a3195 --- /dev/null +++ b/doc/board/beagle/am67a_beagley_ai.rst @@ -0,0 +1,244 @@ +.. SPDX-License-Identifier: GPL-2.0+ OR BSD-3-Clause +.. sectionauthor:: Nishanth Menon + +AM67A Beagleboard.org BeagleY-AI +================================ + +Introduction: +------------- + +BeagleBoard.org BeagleY-AI is an easy to use, affordable open source +hardware single board computer based on the Texas Instruments AM67A, +which features a quad-core 64-bit Arm CPU subsystem, 2 general-purpose +digital-signal-processors (DSP) and matrix-multiply-accelerators (MMA), +GPU, vision and deep learning accelerators, and multiple Arm Cortex-R5 +cores for low-power, low-latency GPIO control. + +Further information can be found at: + +* Product Page: https://beagley-ai.org/ +* Hardware documentation: https://openbeagle.org/beagley-ai/beagley-ai + +Boot Flow: +---------- +Below is the pictorial representation of boot flow: + +.. image:: ../ti/img/boot_diagram_k3_current.svg + :alt: Boot flow diagram + +- On this platform, 'TI Foundational Security' (TIFS) functions as the + security enclave master while 'Device Manager' (DM), also known as the + 'TISCI server' in "TI terminology", offers all the essential services. + The A53 or R5F (Aux core) sends requests to TIFS/DM to accomplish these + services, as illustrated in the diagram above. + +Sources: +-------- +.. include:: ../ti/k3.rst + :start-after: .. k3_rst_include_start_boot_sources + :end-before: .. k3_rst_include_end_boot_sources + +.. include:: ../ti/k3.rst + :start-after: .. k3_rst_include_start_boot_firmwares + :end-before: .. k3_rst_include_end_tifsstub + +Build procedure: +---------------- +0. Setup the environment variables: + +.. include:: ../ti/k3.rst + :start-after: .. k3_rst_include_start_common_env_vars_desc + :end-before: .. k3_rst_include_end_common_env_vars_desc + +.. include:: ../ti/k3.rst + :start-after: .. k3_rst_include_start_board_env_vars_desc + :end-before: .. k3_rst_include_end_board_env_vars_desc + +Set the variables corresponding to this platform: + +.. include:: ../ti/k3.rst + :start-after: .. k3_rst_include_start_common_env_vars_defn + :end-before: .. k3_rst_include_end_common_env_vars_defn +.. prompt:: bash $ + + export UBOOT_CFG_CORTEXR=am67a_beagley_ai_r5_defconfig + export UBOOT_CFG_CORTEXA=am67a_beagley_ai_a53_defconfig + export TFA_BOARD=lite + # we dont use any extra TFA parameters + unset TFA_EXTRA_ARGS + export OPTEE_PLATFORM=k3-am62x + +.. include:: ../ti/j722s_evm.rst + :start-after: .. j722s_evm_rst_include_start_build_steps + :end-before: .. j722s_evm_rst_include_end_build_steps + +Target Images +------------- +Copy these images to an SD card and boot: + +* tiboot3-j722s-hs-fs-evm.bin from Cortex-R5 build as tiboot3.bin. +* tispl.bin and u-boot.img from Cortex-A build. + +Image formats +------------- + +- tiboot3.bin + +.. image:: ../ti/img/multi_cert_tiboot3.bin.svg + :alt: tiboot3.bin image format + +- tispl.bin + +.. image:: ../ti/img/tifsstub_dm_tispl.bin.svg + :alt: tispl.bin image format + +Additional hardware for U-Boot development +------------------------------------------ + +* Serial Console is critical for U-Boot development on BeagleY-AI. See + `BeagleY-AI serial console documentation + `_. +* The only onboard storage option is uSD. +* (optionally) JTAG is useful when working with very early stages of boot. + +Flash to uSD card or how to deal with "bricked" Board +----------------------------------------------------- + +The only storage option on the platform is uSD card. However, if you +choose to hand format your own bootable uSD card, be aware that it can +be difficult. The following information may be helpful, but remember +that it is only sometimes reliable, and partition options can cause +issues. These can potentially help: + +* https://git.ti.com/cgit/arago-project/tisdk-setup-scripts/tree/create-sdcard.sh +* https://elinux.org/Beagleboard:Expanding_File_System_Partition_On_A_microSD +* Or manually as follows (may not take into distro needs such as EFI or swap): + +.. prompt:: bash # + + # Create image with partition table + parted --script \ + mklabel msdos \ + mkpart primary fat16 4MiB 20MiB \ + mkpart primary ext4 20MiB 100% \ + set 1 boot on \ + set 1 bls_boot off \ + set 1 lba on + # Create boot partition + mkfs.vfat 1 + # Create root partition + mkfs.ext4 2 + +The simplest option is to start with a standard distribution +image like those in `BeagleBoard.org Distros Page +`_ and download a disk image for +BeagleY-AI. Pick a 16GB+ uSD card to be on the safer side. + +With an SD/MMC Card reader and `Balena Etcher +`_, having a functional setup in minutes is +a trivial matter, and it works on almost all Host Operating Systems. +Yes Windows users, Windows Subsystem for Linux(WSL) based development +with U-Boot and update uSD card is practical. + +Updating U-Boot is a matter of copying the tiboot3.bin, tispl.bin and +u-boot.img to the "BOOT" partition of the uSD card. Remember to sync +and unmount (or Eject - depending on the Operating System) the uSD +card prior to physically removing from SD card reader. + +.. note:: + Great news! If the board has not been damaged physically, there's no + need to worry about it being "bricked" on this platform. You only have + to flash an uSD card, plug it in. This means that even if you make a + mistake, you can quickly fix it and rest easy. + + If you are frequently working with uSD cards, you might find the + following useful: + + * `USB-SD-Mux `_ + * `SD-Wire `_ + +LED patterns during boot +------------------------ + +.. list-table:: LED status indication as system boots up + :widths: 16 16 + :header-rows: 1 + + * - LED Color + - Indicates + + * - Only RED at startup + - Boot failure or R5 image not started up + + * - Steady Green + - A53 U-boot has started up + + * - Red/Orange + - OS boot process has been initiated + + * - Steady Green + - OS boot process failed and drops to U-Boot shell + +.. warning :: + + If the "red" power LED is not glowing, the system power supply is not + functional. Please refer to `BeagleY-AI documentation + `_ for further information. + +A53 SPL DDR Memory Layout +------------------------- + +.. include:: ../ti/j722s_evm.rst + :start-after: .. j722s_evm_rst_include_start_ddr_mem_layout + :end-before: .. j722s_evm_rst_include_end_ddr_mem_layout + +Debugging U-Boot +---------------- + +See :ref:`Common Debugging environment - OpenOCD`: for +detailed setup and debugging information. + +.. warning:: + + **OpenOCD support since**: commit 33749a7fbeb5 + + If the default package version of OpenOCD in your development + environment's distribution needs to be updated, it might be necessary to + build OpenOCD from the source. + +.. include:: ../ti/k3.rst + :start-after: .. k3_rst_include_start_openocd_connect_tag_connect + :end-before: .. k3_rst_include_end_openocd_connect_tag_connect + +.. include:: ../ti/k3.rst + :start-after: .. k3_rst_include_start_openocd_cfg_external_intro + :end-before: .. k3_rst_include_end_openocd_cfg_external_intro + +For example, with BeagleY-AI (J722S/AM67A platform), the openocd_connect.cfg: + +.. code-block:: tcl + + # TUMPA example: + # http://www.tiaowiki.com/w/TIAO_USB_Multi_Protocol_Adapter_User's_Manual + source [find interface/ftdi/tumpa.cfg] + + transport select jtag + + # default JTAG configuration has only SRST and no TRST + reset_config srst_only srst_push_pull + + # delay after SRST goes inactive + adapter srst delay 20 + + if { ![info exists SOC] } { + # Set the SoC of interest + set SOC j722s + } + + source [find target/ti_k3.cfg] + + ftdi tdo_sample_edge falling + + # Speeds for FT2232H are in multiples of 2, and 32MHz is tops + # max speed we seem to achieve is ~20MHz.. so we pick 16MHz + adapter speed 16000 diff --git a/doc/board/beagle/index.rst b/doc/board/beagle/index.rst index 9124546ebc7..e33d39fc677 100644 --- a/doc/board/beagle/index.rst +++ b/doc/board/beagle/index.rst @@ -11,4 +11,5 @@ ARM based boards :maxdepth: 2 am62x_beagleplay + am67a_beagley_ai.rst j721e_beagleboneai64 diff --git a/doc/board/ti/k3.rst b/doc/board/ti/k3.rst index 0deb4d768f9..c8acbc9950f 100644 --- a/doc/board/ti/k3.rst +++ b/doc/board/ti/k3.rst @@ -44,6 +44,7 @@ K3 Based SoCs K3 SoC based boards in other sections * :doc:`../beagle/am62x_beagleplay` +* :doc:`../beagle/am67a_beagley_ai` * :doc:`../beagle/j721e_beagleboneai64` * :doc:`../phytec/phycore-am62x` * :doc:`../phytec/phycore-am62ax` -- cgit v1.3.1