tools/mkimage: update to 2020.04
authorLucian Cristian <lucian.cristian@gmail.com>
Sun, 19 Apr 2020 13:07:10 +0000 (16:07 +0300)
committerHauke Mehrtens <hauke@hauke-m.de>
Sun, 26 Apr 2020 19:20:47 +0000 (21:20 +0200)
also change the download source to https and add a mirror
drop merged patches

Signed-off-by: Lucian Cristian <lucian.cristian@gmail.com>
[Add extra changes to compile on FreeBSD, merge two patches]
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
tools/mkimage/Makefile
tools/mkimage/patches/030-allow-to-use-different-magic.patch
tools/mkimage/patches/050-Add-compatibility-with-non-Linux-hosts.patch [new file with mode: 0644]
tools/mkimage/patches/050-image_h_portability.patch [deleted file]
tools/mkimage/patches/060-remove_kernel_includes.patch [deleted file]
tools/mkimage/patches/070-remove_generated_autoconf.patch [new file with mode: 0644]
tools/mkimage/patches/210-link-libcrypto-static.patch

index dc1aec18a0406d207f47fcd9ac5d2a8841ffef16..90ecdaaa6e5708df632eeae5bca487ef7c001963 100644 (file)
@@ -7,11 +7,14 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=mkimage
-PKG_VERSION:=2019.07
+PKG_VERSION:=2020.04
 
 PKG_SOURCE:=u-boot-$(PKG_VERSION).tar.bz2
-PKG_SOURCE_URL:=http://ftp.denx.de/pub/u-boot
-PKG_HASH:=bff4fa77e8da17521c030ca4c5b947a056c1b1be4d3e6ee8637020b8d50251d0
+PKG_SOURCE_URL:= \
+       https://mirror.cyberbits.eu/u-boot \
+       https://ftp.denx.de/pub/u-boot \
+       ftp://ftp.denx.de/pub/u-boot
+PKG_HASH:=fe732aaf037d9cc3c0909bad8362af366ae964bbdac6913a34081ff4ad565372
 
 HOST_BUILD_DIR:=$(BUILD_DIR_HOST)/u-boot-$(PKG_VERSION)
 
index ce61cb0fb6ccd455e9049f421f1600cfcd9e11a6..8d79de29921a7246e3b29faed727053bd40d4569 100644 (file)
@@ -50,7 +50,7 @@ This patch makes it possible to set a custom image magic.
                        break;
 --- a/tools/default_image.c
 +++ b/tools/default_image.c
