1*61046927SAndroid Build Coastguard Worker /* 2*61046927SAndroid Build Coastguard Worker * Copyright 2008 Corbin Simpson <[email protected]> 3*61046927SAndroid Build Coastguard Worker * Copyright 2010 Marek Olšák <[email protected]> 4*61046927SAndroid Build Coastguard Worker * 5*61046927SAndroid Build Coastguard Worker * SPDX-License-Identifier: MIT 6*61046927SAndroid Build Coastguard Worker */ 7*61046927SAndroid Build Coastguard Worker 8*61046927SAndroid Build Coastguard Worker #ifndef AMD_FAMILY_H 9*61046927SAndroid Build Coastguard Worker #define AMD_FAMILY_H 10*61046927SAndroid Build Coastguard Worker 11*61046927SAndroid Build Coastguard Worker #ifdef __cplusplus 12*61046927SAndroid Build Coastguard Worker extern "C" { 13*61046927SAndroid Build Coastguard Worker #endif 14*61046927SAndroid Build Coastguard Worker 15*61046927SAndroid Build Coastguard Worker struct radeon_info; 16*61046927SAndroid Build Coastguard Worker 17*61046927SAndroid Build Coastguard Worker enum radeon_family 18*61046927SAndroid Build Coastguard Worker { 19*61046927SAndroid Build Coastguard Worker CHIP_UNKNOWN = 0, 20*61046927SAndroid Build Coastguard Worker /* R3xx-based cores. (GFX2) */ 21*61046927SAndroid Build Coastguard Worker CHIP_R300, 22*61046927SAndroid Build Coastguard Worker CHIP_R350, 23*61046927SAndroid Build Coastguard Worker CHIP_RV350, 24*61046927SAndroid Build Coastguard Worker CHIP_RV370, 25*61046927SAndroid Build Coastguard Worker CHIP_RV380, 26*61046927SAndroid Build Coastguard Worker CHIP_RS400, 27*61046927SAndroid Build Coastguard Worker CHIP_RC410, 28*61046927SAndroid Build Coastguard Worker CHIP_RS480, 29*61046927SAndroid Build Coastguard Worker /* R4xx-based cores. (GFX2) */ 30*61046927SAndroid Build Coastguard Worker CHIP_R420, 31*61046927SAndroid Build Coastguard Worker CHIP_R423, 32*61046927SAndroid Build Coastguard Worker CHIP_R430, 33*61046927SAndroid Build Coastguard Worker CHIP_R480, 34*61046927SAndroid Build Coastguard Worker CHIP_R481, 35*61046927SAndroid Build Coastguard Worker CHIP_RV410, 36*61046927SAndroid Build Coastguard Worker CHIP_RS600, 37*61046927SAndroid Build Coastguard Worker CHIP_RS690, 38*61046927SAndroid Build Coastguard Worker CHIP_RS740, 39*61046927SAndroid Build Coastguard Worker /* R5xx-based cores. (GFX2) */ 40*61046927SAndroid Build Coastguard Worker CHIP_RV515, 41*61046927SAndroid Build Coastguard Worker CHIP_R520, 42*61046927SAndroid Build Coastguard Worker CHIP_RV530, 43*61046927SAndroid Build Coastguard Worker CHIP_R580, 44*61046927SAndroid Build Coastguard Worker CHIP_RV560, 45*61046927SAndroid Build Coastguard Worker CHIP_RV570, 46*61046927SAndroid Build Coastguard Worker /* GFX3 (R6xx) */ 47*61046927SAndroid Build Coastguard Worker CHIP_R600, 48*61046927SAndroid Build Coastguard Worker CHIP_RV610, 49*61046927SAndroid Build Coastguard Worker CHIP_RV630, 50*61046927SAndroid Build Coastguard Worker CHIP_RV670, 51*61046927SAndroid Build Coastguard Worker CHIP_RV620, 52*61046927SAndroid Build Coastguard Worker CHIP_RV635, 53*61046927SAndroid Build Coastguard Worker CHIP_RS780, 54*61046927SAndroid Build Coastguard Worker CHIP_RS880, 55*61046927SAndroid Build Coastguard Worker /* GFX3 (R7xx) */ 56*61046927SAndroid Build Coastguard Worker CHIP_RV770, 57*61046927SAndroid Build Coastguard Worker CHIP_RV730, 58*61046927SAndroid Build Coastguard Worker CHIP_RV710, 59*61046927SAndroid Build Coastguard Worker CHIP_RV740, 60*61046927SAndroid Build Coastguard Worker /* GFX4 (Evergreen) */ 61*61046927SAndroid Build Coastguard Worker CHIP_CEDAR, 62*61046927SAndroid Build Coastguard Worker CHIP_REDWOOD, 63*61046927SAndroid Build Coastguard Worker CHIP_JUNIPER, 64*61046927SAndroid Build Coastguard Worker CHIP_CYPRESS, 65*61046927SAndroid Build Coastguard Worker CHIP_HEMLOCK, 66*61046927SAndroid Build Coastguard Worker CHIP_PALM, 67*61046927SAndroid Build Coastguard Worker CHIP_SUMO, 68*61046927SAndroid Build Coastguard Worker CHIP_SUMO2, 69*61046927SAndroid Build Coastguard Worker CHIP_BARTS, 70*61046927SAndroid Build Coastguard Worker CHIP_TURKS, 71*61046927SAndroid Build Coastguard Worker CHIP_CAICOS, 72*61046927SAndroid Build Coastguard Worker /* GFX5 (Northern Islands) */ 73*61046927SAndroid Build Coastguard Worker CHIP_CAYMAN, 74*61046927SAndroid Build Coastguard Worker CHIP_ARUBA, 75*61046927SAndroid Build Coastguard Worker /* GFX6 (Southern Islands) */ 76*61046927SAndroid Build Coastguard Worker CHIP_TAHITI, 77*61046927SAndroid Build Coastguard Worker CHIP_PITCAIRN, 78*61046927SAndroid Build Coastguard Worker CHIP_VERDE, 79*61046927SAndroid Build Coastguard Worker CHIP_OLAND, 80*61046927SAndroid Build Coastguard Worker CHIP_HAINAN, 81*61046927SAndroid Build Coastguard Worker /* GFX7 (Sea Islands) */ 82*61046927SAndroid Build Coastguard Worker CHIP_BONAIRE, 83*61046927SAndroid Build Coastguard Worker CHIP_KAVERI, 84*61046927SAndroid Build Coastguard Worker CHIP_KABINI, 85*61046927SAndroid Build Coastguard Worker CHIP_HAWAII, /* Radeon 290, 390 */ 86*61046927SAndroid Build Coastguard Worker /* GFX8 (Volcanic Islands & Polaris) */ 87*61046927SAndroid Build Coastguard Worker CHIP_TONGA, /* Radeon 285, 380 */ 88*61046927SAndroid Build Coastguard Worker CHIP_ICELAND, 89*61046927SAndroid Build Coastguard Worker CHIP_CARRIZO, 90*61046927SAndroid Build Coastguard Worker CHIP_FIJI, /* Radeon Fury */ 91*61046927SAndroid Build Coastguard Worker CHIP_STONEY, 92*61046927SAndroid Build Coastguard Worker CHIP_POLARIS10, /* Radeon 470, 480, 570, 580, 590 */ 93*61046927SAndroid Build Coastguard Worker CHIP_POLARIS11, /* Radeon 460, 560 */ 94*61046927SAndroid Build Coastguard Worker CHIP_POLARIS12, /* Radeon 540, 550 */ 95*61046927SAndroid Build Coastguard Worker CHIP_VEGAM, 96*61046927SAndroid Build Coastguard Worker /* GFX9 (Vega) */ 97*61046927SAndroid Build Coastguard Worker CHIP_VEGA10, /* Vega 56, 64 */ 98*61046927SAndroid Build Coastguard Worker CHIP_VEGA12, 99*61046927SAndroid Build Coastguard Worker CHIP_VEGA20, /* Radeon VII, MI50 */ 100*61046927SAndroid Build Coastguard Worker CHIP_RAVEN, /* Ryzen 2000, 3000 */ 101*61046927SAndroid Build Coastguard Worker CHIP_RAVEN2, /* Ryzen 2200U, 3200U */ 102*61046927SAndroid Build Coastguard Worker CHIP_RENOIR, /* Ryzen 4000, 5000 */ 103*61046927SAndroid Build Coastguard Worker CHIP_MI100, 104*61046927SAndroid Build Coastguard Worker CHIP_MI200, 105*61046927SAndroid Build Coastguard Worker CHIP_GFX940, 106*61046927SAndroid Build Coastguard Worker /* GFX10.1 (RDNA 1) */ 107*61046927SAndroid Build Coastguard Worker CHIP_NAVI10, /* Radeon 5600, 5700 */ 108*61046927SAndroid Build Coastguard Worker CHIP_NAVI12, /* Radeon Pro 5600M */ 109*61046927SAndroid Build Coastguard Worker CHIP_NAVI14, /* Radeon 5300, 5500 */ 110*61046927SAndroid Build Coastguard Worker /* GFX10.3 (RDNA 2) */ 111*61046927SAndroid Build Coastguard Worker CHIP_NAVI21, /* Radeon 6800, 6900 (formerly "Sienna Cichlid") */ 112*61046927SAndroid Build Coastguard Worker CHIP_NAVI22, /* Radeon 6700 (formerly "Navy Flounder") */ 113*61046927SAndroid Build Coastguard Worker CHIP_VANGOGH, /* Steam Deck */ 114*61046927SAndroid Build Coastguard Worker CHIP_NAVI23, /* Radeon 6600 (formerly "Dimgrey Cavefish") */ 115*61046927SAndroid Build Coastguard Worker CHIP_NAVI24, /* Radeon 6400, 6500 (formerly "Beige Goby") */ 116*61046927SAndroid Build Coastguard Worker CHIP_REMBRANDT, /* Ryzen 6000 (formerly "Yellow Carp") */ 117*61046927SAndroid Build Coastguard Worker CHIP_RAPHAEL_MENDOCINO, /* Ryzen 7000(X), Ryzen 7045, Ryzen 7020 */ 118*61046927SAndroid Build Coastguard Worker /* GFX11 (RDNA 3) */ 119*61046927SAndroid Build Coastguard Worker CHIP_NAVI31, /* Radeon 7900 */ 120*61046927SAndroid Build Coastguard Worker CHIP_NAVI32, /* Radeon 7800, 7700 */ 121*61046927SAndroid Build Coastguard Worker CHIP_NAVI33, /* Radeon 7600, 7700S (mobile) */ 122*61046927SAndroid Build Coastguard Worker CHIP_GFX1103_R1, 123*61046927SAndroid Build Coastguard Worker CHIP_GFX1103_R2, 124*61046927SAndroid Build Coastguard Worker CHIP_GFX1150, 125*61046927SAndroid Build Coastguard Worker CHIP_GFX1151, 126*61046927SAndroid Build Coastguard Worker CHIP_GFX1152, 127*61046927SAndroid Build Coastguard Worker CHIP_GFX1200, 128*61046927SAndroid Build Coastguard Worker CHIP_GFX1201, 129*61046927SAndroid Build Coastguard Worker CHIP_LAST, 130*61046927SAndroid Build Coastguard Worker }; 131*61046927SAndroid Build Coastguard Worker 132*61046927SAndroid Build Coastguard Worker enum amd_gfx_level 133*61046927SAndroid Build Coastguard Worker { 134*61046927SAndroid Build Coastguard Worker CLASS_UNKNOWN = 0, 135*61046927SAndroid Build Coastguard Worker R300, 136*61046927SAndroid Build Coastguard Worker R400, 137*61046927SAndroid Build Coastguard Worker R500, 138*61046927SAndroid Build Coastguard Worker R600, 139*61046927SAndroid Build Coastguard Worker R700, 140*61046927SAndroid Build Coastguard Worker EVERGREEN, 141*61046927SAndroid Build Coastguard Worker CAYMAN, 142*61046927SAndroid Build Coastguard Worker GFX6, 143*61046927SAndroid Build Coastguard Worker GFX7, 144*61046927SAndroid Build Coastguard Worker GFX8, 145*61046927SAndroid Build Coastguard Worker GFX9, 146*61046927SAndroid Build Coastguard Worker GFX10, 147*61046927SAndroid Build Coastguard Worker GFX10_3, 148*61046927SAndroid Build Coastguard Worker GFX11, 149*61046927SAndroid Build Coastguard Worker GFX11_5, 150*61046927SAndroid Build Coastguard Worker GFX12, 151*61046927SAndroid Build Coastguard Worker 152*61046927SAndroid Build Coastguard Worker NUM_GFX_VERSIONS, 153*61046927SAndroid Build Coastguard Worker }; 154*61046927SAndroid Build Coastguard Worker 155*61046927SAndroid Build Coastguard Worker enum amd_ip_type 156*61046927SAndroid Build Coastguard Worker { 157*61046927SAndroid Build Coastguard Worker AMD_IP_GFX = 0, 158*61046927SAndroid Build Coastguard Worker AMD_IP_COMPUTE, 159*61046927SAndroid Build Coastguard Worker AMD_IP_SDMA, 160*61046927SAndroid Build Coastguard Worker AMD_IP_UVD, 161*61046927SAndroid Build Coastguard Worker AMD_IP_VCE, 162*61046927SAndroid Build Coastguard Worker AMD_IP_UVD_ENC, 163*61046927SAndroid Build Coastguard Worker AMD_IP_VCN_DEC, 164*61046927SAndroid Build Coastguard Worker AMD_IP_VCN_ENC, 165*61046927SAndroid Build Coastguard Worker AMD_IP_VCN_UNIFIED = AMD_IP_VCN_ENC, 166*61046927SAndroid Build Coastguard Worker AMD_IP_VCN_JPEG, 167*61046927SAndroid Build Coastguard Worker AMD_IP_VPE, 168*61046927SAndroid Build Coastguard Worker AMD_NUM_IP_TYPES, 169*61046927SAndroid Build Coastguard Worker }; 170*61046927SAndroid Build Coastguard Worker 171*61046927SAndroid Build Coastguard Worker enum amd_vram_type { 172*61046927SAndroid Build Coastguard Worker AMD_VRAM_TYPE_UNKNOWN = 0, 173*61046927SAndroid Build Coastguard Worker AMD_VRAM_TYPE_GDDR1, 174*61046927SAndroid Build Coastguard Worker AMD_VRAM_TYPE_DDR2, 175*61046927SAndroid Build Coastguard Worker AMD_VRAM_TYPE_GDDR3, 176*61046927SAndroid Build Coastguard Worker AMD_VRAM_TYPE_GDDR4, 177*61046927SAndroid Build Coastguard Worker AMD_VRAM_TYPE_GDDR5, 178*61046927SAndroid Build Coastguard Worker AMD_VRAM_TYPE_HBM, 179*61046927SAndroid Build Coastguard Worker AMD_VRAM_TYPE_DDR3, 180*61046927SAndroid Build Coastguard Worker AMD_VRAM_TYPE_DDR4, 181*61046927SAndroid Build Coastguard Worker AMD_VRAM_TYPE_GDDR6, 182*61046927SAndroid Build Coastguard Worker AMD_VRAM_TYPE_DDR5, 183*61046927SAndroid Build Coastguard Worker AMD_VRAM_TYPE_LPDDR4, 184*61046927SAndroid Build Coastguard Worker AMD_VRAM_TYPE_LPDDR5, 185*61046927SAndroid Build Coastguard Worker }; 186*61046927SAndroid Build Coastguard Worker 187*61046927SAndroid Build Coastguard Worker enum vcn_version{ 188*61046927SAndroid Build Coastguard Worker VCN_UNKNOWN, 189*61046927SAndroid Build Coastguard Worker VCN_1_0_0, 190*61046927SAndroid Build Coastguard Worker VCN_1_0_1, 191*61046927SAndroid Build Coastguard Worker 192*61046927SAndroid Build Coastguard Worker VCN_2_0_0, 193*61046927SAndroid Build Coastguard Worker VCN_2_0_2, 194*61046927SAndroid Build Coastguard Worker VCN_2_0_3, 195*61046927SAndroid Build Coastguard Worker VCN_2_2_0, 196*61046927SAndroid Build Coastguard Worker VCN_2_5_0, 197*61046927SAndroid Build Coastguard Worker VCN_2_6_0, 198*61046927SAndroid Build Coastguard Worker 199*61046927SAndroid Build Coastguard Worker VCN_3_0_0, 200*61046927SAndroid Build Coastguard Worker VCN_3_0_2, 201*61046927SAndroid Build Coastguard Worker VCN_3_0_16, 202*61046927SAndroid Build Coastguard Worker VCN_3_0_33, 203*61046927SAndroid Build Coastguard Worker VCN_3_1_1, 204*61046927SAndroid Build Coastguard Worker VCN_3_1_2, 205*61046927SAndroid Build Coastguard Worker 206*61046927SAndroid Build Coastguard Worker VCN_4_0_0, 207*61046927SAndroid Build Coastguard Worker VCN_4_0_2, 208*61046927SAndroid Build Coastguard Worker VCN_4_0_3, 209*61046927SAndroid Build Coastguard Worker VCN_4_0_4, 210*61046927SAndroid Build Coastguard Worker VCN_4_0_5, 211*61046927SAndroid Build Coastguard Worker VCN_4_0_6, 212*61046927SAndroid Build Coastguard Worker 213*61046927SAndroid Build Coastguard Worker VCN_5_0_0, 214*61046927SAndroid Build Coastguard Worker }; 215*61046927SAndroid Build Coastguard Worker 216*61046927SAndroid Build Coastguard Worker #define SDMA_VERSION_VALUE(major, minor) (((major) << 8) | (minor)) 217*61046927SAndroid Build Coastguard Worker 218*61046927SAndroid Build Coastguard Worker enum sdma_version { 219*61046927SAndroid Build Coastguard Worker SDMA_UNKNOWN = 0, 220*61046927SAndroid Build Coastguard Worker /* GFX6 */ 221*61046927SAndroid Build Coastguard Worker SDMA_1_0 = SDMA_VERSION_VALUE(1, 0), 222*61046927SAndroid Build Coastguard Worker 223*61046927SAndroid Build Coastguard Worker /* GFX7 */ 224*61046927SAndroid Build Coastguard Worker SDMA_2_0 = SDMA_VERSION_VALUE(2, 0), 225*61046927SAndroid Build Coastguard Worker 226*61046927SAndroid Build Coastguard Worker /* GFX8 */ 227*61046927SAndroid Build Coastguard Worker SDMA_2_4 = SDMA_VERSION_VALUE(2, 4), 228*61046927SAndroid Build Coastguard Worker SDMA_3_0 = SDMA_VERSION_VALUE(3, 0), 229*61046927SAndroid Build Coastguard Worker SDMA_3_1 = SDMA_VERSION_VALUE(3, 1), 230*61046927SAndroid Build Coastguard Worker 231*61046927SAndroid Build Coastguard Worker /* GFX9 */ 232*61046927SAndroid Build Coastguard Worker SDMA_4_0 = SDMA_VERSION_VALUE(4, 0), 233*61046927SAndroid Build Coastguard Worker SDMA_4_1 = SDMA_VERSION_VALUE(4, 1), 234*61046927SAndroid Build Coastguard Worker SDMA_4_2 = SDMA_VERSION_VALUE(4, 2), 235*61046927SAndroid Build Coastguard Worker SDMA_4_4 = SDMA_VERSION_VALUE(4, 4), 236*61046927SAndroid Build Coastguard Worker 237*61046927SAndroid Build Coastguard Worker /* GFX10 */ 238*61046927SAndroid Build Coastguard Worker SDMA_5_0 = SDMA_VERSION_VALUE(5, 0), 239*61046927SAndroid Build Coastguard Worker 240*61046927SAndroid Build Coastguard Worker /* GFX10.3 */ 241*61046927SAndroid Build Coastguard Worker SDMA_5_2 = SDMA_VERSION_VALUE(5, 2), 242*61046927SAndroid Build Coastguard Worker 243*61046927SAndroid Build Coastguard Worker /* GFX11 */ 244*61046927SAndroid Build Coastguard Worker SDMA_6_0 = SDMA_VERSION_VALUE(6, 0), 245*61046927SAndroid Build Coastguard Worker 246*61046927SAndroid Build Coastguard Worker /* GFX11.5 */ 247*61046927SAndroid Build Coastguard Worker SDMA_6_1 = SDMA_VERSION_VALUE(6, 1), 248*61046927SAndroid Build Coastguard Worker 249*61046927SAndroid Build Coastguard Worker /* GFX12 */ 250*61046927SAndroid Build Coastguard Worker SDMA_7_0 = SDMA_VERSION_VALUE(7, 0), 251*61046927SAndroid Build Coastguard Worker }; 252*61046927SAndroid Build Coastguard Worker 253*61046927SAndroid Build Coastguard Worker const char *ac_get_family_name(enum radeon_family family); 254*61046927SAndroid Build Coastguard Worker enum amd_gfx_level ac_get_gfx_level(enum radeon_family family); 255*61046927SAndroid Build Coastguard Worker unsigned ac_get_family_id(enum radeon_family family); 256*61046927SAndroid Build Coastguard Worker const char *ac_get_llvm_processor_name(enum radeon_family family); 257*61046927SAndroid Build Coastguard Worker const char *ac_get_ip_type_string(const struct radeon_info *info, enum amd_ip_type ip_type); 258*61046927SAndroid Build Coastguard Worker 259*61046927SAndroid Build Coastguard Worker #ifdef __cplusplus 260*61046927SAndroid Build Coastguard Worker } 261*61046927SAndroid Build Coastguard Worker #endif 262*61046927SAndroid Build Coastguard Worker 263*61046927SAndroid Build Coastguard Worker #endif 264