mirror of
https://github.com/opnsense/src.git
synced 2026-05-28 04:12:45 -04:00
Remove a left-over virtual mapping of uncached I/O port space.
Previous kernels unwantingly depended on this mapping, but as of version 1.123 of src/sys/ia64/ia64/machdep.c this dependency has been removed. Consequently, one has to update the kernel before updating the loader. The documented/recommended upgrade will suffice in this case. Due to a visible (from the kernels point of view) change in behaviour, bump the loader version number from 0.3 to 1.0. Approved by: re (carte blanc)
This commit is contained in:
parent
e8c1847f37
commit
aef78848af
4 changed files with 6 additions and 34 deletions
|
|
@ -217,23 +217,6 @@ elf_exec(struct preloaded_file *fp)
|
|||
:: "r"(0), "r"(*(u_int64_t*)&pte));
|
||||
__asm __volatile("srlz.i;;");
|
||||
|
||||
bzero(&pte, sizeof(pte));
|
||||
pte.pte_p = 1;
|
||||
pte.pte_ma = PTE_MA_UC;
|
||||
pte.pte_a = 1;
|
||||
pte.pte_d = 1;
|
||||
pte.pte_pl = PTE_PL_KERN;
|
||||
pte.pte_ar = PTE_AR_RWX;
|
||||
pte.pte_ppn = 0xffffc000000 >> 12;
|
||||
|
||||
__asm __volatile("mov cr.ifa=%0" :: "r"(IA64_PHYS_TO_RR6(0xffffc000000)));
|
||||
__asm __volatile("mov cr.itir=%0" :: "r"(26 << 2));
|
||||
//__asm __volatile("ptr.d %0,%1" :: "r"(IA64_PHYS_TO_RR6(0xffffc000000)), "r"(26<<2));
|
||||
__asm __volatile("srlz.i;;");
|
||||
__asm __volatile("itr.d dtr[%0]=%1;;"
|
||||
:: "r"(1), "r"(*(u_int64_t*)&pte));
|
||||
__asm __volatile("srlz.i;;");
|
||||
|
||||
enter_kernel(hdr->e_entry, bi);
|
||||
|
||||
restore_ic(psr);
|
||||
|
|
|
|||
|
|
@ -3,6 +3,9 @@ $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.
|
||||
|
||||
1.0: Don't map the I/O port range. We expect the kernel to do it. It
|
||||
was done in the loader as a debugging aid and not intended as a
|
||||
service/feature.
|
||||
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
|
||||
|
|
|
|||
|
|
@ -217,23 +217,6 @@ elf_exec(struct preloaded_file *fp)
|
|||
:: "r"(0), "r"(*(u_int64_t*)&pte));
|
||||
__asm __volatile("srlz.i;;");
|
||||
|
||||
bzero(&pte, sizeof(pte));
|
||||
pte.pte_p = 1;
|
||||
pte.pte_ma = PTE_MA_UC;
|
||||
pte.pte_a = 1;
|
||||
pte.pte_d = 1;
|
||||
pte.pte_pl = PTE_PL_KERN;
|
||||
pte.pte_ar = PTE_AR_RWX;
|
||||
pte.pte_ppn = 0xffffc000000 >> 12;
|
||||
|
||||
__asm __volatile("mov cr.ifa=%0" :: "r"(IA64_PHYS_TO_RR6(0xffffc000000)));
|
||||
__asm __volatile("mov cr.itir=%0" :: "r"(26 << 2));
|
||||
//__asm __volatile("ptr.d %0,%1" :: "r"(IA64_PHYS_TO_RR6(0xffffc000000)), "r"(26<<2));
|
||||
__asm __volatile("srlz.i;;");
|
||||
__asm __volatile("itr.d dtr[%0]=%1;;"
|
||||
:: "r"(1), "r"(*(u_int64_t*)&pte));
|
||||
__asm __volatile("srlz.i;;");
|
||||
|
||||
enter_kernel(hdr->e_entry, bi);
|
||||
|
||||
restore_ic(psr);
|
||||
|
|
|
|||
|
|
@ -3,6 +3,9 @@ $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.
|
||||
|
||||
1.0: Don't map the I/O port range. We expect the kernel to do it. It
|
||||
was done in the loader as a debugging aid and not intended as a
|
||||
service/feature.
|
||||
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
|
||||
|
|
|
|||
Loading…
Reference in a new issue