* [PATCH 1/2] hw/core: Sync uboot_image.h from U-Boot v2022.01
@ 2022-03-24 8:22 Bin Meng
2022-03-24 8:22 ` [PATCH 2/2] hw/core: loader: Setting is_linux to true for VxWorks uImage Bin Meng
2022-03-28 0:36 ` [PATCH 1/2] hw/core: Sync uboot_image.h from U-Boot v2022.01 Alistair Francis
0 siblings, 2 replies; 5+ messages in thread
From: Bin Meng @ 2022-03-24 8:22 UTC (permalink / raw)
To: qemu-devel; +Cc: Bin Meng
From: Bin Meng <bin.meng@windriver.com>
Sync uboot_image.h from upstream U-Boot v2022.01 release [1].
[1] https://source.denx.de/u-boot/u-boot/-/blob/v2022.01/include/image.h
Signed-off-by: Bin Meng <bin.meng@windriver.com>
---
hw/core/uboot_image.h | 213 ++++++++++++++++++++++++++++--------------
1 file changed, 142 insertions(+), 71 deletions(-)
diff --git a/hw/core/uboot_image.h b/hw/core/uboot_image.h
index 608022de6e..18ac293359 100644
--- a/hw/core/uboot_image.h
+++ b/hw/core/uboot_image.h
@@ -1,23 +1,9 @@
+/* SPDX-License-Identifier: GPL-2.0+ */
/*
+ * (C) Copyright 2008 Semihalf
+ *
* (C) Copyright 2000-2005
* Wolfgang Denk, DENX Software Engineering, wd@denx.de.
- *
- * See file CREDITS for list of people who contributed to this
- * project.
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License as
- * published by the Free Software Foundation; either version 2 of
- * the License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License along
- * with this program; if not, see <http://www.gnu.org/licenses/>.
- *
********************************************************************
* NOTE: This header file defines an interface to U-Boot. Including
* this (unmodified) header file in another file is considered normal
@@ -31,50 +17,83 @@
/*
* Operating System Codes
+ *
+ * The following are exposed to uImage header.
+ * New IDs *MUST* be appended at the end of the list and *NEVER*
+ * inserted for backward compatibility.
*/
-#define IH_OS_INVALID 0 /* Invalid OS */
-#define IH_OS_OPENBSD 1 /* OpenBSD */
-#define IH_OS_NETBSD 2 /* NetBSD */
-#define IH_OS_FREEBSD 3 /* FreeBSD */
-#define IH_OS_4_4BSD 4 /* 4.4BSD */
-#define IH_OS_LINUX 5 /* Linux */
-#define IH_OS_SVR4 6 /* SVR4 */
-#define IH_OS_ESIX 7 /* Esix */
-#define IH_OS_SOLARIS 8 /* Solaris */
-#define IH_OS_IRIX 9 /* Irix */
-#define IH_OS_SCO 10 /* SCO */
-#define IH_OS_DELL 11 /* Dell */
-#define IH_OS_NCR 12 /* NCR */
-#define IH_OS_LYNXOS 13 /* LynxOS */
-#define IH_OS_VXWORKS 14 /* VxWorks */
-#define IH_OS_PSOS 15 /* pSOS */
-#define IH_OS_QNX 16 /* QNX */
-#define IH_OS_U_BOOT 17 /* Firmware */
-#define IH_OS_RTEMS 18 /* RTEMS */
-#define IH_OS_ARTOS 19 /* ARTOS */
-#define IH_OS_UNITY 20 /* Unity OS */
+enum {
+ IH_OS_INVALID = 0, /* Invalid OS */
+ IH_OS_OPENBSD, /* OpenBSD */
+ IH_OS_NETBSD, /* NetBSD */
+ IH_OS_FREEBSD, /* FreeBSD */
+ IH_OS_4_4BSD, /* 4.4BSD */
+ IH_OS_LINUX, /* Linux */
+ IH_OS_SVR4, /* SVR4 */
+ IH_OS_ESIX, /* Esix */
+ IH_OS_SOLARIS, /* Solaris */
+ IH_OS_IRIX, /* Irix */
+ IH_OS_SCO, /* SCO */
+ IH_OS_DELL, /* Dell */
+ IH_OS_NCR, /* NCR */
+ IH_OS_LYNXOS, /* LynxOS */
+ IH_OS_VXWORKS, /* VxWorks */
+ IH_OS_PSOS, /* pSOS */
+ IH_OS_QNX, /* QNX */
+ IH_OS_U_BOOT, /* Firmware */
+ IH_OS_RTEMS, /* RTEMS */
+ IH_OS_ARTOS, /* ARTOS */
+ IH_OS_UNITY, /* Unity OS */
+ IH_OS_INTEGRITY, /* INTEGRITY */
+ IH_OS_OSE, /* OSE */
+ IH_OS_PLAN9, /* Plan 9 */
+ IH_OS_OPENRTOS, /* OpenRTOS */
+ IH_OS_ARM_TRUSTED_FIRMWARE, /* ARM Trusted Firmware */
+ IH_OS_TEE, /* Trusted Execution Environment */
+ IH_OS_OPENSBI, /* RISC-V OpenSBI */
+ IH_OS_EFI, /* EFI Firmware (e.g. GRUB2) */
+
+ IH_OS_COUNT,
+};
/*
* CPU Architecture Codes (supported by Linux)
+ *
+ * The following are exposed to uImage header.
+ * New IDs *MUST* be appended at the end of the list and *NEVER*
+ * inserted for backward compatibility.
*/
-#define IH_CPU_INVALID 0 /* Invalid CPU */
-#define IH_CPU_ALPHA 1 /* Alpha */
-#define IH_CPU_ARM 2 /* ARM */
-#define IH_CPU_I386 3 /* Intel x86 */
-#define IH_CPU_IA64 4 /* IA64 */
-#define IH_CPU_MIPS 5 /* MIPS */
-#define IH_CPU_MIPS64 6 /* MIPS 64 Bit */
-#define IH_CPU_PPC 7 /* PowerPC */
-#define IH_CPU_S390 8 /* IBM S390 */
-#define IH_CPU_SH 9 /* SuperH */
-#define IH_CPU_SPARC 10 /* Sparc */
-#define IH_CPU_SPARC64 11 /* Sparc 64 Bit */
-#define IH_CPU_M68K 12 /* M68K */
-#define IH_CPU_NIOS 13 /* Nios-32 */
-#define IH_CPU_MICROBLAZE 14 /* MicroBlaze */
-#define IH_CPU_NIOS2 15 /* Nios-II */
-#define IH_CPU_BLACKFIN 16 /* Blackfin */
-#define IH_CPU_AVR32 17 /* AVR32 */
+enum {
+ IH_ARCH_INVALID = 0, /* Invalid CPU */
+ IH_ARCH_ALPHA, /* Alpha */
+ IH_ARCH_ARM, /* ARM */
+ IH_ARCH_I386, /* Intel x86 */
+ IH_ARCH_IA64, /* IA64 */
+ IH_ARCH_MIPS, /* MIPS */
+ IH_ARCH_MIPS64, /* MIPS 64 Bit */
+ IH_ARCH_PPC, /* PowerPC */
+ IH_ARCH_S390, /* IBM S390 */
+ IH_ARCH_SH, /* SuperH */
+ IH_ARCH_SPARC, /* Sparc */
+ IH_ARCH_SPARC64, /* Sparc 64 Bit */
+ IH_ARCH_M68K, /* M68K */
+ IH_ARCH_NIOS, /* Nios-32 */
+ IH_ARCH_MICROBLAZE, /* MicroBlaze */
+ IH_ARCH_NIOS2, /* Nios-II */
+ IH_ARCH_BLACKFIN, /* Blackfin */
+ IH_ARCH_AVR32, /* AVR32 */
+ IH_ARCH_ST200, /* STMicroelectronics ST200 */
+ IH_ARCH_SANDBOX, /* Sandbox architecture (test only) */
+ IH_ARCH_NDS32, /* ANDES Technology - NDS32 */
+ IH_ARCH_OPENRISC, /* OpenRISC 1000 */
+ IH_ARCH_ARM64, /* ARM64 */
+ IH_ARCH_ARC, /* Synopsys DesignWare ARC */
+ IH_ARCH_X86_64, /* AMD x86_64, Intel and Via */
+ IH_ARCH_XTENSA, /* Xtensa */
+ IH_ARCH_RISCV, /* RISC-V */
+
+ IH_ARCH_COUNT,
+};
/*
* Image Types
@@ -113,33 +132,85 @@
* U-Boot's command interpreter; this feature is especially
* useful when you configure U-Boot to use a real shell (hush)
* as command interpreter (=> Shell Scripts).
+ *
+ * The following are exposed to uImage header.
+ * New IDs *MUST* be appended at the end of the list and *NEVER*
+ * inserted for backward compatibility.
*/
-#define IH_TYPE_INVALID 0 /* Invalid Image */
-#define IH_TYPE_STANDALONE 1 /* Standalone Program */
-#define IH_TYPE_KERNEL 2 /* OS Kernel Image */
-#define IH_TYPE_RAMDISK 3 /* RAMDisk Image */
-#define IH_TYPE_MULTI 4 /* Multi-File Image */
-#define IH_TYPE_FIRMWARE 5 /* Firmware Image */
-#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) */
+enum {
+ IH_TYPE_INVALID = 0, /* Invalid Image */
+ IH_TYPE_STANDALONE, /* Standalone Program */
+ IH_TYPE_KERNEL, /* OS Kernel Image */
+ IH_TYPE_RAMDISK, /* RAMDisk Image */
+ IH_TYPE_MULTI, /* Multi-File Image */
+ IH_TYPE_FIRMWARE, /* Firmware Image */
+ IH_TYPE_SCRIPT, /* Script file */
+ IH_TYPE_FILESYSTEM, /* Filesystem Image (any type) */
+ IH_TYPE_FLATDT, /* Binary Flat Device Tree Blob */
+ IH_TYPE_KWBIMAGE, /* Kirkwood Boot Image */
+ IH_TYPE_IMXIMAGE, /* Freescale IMXBoot Image */
+ IH_TYPE_UBLIMAGE, /* Davinci UBL Image */
+ IH_TYPE_OMAPIMAGE, /* TI OMAP Config Header Image */
+ IH_TYPE_AISIMAGE, /* TI Davinci AIS Image */
+ /* OS Kernel Image, can run from any load address */
+ IH_TYPE_KERNEL_NOLOAD,
+ IH_TYPE_PBLIMAGE, /* Freescale PBL Boot Image */
+ IH_TYPE_MXSIMAGE, /* Freescale MXSBoot Image */
+ IH_TYPE_GPIMAGE, /* TI Keystone GPHeader Image */
+ IH_TYPE_ATMELIMAGE, /* ATMEL ROM bootable Image */
+ IH_TYPE_SOCFPGAIMAGE, /* Altera SOCFPGA CV/AV Preloader */
+ IH_TYPE_X86_SETUP, /* x86 setup.bin Image */
+ IH_TYPE_LPC32XXIMAGE, /* x86 setup.bin Image */
+ IH_TYPE_LOADABLE, /* A list of typeless images */
+ IH_TYPE_RKIMAGE, /* Rockchip Boot Image */
+ IH_TYPE_RKSD, /* Rockchip SD card */
+ IH_TYPE_RKSPI, /* Rockchip SPI image */
+ IH_TYPE_ZYNQIMAGE, /* Xilinx Zynq Boot Image */
+ IH_TYPE_ZYNQMPIMAGE, /* Xilinx ZynqMP Boot Image */
+ IH_TYPE_ZYNQMPBIF, /* Xilinx ZynqMP Boot Image (bif) */
+ IH_TYPE_FPGA, /* FPGA Image */
+ IH_TYPE_VYBRIDIMAGE, /* VYBRID .vyb Image */
+ IH_TYPE_TEE, /* Trusted Execution Environment OS Image */
+ IH_TYPE_FIRMWARE_IVT, /* Firmware Image with HABv4 IVT */
+ IH_TYPE_PMMC, /* TI Power Management Micro-Controller Firmware */
+ IH_TYPE_STM32IMAGE, /* STMicroelectronics STM32 Image */
+ IH_TYPE_SOCFPGAIMAGE_V1, /* Altera SOCFPGA A10 Preloader */
+ IH_TYPE_MTKIMAGE, /* MediaTek BootROM loadable Image */
+ IH_TYPE_IMX8MIMAGE, /* Freescale IMX8MBoot Image */
+ IH_TYPE_IMX8IMAGE, /* Freescale IMX8Boot Image */
+ IH_TYPE_COPRO, /* Coprocessor Image for remoteproc*/
+ IH_TYPE_SUNXI_EGON, /* Allwinner eGON Boot Image */
+
+ IH_TYPE_COUNT, /* Number of image types */
+};
/*
* Compression Types
+ *
+ * The following are exposed to uImage header.
+ * New IDs *MUST* be appended at the end of the list and *NEVER*
+ * inserted for backward compatibility.
*/
-#define IH_COMP_NONE 0 /* No Compression Used */
-#define IH_COMP_GZIP 1 /* gzip Compression Used */
-#define IH_COMP_BZIP2 2 /* bzip2 Compression Used */
+enum {
+ IH_COMP_NONE = 0, /* No Compression Used */
+ IH_COMP_GZIP, /* gzip Compression Used */
+ IH_COMP_BZIP2, /* bzip2 Compression Used */
+ IH_COMP_LZMA, /* lzma Compression Used */
+ IH_COMP_LZO, /* lzo Compression Used */
+ IH_COMP_LZ4, /* lz4 Compression Used */
+ IH_COMP_ZSTD, /* zstd Compression Used */
+
+ IH_COMP_COUNT,
+};
#define IH_MAGIC 0x27051956 /* Image Magic Number */
#define IH_NMLEN 32 /* Image Name Length */
/*
- * all data in network byte order (aka natural aka bigendian)
+ * Legacy format image header,
+ * all data in network byte order (aka natural aka bigendian).
*/
-
typedef struct uboot_image_header {
uint32_t ih_magic; /* Image Header Magic Number */
uint32_t ih_hcrc; /* Image Header CRC Checksum */
--
2.25.1
^ permalink raw reply related [flat|nested] 5+ messages in thread
* [PATCH 2/2] hw/core: loader: Setting is_linux to true for VxWorks uImage
2022-03-24 8:22 [PATCH 1/2] hw/core: Sync uboot_image.h from U-Boot v2022.01 Bin Meng
@ 2022-03-24 8:22 ` Bin Meng
2022-03-24 11:50 ` Philippe Mathieu-Daudé
2022-03-24 13:11 ` Peter Maydell
2022-03-28 0:36 ` [PATCH 1/2] hw/core: Sync uboot_image.h from U-Boot v2022.01 Alistair Francis
1 sibling, 2 replies; 5+ messages in thread
From: Bin Meng @ 2022-03-24 8:22 UTC (permalink / raw)
To: qemu-devel; +Cc: Bin Meng
From: Bin Meng <bin.meng@windriver.com>
VxWorks 7 now uses the same boot interface as the Linux kernel on
Arm64, PowerPC and RISC-V architectures, except Arm. Add logic to
set is_linux to true for VxWorks uImage for these architectures in
load_uboot_image().
Signed-off-by: Bin Meng <bin.meng@windriver.com>
---
hw/core/loader.c | 15 +++++++++++++++
1 file changed, 15 insertions(+)
diff --git a/hw/core/loader.c b/hw/core/loader.c
index ca2f2431fb..af14b377f1 100644
--- a/hw/core/loader.c
+++ b/hw/core/loader.c
@@ -697,6 +697,21 @@ static int load_uboot_image(const char *filename, hwaddr *ep, hwaddr *loadaddr,
if (is_linux) {
if (hdr->ih_os == IH_OS_LINUX) {
*is_linux = 1;
+ } else if (hdr->ih_os == IH_OS_VXWORKS) {
+ /*
+ * VxWorks 7 uses the same boot interface as the Linux kernel
+ * on Arm64, PowerPC and RISC-V architectures, except Arm.
+ */
+ switch (hdr->ih_arch) {
+ case IH_ARCH_ARM64:
+ case IH_ARCH_PPC:
+ case IH_ARCH_RISCV:
+ *is_linux = 1;
+ break;
+ default:
+ *is_linux = 0;
+ break;
+ }
} else {
*is_linux = 0;
}
--
2.25.1
^ permalink raw reply related [flat|nested] 5+ messages in thread
* Re: [PATCH 2/2] hw/core: loader: Setting is_linux to true for VxWorks uImage
2022-03-24 8:22 ` [PATCH 2/2] hw/core: loader: Setting is_linux to true for VxWorks uImage Bin Meng
@ 2022-03-24 11:50 ` Philippe Mathieu-Daudé
2022-03-24 13:11 ` Peter Maydell
1 sibling, 0 replies; 5+ messages in thread
From: Philippe Mathieu-Daudé @ 2022-03-24 11:50 UTC (permalink / raw)
To: Bin Meng, qemu-devel; +Cc: Bin Meng
On 24/3/22 09:22, Bin Meng wrote:
> From: Bin Meng <bin.meng@windriver.com>
>
> VxWorks 7 now uses the same boot interface as the Linux kernel on
> Arm64, PowerPC and RISC-V architectures, except Arm. Add logic to
> set is_linux to true for VxWorks uImage for these architectures in
> load_uboot_image().
>
> Signed-off-by: Bin Meng <bin.meng@windriver.com>
> ---
>
> hw/core/loader.c | 15 +++++++++++++++
> 1 file changed, 15 insertions(+)
Reviewed-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [PATCH 2/2] hw/core: loader: Setting is_linux to true for VxWorks uImage
2022-03-24 8:22 ` [PATCH 2/2] hw/core: loader: Setting is_linux to true for VxWorks uImage Bin Meng
2022-03-24 11:50 ` Philippe Mathieu-Daudé
@ 2022-03-24 13:11 ` Peter Maydell
1 sibling, 0 replies; 5+ messages in thread
From: Peter Maydell @ 2022-03-24 13:11 UTC (permalink / raw)
To: Bin Meng; +Cc: Bin Meng, qemu-devel
On Thu, 24 Mar 2022 at 08:38, Bin Meng <bmeng.cn@gmail.com> wrote:
>
> From: Bin Meng <bin.meng@windriver.com>
>
> VxWorks 7 now uses the same boot interface as the Linux kernel on
> Arm64, PowerPC and RISC-V architectures, except Arm. Add logic to
> set is_linux to true for VxWorks uImage for these architectures in
> load_uboot_image().
>
> Signed-off-by: Bin Meng <bin.meng@windriver.com>
> ---
>
> hw/core/loader.c | 15 +++++++++++++++
> 1 file changed, 15 insertions(+)
>
> diff --git a/hw/core/loader.c b/hw/core/loader.c
> index ca2f2431fb..af14b377f1 100644
> --- a/hw/core/loader.c
> +++ b/hw/core/loader.c
> @@ -697,6 +697,21 @@ static int load_uboot_image(const char *filename, hwaddr *ep, hwaddr *loadaddr,
> if (is_linux) {
> if (hdr->ih_os == IH_OS_LINUX) {
> *is_linux = 1;
> + } else if (hdr->ih_os == IH_OS_VXWORKS) {
> + /*
> + * VxWorks 7 uses the same boot interface as the Linux kernel
> + * on Arm64, PowerPC and RISC-V architectures, except Arm.
"on Arm (64-bit only), PowerPC and RISC-V architectures".
thanks
-- PMM
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [PATCH 1/2] hw/core: Sync uboot_image.h from U-Boot v2022.01
2022-03-24 8:22 [PATCH 1/2] hw/core: Sync uboot_image.h from U-Boot v2022.01 Bin Meng
2022-03-24 8:22 ` [PATCH 2/2] hw/core: loader: Setting is_linux to true for VxWorks uImage Bin Meng
@ 2022-03-28 0:36 ` Alistair Francis
1 sibling, 0 replies; 5+ messages in thread
From: Alistair Francis @ 2022-03-28 0:36 UTC (permalink / raw)
To: Bin Meng; +Cc: Bin Meng, qemu-devel@nongnu.org Developers
On Thu, Mar 24, 2022 at 6:40 PM Bin Meng <bmeng.cn@gmail.com> wrote:
>
> From: Bin Meng <bin.meng@windriver.com>
>
> Sync uboot_image.h from upstream U-Boot v2022.01 release [1].
>
> [1] https://source.denx.de/u-boot/u-boot/-/blob/v2022.01/include/image.h
>
> Signed-off-by: Bin Meng <bin.meng@windriver.com>
Reviewed-by: Alistair Francis <alistair.francis@wdc.com>
Alistair
> ---
>
> hw/core/uboot_image.h | 213 ++++++++++++++++++++++++++++--------------
> 1 file changed, 142 insertions(+), 71 deletions(-)
>
> diff --git a/hw/core/uboot_image.h b/hw/core/uboot_image.h
> index 608022de6e..18ac293359 100644
> --- a/hw/core/uboot_image.h
> +++ b/hw/core/uboot_image.h
> @@ -1,23 +1,9 @@
> +/* SPDX-License-Identifier: GPL-2.0+ */
> /*
> + * (C) Copyright 2008 Semihalf
> + *
> * (C) Copyright 2000-2005
> * Wolfgang Denk, DENX Software Engineering, wd@denx.de.
> - *
> - * See file CREDITS for list of people who contributed to this
> - * project.
> - *
> - * This program is free software; you can redistribute it and/or
> - * modify it under the terms of the GNU General Public License as
> - * published by the Free Software Foundation; either version 2 of
> - * the License, or (at your option) any later version.
> - *
> - * This program is distributed in the hope that it will be useful,
> - * but WITHOUT ANY WARRANTY; without even the implied warranty of
> - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
> - * GNU General Public License for more details.
> - *
> - * You should have received a copy of the GNU General Public License along
> - * with this program; if not, see <http://www.gnu.org/licenses/>.
> - *
> ********************************************************************
> * NOTE: This header file defines an interface to U-Boot. Including
> * this (unmodified) header file in another file is considered normal
> @@ -31,50 +17,83 @@
>
> /*
> * Operating System Codes
> + *
> + * The following are exposed to uImage header.
> + * New IDs *MUST* be appended at the end of the list and *NEVER*
> + * inserted for backward compatibility.
> */
> -#define IH_OS_INVALID 0 /* Invalid OS */
> -#define IH_OS_OPENBSD 1 /* OpenBSD */
> -#define IH_OS_NETBSD 2 /* NetBSD */
> -#define IH_OS_FREEBSD 3 /* FreeBSD */
> -#define IH_OS_4_4BSD 4 /* 4.4BSD */
> -#define IH_OS_LINUX 5 /* Linux */
> -#define IH_OS_SVR4 6 /* SVR4 */
> -#define IH_OS_ESIX 7 /* Esix */
> -#define IH_OS_SOLARIS 8 /* Solaris */
> -#define IH_OS_IRIX 9 /* Irix */
> -#define IH_OS_SCO 10 /* SCO */
> -#define IH_OS_DELL 11 /* Dell */
> -#define IH_OS_NCR 12 /* NCR */
> -#define IH_OS_LYNXOS 13 /* LynxOS */
> -#define IH_OS_VXWORKS 14 /* VxWorks */
> -#define IH_OS_PSOS 15 /* pSOS */
> -#define IH_OS_QNX 16 /* QNX */
> -#define IH_OS_U_BOOT 17 /* Firmware */
> -#define IH_OS_RTEMS 18 /* RTEMS */
> -#define IH_OS_ARTOS 19 /* ARTOS */
> -#define IH_OS_UNITY 20 /* Unity OS */
> +enum {
> + IH_OS_INVALID = 0, /* Invalid OS */
> + IH_OS_OPENBSD, /* OpenBSD */
> + IH_OS_NETBSD, /* NetBSD */
> + IH_OS_FREEBSD, /* FreeBSD */
> + IH_OS_4_4BSD, /* 4.4BSD */
> + IH_OS_LINUX, /* Linux */
> + IH_OS_SVR4, /* SVR4 */
> + IH_OS_ESIX, /* Esix */
> + IH_OS_SOLARIS, /* Solaris */
> + IH_OS_IRIX, /* Irix */
> + IH_OS_SCO, /* SCO */
> + IH_OS_DELL, /* Dell */
> + IH_OS_NCR, /* NCR */
> + IH_OS_LYNXOS, /* LynxOS */
> + IH_OS_VXWORKS, /* VxWorks */
> + IH_OS_PSOS, /* pSOS */
> + IH_OS_QNX, /* QNX */
> + IH_OS_U_BOOT, /* Firmware */
> + IH_OS_RTEMS, /* RTEMS */
> + IH_OS_ARTOS, /* ARTOS */
> + IH_OS_UNITY, /* Unity OS */
> + IH_OS_INTEGRITY, /* INTEGRITY */
> + IH_OS_OSE, /* OSE */
> + IH_OS_PLAN9, /* Plan 9 */
> + IH_OS_OPENRTOS, /* OpenRTOS */
> + IH_OS_ARM_TRUSTED_FIRMWARE, /* ARM Trusted Firmware */
> + IH_OS_TEE, /* Trusted Execution Environment */
> + IH_OS_OPENSBI, /* RISC-V OpenSBI */
> + IH_OS_EFI, /* EFI Firmware (e.g. GRUB2) */
> +
> + IH_OS_COUNT,
> +};
>
> /*
> * CPU Architecture Codes (supported by Linux)
> + *
> + * The following are exposed to uImage header.
> + * New IDs *MUST* be appended at the end of the list and *NEVER*
> + * inserted for backward compatibility.
> */
> -#define IH_CPU_INVALID 0 /* Invalid CPU */
> -#define IH_CPU_ALPHA 1 /* Alpha */
> -#define IH_CPU_ARM 2 /* ARM */
> -#define IH_CPU_I386 3 /* Intel x86 */
> -#define IH_CPU_IA64 4 /* IA64 */
> -#define IH_CPU_MIPS 5 /* MIPS */
> -#define IH_CPU_MIPS64 6 /* MIPS 64 Bit */
> -#define IH_CPU_PPC 7 /* PowerPC */
> -#define IH_CPU_S390 8 /* IBM S390 */
> -#define IH_CPU_SH 9 /* SuperH */
> -#define IH_CPU_SPARC 10 /* Sparc */
> -#define IH_CPU_SPARC64 11 /* Sparc 64 Bit */
> -#define IH_CPU_M68K 12 /* M68K */
> -#define IH_CPU_NIOS 13 /* Nios-32 */
> -#define IH_CPU_MICROBLAZE 14 /* MicroBlaze */
> -#define IH_CPU_NIOS2 15 /* Nios-II */
> -#define IH_CPU_BLACKFIN 16 /* Blackfin */
> -#define IH_CPU_AVR32 17 /* AVR32 */
> +enum {
> + IH_ARCH_INVALID = 0, /* Invalid CPU */
> + IH_ARCH_ALPHA, /* Alpha */
> + IH_ARCH_ARM, /* ARM */
> + IH_ARCH_I386, /* Intel x86 */
> + IH_ARCH_IA64, /* IA64 */
> + IH_ARCH_MIPS, /* MIPS */
> + IH_ARCH_MIPS64, /* MIPS 64 Bit */
> + IH_ARCH_PPC, /* PowerPC */
> + IH_ARCH_S390, /* IBM S390 */
> + IH_ARCH_SH, /* SuperH */
> + IH_ARCH_SPARC, /* Sparc */
> + IH_ARCH_SPARC64, /* Sparc 64 Bit */
> + IH_ARCH_M68K, /* M68K */
> + IH_ARCH_NIOS, /* Nios-32 */
> + IH_ARCH_MICROBLAZE, /* MicroBlaze */
> + IH_ARCH_NIOS2, /* Nios-II */
> + IH_ARCH_BLACKFIN, /* Blackfin */
> + IH_ARCH_AVR32, /* AVR32 */
> + IH_ARCH_ST200, /* STMicroelectronics ST200 */
> + IH_ARCH_SANDBOX, /* Sandbox architecture (test only) */
> + IH_ARCH_NDS32, /* ANDES Technology - NDS32 */
> + IH_ARCH_OPENRISC, /* OpenRISC 1000 */
> + IH_ARCH_ARM64, /* ARM64 */
> + IH_ARCH_ARC, /* Synopsys DesignWare ARC */
> + IH_ARCH_X86_64, /* AMD x86_64, Intel and Via */
> + IH_ARCH_XTENSA, /* Xtensa */
> + IH_ARCH_RISCV, /* RISC-V */
> +
> + IH_ARCH_COUNT,
> +};
>
> /*
> * Image Types
> @@ -113,33 +132,85 @@
> * U-Boot's command interpreter; this feature is especially
> * useful when you configure U-Boot to use a real shell (hush)
> * as command interpreter (=> Shell Scripts).
> + *
> + * The following are exposed to uImage header.
> + * New IDs *MUST* be appended at the end of the list and *NEVER*
> + * inserted for backward compatibility.
> */
>
> -#define IH_TYPE_INVALID 0 /* Invalid Image */
> -#define IH_TYPE_STANDALONE 1 /* Standalone Program */
> -#define IH_TYPE_KERNEL 2 /* OS Kernel Image */
> -#define IH_TYPE_RAMDISK 3 /* RAMDisk Image */
> -#define IH_TYPE_MULTI 4 /* Multi-File Image */
> -#define IH_TYPE_FIRMWARE 5 /* Firmware Image */
> -#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) */
> +enum {
> + IH_TYPE_INVALID = 0, /* Invalid Image */
> + IH_TYPE_STANDALONE, /* Standalone Program */
> + IH_TYPE_KERNEL, /* OS Kernel Image */
> + IH_TYPE_RAMDISK, /* RAMDisk Image */
> + IH_TYPE_MULTI, /* Multi-File Image */
> + IH_TYPE_FIRMWARE, /* Firmware Image */
> + IH_TYPE_SCRIPT, /* Script file */
> + IH_TYPE_FILESYSTEM, /* Filesystem Image (any type) */
> + IH_TYPE_FLATDT, /* Binary Flat Device Tree Blob */
> + IH_TYPE_KWBIMAGE, /* Kirkwood Boot Image */
> + IH_TYPE_IMXIMAGE, /* Freescale IMXBoot Image */
> + IH_TYPE_UBLIMAGE, /* Davinci UBL Image */
> + IH_TYPE_OMAPIMAGE, /* TI OMAP Config Header Image */
> + IH_TYPE_AISIMAGE, /* TI Davinci AIS Image */
> + /* OS Kernel Image, can run from any load address */
> + IH_TYPE_KERNEL_NOLOAD,
> + IH_TYPE_PBLIMAGE, /* Freescale PBL Boot Image */
> + IH_TYPE_MXSIMAGE, /* Freescale MXSBoot Image */
> + IH_TYPE_GPIMAGE, /* TI Keystone GPHeader Image */
> + IH_TYPE_ATMELIMAGE, /* ATMEL ROM bootable Image */
> + IH_TYPE_SOCFPGAIMAGE, /* Altera SOCFPGA CV/AV Preloader */
> + IH_TYPE_X86_SETUP, /* x86 setup.bin Image */
> + IH_TYPE_LPC32XXIMAGE, /* x86 setup.bin Image */
> + IH_TYPE_LOADABLE, /* A list of typeless images */
> + IH_TYPE_RKIMAGE, /* Rockchip Boot Image */
> + IH_TYPE_RKSD, /* Rockchip SD card */
> + IH_TYPE_RKSPI, /* Rockchip SPI image */
> + IH_TYPE_ZYNQIMAGE, /* Xilinx Zynq Boot Image */
> + IH_TYPE_ZYNQMPIMAGE, /* Xilinx ZynqMP Boot Image */
> + IH_TYPE_ZYNQMPBIF, /* Xilinx ZynqMP Boot Image (bif) */
> + IH_TYPE_FPGA, /* FPGA Image */
> + IH_TYPE_VYBRIDIMAGE, /* VYBRID .vyb Image */
> + IH_TYPE_TEE, /* Trusted Execution Environment OS Image */
> + IH_TYPE_FIRMWARE_IVT, /* Firmware Image with HABv4 IVT */
> + IH_TYPE_PMMC, /* TI Power Management Micro-Controller Firmware */
> + IH_TYPE_STM32IMAGE, /* STMicroelectronics STM32 Image */
> + IH_TYPE_SOCFPGAIMAGE_V1, /* Altera SOCFPGA A10 Preloader */
> + IH_TYPE_MTKIMAGE, /* MediaTek BootROM loadable Image */
> + IH_TYPE_IMX8MIMAGE, /* Freescale IMX8MBoot Image */
> + IH_TYPE_IMX8IMAGE, /* Freescale IMX8Boot Image */
> + IH_TYPE_COPRO, /* Coprocessor Image for remoteproc*/
> + IH_TYPE_SUNXI_EGON, /* Allwinner eGON Boot Image */
> +
> + IH_TYPE_COUNT, /* Number of image types */
> +};
>
> /*
> * Compression Types
> + *
> + * The following are exposed to uImage header.
> + * New IDs *MUST* be appended at the end of the list and *NEVER*
> + * inserted for backward compatibility.
> */
> -#define IH_COMP_NONE 0 /* No Compression Used */
> -#define IH_COMP_GZIP 1 /* gzip Compression Used */
> -#define IH_COMP_BZIP2 2 /* bzip2 Compression Used */
> +enum {
> + IH_COMP_NONE = 0, /* No Compression Used */
> + IH_COMP_GZIP, /* gzip Compression Used */
> + IH_COMP_BZIP2, /* bzip2 Compression Used */
> + IH_COMP_LZMA, /* lzma Compression Used */
> + IH_COMP_LZO, /* lzo Compression Used */
> + IH_COMP_LZ4, /* lz4 Compression Used */
> + IH_COMP_ZSTD, /* zstd Compression Used */
> +
> + IH_COMP_COUNT,
> +};
>
> #define IH_MAGIC 0x27051956 /* Image Magic Number */
> #define IH_NMLEN 32 /* Image Name Length */
>
> /*
> - * all data in network byte order (aka natural aka bigendian)
> + * Legacy format image header,
> + * all data in network byte order (aka natural aka bigendian).
> */
> -
> typedef struct uboot_image_header {
> uint32_t ih_magic; /* Image Header Magic Number */
> uint32_t ih_hcrc; /* Image Header CRC Checksum */
> --
> 2.25.1
>
>
^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~2022-03-28 0:38 UTC | newest]
Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2022-03-24 8:22 [PATCH 1/2] hw/core: Sync uboot_image.h from U-Boot v2022.01 Bin Meng
2022-03-24 8:22 ` [PATCH 2/2] hw/core: loader: Setting is_linux to true for VxWorks uImage Bin Meng
2022-03-24 11:50 ` Philippe Mathieu-Daudé
2022-03-24 13:11 ` Peter Maydell
2022-03-28 0:36 ` [PATCH 1/2] hw/core: Sync uboot_image.h from U-Boot v2022.01 Alistair Francis
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).