From: Michael Brown Date: Wed, 21 May 2025 11:07:24 +0000 (+0100) Subject: [initrd] Move initrd reshuffling to be architecture-independent code X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=c1cd54ad74200a132aff5b3d0cfce8662dec5fe4;p=thirdparty%2Fipxe.git [initrd] Move initrd reshuffling to be architecture-independent code There is nothing x86-specific in initrd.c, and a variant of the reshuffling logic will be required for executing bare-metal kernels on RISC-V and AArch64. Signed-off-by: Michael Brown --- diff --git a/src/arch/x86/image/bzimage.c b/src/arch/x86/image/bzimage.c index 60fd16130..63de82c63 100644 --- a/src/arch/x86/image/bzimage.c +++ b/src/arch/x86/image/bzimage.c @@ -38,7 +38,7 @@ FILE_LICENCE ( GPL2_OR_LATER_OR_UBDL ); #include #include #include -#include +#include #include #include #include diff --git a/src/arch/x86/include/bits/errfile.h b/src/arch/x86/include/bits/errfile.h index 6f9b45e7e..4fa9acef6 100644 --- a/src/arch/x86/include/bits/errfile.h +++ b/src/arch/x86/include/bits/errfile.h @@ -41,7 +41,6 @@ FILE_LICENCE ( GPL2_OR_LATER_OR_UBDL ); #define ERRFILE_comboot_resolv ( ERRFILE_ARCH | ERRFILE_IMAGE | 0x00090000 ) #define ERRFILE_comboot_call ( ERRFILE_ARCH | ERRFILE_IMAGE | 0x000a0000 ) #define ERRFILE_sdi ( ERRFILE_ARCH | ERRFILE_IMAGE | 0x000b0000 ) -#define ERRFILE_initrd ( ERRFILE_ARCH | ERRFILE_IMAGE | 0x000c0000 ) #define ERRFILE_pxe_call ( ERRFILE_ARCH | ERRFILE_IMAGE | 0x000d0000 ) #define ERRFILE_ucode ( ERRFILE_ARCH | ERRFILE_IMAGE | 0x000e0000 ) diff --git a/src/arch/x86/image/initrd.c b/src/image/initrd.c similarity index 99% rename from src/arch/x86/image/initrd.c rename to src/image/initrd.c index 3fc6964c9..71634324d 100644 --- a/src/arch/x86/image/initrd.c +++ b/src/image/initrd.c @@ -25,12 +25,12 @@ FILE_LICENCE ( GPL2_OR_LATER_OR_UBDL ); #include #include -#include #include #include #include #include #include +#include /** @file * diff --git a/src/include/ipxe/errfile.h b/src/include/ipxe/errfile.h index 22215699b..d00191fbe 100644 --- a/src/include/ipxe/errfile.h +++ b/src/include/ipxe/errfile.h @@ -329,6 +329,7 @@ FILE_LICENCE ( GPL2_OR_LATER_OR_UBDL ); #define ERRFILE_gzip ( ERRFILE_IMAGE | 0x000c0000 ) #define ERRFILE_efi_siglist ( ERRFILE_IMAGE | 0x000d0000 ) #define ERRFILE_lkrn ( ERRFILE_IMAGE | 0x000e0000 ) +#define ERRFILE_initrd ( ERRFILE_IMAGE | 0x000f0000 ) #define ERRFILE_asn1 ( ERRFILE_OTHER | 0x00000000 ) #define ERRFILE_chap ( ERRFILE_OTHER | 0x00010000 ) diff --git a/src/arch/x86/include/initrd.h b/src/include/ipxe/initrd.h similarity index 84% rename from src/arch/x86/include/initrd.h rename to src/include/ipxe/initrd.h index 921de3434..0d70b0731 100644 --- a/src/arch/x86/include/initrd.h +++ b/src/include/ipxe/initrd.h @@ -1,5 +1,5 @@ -#ifndef _INITRD_H -#define _INITRD_H +#ifndef _IPXE_INITRD_H +#define _IPXE_INITRD_H /** @file * @@ -20,4 +20,4 @@ FILE_LICENCE ( GPL2_OR_LATER_OR_UBDL ); extern void initrd_reshuffle ( physaddr_t bottom ); extern int initrd_reshuffle_check ( size_t len, physaddr_t bottom ); -#endif /* _INITRD_H */ +#endif /* _IPXE_INITRD_H */