1bf215546Sopenharmony_ci<?xml version="1.0" ?> 2bf215546Sopenharmony_ci 3bf215546Sopenharmony_ci<!-- 4bf215546Sopenharmony_ciCopyright © 2022 Imagination Technologies Ltd. 5bf215546Sopenharmony_ci 6bf215546Sopenharmony_ciPermission is hereby granted, free of charge, to any person obtaining a copy 7bf215546Sopenharmony_ciof this software and associated documentation files (the "Software"), to deal 8bf215546Sopenharmony_ciin the Software without restriction, including without limitation the rights 9bf215546Sopenharmony_cito use, copy, modify, merge, publish, distribute, sublicense, and/or sell 10bf215546Sopenharmony_cicopies of the Software, and to permit persons to whom the Software is 11bf215546Sopenharmony_cifurnished to do so, subject to the following conditions: 12bf215546Sopenharmony_ci 13bf215546Sopenharmony_ciThe above copyright notice and this permission notice (including the next 14bf215546Sopenharmony_ciparagraph) shall be included in all copies or substantial portions of the 15bf215546Sopenharmony_ciSoftware. 16bf215546Sopenharmony_ci 17bf215546Sopenharmony_ciTHE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 18bf215546Sopenharmony_ciIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 19bf215546Sopenharmony_ciFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 20bf215546Sopenharmony_ciAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 21bf215546Sopenharmony_ciLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 22bf215546Sopenharmony_ciOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 23bf215546Sopenharmony_ciSOFTWARE. 24bf215546Sopenharmony_ci--> 25bf215546Sopenharmony_ci 26bf215546Sopenharmony_ci<csbgen name="ROGUE" prefix="CDMCTRL"> 27bf215546Sopenharmony_ci 28bf215546Sopenharmony_ci <enum name="BLOCK_TYPE"> 29bf215546Sopenharmony_ci <value name="COMPUTE_KERNEL" value="0"/> 30bf215546Sopenharmony_ci <value name="STREAM_LINK" value="1"/> 31bf215546Sopenharmony_ci <value name="STREAM_TERMINATE" value="2"/> 32bf215546Sopenharmony_ci </enum> 33bf215546Sopenharmony_ci 34bf215546Sopenharmony_ci <enum name="USC_TARGET"> 35bf215546Sopenharmony_ci <value name="ALL" value="0"/> 36bf215546Sopenharmony_ci <value name="ANY" value="1"/> 37bf215546Sopenharmony_ci </enum> 38bf215546Sopenharmony_ci 39bf215546Sopenharmony_ci <enum name="SD_TYPE"> 40bf215546Sopenharmony_ci <value name="NONE" value="0"/> 41bf215546Sopenharmony_ci <value name="PDS" value="1"/> 42bf215546Sopenharmony_ci <value name="USC" value="2"/> 43bf215546Sopenharmony_ci </enum> 44bf215546Sopenharmony_ci 45bf215546Sopenharmony_ci <struct name="KERNEL0" length="1"> 46bf215546Sopenharmony_ci <field name="block_type" start="30" end="31" type="BLOCK_TYPE" default="COMPUTE_KERNEL"/> 47bf215546Sopenharmony_ci <field name="indirect_present" start="29" end="29" type="bool"/> 48bf215546Sopenharmony_ci <field name="global_offsets_present" start="28" end="28" type="bool"/> 49bf215546Sopenharmony_ci <field name="event_object_present" start="27" end="27" type="bool"/> 50bf215546Sopenharmony_ci <field name="usc_common_size" start="18" end="26" type="uint"> 51bf215546Sopenharmony_ci <define name="UNIT_SIZE" value="64"/> 52bf215546Sopenharmony_ci <define name="MAX_SIZE" value="256"/> 53bf215546Sopenharmony_ci </field> 54bf215546Sopenharmony_ci <field name="usc_unified_size" start="12" end="17" type="uint"> 55bf215546Sopenharmony_ci <define name="UNIT_SIZE" value="16"/> 56bf215546Sopenharmony_ci </field> 57bf215546Sopenharmony_ci <field name="pds_temp_size" start="8" end="11" type="uint"> 58bf215546Sopenharmony_ci <define name="UNIT_SIZE" value="16"/> 59bf215546Sopenharmony_ci </field> 60bf215546Sopenharmony_ci <field name="pds_data_size" start="2" end="7" type="uint"> 61bf215546Sopenharmony_ci <define name="UNIT_SIZE" value="16"/> 62bf215546Sopenharmony_ci </field> 63bf215546Sopenharmony_ci <field name="usc_target" start="1" end="1" type="USC_TARGET"/> 64bf215546Sopenharmony_ci <field name="fence" start="0" end="0" type="bool"/> 65bf215546Sopenharmony_ci </struct> 66bf215546Sopenharmony_ci 67bf215546Sopenharmony_ci <struct name="KERNEL1" length="1"> 68bf215546Sopenharmony_ci <field name="data_addr" start="4" end="31" shift="4" type="address"/> 69bf215546Sopenharmony_ci <field name="sd_type" start="2" end="3" type="SD_TYPE"/> 70bf215546Sopenharmony_ci <field name="usc_common_shared" start="1" end="1" type="bool"/> 71bf215546Sopenharmony_ci </struct> 72bf215546Sopenharmony_ci 73bf215546Sopenharmony_ci <struct name="KERNEL2" length="1"> 74bf215546Sopenharmony_ci <field name="code_addr" start="4" end="31" shift="4" type="address"/> 75bf215546Sopenharmony_ci <field name="one_wg_per_task" start="0" end="0" type="bool"/> 76bf215546Sopenharmony_ci </struct> 77bf215546Sopenharmony_ci 78bf215546Sopenharmony_ci <struct name="KERNEL3" length="1"> 79bf215546Sopenharmony_ci <field name="workgroup_x" start="0" end="31" type="uint"/> 80bf215546Sopenharmony_ci </struct> 81bf215546Sopenharmony_ci 82bf215546Sopenharmony_ci <struct name="KERNEL4" length="1"> 83bf215546Sopenharmony_ci <field name="workgroup_y" start="0" end="31" type="uint"/> 84bf215546Sopenharmony_ci </struct> 85bf215546Sopenharmony_ci 86bf215546Sopenharmony_ci <struct name="KERNEL5" length="1"> 87bf215546Sopenharmony_ci <field name="workgroup_z" start="0" end="31" type="uint"/> 88bf215546Sopenharmony_ci </struct> 89bf215546Sopenharmony_ci 90bf215546Sopenharmony_ci <struct name="KERNEL6" length="1"> 91bf215546Sopenharmony_ci <field name="indirect_addrmsb" start="0" end="7" shift="32" type="address"/> 92bf215546Sopenharmony_ci </struct> 93bf215546Sopenharmony_ci 94bf215546Sopenharmony_ci <struct name="KERNEL7" length="1"> 95bf215546Sopenharmony_ci <field name="indirect_addrlsb" start="2" end="31" shift="2" type="address"/> 96bf215546Sopenharmony_ci </struct> 97bf215546Sopenharmony_ci 98bf215546Sopenharmony_ci <struct name="KERNEL8" length="1"> 99bf215546Sopenharmony_ci <field name="max_instances" start="27" end="31" type="uint"> 100bf215546Sopenharmony_ci <define name="MAX_SIZE" value="31"/> 101bf215546Sopenharmony_ci </field> 102bf215546Sopenharmony_ci <field name="workgroup_size_x" start="18" end="26" type="uint"/> 103bf215546Sopenharmony_ci <field name="workgroup_size_y" start="9" end="17" type="uint"/> 104bf215546Sopenharmony_ci <field name="workgroup_size_z" start="0" end="8" type="uint"/> 105bf215546Sopenharmony_ci </struct> 106bf215546Sopenharmony_ci 107bf215546Sopenharmony_ci <struct name="KERNEL9" length="1"> 108bf215546Sopenharmony_ci <field name="global_offset_x" start="0" end="31" type="uint"/> 109bf215546Sopenharmony_ci </struct> 110bf215546Sopenharmony_ci 111bf215546Sopenharmony_ci <struct name="KERNEL10" length="1"> 112bf215546Sopenharmony_ci <field name="global_offset_y" start="0" end="31" type="uint"/> 113bf215546Sopenharmony_ci </struct> 114bf215546Sopenharmony_ci 115bf215546Sopenharmony_ci <struct name="KERNEL11" length="1"> 116bf215546Sopenharmony_ci <field name="global_offset_z" start="0" end="31" type="uint"/> 117bf215546Sopenharmony_ci </struct> 118bf215546Sopenharmony_ci 119bf215546Sopenharmony_ci <struct name="STREAM_LINK0" length="1"> 120bf215546Sopenharmony_ci <field name="block_type" start="30" end="31" type="BLOCK_TYPE" default="STREAM_LINK"/> 121bf215546Sopenharmony_ci <field name="link_addrmsb" start="0" end="7" shift="32" type="address"/> 122bf215546Sopenharmony_ci </struct> 123bf215546Sopenharmony_ci 124bf215546Sopenharmony_ci <struct name="STREAM_LINK1" length="1"> 125bf215546Sopenharmony_ci <field name="link_addrlsb" start="2" end="31" shift="2" type="address"/> 126bf215546Sopenharmony_ci </struct> 127bf215546Sopenharmony_ci 128bf215546Sopenharmony_ci <struct name="STREAM_TERMINATE" length="1"> 129bf215546Sopenharmony_ci <field name="block_type" start="30" end="31" type="BLOCK_TYPE" default="STREAM_TERMINATE"/> 130bf215546Sopenharmony_ci </struct> 131bf215546Sopenharmony_ci 132bf215546Sopenharmony_ci</csbgen> 133