diff options
| author | Tom Rini <[email protected]> | 2024-09-23 08:11:01 -0600 |
|---|---|---|
| committer | Tom Rini <[email protected]> | 2024-09-23 08:11:01 -0600 |
| commit | 0aea8264f668bdcb2f352e6facc8d1cebe873e0a (patch) | |
| tree | 774d612b2778f96d20996994183908743095cd21 /board | |
| parent | 90cc07fd786d1fca38001a6b5c37b090f13cde3b (diff) | |
| parent | 61bf0fa8663d85c5d4088a9f82c9244181f3adce (diff) | |
Merge tag 'xilinx-for-v2025.01-rc1' of https://source.denx.de/u-boot/custodians/u-boot-microblaze into next
AMD/Xilinx changes for v2025.01-rc1
kbuild:
- Add rules for automatically applying DT overlays
Microblaze:
- Enable bootscript location via DT
AMD/Xilinx
- Enable SIMPLE_PM_BUS by default
ZynqMP:
- DT updates and alignments with dt-schema
- Call fdtoverlay via make directly
- Enable non-invasive CCI-400 PMU debug
- Disable secure access for boot devices
- Add new zynqmp reboot command
Versal NET:
- Cleanup spi_get_env_dev()
Kria:
- Add bootmenu support
sdhci:
- Do not call device_is_compatible everywhere
net:
- Remove is-internal-pcspma DT flag
Diffstat (limited to 'board')
| -rw-r--r-- | board/xilinx/common/board.c | 37 | ||||
| -rw-r--r-- | board/xilinx/versal-net/board.c | 5 | ||||
| -rw-r--r-- | board/xilinx/zynqmp/zynqmp.c | 8 | ||||
| -rw-r--r-- | board/xilinx/zynqmp/zynqmp_kria.env | 12 |
4 files changed, 37 insertions, 25 deletions
diff --git a/board/xilinx/common/board.c b/board/xilinx/common/board.c index 1c100d61589..5e5eb49ddf3 100644 --- a/board/xilinx/common/board.c +++ b/board/xilinx/common/board.c @@ -425,28 +425,25 @@ int board_late_init_xilinx(void) struct xilinx_board_description *desc; phys_size_t bootm_size = gd->ram_top - gd->ram_base; u64 bootscr_flash_offset, bootscr_flash_size; + ulong scriptaddr; + u64 bootscr_address; + u64 bootscr_offset; - if (!IS_ENABLED(CONFIG_MICROBLAZE)) { - ulong scriptaddr; - u64 bootscr_address; - u64 bootscr_offset; - - /* Fetch bootscr_address/bootscr_offset from DT and update */ - if (!ofnode_read_bootscript_address(&bootscr_address, - &bootscr_offset)) { - if (bootscr_offset) - ret |= env_set_hex("scriptaddr", - gd->ram_base + - bootscr_offset); - else - ret |= env_set_hex("scriptaddr", - bootscr_address); - } else { - /* Update scriptaddr(bootscr offset) from env */ - scriptaddr = env_get_hex("scriptaddr", 0); + /* Fetch bootscr_address/bootscr_offset from DT and update */ + if (!ofnode_read_bootscript_address(&bootscr_address, + &bootscr_offset)) { + if (bootscr_offset) ret |= env_set_hex("scriptaddr", - gd->ram_base + scriptaddr); - } + gd->ram_base + + bootscr_offset); + else + ret |= env_set_hex("scriptaddr", + bootscr_address); + } else { + /* Update scriptaddr(bootscr offset) from env */ + scriptaddr = env_get_hex("scriptaddr", 0); + ret |= env_set_hex("scriptaddr", + gd->ram_base + scriptaddr); } if (!ofnode_read_bootscript_flash(&bootscr_flash_offset, diff --git a/board/xilinx/versal-net/board.c b/board/xilinx/versal-net/board.c index 1d67e3f3185..4d5913cff1d 100644 --- a/board/xilinx/versal-net/board.c +++ b/board/xilinx/versal-net/board.c @@ -12,6 +12,7 @@ #include <env_internal.h> #include <log.h> #include <malloc.h> +#include <spi.h> #include <time.h> #include <asm/cache.h> #include <asm/global_data.h> @@ -196,7 +197,6 @@ static u8 versal_net_get_bootmode(void) int spi_get_env_dev(void) { struct udevice *dev; - const char *mode = NULL; int bootseq = -1; switch (versal_net_get_bootmode()) { @@ -207,7 +207,6 @@ int spi_get_env_dev(void) debug("QSPI driver for QSPI device is not present\n"); break; } - mode = "xspi"; bootseq = dev_seq(dev); break; case QSPI_MODE_32BIT: @@ -217,7 +216,6 @@ int spi_get_env_dev(void) debug("QSPI driver for QSPI device is not present\n"); break; } - mode = "xspi"; bootseq = dev_seq(dev); break; case OSPI_MODE: @@ -227,7 +225,6 @@ int spi_get_env_dev(void) debug("OSPI driver for OSPI device is not present\n"); break; } - mode = "xspi"; bootseq = dev_seq(dev); break; default: diff --git a/board/xilinx/zynqmp/zynqmp.c b/board/xilinx/zynqmp/zynqmp.c index e6331c0e4d8..20a675c010d 100644 --- a/board/xilinx/zynqmp/zynqmp.c +++ b/board/xilinx/zynqmp/zynqmp.c @@ -72,6 +72,14 @@ int __maybe_unused psu_uboot_init(void) writel(ZYNQMP_PS_SYSMON_ANALOG_BUS_VAL, ZYNQMP_AMS_PS_SYSMON_ANALOG_BUS); + /* Disable secure access for boot devices */ + writel(0x04920492, ZYNQMP_IOU_SECURE_SLCR); + writel(0x00920492, ZYNQMP_IOU_SECURE_SLCR + 4); + + /* Enable CCI PMU events */ + writel(ZYNQMP_CCI_REG_CCI_MISC_CTRL_NIDEN, + ZYNQMP_CCI_REG_CCI_MISC_CTRL); + /* Delay is required for clocks to be propagated */ udelay(1000000); diff --git a/board/xilinx/zynqmp/zynqmp_kria.env b/board/xilinx/zynqmp/zynqmp_kria.env index 49ef3e7d753..d0e431ebb46 100644 --- a/board/xilinx/zynqmp/zynqmp_kria.env +++ b/board/xilinx/zynqmp/zynqmp_kria.env @@ -49,9 +49,19 @@ usb_boot_devices='usb0 usb1 usb2 usb3 usb4' som_cc_boot=if test ${card1_name} = SCK-KV-G; then setenv boot_targets mmc1 ${usb_boot_devices} pxe dhcp jtag && run distro_bootcmd; elif test ${card1_name} = SCK-KR-G; then setenv boot_targets ${usb_boot_devices} pxe dhcp jtag && run distro_bootcmd; else test ${card1_name} = SCK-KD-G; setenv boot_targets ${usb_boot_devices} pxe dhcp jtag && run distro_bootcmd; fi;" som_mmc_boot=setenv boot_targets mmc0 && run distro_bootcmd +# To disable bootmenu set enable_bootmenu=0 +enable_bootmenu=1 +check_cc_for_default_boot=if test ${card1_name} = SCK-KV-G || test ${card1_name} = SCK-KR-G || test ${card1_name} = SCK-KD-G; then setenv bootmenu_default 1; else setenv bootmenu_default 0; fi +som_bootmenu=if test ${enable_bootmenu} = 1; then run check_cc_for_default_boot; bootmenu; else run som_mmc_boot; fi + k26_starter=SMK-K26-XCL2G k24_starter=SMK-K24-XCL2G -bootcmd=setenv model $board_name && if setexpr model gsub .*$k24_starter* $k24_starter || setexpr model gsub .*$k26_starter* $k26_starter; then run som_cc_boot; else run som_mmc_boot; run som_cc_boot; fi +bootcmd=setenv model $board_name; setexpr model gsub ".*${k24_starter}.*" starter; setexpr model gsub ".*${k26_starter}.*" starter; if test ${model} = "starter"; then run som_cc_boot; else run som_bootmenu; fi + +# Boot menu +bootmenu_0=eMMC Boot=run som_mmc_boot +bootmenu_1=SD Boot=run som_cc_boot +bootmenu_delay=5 usb_hub_init=mw 1000 0056 && sleep 1 && i2c write 1000 2d aa 2 -s |