-@@ -116,7 +116,7 @@ static void image_set_header(void *ptr,
+@@ -120,7 +120,7 @@ static void image_set_header(void *ptr,
        }
  
        /* Build new header */
diff --git a/tools/mkimage/patches/050-Add-compatibility-with-non-Linux-hosts.patch b/tools/mkimage/patches/050-Add-compatibility-with-non-Linux-hosts.patch
new file mode 100644 (file)
index 0000000..ea2e8e3
--- /dev/null
@@ -0,0 +1,95 @@
+From 590b23a46b7ae0f5ec5e8f57a85c0e7578c71141 Mon Sep 17 00:00:00 2001
+From: Hauke Mehrtens <hauke@hauke-m.de>
+Date: Sun, 26 Apr 2020 17:15:17 +0200
+Subject: [PATCH 1/2] Add compatibility with non Linux hosts
+
+This adds some changes to the u-boot tools to make it possible to build
+them on non Linux hosts like MacOS or FreeBSD.
+
+asm/byteorder.h, asm/posix_types.h, asm/types.h and linux/kernel.h are
+not available on such systems. Remove the include and add the necessary
+parts for these header files manually or remove the usage too.
+
+__u64 is not available on FreeBSD, remove its usage.
+
+<malloc.h> has been replaced by <stdlib.h>
+
+Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
+---
+ include/image.h             | 2 ++
+ include/imx8image.h         | 5 +++++
+ include/linux/posix_types.h | 2 ++
+ include/linux/types.h       | 4 +++-
+ lib/rsa/rsa-sign.c          | 2 +-
+ 5 files changed, 13 insertions(+), 2 deletions(-)
+
+--- a/include/image.h
++++ b/include/image.h
+@@ -16,7 +16,9 @@
+ #define __IMAGE_H__
+ #include "compiler.h"
++#ifdef linux
+ #include <asm/byteorder.h>
++#endif
+ #include <stdbool.h>
+ /* Define this to avoid #ifdefs later on */
+--- a/include/imx8image.h
++++ b/include/imx8image.h
+@@ -11,7 +11,12 @@
+ #include <image.h>
+ #include <inttypes.h>
+ #include "imagetool.h"
++#ifdef linux
+ #include "linux/kernel.h"
++#else
++#define ALIGN(x,a)            __ALIGN_MASK((x),(typeof(x))(a)-1)
++#define __ALIGN_MASK(x,mask)  (((x)+(mask))&~(mask))
++#endif
+ #define __packed   __attribute__((packed))
+--- a/include/linux/posix_types.h
++++ b/include/linux/posix_types.h
+@@ -43,6 +43,8 @@ typedef void (*__kernel_sighandler_t)(in
+ /* Type of a SYSV IPC key.  */
+ typedef int __kernel_key_t;
++#ifdef linux
+ #include <asm/posix_types.h>
++#endif
+ #endif /* _LINUX_POSIX_TYPES_H */
+--- a/include/linux/types.h
++++ b/include/linux/types.h
+@@ -2,7 +2,9 @@
+ #define _LINUX_TYPES_H
+ #include <linux/posix_types.h>
++#ifdef linux
+ #include <asm/types.h>
++#endif
+ #include <stdbool.h>
+ #ifndef __KERNEL_STRICT_NAMES
+@@ -142,7 +144,7 @@ typedef __u16 __bitwise __le16;
+ typedef __u16 __bitwise __be16;
+ typedef __u32 __bitwise __le32;
+ typedef __u32 __bitwise __be32;
+-#if defined(__GNUC__)
++#if defined(__GNUC__) && defined(linux)
+ typedef __u64 __bitwise __le64;
+ typedef __u64 __bitwise __be64;
+ #endif
+--- a/lib/rsa/rsa-sign.c
++++ b/lib/rsa/rsa-sign.c
+@@ -4,7 +4,7 @@
+  */
+ #include "mkimage.h"
+-#include <malloc.h>
++#include <stdlib.h>
+ #include <stdio.h>
+ #include <string.h>
+ #include <image.h>
diff --git a/tools/mkimage/patches/050-image_h_portability.patch b/tools/mkimage/patches/050-image_h_portability.patch
deleted file mode 100644 (file)
index 5b47f80..0000000
+++ /dev/null
@@ -1,207 +0,0 @@
-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
-@@ -16,7 +16,6 @@
- #define __IMAGE_H__
- #include "compiler.h"
--#include <asm/byteorder.h>
- #include <stdbool.h>
- /* Define this to avoid #ifdefs later on */
-@@ -317,13 +316,13 @@ enum {
-  * all data in network byte order (aka natural aka bigendian).
-  */
- typedef struct image_header {
--      __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      */
-+      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      */
-       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)
diff --git a/tools/mkimage/patches/060-remove_kernel_includes.patch b/tools/mkimage/patches/060-remove_kernel_includes.patch
deleted file mode 100644 (file)
index 8917ec0..0000000
+++ /dev/null
@@ -1,29 +0,0 @@
-The Kernel includes are only available on Linux hosts, remove then on
-non Linux hosts. 
-
---- a/include/linux/posix_types.h
-+++ b/include/linux/posix_types.h
-@@ -43,6 +43,8 @@ typedef void (*__kernel_sighandler_t)(in
- /* Type of a SYSV IPC key.  */
- typedef int __kernel_key_t;
-+#ifdef linux
- #include <asm/posix_types.h>
-+#endif
- #endif /* _LINUX_POSIX_TYPES_H */
---- a/include/imx8image.h
-+++ b/include/imx8image.h
-@@ -11,7 +11,12 @@
- #include <image.h>
- #include <inttypes.h>
- #include "imagetool.h"
-+#ifdef linux
- #include "linux/kernel.h"
-+#else
-+#define ALIGN(x,a)            __ALIGN_MASK((x),(typeof(x))(a)-1)
-+#define __ALIGN_MASK(x,mask)  (((x)+(mask))&~(mask))
-+#endif
- #define __packed   __attribute__((packed))
diff --git a/tools/mkimage/patches/070-remove_generated_autoconf.patch b/tools/mkimage/patches/070-remove_generated_autoconf.patch
new file mode 100644 (file)
index 0000000..7dcc8b6
--- /dev/null
@@ -0,0 +1,10 @@
+--- a/tools/imximage.c
++++ b/tools/imximage.c
+@@ -11,7 +11,6 @@
+ #include "imagetool.h"
+ #include <image.h>
+ #include "imximage.h"
+-#include <generated/autoconf.h>
+ #define UNDEFINED 0xFFFFFFFF
index 368dea86c94e90088eca3686e204859492f9374f..c609912be9032a5a3779ed37e9b6341d5d1bd476 100644 (file)
@@ -3,7 +3,7 @@ needed dependencies are added too.
 
 --- a/tools/Makefile
 +++ b/tools/Makefile
-@@ -151,7 +151,7 @@ ifneq ($(CONFIG_MX23)$(CONFIG_MX28)$(CON
+@@ -162,7 +162,7 @@ ifneq ($(CONFIG_MX23)$(CONFIG_MX28)$(CON
  HOSTCFLAGS_kwbimage.o += \
        $(shell pkg-config --cflags libssl libcrypto 2> /dev/null || echo "")
  HOSTLOADLIBES_mkimage += \