Difference between revisions of "Anti-brick Register"

From SpecNext official Wiki
Jump to: navigation, search
(trying to "fix" the description to be more in sync with official manual and latest nextreg.txt (still feels incomplete))
(updated to 78a6ee50)
 
Line 9: Line 9:
 
! Bit !! Effect
 
! Bit !! Effect
 
|-
 
|-
| 7-2 || Reserved
+
| 7 || Reserved
 +
|-
 +
| 6-2 || Core ID
 
|-
 
|-
 
| 1 || Button DRIVE (DivMMC) is pressed
 
| 1 || Button DRIVE (DivMMC) is pressed
Line 24: Line 26:
 
| 6-5 || Reserved, must be 0
 
| 6-5 || Reserved, must be 0
 
|-
 
|-
| 4-0 || Core ID 0-31 (default is 2) (only in config mode)
+
| 4-0 || Core ID 0-31 (default is 2) (only in config mode) *
 
|}
 
|}
 +
  * A write of an out of range core id is ignored; this is the preferred way to determine max id
  
 
Note that in normal running pressing the DivMMC or Multiface button creates an NMI which halts any running program, and the reflashable core must be loaded before any user code is run. This means that unless you are rewriting the entire firmware from scratch this register is probably not useful.
 
Note that in normal running pressing the DivMMC or Multiface button creates an NMI which halts any running program, and the reflashable core must be loaded before any user code is run. This means that unless you are rewriting the entire firmware from scratch this register is probably not useful.

Latest revision as of 11:19, 3 November 2024

Number $10
Readable Yes
Writable Yes
Short Description Used within the Anti-brick system.

Read bit mapped:

Bit Effect
7 Reserved
6-2 Core ID
1 Button DRIVE (DivMMC) is pressed
0 Button M1 (Multiface) is pressed

Write bit mapped:

Bit Effect
7 Start selected core (reboot FPGA)
6-5 Reserved, must be 0
4-0 Core ID 0-31 (default is 2) (only in config mode) *
 * A write of an out of range core id is ignored; this is the preferred way to determine max id

Note that in normal running pressing the DivMMC or Multiface button creates an NMI which halts any running program, and the reflashable core must be loaded before any user code is run. This means that unless you are rewriting the entire firmware from scratch this register is probably not useful.