summaryrefslogtreecommitdiff
path: root/sys/arch/amd64
AgeCommit message (Collapse)Author
2010-06-10Declare safepri at the MD level on each platform, so that the kern_synch.cTheo de Raadt
does not have to deal with it as a common. Some platforms may be missed by this commit... if you spot one, fix it the same way. ok miod
2010-06-09Wire up device nodes for disk mapper.Joel Sing
ok deraadt@
2010-06-08in viac3_crypto_setup(), if we fail to get a crypto driverid,Thordur I. Bjornsson
free the softc before we return. While here, make the allocation code a bit prettier too. OK deraadt@
2010-06-07space nit and use nitems().Thordur I. Bjornsson
ok kettenis@
2010-06-05Pass signal handlers a more clean FPU state (ie. the right modes) andTheo de Raadt
properly restore it in sigreturn. Lots of deep digging by matthieu, otto, guenther, kettenis and I.. and I am certain I forgot some other people. ok kettenis otto matthieu
2010-06-04Don't warn about not knowing what the bus clock is on core i7/i5/i3Jonathan Gray
as the high/low guessing won't be done on these processors due to MSR differences.
2010-06-02Add back -fno-omit-frame-pointer, which was accidentally deleted byMark Kettenis
deraadt@ in one of the big restructuring diffs. ok marco@, millert@, marco@
2010-06-01use --warn-common for linking (some arch's will show new warnings), andTheo de Raadt
prefer binutils-compatible options in STRIPFLAGS (now that our non-binutils strip(1) can handle them too) ok drahn; miod kettenis (for parts)
2010-05-31Completely rewrite the tags file creation process. use config(8) againstTheo de Raadt
a fat kernel (GERERIC or GENERIC.MP) into a temporary dir, then extract some variables using make -V, and after some more singing and dancing use this full and (more) correct list of files with ctags. Don't read this code. ok guenther
2010-05-31there is no spllpt(), since lpt's are just tty devices (call tty functions,Theo de Raadt
and thus should be using spltty() from Matthew Dempsky ok oga guenther
2010-05-28${PARAM} is now included in ${CPPFLAGS}, so stop passing it separatelyPhilip Guenthe
to genassym.sh ok deraadt
2010-05-25The _arch and _mach variables now come from config(8), decreasing even furtherTheo de Raadt
the differences between these files. You will need a newer config(8) binary to be able to build kernels. ok kettenis miod
2010-05-25Hand-list the two-step assym.h -> .[Ss] -> .o dependencies. TheTheo de Raadt
result: kernels built without 'make depend'-provided information (ie. the .depend file) are more likely to have their *.[Ss] file compilations track changes to *.h files. The "*.o: assym.h" dependencies listed are gotten from reading the .depend output --- from the biggest kernel possible (ie. GENERIC.MP). When an architecture changes in a substantial way (new .[sS] files), the list should be updated in the prettiest way possible. This is not encouraging people to skip 'make depend'; other issues are not resolved and may be solved later with a change guenther is working on. You can still screwed really easily, so continue running make depend as config tells you. Idea from a discussion with drahn ok drahn, kettenis likes the idea too
2010-05-25${SRCS} is only used once, and fits onto the line where it is usedTheo de Raadt
idea that came out of discussion with drahn
2010-05-24give up on -Wvariable-declTheo de Raadt
delete the archaic links: target which is easily misused handle special .[sS] files in a portable way
2010-05-24Unify the dependency time check for whether an architecture has SFILESTheo de Raadt
2010-05-24Reduce differences between the Makefile.* files for all architectures.Theo de Raadt
ok various people, tested by fewer people, tested by me on 15.
2010-05-23no need for -Dx86_64 or -Damd64, since __amd64__ is supplied by theTheo de Raadt
compiler. Also move towards passing $PARAM around in CPPFLAGS, instead of compiling param.c in a special way, as discussed with miod
2010-05-22this is amd64, not i386, and the protection was all bustedTheo de Raadt
2010-05-20Force max physical memory allocation for bus_dmamem_alloc() to be 4gigOwain Ainsworth
for now. When we get bouncebuffers/decent iommu this can be revised to either fall back (bouncebuffers) or just grab any memory (iommu), but for now it is one less thing to worry about for turning bigmem back on. ok kettenis@ and beck@
2010-05-18Since we're direct mapped and don't need to worry about kva availability orOwain Ainsworth
reservation, we don't need to stick to transferring single pages during boot dump anymore. so bump the limit up to MAXPHYS (64k). Dramatically speeding up boot dump/crash on amd64. (my 4gig machine went from 13.5 minues to just over 1min with this diff) ok toby, marco. Discussed with miod.
2010-05-18tweak dumpsys's countdown to cope with upcoming speedupAlexander Hall
tested by ckuethe@, ok oga@
2010-05-13Synchronise amd64 more with other PMAP_DIRECT architectures. (step 1,Owain Ainsworth
more to come later) Specfically, there is no reason to reserve a special virtual address just so we can do boot dump, we have a direct map of every page anyway. since pmap_map is deprecated and MD only anyway, this means we can remove that interface too. If anything this should increase reliability since pmap_enter won't fail under memory pressure during dump (unlikely but possible). It is also simpler and smaller ;) Tested by myself and ckuethe, no regressions. ok miod@
2010-05-10Continue with the horrible habit of using agp_machdep.c for agp related MDOwain Ainsworth
things that there really isn't a decent api for elsewhere. Since on recent intel IGPs the gtt aperture is too big (256meg is not uncommon) to be mapped on a kva-constrained arch like i386, introduce an agp mapping api that does things depending on arch. On amd64 which can afford the space (and will use the direct mapping again soon)just do bus_space_map() on init, then parcels things out using bus_space_subregion(), thus avoiding map/unmap overhead on every call (this is how inteldrm does things right now). On i386, we do bus_space_map() and bus_space_unmap as appropriate. Linux has some tricks here involving ``atomic'' maps that are on only one cpu and that you may not sleep with to avoid the ipi overhead for tlb flushing. For now we don't go down that route but it is being considered. I am also considering if it is worth abstracting this a little more, improving the api and making it a general MD interface. Tested by myself on i386 and amd64 and by drahn@ (who has one of the machines with an aperture that is too big) on i386.
2010-05-09Fix packed use and unbreak with gcc4, same as i386.Nicholas Marriott
ok jsg
2010-05-08Page Attribute Tables (PAT) support for x86.Owain Ainsworth
PAT allows setting per-mapping cachability bits. Our main interest in it for write combining mappings so we do not have to rely so heaviliy on mtrrs (which are stupidly set up on more and more machines). MD flags to pmap allow setting these bits (which bus_space now uses for PREFETCHABLE maps), if a vm page has a bit set, then we will use WC for all mappings of a page (used for userland mappings). We also check for known errata and fall back to UC- mappings in that case. comments from kettenis@, tedu@ and william@. kettenis@, tedu@ ok.
2010-05-06Change trap() and syscall() to accept a pointer rather than using callNicholas Marriott
by reference for the trap frame, the infrastructure in locore.S for this was already present. This prevents gcc4 from optimising away stores into the frame and allows a gcc4-compiled kernel to boot. ok kettenis robert guenther
2010-04-30Right now, if anything internal changes with a uvm object, diverseOwain Ainsworth
places in the tree need to be touched to update the object initialisation with respect to that. So, make a function (uvm_initobj) that takes the refcount, object and pager ops and does this initialisation for us. This should save on maintainance in the future. looked good to fgs@. Tedu complained about the British spelling but OKed it anyway.
2010-04-29Add the CR_PAT MSR to the list of defined msrs.Owain Ainsworth
"Absolutely, don't forget i386" kettenis@.
2010-04-28clean up more more subtle and stupid differences between the variousTheo de Raadt
Makefile.* files
2010-04-27Unifity CPPFLAGS= (using ${_mach}), SYSTEM_LD_TAIL= (always on one line),Theo de Raadt
and SRCS= (common files always after the \)
2010-04-27Disable builtin malloc and log2 on gcc3 arches, a no-op for gcc3Jonathan Gray
but required for gcc4. ok kettenis@ deraadt@ marco@, log2 suggested by robert@
2010-04-27shorten preambleTheo de Raadt
2010-04-27noone needs comments about QUOTA and TRACETheo de Raadt
2010-04-27over the years we have moved to a machine+architectures scheme that hasTheo de Raadt
two directories. in reality, because of how we place files, it has four: .../arch/A, .../arch/A/A, .../arch/M, and .../arch/M/M formalize this A/A and M/M scheme directly in the Makefiles, which makes them a lot more similar drahn likes the idea a lot
2010-04-27use -f assymp.dep again; worked out with miodTheo de Raadt
2010-04-27alpha/conf/Makefile.alphaTheo de Raadt
2010-04-26even cleaner mach/arch/machdir/archdirTheo de Raadt
2010-04-26next step towards unification: make all the genassym chunks handle bothTheo de Raadt
arch and machine dependent files (and add the missing files) ok miod drahn
2010-04-26typoTheo de Raadt
2010-04-26next unification step: move all MD naming _mach, _machdir, _arch, and _archdirTheo de Raadt
ok miod drahn
2010-04-26first step of unification: spaces at end of lines; comments, etc.Theo de Raadt
ok miod
2010-04-23Recycle unused disklabel fields in order to create a disklabel uniqueJoel Sing
identifier, allowing the disk to be identified without relying on the device name. ok deraadt@ krw@ beck@ marco@ todd@
2010-04-22- remove ptei(), which was verified to be unused.Jasper Lievisse Adriaanse
ok miod@
2010-04-20fix amd64 kernel compile after proc.h was removed from uvm_map.hPeter Hessler
OK tedu@
2010-04-20need proc.h before user.hTed Unangst
2010-04-20remove proc.h include from uvm_map.h. This has far reaching effects, asTed Unangst
sysctl.h was reliant on this particular include, and many drivers included sysctl.h unnecessarily. remove sysctl.h or add proc.h as needed. ok deraadt
2010-04-20Instead of using PWT|PCD for uncached (which is wrong on old cpus andOwain Ainsworth
HARD uncached on anything since the P3), use just PCD which is UC- (uncached but mtrrs can override it to write combining). Now kernel mappings of WC-mtrred memory actually get write combining memory. the speed up is very very nice. ok kettenis@, deraadt@, beck@ (who likes his scrollbars non-wibbly)
2010-04-16Use a somewhat bigger hammer and als flush tlb entries that have the globalMark Kettenis
bit set. While there, add an #ifdef MULTIPROCESSOR to make the diff between amd64 and i386 smaller. ok art@
2010-04-08Since we only start doing tlb shootdowns after setting the CPUF_RUNNING flag,Mark Kettenis
flush the TLB immediately after doing so, to make sure there are no stale TLB entries. Suggested by art@ ok art@, oga@, deraadt@, weingart@