]> git.kernelconcepts.de Git - karo-tx-uboot.git/blobdiff - include/image.h
at91sam9x5ek: regroup FAT/DOS features
[karo-tx-uboot.git] / include / image.h
index c56a18df70dd8f560bf60c2f7eb1b1cbb99016fc..0a895f2044c21a4b81245caae79ef95af6a6b999 100644 (file)
@@ -34,6 +34,7 @@
 #define __IMAGE_H__
 
 #include "compiler.h"
+#include <asm/byteorder.h>
 
 #ifdef USE_HOSTCC
 
 #define IH_ARCH_AVR32          17      /* AVR32        */
 #define IH_ARCH_ST200          18      /* STMicroelectronics ST200  */
 #define IH_ARCH_SANDBOX                19      /* Sandbox architecture (test only) */
-#define IH_ARCH_NDS32          19      /* ANDES Technology - NDS32  */
+#define IH_ARCH_NDS32          20      /* ANDES Technology - NDS32  */
+#define IH_ARCH_OPENRISC        21     /* OpenRISC 1000  */
 
 /*
  * Image Types
 #define IH_TYPE_UBLIMAGE       11      /* Davinci UBL Image            */
 #define IH_TYPE_OMAPIMAGE      12      /* TI OMAP Config Header Image  */
 #define IH_TYPE_AISIMAGE       13      /* TI Davinci AIS Image         */
+#define IH_TYPE_KERNEL_NOLOAD  14      /* OS Kernel Image, can run from any load address */
+#define IH_TYPE_PBLIMAGE       15      /* Freescale PBL Boot Image     */
 
 /*
  * Compression Types
  * all data in network byte order (aka natural aka bigendian).
  */
 typedef struct image_header {
-       uint32_t        ih_magic;       /* Image Header Magic Number    */
-       uint32_t        ih_hcrc;        /* Image Header CRC Checksum    */
-       uint32_t        ih_time;        /* Image Creation Timestamp     */
-       uint32_t        ih_size;        /* Image Data Size              */
-       uint32_t        ih_load;        /* Data  Load  Address          */
-       uint32_t        ih_ep;          /* Entry Point Address          */
-       uint32_t        ih_dcrc;        /* Image Data CRC Checksum      */
+       __be32          ih_magic;       /* Image Header Magic Number    */
+       __be32          ih_hcrc;        /* Image Header CRC Checksum    */
+       __be32          ih_time;        /* Image Creation Timestamp     */
+       __be32          ih_size;        /* Image Data Size              */
+       __be32          ih_load;        /* Data  Load  Address          */
+       __be32          ih_ep;          /* Entry Point Address          */
+       __be32          ih_dcrc;        /* Image Data CRC Checksum      */
        uint8_t         ih_os;          /* Operating System             */
        uint8_t         ih_arch;        /* CPU architecture             */
        uint8_t         ih_type;        /* Image Type                   */
@@ -266,6 +270,8 @@ typedef struct bootm_headers {
 #endif
 } bootm_headers_t;
 
+extern bootm_headers_t images;
+
 /*
  * Some systems (for example LWMON) have very short watchdog periods;
  * we must make sure to split long operations like memmove() or
@@ -506,6 +512,7 @@ static inline int image_check_target_arch(const image_header_t *hdr)
 #define FIT_HASH_NODENAME      "hash"
 #define FIT_ALGO_PROP          "algo"
 #define FIT_VALUE_PROP         "value"
+#define FIT_IGNORE_PROP                "uboot-ignore"
 
 /* image node */
 #define FIT_DATA_PROP          "data"
@@ -527,9 +534,9 @@ static inline int image_check_target_arch(const image_header_t *hdr)
 #define FIT_MAX_HASH_LEN       20      /* max(crc32_len(4), sha1_len(20)) */
 
 /* cmdline argument format parsing */
-inline int fit_parse_conf(const char *spec, ulong addr_curr,
+int fit_parse_conf(const char *spec, ulong addr_curr,
                ulong *addr, const char **conf_name);
-inline int fit_parse_subimage(const char *spec, ulong addr_curr,
+int fit_parse_subimage(const char *spec, ulong addr_curr,
                ulong *addr, const char **image_name);
 
 void fit_print_contents(const void *fit);
@@ -590,6 +597,9 @@ int fit_image_get_data(const void *fit, int noffset,
 int fit_image_hash_get_algo(const void *fit, int noffset, char **algo);
 int fit_image_hash_get_value(const void *fit, int noffset, uint8_t **value,
                                int *value_len);
+#ifndef USE_HOSTCC
+int fit_image_hash_get_ignore(const void *fit, int noffset, int *ignore);
+#endif
 
 int fit_set_timestamp(void *fit, int noffset, time_t timestamp);
 int fit_set_hashes(void *fit);