Port-amd64 archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Re: UEFI ExitBootServices



John Nemeth <jnemeth%cue.bc.ca@localhost> wrote:

>      BTW, can you summarize the difference between multiboot and
> multiboot2?

In multiboot2, the kernel contains a structure that provides a wish list
for the bootloader (all optional)
- what information should be provided by booloader to the kernel
- where the kernel should be loaded in memory
- what are the kernel entry points, for BIOS boot, EFI32 and EFI64
- should there be a test console? EGA console?
- should there be a framebuffer, with what height, width, depth
- should module be loaded page aligned?
- should ExitBootServices be called by the booloader

Here is the sample debug dump for Xen 4.11:
Information tag request (req): BASIC_MEMINFO(4) MMAP(6) 
Console flags (opt):  EGA 
Framebuffer (opt): width = 0, height = 0, depth = 0
Module alignment (req)
Do not call EFI Boot service exit (opt)
EFI64 entry point (opt): 3f205e
Relocatable (opt): min_addr = 200000, max_addr = ffffffff, align =
200000, pref = high

The booloader launches the kernel with a pointer to a structure that
provides informations:
- boot command line
- booloader name
- loaded modules
- basic meminfo
- boot device
- memory map
- video mode
- framebuffer geometry
- kernel ELF sections
- APM, SMBIOS, ACPI old and ACPI new tables
- configured network information
- EFI ImageHandle and SystemTable
- did the booloader calle ExitBootServices
- where the kernel was loaded

Here is the information dump I have so far when booting xen:

Announced mbi size 0x430
- Tag 0x1, Size 0x92
Command line = NAME=ffs:/xen-4.11.1 loglvl=all dom0_mem=256M
- Tag 0x2, Size 0x65
Boot loader name = NetBSD/x86 EFI Boot (x64), Revision 1.1 (Fri Aug 30
12:47:34)
- Tag 0x3, Size 0x30
Module at 0x4500000-0x53ea010. Command line
NAME=ffs:/netbsd81-XEN3_DOM0.gz
- Tag 0x4, Size 0x10
mem_lower = 640KB, mem_upper = 252988KB
- Tag 0x8, Size 0x28
framebuffer 80x25x16
- Tag 0x15, Size 0xc
Load base addr 4136000
- Tag 0x12, Size 0x8
EFI ExitBootServices was not called
- Tag 0xc, Size 0x10
EFI64 System Table fbee018
- Tag 0x14, Size 0x10
EFI64 IH f167e18
- Tag 0x6, Size 0x280
mmap
 base_addr = 0x00, length = 0x0a0000, type = 0x1
 base_addr = 0x0100000, length = 0x0700000, type = 0x1
 base_addr = 0x0800000, length = 0x08000, type = 0x4
 base_addr = 0x0808000, length = 0x08000, type = 0x1
 base_addr = 0x0810000, length = 0x0f0000, type = 0x4
 base_addr = 0x0900000, length = 0x0def6000, type = 0x1
 base_addr = 0x0e7f6000, length = 0x019000, type = 0x4
 base_addr = 0x0e80f000, length = 0x023000, type = 0x2
 base_addr = 0x0e832000, length = 0x0220000, type = 0x1
 base_addr = 0x0ea52000, length = 0x05000, type = 0x2
 base_addr = 0x0ea57000, length = 0x08000, type = 0x2
 base_addr = 0x0ea5f000, length = 0x05000, type = 0x2
 base_addr = 0x0ea64000, length = 0x07000, type = 0x2
 base_addr = 0x0ea6b000, length = 0x05000, type = 0x2
 base_addr = 0x0ea70000, length = 0x0a000, type = 0x2
 base_addr = 0x0ea7a000, length = 0x08f000, type = 0x2
 base_addr = 0x0eb09000, length = 0x012000, type = 0x2
 base_addr = 0x0eb1b000, length = 0x01080000, type = 0x1
 base_addr = 0x0fb9b000, length = 0x030000, type = 0x2
 base_addr = 0x0fbcb000, length = 0x024000, type = 0x2
 base_addr = 0x0fbef000, length = 0x04000, type = 0x2
 base_addr = 0x0fbf3000, length = 0x08000, type = 0x3
 base_addr = 0x0fbfb000, length = 0x04000, type = 0x4
 base_addr = 0x0fbff000, length = 0x02f5000, type = 0x1
 base_addr = 0x0fef4000, length = 0x084000, type = 0x2
 base_addr = 0x0ff78000, length = 0x088000, type = 0x4
Total mbi size 0x430


-- 
Emmanuel Dreyfus
http://hcpnet.free.fr/pubz
manu%netbsd.org@localhost


Home | Main Index | Thread Index | Old Index