aboutsummaryrefslogtreecommitdiffstats
path: root/tools/mkimage/patches/050-image_h_portability.patch
diff options
context:
space:
mode:
Diffstat (limited to 'tools/mkimage/patches/050-image_h_portability.patch')
-rw-r--r--tools/mkimage/patches/050-image_h_portability.patch182
1 files changed, 179 insertions, 3 deletions
diff --git a/tools/mkimage/patches/050-image_h_portability.patch b/tools/mkimage/patches/050-image_h_portability.patch
index dabab39908..5b47f80cbb 100644
--- a/tools/mkimage/patches/050-image_h_portability.patch
+++ b/tools/mkimage/patches/050-image_h_portability.patch
@@ -1,14 +1,24 @@
+Some of the Linux header files are not available on non Linux host
+systems like FreeBSD or MacOSX.
+
+The __le32 and __be32 types are only defined in Linux in
+asm/byteorder.h, but not on all other BSD systems.
+Use uint32_t instead of __le32 and __be32.
+
+__swab32 is also a Linux only function, it looks like be32_to_cpu()
+would be better here anyway.
+
--- a/include/image.h
+++ b/include/image.h
-@@ -17,7 +17,6 @@
+@@ -16,7 +16,6 @@
#define __IMAGE_H__
#include "compiler.h"
-#include <asm/byteorder.h>
+ #include <stdbool.h>
/* Define this to avoid #ifdefs later on */
- struct lmb;
-@@ -308,13 +307,13 @@ enum {
+@@ -317,13 +316,13 @@ enum {
* all data in network byte order (aka natural aka bigendian).
*/
typedef struct image_header {
@@ -29,3 +39,169 @@
uint8_t ih_os; /* Operating System */
uint8_t ih_arch; /* CPU architecture */
uint8_t ih_type; /* Image Type */
+--- a/tools/mtk_image.h
++++ b/tools/mtk_image.h
+@@ -15,8 +15,8 @@
+ union gen_boot_header {
+ struct {
+ char name[12];
+- __le32 version;
+- __le32 size;
++ uint32_t version;
++ uint32_t size;
+ };
+
+ uint8_t pad[0x200];
+@@ -32,14 +32,14 @@ union nand_boot_header {
+ char name[12];
+ char version[4];
+ char id[8];
+- __le16 ioif;
+- __le16 pagesize;
+- __le16 addrcycles;
+- __le16 oobsize;
+- __le16 pages_of_block;
+- __le16 numblocks;
+- __le16 writesize_shift;
+- __le16 erasesize_shift;
++ uint16_t ioif;
++ uint16_t pagesize;
++ uint16_t addrcycles;
++ uint16_t oobsize;
++ uint16_t pages_of_block;
++ uint16_t numblocks;
++ uint16_t writesize_shift;
++ uint16_t erasesize_shift;
+ uint8_t dummy[60];
+ uint8_t ecc_parity[28];
+ };
+@@ -54,14 +54,14 @@ union nand_boot_header {
+ /* BootROM layout header */
+ struct brom_layout_header {
+ char name[8];
+- __le32 version;
+- __le32 header_size;
+- __le32 total_size;
+- __le32 magic;
+- __le32 type;
+- __le32 header_size_2;
+- __le32 total_size_2;
+- __le32 unused;
++ uint32_t version;
++ uint32_t header_size;
++ uint32_t total_size;
++ uint32_t magic;
++ uint32_t type;
++ uint32_t header_size_2;
++ uint32_t total_size_2;
++ uint32_t unused;
+ };
+
+ #define BRLYT_NAME "BRLYT"
+@@ -90,8 +90,8 @@ struct gen_device_header {
+ struct gfh_common_header {
+ uint8_t magic[3];
+ uint8_t version;
+- __le16 size;
+- __le16 type;
++ uint16_t size;
++ uint16_t type;
+ };
+
+ #define GFH_HEADER_MAGIC "MMM"
+@@ -106,17 +106,17 @@ struct gfh_common_header {
+ struct gfh_file_info {
+ struct gfh_common_header gfh;
+ char name[12];
+- __le32 unused;
+- __le16 file_type;
++ uint32_t unused;
++ uint16_t file_type;
+ uint8_t flash_type;
+ uint8_t sig_type;
+- __le32 load_addr;
+- __le32 total_size;
+- __le32 max_size;
+- __le32 hdr_size;
+- __le32 sig_size;
+- __le32 jump_offset;
+- __le32 processed;
++ uint32_t load_addr;
++ uint32_t total_size;
++ uint32_t max_size;
++ uint32_t hdr_size;
++ uint32_t sig_size;
++ uint32_t jump_offset;
++ uint32_t processed;
+ };
+
+ #define GFH_FILE_INFO_NAME "FILE_INFO"
+@@ -129,16 +129,16 @@ struct gfh_file_info {
+
+ struct gfh_bl_info {
+ struct gfh_common_header gfh;
+- __le32 attr;
++ uint32_t attr;
+ };
+
+ struct gfh_brom_cfg {
+ struct gfh_common_header gfh;
+- __le32 cfg_bits;
+- __le32 usbdl_by_auto_detect_timeout_ms;
++ uint32_t cfg_bits;
++ uint32_t usbdl_by_auto_detect_timeout_ms;
+ uint8_t unused[0x48];
+- __le32 usbdl_by_kcol0_timeout_ms;
+- __le32 usbdl_by_flag_timeout_ms;
++ uint32_t usbdl_by_kcol0_timeout_ms;
++ uint32_t usbdl_by_flag_timeout_ms;
+ uint32_t pad;
+ };
+
+@@ -157,15 +157,15 @@ struct gfh_anti_clone {
+ uint8_t ac_b2k;
+ uint8_t ac_b2c;
+ uint16_t pad;
+- __le32 ac_offset;
+- __le32 ac_len;
++ uint32_t ac_offset;
++ uint32_t ac_len;
+ };
+
+ struct gfh_brom_sec_cfg {
+ struct gfh_common_header gfh;
+- __le32 cfg_bits;
++ uint32_t cfg_bits;
+ char customer_name[0x20];
+- __le32 pad;
++ uint32_t pad;
+ };
+
+ #define BROM_SEC_CFG_JTAG_EN 1
+@@ -184,11 +184,11 @@ struct gfh_header {
+
+ union lk_hdr {
+ struct {
+- __le32 magic;
+- __le32 size;
++ uint32_t magic;
++ uint32_t size;
+ char name[32];
+- __le32 loadaddr;
+- __le32 mode;
++ uint32_t loadaddr;
++ uint32_t mode;
+ };
+
+ uint8_t data[512];
+--- a/tools/zynqmpbif.c
++++ b/tools/zynqmpbif.c
+@@ -517,7 +517,7 @@ static int bif_add_bit(struct bif_entry
+ debug("Bitstream Length: 0x%x\n", bitlen);
+ for (i = 0; i < bitlen; i += sizeof(uint32_t)) {
+ uint32_t *bitbin32 = (uint32_t *)&bitbin[i];
+- *bitbin32 = __swab32(*bitbin32);
++ *bitbin32 = be32_to_cpu(*bitbin32);
+ }
+
+ if (!bf->dest_dev)