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

From WikiTI
Jump to: navigation, search
(Synopsis)
(Updated based on FTUART010)
Line 5: Line 5:
 
'''Memory-mapped Address:''' F90000
 
'''Memory-mapped Address:''' F90000
  
'''Function:''' ARM Coprocessor?
+
'''Function:''' ARM Coprocessor
 
+
TBD
+
  
 +
This appears to be an FTUART010 (which is 16550A-compatible), & is connected to the ARM coprocessor on Python Edition. The 16550 register layout (see [https://www.lammertbies.nl/comm/info/serial-uart], for example) works after multiplying its offsets by 4.
  
 
{|-
 
{|-
 
|<u>Port</u>&nbsp;&nbsp;&nbsp;
 
|<u>Port</u>&nbsp;&nbsp;&nbsp;
|<u>Default</u>&nbsp;&nbsp;&nbsp;
+
|<u>Direction</u>&nbsp;&nbsp;&nbsp;
|<u>Bits</u>&nbsp;&nbsp;&nbsp;
+
 
|<u>Information</u>&nbsp;&nbsp;&nbsp;
 
|<u>Information</u>&nbsp;&nbsp;&nbsp;
 
|-
 
|-
 
|E000
 
|E000
|Read Write
+
|Read
|FF
+
Write
|Interesting values: $0D, $17, $1D, $1E, $FF
+
|Receive Holding Register
 +
Transmit Holding Register
 
|-
 
|-
 
|E004
 
|E004
|Write
+
|Read Write
|07
+
|Interrupt Enable Register
|Interesting values: $00, $07
+
 
|-
 
|-
 
|E008
 
|E008
|Read Write
+
|Read
|3F
+
Write
|Interesting values: $02, $04, $06, $0C, $31
+
|Interupt Status Register
 +
FIFO Control Register
 
|-
 
|-
 
|E00C
 
|E00C
 
|Read Write
 
|Read Write
|43
+
|Line Control Register
|
+
|-
 +
|E010
 +
|Read Write
 +
|Modem Control Register
 
|-
 
|-
 
|E014
 
|E014
 
|Read
 
|Read
|9F
+
|Line Status Register
|
+
 
|-
 
|-
 
|E018
 
|E018
 
|Read
 
|Read
|FF
+
|Modem Status Register
|Reads are ignored.
+
 
|-
 
|-
 
|E01C
 
|E01C
|Write
+
|Read Write
|FF
+
|Scratchpad Register
|Interesting values: $00
+
|-
 +
|E068
 +
|Read
 +
|01? (not from 16550)
 +
|-
 +
|E06C
 +
|Read
 +
|01? (not from 16550)
 +
|-
 +
|E070
 +
|Read
 +
|10? (not from 16550)
 
|-
 
|-
 
|}
 
|}

Revision as of 16:35, 5 May 2021

Synopsis

Port Number: E000-EFFF

Memory-mapped Address: F90000

Function: ARM Coprocessor

This appears to be an FTUART010 (which is 16550A-compatible), & is connected to the ARM coprocessor on Python Edition. The 16550 register layout (see [1], for example) works after multiplying its offsets by 4.

Port    Direction    Information   
E000 Read

Write

Receive Holding Register

Transmit Holding Register

E004 Read Write Interrupt Enable Register
E008 Read

Write

Interupt Status Register

FIFO Control Register

E00C Read Write Line Control Register
E010 Read Write Modem Control Register
E014 Read Line Status Register
E018 Read Modem Status Register
E01C Read Write Scratchpad Register
E068 Read 01? (not from 16550)
E06C Read 01? (not from 16550)
E070 Read 10? (not from 16550)