diff options
author | marcel <marcel@FreeBSD.org> | 2002-03-30 23:00:05 +0000 |
---|---|---|
committer | marcel <marcel@FreeBSD.org> | 2002-03-30 23:00:05 +0000 |
commit | 83aa1632bb0b8706135df7bb695c019511ba8169 (patch) | |
tree | 19ac7d5e267eca6c21acb4ab09acec6a684bc339 | |
parent | 84ad095a1c8ea2ab3b70872f4e100e782371e88b (diff) | |
download | FreeBSD-src-83aa1632bb0b8706135df7bb695c019511ba8169.zip FreeBSD-src-83aa1632bb0b8706135df7bb695c019511ba8169.tar.gz |
Pass the physical address of the bootinfo block to the kernel in
register r8. We continue to write the bootinfo block at the same
hardwired address, because the kernel still expects it there.
It is expected that future kernels use register r8 to get to the
bootinfo block and don't depend on the hardwired address anymore.
Bump the loader version once again due to the interface change.
-rw-r--r-- | sys/boot/efi/libefi/elf_freebsd.c | 2 | ||||
-rw-r--r-- | sys/boot/efi/loader/version | 2 | ||||
-rw-r--r-- | sys/boot/ia64/common/exec.c | 2 | ||||
-rw-r--r-- | sys/boot/ia64/efi/version | 2 |
4 files changed, 6 insertions, 2 deletions
diff --git a/sys/boot/efi/libefi/elf_freebsd.c b/sys/boot/efi/libefi/elf_freebsd.c index 2aaaa39..1d99d72 100644 --- a/sys/boot/efi/libefi/elf_freebsd.c +++ b/sys/boot/efi/libefi/elf_freebsd.c @@ -129,7 +129,7 @@ enter_kernel(u_int64_t start, struct bootinfo *bi) __asm __volatile("mov cr.iip=%0" :: "r"(start)); __asm __volatile("mov cr.ifs=r0;;"); __asm __volatile("mov ar.rsc=0;; flushrs;;"); - + __asm __volatile("mov r8=%0" :: "r" (bi)); __asm __volatile("rfi;;"); } diff --git a/sys/boot/efi/loader/version b/sys/boot/efi/loader/version index ce84d78..b1f04d7 100644 --- a/sys/boot/efi/loader/version +++ b/sys/boot/efi/loader/version @@ -3,6 +3,8 @@ $FreeBSD$ NOTE ANY CHANGES YOU MAKE TO THE BOOTBLOCKS HERE. The format of this file is important. Make sure the current version number is on line 6. +0.3: Pass the physical address of the bootinfo block in register r8 + to the kernel. Continue to put it at the fixed address for now. 0.2: Much improved version. Significant is the support for passing the FPSWA interface pointer to the kernel. 0.1: Initial EFI version, germinated from the NetBSD i386 diff --git a/sys/boot/ia64/common/exec.c b/sys/boot/ia64/common/exec.c index 2aaaa39..1d99d72 100644 --- a/sys/boot/ia64/common/exec.c +++ b/sys/boot/ia64/common/exec.c @@ -129,7 +129,7 @@ enter_kernel(u_int64_t start, struct bootinfo *bi) __asm __volatile("mov cr.iip=%0" :: "r"(start)); __asm __volatile("mov cr.ifs=r0;;"); __asm __volatile("mov ar.rsc=0;; flushrs;;"); - + __asm __volatile("mov r8=%0" :: "r" (bi)); __asm __volatile("rfi;;"); } diff --git a/sys/boot/ia64/efi/version b/sys/boot/ia64/efi/version index ce84d78..b1f04d7 100644 --- a/sys/boot/ia64/efi/version +++ b/sys/boot/ia64/efi/version @@ -3,6 +3,8 @@ $FreeBSD$ NOTE ANY CHANGES YOU MAKE TO THE BOOTBLOCKS HERE. The format of this file is important. Make sure the current version number is on line 6. +0.3: Pass the physical address of the bootinfo block in register r8 + to the kernel. Continue to put it at the fixed address for now. 0.2: Much improved version. Significant is the support for passing the FPSWA interface pointer to the kernel. 0.1: Initial EFI version, germinated from the NetBSD i386 |