Age | Commit message (Collapse) | Author |
|
bus address space. Fixes a problem reported by david@.
|
|
based on the BIOS memory map.
|
|
processors, so the registers to configure addition HyperTransport links
are absent. Don't try attaching addition pci busses on these processors
to avoid probing non-existant registers.
|
|
SiS chipset that we'll never see on and amd64 machine.
ok oga@
|
|
|
|
|
|
11h (Turion) still needs testing, so isn't part of this commit.
ok reyk@, marco@
|
|
Firstly, don't keep identical data for each of the GARTs (we keep them
in sync, but there is one per cpu socket), all that varies is the
pci_tag_t, so just keep an array of those and have the rest of the
information once.
Secondly, don't keep the softc as a global, use the _cookie field of the
dmatag_t, that's what it's there for.
Finally, use dmamap_map to map the page tables, instead of the direct NC
map. This is because later changes to support PAT will be a lot easier
with one direct map (where we change the cacheability if needed), since
otherwise it's just asking for illegal cache aliases.
More changes will be upcoming.
Tested by a few people, with an without bigmem, thanks to those.
weingart@ liked the direction this is going, marco@ and kettenis@ oked it.
|
|
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@
|
|
mutex with ipl set to IPL_HIGH. While i'm here, unify the code with
i386, by giving the same lock to the i386 code.
This lock is mostly for MP, but could actually prevent a race where a
process is doing pci_conf_{read,write}, and then an interrupt fire and
also does pci_conf_{read,write}. Since this is a two stage process, the
interrupt could race with the one, causing the value to the written to
the wrong place, or the wrong value to be written.
Tested by many. "go ahead" kettenis@.
|
|
#ifdef __i386__ code that can go now things have been cleaned up.
|
|
pick a new one from the list of possible routings if it isn't or if a pin is
currently not routed. Delay re-routing interrupts until we establish a
handler for it. This prevents us from messing with unused interrupt pins
which may have fatal consequences (some machines spontaniously reboot).
The heuristics for picking an interrupt from the list of possibe ones
probably needs some tweaking still, but this makes several NVIDIA-based
boards work much better than before.
tested by many, ok marco@
|
|
and even then it didn't work. we have higher standards than this.
|
|
|
|
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@
|
|
tag and pin. Reduces the differences between the two architectures and I need
it to fix acpiprt(4)-based interrupt routing.
ok toby@, jordan@
|
|
previously, we had a static list of pcidevs and which agp driver would
be interanlly attached. Instead, split the agp drivers so they work like
audio(4), where we attach a driver, which sets up some callbacks and
initial state, then attaches the interface (agp(4)). Since this allows
us to attach different drivers in different places, and give them
/proper/ probe functions move most of the drivers back to attaching at
pchb, where they should, and intagp (formerly agp_i810) stays attaching
at vga, since it's part of the intel integrated graphics chips.
Diff shrinks the kernel slightly, gets rid of the annoying "no integrated
graphics" warning, and allows more cleanup later.
Tested by many. fix for alpha build (the only other vga_pci.c consumer)
suggested by miod.
|
|
Tested on ASUS P5E-VM DO motherboard.
ok oga
|
|
ok jsg@
|
|
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@
|
|
Initial information, half the diff, and testing from Andrew Lutomirski,
thanks!
|
|
with 10h and 11h families of AMD CPU's.
ok kettenis@
|
|
|
|
|
|
seems silly to have a seperate .h file for 4 defines.
nuke the NetBSD __KERNEL_RCSID macro while there, we have that
rcsid at the top of the file...
ok toby@, brad@
|
|
Tested on i386 with a Gigabyte G33M-DS2R motherboard (Intel GMA 3100).
Based on NetBSD code.
ok oga@
|
|
agp and drm need to use the same memory mapping, the best way to deal
with that is to allow them to share (that's coming later), for this to
work cleanly we move the attach point of agp.
Ideally most agp drivers would attach at pchb, with only agp_i810
(and any that work similarly) attaching at vga, but this will do for
now.
ok kettenis@, miod@.
|
|
ok deraadt@
|
|
|
|
|
|
Light testing, mostly mechanical
|
|
pchb's further
ok reyk oga
|
|
- internal intel graphics semi-agp chipsets need special handling in pchb.c
- re-add the i965GM device
- use the correct major device id for /dev/agp0 on amd64 (not the i386 one)
ok deraadt@
|
|
actually get detected and attached. Also adds a kernel api for
manipulating agp.
Enable this on i386 and amd64.
"I think you should commit it" deraadt@, ok matthieu. Looked over by
several others.
|
|
code. This is due to the fact that we do timecounter initialization
after autoconf(9).
ok deraadt
|
|
ok krw@
|
|
ok krw@, deraadt@
|
|
internal AGP API to work with 64bit PCI-Express memory and
non-standard AGP aperture bases.
tested by many
ok matthieu@, deraadt@
|
|
"Yes" deraadt
|
|
|
|
|
|
ok deraadt
|
|
|
|
|
|
- map the GART page table uncached
- disable table walk probes
|
|
for PCI-PCI bridges and passing the mapping to the attached bus device.
MD code can use these when mapping PCI device interrupts. This diff adds
such code for amd64 and i386. This fixes interrupt mapping for devices that
sit behind two PCI-PCI bridges where the firmware only provides a mapping
for the first PCI-PCI bridge.
tested by sturm@, krw@, and a few others, ok deraadt@
|
|
ok dim
|
|
of separate addr/len pairs).
|
|
sure a page is mapped at every location (a page is already reserved for
just this occaision). And no, this doesn't fix it.
|
|
|