mirror of
https://github.com/Polprzewodnikowy/SummerCart64.git
synced 2024-11-25 07:06:52 +01:00
[SC64][FW] Refined debug communication protocol proposal
This commit is contained in:
parent
89d4c1f95b
commit
0ad2350233
16
fw/README.md
16
fw/README.md
@ -12,8 +12,8 @@ A FPGA firmware written in Verilog for SummerCart64.
|
|||||||
- **`0x1C00 0000 - 0x1C00 0000`** - [R/W] *Flash Registers*
|
- **`0x1C00 0000 - 0x1C00 0000`** - [R/W] *Flash Registers*
|
||||||
- **`0x1D00 0000 - 0x1D00 07FF`** - [R/W] *EEPROM Memory*
|
- **`0x1D00 0000 - 0x1D00 07FF`** - [R/W] *EEPROM Memory*
|
||||||
- **`0x1D10 0000 - 0x1D10 03FF`** - [R] *Debug RX FIFO* (unimplemented)
|
- **`0x1D10 0000 - 0x1D10 03FF`** - [R] *Debug RX FIFO* (unimplemented)
|
||||||
- **`0x1D10 0800 - 0x1D10 0FFF`** - [W] *Debug TX FIFO* (unimplemented)
|
- **`0x1D10 0800 - 0x1D10 0BFF`** - [W] *Debug TX FIFO* (unimplemented)
|
||||||
- **`0x1E00 0000 - 0x1E00 0010`** - [R/W] *Cart Registers*
|
- **`0x1E00 0000 - 0x1E00 0014`** - [R/W] *Cart Registers*
|
||||||
|
|
||||||
## Memory spaces
|
## Memory spaces
|
||||||
|
|
||||||
@ -132,11 +132,13 @@ This register is used for PC -> bootloader communication.
|
|||||||
|
|
||||||
#### Debug single byte RX FIFO access (**DEBUG_RX**) (unimplemented)
|
#### Debug single byte RX FIFO access (**DEBUG_RX**) (unimplemented)
|
||||||
|
|
||||||
Address offset: **`0x08`**\
|
Address offset: **`0x08`** and **`0x0C`**\
|
||||||
Access: Read only, 4 byte (32 bit) aligned
|
Access: Read only, 4 byte (32 bit) aligned
|
||||||
|
|
||||||
This register grabs single byte from debug RX FIFO.
|
This register grabs single byte from debug RX FIFO.
|
||||||
|
|
||||||
|
Due to how PI interface read prefetch is implemented this register exists on 2 addresses but it's necessary to do only single read on address offset **`0x08`**. Never read from address **`0x0C`** directly as it will not perform read action properly (read pointer is not incremented).
|
||||||
|
|
||||||
31:8 | 7:0
|
31:8 | 7:0
|
||||||
-------|------------
|
-------|------------
|
||||||
0 | RX_DATA
|
0 | RX_DATA
|
||||||
@ -147,7 +149,7 @@ This register grabs single byte from debug RX FIFO.
|
|||||||
|
|
||||||
#### Debug single byte TX FIFO access (**DEBUG_TX**) (unimplemented)
|
#### Debug single byte TX FIFO access (**DEBUG_TX**) (unimplemented)
|
||||||
|
|
||||||
Address offset: **`0x0C`**\
|
Address offset: **`0x10`**\
|
||||||
Access: Write only, 4 byte (32 bit) aligned
|
Access: Write only, 4 byte (32 bit) aligned
|
||||||
|
|
||||||
This register puts single byte on debug TX FIFO.
|
This register puts single byte on debug TX FIFO.
|
||||||
@ -162,7 +164,7 @@ This register puts single byte on debug TX FIFO.
|
|||||||
|
|
||||||
#### Debug status register (**DEBUG_SR**) (unimplemented)
|
#### Debug status register (**DEBUG_SR**) (unimplemented)
|
||||||
|
|
||||||
Address offset: **`0x10`**\
|
Address offset: **`0x14`**\
|
||||||
Access: Read or write, 4 byte (32 bit) aligned
|
Access: Read or write, 4 byte (32 bit) aligned
|
||||||
|
|
||||||
This register is used for reading status and flushing debug RX/TX FIFOs.
|
This register is used for reading status and flushing debug RX/TX FIFOs.
|
||||||
@ -298,7 +300,7 @@ Example - set address increment and disable N64:
|
|||||||
|
|
||||||
*x = don't care*
|
*x = don't care*
|
||||||
|
|
||||||
#### Address (**0x20**)
|
#### Set address (**0x20**)
|
||||||
|
|
||||||
Sets starting bus address.
|
Sets starting bus address.
|
||||||
|
|
||||||
@ -477,7 +479,7 @@ Example - fill debug TX FIFO with 4 bytes **`0xDE`**, **`0xAD`**, **`0xBE`**, **
|
|||||||
|
|
||||||
*x = don't care*
|
*x = don't care*
|
||||||
|
|
||||||
#### Read from RX FIFO (**0x80**) (unimplemented)
|
#### Read from debug RX FIFO (**0x80**) (unimplemented)
|
||||||
|
|
||||||
Reads bytes from debug RX FIFO. Before reading it's necessary to check debug RX FIFO availability. Reading empty FIFO won't break anything but it's pointless.
|
Reads bytes from debug RX FIFO. Before reading it's necessary to check debug RX FIFO availability. Reading empty FIFO won't break anything but it's pointless.
|
||||||
Command bytes:
|
Command bytes:
|
||||||
|
Loading…
Reference in New Issue
Block a user