#
331722 |
|
29-Mar-2018 |
eadler |
Revert r330897:
This was intended to be a non-functional change. It wasn't. The commit message was thus wrong. In addition it broke arm, and merged crypto related code.
Revert with prejudice.
This revert skips files touched in r316370 since that commit was since MFCed. This revert also skips files that require $FreeBSD$ property changes.
Thank you to those who helped me get out of this mess including but not limited to gonzo, kevans, rgrimes.
Requested by: gjb (re)
|
#
330897 |
|
14-Mar-2018 |
eadler |
Partial merge of the SPDX changes
These changes are incomplete but are making it difficult to determine what other changes can/should be merged.
No objections from: pfg
|
#
329527 |
|
18-Feb-2018 |
markj |
MFC r320851: Add a helper function to agp(4) which installs a single GTT entry.
|
#
302408 |
|
07-Jul-2016 |
gjb |
Copy head@r302406 to stable/11 as part of the 11.0-RELEASE cycle. Prune svn:mergeinfo from the new branch, as nothing has been merged here.
Additional commits post-branch will follow.
Approved by: re (implicit) Sponsored by: The FreeBSD Foundation |
#
296719 |
|
12-Mar-2016 |
dumbbell |
agp: Do not attach to Intel GEN6+
The i915 video driver doesn't depend on agp(4) anymore for Sandybridge and later GPUs. Therefore, there is no need to attach agp(4) to those devices.
While here, fix `agp_i965_res_spec` to include the aperture base for GEN4 and GEN5.
Reviewed by: kib Approved by: kib Differential Revision: https://reviews.freebsd.org/D5586
|
#
296548 |
|
08-Mar-2016 |
dumbbell |
drm/i915: Update to match Linux 3.8.13
This update brings initial support for Haswell GPUs.
Tested by: Many users of FreeBSD, PC-BSD and HardenedBSD Relnotes: yes Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.freebsd.org/D5554
|
#
274379 |
|
11-Nov-2014 |
kib |
Initial attachment of the agp(4) to Haswell IGP. There is no handling of cacheablility control bits in GTT PTEs yet.
Sponsored by: The FreeBSD Foundation MFC after: 1 week
|
#
274378 |
|
11-Nov-2014 |
kib |
Based on some BIOS configuration (GGC register in host bridge, bit 1), IGP may declare subclass as either VGA-compatible, or non-VGA. The difference is that in the later case, IGP does not claim VGA cycles. Other than that, the device functions normally, and agp_i810 should attach to it.
Sponsored by: The FreeBSD Foundation MFC after: 1 week
|
#
274377 |
|
11-Nov-2014 |
kib |
On 965 and higher, map GTT as write-combining.
Sponsored by: The FreeBSD Foundation MFC after: 1 week
|
#
273963 |
|
02-Nov-2014 |
tijl |
In agp(4) avoid the need to flush all cpu caches with wbinvd between updating the GTT and flushing the AGP TLB by storing the GTT in write-combining memory.
On x86 flushing the AGP TLB is done by an I/O operation or a store to a MMIO register in uncacheable memory. Both cases imply that WC buffers are flushed so no memory barriers are needed.
On powerpc there is no WC memory type. It maps to uncacheable memory and two stores to uncacheable memory, such as to the GTT and then to an MMIO register, are strongly ordered, so no memory barriers are needed either.
MFC after: 1 month
|
#
267548 |
|
16-Jun-2014 |
attilio |
- Modify vm_page_unwire() and vm_page_enqueue() to directly accept the queue where to enqueue pages that are going to be unwired. - Add stronger checks to the enqueue/dequeue for the pagequeues when adding and removing pages to them.
Of course, for unmanaged pages the queue parameter of vm_page_unwire() will be ignored, just as the active parameter today. This makes adding new pagequeues quicker.
This change effectively modifies the KPI. __FreeBSD_version will be, however, bumped just when the full cache of free pages will be evicted.
Sponsored by: EMC / Isilon storage division Reviewed by: alc Tested by: pho
|
#
258780 |
|
30-Nov-2013 |
eadler |
Fix undefined behavior: (1 << 31) is not defined as 1 is an int and this shifts into the sign bit. Instead use (1U << 31) which gets the expected result.
This fix is not ideal as it assumes a 32 bit int, but does fix the issue for most cases.
A similar change was made in OpenBSD.
Discussed with: -arch, rdivacky Reviewed by: cperciva
|
#
254649 |
|
22-Aug-2013 |
kib |
Remove the deprecated VM_ALLOC_RETRY flag for the vm_page_grab(9). The flag was mandatory since r209792, where vm_page_grab(9) was changed to only support the alloc retry semantic.
Suggested and reviewed by: alc Sponsored by: The FreeBSD Foundation
|
#
248084 |
|
09-Mar-2013 |
attilio |
Switch the vm_object mutex to be a rwlock. This will enable in the future further optimizations where the vm_object lock will be held in read mode most of the time the page cache resident pool of pages are accessed for reading purposes.
The change is mostly mechanical but few notes are reported: * The KPI changes as follow: - VM_OBJECT_LOCK() -> VM_OBJECT_WLOCK() - VM_OBJECT_TRYLOCK() -> VM_OBJECT_TRYWLOCK() - VM_OBJECT_UNLOCK() -> VM_OBJECT_WUNLOCK() - VM_OBJECT_LOCK_ASSERT(MA_OWNED) -> VM_OBJECT_ASSERT_WLOCKED() (in order to avoid visibility of implementation details) - The read-mode operations are added: VM_OBJECT_RLOCK(), VM_OBJECT_TRYRLOCK(), VM_OBJECT_RUNLOCK(), VM_OBJECT_ASSERT_RLOCKED(), VM_OBJECT_ASSERT_LOCKED() * The vm/vm_pager.h namespace pollution avoidance (forcing requiring sys/mutex.h in consumers directly to cater its inlining functions using VM_OBJECT_LOCK()) imposes that all the vm/vm_pager.h consumers now must include also sys/rwlock.h. * zfs requires a quite convoluted fix to include FreeBSD rwlocks into the compat layer because the name clash between FreeBSD and solaris versions must be avoided. At this purpose zfs redefines the vm_object locking functions directly, isolating the FreeBSD components in specific compat stubs.
The KPI results heavilly broken by this commit. Thirdy part ports must be updated accordingly (I can think off-hand of VirtualBox, for example).
Sponsored by: EMC / Isilon storage division Reviewed by: jeff Reviewed by: pjd (ZFS specific review) Discussed with: alc Tested by: pho
|
#
245976 |
|
27-Jan-2013 |
kib |
Fix reversed condition in the logic to wait for the chipset buffers flush wait on the Gen2 chipsets. Confirmed by the inspection of the Linux agp code.
Submitted by: Taku YAMAMOTO <taku@tackymt.homeip.net> MFC after: 2 weeks
|
#
244114 |
|
11-Dec-2012 |
bapt |
Add pci id for the xeon hd4000 (IvyBridge server GT2)
Submitted by: François Tigeot <ftigeot@wolfpond.org> Obtained from: dragonfly MFC after: 3 days
|
#
243095 |
|
15-Nov-2012 |
eadler |
Remove unneeded header from agp: opt_bus.h
Tested with "make universe"
Approved by: cperciva MFC after: 1 week
|
#
241885 |
|
22-Oct-2012 |
eadler |
This isn't functionally identical. In some cases a hint to disable unit 0 would in fact disable all units.
This reverts r241856
Approved by: cperciva (implicit)
|
#
241856 |
|
22-Oct-2012 |
eadler |
Now that device disabling is generic, remove extraneous code from the device drivers that used to provide this feature.
Reviewed by: des Approved by: cperciva MFC after: 1 week
|
#
239065 |
|
05-Aug-2012 |
kib |
After the PHYS_TO_VM_PAGE() function was de-inlined, the main reason to pull vm_param.h was removed. Other big dependency of vm_page.h on vm_param.h are PA_LOCK* definitions, which are only needed for in-kernel code, because modules use KBI-safe functions to lock the pages.
Stop including vm_param.h into vm_page.h. Include vm_param.h explicitely for the kernel code which needs it.
Suggested and reviewed by: alc MFC after: 2 weeks
|
#
238301 |
|
09-Jul-2012 |
marcel |
Revert revision 238172 of agp_i810.c. Correctness is considered more important than avoiding confusion.
Feedback from: kib, jhb
|
#
238172 |
|
06-Jul-2012 |
marcel |
agp.c: Don't use Maxmem when the amount of memory is meant. Use realmem instead. Maxmem is not only a MD variable, it represents the highest physical memory address in use. On systems where memory is sparsely layed-out the highest memory address and the amount of memory are not interchangeable. Scaling the AGP aperture based on the actual amount of memory (= realmem) rather than the available memory (= physmem) makes sure there's consistent behaviour across architectures.
agp_i810.c: While arguably the use of Maxmem can be considered correct, replace its use with realmem anyway. agp_i810.c is specific to amd64, i386 & pc98, which have a dense physical memory layout. Avoiding Maxmem here is done with an eye on copy-n-paste behaviour in general and to avoid confusion caused by using realmem in agp.c and Maxmem in agp_i810.c.
In both cases, remove the inclusion of md_var.h
|
#
237484 |
|
23-Jun-2012 |
kib |
Correct device id for GPU on some server SandyBridge model.
Submitted and tested by: Thomas Zander <thomas.e.zander googlemail com> MFC after: 3 days
|
#
235782 |
|
22-May-2012 |
kib |
A rewrite of the i810 bits of the agp(4) driver. New driver supports operations required by GEMified i915.ko. It also attaches to SandyBridge and IvyBridge CPU northbridges now.
Sponsored by: The FreeBSD Foundation MFC after: 1 month
|
#
207644 |
|
05-May-2010 |
alc |
Push down the acquisition of the page queues lock into vm_page_unwire().
Update the comment describing which lock should be held on entry to vm_page_wire().
Reviewed by: kib
|
#
207574 |
|
03-May-2010 |
alc |
Acquire the page lock around vm_page_unwire(). For consistency, extend the scope of the object lock in agp_i810.c. (In this specific case, the scope of the object lock shouldn't matter, but I don't want to create a bad example that might be copied to a case where it did matter.)
Reviewed by: kib
|
#
205102 |
|
12-Mar-2010 |
rnoland |
Add support of Intel Pineview chips, aka IGD.
MFC after: 3 days
|
#
205096 |
|
12-Mar-2010 |
rnoland |
Add pci ids for Intel Ironlake chipsets.
These behave just like g45 for agp.
Tested by: Torfinn Ingolfsen
MFC after: 3 days
|
#
197950 |
|
11-Oct-2009 |
rnoland |
Add pci id's for Intel G41 chipset
Submitted by: Artyom Mirgorodsky <man@email.com.ua> MFC after: 3 days
|
#
197191 |
|
14-Sep-2009 |
n_hibma |
John Baldwin suggested that 'stolen memory' only happens in the case of i810 and therefore is useful info there. Aperture size and stolen memory are now printed on one line.
Submitted by: jhb
|
#
197076 |
|
10-Sep-2009 |
n_hibma |
Move the printing of aperture size and stolen memory behind bootverbose. None of the other AGP drivers actually displays this information at all,
MFC after: 1 week
|
#
190169 |
|
20-Mar-2009 |
rnoland |
vm_offset_t is unsigned and therefore can not be negative. Avoid unnessecary compares.
Found with: Coverity Prevent(tm) CID: 2362,4215,4214,4209,4208,2363,4211,4210,4213,4212
MFC after: 3 days
|
#
189578 |
|
09-Mar-2009 |
imp |
Fix prototypes to be consistent.
|
#
186434 |
|
23-Dec-2008 |
rnoland |
Fix up handling of Intel G4X chips some more.
Note that you need at least xf86-video-intel 2.4.3 for this to work. The G4X doesn't put the GATT into the same area of stolen memory as all the other chips and older versions of the driver didn't handle that properly.
Tested by: ganbold Approved by: kib MFC after: 2 weeks
|
#
183555 |
|
02-Oct-2008 |
rnoland |
Correctly handle Intel g33 chips and add support for g45 chips
g33 based chips use a different method of identifying the gtt size. g45 based chips gtt is located in a different area of stolen memory.
Approved by: jhb (mentor) MFC after: 2 weeks
|
#
181124 |
|
01-Aug-2008 |
jhb |
Enable the support for G33/Q35/Q33 now that both the G33 and Q35 have been tested:
PR: amd64/126090 MFC after: 1 week
|
#
179901 |
|
20-Jun-2008 |
gonzo |
Fix PCI id for 945GME Express Integrated Graphics Controller: set to 8086:27AE
PR: kern/124782 Event: Bugathon#5
|
#
177115 |
|
12-Mar-2008 |
remko |
Add resume support to the agp_i810 family.
Submitted by: "Robert Noland" <rnoland at 2hip dot net> Reviewed by: anholt Approved by: anholt, imp (mentor) MFC after: 1 week
|
#
173946 |
|
26-Nov-2007 |
remko |
Add the 845M GMCH controller.
PR: 114802 Approved by: imp (mentor), anholt (private mail) Submitted by: Alex Goncharov <algo1 at comcast dot net> MFC After: 3 days
|
#
173573 |
|
12-Nov-2007 |
jhb |
Move the agp(4) driver from sys/pci to sys/dev/agp. __FreeBSD_version was bumped to 800004 to note the change though userland apps should not be affected since they use <sys/agpio.h> rather than the headers in sys/dev/agp.
Discussed with: anholt Repocopy by: simon
|
#
173203 |
|
30-Oct-2007 |
jhb |
Split agp_generic_detach() up into two routines: agp_free_cdev() destroys /dev/agpgart and agp_free_res() frees resources like the BAR for the aperture. Splitting this up lets chipset-specific detach routines manipulate the aperture during their detach routines without panicing.
MFC after: 1 week Reviewed by: anholt
|
#
172187 |
|
15-Sep-2007 |
alc |
Add the PCI id for the Intel 7221's integrated graphics controller. It is similar to a 915G.
Approved by: re (kensmith) Reviewed by: anholt MFC after: 3 weeks
|
#
171433 |
|
13-Jul-2007 |
anholt |
Add support for G965/Q965/GM965/GME965/GME945 AGP.
This adds a function to agp.c to set the aperture resource ID if it's not the usual AGP_APBASE. Previously, agp.c had been assuming AGP_APBASE, which resulted in incorrect agp_info, and contortions by agp_i810.c to work around it.
This also adds functions to agp.c for default AGP_GET_APERTURE() and AGP_SET_APERTURE(), which return the aperture resource size and disallow aperture size changes. Moving to these for our AGP drivers will likely result in stability improvements. This should fix 855-class aperture size detection.
Additionally, refuse to attach agp_i810 when some RAM is above 4GB and the GART can't reference memory that high. This should be very rare. The correct solution would be bus_dma conversion for agp, which is beyond the scope of this change. Other AGP drivers could likely use this change as well.
G33/Q35/Q33 AGP support is also included, but disconnected by default due to lack of testing.
PR: kern/109724 (855 aperture issue) Submitted by: FUJIMOTO Kou<fujimoto@j.dendai.ac.jp> Approved by: re (hrs)
|
#
162690 |
|
27-Sep-2006 |
anholt |
Add support for 945G/GM AGP chipsets.
The key problem was that the aperture size detection using the MSAC bit doesn't work -- the bit appears to be set even when it shouldn't be. Linux takes a different approach, testing for a bit of the GMADR (PCIR_BAR(2)) being set. However, as I don't think that's a safe way to test aperture size, we just allocate the resource and check its size. This also pointed out that agp_generic_attach hadn't been allocating our aperture resource, which may have caused problems in some cases.
Also corrected is a minor copy-and-pasteo in an error case.
PR: kern/103079 Submitted by: mnag Tested on: i945GM, i915GM MFC after: 2 weeks
|
#
159981 |
|
27-Jun-2006 |
anholt |
Fix breakage of CHIP_I855 in the last revision.
Submitted by: Ted Faber <faber@ISI.EDU>
|
#
159926 |
|
25-Jun-2006 |
anholt |
Replace the three copies of the list of pci ids with a single centralized list. Add the i945 PCI IDs commented out -- I think it should just work, but it hasn't been tested yet.
|
#
158655 |
|
16-May-2006 |
anholt |
Add support for allocating one larger than page-sized contiguous block of memory with a physical address. This is used for hardware ARGB cursor support on newer chipsets.
|
#
155186 |
|
01-Feb-2006 |
jhb |
Don't add an agp child in vgapci's attach routine if the PCIY_AGP capability is present as not all devices supported by the agp_i810 driver (such as i915) have the AGP capability. Instead, add an identify routine to the agp_i810 driver that uses the PCI ID to determine if it should create an agp child device.
|
#
153579 |
|
20-Dec-2005 |
jhb |
- Bump FreeBSD version for the hostb(4) and vgapci(4) drivers as well as the addition of pci_find_extcap(). - Change the drm drivers to attach to vgapci. This is #ifdef'd so the code can be shared across branches. - Use pci_find_extcap() to look for AGP and PCIE capabilities in drm. - GC all the drmsub stuff for i810/i830/i915. The agp and drm devices are now both children of vgapci.
|
#
153031 |
|
02-Dec-2005 |
anholt |
Add support for i915 GMCH AGP. This diff is a combination of work by myself and some fixes from Motomichi Matsuzaki. Testing involved many people, but the final, successful testing was from rwatson who endured several rounds of "it crashes at XYZ stage" "oh, please correct this typo and try again." The Linux driver, and to a small extent the limited specs, were both used as a reference for how to program the chipset.
PR: kern/80396 Submitted by: Martin Mersberger
|
#
142398 |
|
24-Feb-2005 |
imp |
Return BUS_PROBE_DEFAULT instead of 0.
|
#
136853 |
|
24-Oct-2004 |
alc |
Use VM_ALLOC_NOBUSY to eliminate an unneeded vm_page_wakeup() call and the synchronization that one entails.
|
#
129878 |
|
30-May-2004 |
phk |
Add missing <sys/module.h> includes
|
#
129579 |
|
22-May-2004 |
mux |
Get rid of a lockmgr consumer by making agp(4) use a standard mutex, since it's always acquiring the lock exclusively. This was tested with X on an SMP box, with and without WITNESS.
|
#
128613 |
|
24-Apr-2004 |
alc |
Push down the responsibility for zeroing a physical page from the caller to vm_page_grab(). Although this gives VM_ALLOC_ZERO a different meaning for vm_page_grab() than for vm_page_alloc(), I feel such change is necessary to accomplish other goals. Specifically, I want to make the PG_ZERO flag immutable between the time it is allocated by vm_page_alloc() and freed by vm_page_free() or vm_page_free_zero() to avoid locking overheads. Once we gave up on the ability to automatically recognize a zeroed page upon entry to vm_page_free(), the ability to mutate the PG_ZERO flag became useless. Instead, I would like to say that "Once a page becomes valid, its PG_ZERO flag must be ignored."
|
#
127815 |
|
03-Apr-2004 |
njl |
Add the ability to disable agp devices at the loader prompt. Usage is hint.agp.0.disabled="1"
Submitted by: jhb
|
#
127135 |
|
17-Mar-2004 |
njl |
Convert callers to the new bus_alloc_resource_any(9) API.
Submitted by: Mark Santcroos <marks@ripe.net> Reviewed by: imp, dfr, bde
|
#
121437 |
|
23-Oct-2003 |
jhb |
Use a switch statement on the devid instead of if-else for determing which code to use to see if the onboard video has been disabled or not.
Submitted by: Keith Whitwell <keith@tungstengraphics.com>
|
#
120673 |
|
02-Oct-2003 |
anholt |
Make the i810 AGP device create a "drmsub" child device. This will be attached to by the DRM for i8xx devices.
Submitted by: Keith Whitwell <keith@tungstengraphics.com>
|
#
119288 |
|
22-Aug-2003 |
imp |
Prefer new location of pci include files (which have only been in the tree for two or more years now), except in a few places where there's code to be compatible with older versions of FreeBSD.
|
#
116288 |
|
13-Jun-2003 |
alc |
Add vm object locking.
|
#
116192 |
|
11-Jun-2003 |
obrien |
Use __FBSDID().
|
#
113506 |
|
15-Apr-2003 |
mdodd |
- Express hard dependencies on bus (pci, isa, pccard) and network layer (ether). - Don't abuse module names to facilitate ifconfig module loading; such abuse isn't really needed. (And if we do need type information associated with a module then we should make it explicit and not use hacks.)
|
#
111119 |
|
19-Feb-2003 |
imp |
Back out M_* changes, per decision of the TRB.
Approved by: trb
|
#
110843 |
|
14-Feb-2003 |
anholt |
Remove an extra agp_flush_cache(). The i810 case that needs it already has it.
|
#
110785 |
|
13-Feb-2003 |
anholt |
Add Intel 85x/86x AGP support.
Submitted by: David Dawes <dawes@xfree86.org>
|
#
109623 |
|
21-Jan-2003 |
alfred |
Remove M_TRYWAIT/M_WAITOK/M_WAIT. Callers should use 0. Merge M_NOWAIT/M_DONTWAIT into a single flag M_NOWAIT.
|
#
106860 |
|
13-Nov-2002 |
mux |
Remove a bunch of #include "opt_pci.h".
|
#
104397 |
|
03-Oct-2002 |
anholt |
Correct an indentation.
Noticed by: phk
|
#
103340 |
|
15-Sep-2002 |
anholt |
Fix i810 after i830 commit.
Submitted by: David Dawes <dawes@XFree86.Org>
|
#
103272 |
|
13-Sep-2002 |
anholt |
Fix an i830/i845 test that shouldn't get hit in normal use and remove a printf.
Submitted by: David Dawes <dawes@XFree86.Org>
|
#
103243 |
|
12-Sep-2002 |
anholt |
Add AGP support for Intel i830M and i845 thanks to patches from moto kawasaki <kawasaki@mbg.sphere.ne.jp> and David Dawes <dawes@XFree86.org>.
|
#
102480 |
|
27-Aug-2002 |
bde |
Include <sys/lockmgr.h> for old lock interfaces instead of depending on namespace pollution in <sys/lock.h>.
|
#
102382 |
|
24-Aug-2002 |
alc |
o Retire vm_page_zero_fill() and vm_page_zero_fill_area(). Ever since pmap_zero_page() and pmap_zero_page_area() were modified to accept a struct vm_page * instead of a physical address, vm_page_zero_fill() and vm_page_zero_fill_area() have served no purpose.
|
#
101647 |
|
10-Aug-2002 |
alc |
o Use the VM_ALLOC_WIRED flag instead of calling vm_page_wire().
|
#
100422 |
|
21-Jul-2002 |
alc |
o If the page returned by vm_page_grab(VM_ALLOC_ZERO) isn't prezeroed, zero it.
Reviewed by: dfr, peter
|
#
99988 |
|
14-Jul-2002 |
alc |
o Lock page queue accesses by vm_page_wire().
|
#
99927 |
|
13-Jul-2002 |
alc |
o Complete the locking of page queue accesses by vm_page_unwire(). o Assert that the page queues lock is held in vm_page_unwire(). o Make vm_page_lock_queues() and vm_page_unlock_queues() visible to kernel loadable modules.
|
#
79339 |
|
05-Jul-2001 |
jhb |
Make these compile again by adding proc.h include for GIANT_REQUIRED that is in included vm headers.
|
#
76827 |
|
18-May-2001 |
alfred |
Introduce a global lock for the vm subsystem (vm_mtx).
vm_mtx does not recurse and is required for most low level vm operations.
faults can not be taken without holding Giant.
Memory subsystems can now call the base page allocators safely.
Almost all atomic ops were removed as they are covered under the vm mutex.
Alpha and ia64 now need to catch up to i386's trap handlers.
FFS and NFS have been tested, other filesystems will need minor changes (grabbing the vm lock when twiddling page properties).
Reviewed (partially) by: jake, jhb
|
#
67197 |
|
16-Oct-2000 |
ru |
Added support for i815.
|
#
63010 |
|
12-Jul-2000 |
dfr |
Add support for Intel's i810 chipset with integrated graphics. An associated patch to XFree86 allows the X server to work with this chipset on FreeBSD. Additional work will include porting the Linux 3D driver.
Submitted by: Ruslan Ermilov <ru@FreeBSD.org>
|