Commit b4a6c2aae6165782dd9fa4944b38c2c2a7419af1

Authored by Simon Glass
Committed by Tom Rini
1 parent 2a2ee2ac35

spl: Update ext functions to take an spl_image parameter

Update the ext loader to avoid using the spl_image global variable.

Signed-off-by: Simon Glass <sjg@chromium.org>
Reviewed-by: Tom Rini <trini@konsulko.com>

Showing 4 changed files with 23 additions and 17 deletions Side-by-side Diff

common/spl/spl_ext.c
... ... @@ -10,9 +10,9 @@
10 10 #include <image.h>
11 11  
12 12 #ifdef CONFIG_SPL_EXT_SUPPORT
13   -int spl_load_image_ext(struct blk_desc *block_dev,
14   - int partition,
15   - const char *filename)
  13 +int spl_load_image_ext(struct spl_image_info *spl_image,
  14 + struct blk_desc *block_dev, int partition,
  15 + const char *filename)
16 16 {
17 17 s32 err;
18 18 struct image_header *header;
19 19  
... ... @@ -48,13 +48,13 @@
48 48 goto end;
49 49 }
50 50  
51   - err = spl_parse_image_header(&spl_image, header);
  51 + err = spl_parse_image_header(spl_image, header);
52 52 if (err < 0) {
53 53 puts("spl: ext: failed to parse image header\n");
54 54 goto end;
55 55 }
56 56  
57   - err = ext4fs_read((char *)spl_image.load_addr, filelen, &actlen);
  57 + err = ext4fs_read((char *)spl_image->load_addr, filelen, &actlen);
58 58  
59 59 end:
60 60 #ifdef CONFIG_SPL_LIBCOMMON_SUPPORT
... ... @@ -67,7 +67,8 @@
67 67 }
68 68  
69 69 #ifdef CONFIG_SPL_OS_BOOT
70   -int spl_load_image_ext_os(struct blk_desc *block_dev, int partition)
  70 +int spl_load_image_ext_os(struct spl_image_info *spl_image,
  71 + struct blk_desc *block_dev, int partition)
71 72 {
72 73 int err;
73 74 __maybe_unused loff_t filelen, actlen;
... ... @@ -104,7 +105,8 @@
104 105 }
105 106 file = getenv("falcon_image_file");
106 107 if (file) {
107   - err = spl_load_image_ext(block_dev, partition, file);
  108 + err = spl_load_image_ext(spl_image, block_dev,
  109 + partition, file);
108 110 if (err != 0) {
109 111 puts("spl: falling back to default\n");
110 112 goto defaults;
111 113  
... ... @@ -134,11 +136,12 @@
134 136 return -1;
135 137 }
136 138  
137   - return spl_load_image_ext(block_dev, partition,
  139 + return spl_load_image_ext(spl_image, block_dev, partition,
138 140 CONFIG_SPL_FS_LOAD_KERNEL_NAME);
139 141 }
140 142 #else
141   -int spl_load_image_ext_os(struct blk_desc *block_dev, int partition)
  143 +int spl_load_image_ext_os(struct spl_image_info *spl_image,
  144 + struct blk_desc *block_dev, int partition)
142 145 {
143 146 return -ENOSYS;
144 147 }
common/spl/spl_mmc.c
... ... @@ -245,13 +245,13 @@
245 245 #endif
246 246 #ifdef CONFIG_SPL_EXT_SUPPORT
247 247 if (!spl_start_uboot()) {
248   - err = spl_load_image_ext_os(&mmc->block_dev,
  248 + err = spl_load_image_ext_os(spl_image, &mmc->block_dev,
249 249 CONFIG_SYS_MMCSD_FS_BOOT_PARTITION);
250 250 if (!err)
251 251 return err;
252 252 }
253 253 #ifdef CONFIG_SPL_FS_LOAD_PAYLOAD_NAME
254   - err = spl_load_image_ext(&mmc->block_dev,
  254 + err = spl_load_image_ext(spl_image, &mmc->block_dev,
255 255 CONFIG_SYS_MMCSD_FS_BOOT_PARTITION,
256 256 CONFIG_SPL_FS_LOAD_PAYLOAD_NAME);
257 257 if (!err)
drivers/mtd/spi/sunxi_spi_spl.c
... ... @@ -262,7 +262,8 @@
262 262  
263 263 /*****************************************************************************/
264 264  
265   -static int spl_spi_load_image(struct spl_boot_device *bootdev)
  265 +static int spl_spi_load_image(struct spl_image_info *spl_image,
  266 + struct spl_boot_device *bootdev)
266 267 {
267 268 int err;
268 269 struct image_header *header;
269 270  
... ... @@ -271,12 +272,12 @@
271 272 spi0_init();
272 273  
273 274 spi0_read_data((void *)header, CONFIG_SYS_SPI_U_BOOT_OFFS, 0x40);
274   - err = spl_parse_image_header(&spl_image, header);
  275 + err = spl_parse_image_header(spl_image, header);
275 276 if (err)
276 277 return err;
277 278  
278   - spi0_read_data((void *)spl_image.load_addr, CONFIG_SYS_SPI_U_BOOT_OFFS,
279   - spl_image.size);
  279 + spi0_read_data((void *)spl_image->load_addr, CONFIG_SYS_SPI_U_BOOT_OFFS,
  280 + spl_image->size);
280 281  
281 282 spi0_deinit();
282 283 return 0;
... ... @@ -191,9 +191,11 @@
191 191 void __noreturn jump_to_image_no_args(struct spl_image_info *spl_image);
192 192  
193 193 /* SPL EXT image functions */
194   -int spl_load_image_ext(struct blk_desc *block_dev, int partition,
  194 +int spl_load_image_ext(struct spl_image_info *spl_image,
  195 + struct blk_desc *block_dev, int partition,
195 196 const char *filename);
196   -int spl_load_image_ext_os(struct blk_desc *block_dev, int partition);
  197 +int spl_load_image_ext_os(struct spl_image_info *spl_image,
  198 + struct blk_desc *block_dev, int partition);
197 199  
198 200 /**
199 201 * spl_init() - Set up device tree and driver model in SPL if enabled