␉{ 0x10DE065A, "Quadro FX 1700M" },␊ |
␉{ 0x10DE065B, "GeForce 9400 GT" },␊ |
␉{ 0x10DE065C, "Quadro FX 770M" },␊ |
␉{ 0x10DE06C0, "GeForce GTX 480" },␊ |
␉{ 0x10DE06C4, "GeForce GTX 465" },␊ |
␉{ 0x10DE06CA, "GeForce GTX 480M" },␊ |
␉{ 0x10DE06CD, "GeForce GTX 470" },␊ |
␉{ 0x10DE06E0, "GeForce 9300 GE" },␊ |
␉{ 0x10DE06E1, "GeForce 9300 GS" },␊ |
␉{ 0x10DE06E4, "GeForce 8400 GS" },␊ |
|
␉{ 0x10DE0CA9, "GeForce GTS 250M" },␊ |
␉{ 0x10DE0CB1, "GeForce GTS 360M" },␊ |
␉{ 0x10DE0CA3, "GeForce GT240" },␊ |
␉{ 0x10DE0E22, "GeForce GTX 460" },␊ |
␉{ 0x10DE0E24, "GeForce GTX 460" },␊ |
␉␊ |
␉// 06C0 - 06DFF␊ |
␉{ 0x10DE06C0, "GeForce GTX 480" },␊ |
␉{ 0x10DE06C3, "GeForce GTX D12U" },␊ |
␉{ 0x10DE06C4, "GeForce GTX 465" },␊ |
␉{ 0x10DE06CA, "GeForce GTX 480M" },␊ |
␉{ 0x10DE06CD, "GeForce GTX 470" },␊ |
␉{ 0x10DE06D1, "Tesla C2050" },␉// TODO: sub-device id: 0x0771␊ |
␉{ 0x10DE06D1, "Tesla C2070" },␉// TODO: sub-device id: 0x0772␊ |
␉{ 0x10DE06D2, "Tesla M2070" },␊ |
␉{ 0x10DE06D8, "Quadro 6000" },␊ |
␉{ 0x10DE06D9, "Quadro 5000" },␊ |
␉{ 0x10DE06DA, "Quadro 5000M" },␊ |
␉{ 0x10DE06DC, "Quadro 6000" },␊ |
␉{ 0x10DE06DE, "Tesla M2050" },␉// TODO: sub-device id: 0x0846␊ |
␉{ 0x10DE06DE, "Tesla M2070" },␉// TODO: sub-device id: ?␊ |
␉// 0x10DE06DE also applies to misc S2050, X2070, M2050, M2070␊ |
␉{ 0x10DE06DD, "Quadro 4000" },␊ |
␉␊ |
␉// 0DC0 - 0DFF␊ |
␉{ 0x10DE0DC0, "GeForce GT 440" },␊ |
␉{ 0x10DE0DC1, "D12-P1-35" },␊ |
␉{ 0x10DE0DC2, "D12-P1-35" },␊ |
␉{ 0x10DE0DC4, "GeForce GTS 450" },␊ |
␉{ 0x10DE0DC5, "GeForce GTS 450" },␊ |
␉{ 0x10DE0DC6, "GeForce GTS 450" },␊ |
␉{ 0x10DE0DCA, "GF10x" },␊ |
␉{ 0x10DE0DD1, "GeForce GTX 460M" },␊ |
␉{ 0x10DE0DD2, "GeForce GT 445M" },␊ |
␉{ 0x10DE0DD3, "GeForce GT 435M" },␊ |
␉{ 0x10DE0DD8, "Quadro 2000" },␊ |
␉{ 0x10DE0DDE, "GF106-ES" },␊ |
␉{ 0x10DE0DDF, "GF106-INT" },␊ |
␉{ 0x10DE0DE1, "GeForce GT 430" },␊ |
␉{ 0x10DE1080, "GeForce GTX 580" }␊ |
␉{ 0x10DE0DE2, "GeForce GT 420" },␊ |
␉{ 0x10DE0DEB, "GeForce GT 555M" },␊ |
␉{ 0x10DE0DEE, "GeForce GT 415M" },␊ |
␉{ 0x10DE0DF0, "GeForce GT 425M" },␊ |
␉{ 0x10DE0DF1, "GeForce GT 420M" },␊ |
␉{ 0x10DE0DF2, "GeForce GT 435M" },␊ |
␉{ 0x10DE0DF3, "GeForce GT 420M" },␊ |
␉{ 0x10DE0DF8, "Quadro 600" },␊ |
␉{ 0x10DE0DFE, "GF108 ES" },␊ |
␉{ 0x10DE0DFF, "GF108 INT" },␊ |
␉␊ |
␉// 0E20 - 0E3F␊ |
␉{ 0x10DE0E21, "D12U-25" },␊ |
␉{ 0x10DE0E22, "GeForce GTX 460" },␊ |
␉{ 0x10DE0E23, "GeForce GTX 460 SE" },␊ |
␉{ 0x10DE0E24, "GeForce GTX 460" },␊ |
␉{ 0x10DE0E25, "D12U-50" },␊ |
␉{ 0x10DE0E30, "GeForce GTX 470M" },␊ |
␉{ 0x10DE0E38, "GF104GL" },␊ |
␉{ 0x10DE0E3E, "GF104-ES" },␊ |
␉{ 0x10DE0E3F, "GF104-INT" },␊ |
␉␊ |
␉// 0EE0 - 0EFF: none yet␊ |
␉// 0F00 - 0F3F: none yet␊ |
␉// 1040 - 107F: none yet␊ |
␉␊ |
␉// 1080 - 109F␊ |
␉{ 0x10DE1080, "GeForce GTX 580" },␊ |
␉{ 0x10DE1081, "D13U" },␊ |
␉{ 0x10DE1082, "D13U" },␊ |
␉{ 0x10DE1083, "D13U" },␊ |
␉{ 0x10DE1098, "D13U" },␊ |
␉{ 0x10DE109A, "N12E-Q5" },␊ |
};␊ |
␊ |
static uint16_t swap16(uint16_t x)␊ |
|
␉␉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(NVC0_MEM_CTRLR_COUNT);␊ |
␉␉vram_size *= REG32(NVC0_MEM_CTRLR_RAM_AMOUNT);␊ |
␉␉vram_size <<= 20;␊ |
␉}␊ |
␉else {␊ |
␉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);␊ |
␉}␊ |
␉␉␊ |
␉return vram_size;␊ |
}␊ |
|
␉devicepath = get_pci_dev_path(nvda_dev);␊ |
␉bar[0] = pci_config_read32(nvda_dev->dev.addr, 0x10 );␊ |
␉regs = (uint8_t *) (bar[0] & ~0x0f);␊ |
␉␊ |
␉delay(50);␊ |
␉␉␊ |
␉// get card type␊ |
␉nvCardType = (REG32(0) >> 20) & 0x1ff;␊ |