Files
retroSoC/docs/ip/extensions.md
T
maksyuki d164a562ad feate: add fabric monitor and enhance AXI4 data crossbar tests
- Introduced  and its corresponding testbench  to monitor fabric interactions.
- Updated  to include additional checks for ACL and QoS, enhancing the test coverage.
- Modified  to include the new fabric monitor file.
- Created a new test file  to validate the functionality of the fabric monitor.
- Updated  to integrate the fabric monitor interface.
- Adjusted  to reflect changes in the AXI4 data crossbar test output.
- Enhanced  to ensure proper generation of connections for the fabric monitor.
- Updated user extension tests to account for new local SRAM and stream definitions.
2026-08-31 10:02:19 +08:00

3.2 KiB

Product Extension Slots

Mini product mode replaces runtime IPSEL multiplexing with two fixed APB4 control windows. user_extensions.json schema 3 is the slot/IRQ capability source of truth; generate_user_extensions.py emits RTL and C counts without generating register definitions.

Slot Kind Base ID IRQ Capability
0 EXT-L 0x20008000 0x4558544C (EXTL) 27 APB4, one IRQ
1 EXT-H 0x20009000 0x45585448 (EXTH) 28 APB4, AXI64 master, one IRQ

Register ABI

Offset Name Access Meaning
0x000 IDENTIFICATION RO Fixed EXT-L/EXT-H ID
0x004 VERSION RO ABI version 0x00010000
0x008 CAPABILITY RO IRQ count and data-master/stream/local-SRAM features
0x00C OWNER RW LP/HP owner and write-once owner lock
0x010 COMMAND RW quiesce, reset, and clear-fault controls
0x014 STATUS RO present, idle, quiesced, reset, fault
0x018-0x024 READ/WRITE_BASE/LIMIT EXT-H RW inclusive data-master ACL ranges
0x028 TIMEOUT EXT-H RW nonzero transaction timeout budget
0x02C FAULT RO sticky fault state
0x030 FAULT_ADDRESS RO first rejected control address
0x034 REQUEST_COUNT RO saturating accepted APB request count
0x100 DMA_SOURCE EXT-H RW aligned memory-copy source
0x104 DMA_DESTINATION EXT-H RW aligned memory-copy destination
0x108 DMA_LENGTH EXT-H RW nonzero byte count
0x10C DMA_COMMAND EXT-H WO start or abort
0x110 DMA_STATUS EXT-H RO busy, done pulse, and fault

EXT-L rejects ACL and timeout writes. Invalid or read-only writes complete with APB PSLVERR, set the slot fault, and record the first offending address. The reference EXT-H master performs sequential 64-bit memory copies. It supports a byte-masked final beat and reports AXI response errors and no-progress timeouts. Programmed ranges are enforced by the data-plane M7 firewall; M6 and control-plane addresses remain denied in hardware.

For EXT-H, the central Resource Controller owner is the interrupt-routing authority. LP ownership delivers the slot event on LP IRQ 28; HP ownership delivers it on HP PLIC source 3, never both. The local OWNER register remains an ABI-compatible mirror, and rs_extension_set_owner() updates both through the Resource HAL. Quiesce or reset blocks new EXT-H AXI addresses and STATUS does not report idle until the DMA and address gate have drained.

<retrosoc/hal/extension.h> provides discovery, status, ownership, lifecycle, and EXT-H ACL operations. Register constants remain independently handwritten in RTL and software; parity is verified without a register generator.

The legacy APB4_USER_IP window remains read-only in product mode and reports the product extension capability. Its selector APIs return RS_ENOTSUP. Legacy selectable designs and their private register ABIs remain in the MPW manifest and profile.

Product capability bits are truthful: neither slot advertises a local SRAM or AXI4-Stream endpoint, and EXT-L does not advertise a data master. These are reserved extension ABI directions, not implemented product interfaces.