#
1.17 |
|
25-Feb-2024 |
guenther |
We don't do compat32 so MSR_CSTAR shouldn't be set up: delete the Xsyscall32 stub and UCODE32 selector, set MSR_CSTAR to zero at CPU startup, and rezero on ACPI resume and VM exit.
requested a while ago by deraadt@ AMD VM testing chris@ testing and ok krw@
|
#
1.16 |
|
19-Jan-2024 |
kettenis |
Implement Multiple Message MSI support on amd64. This is experimental code to assist qwx(4) development. We may remove this code again at some point in the future.
Multiple Message MSI has some serious design flaws, especially when combined with the APIC interrupt controller architecture. It was superseded by MSI-X. Unfortunately qwx(4) does not implement MSI-X.
ok stsp@, deraadt@
|
Revision tags: OPENBSD_6_4_BASE OPENBSD_6_5_BASE OPENBSD_6_6_BASE OPENBSD_6_7_BASE OPENBSD_6_8_BASE OPENBSD_6_9_BASE OPENBSD_7_0_BASE OPENBSD_7_1_BASE OPENBSD_7_2_BASE OPENBSD_7_3_BASE OPENBSD_7_4_BASE
|
#
1.15 |
|
29-Mar-2018 |
guenther |
Explicitly declare the gdt storage in struct cpu_info_full instead of implicitly putting it in the padding to page-size. This eliminates a couple Coverity issues from the Meltdown work.
testing daniel@ ok mlarkin@
|
Revision tags: OPENBSD_5_9_BASE OPENBSD_6_0_BASE OPENBSD_6_1_BASE OPENBSD_6_2_BASE OPENBSD_6_3_BASE
|
#
1.14 |
|
30-Sep-2015 |
guenther |
How about I delete _all_ the BITFIELDTYPE comments?
|
#
1.13 |
|
26-Sep-2015 |
guenther |
lint is dead: BITFIELDTYPE comments aren't useful
ok miller@
|
Revision tags: OPENBSD_5_8_BASE
|
#
1.12 |
|
28-Jun-2015 |
guenther |
LDT is gone and not coming back
|
#
1.11 |
|
24-May-2015 |
guenther |
Treat primary cpu like others and put pointer to its GDT in cpu_info.ci_gdt
requested by and ok mlarkin@
|
Revision tags: OPENBSD_5_0_BASE OPENBSD_5_1_BASE OPENBSD_5_2_BASE OPENBSD_5_3_BASE OPENBSD_5_4_BASE OPENBSD_5_5_BASE OPENBSD_5_6_BASE OPENBSD_5_7_BASE
|
#
1.10 |
|
23-Mar-2011 |
pirofti |
Normalize sentinel. Use _MACHINE_*_H_ and _<ARCH>_*_H_ properly and consitently.
Discussed and okay drahn@. Okay deraadt@.
|
Revision tags: OPENBSD_4_9_BASE
|
#
1.9 |
|
20-Nov-2010 |
miod |
__attribute__((packed)) -> __packed. The ioprbs.c chunk was commented out, and uncommenting it is intentional. ok deraadt@
|
#
1.8 |
|
13-Nov-2010 |
guenther |
Switch from TSS-per-process to TSS-per-CPU, placing the TSS right next to the cpu's GDT, also making the double-fault stack per-CPU, leaving it at the top of the page of the CPU's idle process. Inline pmap_activate() and pmap_deactivate() into the asm cpu_switchto routine, adding a check for the new pmap already being marked as active on the CPU. Garbage collect the hasn't-been-used-in-years GDT update IPI.
Tested by many; ok mikeb@, kettenis@
|
#
1.7 |
|
26-Oct-2010 |
guenther |
The LDT is only used by dead compat code now, so load the ldt register with the null selector (disabling use of it), stop reloading it on every context switch, and blow away the table itself, as well as the pcb and pmap bits that were used to track it. Also, delete two other unused pcb members: pcb_usersp and pcb_flags. (Deleting pcb_usersp also keeps the pcb_savefpu member aligned properly.) Finally, delete the defines for the unimplemented AMD64_{GET,SET}_LDT sysarch() calls.
Tested by various with both AMD and Intel chips ok mikeb@
|
#
1.6 |
|
14-Oct-2010 |
guenther |
Clean up segment handling: switch user-space to using code and data segments in the GDT instead of the LDT and eliminate the GDT slots that we don't actually use.
tested on both amd and intel by several not really the right person, but ok: kettenis@
|
Revision tags: OPENBSD_4_4_BASE OPENBSD_4_5_BASE OPENBSD_4_6_BASE OPENBSD_4_7_BASE OPENBSD_4_8_BASE
|
#
1.5 |
|
23-May-2008 |
jasper |
- remove USER_LDT, it was never in a state where it would copile, nor will we support i386-compat mode on amd64.
agreed by beck@, dlg@, kettenis@ ok deraadt@, tom@
|
Revision tags: OPENBSD_3_9_BASE OPENBSD_4_0_BASE OPENBSD_4_1_BASE OPENBSD_4_2_BASE OPENBSD_4_3_BASE
|
#
1.4 |
|
13-Dec-2005 |
jsg |
Remove the advertising clause in the UCB license which Berkeley rescinded 22 July 1999. Checked by ian@, deraadt@ and millert@, arm portion checked by drahn@
|
Revision tags: OPENBSD_3_6_BASE OPENBSD_3_7_BASE OPENBSD_3_8_BASE
|
#
1.3 |
|
15-Jul-2004 |
deraadt |
put int into a type
|
Revision tags: OPENBSD_3_5_BASE SMP_SYNC_A SMP_SYNC_B
|
#
1.2 |
|
29-Jan-2004 |
mickey |
check struct reg for evil; from netbsd
|
#
1.1 |
|
28-Jan-2004 |
mickey |
an amd64 arch support. hacked by art@ from netbsd sources and then later debugged by me into the shape where it can host itself. no bootloader yet as needs redoing from the recent advanced i386 sources (anyone? ;)
|
#
1.16 |
|
19-Jan-2024 |
kettenis |
Implement Multiple Message MSI support on amd64. This is experimental code to assist qwx(4) development. We may remove this code again at some point in the future.
Multiple Message MSI has some serious design flaws, especially when combined with the APIC interrupt controller architecture. It was superseded by MSI-X. Unfortunately qwx(4) does not implement MSI-X.
ok stsp@, deraadt@
|
Revision tags: OPENBSD_6_4_BASE OPENBSD_6_5_BASE OPENBSD_6_6_BASE OPENBSD_6_7_BASE OPENBSD_6_8_BASE OPENBSD_6_9_BASE OPENBSD_7_0_BASE OPENBSD_7_1_BASE OPENBSD_7_2_BASE OPENBSD_7_3_BASE OPENBSD_7_4_BASE
|
#
1.15 |
|
29-Mar-2018 |
guenther |
Explicitly declare the gdt storage in struct cpu_info_full instead of implicitly putting it in the padding to page-size. This eliminates a couple Coverity issues from the Meltdown work.
testing daniel@ ok mlarkin@
|
Revision tags: OPENBSD_5_9_BASE OPENBSD_6_0_BASE OPENBSD_6_1_BASE OPENBSD_6_2_BASE OPENBSD_6_3_BASE
|
#
1.14 |
|
30-Sep-2015 |
guenther |
How about I delete _all_ the BITFIELDTYPE comments?
|
#
1.13 |
|
26-Sep-2015 |
guenther |
lint is dead: BITFIELDTYPE comments aren't useful
ok miller@
|
Revision tags: OPENBSD_5_8_BASE
|
#
1.12 |
|
28-Jun-2015 |
guenther |
LDT is gone and not coming back
|
#
1.11 |
|
24-May-2015 |
guenther |
Treat primary cpu like others and put pointer to its GDT in cpu_info.ci_gdt
requested by and ok mlarkin@
|
Revision tags: OPENBSD_5_0_BASE OPENBSD_5_1_BASE OPENBSD_5_2_BASE OPENBSD_5_3_BASE OPENBSD_5_4_BASE OPENBSD_5_5_BASE OPENBSD_5_6_BASE OPENBSD_5_7_BASE
|
#
1.10 |
|
23-Mar-2011 |
pirofti |
Normalize sentinel. Use _MACHINE_*_H_ and _<ARCH>_*_H_ properly and consitently.
Discussed and okay drahn@. Okay deraadt@.
|
Revision tags: OPENBSD_4_9_BASE
|
#
1.9 |
|
20-Nov-2010 |
miod |
__attribute__((packed)) -> __packed. The ioprbs.c chunk was commented out, and uncommenting it is intentional. ok deraadt@
|
#
1.8 |
|
13-Nov-2010 |
guenther |
Switch from TSS-per-process to TSS-per-CPU, placing the TSS right next to the cpu's GDT, also making the double-fault stack per-CPU, leaving it at the top of the page of the CPU's idle process. Inline pmap_activate() and pmap_deactivate() into the asm cpu_switchto routine, adding a check for the new pmap already being marked as active on the CPU. Garbage collect the hasn't-been-used-in-years GDT update IPI.
Tested by many; ok mikeb@, kettenis@
|
#
1.7 |
|
26-Oct-2010 |
guenther |
The LDT is only used by dead compat code now, so load the ldt register with the null selector (disabling use of it), stop reloading it on every context switch, and blow away the table itself, as well as the pcb and pmap bits that were used to track it. Also, delete two other unused pcb members: pcb_usersp and pcb_flags. (Deleting pcb_usersp also keeps the pcb_savefpu member aligned properly.) Finally, delete the defines for the unimplemented AMD64_{GET,SET}_LDT sysarch() calls.
Tested by various with both AMD and Intel chips ok mikeb@
|
#
1.6 |
|
14-Oct-2010 |
guenther |
Clean up segment handling: switch user-space to using code and data segments in the GDT instead of the LDT and eliminate the GDT slots that we don't actually use.
tested on both amd and intel by several not really the right person, but ok: kettenis@
|
Revision tags: OPENBSD_4_4_BASE OPENBSD_4_5_BASE OPENBSD_4_6_BASE OPENBSD_4_7_BASE OPENBSD_4_8_BASE
|
#
1.5 |
|
23-May-2008 |
jasper |
- remove USER_LDT, it was never in a state where it would copile, nor will we support i386-compat mode on amd64.
agreed by beck@, dlg@, kettenis@ ok deraadt@, tom@
|
Revision tags: OPENBSD_3_9_BASE OPENBSD_4_0_BASE OPENBSD_4_1_BASE OPENBSD_4_2_BASE OPENBSD_4_3_BASE
|
#
1.4 |
|
13-Dec-2005 |
jsg |
Remove the advertising clause in the UCB license which Berkeley rescinded 22 July 1999. Checked by ian@, deraadt@ and millert@, arm portion checked by drahn@
|
Revision tags: OPENBSD_3_6_BASE OPENBSD_3_7_BASE OPENBSD_3_8_BASE
|
#
1.3 |
|
15-Jul-2004 |
deraadt |
put int into a type
|
Revision tags: OPENBSD_3_5_BASE SMP_SYNC_A SMP_SYNC_B
|
#
1.2 |
|
29-Jan-2004 |
mickey |
check struct reg for evil; from netbsd
|
#
1.1 |
|
28-Jan-2004 |
mickey |
an amd64 arch support. hacked by art@ from netbsd sources and then later debugged by me into the shape where it can host itself. no bootloader yet as needs redoing from the recent advanced i386 sources (anyone? ;)
|
#
1.15 |
|
29-Mar-2018 |
guenther |
Explicitly declare the gdt storage in struct cpu_info_full instead of implicitly putting it in the padding to page-size. This eliminates a couple Coverity issues from the Meltdown work.
testing daniel@ ok mlarkin@
|
Revision tags: OPENBSD_5_9_BASE OPENBSD_6_0_BASE OPENBSD_6_1_BASE OPENBSD_6_2_BASE OPENBSD_6_3_BASE
|
#
1.14 |
|
30-Sep-2015 |
guenther |
How about I delete _all_ the BITFIELDTYPE comments?
|
#
1.13 |
|
26-Sep-2015 |
guenther |
lint is dead: BITFIELDTYPE comments aren't useful
ok miller@
|
Revision tags: OPENBSD_5_8_BASE
|
#
1.12 |
|
28-Jun-2015 |
guenther |
LDT is gone and not coming back
|
#
1.11 |
|
24-May-2015 |
guenther |
Treat primary cpu like others and put pointer to its GDT in cpu_info.ci_gdt
requested by and ok mlarkin@
|
Revision tags: OPENBSD_5_0_BASE OPENBSD_5_1_BASE OPENBSD_5_2_BASE OPENBSD_5_3_BASE OPENBSD_5_4_BASE OPENBSD_5_5_BASE OPENBSD_5_6_BASE OPENBSD_5_7_BASE
|
#
1.10 |
|
23-Mar-2011 |
pirofti |
Normalize sentinel. Use _MACHINE_*_H_ and _<ARCH>_*_H_ properly and consitently.
Discussed and okay drahn@. Okay deraadt@.
|
Revision tags: OPENBSD_4_9_BASE
|
#
1.9 |
|
20-Nov-2010 |
miod |
__attribute__((packed)) -> __packed. The ioprbs.c chunk was commented out, and uncommenting it is intentional. ok deraadt@
|
#
1.8 |
|
13-Nov-2010 |
guenther |
Switch from TSS-per-process to TSS-per-CPU, placing the TSS right next to the cpu's GDT, also making the double-fault stack per-CPU, leaving it at the top of the page of the CPU's idle process. Inline pmap_activate() and pmap_deactivate() into the asm cpu_switchto routine, adding a check for the new pmap already being marked as active on the CPU. Garbage collect the hasn't-been-used-in-years GDT update IPI.
Tested by many; ok mikeb@, kettenis@
|
#
1.7 |
|
26-Oct-2010 |
guenther |
The LDT is only used by dead compat code now, so load the ldt register with the null selector (disabling use of it), stop reloading it on every context switch, and blow away the table itself, as well as the pcb and pmap bits that were used to track it. Also, delete two other unused pcb members: pcb_usersp and pcb_flags. (Deleting pcb_usersp also keeps the pcb_savefpu member aligned properly.) Finally, delete the defines for the unimplemented AMD64_{GET,SET}_LDT sysarch() calls.
Tested by various with both AMD and Intel chips ok mikeb@
|
#
1.6 |
|
14-Oct-2010 |
guenther |
Clean up segment handling: switch user-space to using code and data segments in the GDT instead of the LDT and eliminate the GDT slots that we don't actually use.
tested on both amd and intel by several not really the right person, but ok: kettenis@
|
Revision tags: OPENBSD_4_4_BASE OPENBSD_4_5_BASE OPENBSD_4_6_BASE OPENBSD_4_7_BASE OPENBSD_4_8_BASE
|
#
1.5 |
|
23-May-2008 |
jasper |
- remove USER_LDT, it was never in a state where it would copile, nor will we support i386-compat mode on amd64.
agreed by beck@, dlg@, kettenis@ ok deraadt@, tom@
|
Revision tags: OPENBSD_3_9_BASE OPENBSD_4_0_BASE OPENBSD_4_1_BASE OPENBSD_4_2_BASE OPENBSD_4_3_BASE
|
#
1.4 |
|
13-Dec-2005 |
jsg |
Remove the advertising clause in the UCB license which Berkeley rescinded 22 July 1999. Checked by ian@, deraadt@ and millert@, arm portion checked by drahn@
|
Revision tags: OPENBSD_3_6_BASE OPENBSD_3_7_BASE OPENBSD_3_8_BASE
|
#
1.3 |
|
15-Jul-2004 |
deraadt |
put int into a type
|
Revision tags: OPENBSD_3_5_BASE SMP_SYNC_A SMP_SYNC_B
|
#
1.2 |
|
29-Jan-2004 |
mickey |
check struct reg for evil; from netbsd
|
#
1.1 |
|
28-Jan-2004 |
mickey |
an amd64 arch support. hacked by art@ from netbsd sources and then later debugged by me into the shape where it can host itself. no bootloader yet as needs redoing from the recent advanced i386 sources (anyone? ;)
|
Revision tags: OPENBSD_5_9_BASE OPENBSD_6_0_BASE OPENBSD_6_1_BASE OPENBSD_6_2_BASE
|
#
1.14 |
|
30-Sep-2015 |
guenther |
How about I delete _all_ the BITFIELDTYPE comments?
|
#
1.13 |
|
26-Sep-2015 |
guenther |
lint is dead: BITFIELDTYPE comments aren't useful
ok miller@
|
Revision tags: OPENBSD_5_8_BASE
|
#
1.12 |
|
28-Jun-2015 |
guenther |
LDT is gone and not coming back
|
#
1.11 |
|
24-May-2015 |
guenther |
Treat primary cpu like others and put pointer to its GDT in cpu_info.ci_gdt
requested by and ok mlarkin@
|
Revision tags: OPENBSD_5_0_BASE OPENBSD_5_1_BASE OPENBSD_5_2_BASE OPENBSD_5_3_BASE OPENBSD_5_4_BASE OPENBSD_5_5_BASE OPENBSD_5_6_BASE OPENBSD_5_7_BASE
|
#
1.10 |
|
23-Mar-2011 |
pirofti |
Normalize sentinel. Use _MACHINE_*_H_ and _<ARCH>_*_H_ properly and consitently.
Discussed and okay drahn@. Okay deraadt@.
|
Revision tags: OPENBSD_4_9_BASE
|
#
1.9 |
|
20-Nov-2010 |
miod |
__attribute__((packed)) -> __packed. The ioprbs.c chunk was commented out, and uncommenting it is intentional. ok deraadt@
|
#
1.8 |
|
13-Nov-2010 |
guenther |
Switch from TSS-per-process to TSS-per-CPU, placing the TSS right next to the cpu's GDT, also making the double-fault stack per-CPU, leaving it at the top of the page of the CPU's idle process. Inline pmap_activate() and pmap_deactivate() into the asm cpu_switchto routine, adding a check for the new pmap already being marked as active on the CPU. Garbage collect the hasn't-been-used-in-years GDT update IPI.
Tested by many; ok mikeb@, kettenis@
|
#
1.7 |
|
26-Oct-2010 |
guenther |
The LDT is only used by dead compat code now, so load the ldt register with the null selector (disabling use of it), stop reloading it on every context switch, and blow away the table itself, as well as the pcb and pmap bits that were used to track it. Also, delete two other unused pcb members: pcb_usersp and pcb_flags. (Deleting pcb_usersp also keeps the pcb_savefpu member aligned properly.) Finally, delete the defines for the unimplemented AMD64_{GET,SET}_LDT sysarch() calls.
Tested by various with both AMD and Intel chips ok mikeb@
|
#
1.6 |
|
14-Oct-2010 |
guenther |
Clean up segment handling: switch user-space to using code and data segments in the GDT instead of the LDT and eliminate the GDT slots that we don't actually use.
tested on both amd and intel by several not really the right person, but ok: kettenis@
|
Revision tags: OPENBSD_4_4_BASE OPENBSD_4_5_BASE OPENBSD_4_6_BASE OPENBSD_4_7_BASE OPENBSD_4_8_BASE
|
#
1.5 |
|
23-May-2008 |
jasper |
- remove USER_LDT, it was never in a state where it would copile, nor will we support i386-compat mode on amd64.
agreed by beck@, dlg@, kettenis@ ok deraadt@, tom@
|
Revision tags: OPENBSD_3_9_BASE OPENBSD_4_0_BASE OPENBSD_4_1_BASE OPENBSD_4_2_BASE OPENBSD_4_3_BASE
|
#
1.4 |
|
13-Dec-2005 |
jsg |
Remove the advertising clause in the UCB license which Berkeley rescinded 22 July 1999. Checked by ian@, deraadt@ and millert@, arm portion checked by drahn@
|
Revision tags: OPENBSD_3_6_BASE OPENBSD_3_7_BASE OPENBSD_3_8_BASE
|
#
1.3 |
|
15-Jul-2004 |
deraadt |
put int into a type
|
Revision tags: OPENBSD_3_5_BASE SMP_SYNC_A SMP_SYNC_B
|
#
1.2 |
|
29-Jan-2004 |
mickey |
check struct reg for evil; from netbsd
|
#
1.1 |
|
28-Jan-2004 |
mickey |
an amd64 arch support. hacked by art@ from netbsd sources and then later debugged by me into the shape where it can host itself. no bootloader yet as needs redoing from the recent advanced i386 sources (anyone? ;)
|