-
Notifications
You must be signed in to change notification settings - Fork 6
/
cm.yaml
175 lines (173 loc) · 3.22 KB
/
cm.yaml
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
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
---
name: CM
brief: Clock Management
size: 0x1000
desc: |
The BCM2835 system has a number of clocks for the various components which are
driven either by a PLL or the external 19.2 MHz oscillator. Known clocks are
the core clock (CM_VPU), the system timer clock (PM_TIME) which controls the
speed of the system timer and the GPIO clocks which are documented in the
Raspberry Pi peripheral documentation. The interactions between the clocks are
mostly unknown. The core clock affects at least execution speed on the
videocore processor and the speed of the mini uart.
arrays:
0x8:
name: VPU
length: 1
stride: 0x8
block: &CLOCK_CTL
brief: Clocks Control
size: 0x8
desc: >
Registers to control clock generation
registers:
0x0:
name: CTL
brief: Clock Control
type: CTL
0x4:
name: DIV
brief: Clock Divisor
type: DIV
0x28:
name: H264
length: 1
block: *CLOCK_CTL
0x30:
name: UNK_0x30
length: 1
block: *CLOCK_CTL
0x38:
name: V3D
length: 1
block: *CLOCK_CTL
0x40:
name: CAM0_LP
length: 1
block: *CLOCK_CTL
0x58:
name: DSI0_ESC/DSI1_ESC
length: 1
block: *CLOCK_CTL
0x68:
name: DPI
length: 1
block: *CLOCK_CTL
0x70:
name: GP${n}
length: 3
stride: 0x8
block: *CLOCK_CTL
0x88:
name: HSM
length: 1
block: *CLOCK_CTL
0x90:
name: ISP
length: 1
block: *CLOCK_CTL
0x98:
name: PCM
length: 1
block: *CLOCK_CTL
0xa0:
name: PWM
length: 1
block: *CLOCK_CTL
0xa8:
name: SLIM
length: 1
block: *CLOCK_CTL
0xb0:
name: SMI
length: 1
stride: 0x8
block: *CLOCK_CTL
0xc0:
name: eMMC
length: 1
block: *CLOCK_CTL
0xe0:
name: TSENS
length: 1
block: *CLOCK_CTL
0xe8:
name: TIME
length: 1
block: *CLOCK_CTL
0xf0:
name: UART
length: 1
block: *CLOCK_CTL
0xf8:
name: VEC
length: 1
block: *CLOCK_CTL
0x190:
name: UNK_0x190
length: 1
block: *CLOCK_CTL
# 0x1a8:
# name: UNK_0x1a8
# length: 1
# stride: 0x8
# block: *CLOCK_CTL
0x1b0:
name: ARM
length: 1
block: *CLOCK_CTL
0x1c0:
name: UNK_0x1c0
length: 1
block: *CLOCK_CTL
types:
CTL:
name: CTL
brief: Clock Control Registers
access: rw
bits:
31-24: &PASSWD_FIELD
name: PASSWD
access: w
values:
0x5a:
name: PASSWD
10-9:
name: MASH
8:
name: FLIP
7:
name: BUSY
5:
name: KILL
3-0:
name: SRC
access: rw
values:
0:
name: GND
1:
name: OSC
desc: External oscillator
4:
name: PLLA
5:
name: PLLC
6:
name: PLLD
7:
name: HDMI
DIV:
name: DIV
brief: Clock Divisor Registers
desc: |
The resulting clock is the source divided by (DIVI + DIVF / 1024).
access: rw
bits:
31-24: *PASSWD_FIELD
23-12:
name: DIVI
desc: Integer part
11-0:
name: DIVF
desc: Fractional part