summaryrefslogtreecommitdiff
path: root/usr.bin
diff options
context:
space:
mode:
authormartin <martin@NetBSD.org>2019-12-09 15:19:30 +0000
committermartin <martin@NetBSD.org>2019-12-09 15:19:30 +0000
commit2adeb2bcb85b6ee2c548cc786e2abefab103a39a (patch)
tree7ff04288f926e336241a69d81c91ca36c5ed88b5 /usr.bin
parent66608338e5eb086db0e94194a627a4e1e40db294 (diff)
Pull up following revision(s) (requested by jmcneill in ticket #525):
external/cddl/osnet/dev/dtrace/aarch64/dtrace_isa.c: revision 1.1 distrib/sets/lists/modules/md.i386: revision 1.83 share/mk/bsd.own.mk: revision 1.1168 usr.bin/mkubootimage/mkubootimage.c: revision 1.25 sys/modules/dtrace/Makefile: revision 1.7 usr.bin/mkubootimage/mkubootimage.c: revision 1.26 sys/modules/dtrace/Makefile: revision 1.8 external/cddl/osnet/dist/lib/libdtrace/aarch64/dt_isadep.c: revision 1.2 distrib/sets/lists/modules/mi: revision 1.128 sys/arch/aarch64/include/frame.h: revision 1.3 sys/arch/evbarm/conf/mk.generic64: revision 1.4 external/cddl/osnet/dist/lib/libdtrace/common/dt_link.c: revision 1.12 sys/modules/cyclic/Makefile: revision 1.4 sys/arch/aarch64/conf/Makefile.aarch64: revision 1.16 external/cddl/osnet/dev/dtrace/aarch64/dtrace_subr.c: revision 1.1 sys/arch/aarch64/aarch64/start.S: revision 1.3 sys/arch/aarch64/aarch64/trap.c: revision 1.22 external/cddl/osnet/dev/fbt/aarch64/fbt_isa.c: revision 1.1 external/cddl/osnet/dev/dtrace/aarch64/dtrace_asm.S: revision 1.1 external/cddl/osnet/dev/fbt/aarch64/fbt_isa.h: revision 1.1 external/cddl/osnet/dev/dtrace/aarch64/regset.h: revision 1.1 external/cddl/osnet/lib/libdtrace/Makefile: revision 1.26 distrib/sets/lists/modules/md.amd64: revision 1.82 usr.bin/mkubootimage/mkubootimage.1: revision 1.13 distrib/sets/lists/modules/ad.arm: revision 1.14 Add KDTRACE_HOOKS support. Define lwp_trapframe() macro dtrace: add support for aarch64 Add syscall_linux back for other arm architectures (accidently removed in previous) Add -u flag for updating headers in place. Fix alignment of .text section by changing load address to 0xffffffc000000000 and adding 64 bytes of padding before the entry point. Update arm64 image header in place Move dtrace_syscall_linux out of mi set list Enable DTrace on aarch64 Fix signed/unsigned comparison
Diffstat (limited to 'usr.bin')
-rw-r--r--usr.bin/mkubootimage/mkubootimage.17
-rw-r--r--usr.bin/mkubootimage/mkubootimage.c19
2 files changed, 20 insertions, 6 deletions
diff --git a/usr.bin/mkubootimage/mkubootimage.1 b/usr.bin/mkubootimage/mkubootimage.1
index 0329095c432..6771e734514 100644
--- a/usr.bin/mkubootimage/mkubootimage.1
+++ b/usr.bin/mkubootimage/mkubootimage.1
@@ -1,4 +1,4 @@
-.\" $NetBSD: mkubootimage.1,v 1.12 2018/02/04 15:44:51 jmcneill Exp $
+.\" $NetBSD: mkubootimage.1,v 1.12.6.1 2019/12/09 15:19:30 martin Exp $
.\"
.\" Copyright (c) 2012 The NetBSD Foundation, Inc.
.\" All rights reserved.
@@ -27,7 +27,7 @@
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
.\" POSSIBILITY OF SUCH DAMAGE.
.\"
-.Dd February 4, 2018
+.Dd December 4, 2019
.Dt MKUBOOTIMAGE 1
.Os
.Sh NAME
@@ -46,6 +46,7 @@
.Fl n Ar image
.Op Fl O Po freebsd Ns | Ns linux Ns | Ns netbsd Ns | Ns openbsd Pc
.Fl T No ( fs Ns | Ns kernel Ns | Ns kernel_noload Ns | Ns ramdisk Ns | Ns standalone )
+.Op Fl u
.Ar source destination
.\"
.Sh DESCRIPTION
@@ -124,6 +125,8 @@ Defines the image type.
This is required for
.Qq uimg
format images.
+.It Fl u
+Update the header in an existing file instead of creating a new one.
.El
.Pp
The required
diff --git a/usr.bin/mkubootimage/mkubootimage.c b/usr.bin/mkubootimage/mkubootimage.c
index 79a0dce79a2..f7419d2a6a3 100644
--- a/usr.bin/mkubootimage/mkubootimage.c
+++ b/usr.bin/mkubootimage/mkubootimage.c
@@ -1,4 +1,4 @@
-/* $NetBSD: mkubootimage.c,v 1.24 2018/02/04 17:33:34 jmcneill Exp $ */
+/* $NetBSD: mkubootimage.c,v 1.24.6.1 2019/12/09 15:19:30 martin Exp $ */
/*-
* Copyright (c) 2010 Jared D. McNeill <jmcneill@invisible.ca>
@@ -30,7 +30,7 @@
#endif
#include <sys/cdefs.h>
-__RCSID("$NetBSD: mkubootimage.c,v 1.24 2018/02/04 17:33:34 jmcneill Exp $");
+__RCSID("$NetBSD: mkubootimage.c,v 1.24.6.1 2019/12/09 15:19:30 martin Exp $");
#include <sys/mman.h>
#include <sys/stat.h>
@@ -74,6 +74,7 @@ static uint32_t image_entrypoint = 0;
static char *image_name;
static uint32_t image_magic = IH_MAGIC;
static enum image_format image_format = FMT_UIMG;
+static int update_image = 0;
static const struct uboot_image_format {
enum image_format format;
@@ -269,7 +270,7 @@ usage(void)
fprintf(stderr, " -O <openbsd|netbsd|freebsd|linux>");
fprintf(stderr, " -T <standalone|kernel|kernel_noload|ramdisk|fs|script>");
fprintf(stderr, " -a <addr> [-e <ep>] [-m <magic>] -n <name>");
- fprintf(stderr, " [-f <uimg|arm64>]");
+ fprintf(stderr, " [-f <uimg|arm64>] [-u]");
fprintf(stderr, " <srcfile> <dstfile>\n");
exit(EXIT_FAILURE);
@@ -431,6 +432,13 @@ write_image(void *hdr, size_t hdrlen, int kernel_fd, int image_fd)
}
}
+ if (update_image) {
+ if (lseek(kernel_fd, hdrlen, SEEK_SET) != (off_t)hdrlen) {
+ perror("seek failed");
+ return errno;
+ }
+ }
+
while ((rlen = read(kernel_fd, buf, sizeof(buf))) > 0) {
wlen = write(image_fd, buf, rlen);
if (wlen != rlen) {
@@ -453,7 +461,7 @@ main(int argc, char *argv[])
int ch;
unsigned long long num;
- while ((ch = getopt(argc, argv, "A:C:E:O:T:a:e:f:hm:n:")) != -1) {
+ while ((ch = getopt(argc, argv, "A:C:E:O:T:a:e:f:hm:n:u")) != -1) {
switch (ch) {
case 'A': /* arch */
image_arch = get_arch(optarg);
@@ -504,6 +512,9 @@ main(int argc, char *argv[])
case 'n': /* name */
image_name = strdup(optarg);
break;
+ case 'u': /* update image */
+ update_image = 1;
+ break;
case 'h':
default:
usage();