fixed embedded Geforce (Nforce 1 and 2) RAM amount detection, updated docs

git-svn-id: file:///srv/svn/repos/haiku/trunk/current@8424 a95241bf-73f2-0310-859d-f6bbb57e9c96
This commit is contained in:
Rudolf Cornelissen 2004-07-19 11:19:02 +00:00
parent 4f094ab6e3
commit f58eff6918
3 changed files with 25 additions and 5 deletions

View File

@ -17,10 +17,10 @@ You use this software at your own risk! Although I don't expect it to damage you
<li>Vanta/Aladdin TNT2;
<li>GeForce 256;
<li>GeForce 2 MX/Ti/GTS/Go;
<li>GeForce 2 Integrated GPU (Nforce) (setup RAM amount manually for now);
<li>GeForce 2 Integrated GPU (Nforce);
<li>GeForce 3 (Ti);
<li>GeForce 4 MX/Ti/Go;
<li>GeForce 4 Integrated GPU (Nforce 2) (setup RAM amount manually for now);
<li>GeForce 4 Integrated GPU (Nforce 2);
<li>GeForce FX 5200/5600/5700/5800/5900/5950/Go;
<li>Quadro (2/4/FX/Go).
</ul>
@ -40,7 +40,6 @@ You use this software at your own risk! Although I don't expect it to damage you
<strong>Known limitations:</strong>
<ul>
<li>If the driver does not load make sure you enabled 'assign IRQ to VGA card' in your system BIOS;
<li>Embedded GeForce RAM detection is non-functional: please set amount manually for now via the nv.settings file (driver probably defaults to 1Mb if you don't). If you have overlay trouble, set a slightly smaller amount of RAM than you actually specified in the system BIOS (1Mb less or so);
<li>If the driver still seems to create 'random' trouble make sure you have a fully functional VGA BIOS, or system BIOS for embedded cards (check for updates on the manufacturor's site). Make sure you mail me if you still have trouble but also if this version fixed that!
<li>If on a laptop the internal panel doesn't work when you connect an external monitor, make sure you set 'output device selection' to 'internal' (instead of 'auto') in the system BIOS if it has such an option. If you have this symptom on a normal card, or on a laptop without that BIOS option then you are probably out of luck for dualhead support.
</ul>
@ -160,6 +159,6 @@ With the <strong>pgm_panel true</strong> setting, the driver will fix your panel
<hr>
<br>
<a href="mailto:info.be-hold@inter.nl.net">Rudolf Cornelissen.</a>
<p>(Page last updated on July 6, 2004)</p>
<p>(Page last updated on July 19, 2004)</p>
</body>
</html>

View File

@ -4,7 +4,7 @@
</head>
<body>
<p><h2>Changes done for each driverversion:</h2></p>
<p><h1>head (0.21), (Rudolf)</h1></p>
<p><h1>nv_driver 0.22, (Rudolf)</h1></p>
<ul>
<li>Added AGP mode capability on AGP cards along with the option to block it in nv.settings. No GART and AGP aperture support; but if your card and system AGP host bridge support the 'fastwrite' (FW) feature, you'll notice a nice speedup of unaccelerated graphics.
<ul>
@ -25,6 +25,7 @@
<li>Added option in nv.settings to 'unhide' fastwrite support in AGP cards. Some older cards support FW even though normally they don't show it so it won't get activated (confirmed GeForce2 MX400, NV11).<br>
<strong>NOTE please:</strong><br>
This is a tweak that you <strong>can</strong> enable, but you do so at your own risk (of course)!
<li>Fixed RAM amount detection for GeForce2 and GeForce4 MX Integrated GPU boards.
</ul>
<p><h1>nv_driver 0.10, (Rudolf)</h1></p>
<ul>

View File

@ -783,6 +783,26 @@ static status_t open_hook (const char* name, uint32 flags, void** cookie) {
si->device = di->pcii.device;
si->function = di->pcii.function;
/* note the amount of system RAM the system BIOS assigned to the card if applicable:
* unified memory architecture (UMA) */
switch ((((uint32)(si->device_id)) << 16) | si->vendor_id)
{
case 0x01a010de: /* Nvidia GeForce2 Integrated GPU */
/* device at bus #0, device #0, function #1 holds value at byte-index 0x7C */
si->ps.memory_size =
((((*pci_bus->read_pci_config)(0, 0, 1, 0x7c, 4)) & 0x000007c0) >> 6) + 1;
break;
case 0x01f010de: /* Nvidia GeForce4 MX Integrated GPU */
/* device at bus #0, device #0, function #1 holds value at byte-index 0x84 */
si->ps.memory_size =
((((*pci_bus->read_pci_config)(0, 0, 1, 0x84, 4)) & 0x000007f0) >> 4) + 1;
break;
default:
/* all other cards have own RAM: the amount of which is determined in the
* accelerant. */
break;
}
/* map the device */
result = map_device(di);
if (result < 0) goto free_shared;