From 40cdf91badbd3299ef5c9cb35809d75b59025a9e Mon Sep 17 00:00:00 2001 From: Yong Zhao Date: Wed, 24 May 2017 17:39:07 -0400 Subject: [PATCH] Add gfx902 support Change-Id: Iefc6d1bea0d1d2ea8768867c53f16cdf1279d38f Signed-off-by: Yong Zhao [ROCm/ROCR-Runtime commit: d0e287201160cf369ee7476cfef111cde5f0dff3] --- projects/rocr-runtime/src/libhsakmt.h | 7 ++++--- projects/rocr-runtime/src/pmc_table.c | 1 + projects/rocr-runtime/src/queues.c | 9 ++++++++- projects/rocr-runtime/src/topology.c | 4 +++- 4 files changed, 16 insertions(+), 5 deletions(-) diff --git a/projects/rocr-runtime/src/libhsakmt.h b/projects/rocr-runtime/src/libhsakmt.h index 8dd9d39ae2..ac42d60888 100644 --- a/projects/rocr-runtime/src/libhsakmt.h +++ b/projects/rocr-runtime/src/libhsakmt.h @@ -96,10 +96,11 @@ enum asic_family_type { CHIP_FIJI, CHIP_POLARIS10, CHIP_POLARIS11, - CHIP_VEGA10 + CHIP_VEGA10, + CHIP_RAVEN }; -#define IS_DGPU(chip) (((chip) >= CHIP_TONGA && (chip) <= CHIP_VEGA10) || \ - (chip) == CHIP_HAWAII) +#define IS_DGPU(chip) ((chip) != CHIP_KAVERI && (chip) != CHIP_CARRIZO && \ + (chip) != CHIP_RAVEN) #define IS_SOC15(chip) ((chip) >= CHIP_VEGA10) HSAKMT_STATUS validate_nodeid(uint32_t nodeid, uint32_t *gpu_id); diff --git a/projects/rocr-runtime/src/pmc_table.c b/projects/rocr-runtime/src/pmc_table.c index e4c81f2949..1bb4ba04bf 100644 --- a/projects/rocr-runtime/src/pmc_table.c +++ b/projects/rocr-runtime/src/pmc_table.c @@ -1739,6 +1739,7 @@ HSAKMT_STATUS get_block_properties(uint32_t node_id, *block = polaris_blocks[block_id]; break; case CHIP_VEGA10: + case CHIP_RAVEN: *block = vega_blocks[block_id]; break; default: diff --git a/projects/rocr-runtime/src/queues.c b/projects/rocr-runtime/src/queues.c index efc0f1fe62..7765e76a36 100644 --- a/projects/rocr-runtime/src/queues.c +++ b/projects/rocr-runtime/src/queues.c @@ -98,6 +98,12 @@ struct device_info vega10_device_info = { .doorbell_size = DOORBELL_SIZE_GFX9, }; +struct device_info raven_device_info = { + .asic_family = CHIP_RAVEN, + .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, @@ -106,7 +112,8 @@ static struct device_info *dev_lookup_table[] = { [CHIP_FIJI] = &fiji_device_info, [CHIP_POLARIS10] = &polaris10_device_info, [CHIP_POLARIS11] = &polaris11_device_info, - [CHIP_VEGA10] = &vega10_device_info + [CHIP_VEGA10] = &vega10_device_info, + [CHIP_RAVEN] = &raven_device_info }; struct device_id { diff --git a/projects/rocr-runtime/src/topology.c b/projects/rocr-runtime/src/topology.c index ba26af9101..784f005957 100644 --- a/projects/rocr-runtime/src/topology.c +++ b/projects/rocr-runtime/src/topology.c @@ -171,7 +171,9 @@ static struct hsa_gfxip_table { { 0x6867, 9, 0, 0, 1, "Vega10", CHIP_VEGA10 }, { 0x6868, 9, 0, 0, 1, "Vega10", CHIP_VEGA10 }, { 0x686C, 9, 0, 0, 1, "Vega10", CHIP_VEGA10 }, - { 0x687F, 9, 0, 0, 1, "Vega10", CHIP_VEGA10 } + { 0x687F, 9, 0, 0, 1, "Vega10", CHIP_VEGA10 }, + /* Raven */ + { 0x15DD, 9, 0, 0, 0, "Raven", CHIP_RAVEN }, }; enum cache_type {