Mon Nov 5 07:27:59 2018 UTC ()
Support the uboot kernel_noload image type as used by NetBSD/evbarm
GENERIC kernel.
Bump PKGREVISION
(skrll)
diff -r1.191 -r1.192 pkgsrc/emulators/qemu/Makefile
diff -r1.137 -r1.138 pkgsrc/emulators/qemu/distinfo
diff -r0 -r1.1 pkgsrc/emulators/qemu/patches/patch-hw_arm_boot.c
diff -r0 -r1.1 pkgsrc/emulators/qemu/patches/patch-hw_core_loader.c
diff -r0 -r1.1 pkgsrc/emulators/qemu/patches/patch-hw_core_uboot__image.h
--- pkgsrc/emulators/qemu/Makefile 2018/08/22 09:45:05 1.191
+++ pkgsrc/emulators/qemu/Makefile 2018/11/05 07:27:59 1.192
| @@ -1,17 +1,17 @@ | | | @@ -1,17 +1,17 @@ |
1 | # $NetBSD: Makefile,v 1.191 2018/08/22 09:45:05 wiz Exp $ | | 1 | # $NetBSD: Makefile,v 1.192 2018/11/05 07:27:59 skrll Exp $ |
2 | | | 2 | |
3 | DISTNAME= qemu-3.0.0 | | 3 | DISTNAME= qemu-3.0.0 |
4 | PKGREVISION= 2 | | 4 | PKGREVISION= 3 |
5 | CATEGORIES= emulators | | 5 | CATEGORIES= emulators |
6 | MASTER_SITES= https://download.qemu.org/ | | 6 | MASTER_SITES= https://download.qemu.org/ |
7 | EXTRACT_SUFX= .tar.xz | | 7 | EXTRACT_SUFX= .tar.xz |
8 | | | 8 | |
9 | MAINTAINER= pkgsrc-users@NetBSD.org | | 9 | MAINTAINER= pkgsrc-users@NetBSD.org |
10 | HOMEPAGE= http://www.qemu-project.org/ | | 10 | HOMEPAGE= http://www.qemu-project.org/ |
11 | COMMENT= CPU emulator using dynamic translation | | 11 | COMMENT= CPU emulator using dynamic translation |
12 | LICENSE= gnu-gpl-v2 AND gnu-lgpl-v2.1 AND mit AND modified-bsd | | 12 | LICENSE= gnu-gpl-v2 AND gnu-lgpl-v2.1 AND mit AND modified-bsd |
13 | | | 13 | |
14 | USE_CURSES= resize_term wide | | 14 | USE_CURSES= resize_term wide |
15 | USE_LANGUAGES+= c c++ | | 15 | USE_LANGUAGES+= c c++ |
16 | USE_TOOLS+= bison flex gmake makeinfo perl:build pkg-config | | 16 | USE_TOOLS+= bison flex gmake makeinfo perl:build pkg-config |
17 | FAKE_NCURSES= yes | | 17 | FAKE_NCURSES= yes |
--- pkgsrc/emulators/qemu/distinfo 2018/08/16 10:15:09 1.137
+++ pkgsrc/emulators/qemu/distinfo 2018/11/05 07:27:59 1.138
| @@ -1,16 +1,19 @@ | | | @@ -1,16 +1,19 @@ |
1 | $NetBSD: distinfo,v 1.137 2018/08/16 10:15:09 adam Exp $ | | 1 | $NetBSD: distinfo,v 1.138 2018/11/05 07:27:59 skrll Exp $ |
2 | | | 2 | |
3 | SHA1 (qemu-3.0.0.tar.xz) = fffb4aa0139c7290295a129e040cec0df4468ea6 | | 3 | SHA1 (qemu-3.0.0.tar.xz) = fffb4aa0139c7290295a129e040cec0df4468ea6 |
4 | RMD160 (qemu-3.0.0.tar.xz) = ea61cb8b6b144c7017c3a53161f883c3aeb15611 | | 4 | RMD160 (qemu-3.0.0.tar.xz) = ea61cb8b6b144c7017c3a53161f883c3aeb15611 |
5 | SHA512 (qemu-3.0.0.tar.xz) = a764302f50b9aca4134bbbc1f361b98e71240cdc7b25600dfe733bf4cf17bd86000bd28357697b08f3b656899dceb9e459350b8d55557817444ed5d7fa380a5a | | 5 | SHA512 (qemu-3.0.0.tar.xz) = a764302f50b9aca4134bbbc1f361b98e71240cdc7b25600dfe733bf4cf17bd86000bd28357697b08f3b656899dceb9e459350b8d55557817444ed5d7fa380a5a |
6 | Size (qemu-3.0.0.tar.xz) = 35624516 bytes | | 6 | Size (qemu-3.0.0.tar.xz) = 35624516 bytes |
7 | SHA1 (patch-Makefile) = b3899fb8d0dd2f29bf3edd843836612e6e6c019c | | 7 | SHA1 (patch-Makefile) = b3899fb8d0dd2f29bf3edd843836612e6e6c019c |
8 | SHA1 (patch-audio_audio.c) = 98a1de2fd48638886b5d16f6a61dc72910e98b41 | | 8 | SHA1 (patch-audio_audio.c) = 98a1de2fd48638886b5d16f6a61dc72910e98b41 |
9 | SHA1 (patch-block.c) = 5eb15a87d6646719bf1e9277fbe73a99e4905481 | | 9 | SHA1 (patch-block.c) = 5eb15a87d6646719bf1e9277fbe73a99e4905481 |
10 | SHA1 (patch-contrib_ivshmem-client_ivshmem-client.c) = 40c8751607cbf66a37e4c4e08f2664b864e2e984 | | 10 | SHA1 (patch-contrib_ivshmem-client_ivshmem-client.c) = 40c8751607cbf66a37e4c4e08f2664b864e2e984 |
11 | SHA1 (patch-contrib_ivshmem-server_ivshmem-server.c) = d8f53432b5752f4263dc4ef96108a976a05147a3 | | 11 | SHA1 (patch-contrib_ivshmem-server_ivshmem-server.c) = d8f53432b5752f4263dc4ef96108a976a05147a3 |
| | | 12 | SHA1 (patch-hw_arm_boot.c) = bd28e4b8e8732a2b01ba1d0e8a727e8e7bc5227a |
| | | 13 | SHA1 (patch-hw_core_loader.c) = 06ff8bfa5be720e428668987598d55b6799202e7 |
| | | 14 | SHA1 (patch-hw_core_uboot__image.h) = 26a656310d991747b7080b9f28042afd536e4c28 |
12 | SHA1 (patch-hw_display_omap__dss.c) = 6b13242f28e32346bc70548c216c578d98fd3420 | | 15 | SHA1 (patch-hw_display_omap__dss.c) = 6b13242f28e32346bc70548c216c578d98fd3420 |
13 | SHA1 (patch-hw_net_etraxfs__eth.c) = e5dd1661d60dbcd27b332403e0843500ba9544bc | | 16 | SHA1 (patch-hw_net_etraxfs__eth.c) = e5dd1661d60dbcd27b332403e0843500ba9544bc |
14 | SHA1 (patch-hw_net_xilinx__axienet.c) = ebcd2676d64ce6f31e4a8c976d4fdf530ad5e8b7 | | 17 | SHA1 (patch-hw_net_xilinx__axienet.c) = ebcd2676d64ce6f31e4a8c976d4fdf530ad5e8b7 |
15 | SHA1 (patch-hw_usb_dev-mtp.c) = 66543b5559d92f8e2fa9a6eb85e5dfe7c1ad3339 | | 18 | SHA1 (patch-hw_usb_dev-mtp.c) = 66543b5559d92f8e2fa9a6eb85e5dfe7c1ad3339 |
16 | SHA1 (patch-tests_Makefile.include) = 42345d697cb2e324dccf1d68bd8d61e8001c6162 | | 19 | SHA1 (patch-tests_Makefile.include) = 42345d697cb2e324dccf1d68bd8d61e8001c6162 |
$NetBSD: patch-hw_arm_boot.c,v 1.1 2018/11/05 07:27:59 skrll Exp $
--- hw/arm/boot.c.orig 2018-11-04 17:27:47.000000000 +0000
+++ hw/arm/boot.c
@@ -29,8 +29,9 @@
* Documentation/arm/Booting and Documentation/arm64/booting.txt
* They have different preferred image load offsets from system RAM base.
*/
-#define KERNEL_ARGS_ADDR 0x100
-#define KERNEL_LOAD_ADDR 0x00010000
+#define KERNEL_ARGS_ADDR 0x100
+#define KERNEL_NOLOAD_ADDR 0x00000000
+#define KERNEL_LOAD_ADDR 0x00010000
#define KERNEL64_LOAD_ADDR 0x00080000
#define ARM64_TEXT_OFFSET_OFFSET 8
@@ -1049,7 +1050,8 @@ void arm_load_kernel(ARMCPU *cpu, struct
}
entry = elf_entry;
if (kernel_size < 0) {
- kernel_size = load_uimage_as(info->kernel_filename, &entry, NULL,
+ uint64_t loadaddr = info->loader_start + KERNEL_NOLOAD_ADDR;
+ kernel_size = load_uimage_as(info->kernel_filename, &entry, &loadaddr,
&is_linux, NULL, NULL, as);
}
if (arm_feature(&cpu->env, ARM_FEATURE_AARCH64) && kernel_size < 0) {
$NetBSD: patch-hw_core_loader.c,v 1.1 2018/11/05 07:27:59 skrll Exp $
--- hw/core/loader.c.orig 2018-08-14 19:10:34.000000000 +0000
+++ hw/core/loader.c
@@ -637,13 +637,19 @@ static int load_uboot_image(const char *
goto out;
if (hdr->ih_type != image_type) {
- fprintf(stderr, "Wrong image type %d, expected %d\n", hdr->ih_type,
- image_type);
- goto out;
+ if (image_type != IH_TYPE_KERNEL && hdr->ih_type != IH_TYPE_KERNEL_NOLOAD) {
+ fprintf(stderr, "Wrong image type %d, expected %d\n", hdr->ih_type,
+ image_type);
+ goto out;
+ }
}
/* TODO: Implement other image types. */
switch (hdr->ih_type) {
+ case IH_TYPE_KERNEL_NOLOAD:
+ hdr->ih_load = *loadaddr + sizeof(*hdr);
+ hdr->ih_ep += hdr->ih_load;
+
case IH_TYPE_KERNEL:
address = hdr->ih_load;
if (translate_fn) {
$NetBSD: patch-hw_core_uboot__image.h,v 1.1 2018/11/05 07:27:59 skrll Exp $
--- hw/core/uboot_image.h.orig 2018-08-14 19:10:34.000000000 +0000
+++ hw/core/uboot_image.h
@@ -75,6 +75,7 @@
#define IH_CPU_NIOS2 15 /* Nios-II */
#define IH_CPU_BLACKFIN 16 /* Blackfin */
#define IH_CPU_AVR32 17 /* AVR32 */
+#define IH_CPU_ARM64 22 /* ARM64 */
/*
* Image Types
@@ -124,6 +125,7 @@
#define IH_TYPE_SCRIPT 6 /* Script file */
#define IH_TYPE_FILESYSTEM 7 /* Filesystem Image (any type) */
#define IH_TYPE_FLATDT 8 /* Binary Flat Device Tree Blob */
+#define IH_TYPE_KERNEL_NOLOAD 14 /* OS Kernel Image (noload) */
/*
* Compression Types