summaryrefslogtreecommitdiffstats
path: root/sys/conf/options.amd64
Commit message (Collapse)AuthorAgeFilesLines
* Rename the KDB_STOP_NMI kernel option to STOP_NMI and make it apply to alljhb2005-10-241-1/+1
| | | | | | | | | | | | | | | | | | | | | | IPI_STOP IPIs. - Change the i386 and amd64 MD IPI code to send an NMI if STOP_NMI is enabled if an attempt is made to send an IPI_STOP IPI. If the kernel option is enabled, there is also a sysctl to change the behavior at runtime (debug.stop_cpus_with_nmi which defaults to enabled). This includes removing stop_cpus_nmi() and making ipi_nmi_selected() a private function for i386 and amd64. - Fix ipi_all(), ipi_all_but_self(), and ipi_self() on i386 and amd64 to properly handle bitmapped IPIs as well as IPI_STOP IPIs when STOP_NMI is enabled. - Fix ipi_nmi_handler() to execute the restart function on the first CPU that is restarted making use of atomic_readandclear() rather than assuming that the BSP is always included in the set of restarted CPUs. Also, the NMI handler didn't clear the function pointer meaning that subsequent stop and restarts could execute the function again. - Define a new macro HAVE_STOPPEDPCBS on i386 and amd64 to control the use of stoppedpcbs[] and always enable it for i386 and amd64 instead of being dependent on KDB_STOP_NMI. It works fine in both the NMI and non-NMI cases.
* Move the KDB_STOP_NMI option from opt_global.h to opt_kdb.hpeter2005-06-291-1/+1
| | | | Approved by: re
* Implement an alternate method to stop CPUs when entering DDB. Normally we usedwhite2005-04-301-0/+3
| | | | | | | | | | | | | | a regular IPI vector, but this vector is blocked when interrupts are disabled. With "options KDB_STOP_NMI" and debug.kdb.stop_cpus_with_nmi set, KDB will send an NMI to each CPU instead. The code also has a context-stuffing feature which helps ddb extract the state of processes running on the stopped CPUs. KDB_STOP_NMI is only useful with SMP and complains if SMP is not defined. This feature only applies to i386 and amd64 at the moment, but could be used on other architectures with the appropriate MD bits. Submitted by: ups
* Remove NO_MIXED_MODE optionpeter2005-04-151-1/+0
|
* Add support for Windows/x86-64 binaries to Project Evil.wpaul2005-02-161-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Ville-Pertti Keinonen (will at exomi dot comohmygodnospampleasekthx) deserves a big thanks for submitting initial patches to make it work. I have mangled his contributions appropriately. The main gotcha with Windows/x86-64 is that Microsoft uses a different calling convention than everyone else. The standard ABI requires using 6 registers for argument passing, with other arguments on the stack. Microsoft uses only 4 registers, and requires the caller to leave room on the stack for the register arguments incase the callee needs to spill them. Unlike x86, where Microsoft uses a mix of _cdecl, _stdcall and _fastcall, all routines on Windows/x86-64 uses the same convention. This unfortunately means that all the functions we export to the driver require an intermediate translation wrapper. Similarly, we have to wrap all calls back into the driver binary itself. The original patches provided macros to wrap every single routine at compile time, providing a secondary jump table with a customized wrapper for each exported routine. I decided to use a different approach: the call wrapper for each function is created from a template at runtime, and the routine to jump to is patched into the wrapper as it is created. The subr_pe module has been modified to patch in the wrapped function instead of the original. (On x86, the wrapping routine is a no-op.) There are some minor API differences that had to be accounted for: - KeAcquireSpinLock() is a real function on amd64, not a macro wrapper around KfAcquireSpinLock() - NdisFreeBuffer() is actually IoFreeMdl(). I had to change the whole NDIS_BUFFER API a bit to accomodate this. Bugs fixed along the way: - IoAllocateMdl() always returned NULL - kern_windrv.c:windrv_unload() wasn't releasing private driver object extensions correctly (found thanks to memguard) This has only been tested with the driver for the Broadcom 802.11g chipset, which was the only Windows/x86-64 driver I could find.
* Add the mp_watchdog hooks, although it locks up my SMP test box. It mightpeter2004-08-301-0/+1
| | | | be useable to somebody.
* I'm not sure what tjr envisioned for turning on FreeBSD/i386 rt support,obrien2004-08-161-1/+1
| | | | | but make it COMPAT_IA32 for now. Fix the 'DEBUG' argument code to unbreak the amd64 LINT build.
* Add preliminary support for running 32-bit Linux binaries on amd64, enabledtjr2004-08-161-0/+1
| | | | | | | | | | with the COMPAT_LINUX32 option. This is largely based on the i386 MD Linux emulations bits, but also builds on the 32-bit FreeBSD and generic IA-32 binary emulation work. Some of this is still a little rough around the edges, and will need to be revisited before 32-bit and 64-bit Linux emulation support can coexist in the same kernel.
* MFp4: comment out options that don't exist so that they cannot bepeter2004-03-131-8/+5
| | | | | accidently added to config files and be silently accepted. Comment out one bogo-option that crept into NOTES.
* VESA* is a mistake - it cannot exist due to requiring a 32 bit kernel forobrien2004-03-051-3/+0
| | | | | | BIOS calls and/or VM86. Submitted by: peter
* PECOFF_* isn't useful for AMD64.obrien2004-03-051-2/+0
|
* Add missing working options from i386 file.obrien2004-03-031-2/+31
|
* Initial landing of SMP support for FreeBSD/amd64.peter2003-11-171-0/+4
| | | | | | | | | | | | | | | | - This is heavily derived from John Baldwin's apic/pci cleanup on i386. - I have completely rewritten or drastically cleaned up some other parts. (in particular, bootstrap) - This is still a WIP. It seems that there are some highly bogus bioses on nVidia nForce3-150 boards. I can't stress how broken these boards are. I have a workaround in mind, but right now the Asus SK8N is broken. The Gigabyte K8NPro (nVidia based) is also mind-numbingly hosed. - Most of my testing has been with SCHED_ULE. SCHED_4BSD works. - the apic and acpi components are 'standard'. - If you have an nVidia nForce3-150 board, you are stuck with 'device atpic' in addition, because they somehow managed to forget to connect the 8254 timer to the apic, even though its in the same silicon! ARGH! This directly violates the ACPI spec.
* Moved the syscons options, kbd options and DEV_SPLASH to the MI optionsjake2003-06-181-31/+0
| | | | file.
* Another x86-64 comment fixuppeter2003-05-191-1/+1
| | | | Approved by: re (blanket amd64 stuff)
* Add BASIC i386 binary support for the amd64 kernel. This is largelypeter2003-05-141-0/+1
| | | | | | | | | | | | | | | | | | | | | | stolen from the ia64/ia32 code (indeed there was a repocopy), but I've redone the MD parts and added and fixed a few essential syscalls. It is sufficient to run i386 binaries like /bin/ls, /usr/bin/id (dynamic) and p4. The ia64 code has not implemented signal delivery, so I had to do that. Before you say it, yes, this does need to go in a common place. But we're in a freeze at the moment and I didn't want to risk breaking ia64. I will sort this out after the freeze so that the common code is in a common place. On the AMD64 side, this required adding segment selector context switch support and some other support infrastructure. The %fs/%gs etc code is hairy because loading %gs will clobber the kernel's current MSR_GSBASE setting. The segment selectors are not used by the kernel, so they're only changed at context switch time or when changing modes. This still needs to be optimized. Approved by: re (amd64/* blanket)
* Sync up with the files in the hammer branch in the p4 tree to get basicpeter2003-05-011-3/+7
| | | | AMD64 support. There is still more to add.
* Options that go into homonymous headers shouldn't specify the header name.des2003-04-121-1/+1
| | | | Submitted by: Hiten Pandya <hiten@unixdaemons.com>
* Move SHOW_BUSYBUFS and PANIC_REBOOT_WAIT_TIME into the MI options file, sincejmallett2002-11-181-1/+0
| | | | | | | MI code uses them, and every platform provides them (except x86_64 whose options file was lacking one). Reviewed by: bde, rwatson
* Add new syscons option SC_NO_SUSPEND_VTYSWITCH.iwasaki2002-10-171-0/+1
| | | | This disables vty switch during suspend/resume.
* Move the KSTACK_PAGES option from MD to MI. Although not all platformspeter2002-09-071-1/+0
| | | | | | | | support this, we do have MI code that references it and is otherwise unaware of an override. The alternative is to put knowledge in these MI files about which platforms have the opt_kstack_pages.h option file. It is more likely that other platforms will gain the ability to tune the kstack size.
* This is the start of the FreeBSD/x86_64 kernel.obrien2002-06-301-0/+58
OpenPOWER on IntegriCloud