summaryrefslogtreecommitdiffstats
path: root/common/cmd_fpga.c
diff options
context:
space:
mode:
Diffstat (limited to 'common/cmd_fpga.c')
-rw-r--r--common/cmd_fpga.c36
1 files changed, 24 insertions, 12 deletions
diff --git a/common/cmd_fpga.c b/common/cmd_fpga.c
index 4030d04f8d..10199f59d4 100644
--- a/common/cmd_fpga.c
+++ b/common/cmd_fpga.c
@@ -216,19 +216,31 @@ int do_fpga (cmd_tbl_t * cmdtp, int flag, int argc, char *argv[])
break;
case FPGA_LOADMK:
- {
- image_header_t header;
- image_header_t *hdr = &header;
- ulong data;
-
- memmove (&header, (char *)fpga_data, image_get_header_size ());
- if (!image_check_magic (hdr)) {
- puts ("Bad Magic Number\n");
- return 1;
+ switch (gen_image_get_format (fpga_data)) {
+ case IMAGE_FORMAT_LEGACY:
+ {
+ image_header_t *hdr = (image_header_t *)fpga_data;
+ ulong data;
+
+ if (!image_check_magic (hdr)) {
+ puts ("Bad Magic Number\n");
+ return 1;
+ }
+ data = (ulong)image_get_data (hdr);
+ data_size = image_get_data_size (hdr);
+ rc = fpga_load (dev, (void *)data, data_size);
}
- data = ((ulong)fpga_data + image_get_header_size ());
- data_size = image_get_data_size (hdr);
- rc = fpga_load (dev, (void *)data, data_size);
+ break;
+#if defined(CONFIG_FIT)
+ case IMAGE_FORMAT_FIT:
+ fit_unsupported ("fpga");
+ rc = FPGA_FAIL;
+ break;
+#endif
+ default:
+ puts ("** Unknown image type\n");
+ rc = FPGA_FAIL;
+ break;
}
break;
OpenPOWER on IntegriCloud