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

From WikiTI
Jump to: navigation, search
(Added divisor latch)
 
(2 intermediate revisions by 2 users not shown)
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;
 
|-
 
|-
|5000
+
|E000
 +
|Read
 +
Write
 +
 
 +
Read Write
 +
|Receive Holding Register (when bit 7 of E00C is 0)
 +
Transmit Holding Register (when bit 7 of E00C is 0)
 +
 
 +
Divisor Latch LSB (when bit 7 of E00C is 1)
 +
|-
 +
|E004
 
|Read Write
 
|Read Write
|FF
+
Read Write
|Interesting values: $0D, $17, $1D, $1E, $FF
+
|Interrupt Enable Register (when bit 7 of E00C is 0)
 +
Divisor Latch MSB (when bit 7 of E00C is 1)
 
|-
 
|-
|5004
+
|E008
|Write
+
|Read
|07
+
Write
|Interesting values: $00, $07
+
|Interupt Status Register
 +
FIFO Control Register
 
|-
 
|-
|5008
+
|E00C
 
|Read Write
 
|Read Write
|3F
+
|Line Control Register
|Interesting values: $02, $04, $06, $0C, $31
+
 
|-
 
|-
|500C
+
|E010
 
|Read Write
 
|Read Write
|43
+
|Modem Control Register
|
+
 
|-
 
|-
|5014
+
|E014
 
|Read
 
|Read
|9F
+
|Line Status Register
|
+
 
|-
 
|-
|5018
+
|E018
 
|Read
 
|Read
|FF
+
|Modem Status Register
|Reads are ignored.
+
 
|-
 
|-
|501C
+
|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)
 
|-
 
|-
 
|}
 
|}

Latest revision as of 11:59, 6 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

Read Write

Receive Holding Register (when bit 7 of E00C is 0)

Transmit Holding Register (when bit 7 of E00C is 0)

Divisor Latch LSB (when bit 7 of E00C is 1)

E004 Read Write

Read Write

Interrupt Enable Register (when bit 7 of E00C is 0)

Divisor Latch MSB (when bit 7 of E00C is 1)

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)