hc
2023-11-06 9df731a176aab8e03b984b681b1bea01ccff6644
u-boot/arch/arm/mach-rockchip/fit_misc.c
....@@ -6,6 +6,7 @@
66
77 #include <common.h>
88 #include <boot_rkimg.h>
9
+#include <malloc.h>
910 #include <misc.h>
1011 #ifdef CONFIG_SPL_BUILD
1112 #include <spl.h>
....@@ -25,7 +26,7 @@
2526 #if CONFIG_IS_ENABLED(FIT_IMAGE_POST_PROCESS)
2627
2728 #define FIT_UNCOMP_HASH_NODENAME "digest"
28
-#if CONFIG_IS_ENABLED(MISC_DECOMPRESS) || CONFIG_IS_ENABLED(GZIP)
29
+#if CONFIG_IS_ENABLED(MISC_DECOMPRESS) || CONFIG_IS_ENABLED(GZIP) || CONFIG_IS_ENABLED(LZMA)
2930 static int fit_image_get_uncomp_digest(const void *fit, int parent_noffset)
3031 {
3132 const char *name;
....@@ -126,8 +127,10 @@
126127 else
127128 misc_decompress_sync(comp);
128129 #else
130
+#if CONFIG_IS_ENABLED(GZIP)
129131 ret = gunzip((void *)(*load_addr), ALIGN(len, FIT_MAX_SPL_IMAGE_SZ),
130132 (void *)(*src_addr), (void *)(&len));
133
+#endif
131134 #endif
132135 }
133136
....@@ -154,7 +157,7 @@
154157 void board_fit_image_post_process(void *fit, int node, ulong *load_addr,
155158 ulong **src_addr, size_t *src_len, void *spec)
156159 {
157
-#if CONFIG_IS_ENABLED(MISC_DECOMPRESS) || CONFIG_IS_ENABLED(GZIP)
160
+#if CONFIG_IS_ENABLED(MISC_DECOMPRESS) || CONFIG_IS_ENABLED(GZIP) || CONFIG_IS_ENABLED(LZMA)
158161 fit_decomp_image(fit, node, load_addr, src_addr, src_len, spec);
159162 #endif
160163
....@@ -169,6 +172,33 @@
169172 }
170173 }
171174 #endif
175
+
176
+#ifndef CONFIG_SPL_BUILD
177
+ if (fit_image_check_type(fit, node, IH_TYPE_FIRMWARE)) {
178
+ const char *uname;
179
+ char *old, *new;
180
+ size_t len;
181
+
182
+ uname = fdt_get_name(fit, node, NULL);
183
+ if (strcmp("bootargs", uname))
184
+ return;
185
+
186
+ old = env_get("bootargs");
187
+ if (!old)
188
+ return;
189
+
190
+ len = strlen(old) + (*src_len) + 2;
191
+ new = calloc(1, len);
192
+ if (new) {
193
+ strcpy(new, old);
194
+ strcat(new, " ");
195
+ strcat(new, (char *)(*src_addr));
196
+ env_set("bootargs", new);
197
+ free(new);
198
+ }
199
+
200
+ }
201
+#endif
172202 }
173203 #endif /* FIT_IMAGE_POST_PROCESS */
174204 /*