vsoc2000
Virtual SOC 2000
Virtual SoC 2000 is a nice chip. Its quad-core architecture with trustzone makes it super powerful.
Amaury Pouly
ARM
0.5
int
Interrupt Collector
The interrupt collector controls the routing of the interrupts to the processors. It has 32 interrupts sources, which can be routed as FIQ or IRQ to the either processor.
ICOLL
Interrupt collector
0x80000000
ctrl
Control register
CTRL
0x0
8
CLKGATE
Clock gating control. This bit can be protected by TZ lock.
7
SFTRST
Soft reset, the bit will automatically reset to 0 when reset is completed. This bit can be protected by TZ lock.
6
TZ_LOCK
Trust Zone lock
5
UNLOCKED
0x0
LOCKED
When the interrupt collector is locked, only a secured processor can modify protected fields.
0x1
set
4
clr
8
status
Interrupt status register
STATUS
0x10
read-only
STATUS
Bit is set to 1 is the interrupt is pending. Secured interrupts can only be polled by secured processors (non-secure will always read 0 for those).
0
32
clear
Interrupt clear register
CLEAR
0x14
write-only
CLEAR
Write 1 to clear a pending interrupt. Secured interrupts can only be cleared by secured processors.
0
32
enable
Interrupt enable register
ENABLE
0
32
0x20
0x10
16
This register controls the routing of the interrupt
CPU3_PRIO
Interrupt priority
14
2
MASKED
Interrupt is masked
0x0
LOW
0x1
HIGH
0x2
NMI
Interrupt is non maskable
0x3
CPU3_TYPE
Interrupt type
13
IRQ
0x0
FIQ
0x1
CPU3_TZ
Trust Zone interrupt: when set, only a secured processor can modify the parameters for secured interrupts.
12
CPU2_PRIO
10
2
MASKED
Interrupt is masked
0x0
LOW
0x1
HIGH
0x2
NMI
Interrupt is non maskable
0x3
CPU2_TYPE
Interrupt type
9
IRQ
0x0
FIQ
0x1
CPU2_TZ
Trust Zone interrupt: when set, only a secured processor can modify the parameters for secured interrupts.
8
CPU1_PRIO
Interrupt priority
6
2
MASKED
Interrupt is masked
0x0
LOW
0x1
HIGH
0x2
NMI
Interrupt is non maskable
0x3
CPU1_TYPE
Interrupt type
5
IRQ
0x0
FIQ
0x1
CPU1_TZ
Trust Zone interrupt: when set, only a secured processor can modify the parameters for secured interrupts.
4
CPU0_PRIO
Interrupt priority
2
2
MASKED
Interrupt will never be sent to the CPU
0x0
LOW
0x1
HIGH
0x2
NMI
Interrupt is non maskable
0x3
CPU0_TYPE
Interrupt type
1
IRQ
0x0
FIQ
0x1
CPU0_TZ
Trust Zone interrupt: when set, only a secured processor can modify the parameters for secured interrupts.
0
set
4
clr
8
gpio
GPIO controller
A GPIO controller manages several ports.
CPU_GPIO
CPU GPIO controllers 1 through 7
1
8
0x80001000+(n-1)*0x1000
port
GPIO port
PORT
0
2
0x0
0x100
input
Input register
IN
0x0
8
VALUE
0
8
output_enable
Output enable register
OE
0x10
8
ENABLE
0
8
set
4
clr
8
tog
12
tz
Trust Zone
TZ
0xa0000000
ctrl
Control Register
CTRL
0x0
8
SCRATCH
TZ protected scratch value
4
4
DISABLE
One bit per CPU: set to 1 to prevent the processor from being able to enter TZ mode. Can only be set by a secured processor. By default all processors can enter TZ mode.
0
4
debug
Debug register
DEBUG
Debug register
Don't touch it!
42
0x50
0x60
0x90
0x110
0x130
8
read-only