summaryrefslogtreecommitdiffstats
path: root/sys/amd64
Commit message (Collapse)AuthorAgeFilesLines
* Reference the correct gdt[] entry on SMP. Remove the `generation' flag,jlemon1999-08-272-15/+13
| | | | and always reload the selectors for every bios call.
* Use .p2align to ensure consistant a.out/elf alignment. I'd have usedpeter1999-08-251-6/+6
| | | | | SUPERALIGN_TEXT, but this is inline assembler and after cpp has run. Inspired by bde's comments on linux_locore.s.
* Rename 'bios_jmp' to 'bios16_jmp' to make it clear what it's related to.msmith1999-08-251-3/+3
|
* Use the far jump for the base of the page arithmatic rather than thepeter1999-08-251-3/+3
| | | | | | | calling function, otherwise Bad Things Happen(tm) when bios16_call is not in the same page as bios_jmp. Reviewed by: msmith
* Work around a bad design in some PnP BIOS code whereby the BIOS can reachmsmith1999-08-241-2/+11
| | | | | off the top of our constructed stack segment while it's trying to copy a maximally-sized PnP argument frame around.
* Cosmetic: Correct the Id string.alc1999-08-241-1/+1
| | | | Submitted by: Peter Jeremy <jeremyp@gsmx07.alcatel.com.au>
* Fixed a misplaced cast to uintptr_t. Cosmetic.bde1999-08-242-14/+8
| | | | Use device_get_nameunit() instead of rolling our own.
* `bootdev' is an ordinary u_long, so don't cast it to a pointer to print it.bde1999-08-231-4/+3
| | | | | | gcc warns about the cast on i386's with 64-bit longs. Print `bootdev' in all cases when we bail out because it is unreasonable.
* Now that we can bind cdevsw to the individual dev_t, divorce the PERFMONphk1999-08-231-23/+1
| | | | | | | stuff from mem.c. If PERFMON is there, it will "steal" a minor from mem.c, but mem.c doesn't need to know about this. Fixed type of cmd argument in perfmon_ioctl().
* Convert DEVFS hooks in (most) drivers to make_dev().phk1999-08-231-62/+11
| | | | | | | | | | | | | | | | Diskslice/label code not yet handled. Vinum, i4b, alpha, pc98 not dealt with (left to respective Maintainers) Add the correct hook for devfs to kern_conf.c The net result of this excercise is that a lot less files depends on DEVFS, and devtoname() gets more sensible output in many cases. A few drivers had minor additional cleanups performed relating to cdevsw registration. A few drivers don't register a cdevsw{} anymore, but only use make_dev().
* The nexus_attach() code works a lot better if it's actually connected topeter1999-08-232-24/+12
| | | | | the device methods... Also, don't fail to add eisa/isa because a previous device failed to attach.
* Modify the macros IMASK_UNLOCK, CPL_UNLOCK, and REL_FAST_INTR_LOCKalc1999-08-231-4/+2
| | | | to perform the s_unlock inline.
* The previous fix didn't do anything if you didn't have pnp. The ICUpeter1999-08-221-2/+3
| | | | macros are only called in the !APIC_IO case, include icu.h there.
* Finish unbreaking autoconf.c includes (for non-SMP.)green1999-08-221-1/+2
|
* Oops, that wasn't so clever after all. struct isa_device is still apeter1999-08-221-1/+2
| | | | prerequisite for this old pnp.h.
* Zap a heap of unused cruft now. We don't need the ISA/EISA/PCI hookspeter1999-08-221-35/+24
| | | | | | | | here any more as they are self identifying. Only PNP remains but that will be replaced any day now. Also reword a comment that had been XXX'ed to death to make it clear[er] why we don't enable interrupts before probing. PCIBIOS interrupt routing controls may make this possible to fix one day.
* Take advantage of the apm/npx code and let them identify themselves ratherpeter1999-08-222-46/+68
| | | | | | | | | than having explicit hooks here. Treat the eisa/isa attach a little differently so that we defer the decision about to attach eisa/isa to the motherboard directly only if the PCI probe (if it exists) fails to turn up a PCI->EISA/ISA bridge. This restores the original device geometry where ISA and/or EISA attach to their bridge rather than bypassing and going to the root.
* Make the identify routine add itself with priority 100 to make sure itpeter1999-08-222-4/+12
| | | | | goes after the npx/apm devices and any other motherboard devices that may get added down the track.
* Add an identify method to allow npx to arrange itself to be attached topeter1999-08-222-2/+36
| | | | the nexus without explicit code in the nexus to do so.
* This commit adds device driver support for the Sundance Technologies ST201wpaul1999-08-211-1/+5
| | | | | | | | | | | | | PCI fast ethernet controller. Currently, the only card I know that uses this chip is the D-Link DFE-550TX. (Don't ask me where to buy these: the only cards I have are samples sent to me by D-Link.) This driver is the first to make use of the miibus code once I'm sure it all works together nicely, I'll start converting the other drivers. The Sundance chip is a clone of the 3Com 3c90x Etherlink XL design only with its own register layout. Support is provided for ifmedia, hardware multicast filtering, bridging and promiscuous mode.
* Loosen up the constructed argument segment generation slightly; rather thanmsmith1999-08-201-10/+3
| | | | | | | | trying to size it intelligently just make it 64k and leave it up to the caller to ensure that the arguments all fit within that range. This should resolve the issue that some people were seeing with the PnP BIOS scan crashing on a large PnP node.
* There may exist two kinds of IBM BlueLightning CPU. One is that 5/2kato1999-08-201-1/+15
| | | | | | | | | test does not change undefined flag like Cyrix CPUs. Another is that 5/2 test changes undefined flag like Intel CPUs. Latter one could not be detected and was recognized 486DX CPU. To solve this, finishidentcpu() calls identblue() when cpu_vendor is null string (that is, CPUID instruction is not supported) and cpu == CPU_486. Tests have been done on IBM BlueLightning CPUs, i486SX and i486DX.
* Undo my previous commit and do it differently. Break the ffs() etc macrospeter1999-08-191-14/+27
| | | | | | | | into two parts - one to do the bsfl and the other to convert the result (base 0) to ffs()-like (base 1) in inline C. This enables the optimizer to be a lot smarter in certain cases, like where it knows that the argument is non-zero and we want ffs(known non zero arg) - 1. This appears to produce identical code to the old inline when the argument is unknown.
* Try using the builtin ffs() for egcs, it (by random inspection)peter1999-08-191-1/+5
| | | | | generates slightly better code and avoids the incl then subl when using ffs(foo) - 1.
* Update for MI switch code, and trim a heap of unused (I believe) entries.peter1999-08-191-32/+1
|
* Use the MI process selection. We use a quick routine to decide whetherpeter1999-08-192-538/+30
| | | | to get the mplock and enter the kernel to run a process in the SMP case.
* Create callable (non-inline) versions of the atomic_OP_TYPE functionsalc1999-08-182-3/+61
| | | | | | | | | | | | that are linked into the kernel. The KLD compilation options are changed to call these functions, rather than in-lining the atomic operations. This approach makes atomic operations from KLDs significantly faster on UP systems (though somewhat slower on SMP systems). PR: i386/13111 Submitted by: peter.jeremy@alcatel.com.au
* Remove the SMBIOS detection and definitions; this should be handled in amsmith1999-08-182-59/+2
| | | | loadable module (under development).
* Search for and interrogate the PnP BIOS if found. This code just printsmsmith1999-08-172-35/+256
| | | | | the PnP device IDs in verbose mode; it does not (yet) save any resource data or contribute to the PnP process nor resource management.
* Mindbogglingly, many BIOS vendors expect to be able to load %ds withmsmith1999-08-172-16/+26
| | | | | | | | | | 0x40 and then access data stored in real-mode segment 0x40, even when called in protected mode. Microsoft unfortunately coddle these individuals, and so must we if we want to run their code. This change works around GPFs in some APM and PnP BIOS implementations. Obtained from: Linux
* Fix a bug in busdma_mem_free() where we were improperly checkinggibbs1999-08-161-2/+2
| | | | the map associated with the region to free.
* Give if_tun the "almost clone" makeover.phk1999-08-151-2/+2
|
* Give BPF the "almost-clone" update. If you need more of them, makephk1999-08-151-2/+2
| | | | | more entries in /dev and be happy you don't need to recompile your kernel.
* The bdevsw() and cdevsw() are now identical, so kill the former.phk1999-08-131-9/+9
|
* _pmap_allocpte:alc1999-08-111-6/+3
| | | | | If the pte page isn't PQ_NONE, panic rather than silently covering up the problem.
* Hopefully fix the previous commit, it caused *all* bridges to be detectedpeter1999-08-102-12/+14
| | | | | | | | | | | | | | as PCI->HOST bridges on my (440BX) box. My change is to remove the test at the beginning entirely, letting the switch on the device ID happen first. If the device ID is unknown, then (in the default case) check for the generic PCIS_BRIDGE_HOST tag. This should allow wierd cases (eg: wpaul's IMS VL bridge) to work by using the id override. This strategy is more in line with the other PCI match methods we use elsewhere, I only have a limited testbed, but having my USB etc devices detected as PCI->HOST bridges doesn't look good.
* pmap_remove_pages:alc1999-08-101-1/+4
| | | | | Add KASSERT to detect out of range access to the pv_table and report the errant pte before it's overwritten.
* Fix nexus_pcib_is_host_bridge() so that it detects my 486's PCI buswpaul1999-08-092-6/+18
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | correctly. It has the following code: if (class != PCIC_BRIDGE || subclass != PCIS_BRIDGE_HOST) return NULL; My 486 has an Integrated Micro Solutions PCI bridge which identifies itself as subclass PCIS_BRIDGE_OTHER, not PCIS_BRIDGE_HOST. Consequently, it gets ignored. In my opinion, the correct test should be: if ((class != PCIC_BRIDGE) && (subclass != PCIS_BRIDGE_HOST)) return NULL; That way the test still succeeds because the chip's class is PCIC_BRIDGE. Clearly it's not reasonable to expect all host to PCI bridges to always have a subclass of PCIS_BRIDGE_HOST since I've got one that doesn't. This way the sanity test should remain relatively sane while still allowing some oddball yet correct hardware to work. If somebody has a better way to do it, go ahead and tweak the test, but be aware that class == PCIC_BRIDGE and subclass == PCIS_BRIDGE_OTHER is a valid case. While I was here, I also added an explicit ID string for the IMS chipset. I also dealt with a minor style nit: it's bad karma not to have a default case for your switch statements, but the one in this routine doesn't have one. The default string of "Host to PCI bridge" is now assigned in a default case of the switch statement instead of initializing "s" with the string before the switch and then not having any default case.
* Merge the cons.c and cons.h to the best of my ability. alpha may orphk1999-08-099-21/+17
| | | | may not compile, I can't test it.
* Make the pty driver as close to a cloning device as we can get for now,phk1999-08-081-2/+2
| | | | | | | | | we create the pty on the fly when it is first opened. If you run out of ptys now, just MAKEDEV some more. This also demonstrate the use of dev_t->si_tty_tty and dev_t->si_drv1 in a device driver.
* Enable bpf by default. There was no significant dissention to my proposaljkh1999-08-071-3/+3
| | | | | | of 2 weeks ago that this be done, and anyone who wishes to make bpf more selective according to securelevel or compile-time options is more than free to do so.
* Forgot the "bsd" slice, now setrootbyname() understands "wd0s1a".phk1999-08-061-2/+2
|
* Fix typo which would have caused MTRR support on non-SMP systems tomsmith1999-08-041-2/+2
| | | | | | behave in an utterly random fashion. Submitted by: gibbs
* Don't probe if pci_cfgopen() fails to find pci hardware, like we used topeter1999-08-042-10/+8
| | | | | to. This might have caused interesting things on non-PCI hardware if PCI was compiled in.
* pmap_object_init_pt:alc1999-07-311-2/+2
| | | | Verify that object != NULL.
* Change the type of vpgqueues::lcnt from "int *" to "int". The indirectionalc1999-07-311-3/+3
| | | | served no purpose.
* Add parentheses for clarity.alc1999-07-311-2/+2
| | | | Submitted by: dillon
* Formatting-only cleanup accidentally omitted from the patch merge in themsmith1999-07-291-198/+196
| | | | | previous major update. Bring new code into style alignment with the existing code. No functional changes.
* GBIOSSTACK_SEL is undefined, but OTOH, BSSSEL apparently isn't used either.peter1999-07-291-2/+1
|
* Remove some duplicate definitions, as suggested by Alan Cox.msmith1999-07-291-1/+3
|
OpenPOWER on IntegriCloud