Peripheral Subsystem

SEP reaches the serial-I/O peripherals in SMC over a dedicated AXI4 port, sep_ext_to_smc_axi_req_o, split off by the route demux in sep_system_peripherals and wired to SMC’s sep_axi_in. It reaches every SMC local target without passing the SEP outbound filter. SEP also has a local SPI host for boot-flash access. The SPI chapter describes that controller; SMC documents the shared peripherals.

SEP boot uses configuration straps, which it reads from the SMC strap registers. For their role in selecting boot options, see Configuration Straps and BL0 Boot Flow.

Figure 1 shows the connection from SEP to peripherals shared with SMC.

SEP local SPI host path and the dedicated AXI4 port from the SEP route demux through the SMU to the SMC input fabric, local crossbar and peripheral crossbar
Figure 1. SEP peripheral extension port

The figure reads from the SEP local crossbar outwards. The SPI host sits behind the sep_io target, which downsizes the 64-bit AXI4 request to 32 bits and converts it to AXI-Lite; the quad SPI signals leave for the SPI pads. The local crossbar sends only the SPI host register extent to sep_io and answers the rest of its aperture with DECERR on reads and writes. The error responder in sep_io answers only the beats of a burst that run past the extent. Requests in the SMC aperture take the route demux of sep_system_peripherals (see SEP output fabric) onto the SMC port, which the SMU wires directly to the SMC’s sep_axi_in port with no crossbar and no clock-domain crossing. The SMC flow is drawn right to left. The SMC input fabric passes addresses in the SMC local or global window, truncated to 32 bits, and answers others with DECERR. The SMC local fabric rebases them onto the SMC local base, and the sep_in initiator of the SMC local crossbar reaches every target, including the peripheral port, which is converted to 32-bit AXI-Lite for the SMC peripheral crossbar. The UART, I2C and AVSBus controllers sit behind clock-domain crossings into the peripheral clock.