summaryrefslogtreecommitdiff
path: root/platform/wavelet3d/gfx_shader_schedif.rdl
blob: c846da9967ad774bcb853d639a92d93ddbe3c1b7 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
addrmap gfx_shader_schedif {
    name = "Scheduler<->core interface";

    default hw = r;
    default sw = w;
    default regwidth = 32;

    reg {
        name = "Shader core control register";

        field {
            desc = "Set this field to flush the instruction cache";

            singlepulse;
        } IFLUSH[0:0] = 0;
    } CORE @ 0x00;

    reg {
        name = "Wavefront setup control register";

        default hw = na;
        default sw = r;
        default precedence = hw;

        field {
            desc = "Wavefront group number";

            hw = r;
            sw = rw;
        } GROUP[5:0];

        field {
            desc = "Destination SGPR number";

            hw = r;
            sw = rw;
        } XGPR[11:8];

        field {
            desc = "PC table update done, group submitted";

            rclr;
            hwset;
        } SUBMIT_DONE[16:16] = 0;

        field {
            desc = "General-purpose register update done";

            rclr;
            hwset;
        } GPR_DONE[17:17] = 0;

        field {
            desc = "Lane mask update done";

            rclr;
            hwset;
        } MASK_DONE[18:18] = 0;
    } SETUP_CTRL @ 0x04;

    reg {
        name = "SGPR/VGPR write register";

        field {
            desc = "Value to write";

            swmod;
        } VALUE[31:0];
    } SETUP_GPR @ 0x08;

    reg {
        name = "Lane mask write register";

        field {
            desc = "Mask value to write";

            swmod;
        } MASK[15:0];
    } SETUP_MASK @ 0x0c;

    reg {
        name = "Group submit register";

        field {
            desc = "Initial group program counter, submits group on write";

            swmod;
        } PC[31:2];
    } SETUP_SUBMIT @ 0x10;
};