summaryrefslogtreecommitdiff
path: root/x86_64
AgeCommit message (Collapse)Author
2021-04-05ioapic: Refactor EOIDamien Zammit
Message-Id: <20210405115921.184572-2-damien@zamaudio.com>
2021-04-05Don't call EOI on spurious interruptsDamien Zammit
Message-Id: <20210405052916.174771-4-damien@zamaudio.com>
2021-04-04SMP: fix getting the interrupt stack address and sizeSamuel Thibault
* i386/i386at/boothdr.S (_eintstack): Add missing common. * i386/xen/xen_boothdr.S (_eintstack): Add missing common. * x86_64/xen/xen_boothdr.S (_eintstack): Add missing common. * i386/i386/mp_desc.c (intstack, eintstack): Add missing underscore.
2021-04-04Add ioapic support disabled by defaultDamien Zammit
Use --enable-ncpus=x --enable-apic where x > 1 for SMP+APIC support. Use neither for no SMP and old PIC support. Message-Id: <20210404050812.145483-1-damien@zamaudio.com>
2020-11-28x86: Pave the way for xsave/xrstor supportSamuel Thibault
* i386/i386/fpu.h (xgetbv, get_xcr0, xsetbv, set_xcr0): New inline functions. (xsave, xrstor): New macros. * i386/i386/locore.S (cpu_features): Extend to two words. (cpu_features_edx, cpu_features_ecx): New labels. (discover_x86_cpu_type): Also save ecx cpuid(1) report. * x86_64/locore.S: Likewise. * i386/i386/locore.h (cpu_features): Extend to two words. (CPU_FEATURE_XSAVE): New macro. * i386/i386/proc_reg.h (CR4_OSXSAVE): New macro.
2020-11-22Disable com3 and com4Samuel Thibault
We do not support shared IRQs for these, so avoid boot issues when running on a system with more than 2 com ports. * i386/configfrag.ac (ncom) [at:i?86]: Set to 2. * x86_64/configfrag.ac (ncom) [at:x86_64]: Set to 2.
2020-07-1864bit: fix buildSamuel Thibault
* device/ds_routines.c (ds_device_intr_register, ds_device_intr_ack) [__x86_64__]: Disable. * x86_64/Makefrag.am (libkernel_a_SOURCES): Add i386/i386/irq.c and i386/i386/irq.h.
2020-04-06mach_trap_table: Fix 64bit versionSamuel Thibault
The addition of the mach_trap_name field made the 64bit unused field spurious. * kern/syscall_sw.h (mach_trap_t): Remove `unused' field.
2020-03-29Share ncom, lpr, PAE definitions between i386 and x86_64Samuel Thibault
Otherwise the x86_64 configfrag would overwrite i386's. * i386/configfrag.ac: Remove ncom, nlpr, pae, NCOM, NLPR, PAE definitions. * i386/configfrag.ac: Remove ncom, nlpr, NCOM, NLPR, PAE definitions. Enable PAE. * configfrag-first.ac: New file, defines ncom, nlpr, pae. * configure.ac: Include configfrag-first.ac * configfrag.ac: Define NCOM, NLPR, PAE.
2020-03-29x86_64: drop unused functionsSamuel Thibault
* x86_64/locore.S (dr6, dr0, dr1, dr2, dr3): Remove functions. (dr_msk, dr_addr): Remove variables.
2020-03-29x86_64: Fix map address given to linkerSamuel Thibault
See VM_MIN_KERNEL_ADDRESS. * x86_64/Makefrag.am (gnumach_LINKFLAGS): Set _START to _START_MAP+0x40000000 instead of +0xC0000000.
2020-03-29Enable x86_64 build for atEtienne Brateau
* x86_64/Makefrag.am: Add instructions to build
2020-03-29spl: Fix assembly filesEtienne Brateau
* x86_64/spl.S: fix instruction length
2020-03-28Enable at x86_64 buildSamuel Thibault
* x86_64/configfrag.ac (ncom, nplr) [!at:x86_64]: Set to 0. (ncom) [at:x86_64]: Set to 4. (nlpr) [at:x86_64]: Set to 1. (ATX86_64): Define to 1. (NCOM): Define. (NLPR): Define. * configure.ac [at:x86_64]: Accept combination.
2020-03-28kdasm: Fix 64bit buildSamuel Thibault
* x86_64/kdasm.S (count): Fix type to 32bit. (kd_slmscu, kd_slmscd): Fix getting count as 32bit.
2020-03-28IDT: fix entries formatSamuel Thibault
* i386/i386/idt.c (idt_init_entry): Set entrypoint type to unsigned long. * x86_64/idt_inittab.S (IDT_ENTRY): Fix entry format accordingly.
2020-03-28interrupt: Add 64bit variantSamuel Thibault
* x86_64/interrupt.S: New file.
2020-03-28kdasm: Add 64bit variantSamuel Thibault
* i386/i386at/kdasm.S (start, count, value, from, to): Use B_ARG* instead of reimplementing them. * x86_64/kdasm.S: New file.
2020-03-28build system: Add 64bit variantSamuel Thibault
Only Xen platform for now. * Makefrag.am [HOST_x86_64]: Include x86_64/Makefrag.am. * configure.ac: Include x86_64/configfrag.ac. [default:x86_64] (host_platform): Set platform to xen. * x86_64/Makefrag.am, x86_64/configfrag.ac: New files.
2020-03-28Add 64bit/32bit compatibility symlinksSamuel Thibault
This makes inclusions easier. * x86_64/include/mach/x86_64, x86_64/x86_64: New symlinks.
2020-03-28xen: Add 64bit variantSamuel Thibault
* x86_64/xen_boothdr.S, x86_64/xen_locore.S: New files.
2020-03-28spl: Add 64bit variantSamuel Thibault
* x86_64/spl.S: New file.
2020-03-28locore: Add 64bit variantSamuel Thibault
* x86_64/locore.S: New file.
2020-03-28ldscript: Add 64bit variantSamuel Thibault
* x86_64/ldscript: New file.
2020-03-28idt_inittab: Add 64bit variantSamuel Thibault
* x86_64/idt_inittab.S: New file.
2020-03-28debug_trace: Add 64bit variantSamuel Thibault
* x86_64/debug_trace.S: New file.
2020-03-28cswitch: Add 64bit variantSamuel Thibault
* x86_64/cswitch.S: New file.
2020-03-28setjmp: Add 64bit variantSamuel Thibault
* x86_64/_setjmp.S: New file * i386/i386/setjmp.h (jmp_buf): Add 64bit variant.