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

From WikiTI
Jump to: navigation, search
(Created page with "== Synopsis == '''Port Number:''' E000-EFFF '''Memory-mapped Address:''' F90000 '''Function:''' Python thing TBD {|- |<u>Port</u>    |<u>Default</u> &...")
 
(Added divisor latch)
 
(4 intermediate revisions by 2 users not shown)
Line 1: Line 1:
 +
[[Category:84PCE:Ports:By_Address|E000 - ARM Coprocessor]] [[Category:84PCE:Ports:By_Name|ARM Coprocessor]]
 
== Synopsis ==
 
== Synopsis ==
 
'''Port Number:''' E000-EFFF
 
'''Port Number:''' E000-EFFF
Line 4: Line 5:
 
'''Memory-mapped Address:''' F90000
 
'''Memory-mapped Address:''' F90000
  
'''Function:''' Python thing
+
'''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
 +
|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)
 
|-
 
|-
 
|}
 
|}

Latest revision as of 12: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)