mirror of https://github.com/ipxe/ipxe.git
Capable of starting a multiboot kernel (albeit without the multiboot
information table yet).pull/1/head
parent
9196e9069c
commit
dc51af59a4
|
@ -74,8 +74,21 @@ struct multiboot_header_info {
|
||||||
* @v image ELF file
|
* @v image ELF file
|
||||||
* @ret rc Return status code
|
* @ret rc Return status code
|
||||||
*/
|
*/
|
||||||
static int multiboot_execute ( struct image *image __unused ) {
|
static int multiboot_execute ( struct image *image ) {
|
||||||
return -ENOTSUP;
|
struct multiboot_info mbinfo;
|
||||||
|
|
||||||
|
/* Populate multiboot information structure */
|
||||||
|
memset ( &mbinfo, 0, sizeof ( mbinfo ) );
|
||||||
|
|
||||||
|
|
||||||
|
/* Jump to OS with flat physical addressing */
|
||||||
|
__asm__ ( PHYS_CODE ( "call *%%edi\n\t" )
|
||||||
|
: : "a" ( MULTIBOOT_BOOTLOADER_MAGIC ),
|
||||||
|
"b" ( virt_to_phys ( &mbinfo ) ),
|
||||||
|
"D" ( image->entry )
|
||||||
|
: "ecx", "edx", "esi", "ebp" );
|
||||||
|
|
||||||
|
return -ECANCELED;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
Loading…
Reference in New Issue