Chameleon

Issue 45: New NVIDIA Device IDs for GraphicsEnabler

Reported by tonymacx86 -, Nov 19, 2010

The following new device IDs are missing:

	{ 0x10DE0DC4, "GeForce GTS 450" },
	{ 0x10DE0DE1, "GeForce GT 430" },
	{ 0x10DE1080, "GeForce GTX 580" },
	{ 0x10DE06DD, "Quadro 4000" },

Thanks!

Comment 1 by mozo, Nov 20, 2010

Good point. Will add it now. Many people requested GTS 450, GT 430 
injection.

Comment 2 by tonymacx86 -, Nov 20, 2010

Thanks!  Can confirm that it works with the GT 430 at least.  ;)

Comment 3 by valv, Nov 21, 2010

450 also; already on my branch ;)

Comment 4 by Dreamwatcher, Nov 21, 2010

i think that it is not enough to add only devide-id of GT 430 and 
GTX 580, need to improve detecting vram_size code in mem_detect().

- nvida.h
#define NV_ARCH_C0 0xC0

- nvida.c
{ 0x10DE06C0, "GeForce GTX 480" },
{ 0x10DE06C4, "GeForce GTX 465" },
{ 0x10DE06CA, "GeForce GTX 480M" },
{ 0x10DE06CD, "GeForce GTX 470" },

{ 0x10DE0E22, "GeForce GTX 460" },
{ 0x10DE0E24, "GeForce GTX 460" },
{ 0x10DE06DD, "Quadro 4000" },

{ 0x10DE0DC4, "GeForce GTS 450" },
{ 0x10DE0DE1, "GeForce GT 430" },
{ 0x10DE1080, "GeForce GTX 580" }

setup_nvidia_devprop()

// get card type
nvCardType = (REG32(0) >> 20) & 0x1ff;

// Amount of VRAM in kilobytes
videoRam = mem_detect(regs, nvCardType, nvda_dev);

mem_detect()

if (nvCardType >= NV_ARCH_C0) {
vram_size  = REG32(NVC0_MEM_CTRLR_COUNT);
vram_size *= REG32(NVC0_MEM_CTRLR_RAM_AMOUNT);
vram_size <<= 20;
}

Comment 5 by Dreamwatcher, Nov 23, 2010

this code is chameleon svn r644 trunk's patch.
http://www.insanelymac.com/forum/index.php?act=attach&type=post&a
mp;id=81226

i interacted to cmf, add to code.

unsigned long long mem_detect(volatile uint8_t *regs, uint8_t 
nvCardType, pci_dt_t *nvda_dev)
{
    unsigned long long vram_size = 0;

    if (nvCardType < NV_ARCH_50) {
        vram_size  = REG32(NV04_PFB_FIFO_DATA);
        vram_size &= NV10_PFB_FIFO_DATA_RAM_AMOUNT_MB_MASK;
    } else if (nvCardType < NV_ARCH_C0) {
        vram_size = REG32(NV04_PFB_FIFO_DATA);
        vram_size |= (vram_size & 0xff) << 32;
        vram_size &= 0xffffffff00ll;
    } else { // >= NV_ARCH_C0
        vram_size = REG32(NVC0_MEM_CTRLR_RAM_AMOUNT) << 20;
        vram_size *= REG32(NVC0_MEM_CTRLR_COUNT);
        vram_size *= 2;        
    }

    // workaround code for gt 430
    switch (nvda_dev->device_id) 
    {
        case 0x0DE1: vram_size = 1024*1024*1024; break; // gt 430
        default: break;
    }

    return vram_size;
}

Comment 6 by Dreamwatcher, Nov 30, 2010

ASRock Vision 3D HTPC has GeForce GT 425M.

{ 0x10DE0DF0, "GeForce GT 425M" }

http://www.hardwareheaven.com/reviews/1049/pg4/asrock-vision-3d-htpc-
review-internal.html

Comment 7 by Cosmosis Jones, Jun 2, 2011

Status: Verified

Created: 8 years 8 months ago by tonymacx86 -

Updated: 8 years 1 month ago

Status: Verified

Followed by: 3 persons

Labels:
Priority:Medium
Type:Defect