summaryrefslogtreecommitdiff
path: root/sys/arch/i386/include
AgeCommit message (Collapse)Author
2009-06-01physmem allocator: change the view of free memory from single free pagesAriane van der Steldt
to free ranges. Classify memory based on region with associated use-counter (which is used to construct a priority list of where to allocate memory). Based on code from tedu@, help from many. Ok art@
2009-04-30add support for passing db_console from the bootloader to the kernel.David Gwynne
based on the same change in amd64.
2009-04-20Add a BUS_DMA_ZERO flag for bus_dmamem_alloc() to return zeroed memory.Owain Ainsworth
Saves every damned driver calling bzero(), and continues the M_ZERO, PR_ZERO symmetry.
2009-04-19Switch the softinterrupt code on x86 over to mutexes instead ofOwain Ainsworth
simplelocks + splhigh(). First part of making it possible to make mpsafe softinterrupts. "oh yes, definitely" miod@
2009-03-15Introduce splsoftassert(), similar to splassert() but for soft interruptMiod Vallat
levels. This will allow for platforms where soft interrupt levels do not map to real hardware interrupt levels to have soft ipl values overlapping hard ipl values without breaking spl asserts.
2009-03-10remove the _BUS_DMA_PRIVATE define from amd64 and i386.Owain Ainsworth
a define needed to get to ``private'' functions that needs to be defined 5 or more times isn't much use and may cause namespace issues anyway. Other archs will probably follow. Discussed in portugal. "Hell yes" weingart@, ok kettenis@, no objections miod@
2009-02-26Add a two new ioctls to the apm(4) interface.Owain Ainsworth
APM_IOC_{SUSPEND,STANDBY}_REQ: This is to fix an issue with apm suspend where a call to zzz suspended the machine immediately, not giving anyone listening for apm events (other than apmd) a chance to deal with the upcoming change. This hit X hard since the introduction of drm, since it needs to have time to idle the 3d engine and otherwise get the device into a recoverable state. Such things are needed until we support modesetting in the kernel. Now, instead of forcing a suspend, using ioctl sends out an event similar to if you had put the lid down, giving all userland applications a chance to reply. tested by sthen@ and beck@, especial thanks to sthen for sitting there while I tried to debug this remotely, I owe him beer. Prompted by and ok deraadt@
2009-02-16Store conditionally extended cpuid family/model valuesJonathan Gray
in seperate variables in struct cpu_info instead of duplicating the process of extracting it from the signature. Use this value when determining the bus clock on P6/family 0x6 chips, which fixes speedstep on bernd@'s ThinkPad x200s. Discussed with several, 'just do it' weingart@, ok mikeb@
2009-02-05add MD PMAP_NOCACHE flag to i386 and use it to implement theOwain Ainsworth
BUS_DMA_NOCACHE flag with guarantees that the dma memory will be mapped uncached. Some broken/odd hardware needs this. discussion with miod, toby, art and kettenis. ok miod.
2009-02-03Free TSS on the stack of the dead process.Mike Belopuhov
In order to do that we have to remove all sleeping parts: sleeping memory allocation and a sleeping lock. Thus we're moving this code to the spinning lock (mutex) and getting rid of the GDT grow code. Downside is that now we're pre-allocating 64kb of memory per CPU from the start, but this might be optimized in future. This also unifies GDT code and MAXGDTSIZ define across i386 and amd64. With help from mickey. ok toby, art
2009-01-20Install ACPI S3 resume trampoline code in a lowmem page. First partMike Larkin
of ACPI S3 suspend/resume support. This is for i386. Help/comments from art, toby, marco, jordan, kurt ok marco@, kurt@
2008-12-18Don't set the global bit PG_G for kernel pmap low memory mappings. Use aKurt Miller
new function pmap_prealloc_lowmem_ptp() to setup kernel pmap ptp 0 without the PG_G bit set. This fixes the remaining reaper -> pmap_page_remove panics. With much diagnostic help from Art and Theo. ok deraadt@
2008-12-03Remove the x86 and i386 prefixes to the bus_dma types. It's really quiteOwain Ainsworth
pointless and just makes the code different for no reason. This moves i386 and amd64 bus_dma to being a lot closer to identical. suggestion to just remove the prefix instead of merge them from deraadt@. no objections art@, kettenis@, ok weingart@
2008-11-22Allow wired memory to be accounted on i386. This automatically changesMike Belopuhov
the policy for the mlock(2) on this architecture: all users are allowed to call mlock, while the limit is imposed by the current RLIMIT_MEMLOCK value. "makes sense" art, ok hshoexer (who was running with the same change for about 10 months).
2008-11-22The last parts of cpu_unidle. i386, amd64 and sparc64Artur Grabowski
In short, make cpu_unidle do what signotify used to do and make signotify use cpu_unidle. Also, include a cpu_unidle in need_resched, it won't change much right now but will be needed in the future.
2008-11-22same change as for amd64. Move bus_space_* functions from inlines andOwain Ainsworth
defines into real functions. since machdep.c is cluttered as it is move them into bus_space.c (like amd64). a later commit will move the stuff from machdep across too. since machdep.c is cluttered as it is move them into bus_space.c (like amd64). a later commit will move the stuff from machdep across too. some shrinkage stats: GENERIC.MP 209.66kb RAMDISK 50.84kb RAMDISKB 50.04kb RAMDISC 36.28kb RAMDISK_CD 168.03kb don't fill it up all at once! claudio found no network performance hit. toby thought the code went looked alright. art@ ok.
2008-11-14Garbage collect the LDT segments, and simply use the GDT segments.Tobias Weingartner
The beginning of i386 segment review/cleanup. Tested by various people.
2008-10-23Move the va_copy define to <sys/stdrag.h> making sure it is uniformalyMark Kettenis
protected by __ISO_C_VISIBLE > 1999. With a little help from miod@. ok miod@
2008-10-15make random(9) return per-cpu values (by saving the seed in the cpuinfo),Theo de Raadt
which are uniform for the profclock on each cpu in a SMP system (but using a different seed for each cpu). on all cpus, avoid seeding with a value out of the [0, 2^31-1] range (since that is not stable) ok kettenis drahn
2008-10-05Remove IOAPIC ID remapping code. It should not be necessary to avoid reusingMark Kettenis
LAPIC IDs and if there are MPBIOSes we handle them with ACPI now. ok deraadt@
2008-09-28Always include machine/cpu.h and remove i82489reg.h/i82489var.h.Brad Smith
ok kettenis@
2008-09-28Remove "XXX for now" NLAPIC define. Already provided via lapic.h.Brad Smith
ok kettenis@
2008-09-07- replace dtoa w/ David's gdtoa, version 2008-03-15Martynas Venckus
- provide proper dtoa locks - use the real strtof implementation - add strtold, __hdtoa, __hldtoa - add %a/%A support - don't lose precision in printf, don't round to double anymore - implement extended-precision versions of libc functions: fpclassify, isnan, isinf, signbit, isnormal, isfinite, now that the ieee.h is fixed - separate vax versions of strtof, and __hdtoa - add complex math support. added functions: cacos, casin, catan, ccos, csin, ctan, cacosh, casinh, catanh, ccosh, csinh, ctanh, cexp, clog, cabs, cpow, csqrt, carg, cimag, conj, cproj, creal, cacosf, casinf, catanf, ccosf, csinf, ctanf, cacoshf, casinhf, catanhf, ccoshf, csinhf, ctanhf, cexpf, clogf, cabsf, cpowf, csqrtf, cargf, cimagf, conjf, cprojf, crealf - add fdim, fmax, fmin - add log2. (adapted implementation e_log.c. could be more acruate & faster, but it's good enough for now) - remove wrappers & cruft in libm, supposed to work-around mistakes in SVID, etc.; use ieee versions. fixes issues in python 2.6 for djm@ - make _digittoint static - proper definitions for i386, and amd64 in ieee.h - sh, powerpc don't really have extended-precision - add missing definitions for mips64 (quad), m{6,8}k (96-bit) float.h for LDBL_* - merge lead to frac for m{6,8}k, for gdtoa to work properly - add FRAC*BITS & EXT_TO_ARRAY32 definitions in ieee.h, for hdtoa&ldtoa to use - add EXT_IMPLICIT_NBIT definition, which indicates implicit normalization bit - add regression tests for libc: fpclassify and printf - arith.h & gd_qnan.h definitions - update ieee.h: hppa doesn't have quad-precision, hppa64 does - add missing prototypes to gdtoaimp - on 64-bit platforms make sure gdtoa doesn't use a long when it really wants an int - etc., what i may have forgotten... - bump libm major, due to removed&changed symbols - no libc bump, since this is riding on djm's libc major crank from a day ago discussed with / requested by / testing theo, sthen@, djm@, jsg@, merdely@, jsing@, tedu@, brad@, jakemsr@, and others. looks good to millert@ parts of the diff ok kettenis@ this commit does not include: - man page changes
2008-09-01Avoid #pragma pack(1) and unify everything towards using __packed.Theo de Raadt
This requires that structures defined within __packed structures must independently request that they themselves become __packed, too. worked on with toby CVS: ----------------------------------------------------------------------
2008-08-13Disable the fantastics mis-feature on some newer Turion CPUs called C1E.Artur Grabowski
This "power saving" disables the apic when both cpu cores hit the hlt instruction which kills our timer. From FreeBSD. (poked by kettenis)
2008-07-21- add proper double_t and float_t definitions for each archMartynas Venckus
- math.h shouldn't define FLT_EVAL_METHOD, but float.h should (per C99). remove from math.h, and add proper definitions in float.h ok millert@
2008-07-18Add a macro that clears the want_resched flag that need_resched sets.Artur Grabowski
Right now when mi_switch picks up the same proc, we didn't clear the flag which would mean that every time we service an AST we would attempt a context switch. For some architectures, amd64 being probably the most extreme, that meant attempting to context switch for every trap and interrupt. Now we clear_resched explicitly after every context switch, even if it didn't do anything. Which also allows us to remove some more code in cpu_switchto (not done yet). miod@ ok
2008-07-18Add new uvm function called uvm_map_pie() which takes align as aKurt Miller
parameter and returns an aligned random load address for position independent executables to use. This also adds three new vmparam.h defines to specify the maximum address, minimum address and minimum allowed alignment for uvm_map_pie() to use. The PIE address range for i386 was carefully selected to work well within the i386 W^X framework. With much help and feedback from weingart@. okay weingart@, miod@, kettenis@, drahn@
2008-07-02* Dynamically set the rbus start address. from netbsd.Federico G. Schwindt
* For amd64, remove pcibios traces. * make RBUS_IO_START, RBUS_IO_SIZE, RBUS_MIN_START and RBUS_MEM_SIZE (on i386) configurable via kernel options. * Remove unneeded headers. * Some cleanups. originally reported in pr/5829 and tested by viq <viq at viq dot ath dot cx>. fixes ian@ laptop too. kettenis@ and miod@ agrees that although not perfect, this is the right direction.
2008-06-26First pass at removing clauses 3 and 4 from NetBSD licenses.Ray Lai
Not sure what's more surprising: how long it took for NetBSD to catch up to the rest of the BSDs (including UCB), or the amount of code that NetBSD has claimed for itself without attributing to the actual authors. OK deraadt@
2008-06-24On user/kernel shared page table machines, do not let processes map theirTheo de Raadt
own page 0, as discussed with miod (and many others previously, including art and toby). On sparc, make this __LDPGSZ because PAGE_SIZE is non-constant ok miod tedu
2008-06-19Add OpenBSD CVS marker, proper type for probe function.Marc Balmer
2008-06-18Attach amdmsr(4) at mainbus in a way that it can be disabled in UKC or theMarc Balmer
config file, only configure the driver when we have an AMD Geode LX CPU and the graphics processor is available. mainbus part by miod, ok miod, matthieu
2008-06-15this should be a MD include file; discussed with matthieuTheo de Raadt
2008-06-13Detect if Intel's Safer Mode Extensions (SMX) are present,Jonathan Gray
See http://download.intel.com/technology/security/downloads/31516804.pdf for more information. ok deraadt@ 'looks ok to me' djm@
2008-06-09Remove fillw(). Bonus points if you do not remember what it was used for.Miod Vallat
2008-05-07Move i386 to __HAVE_GENERIC_SOFT_INTERRUPTSMark Kettenis
ok dlg@, tested by dlg@, oga@, jsg@, deraadt@
2008-04-26Remove softast; it's no longer used.Mark Kettenis
ok krw@
2008-04-25Make ipending per-cpu. Should fix PR 5788.Mark Kettenis
ok weingart@
2008-04-18Now that i386 has a per-process astpending, we can garbage collect ipi_astMark Kettenis
and do an ipi_nop cross-call from signotify() instead. ok miod@
2008-04-13garbage collect the cpus_running global variable;Thordur I. Bjornsson
pointed out by and ok drahn@, toby@;
2008-02-11g/c db_thread_fp_used()Miod Vallat
2008-01-13Kill <machine/mp.h>.Mark Kettenis
ok marco@
2007-12-09Add an empty pccbb_attach_hook.Mark Kettenis
2007-12-05Hang acpi(4) below bios(4) instead of mainbus(4). This lets us move acpi(4)Theo de Raadt
before pcibios(4), and then.... if acpi(4) attaches, skip pcibios(4) since it messes the machines up. Fixes claudio's HP dl320 G5, and almost assuredly others. ok kettenis
2007-11-28quite a bit of simplification by removing cpu classes.Ted Unangst
also assume that 386 cpus are really unknown, and promote them to 486 instead of panic.
2007-11-26Move the implementation of __mp_lock (biglock) into machine dependentArtur Grabowski
code. At this moment all architectures get the copy of the old code except i386 which gets a new shiny implementation that doesn't spin at splhigh (doh!) and doesn't try to grab the biglock when releasing the biglock (double doh!). Shaves 10% of system time during kernel compile and might solve a few bugs as a bonus. Other architectures coming shortly. miod@ deraadt@ ok
2007-11-25new files for acpiapm switcherTed Unangst
2007-11-25fake out the apm device to switch between apm and acpi on i386. nowTed Unangst
a single device node will talk to the right kernel code automatically. ok deraadt
2007-11-16fix the bus_space #define nightmare, so that amd64 and i386 are much moreTheo de Raadt
uniform. as a result shared code like acpi needs less #ifdef's ok marco kettenis