Commit 3baa24f0 authored by Oak Zeng's avatar Oak Zeng Committed by Alex Deucher

drm/amdkfd: Add arcturus CWSR trap handler

CWSR (compute wave save/restore) is used for
preempting compute queues.
Signed-off-by: default avatarOak Zeng <Oak.Zeng@amd.com>
Signed-off-by: default avatarAlex Deucher <alexander.deucher@amd.com>
parent 54bd77f3
......@@ -860,3 +860,201 @@ static const uint32_t cwsr_trap_gfx10_hex[] = {
0xbf9f0000, 0xbf9f0000,
0xbf9f0000, 0x00000000,
};
static const uint32_t cwsr_trap_arcturus_hex[] = {
0xbf820001, 0xbf8200ca,
0xb8f0f802, 0x89708670,
0xb8f1f803, 0x8671ff71,
0x00000400, 0xbf850008,
0xb8f1f803, 0x8671ff71,
0x000001ff, 0xbf850001,
0x806c846c, 0x866dff6d,
0x0000ffff, 0xbe801f6c,
0xb8f1f803, 0x8671ff71,
0x00000100, 0xbf840006,
0xbef60080, 0xb9760203,
0x866dff6d, 0x0000ffff,
0x80ec886c, 0x82ed806d,
0xbef60080, 0xb9760283,
0xbef20068, 0xbef30069,
0xb8f62407, 0x8e769b76,
0x876d766d, 0xb8f603c7,
0x8e769a76, 0x876d766d,
0xb8f6f807, 0x8676ff76,
0x00007fff, 0xb976f807,
0xbeee007e, 0xbeef007f,
0xbefe0180, 0xbf900004,
0xbf8e0002, 0xbf88fffe,
0xbef4007e, 0x8675ff7f,
0x0000ffff, 0x8775ff75,
0x00040000, 0xbef60080,
0xbef700ff, 0x00807fac,
0x8676ff7f, 0x08000000,
0x8f768376, 0x87777677,
0x8676ff7f, 0x70000000,
0x8f768176, 0x87777677,
0xbefb007c, 0xbefa0080,
0xbf8a0000, 0x8676ff7f,
0x04000000, 0xbf840012,
0xbefe00c1, 0xbeff00c1,
0xb8f14306, 0x8671c171,
0xbf84000d, 0x8e718671,
0x8e718271, 0xbef60071,
0xbef600ff, 0x01000000,
0xbefc0080, 0xbf800000,
0x807cff7c, 0x00000100,
0x807aff7a, 0x00000100,
0xbf0a717c, 0xbf85fffa,
0xbefe00c1, 0xbeff00c1,
0xb8f12a05, 0x80718171,
0x8e718271, 0x8e768871,
0xbef600ff, 0x01000000,
0xbefc0080, 0xbf11017c,
0x8071ff71, 0x00001000,
0x7e000300, 0xe0724000,
0x7a1d0000, 0x807c817c,
0x807aff7a, 0x00000100,
0xbf0a717c, 0xbf85fff8,
0xbf9c0000, 0xbefe00c1,
0xbeff00c1, 0xb8f12a05,
0x80718171, 0x8e718271,
0x8e768871, 0xbef600ff,
0x01000000, 0xbefc0080,
0xbf11017c, 0x8071ff71,
0x00001000, 0xd3d84000,
0x18000100, 0x7e000000,
0x7e000000, 0xe0724000,
0x7a1d0000, 0x807c817c,
0x807aff7a, 0x00000100,
0xbf0a717c, 0xbf85fff5,
0xbf9c0000, 0xb8f11605,
0x80718171, 0x8e718471,
0x8e768871, 0xbef600ff,
0x01000000, 0xbefc0080,
0xbf800000, 0xbe802a00,
0x7e000200, 0xe0724000,
0x7a1d0000, 0x807aff7a,
0x00000100, 0x807c817c,
0xbf0a717c, 0xbf85fff7,
0xbef60084, 0xbef600ff,
0x01000000, 0x7e00027b,
0xe0724000, 0x7a1d0000,
0x807aff7a, 0x00000100,
0x7e00026c, 0xe0724000,
0x7a1d0000, 0x807aff7a,
0x00000100, 0x7e00026d,
0xe0724000, 0x7a1d0000,
0x807aff7a, 0x00000100,
0x7e00026e, 0xe0724000,
0x7a1d0000, 0x807aff7a,
0x00000100, 0x7e00026f,
0xe0724000, 0x7a1d0000,
0x807aff7a, 0x00000100,
0x7e000270, 0xe0724000,
0x7a1d0000, 0x807aff7a,
0x00000100, 0xb8f1f803,
0x7e000271, 0xe0724000,
0x7a1d0000, 0x807aff7a,
0x00000100, 0x7e000272,
0xe0724000, 0x7a1d0000,
0x807aff7a, 0x00000100,
0x7e000273, 0xe0724000,
0x7a1d0000, 0x807aff7a,
0x00000100, 0xb8fbf801,
0x7e00027b, 0xe0724000,
0x7a1d0000, 0x807aff7a,
0x00000100, 0xbf8200bb,
0xbef4007e, 0x8675ff7f,
0x0000ffff, 0x8775ff75,
0x00040000, 0xbef60080,
0xbef700ff, 0x00807fac,
0x8672ff7f, 0x08000000,
0x8f728372, 0x87777277,
0x8672ff7f, 0x70000000,
0x8f728172, 0x87777277,
0xbef80080, 0x8672ff7f,
0x04000000, 0xbf840011,
0xbefe00c1, 0xbeff00c1,
0xb8ef4306, 0x866fc16f,
0xbf84000c, 0x8e6f866f,
0x8e6f826f, 0xbef6006f,
0xbef600ff, 0x01000000,
0xbefc0080, 0x807cff7c,
0x00000100, 0x8078ff78,
0x00000100, 0xbf0a6f7c,
0xbf85fffa, 0xbefe00c1,
0xbeff00c1, 0xb8ef2a05,
0x806f816f, 0x8e6f826f,
0x8e76886f, 0xbef600ff,
0x01000000, 0xbef20078,
0x8078ff78, 0x00000100,
0xbefc0081, 0xbf11087c,
0x806fff6f, 0x00008000,
0xe0524000, 0x781d0000,
0xbf8c0f70, 0x7e000300,
0x807c817c, 0x8078ff78,
0x00000100, 0xbf0a6f7c,
0xbf85fff7, 0xbf9c0000,
0xbefe00c1, 0xbeff00c1,
0xb8ef2a05, 0x806f816f,
0x8e6f826f, 0x8e76886f,
0xbef600ff, 0x01000000,
0xbefc0080, 0xbf11087c,
0x806fff6f, 0x00008000,
0xe0524000, 0x781d0000,
0xbf8c0f70, 0xd3d94000,
0x18000100, 0x807c817c,
0x8078ff78, 0x00000100,
0xbf0a6f7c, 0xbf85fff6,
0xbf9c0000, 0xe0524000,
0x721d0000, 0xb8ef1605,
0x806f816f, 0x8e6f846f,
0x8e76886f, 0xbef600ff,
0x01000000, 0xc0211cba,
0x00000078, 0x8078ff78,
0x00000100, 0xbefc0081,
0xc021003a, 0x00000078,
0x8078ff78, 0x00000100,
0xbf8cc07f, 0xbe802c00,
0xbf800000, 0x807c817c,
0xbf0a6f7c, 0xbf85fff6,
0xbe800072, 0xbef60084,
0xbef600ff, 0x01000000,
0xc0211bfa, 0x00000078,
0x8078ff78, 0x00000100,
0xc0211b3a, 0x00000078,
0x8078ff78, 0x00000100,
0xc0211b7a, 0x00000078,
0x8078ff78, 0x00000100,
0xc0211eba, 0x00000078,
0x8078ff78, 0x00000100,
0xc0211efa, 0x00000078,
0x8078ff78, 0x00000100,
0xc0211c3a, 0x00000078,
0x8078ff78, 0x00000100,
0xc0211c7a, 0x00000078,
0x8078ff78, 0x00000100,
0xc0211a3a, 0x00000078,
0x8078ff78, 0x00000100,
0xc0211a7a, 0x00000078,
0x8078ff78, 0x00000100,
0xc0211cfa, 0x00000078,
0x8078ff78, 0x00000100,
0xbf8cc07f, 0xbef2006d,
0x866dff72, 0x0000ffff,
0xbefc006f, 0xbefe007a,
0xbeff007b, 0x866f71ff,
0x000003ff, 0xb96f4803,
0x866f71ff, 0xfffff800,
0x8f6f8b6f, 0xb96fa2c3,
0xb973f801, 0x866fff72,
0xf8000000, 0x8f6f9b6f,
0x8e6f906f, 0xbef30080,
0x87736f73, 0x866fff72,
0x04000000, 0x8f6f9a6f,
0x8e6f8f6f, 0x87736f73,
0x866fff70, 0x00800000,
0x8f6f976f, 0xb973f807,
0x86fe7e7e, 0x86ea6a6a,
0xb970f802, 0xbf8a0000,
0x95806f6c, 0xbf810000,
};
This diff is collapsed.
......@@ -553,6 +553,10 @@ static void kfd_cwsr_init(struct kfd_dev *kfd)
BUILD_BUG_ON(sizeof(cwsr_trap_gfx8_hex) > PAGE_SIZE);
kfd->cwsr_isa = cwsr_trap_gfx8_hex;
kfd->cwsr_isa_size = sizeof(cwsr_trap_gfx8_hex);
} else if (kfd->device_info->asic_family == CHIP_ARCTURUS) {
BUILD_BUG_ON(sizeof(cwsr_trap_arcturus_hex) > PAGE_SIZE);
kfd->cwsr_isa = cwsr_trap_arcturus_hex;
kfd->cwsr_isa_size = sizeof(cwsr_trap_arcturus_hex);
} else if (kfd->device_info->asic_family < CHIP_NAVI10) {
BUILD_BUG_ON(sizeof(cwsr_trap_gfx9_hex) > PAGE_SIZE);
kfd->cwsr_isa = cwsr_trap_gfx9_hex;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment