summaryrefslogtreecommitdiff
path: root/rnndb/falcon_crypt.xml
blob: 9d527dae683e5711ea54dd729dea7bb45a7e2688 (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
92
93
94
<?xml version="1.0" encoding="UTF-8"?>
<database xmlns="http://nouveau.freedesktop.org/"
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xsi:schemaLocation="http://nouveau.freedesktop.org/ rules-ng.xsd">
<import file="copyright.xml"/>

<import file="nvchipsets.xml" />

<enum name="FALCON_CRYPT_OP">
	<value value="0x00" name="UNK0"/>
	<value value="0x01" name="MOV"/>
	<value value="0x02" name="XSIN"/>
	<value value="0x03" name="XSOUT"/>
	<value value="0x04" name="UNK04"/>
	<value value="0x05" name="SEQ0_RECORD"/>
	<value value="0x06" name="SEQ0_PLAY"/>
	<value value="0x07" name="SEQ1_RECORD"/>
	<value value="0x08" name="SEQ1_PLAY"/>
	<value value="0x0a" name="UNK0A"/>
	<value value="0x0b" name="XOR"/>
	<value value="0x0c" name="ADD"/>
	<value value="0x0d" name="AND"/>
	<value value="0x0e" name="REV"/>
	<value value="0x0f" name="PRECMAC"/>
	<value value="0x10" name="SECRET"/>
	<value value="0x11" name="KEYREG"/>
	<value value="0x12" name="KEXP"/>
	<value value="0x13" name="KREXP"/>
	<value value="0x14" name="ENC"/>
	<value value="0x15" name="DEC"/>
	<value value="0x16" name="UNK16_SIG"/>
	<value value="0x17" name="SIGENC"/>
	<value value="0x18" name="UNK18_SIG"/>
</enum>

<group name="falcon_crypt">
	<array offset="0x800" name="CRYPT" stride="0x100" length="1">
		<reg32 offset="0x00" name="ACCESS">
			<bitfield pos="10" name="UNK10"/>
			<bitfield pos="12" name="UNK12"/>
			<bitfield pos="14" name="UNK14"/>
			<bitfield pos="16" name="UNK16"/>
			<bitfield pos="20" name="INSN_IO"/>
		</reg32>
		<reg32 offset="0x28" name="STATE" access="r">
			<bitfield pos="0" name="SEQ_RECORD_ACTIVE"/>
			<bitfield low="4" high="7" name="SEQ_RECORD_LEFT"/> <!-- 0 actually means 0x10 -->
			<bitfield low="12" high="15" name="KEYREG"/>
		</reg32>
		<reg32 offset="0x30" name="INSN_IO">
			<bitfield low="0" high="3" name="ARG1"/>
			<bitfield low="8" high="13" name="ARG2"/>
			<bitfield low="20" high="24" name="OPCODE" type="FALCON_CRYPT_OP"/>
			<bitfield pos="28" name="VALID"/>
		</reg32>
		<reg32 offset="0x58" name="UNK58" access="r">
			<bitfield low="0" high="4" name="SEQ_OPCODE" type="FALCON_CRYPT_OP"/>
			<bitfield low="5" high="9" name="IO_OPCODE" type="FALCON_CRYPT_OP"/>
			<bitfield low="15" high="16" name="AES_OP">
				<value value="0" name="ENC"/>
				<value value="1" name="DEC"/>
				<value value="2" name="KEXP"/>
				<value value="3" name="KREXP"/>
			</bitfield>
		</reg32>
		<bitset name="falcon_crypt_intr" inline="yes">
			<bitfield pos="0" name="UNK0"/>
			<bitfield pos="8" name="UNK8"/>
			<bitfield pos="12" name="UNK12"/>
			<bitfield pos="16" name="OPCODE_ERR"/>
			<bitfield pos="20" name="SINGLE_STEP"/>
			<bitfield pos="24" name="UNK24"/>
			<bitfield pos="28" name="UNK28"/> <!-- ??? -->
		</bitset>
		<reg32 offset="0x80" name="INTR" type="falcon_crypt_intr"/>
		<reg32 offset="0x84" name="INTR_EN" type="falcon_crypt_intr"/>
		<reg32 offset="0x98" name="OPCODE_ERR">
			<bitfield pos="0" name="ILLEGAL_OPCODE"/>
			<bitfield pos="4" name="SEQ_EMPTY"/>
			<bitfield pos="8" name="SEQ_TOO_LONG"/>
			<bitfield pos="12" name="SEQ_IN_SEQ"/>
			<bitfield pos="16" name="SIG_NOT_AUTH"/>
			<bitfield pos="24" name="UNK24_UNK0A"/>
		</reg32>
	</array>
	<array offset="0x900" name="UNK900" stride="0x100" length="1">
	</array>
	<array offset="0xc00" name="UNKC00" stride="0x40" length="1">
	</array>
	<array offset="0xd00" name="UNKD00" stride="0x40" length="1">
	</array>
</group>

</database>