The EVE boot process follows:
- EVEn_RST and EVEn_CPU_RST (n = 1, 2) are asserted for a minimum of 16 cycles.
- Host processor (through PRCM) deasserts eve_rst_n (eve_arp32vcop_rst_n remains asserted). This lets the system access EVE-level memories/MMRs through the OCP target bus while ARP32 remains in reset.
- Host processor initializes EVE state:
- Enable parity generation for EVE memories: clear DMEM, WBUF, IBUF memories to initialize parity state (optional and can be handled at runtime by ARP32).
- Load ARP32 code and data into desired memories:
- Code is typically in EMIF/DDR memory, but can be any valid chip-level memory.
- Data is typically in EVE DMEM, but can also be in EMIF/DDR or other chip level memory
- Initialize MMU TLB and related page tables: A translation must exist for address 0h because ARP32 boot vector is always at 0h (for MMU programming model see Chapter 20, Memory Management Unit ).
- Load VCOP memories: Ownership defaults to non-VCOP so no extra steps are required (optional and can be handled at runtime by ARP32).
- Initialize EDMA, INTC (optional and can be handled at runtime by ARP32).
- Host processor (through PRCM) deasserts eve_arp32vcop_rst_n
- ARP32 initializes EVE state, for steps not handled by host processor:
- Configure EDMA.
- Configure interrupt controller: Enable all error-related interrupts.
- Enable parity on all memories: Scrub memories to initialize parity state.
- Initialize VCOP working buffers.
- ARP32 manages ping-pong processing:
- Page in input buffers through EDMA.
- Assign memory ownership of I/O buffers to VCOP or EDMA/SYS.
- Page out output buffers through EDMA.
- Initialize VCOP program.
- Wait for VCOP completion, EDMA input paging completion, and EDMA output paging completion.