diff options
author | marcel <marcel@FreeBSD.org> | 2002-03-30 23:52:34 +0000 |
---|---|---|
committer | marcel <marcel@FreeBSD.org> | 2002-03-30 23:52:34 +0000 |
commit | 688cf86e245339c72f4f3abf4dccfbb5748f103a (patch) | |
tree | be055475bc8584100d76fbd3f756f795d8a2e879 /sys/boot/ia64/ski | |
parent | 3d34c199201ae64f4f084e4ecb241e24ed857899 (diff) | |
download | FreeBSD-src-688cf86e245339c72f4f3abf4dccfbb5748f103a.zip FreeBSD-src-688cf86e245339c72f4f3abf4dccfbb5748f103a.tar.gz |
Pass the address of the bootinfo block to the kernel in register
r8. Keep it at the hardwired address for now. Bump the version.
Diffstat (limited to 'sys/boot/ia64/ski')
-rw-r--r-- | sys/boot/ia64/ski/elf_freebsd.c | 8 | ||||
-rw-r--r-- | sys/boot/ia64/ski/version | 2 |
2 files changed, 5 insertions, 5 deletions
diff --git a/sys/boot/ia64/ski/elf_freebsd.c b/sys/boot/ia64/ski/elf_freebsd.c index ac8c886..6465d8a 100644 --- a/sys/boot/ia64/ski/elf_freebsd.c +++ b/sys/boot/ia64/ski/elf_freebsd.c @@ -129,7 +129,7 @@ struct ia64_pte { }; void -enter_kernel(const char* filename, u_int64_t start) +enter_kernel(const char* filename, u_int64_t start, struct bootinfo *bi) { printf("Entering %s at 0x%lx...\n", filename, start); @@ -145,6 +145,7 @@ enter_kernel(const char* filename, u_int64_t start) | IA64_PSR_BN)); __asm __volatile("mov cr.iip=%0" :: "r"(start)); __asm __volatile("mov cr.ifs=r0;;"); + __asm __volatile("mov r8=%0" :: "r" (bi)); __asm __volatile("rfi;;"); } @@ -196,8 +197,5 @@ elf_exec(struct preloaded_file *fp) :: "r"(0), "r"(*(u_int64_t*)&pte)); __asm __volatile("srlz.i;;"); - enter_kernel(fp->f_name, hdr->e_entry); + enter_kernel(fp->f_name, hdr->e_entry, bi); } - - - diff --git a/sys/boot/ia64/ski/version b/sys/boot/ia64/ski/version index b87ca50..6f4fc3c 100644 --- a/sys/boot/ia64/ski/version +++ b/sys/boot/ia64/ski/version @@ -3,4 +3,6 @@ $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.2: Pass the address of the bootinfo block to the kernel in register + r8. Keep it at the hardwired address for now. 0.1: Initial SKI version. |