Unify the device ID list

Integrate the supported device ID list distributed in topology, queue, and
pmc into one place: topology.

Change-Id: If035cf8e4a6fc6caff6c94ec627647cfb11c3d79


[ROCm/ROCR-Runtime commit: 4827b09119]
This commit is contained in:
Amber Lin
2017-03-01 16:25:43 -05:00
rodzic 9b6439a5bb
commit 4ddf99f4a9
4 zmienionych plików z 135 dodań i 201 usunięć
+16 -101
Wyświetl plik
@@ -41,22 +41,6 @@
#define DOORBELL_SIZE_GFX9 8
#define DOORBELLS_PAGE_SIZE(ds) (1024 * (ds))
enum asic_family_type {
CHIP_KAVERI = 0,
CHIP_HAWAII,
CHIP_CARRIZO,
CHIP_TONGA,
CHIP_FIJI,
CHIP_POLARIS10,
CHIP_POLARIS11,
CHIP_VEGA10
};
#define IS_VI(chip) ((chip) >= CHIP_CARRIZO && (chip) <= CHIP_POLARIS11)
#define IS_DGPU(chip) (((chip) >= CHIP_TONGA && (chip) <= CHIP_VEGA10) || \
(chip) == CHIP_HAWAII)
#define IS_SOC15(chip) ((chip) >= CHIP_VEGA10)
#define WG_CONTEXT_DATA_SIZE_PER_CU_VI 344576
#define WAVES_PER_CU_VI 32
@@ -115,89 +99,23 @@ struct device_info vega10_device_info = {
.doorbell_size = DOORBELL_SIZE_GFX9,
};
static struct device_info *dev_lookup_table[] = {
[CHIP_KAVERI] = &kaveri_device_info,
[CHIP_HAWAII] = &hawaii_device_info,
[CHIP_CARRIZO] = &carrizo_device_info,
[CHIP_TONGA] = &tonga_device_info,
[CHIP_FIJI] = &fiji_device_info,
[CHIP_POLARIS10] = &polaris10_device_info,
[CHIP_POLARIS11] = &polaris11_device_info,
[CHIP_VEGA10] = &vega10_device_info
};
struct device_id
{
uint16_t dev_id;
struct device_info *dev_info;
};
/* TODO: unify this with the device list in topology.c */
struct device_id supported_devices[] = {
{ 0x1304, &kaveri_device_info }, /* Kaveri */
{ 0x1305, &kaveri_device_info }, /* Kaveri */
{ 0x1306, &kaveri_device_info }, /* Kaveri */
{ 0x1307, &kaveri_device_info }, /* Kaveri */
{ 0x1309, &kaveri_device_info }, /* Kaveri */
{ 0x130A, &kaveri_device_info }, /* Kaveri */
{ 0x130B, &kaveri_device_info }, /* Kaveri */
{ 0x130C, &kaveri_device_info }, /* Kaveri */
{ 0x130D, &kaveri_device_info }, /* Kaveri */
{ 0x130E, &kaveri_device_info }, /* Kaveri */
{ 0x130F, &kaveri_device_info }, /* Kaveri */
{ 0x1310, &kaveri_device_info }, /* Kaveri */
{ 0x1311, &kaveri_device_info }, /* Kaveri */
{ 0x1312, &kaveri_device_info }, /* Kaveri */
{ 0x1313, &kaveri_device_info }, /* Kaveri */
{ 0x1315, &kaveri_device_info }, /* Kaveri */
{ 0x1316, &kaveri_device_info }, /* Kaveri */
{ 0x1317, &kaveri_device_info }, /* Kaveri */
{ 0x1318, &kaveri_device_info }, /* Kaveri */
{ 0x131B, &kaveri_device_info }, /* Kaveri */
{ 0x131C, &kaveri_device_info }, /* Kaveri */
{ 0x131D, &kaveri_device_info }, /* Kaveri */
{ 0x67A0, &hawaii_device_info }, /* Hawaii */
{ 0x67A1, &hawaii_device_info }, /* Hawaii */
{ 0x67A2, &hawaii_device_info }, /* Hawaii */
{ 0x67A8, &hawaii_device_info }, /* Hawaii */
{ 0x67A9, &hawaii_device_info }, /* Hawaii */
{ 0x67AA, &hawaii_device_info }, /* Hawaii */
{ 0x67B0, &hawaii_device_info }, /* Hawaii */
{ 0x67B1, &hawaii_device_info }, /* Hawaii */
{ 0x67B8, &hawaii_device_info }, /* Hawaii */
{ 0x67B9, &hawaii_device_info }, /* Hawaii */
{ 0x67BA, &hawaii_device_info }, /* Hawaii */
{ 0x67BE, &hawaii_device_info }, /* Hawaii */
{ 0x9870, &carrizo_device_info }, /* Carrizo */
{ 0x9874, &carrizo_device_info }, /* Carrizo */
{ 0x9875, &carrizo_device_info }, /* Carrizo */
{ 0x9876, &carrizo_device_info }, /* Carrizo */
{ 0x9877, &carrizo_device_info }, /* Carrizo */
{ 0x6920, &tonga_device_info },
{ 0x6921, &tonga_device_info },
{ 0x6928, &tonga_device_info },
{ 0x6929, &tonga_device_info },
{ 0x692B, &tonga_device_info },
{ 0x692F, &tonga_device_info },
{ 0x6930, &tonga_device_info },
{ 0x6938, &tonga_device_info },
{ 0x6939, &tonga_device_info },
{ 0x7300, &fiji_device_info },
{ 0x730F, &fiji_device_info },
{ 0x67C0, &polaris10_device_info },
{ 0x67C1, &polaris10_device_info },
{ 0x67C2, &polaris10_device_info },
{ 0x67C4, &polaris10_device_info },
{ 0x67C7, &polaris10_device_info },
{ 0x67C8, &polaris10_device_info },
{ 0x67C9, &polaris10_device_info },
{ 0x67CA, &polaris10_device_info },
{ 0x67CC, &polaris10_device_info },
{ 0x67CF, &polaris10_device_info },
{ 0x67DF, &polaris10_device_info },
{ 0x67E0, &polaris11_device_info },
{ 0x67E1, &polaris11_device_info },
{ 0x67E3, &polaris11_device_info },
{ 0x67E7, &polaris11_device_info },
{ 0x67E8, &polaris11_device_info },
{ 0x67E9, &polaris11_device_info },
{ 0x67EB, &polaris11_device_info },
{ 0x67EF, &polaris11_device_info },
{ 0x67FF, &polaris11_device_info },
{ 0x6860, &vega10_device_info },
{ 0x687F, &vega10_device_info },
{ 0, NULL }
};
struct queue
{
uint32_t queue_id;
@@ -246,15 +164,12 @@ HSAKMT_STATUS init_process_doorbells(unsigned int NumNodes)
static struct device_info *get_device_info_by_dev_id(uint16_t dev_id)
{
int i = 0;
while (supported_devices[i].dev_id != 0) {
if (supported_devices[i].dev_id == dev_id) {
return supported_devices[i].dev_info;
}
i++;
}
enum asic_family_type asic;
return NULL;
if (topology_get_asic_family(dev_id, &asic) != HSAKMT_STATUS_SUCCESS)
return NULL;
return dev_lookup_table[asic];
}
static void get_doorbell_map_info(uint16_t dev_id,