/* * Command definitions * Value Name Description * 0 LoadMem Load memory with binary data. * 1 LoadCore Load a set of core registers. * 2 LoadMMReg Load a set of memory mapped registers. * 3 StartThreads Set each thread PC and SP, then enable threads. * 4 ZeroMem Zeros a memory region. * 5 Config Perform a configuration command.
*/ #define ROGUE_META_LDR_CMD_MASK (0x000FU)
/* * Config Command definitions * Value Name Description * 0 Pause Pause for x times 100 instructions * 1 Read Read a value from register - No value return needed. * Utilises effects of issuing reads to certain registers * 2 Write Write to mem location * 3 MemSet Set mem to value * 4 MemCheck check mem for specific value.
*/ #define ROGUE_META_LDR_CFG_PAUSE (0x0000) #define ROGUE_META_LDR_CFG_READ (0x0001) #define ROGUE_META_LDR_CFG_WRITE (0x0002) #define ROGUE_META_LDR_CFG_MEMSET (0x0003) #define ROGUE_META_LDR_CFG_MEMCHECK (0x0004)
/* ****************************************************************************** * ROGUE FW segmented MMU definitions ******************************************************************************
*/ /* All threads can access the segment. */ #define ROGUE_FW_SEGMMU_ALLTHRS (0xf << 8U) /* Writable. */ #define ROGUE_FW_SEGMMU_WRITEABLE (0x1U << 1U) /* All threads can access and writable. */ #define ROGUE_FW_SEGMMU_ALLTHRS_WRITEABLE \
(ROGUE_FW_SEGMMU_ALLTHRS | ROGUE_FW_SEGMMU_WRITEABLE)
/* Direct map region 10 used for mapping GPU memory - max 8MB. */ #define ROGUE_FW_SEGMMU_DMAP_GPU_ID (10U) #define ROGUE_FW_SEGMMU_DMAP_GPU_ADDR_START (0x07000000U) #define ROGUE_FW_SEGMMU_DMAP_GPU_MAX_SIZE (0x00800000U)
/* * SLC caching strategy in S7 and volcanic is emitted through the segment MMU. * All the segments configured through the macro ROGUE_FW_SEGMMU_OUTADDR_TOP are * CACHED in the SLC. * The interface has been kept the same to simplify the code changes. * The bifdm argument is ignored (no longer relevant) in S7 and volcanic.
*/ #define ROGUE_FW_SEGMMU_OUTADDR_TOP_VIVT_SLC(pers, slc_policy, mmu_ctx) \
((((u64)((pers) & 0x3)) << 52) | (((u64)((mmu_ctx) & 0xFF)) << 44) | \
(((u64)((slc_policy) & 0x1)) << 40)) #define ROGUE_FW_SEGMMU_OUTADDR_TOP_VIVT_SLC_CACHED(mmu_ctx) \
ROGUE_FW_SEGMMU_OUTADDR_TOP_VIVT_SLC(0x3, 0x0, mmu_ctx) #define ROGUE_FW_SEGMMU_OUTADDR_TOP_VIVT_SLC_UNCACHED(mmu_ctx) \
ROGUE_FW_SEGMMU_OUTADDR_TOP_VIVT_SLC(0x0, 0x1, mmu_ctx)
/* * To configure the Page Catalog and BIF-DM fed into the BIF for Garten * accesses through this segment.
*/ #define ROGUE_FW_SEGMMU_OUTADDR_TOP_SLC(pc, bifdm) \
(((u64)((u64)(pc) & 0xFU) << 44U) | ((u64)((u64)(bifdm) & 0xFU) << 40U))
#define ROGUE_FW_SEGMMU_META_BIFDM_ID (0x7U)
/* META segments have 4kB minimum size. */ #define ROGUE_FW_SEGMMU_ALIGN (0x1000U)
/* * The following defines must be recalculated if the Meta MMU segments used * to access Host-FW data are changed * Current combinations are: * - SLC uncached, META cached, FW base address 0x70000000 * - SLC uncached, META uncached, FW base address 0xF0000000 * - SLC cached, META cached, FW base address 0x10000000 * - SLC cached, META uncached, FW base address 0x90000000
*/ #define ROGUE_FW_SEGMMU_DATA_BASE_ADDRESS (0x10000000U) #define ROGUE_FW_SEGMMU_DATA_META_CACHED (0x0U) #define ROGUE_FW_SEGMMU_DATA_META_UNCACHED (META_MEM_GLOBAL_RANGE_BIT) #define ROGUE_FW_SEGMMU_DATA_META_CACHE_MASK (META_MEM_GLOBAL_RANGE_BIT) /* * For non-VIVT SLCs the cacheability of the FW data in the SLC is selected in * the PTEs for the FW data, not in the Meta Segment MMU, which means these * defines have no real effect in those cases.
*/ #define ROGUE_FW_SEGMMU_DATA_VIVT_SLC_CACHED (0x0U) #define ROGUE_FW_SEGMMU_DATA_VIVT_SLC_UNCACHED (0x60000000U) #define ROGUE_FW_SEGMMU_DATA_VIVT_SLC_CACHE_MASK (0x60000000U)
/* ****************************************************************************** * ROGUE META Core memory ******************************************************************************
*/ /* Code and data both map to the same physical memory. */ #define ROGUE_META_COREMEM_CODE_ADDR (0x80000000U) #define ROGUE_META_COREMEM_DATA_ADDR (0x82000000U) #define ROGUE_META_COREMEM_OFFSET_MASK (0x01ffffffU)
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.