History log of /haiku-fatelf/src/add-ons/kernel/busses/agp_gart/intel_gart.cpp
Revision Date Author Comments
# 50efc4c7 28-Dec-2012 Alexander von Gluck IV <kallisti5@unixzen.com>

intel_gart: Add IvyBridge bridge info


# ecb5cbe9 16-Oct-2011 Michael Lotz <mmlr@mlotz.ch>

Enable the IronLake devices as at least mine works now with the correct
interrupt registers being used.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@42871 a95241bf-73f2-0310-859d-f6bbb57e9c96


# c0cb09ba 16-Oct-2011 Michael Lotz <mmlr@mlotz.ch>

* Add a couple more SandyBridge IDs. They might work, but I can't test them.
* Also add the definitions and some specifics for IronLake (ILK), but keep the
IDs disabled as at least the one version I can test with doesn't work yet.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@42869 a95241bf-73f2-0310-859d-f6bbb57e9c96


# c788baed 16-Oct-2011 Michael Lotz <mmlr@mlotz.ch>

Style cleanups only, no functional change.
* Make the pointer style consistent accross all components, which should make it
easier when working all over the place.
* 80 char limits.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@42863 a95241bf-73f2-0310-859d-f6bbb57e9c96


# e436a27e 13-Oct-2011 Michael Lotz <mmlr@mlotz.ch>

* Add preliminary support for one SandyBridge mobile integrated graphics device
(the one in my new ThinkPad X1). The PLL is still off a bit so it has a few
blurry stripes, but EDID and mode setting basically works.
* Starting with IronLake the north/south bridge or (G)MCH/ICH setup was moved
into a platform control hub (PCH) which means that many registers previously
located in the GMCH are now in the PCH and have a new address.
* I'm committing this mostly because this way the additions are more easy to
follow. It is a bit messy and I'll clean it up more and possibly make it a
bit more generic. Also most of these changes actually apply to IronLake and up
and aren't SandyBridge specific, so a few of those additions will still get a
broader scope and new chips will be added.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@42839 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 0f4ab8df 06-Mar-2011 Jérôme Duval <korli@users.berlios.de>

Comparing with i915 DRM:
* add a INTEL_TYPE_915M type to be used by 0x2592 (mobile version)
* 0x2e32 is actually non mobile, added its brothers 0x2e02, 0x2e12, 0x2e22, 0x2e42, 0x2e92
* 0x27a2 is actually mobile.
* added 0x2972, 0x2982, 0x2992 for INTEL_TYPE_965 type, and 0x2a12 for INTEL_TYPE_965M.
* added corresponding entries in intel_gart.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@40838 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 2f4d9fdb 29-Jan-2011 Brecht Machiels <brecht@mos6581.org>

