|
@@ -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)
|