diff options
| author | Tom Rini <[email protected]> | 2024-11-25 17:23:49 -0600 |
|---|---|---|
| committer | Tom Rini <[email protected]> | 2024-11-25 17:34:08 -0600 |
| commit | 48380f9b2a12e3fc6339d6af5a154bded769d911 (patch) | |
| tree | 4782d21bfc7ddf81f757a38a85bf47d18f20e69d /boot | |
| parent | dc1859f8d2ac3faaa5e2e1d465ec4bd8980520a5 (diff) | |
| parent | 3073246d1be682071d8b3d07d06c2484907aed60 (diff) | |
Merge tag 'v2025.01-rc3' into next
Prepare v2025.01-rc3
Diffstat (limited to 'boot')
| -rw-r--r-- | boot/bootmeth_extlinux.c | 3 | ||||
| -rw-r--r-- | boot/image-board.c | 16 | ||||
| -rw-r--r-- | boot/upl_read.c | 2 |
3 files changed, 16 insertions, 5 deletions
diff --git a/boot/bootmeth_extlinux.c b/boot/bootmeth_extlinux.c index be8fbf4df63..c6ae6dffcb7 100644 --- a/boot/bootmeth_extlinux.c +++ b/boot/bootmeth_extlinux.c @@ -8,6 +8,7 @@ #define LOG_CATEGORY UCLASS_BOOTSTD +#include <asm/cache.h> #include <bootdev.h> #include <bootflow.h> #include <bootmeth.h> @@ -159,7 +160,7 @@ static int extlinux_read_bootflow(struct udevice *dev, struct bootflow *bflow) return log_msg_ret("try", ret); size = bflow->size; - ret = bootmeth_alloc_file(bflow, 0x10000, 1); + ret = bootmeth_alloc_file(bflow, 0x10000, ARCH_DMA_MINALIGN); if (ret) return log_msg_ret("read", ret); diff --git a/boot/image-board.c b/boot/image-board.c index 1757e5816d8..b726bd6b303 100644 --- a/boot/image-board.c +++ b/boot/image-board.c @@ -624,9 +624,10 @@ int boot_get_fpga(struct bootm_headers *images) void *buf; int conf_noffset; int fit_img_result; - const char *uname, *name; + const char *uname, *name, *compatible; int err; int devnum = 0; /* TODO support multi fpga platforms */ + int flags = 0; if (!IS_ENABLED(CONFIG_FPGA)) return -ENOSYS; @@ -674,20 +675,29 @@ int boot_get_fpga(struct bootm_headers *images) return fit_img_result; } + conf_noffset = fit_image_get_node(buf, uname); + compatible = fdt_getprop(buf, conf_noffset, "compatible", NULL); + if (!compatible) { + printf("'fpga' image without 'compatible' property\n"); + } else { + if (CONFIG_IS_ENABLED(FPGA_LOAD_SECURE)) + flags = fpga_compatible2flag(devnum, compatible); + } + if (!fpga_is_partial_data(devnum, img_len)) { name = "full"; err = fpga_loadbitstream(devnum, (char *)img_data, img_len, BIT_FULL); if (err) err = fpga_load(devnum, (const void *)img_data, - img_len, BIT_FULL, 0); + img_len, BIT_FULL, flags); } else { name = "partial"; err = fpga_loadbitstream(devnum, (char *)img_data, img_len, BIT_PARTIAL); if (err) err = fpga_load(devnum, (const void *)img_data, - img_len, BIT_PARTIAL, 0); + img_len, BIT_PARTIAL, flags); } if (err) diff --git a/boot/upl_read.c b/boot/upl_read.c index 5063897a132..be3e1d116e1 100644 --- a/boot/upl_read.c +++ b/boot/upl_read.c @@ -520,7 +520,7 @@ static int decode_upl_graphics(struct upl *upl, ofnode node) return log_msg_ret("reg", -EINVAL); } - len = decode_addr_size(upl, buf, sizeof(buf), &gra->reg); + len = decode_addr_size(upl, buf, size, &gra->reg); if (len < 0) return log_msg_ret("buf", len); |
