Hardware Registers: Difference between revisions
Jump to navigation
Jump to search
(fix table formatting) |
|||
Line 319: | Line 319: | ||
|- | |- | ||
| 0xBC000030-0xBC00004C || 32 || RW || IO Register Usermode Remap (Subtract 0x60000000) | | 0xBC000030-0xBC00004C || 32 || RW || IO Register Usermode Remap (Subtract 0x60000000) | ||
|- | |||
|} | |||
= 0xBC600000 - 0xBC700000 = | |||
{| class="wikitable sortable" | |||
|- | |||
! Physical Address !! Size !! R/W !! Description | |||
|- | |||
| 0xBC600000 || 32 || RW || System time in microseconds. Wraps around every 1.1 hours? | |||
|- | |||
| 0xBC600004 || 32 || RW || Alarm time, raises interrupt (19?) when system time hits this number | |||
|- | |||
| 0xBC600008 || 32 || RW || Unknown, typically 0x30 but can be written | |||
|- | |||
| 0xBC60000C || 32 || RW || Unknown, typically 1 but can be written. (Writing 0 caused a hang, maybe disables timer incrementing?) | |||
|- | |||
| 0xBC600010 || 32 || RW || Unknown, typically 0 | |||
|- | |- | ||
|} | |} |
Revision as of 18:34, 20 January 2023
0xBC000000 - 0xBC100000
Physical Address | Size | R/W | Description |
---|---|---|---|
0xBC000000 | 4 | RW | Memory Protection 0x08000000 -> 0x081FFFFFF |
Bit(s) | Usage |
---|---|
31 | 0x081C0000 -> 0x081FFFFFF Kernel Write Enable |
30 | 0x081C0000 -> 0x081FFFFFF Kernel Read Enable |
29 | 0x081C0000 -> 0x081FFFFFF User Write Enable |
28 | 0x081C0000 -> 0x081FFFFFF User Read Enable |
27 | 0x08180000 -> 0x081BFFFFF Kernel Write Enable |
26 | 0x08180000 -> 0x081BFFFFF Kernel Read Enable |
25 | 0x08180000 -> 0x081BFFFFF User Write Enable |
24 | 0x08180000 -> 0x081BFFFFF User Read Enable |
23 | 0x08140000 -> 0x0817FFFFF Kernel Write Enable |
22 | 0x08140000 -> 0x0817FFFFF Kernel Read Enable |
21 | 0x08140000 -> 0x0817FFFFF User Write Enable |
20 | 0x08140000 -> 0x0817FFFFF User Read Enable |
19 | 0x08100000 -> 0x0813FFFFF Kernel Write Enable |
18 | 0x08100000 -> 0x0813FFFFF Kernel Read Enable |
17 | 0x08100000 -> 0x0813FFFFF User Write Enable |
16 | 0x08100000 -> 0x0813FFFFF User Read Enable |
15 | 0x080C0000 -> 0x080FFFFFF Kernel Write Enable |
14 | 0x080C0000 -> 0x080FFFFFF Kernel Read Enable |
13 | 0x080C0000 -> 0x080FFFFFF User Write Enable |
12 | 0x080C0000 -> 0x080FFFFFF User Read Enable |
11 | 0x08080000 -> 0x080BFFFFF Kernel Write Enable |
10 | 0x08080000 -> 0x080BFFFFF Kernel Read Enable |
9 | 0x08080000 -> 0x080BFFFFF User Write Enable |
8 | 0x08080000 -> 0x080BFFFFF User Read Enable |
7 | 0x08040000 -> 0x0807FFFFF Kernel Write Enable |
6 | 0x08040000 -> 0x0807FFFFF Kernel Read Enable |
5 | 0x08040000 -> 0x0807FFFFF User Write Enable |
4 | 0x08040000 -> 0x0807FFFFF User Read Enable |
3 | 0x08000000 -> 0x08003FFFF Kernel Write Enable |
2 | 0x08000000 -> 0x08003FFFF Kernel Read Enable |
1 | 0x08000000 -> 0x08003FFFF User Write Enable |
0 | 0x08000000 -> 0x08003FFFF User Read Enable |
Physical Address | Size | R/W | Description |
---|---|---|---|
0xBC000004 | 4 | RW | Memory Protection 0x08200000 -> 0x083FFFFFF |
Bit(s) | Usage |
---|---|
31 | 0x083C0000 -> 0x083FFFFFF Kernel Write Enable |
30 | 0x083C0000 -> 0x083FFFFFF Kernel Read Enable |
29 | 0x083C0000 -> 0x083FFFFFF User Write Enable |
28 | 0x083C0000 -> 0x083FFFFFF User Read Enable |
27 | 0x083C0000 -> 0x083BFFFFF Kernel Write Enable |
26 | 0x083C0000 -> 0x083BFFFFF Kernel Read Enable |
25 | 0x08380000 -> 0x083BFFFFF User Write Enable |
24 | 0x08380000 -> 0x083BFFFFF User Read Enable |
23 | 0x08340000 -> 0x0837FFFFF Kernel Write Enable |
22 | 0x08340000 -> 0x0837FFFFF Kernel Read Enable |
21 | 0x08340000 -> 0x0837FFFFF User Write Enable |
20 | 0x08340000 -> 0x0837FFFFF User Read Enable |
19 | 0x08300000 -> 0x0833FFFFF Kernel Write Enable |
18 | 0x08300000 -> 0x0833FFFFF Kernel Read Enable |
17 | 0x08300000 -> 0x0833FFFFF User Write Enable |
16 | 0x08300000 -> 0x0833FFFFF User Read Enable |
15 | 0x082C0000 -> 0x082FFFFFF Kernel Write Enable |
14 | 0x082C0000 -> 0x082FFFFFF Kernel Read Enable |
13 | 0x082C0000 -> 0x082FFFFFF User Write Enable |
12 | 0x082C0000 -> 0x082FFFFFF User Read Enable |
11 | 0x08280000 -> 0x082BFFFFF Kernel Write Enable |
10 | 0x08280000 -> 0x082BFFFFF Kernel Read Enable |
9 | 0x08280000 -> 0x082BFFFFF User Write Enable |
8 | 0x08280000 -> 0x082BFFFFF User Read Enable |
7 | 0x08240000 -> 0x0827FFFFF Kernel Write Enable |
6 | 0x08240000 -> 0x0827FFFFF Kernel Read Enable |
5 | 0x08240000 -> 0x0827FFFFF User Write Enable |
4 | 0x08240000 -> 0x0827FFFFF User Read Enable |
3 | 0x08200000 -> 0x08203FFFF Kernel Write Enable |
2 | 0x08200000 -> 0x08203FFFF Kernel Read Enable |
1 | 0x08200000 -> 0x08203FFFF User Write Enable |
0 | 0x08200000 -> 0x08203FFFF User Read Enable |
Physical Address | Size | R/W | Description |
---|---|---|---|
0xBC000008 | 4 | RW | Memory Protection 0x08400000 -> 0x085FFFFFF |
Bit(s) | Usage |
---|---|
31 | 0x085c0000 -> 0x085FFFFFF Kernel Write Enable |
30 | 0x085c0000 -> 0x085FFFFFF Kernel Read Enable |
29 | 0x085c0000 -> 0x085FFFFFF User Write Enable |
28 | 0x085c0000 -> 0x085FFFFFF User Read Enable |
27 | 0x08580000 -> 0x085BFFFFF Kernel Write Enable |
26 | 0x08580000 -> 0x085BFFFFF Kernel Read Enable |
25 | 0x08580000 -> 0x085BFFFFF User Write Enable |
24 | 0x08580000 -> 0x085BFFFFF User Read Enable |
23 | 0x08540000 -> 0x0857FFFFF Kernel Write Enable |
22 | 0x08540000 -> 0x0857FFFFF Kernel Read Enable |
21 | 0x08540000 -> 0x0857FFFFF User Write Enable |
20 | 0x08540000 -> 0x0857FFFFF User Read Enable |
19 | 0x08500000 -> 0x0853FFFFF Kernel Write Enable |
18 | 0x08500000 -> 0x0853FFFFF Kernel Read Enable |
17 | 0x08500000 -> 0x0853FFFFF User Write Enable |
16 | 0x08500000 -> 0x0853FFFFF User Read Enable |
15 | 0x084c0000 -> 0x084FFFFFF Kernel Write Enable |
14 | 0x084c0000 -> 0x084FFFFFF Kernel Read Enable |
13 | 0x084c0000 -> 0x084FFFFFF User Write Enable |
12 | 0x084c0000 -> 0x084FFFFFF User Read Enable |
11 | 0x08480000 -> 0x084BFFFFF Kernel Write Enable |
10 | 0x08480000 -> 0x084BFFFFF Kernel Read Enable |
9 | 0x08480000 -> 0x084BFFFFF User Write Enable |
8 | 0x08480000 -> 0x084BFFFFF User Read Enable |
7 | 0x08440000 -> 0x0847FFFFF Kernel Write Enable |
6 | 0x08440000 -> 0x0847FFFFF Kernel Read Enable |
5 | 0x08440000 -> 0x0847FFFFF User Write Enable |
4 | 0x08440000 -> 0x0847FFFFF User Read Enable |
3 | 0x08400000 -> 0x08403FFFF Kernel Write Enable |
2 | 0x08400000 -> 0x08403FFFF Kernel Read Enable |
1 | 0x08400000 -> 0x08403FFFF User Write Enable |
0 | 0x08400000 -> 0x08403FFFF User Read Enable |
Physical Address | Size | R/W | Description |
---|---|---|---|
0xBC00000C | 4 | RW | Memory Protection 0x08600000 -> 0x087FFFFFF |
Bit(s) | Usage |
---|---|
31 | 0x087c0000 -> 0x087FFFFFF Kernel Write Enable |
30 | 0x087c0000 -> 0x087FFFFFF Kernel Read Enable |
29 | 0x087c0000 -> 0x087FFFFFF User Write Enable |
28 | 0x087c0000 -> 0x087FFFFFF User Read Enable |
27 | 0x08780000 -> 0x087BFFFFF Kernel Write Enable |
26 | 0x08780000 -> 0x087BFFFFF Kernel Read Enable |
25 | 0x08780000 -> 0x087BFFFFF User Write Enable |
24 | 0x08780000 -> 0x087BFFFFF User Read Enable |
23 | 0x08740000 -> 0x0877FFFFF Kernel Write Enable |
22 | 0x08740000 -> 0x0877FFFFF Kernel Read Enable |
21 | 0x08740000 -> 0x0877FFFFF User Write Enable |
20 | 0x08740000 -> 0x0877FFFFF User Read Enable |
19 | 0x08700000 -> 0x0873FFFFF Kernel Write Enable |
18 | 0x08700000 -> 0x0873FFFFF Kernel Read Enable |
17 | 0x08700000 -> 0x0873FFFFF User Write Enable |
16 | 0x08700000 -> 0x0873FFFFF User Read Enable |
15 | 0x086c0000 -> 0x086FFFFFF Kernel Write Enable |
14 | 0x086c0000 -> 0x086FFFFFF Kernel Read Enable |
13 | 0x086c0000 -> 0x086FFFFFF User Write Enable |
12 | 0x086c0000 -> 0x086FFFFFF User Read Enable |
11 | 0x08680000 -> 0x086BFFFFF Kernel Write Enable |
10 | 0x08680000 -> 0x086BFFFFF Kernel Read Enable |
9 | 0x08680000 -> 0x086BFFFFF User Write Enable |
8 | 0x08680000 -> 0x086BFFFFF User Read Enable |
7 | 0x08640000 -> 0x0867FFFFF Kernel Write Enable |
6 | 0x08640000 -> 0x0867FFFFF Kernel Read Enable |
5 | 0x08640000 -> 0x0867FFFFF User Write Enable |
4 | 0x08640000 -> 0x0867FFFFF User Read Enable |
3 | 0x08600000 -> 0x08603FFFF Kernel Write Enable |
2 | 0x08600000 -> 0x08603FFFF Kernel Read Enable |
1 | 0x08600000 -> 0x08603FFFF User Write Enable |
0 | 0x08600000 -> 0x08603FFFF User Read Enable |
Granularity that these work on is not known. For each 1 bit an IO range is exposed to usermode for Read/Write. To find the usermode address, subtract 0x60000000 from the kernelmode one.
Physical Address | Size | R/W | Description |
---|---|---|---|
0xBC000030-0xBC00004C | 32 | RW | IO Register Usermode Remap (Subtract 0x60000000) |
0xBC600000 - 0xBC700000
Physical Address | Size | R/W | Description |
---|---|---|---|
0xBC600000 | 32 | RW | System time in microseconds. Wraps around every 1.1 hours? |
0xBC600004 | 32 | RW | Alarm time, raises interrupt (19?) when system time hits this number |
0xBC600008 | 32 | RW | Unknown, typically 0x30 but can be written |
0xBC60000C | 32 | RW | Unknown, typically 1 but can be written. (Writing 0 caused a hang, maybe disables timer incrementing?) |
0xBC600010 | 32 | RW | Unknown, typically 0 |
0xBC600000 - 0xBC700000
Physical Address | Size | R/W | Description |
---|