From 93d07cf9164eca4ff193e22b37f9a52cf0eca633 Mon Sep 17 00:00:00 2001 From: Shaoyun Liu Date: Mon, 19 Mar 2018 11:30:09 -0400 Subject: [PATCH] Thunk: Add gfx906 support on thunk Signed-off-by: Shaoyun Liu Conflicts: src/topology.c Change-Id: I692d9295a954d4eda08eba301312014f7b3969cb --- src/libhsakmt.h | 3 ++- src/pmc_table.c | 1 + src/queues.c | 8 ++++++++ src/topology.c | 9 +++++++-- 4 files changed, 18 insertions(+), 3 deletions(-) diff --git a/src/libhsakmt.h b/src/libhsakmt.h index 48435c477b..2c215d7789 100644 --- a/src/libhsakmt.h +++ b/src/libhsakmt.h @@ -97,7 +97,8 @@ enum asic_family_type { CHIP_POLARIS10, CHIP_POLARIS11, CHIP_VEGA10, - CHIP_RAVEN + CHIP_RAVEN, + CHIP_VEGA20 }; #define IS_DGPU(chip) ((chip) != CHIP_KAVERI && (chip) != CHIP_CARRIZO && \ (chip) != CHIP_RAVEN) diff --git a/src/pmc_table.c b/src/pmc_table.c index 5f1cb3c877..7c964821a2 100644 --- a/src/pmc_table.c +++ b/src/pmc_table.c @@ -1745,6 +1745,7 @@ HSAKMT_STATUS get_block_properties(uint32_t node_id, *block = polaris_blocks[block_id]; break; case CHIP_VEGA10: + case CHIP_VEGA20: case CHIP_RAVEN: *block = vega_blocks[block_id]; break; diff --git a/src/queues.c b/src/queues.c index a87aa2d2a2..4e26811ede 100644 --- a/src/queues.c +++ b/src/queues.c @@ -104,6 +104,13 @@ struct device_info raven_device_info = { .doorbell_size = DOORBELL_SIZE_GFX9, }; +struct device_info vega20_device_info = { + .asic_family = CHIP_VEGA20, + .eop_buffer_size = 4096, + .doorbell_size = DOORBELL_SIZE_GFX9, +}; + + static struct device_info *dev_lookup_table[] = { [CHIP_KAVERI] = &kaveri_device_info, [CHIP_HAWAII] = &hawaii_device_info, @@ -113,6 +120,7 @@ static struct device_info *dev_lookup_table[] = { [CHIP_POLARIS10] = &polaris10_device_info, [CHIP_POLARIS11] = &polaris11_device_info, [CHIP_VEGA10] = &vega10_device_info, + [CHIP_VEGA20] = &vega20_device_info, [CHIP_RAVEN] = &raven_device_info }; diff --git a/src/topology.c b/src/topology.c index 9029035e37..c409bef14e 100644 --- a/src/topology.c +++ b/src/topology.c @@ -178,8 +178,13 @@ static struct hsa_gfxip_table { { 0x69Af, 9, 0, 4, 1, "Vega12", CHIP_VEGA10 }, /* Raven */ { 0x15DD, 9, 0, 2, 0, "Raven", CHIP_RAVEN }, - /* Vega20 on emulator, treat it as vega10 */ - { 0x66A0, 9, 0, 0, 1, "Vega10", CHIP_VEGA10 }, + /* Vega20 */ + { 0x66A0, 9, 0, 6, 1, "Vega20", CHIP_VEGA20 }, + { 0x66A1, 9, 0, 6, 1, "Vega20", CHIP_VEGA20 }, + { 0x66A2, 9, 0, 6, 1, "Vega20", CHIP_VEGA20 }, + { 0x66A3, 9, 0, 6, 1, "Vega20", CHIP_VEGA20 }, + { 0x66A7, 9, 0, 6, 1, "Vega20", CHIP_VEGA20 }, + { 0x66AF, 9, 0, 6, 1, "Vega20", CHIP_VEGA20 }, }; enum cache_type {