* added support for the Atom IGD, based on the X driver sources (fixes #6202)
* fixes G4x PLL limits


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@40319 a95241bf-73f2-0310-859d-f6bbb57e9c96


# d0e8dc24 19-Sep-2010 Matt Madia <mattmadia@gmail.com>

Applied patch (with minor edits) by lukove. Adds device id's for
"GMA_X4500_VGA" to intel_extreme. Fixes #6641. Thanks!


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38724 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 9a063f05 28-May-2010 Axel Dörfler <axeld@pinc-software.de>

* Fixed the AGP interface to correctly use phys_addr_t where needed.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@36962 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 64d79eff 27-May-2010 Ingo Weinhold <ingo_weinhold@gmx.de>

* Changed physical_entry::{address,size} to phys_{addr,size}_t and changed
map_physical_memory()'s physicalAddress parameter type from void* to
phys_addr_t. This breaks source compatibility, but -- as long as
phys_{addr,size}_t remain 32 bit wide -- keeps binary compatibility with
BeOS.
* Adjusted all code using the affected interfaces (Oh what fun!). Added a few
TODOs in places where the wrong types (e.g. void* for physical addresses
are used). Looks like quite a few drivers aren't 64 bit safe and others
will break with PAE.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@36960 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 6cae2161 28-Oct-2009 Brecht Machiels <brecht@mos6581.org>

made code style more consistent with the rest of the driver


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@33815 a95241bf-73f2-0310-859d-f6bbb57e9c96


# dfdfbd3e 23-Oct-2009 Brecht Machiels <brecht@mos6581.org>

* added support for GM45 (might work for other chips in the G4 series)
* added header for dealing with binary numbers and bitmasks (C++ templates)
these "macro's" might not work well for long words, though


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@33749 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 21b66fb8 27-Jan-2009 Axel Dörfler <axeld@pinc-software.de>

* On i865, the i915_GTT_BASE is not available. For some reason, though, the
method FreeBSD and Linux are using does not work here; I didn't find out
why, but I've added a fallback method to use the known GTT base then.
* This should fix #2764.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@29060 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 204737b8 07-Sep-2008 Rene Gollent <anevilyak@gmail.com>

Patch by Dustin Howett: Add i945GME to the supported devices list (caveat: no overlay).
Thanks!



git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@27365 a95241bf-73f2-0310-859d-f6bbb57e9c96


# a63f51de 06-Apr-2008 Axel Dörfler <axeld@pinc-software.de>

* Enabled a few more chipsets that I found PCI IDs for. Only the i845G one has
actually been tested (see ticket #1969).


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@24826 a95241bf-73f2-0310-859d-f6bbb57e9c96


# ec6da14f 01-Apr-2008 Michael Lotz <mmlr@mlotz.ch>

Adding device ids for the i965GM chipset present in my laptop to the
intel_extreme driver and agp_gart. These worked for me for quite some time now.

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@24730 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 87618c5b 05-Feb-2008 Axel Dörfler <axeld@pinc-software.de>

* Added bridge device ID for i865.
* Added other IDs from the graphics driver, but I need to look up
their bridge IDs before actually adding them.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@23881 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 8708a92e 31-Jan-2008 Axel Dörfler <axeld@pinc-software.de>

Confirmed through testing: the X driver actually does it incorrectly,
the GTT is not part of the stolen memory. However, the BIOS popup seems
to be - removing that page solves the flickering overlay when its buffer
contained it.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@23799 a95241bf-73f2-0310-859d-f6bbb57e9c96


# d23e60e7 31-Jan-2008 Axel Dörfler <axeld@pinc-software.de>

* Forgot to set the size in Aperture::BindMemory() in case it was allocated
memory (so no memory was ever bound in that case).
* Disabled debug output in the Intel GART module.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@23797 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 103d05f3 31-Jan-2008 Axel Dörfler <axeld@pinc-software.de>

* Renamed GART's deallocate_memory() to free_memory().
* Removed "physical" parameter of GART's bind_aperture() - I don't think this
be of use to anyone.
* Fixed binding/unbinding pages in the Intel GART driver; I accidently shifted
the page offset twice.
* Actually forgot handling of allocated memory in Aperture::BindMemory().
* Minor cleanup.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@23796 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 1c34b9b1 29-Jan-2008 Axel Dörfler <axeld@pinc-software.de>

Work in progress (might not work for you yet):
* Now uses the AGP GART module for memory management. This greatly simplifies
the memory handling, and memory is now actually allocated on demand,
instead of a fixed size (stolen memory is not freed, though).
* The Intel GART module should now also work with older chipsets.
* No longer remove the GTT size from the stolen memory; this appears to have
been a mistake in the X driver. Not sure about the BIOS popup yet.
* The AGP module (in combination with the Intel GART module) is now mandatory
to use the Intel driver.
* Removed now superfluous settings (like memory size). Only enabling/disabling
the hardware cursor is still supported.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@23781 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 3adccb19 26-Jan-2008 Axel Dörfler <axeld@pinc-software.de>

* More or less completely rewrote the AGP bus manager.
* It now also serves as a generic GART manager and accepts bus modules as well
as custom modules of graphics drivers if they want to (could be used for the
Radeon PCI GART stuff, for example).
* Implemented GART support module for Intel i965 and G33 chipsets (the other
Intel chips will come later).
* Renamed agp bus manager to agp_gart to reflect its new functionality (even
though the AGP functionality is already outdated (due to PCIe), the GART
stuff remains current).
* Adapted existing users of the AGP bus manager to the API changes.
* Not very well tested yet...


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@23754 a95241bf-73f2-0310-859d-f6bbb57e9c96


# ecb5cbe97dafd045eb98a9a58c2bb4657c86b7a8 16-Oct-2011 Michael Lotz <mmlr@mlotz.ch>

Enable the IronLake devices as at least mine works now with the correct
interrupt registers being used.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@42871 a95241bf-73f2-0310-859d-f6bbb57e9c96


# c0cb09baee3bffd53702c25c6b7d3c990df1d8fd 16-Oct-2011 Michael Lotz <mmlr@mlotz.ch>

* Add a couple more SandyBridge IDs. They might work, but I can't test them.
* Also add the definitions and some specifics for IronLake (ILK), but keep the
IDs disabled as at least the one version I can test with doesn't work yet.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@42869 a95241bf-73f2-0310-859d-f6bbb57e9c96


# c788baed28e28960c17306fe9f5b40382b07cb1d 16-Oct-2011 Michael Lotz <mmlr@mlotz.ch>

Style cleanups only, no functional change.
* Make the pointer style consistent accross all components, which should make it
easier when working all over the place.
* 80 char limits.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@42863 a95241bf-73f2-0310-859d-f6bbb57e9c96


# e436a27e5f6df975a1e35c27f42e8f6ad27ebdca 13-Oct-2011 Michael Lotz <mmlr@mlotz.ch>

* Add preliminary support for one SandyBridge mobile integrated graphics device
(the one in my new ThinkPad X1). The PLL is still off a bit so it has a few
blurry stripes, but EDID and mode setting basically works.
* Starting with IronLake the north/south bridge or (G)MCH/ICH setup was moved
into a platform control hub (PCH) which means that many registers previously
located in the GMCH are now in the PCH and have a new address.
* I'm committing this mostly because this way the additions are more easy to
follow. It is a bit messy and I'll clean it up more and possibly make it a
bit more generic. Also most of these changes actually apply to IronLake and up
and aren't SandyBridge specific, so a few of those additions will still get a
broader scope and new chips will be added.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@42839 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 0f4ab8dfd39f8fcdad2f32b653ddd11bddbf18c3 06-Mar-2011 Jérôme Duval <korli@users.berlios.de>

Comparing with i915 DRM:
* add a INTEL_TYPE_915M type to be used by 0x2592 (mobile version)
* 0x2e32 is actually non mobile, added its brothers 0x2e02, 0x2e12, 0x2e22, 0x2e42, 0x2e92
* 0x27a2 is actually mobile.
* added 0x2972, 0x2982, 0x2992 for INTEL_TYPE_965 type, and 0x2a12 for INTEL_TYPE_965M.
* added corresponding entries in intel_gart.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@40838 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 2f4d9fdbab2d62559a66c7fd86535cca9d5b0c13 29-Jan-2011 Brecht Machiels <brecht@mos6581.org>

* added support for the Atom IGD, based on the X driver sources (fixes #6202)
* fixes G4x PLL limits


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@40319 a95241bf-73f2-0310-859d-f6bbb57e9c96


# d0e8dc246922186cef5c87d7374ba9f66ae5deaa 19-Sep-2010 Matt Madia <mattmadia@gmail.com>

Applied patch (with minor edits) by lukove. Adds device id's for
"GMA_X4500_VGA" to intel_extreme. Fixes #6641. Thanks!


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38724 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 9a063f059c37536b1d0a6b38a173c9aa0cd6f854 28-May-2010 Axel Dörfler <axeld@pinc-software.de>

* Fixed the AGP interface to correctly use phys_addr_t where needed.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@36962 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 64d79eff7290437d24b1a420537c3ed5c144ab96 27-May-2010 Ingo Weinhold <ingo_weinhold@gmx.de>

* Changed physical_entry::{address,size} to phys_{addr,size}_t and changed
map_physical_memory()'s physicalAddress parameter type from void* to
phys_addr_t. This breaks source compatibility, but -- as long as
phys_{addr,size}_t remain 32 bit wide -- keeps binary compatibility with
BeOS.
* Adjusted all code using the affected interfaces (Oh what fun!). Added a few
TODOs in places where the wrong types (e.g. void* for physical addresses
are used). Looks like quite a few drivers aren't 64 bit safe and others
will break with PAE.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@36960 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 6cae2161f064bbd686cbc540b36d43e7d65c629c 28-Oct-2009 Brecht Machiels <brecht@mos6581.org>

made code style more consistent with the rest of the driver


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@33815 a95241bf-73f2-0310-859d-f6bbb57e9c96


# dfdfbd3eefeb8aff04b7e8e2d6ebb46a51fe24ad 23-Oct-2009 Brecht Machiels <brecht@mos6581.org>

* added support for GM45 (might work for other chips in the G4 series)
* added header for dealing with binary numbers and bitmasks (C++ templates)
these "macro's" might not work well for long words, though


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@33749 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 21b66fb888bf3679f9f83fe8e0e734ebf2f76bcf 27-Jan-2009 Axel Dörfler <axeld@pinc-software.de>

* On i865, the i915_GTT_BASE is not available. For some reason, though, the
method FreeBSD and Linux are using does not work here; I didn't find out
why, but I've added a fallback method to use the known GTT base then.
* This should fix #2764.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@29060 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 204737b832b110e863e782f53502a953a3bad787 07-Sep-2008 Rene Gollent <anevilyak@gmail.com>

Patch by Dustin Howett: Add i945GME to the supported devices list (caveat: no overlay).
Thanks!



git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@27365 a95241bf-73f2-0310-859d-f6bbb57e9c96


# a63f51dea48062ee2ceb4d2076167c26eb271a3a 06-Apr-2008 Axel Dörfler <axeld@pinc-software.de>

* Enabled a few more chipsets that I found PCI IDs for. Only the i845G one has
actually been tested (see ticket #1969).


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@24826 a95241bf-73f2-0310-859d-f6bbb57e9c96


# ec6da14feecef48853bc2040b1fc1dca878d54a4 01-Apr-2008 Michael Lotz <mmlr@mlotz.ch>

Adding device ids for the i965GM chipset present in my laptop to the
intel_extreme driver and agp_gart. These worked for me for quite some time now.

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@24730 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 87618c5b5568272ed0e952e651cd09ef8fad9238 05-Feb-2008 Axel Dörfler <axeld@pinc-software.de>

* Added bridge device ID for i865.
* Added other IDs from the graphics driver, but I need to look up
their bridge IDs before actually adding them.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@23881 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 8708a92e8df5daa57b365b127ef507cb3167814a 31-Jan-2008 Axel Dörfler <axeld@pinc-software.de>

Confirmed through testing: the X driver actually does it incorrectly,
the GTT is not part of the stolen memory. However, the BIOS popup seems
to be - removing that page solves the flickering overlay when its buffer
contained it.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@23799 a95241bf-73f2-0310-859d-f6bbb57e9c96


# d23e60e77b496b1a98e615ca3bfbc2007da8b841 31-Jan-2008 Axel Dörfler <axeld@pinc-software.de>

* Forgot to set the size in Aperture::BindMemory() in case it was allocated
memory (so no memory was ever bound in that case).
* Disabled debug output in the Intel GART module.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@23797 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 103d05f3c2db9203f8de61e744c99acc2be41141 31-Jan-2008 Axel Dörfler <axeld@pinc-software.de>

* Renamed GART's deallocate_memory() to free_memory().
* Removed "physical" parameter of GART's bind_aperture() - I don't think this
be of use to anyone.
* Fixed binding/unbinding pages in the Intel GART driver; I accidently shifted
the page offset twice.
* Actually forgot handling of allocated memory in Aperture::BindMemory().
* Minor cleanup.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@23796 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 1c34b9b1f5e168501f89a270233457e04aa1b16b 29-Jan-2008 Axel Dörfler <axeld@pinc-software.de>

Work in progress (might not work for you yet):
* Now uses the AGP GART module for memory management. This greatly simplifies
the memory handling, and memory is now actually allocated on demand,
instead of a fixed size (stolen memory is not freed, though).
* The Intel GART module should now also work with older chipsets.
* No longer remove the GTT size from the stolen memory; this appears to have
been a mistake in the X driver. Not sure about the BIOS popup yet.
* The AGP module (in combination with the Intel GART module) is now mandatory
to use the Intel driver.
* Removed now superfluous settings (like memory size). Only enabling/disabling
the hardware cursor is still supported.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@23781 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 3adccb193554387468ad669ac36453e888b1732d 26-Jan-2008 Axel Dörfler <axeld@pinc-software.de>

* More or less completely rewrote the AGP bus manager.
* It now also serves as a generic GART manager and accepts bus modules as well
as custom modules of graphics drivers if they want to (could be used for the
Radeon PCI GART stuff, for example).
* Implemented GART support module for Intel i965 and G33 chipsets (the other
Intel chips will come later).
* Renamed agp bus manager to agp_gart to reflect its new functionality (even
though the AGP functionality is already outdated (due to PCIe), the GART
stuff remains current).
* Adapted existing users of the AGP bus manager to the API changes.
* Not very well tested yet...


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@23754 a95241bf-73f2-0310-859d-f6bbb57e9c96