Initial commit
This commit is contained in:
53
tools/mkimage/Makefile
Normal file
53
tools/mkimage/Makefile
Normal file
@@ -0,0 +1,53 @@
|
||||
#
|
||||
# Copyright (C) 2006-2014 OpenWrt.org
|
||||
#
|
||||
# This is free software, licensed under the GNU General Public License v2.
|
||||
# See /LICENSE for more information.
|
||||
#
|
||||
include $(TOPDIR)/rules.mk
|
||||
|
||||
PKG_NAME:=mkimage
|
||||
PKG_VERSION:=2021.01
|
||||
|
||||
PKG_SOURCE:=u-boot-$(PKG_VERSION).tar.bz2
|
||||
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:=b407e1510a74e863b8b5cb42a24625344f0e0c2fc7582d8c866bd899367d0454
|
||||
|
||||
HOST_BUILD_DIR:=$(BUILD_DIR_HOST)/u-boot-$(PKG_VERSION)
|
||||
|
||||
include $(INCLUDE_DIR)/host-build.mk
|
||||
|
||||
define Host/Prepare
|
||||
$(Host/Prepare/Default)
|
||||
mkdir -p $(HOST_BUILD_DIR)/include/config
|
||||
touch $(HOST_BUILD_DIR)/include/config/auto.conf
|
||||
mkdir -p $(HOST_BUILD_DIR)/include/generated/
|
||||
touch $(HOST_BUILD_DIR)/include/generated/autoconf.h
|
||||
endef
|
||||
|
||||
define Host/Compile
|
||||
$(MAKE) -C $(HOST_BUILD_DIR) \
|
||||
HOSTCFLAGS="$(HOST_CFLAGS)" \
|
||||
HOSTLDFLAGS="$(HOST_LDFLAGS)" \
|
||||
no-dot-config-targets=tools-only \
|
||||
CONFIG_MKIMAGE_DTC_PATH=dtc \
|
||||
CONFIG_FIT=y \
|
||||
CONFIG_FIT_SIGNATURE=y \
|
||||
CONFIG_FIT_SIGNATURE_MAX_SIZE=0x10000000 \
|
||||
tools-only
|
||||
endef
|
||||
|
||||
define Host/Install
|
||||
$(CP) $(HOST_BUILD_DIR)/tools/mkimage $(STAGING_DIR_HOST)/bin/
|
||||
$(CP) $(HOST_BUILD_DIR)/tools/mkenvimage $(STAGING_DIR_HOST)/bin/
|
||||
endef
|
||||
|
||||
define Host/Clean
|
||||
rm -f $(STAGING_DIR_HOST)/bin/mkimage
|
||||
rm -f $(STAGING_DIR_HOST)/bin/mkenvimage
|
||||
endef
|
||||
|
||||
$(eval $(call HostBuild))
|
||||
71
tools/mkimage/patches/030-allow-to-use-different-magic.patch
Normal file
71
tools/mkimage/patches/030-allow-to-use-different-magic.patch
Normal file
@@ -0,0 +1,71 @@
|
||||
This patch makes it possible to set a custom image magic.
|
||||
|
||||
--- a/tools/mkimage.c
|
||||
+++ b/tools/mkimage.c
|
||||
@@ -21,6 +21,7 @@ static struct image_tool_params params =
|
||||
.arch = IH_ARCH_PPC,
|
||||
.type = IH_TYPE_KERNEL,
|
||||
.comp = IH_COMP_GZIP,
|
||||
+ .magic = IH_MAGIC,
|
||||
.dtc = MKIMAGE_DEFAULT_DTC_OPTIONS,
|
||||
.imagename = "",
|
||||
.imagename2 = "",
|
||||
@@ -82,11 +83,12 @@ static void usage(const char *msg)
|
||||
" -l ==> list image header information\n",
|
||||
params.cmdname);
|
||||
fprintf(stderr,
|
||||
- " %s [-x] -A arch -O os -T type -C comp -a addr -e ep -n name -d data_file[:data_file...] image\n"
|
||||
+ " %s [-x] -A arch -O os -T type -C comp -M magic -a addr -e ep -n name -d data_file[:data_file...] image\n"
|
||||
" -A ==> set architecture to 'arch'\n"
|
||||
" -O ==> set operating system to 'os'\n"
|
||||
" -T ==> set image type to 'type'\n"
|
||||
" -C ==> set compression type 'comp'\n"
|
||||
+ " -M ==> set image magic to 'magic'\n"
|
||||
" -a ==> set load address to 'addr' (hex)\n"
|
||||
" -e ==> set entry point to 'ep' (hex)\n"
|
||||
" -n ==> set image name to 'name'\n"
|
||||
@@ -150,7 +152,7 @@ static void process_args(int argc, char
|
||||
int opt;
|
||||
|
||||
while ((opt = getopt(argc, argv,
|
||||
- "a:A:b:B:c:C:d:D:e:Ef:Fk:i:K:ln:N:p:O:rR:qstT:vVx")) != -1) {
|
||||
+ "a:A:b:B:c:C:d:D:e:Ef:Fk:i:K:lM:n:N:p:O:rR:qstT:vVx")) != -1) {
|
||||
switch (opt) {
|
||||
case 'a':
|
||||
params.addr = strtoull(optarg, &ptr, 16);
|
||||
@@ -237,6 +239,14 @@ static void process_args(int argc, char
|
||||
case 'l':
|
||||
params.lflag = 1;
|
||||
break;
|
||||
+ case 'M':
|
||||
+ params.magic = strtoull(optarg, &ptr, 16);
|
||||
+ if (*ptr) {
|
||||
+ fprintf(stderr, "%s: invalid magic %s\n",
|
||||
+ params.cmdname, optarg);
|
||||
+ exit(EXIT_FAILURE);
|
||||
+ }
|
||||
+ break;
|
||||
case 'n':
|
||||
params.imagename = optarg;
|
||||
break;
|
||||
--- a/tools/default_image.c
|
||||
+++ b/tools/default_image.c
|
||||
@@ -120,7 +120,7 @@ static void image_set_header(void *ptr,
|
||||
}
|
||||
|
||||
/* Build new header */
|
||||
- image_set_magic(hdr, IH_MAGIC);
|
||||
+ image_set_magic(hdr, params->magic);
|
||||
image_set_time(hdr, time);
|
||||
image_set_size(hdr, imagesize);
|
||||
image_set_load(hdr, addr);
|
||||
--- a/tools/imagetool.h
|
||||
+++ b/tools/imagetool.h
|
||||
@@ -56,6 +56,7 @@ struct image_tool_params {
|
||||
int arch;
|
||||
int type;
|
||||
int comp;
|
||||
+ unsigned int magic;
|
||||
char *dtc;
|
||||
unsigned int addr;
|
||||
unsigned int ep;
|
||||
@@ -0,0 +1,67 @@
|
||||
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.
|
||||
|
||||
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/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
|
||||
14
tools/mkimage/patches/210-link-libcrypto-static.patch
Normal file
14
tools/mkimage/patches/210-link-libcrypto-static.patch
Normal file
@@ -0,0 +1,14 @@
|
||||
OpenWrt links the libressl statically against mkimage, make sure all the
|
||||
needed dependencies are added too.
|
||||
|
||||
--- a/tools/Makefile
|
||||
+++ b/tools/Makefile
|
||||
@@ -158,7 +158,7 @@ ifneq ($(CONFIG_MX23)$(CONFIG_MX28)$(CON
|
||||
HOSTCFLAGS_kwbimage.o += \
|
||||
$(shell pkg-config --cflags libssl libcrypto 2> /dev/null || echo "")
|
||||
HOSTLDLIBS_mkimage += \
|
||||
- $(shell pkg-config --libs libssl libcrypto 2> /dev/null || echo "-lssl -lcrypto")
|
||||
+ $(shell pkg-config --libs --static libssl libcrypto 2> /dev/null || echo "-lssl -lcrypto")
|
||||
|
||||
# OS X deprecate openssl in favour of CommonCrypto, supress deprecation
|
||||
# warnings on those systems
|
||||
Reference in New Issue
Block a user