summaryrefslogtreecommitdiff
path: root/board
diff options
context:
space:
mode:
authorTom Rini <[email protected]>2024-09-23 08:11:01 -0600
committerTom Rini <[email protected]>2024-09-23 08:11:01 -0600
commit0aea8264f668bdcb2f352e6facc8d1cebe873e0a (patch)
tree774d612b2778f96d20996994183908743095cd21 /board
parent90cc07fd786d1fca38001a6b5c37b090f13cde3b (diff)
parent61bf0fa8663d85c5d4088a9f82c9244181f3adce (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.c37
-rw-r--r--board/xilinx/versal-net/board.c5
-rw-r--r--board/xilinx/zynqmp/zynqmp.c8
-rw-r--r--board/xilinx/zynqmp/zynqmp_kria.env12
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