Difference between revisions of "84PCE:Ports:E000"
From WikiTI
(→Synopsis) |
(Added divisor latch) |
||
(3 intermediate revisions by 2 users not shown) | |||
Line 1: | Line 1: | ||
− | [[Category:84PCE:Ports:By_Address|E000 - | + | [[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 5: | Line 5: | ||
'''Memory-mapped Address:''' F90000 | '''Memory-mapped Address:''' F90000 | ||
− | '''Function:''' | + | '''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 [https://www.lammertbies.nl/comm/info/serial-uart], for example) works after multiplying its offsets by 4. | ||
{|- | {|- | ||
|<u>Port</u> | |<u>Port</u> | ||
− | |<u> | + | |<u>Direction</u> |
− | + | ||
|<u>Information</u> | |<u>Information</u> | ||
+ | |- | ||
+ | |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 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) |