]> git.sur5r.net Git - u-boot/commitdiff
mkimage: Report information about fpga
authorMichal Simek <michal.simek@xilinx.com>
Tue, 17 May 2016 11:58:44 +0000 (13:58 +0200)
committerMichal Simek <michal.simek@xilinx.com>
Tue, 24 May 2016 09:15:02 +0000 (11:15 +0200)
Add FIT_FPGA_PROP that user can identify an optional
entry for fpga.

Signed-off-by: Michal Simek <michal.simek@xilinx.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
common/image-fit.c
common/image.c
doc/uImage.FIT/multi-with-fpga.its [new file with mode: 0644]
doc/uImage.FIT/source_file_format.txt
include/image.h

index c86b7c6b1182e42e3febf94caaa3604628f809c6..8a0ca2a8038db5f3aba06cf1cc5244988b6d056f 100644 (file)
@@ -1483,6 +1483,10 @@ void fit_conf_print(const void *fit, int noffset, const char *p)
        if (uname)
                printf("%s  FDT:          %s\n", p, uname);
 
+       uname = (char *)fdt_getprop(fit, noffset, FIT_FPGA_PROP, NULL);
+       if (uname)
+               printf("%s  FPGA:         %s\n", p, uname);
+
        /* Print out all of the specified loadables */
        for (loadables_index = 0;
             fdt_get_string_index(fit, noffset,
index 9824685344bb2c9e17fdbb710658aaaeeb03056f..ec78b7eab33663d7612c23c51370151ebf990c1c 100644 (file)
@@ -160,6 +160,7 @@ static const table_entry_t uimage_type[] = {
        {       IH_TYPE_RKSPI,      "rkspi",      "Rockchip SPI Boot Image" },
        {       IH_TYPE_ZYNQIMAGE,  "zynqimage",  "Xilinx Zynq Boot Image" },
        {       IH_TYPE_ZYNQMPIMAGE, "zynqmpimage", "Xilinx ZynqMP Boot Image" },
+       {       IH_TYPE_FPGA,       "fpga",       "FPGA Image" },
        {       -1,                 "",           "",                   },
 };
 
diff --git a/doc/uImage.FIT/multi-with-fpga.its b/doc/uImage.FIT/multi-with-fpga.its
new file mode 100644 (file)
index 0000000..0cdb31f
--- /dev/null
@@ -0,0 +1,67 @@
+/*
+ * U-Boot uImage source file with multiple kernels, ramdisks and FDT blobs
+ * This example makes use of the 'loadables' field
+ */
+
+/dts-v1/;
+
+/ {
+       description = "Configuration to load fpga before Kernel";
+       #address-cells = <1>;
+
+       images {
+               fdt@1 {
+                       description = "zc706";
+                       data = /incbin/("/tftpboot/devicetree.dtb");
+                       type = "flat_dt";
+                       arch = "arm";
+                       compression = "none";
+                       load = <0x10000000>;
+                       hash@1 {
+                               algo = "md5";
+                       };
+               };
+
+               fpga@1 {
+                       description = "FPGA";
+                       data = /incbin/("/tftpboot/download.bit");
+                       type = "fpga";
+                       arch = "arm";
+                       compression = "none";
+                       load = <0x30000000>;
+                       hash@1 {
+                               algo = "md5";
+                       };
+               };
+
+               linux_kernel@1 {
+                       description = "Linux";
+                       data = /incbin/("/tftpboot/zImage");
+                       type = "kernel";
+                       arch = "arm";
+                       os = "linux";
+                       compression = "none";
+                       load = <0x8000>;
+                       entry = <0x8000>;
+                       hash@1 {
+                               algo = "md5";
+                       };
+               };
+       };
+
+       configurations {
+               default = "config@2";
+               config@1 {
+                       description = "Linux";
+                       kernel = "linux_kernel@1";
+                       fdt = "fdt@1";
+               };
+
+               config@2 {
+                       description = "Linux with fpga";
+                       kernel = "linux_kernel@1";
+                       fdt = "fdt@1";
+                       fpga = "fpga@1";
+               };
+       };
+};
index 9c527c3e012d9dd3a41aa27727e696a7446f10e8..3f5418045e5b6e203a8172a42d1399b6de2c61cd 100644 (file)
@@ -236,6 +236,7 @@ o config@1
   |- kernel = "kernel sub-node unit name"
   |- ramdisk = "ramdisk sub-node unit name"
   |- fdt = "fdt sub-node unit-name"
+  |- fpga = "fpga sub-node unit-name"
   |- loadables = "loadables sub-node unit-name"
 
 
@@ -251,6 +252,8 @@ o config@1
     "fdt type").
   - setup : Unit name of the corresponding setup binary (used for booting
     an x86 kernel). This contains the setup.bin file built by the kernel.
+  - fpga : Unit name of the corresponding fpga bitstream blob
+    (component image node of a "fpga type").
   - loadables : Unit name containing a list of additional binaries to be
     loaded at their given locations.  "loadables" is a comma-separated list
     of strings. U-Boot will load each binary at its given start-address.
index a8488f2b392e9cb415b624395cff8325b7a84b70..e2a90ca202b164d02ce619548719d6e62d791977 100644 (file)
@@ -247,8 +247,9 @@ struct lmb;
 #define IH_TYPE_RKSPI          25      /* Rockchip SPI image           */
 #define IH_TYPE_ZYNQIMAGE      26      /* Xilinx Zynq Boot Image */
 #define IH_TYPE_ZYNQMPIMAGE    27      /* Xilinx ZynqMP Boot Image */
+#define IH_TYPE_FPGA           28      /* FPGA Image */
 
-#define IH_TYPE_COUNT          28      /* Number of image types */
+#define IH_TYPE_COUNT          29      /* Number of image types */
 
 /*
  * Compression Types
@@ -810,6 +811,7 @@ int bootz_setup(ulong image, ulong *start, ulong *end);
 #define FIT_LOADABLE_PROP      "loadables"
 #define FIT_DEFAULT_PROP       "default"
 #define FIT_SETUP_PROP         "setup"
+#define FIT_FPGA_PROP          "fpga"
 
 #define FIT_MAX_HASH_LEN       HASH_MAX_DIGEST_SIZE