diff options
| author | Tom Rini <[email protected]> | 2022-10-26 15:24:59 -0400 |
|---|---|---|
| committer | Tom Rini <[email protected]> | 2022-10-26 15:24:59 -0400 |
| commit | 8bc87a4c55a1723728374a5643f13bced37dad6b (patch) | |
| tree | b4ace98fe43682d20639adab97778dca140149c2 /common | |
| parent | b487387226d49ba2f39757269fb95ea398e8f384 (diff) | |
| parent | 9b0b5648d6e4d89aa594022e48894e811c250d5f (diff) | |
Merge branch '2022-10-26-assorted-fixes-and-updates'
- Reduce memory usage in SPL in some cases, clarify some standalone API
license issues, fix a Kconfig dependency, pin to a specific version of
python setuptools for now, fix a signing problem in mkimage and add a
memory uclass.
Diffstat (limited to 'common')
| -rw-r--r-- | common/spl/Kconfig | 7 | ||||
| -rw-r--r-- | common/spl/spl_legacy.c | 19 | ||||
| -rw-r--r-- | common/spl/spl_nand.c | 2 | ||||
| -rw-r--r-- | common/spl/spl_nor.c | 6 |
4 files changed, 21 insertions, 13 deletions
diff --git a/common/spl/Kconfig b/common/spl/Kconfig index b1b9e09dc8f..b738c749fff 100644 --- a/common/spl/Kconfig +++ b/common/spl/Kconfig @@ -796,6 +796,13 @@ config SPL_DM_MAILBOX this option to build the drivers in drivers/mailbox as part of SPL build. +config SPL_MEMORY + bool "Support Memory controller drivers" + help + Enable support for Memory Controller drivers within SPL. + These devices provide Memory bus interface to various devices like + SRAM, Ethernet adapters, FPGAs, etc. + config SPL_MMC bool "Support MMC" depends on MMC diff --git a/common/spl/spl_legacy.c b/common/spl/spl_legacy.c index b3624dfbb77..4c7f44687e8 100644 --- a/common/spl/spl_legacy.c +++ b/common/spl/spl_legacy.c @@ -77,32 +77,29 @@ static inline int spl_image_get_comp(const struct legacy_img_hdr *hdr) int spl_load_legacy_img(struct spl_image_info *spl_image, struct spl_boot_device *bootdev, - struct spl_load_info *load, ulong header) + struct spl_load_info *load, ulong offset, + struct legacy_img_hdr *hdr) { __maybe_unused SizeT lzma_len; __maybe_unused void *src; - struct legacy_img_hdr hdr; ulong dataptr; int ret; - /* Read header into local struct */ - load->read(load, header, sizeof(hdr), &hdr); - /* * If the payload is compressed, the decompressed data should be * directly write to its load address. */ - if (spl_image_get_comp(&hdr) != IH_COMP_NONE) + if (spl_image_get_comp(hdr) != IH_COMP_NONE) spl_image->flags |= SPL_COPY_PAYLOAD_ONLY; - ret = spl_parse_image_header(spl_image, bootdev, &hdr); + ret = spl_parse_image_header(spl_image, bootdev, hdr); if (ret) return ret; /* Read image */ - switch (spl_image_get_comp(&hdr)) { + switch (spl_image_get_comp(hdr)) { case IH_COMP_NONE: - dataptr = header; + dataptr = offset; /* * Image header will be skipped only if SPL_COPY_PAYLOAD_ONLY @@ -119,7 +116,7 @@ int spl_load_legacy_img(struct spl_image_info *spl_image, lzma_len = LZMA_LEN; /* dataptr points to compressed payload */ - dataptr = header + sizeof(hdr); + dataptr = offset + sizeof(hdr); debug("LZMA: Decompressing %08lx to %08lx\n", dataptr, spl_image->load_addr); @@ -143,7 +140,7 @@ int spl_load_legacy_img(struct spl_image_info *spl_image, default: debug("Compression method %s is not supported\n", - genimg_get_comp_short_name(image_get_comp(&hdr))); + genimg_get_comp_short_name(image_get_comp(hdr))); return -EINVAL; } diff --git a/common/spl/spl_nand.c b/common/spl/spl_nand.c index a16738818c1..4f4c00f2a1b 100644 --- a/common/spl/spl_nand.c +++ b/common/spl/spl_nand.c @@ -119,7 +119,7 @@ static int spl_nand_load_element(struct spl_image_info *spl_image, load.bl_len = 1; load.read = spl_nand_legacy_read; - return spl_load_legacy_img(spl_image, bootdev, &load, offset); + return spl_load_legacy_img(spl_image, bootdev, &load, offset, header); } else { err = spl_parse_image_header(spl_image, bootdev, header); if (err) diff --git a/common/spl/spl_nor.c b/common/spl/spl_nor.c index 281c6136f54..eaa95fb9b59 100644 --- a/common/spl/spl_nor.c +++ b/common/spl/spl_nor.c @@ -111,10 +111,14 @@ static int spl_nor_load_image(struct spl_image_info *spl_image, /* Legacy image handling */ if (IS_ENABLED(CONFIG_SPL_LEGACY_IMAGE_FORMAT)) { + struct legacy_img_hdr hdr; + load.bl_len = 1; load.read = spl_nor_load_read; + spl_nor_load_read(&load, spl_nor_get_uboot_base(), sizeof(hdr), &hdr); return spl_load_legacy_img(spl_image, bootdev, &load, - spl_nor_get_uboot_base()); + spl_nor_get_uboot_base(), + &hdr); } return 0; |
