Skip to content

Commit a802bca

Browse files
committed
DEM UART: Fix headline hierarchies
And include captions for the labels.
1 parent deb399b commit a802bca

File tree

3 files changed

+77
-68
lines changed

3 files changed

+77
-68
lines changed

src/02_spec/07_modules/dem_uart/index.rst

Lines changed: 4 additions & 65 deletions
Original file line numberDiff line numberDiff line change
@@ -4,76 +4,15 @@ UART Device Emulation Module (DEM-UART)
44
.. figure:: img/osd_dem_uart.*
55
:alt: Device Emulation Module UART
66

7+
High-Level Overview of the Device Emulation Module for UART (DEM-UART)
8+
79
The UART Device Emulation Module connects to the bus of a given CPU on one side, and to the Debug Interconnect on the other.
810
Towards the CPU it behaves like a UART-16550A device, but instead of transmitting information over a UART-Interface it instead passes it to a host PC via the Debug Interconnect.
911

10-
.. _uart-registers:
11-
12-
16550 UART Registers
13-
--------------------
14-
The following UART registers are implemented and accessible via the bus, the address mapping is in accordance with the UART-16550(A) standard as specified in this `Datasheet <http://caro.su/msx/ocm_de1/16550.pdf>`_.
15-
No FIFOs are present in hardware.
16-
No Modem or DMA-Mode related features, registers or interrupts are implemented.
17-
Writing to a register that is not implemented has no effect, reading from such a register will always return ``0x00``.
18-
19-
All registers are 8 bit wide.
20-
21-
.. tabularcolumns:: |p{\dimexpr 0.10\linewidth-2\tabcolsep}|p{\dimexpr 0.10\linewidth-2\tabcolsep}|p{\dimexpr 0.20\linewidth-2\tabcolsep}|p{\dimexpr 0.10\linewidth-2\tabcolsep}|p{\dimexpr 0.50\linewidth-2\tabcolsep}|
22-
.. flat-table:: 16550 UART Registers
23-
:widths: 1 1 2 1 5
24-
:header-rows: 1
25-
26-
* - Address
27-
- Register
28-
- Access Type
29-
- Reset Value
30-
- Description
31-
32-
* - ``0x00``
33-
- ``RBR``
34-
- Read only
35-
- ``0x00``
36-
- Receiver Buffer Register
37-
38-
* - ``0x00``
39-
- ``THR``
40-
- Write only
41-
- ``0x00``
42-
- Transmitter Holding Register
43-
44-
* - ``0x01``
45-
- ``IER``
46-
- Read/Write
47-
- ``0x00``
48-
- Enable(1)/Disable(0) interrupts. See `this <http://caro.su/msx/ocm_de1/16550.pdf>`_ for more details on each interrupt.
49-
50-
* - ``0x02``
51-
- ``IIR``
52-
- Read only
53-
- ``0x01``
54-
- Information which interrupt occurred
55-
56-
* - ``0x02``
57-
- ``FCR``
58-
- Write only
59-
- ``0x00``
60-
- Control behavior of the internal FIFOs. Currently writing to this Register has no effect.
61-
62-
* - ``0x03``
63-
- ``LCR``
64-
- Read/Write
65-
- ``0x00``
66-
- The only bit in this register that has any meaning is ``LCR7`` aka the DLAB, all other bits hold their written value but have no meaning.
67-
68-
* - ``0x05``
69-
- ``LSR``
70-
- Read only
71-
- ``0x60``
72-
- Information about state of the UART. After the UART is reset, ``0x60`` indicates when it is ready to transmit data.
73-
7412
.. toctree::
7513
:maxdepth: 1
7614

77-
systemif
7815
dbgregisters
7916
datainterface
17+
uartspec
18+
systemif

src/02_spec/07_modules/dem_uart/systemif.rst

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -23,9 +23,14 @@ We specify a Wishbone wrapper interface below.
2323
.. figure:: img/bus_write_diagram.*
2424
:alt: A typical write cycle
2525

26+
A typical write cycle
27+
28+
2629
.. figure:: img/bus_read_diagram.*
2730
:alt: A typical read cycle
2831

