Commit b4a6c2aae6165782dd9fa4944b38c2c2a7419af1
Committed by
Tom Rini
1 parent
2a2ee2ac35
Exists in
v2017.01-smarct4x
and in
25 other branches
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; |
include/spl.h
... | ... | @@ -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 |