mirror of
https://github.com/ipxe/ipxe
synced 2026-01-23 04:29:01 +03:00
[lkrn] Add basic support for the RISC-V Linux kernel image format
The RISC-V and AArch64 bare-metal kernel images share a common header format, and require essentially the same execution environment: loaded close to the start of RAM, entered with paging disabled, and passed a pointer to a flattened device tree that describes the hardware and any boot arguments. Implement basic support for executing bare-metal RISC-V and AArch64 kernel images. The (trivial) AArch64-specific code path is untested since we do not yet have the ability to build for any bare-metal AArch64 platforms. Constructing and passing an initramfs image is not yet supported. Rename the IMAGE_BZIMAGE build configuration option to IMAGE_LKRN, since "bzImage" is specific to x86. To retain backwards compatibility with existing local build configurations, we leave IMAGE_BZIMAGE as the enabled option in config/default/pcbios.h and treat IMAGE_LKRN as a synonym for IMAGE_BZIMAGE when building for x86 BIOS. Signed-off-by: Michael Brown <mcb30@ipxe.org>
This commit is contained in:
@@ -22,6 +22,7 @@
|
||||
FILE_LICENCE ( GPL2_OR_LATER_OR_UBDL );
|
||||
|
||||
#include <config/console.h>
|
||||
#include <config/general.h>
|
||||
|
||||
/** @file
|
||||
*
|
||||
@@ -48,3 +49,13 @@ REQUIRE_OBJECT ( vesafb );
|
||||
#ifdef CONSOLE_INT13
|
||||
REQUIRE_OBJECT ( int13con );
|
||||
#endif
|
||||
|
||||
/*
|
||||
* Drag in all requested image types
|
||||
*
|
||||
*/
|
||||
|
||||
/* Allow IMAGE_LKRN to be a synonynm for IMAGE_BZIMAGE */
|
||||
#ifdef IMAGE_LKRN
|
||||
REQUIRE_OBJECT ( bzimage );
|
||||
#endif
|
||||
|
||||
@@ -0,0 +1,41 @@
|
||||
/*
|
||||
* 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, write to the Free Software
|
||||
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
|
||||
* 02110-1301, USA.
|
||||
*
|
||||
* You can also choose to distribute this program under the terms of
|
||||
* the Unmodified Binary Distribution Licence (as given in the file
|
||||
* COPYING.UBDL), provided that you have satisfied its requirements.
|
||||
*/
|
||||
|
||||
FILE_LICENCE ( GPL2_OR_LATER_OR_UBDL );
|
||||
|
||||
#include <config/general.h>
|
||||
|
||||
/** @file
|
||||
*
|
||||
* SBI-specific configuration options
|
||||
*
|
||||
*/
|
||||
|
||||
PROVIDE_REQUIRING_SYMBOL();
|
||||
|
||||
/*
|
||||
* Drag in all requested image types
|
||||
*
|
||||
*/
|
||||
|
||||
#ifdef IMAGE_LKRN
|
||||
REQUIRE_OBJECT ( lkrn );
|
||||
#endif
|
||||
|
||||
@@ -30,6 +30,8 @@ FILE_LICENCE ( GPL2_OR_LATER_OR_UBDL );
|
||||
#define TIME_NULL
|
||||
|
||||
#define IMAGE_SCRIPT
|
||||
#define IMAGE_LKRN
|
||||
#define IMAGE_GZIP
|
||||
|
||||
#define REBOOT_CMD
|
||||
#define POWEROFF_CMD
|
||||
|
||||
@@ -117,7 +117,7 @@ FILE_LICENCE ( GPL2_OR_LATER_OR_UBDL );
|
||||
//#define IMAGE_MULTIBOOT /* MultiBoot image support */
|
||||
//#define IMAGE_PXE /* PXE image support */
|
||||
//#define IMAGE_SCRIPT /* iPXE script image support */
|
||||
//#define IMAGE_BZIMAGE /* Linux bzImage image support */
|
||||
//#define IMAGE_LKRN /* Linux kernel image support */
|
||||
//#define IMAGE_COMBOOT /* SYSLINUX COMBOOT image support */
|
||||
//#define IMAGE_EFI /* EFI image support */
|
||||
//#define IMAGE_SDI /* SDI image support */
|
||||
|
||||
Reference in New Issue
Block a user