32+
A typical read cycle
33+
2934
A new request is made by asserting ``bus_req``, unless ``bus_req`` is asserted, no other signal is valid.
3035
``bus_write`` indicates whether it is a read (0) or a write (1) request.
3136
``bus_addr`` may be any of the values documented under :ref:`uart-registers`.
@@ -37,8 +42,9 @@ Finally ``bus_ack`` is asserted to confirm the request and end the cycle.
3742
``bus_rdata`` is only valid when ``bus_ack`` is asserted and ``bus_write`` is negated.
3843

3944

40-
Wishbone Bus
41-
------------
45+
Wishbone Bus Interface
46+
^^^^^^^^^^^^^^^^^^^^^^
47+
4248
If a wishbone interface is present, it should wrap around the generic bus described above and take
4349
care of translating all the signals.
4450
The following signals MUST be present on a compatible WISHBONE bus.
@@ -63,4 +69,4 @@ The following signals MUST be present on a compatible WISHBONE bus.
6369
| ``wb_dat_o`` | 32 | DEM->CPU | Data that was read from the register |
6470
+-----------------+-------------+---------------+-------------------------------------------------+
6571

66-
For more information see the `WISHBONE specification <https://cdn.opencores.org/downloads/wbspec_b3.pdf>`_
72+
For more information see the `Wishbone B3 specification <https://cdn.opencores.org/downloads/wbspec_b3.pdf>`_
Lines changed: 64 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,64 @@
1+
.. _uart-registers:
2+
3+
16550 UART Registers
4+
--------------------
5+
6+
The following UART registers are implemented and accessible via the bus, the address mapping is in accordance with the UART-16550(A) standard as specified in this `Datasheet <http://caro.su/msx/ocm_de1/16550.pdf>`_.
7+
No FIFOs are present in hardware.
8+
No Modem or DMA-Mode related features, registers or interrupts are implemented.
9+
Writing to a register that is not implemented has no effect, reading from such a register will always return ``0x00``.
10+
11+
All registers are 8 bit wide.
12+
13+
.. tabularcolumns:: |p{\dimexpr 0.10\linewidth-2\tabcolsep}|p{\dimexpr 0.10\linewidth-2\tabcolsep}|p{\dimexpr 0.20\linewidth-2\tabcolsep}|p{\dimexpr 0.10\linewidth-2\tabcolsep}|p{\dimexpr 0.50\linewidth-2\tabcolsep}|
14+
.. flat-table:: 16550 UART Registers
15+
:widths: 1 1 2 1 5
16+
:header-rows: 1
17+
18+
* - Address
19+
- Register
20+
- Access Type
21+
- Reset Value
22+
- Description
23+
24+
* - ``0x00``
25+
- ``RBR``
26+
- Read only
27+
- ``0x00``
28+
- Receiver Buffer Register
29+
30+
* - ``0x00``
31+
- ``THR``
32+
- Write only
33+
- ``0x00``
34+
- Transmitter Holding Register
35+
36+
* - ``0x01``
37+
- ``IER``
38+
- Read/Write
39+
- ``0x00``
40+
- Enable(1)/Disable(0) interrupts. See `this <http://caro.su/msx/ocm_de1/16550.pdf>`_ for more details on each interrupt.
41+
42+
* - ``0x02``
43+
- ``IIR``
44+
- Read only
45+
- ``0x01``
46+
- Information which interrupt occurred
47+
48+
* - ``0x02``
49+
- ``FCR``
50+
- Write only
51+
- ``0x00``
52+
- Control behavior of the internal FIFOs. Currently writing to this Register has no effect.
53+
54+
* - ``0x03``
55+
- ``LCR``
56+
- Read/Write
57+
- ``0x00``
58+
- The only bit in this register that has any meaning is ``LCR7`` aka the DLAB, all other bits hold their written value but have no meaning.
59+
60+
* - ``0x05``
61+
- ``LSR``
62+
- Read only
63+
- ``0x60``
64+
- Information about state of the UART. After the UART is reset, ``0x60`` indicates when it is ready to transmit data.

0 commit comments

Comments
 (0)