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

From WikiTI
Jump to: navigation, search
(Added need for flash unlock on M+)
 
(7 intermediate revisions by 2 users not shown)
Line 71: Line 71:
 
== Serial Controller ==
 
== Serial Controller ==
  
Only used in the Python Edition. For more information see the [[84PCE:OS:Serial_Flash_Commands|serial commands]].
+
Only used in HW revisions M and later (NB: all python edition calcs are M+). Flash must be unlocked in order to write to these ports, or the write will be ignored.
 +
 
 +
For more information see the [[84PCE:OS:Serial_Flash_Commands|serial commands]].
  
 
{|-
 
{|-
Line 105: Line 107:
 
|-
 
|-
 
|1805
 
|1805
|000000
+
|00
|010000
+
|00
|Unknown, something to do with the current flash command, always seems to be $0100.
+
|Unknown, something to do with the current flash command, always seems to be $00.
 +
|-
 +
|1806
 +
|00
 +
|07
 +
|Number of dummy bytes after command byte.
 +
|-
 +
|1807
 +
|00
 +
|11
 +
|Unknown, something to do with the current flash command. Bit 0 is always set and bit 4 is rarely set.
 
|-
 
|-
 
|1808
 
|1808
 
|00000000
 
|00000000
|000001FF
+
|FFFFFFFF
 
|Number of bytes to transfer through port $1900 with the current flash command.
 
|Number of bytes to transfer through port $1900 with the current flash command.
 
|-
 
|-
 
|180C
 
|180C
 
|00
 
|00
|46
+
|C6
|Bit 1 might be direction (0 = in, 1 = out). Bit 6 might be quad-spi mode. Bits 2 and others unknown.
+
|Bit 1 might be direction (0 = in, 1 = out). Other bits unknown.
 
|-
 
|-
 
|180D
 
|180D
 
|0000
 
|0000
|0000
+
|B000
|Unknown, possibly something to do with the current flash command.
+
|Unknown, something to do with the current flash command, usually $0000, rarely $B000.
 
|-
 
|-
 
|180F
 
|180F
Line 131: Line 143:
 
|1818
 
|1818
 
|00
 
|00
|02
+
|03
|Bit 1 set when command data is available to be read from port 1900.
+
|Bit 0/1 is set when bytes can be written/read through port $1900.
 
|-
 
|-
 
|1824
 
|1824
Line 138: Line 150:
 
|01
 
|01
 
|Bit 0 set when the command finishes and the busy bit is cleared, write 1 to clear.
 
|Bit 0 set when the command finishes and the busy bit is cleared, write 1 to clear.
 +
|-
 +
|182C-182F
 +
|FFC00000
 +
|FFFFFFFF
 +
|Address mask for memory-mapped access to flash.
 +
|-
 +
|1830
 +
|00000000
 +
|FFFFFFFF
 +
|Unknown.
 
|-
 
|-
 
|1900
 
|1900

Latest revision as of 20:38, 21 January 2022

Synopsis

Port Number: 1000-1FFF

Memory-mapped Address: E00000

Function: Flash Controller

Parallel Controller

For more information see the parallel commands.

Port    Default    Bits    Information   
1000 01 01 Reset bit 0 to crash. Seems to reduce minimum flash wait states to 2.
1001 00 ?? Freeze if write value greater than 3F
1002 06 0F Mapped flash chip address space size.
1003 00 FF Latches value written
1004 00 FF Latches value written
1005 00 FF Added flash wait states over 5.
1006 00 FF Latches value written
1007 FF FF Latches value written
1008 00 01 Latches value written
1009 00 FF Ports 1009-100F latch value written

Serial Controller

Only used in HW revisions M and later (NB: all python edition calcs are M+). Flash must be unlocked in order to write to these ports, or the write will be ignored.

For more information see the serial commands.

Port    Default    Bits    Information   
1005 00 FF Probably ignored for compatibility with the parallel interface.
1010 00 01 Latches value written
1011 00 FF Ports 1011-1017 latch value written
1800 00000000 FFFFFFFF Extra data to send after command byte (usually used for a flash address).
1804 00 07 How many bytes from ports $1800-$1803 to send after the command byte.
1805 00 00 Unknown, something to do with the current flash command, always seems to be $00.
1806 00 07 Number of dummy bytes after command byte.
1807 00 11 Unknown, something to do with the current flash command. Bit 0 is always set and bit 4 is rarely set.
1808 00000000 FFFFFFFF Number of bytes to transfer through port $1900 with the current flash command.
180C 00 C6 Bit 1 might be direction (0 = in, 1 = out). Other bits unknown.
180D 0000 B000 Unknown, something to do with the current flash command, usually $0000, rarely $B000.
180F 00 FF Current command byte.
1818 00 03 Bit 0/1 is set when bytes can be written/read through port $1900.
1824 00 01 Bit 0 set when the command finishes and the busy bit is cleared, write 1 to clear.
182C-182F FFC00000 FFFFFFFF Address mask for memory-mapped access to flash.
1830 00000000 FFFFFFFF Unknown.
1900 00 FF Read or write command data.