Difference between revisions of "84PCE:Ports:0028"

From WikiTI
Jump to: navigation, search
(Synopsis)
(Fix flash unlock sequence.)
 
(4 intermediate revisions by the same user not shown)
Line 1: Line 1:
[[Category:84PCE:Ports:By_Address|0028 - Unknown]]
+
[[Category:84PCE:Ports:By_Address|0028 - Flash Protection Status]] [[Category:84PCE:Ports:By_Name|Flash Protection Status]]
 
== Synopsis ==
 
== Synopsis ==
 
'''Port Number:''' 0028
 
'''Port Number:''' 0028
  
'''Function:''' Flash locked status
+
'''Function:''' Flash Protection Status
 
+
Flash is unlocked iff bits 2 and 3 of this port are both set.
+
 
+
bit 2: can be modified freely (under the usual protected port constraints)
+
 
+
bit 3: can be cleared by writing a 0 or any time unprivileged code is executed, fetching the flash unlock sequence (F31800F3F3ED7EED56ED3928ED3828CB57) ending in privileged flash is the only way to set it
+
  
 
== Details ==
 
== Details ==
  
This port's function is unknown.
+
Flash is unlocked if both bits 2 and 3 of this port are set.
  
 
=== Bit [0] ===
 
=== Bit [0] ===
 
Latches value written, no apparent effect.
 
Latches value written, no apparent effect.
 +
 +
Used by OS on Python Edition.
  
 
=== Bit [1] ===
 
=== Bit [1] ===
Line 22: Line 18:
  
 
=== Bit [2] ===
 
=== Bit [2] ===
Latches value written, no apparent effect.
+
Can be written freely (under the usual privileged port constraints).
 +
 
 +
=== Bit [3] ===
 +
Can be cleared by writing a 0.
 +
Gets cleared any time unprivileged code is executed or port 6 bit 2 is reset.
 +
Fetching a flash unlock sequence (F31800F3ED7EED56ED3928ED3828CB57) that ends in privileged flash while port 6 bit 2 is set is the only way to set it.
  
=== Bits [7:3] ===
+
=== Bits [7:4] ===
 
Writes do not latch, no apparent effect.
 
Writes do not latch, no apparent effect.

Latest revision as of 16:29, 8 July 2021

Synopsis

Port Number: 0028

Function: Flash Protection Status

Details

Flash is unlocked if both bits 2 and 3 of this port are set.

Bit [0]

Latches value written, no apparent effect.

Used by OS on Python Edition.

Bit [1]

Always 0, writes do not latch.

Bit [2]

Can be written freely (under the usual privileged port constraints).

Bit [3]

Can be cleared by writing a 0. Gets cleared any time unprivileged code is executed or port 6 bit 2 is reset. Fetching a flash unlock sequence (F31800F3ED7EED56ED3928ED3828CB57) that ends in privileged flash while port 6 bit 2 is set is the only way to set it.

Bits [7:4]

Writes do not latch, no apparent effect.