Pass the address of the bootinfo block to the kernel in register
r8. Keep it at the hardwired address for now. Bump the version.
This commit is contained in:
parent
12ae303a12
commit
cd2c8e3ef6
@ -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);
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
@ -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);
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
@ -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.
|
||||
|
@ -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.
|
||||
|
Loading…
Reference in New Issue
Block a user