/* SPDX-License-Identifier: GPL-2.0 */
/*
* Imagination E5010 JPEG Encoder driver.
*
* Copyright (C) 2023 Texas Instruments Incorporated - https://www.ti.com/
*
* Author: David Huang <d-huang@ti.com>
* Author: Devarsh Thakkar <devarsht@ti.com>
*/
#ifndef _E5010_MMU_REGS_H
#define _E5010_MMU_REGS_H
#define MMU_MMU_DIR_BASE_ADDR_OFFSET (
0x0020)
#define MMU_MMU_DIR_BASE_ADDR_STRIDE (
4)
#define MMU_MMU_DIR_BASE_ADDR_NO_ENTRIES (
4)
#define MMU_MMU_DIR_BASE_ADDR_MMU_DIR_BASE_ADDR_MASK (
0xFFFFFFFF)
#define MMU_MMU_DIR_BASE_ADDR_MMU_DIR_BASE_ADDR_SHIFT (
0)
#define MMU_MMU_TILE_CFG_OFFSET (
0x0040)
#define MMU_MMU_TILE_CFG_STRIDE (
4)
#define MMU_MMU_TILE_CFG_NO_ENTRIES (
4)
#define MMU_MMU_TILE_CFG_TILE_128INTERLEAVE_MASK (
0x00000010)
#define MMU_MMU_TILE_CFG_TILE_128INTERLEAVE_SHIFT (
4)
#define MMU_MMU_TILE_CFG_TILE_ENABLE_MASK (
0x00000008)
#define MMU_MMU_TILE_CFG_TILE_ENABLE_SHIFT (
3)
#define MMU_MMU_TILE_CFG_TILE_STRIDE_MASK (
0x00000007)
#define MMU_MMU_TILE_CFG_TILE_STRIDE_SHIFT (
0)
#define MMU_MMU_TILE_MIN_ADDR_OFFSET (
0x0050)
#define MMU_MMU_TILE_MIN_ADDR_STRIDE (
4)
#define MMU_MMU_TILE_MIN_ADDR_NO_ENTRIES (
4)
#define MMU_MMU_TILE_MIN_ADDR_TILE_MIN_ADDR_MASK (
0xFFFFFFFF)
#define MMU_MMU_TILE_MIN_ADDR_TILE_MIN_ADDR_SHIFT (
0)
#define MMU_MMU_TILE_MAX_ADDR_OFFSET (
0x0060)
#define MMU_MMU_TILE_MAX_ADDR_STRIDE (
4)
#define MMU_MMU_TILE_MAX_ADDR_NO_ENTRIES (
4)
#define MMU_MMU_TILE_MAX_ADDR_TILE_MAX_ADDR_MASK (
0xFFFFFFFF)
#define MMU_MMU_TILE_MAX_ADDR_TILE_MAX_ADDR_SHIFT (
0)
#define MMU_MMU_CONTROL0_OFFSET (
0x0000)
#define MMU_MMU_CONTROL0_MMU_TILING_SCHEME_MASK (
0x00000001)
#define MMU_MMU_CONTROL0_MMU_TILING_SCHEME_SHIFT (
0)
#define MMU_MMU_CONTROL0_MMU_CACHE_POLICY_MASK (
0x00000100)
#define MMU_MMU_CONTROL0_MMU_CACHE_POLICY_SHIFT (
8)
#define MMU_MMU_CONTROL0_FORCE_CACHE_POLICY_BYPASS_MASK (
0x00000200)
#define MMU_MMU_CONTROL0_FORCE_CACHE_POLICY_BYPASS_SHIFT (
9)
#define MMU_MMU_CONTROL0_STALL_ON_PROTOCOL_FAULT_MASK (
0x00001000)
#define MMU_MMU_CONTROL0_STALL_ON_PROTOCOL_FAULT_SHIFT (
12)
#define MMU_MMU_CONTROL1_OFFSET (
0x0008)
#define MMU_MMU_CONTROL1_MMU_FLUSH_MASK (
0x00000008)
#define MMU_MMU_CONTROL1_MMU_FLUSH_SHIFT (
3)
#define MMU_MMU_CONTROL1_MMU_FLUSH_NO_REPS (
4)
#define MMU_MMU_CONTROL1_MMU_FLUSH_SIZE (
1)
#define MMU_MMU_CONTROL1_MMU_INVALDC_MASK (
0x00000800)
#define MMU_MMU_CONTROL1_MMU_INVALDC_SHIFT (
11)
#define MMU_MMU_CONTROL1_MMU_INVALDC_NO_REPS (
4)
#define MMU_MMU_CONTROL1_MMU_INVALDC_SIZE (
1)
#define MMU_MMU_CONTROL1_MMU_FAULT_CLEAR_MASK (
0x00010000)
#define MMU_MMU_CONTROL1_MMU_FAULT_CLEAR_SHIFT (
16)
#define MMU_MMU_CONTROL1_PROTOCOL_FAULT_CLEAR_MASK (
0x00100000)
#define MMU_MMU_CONTROL1_PROTOCOL_FAULT_CLEAR_SHIFT (
20)
#define MMU_MMU_CONTROL1_MMU_PAUSE_SET_MASK (
0x01000000)
#define MMU_MMU_CONTROL1_MMU_PAUSE_SET_SHIFT (
24)
#define MMU_MMU_CONTROL1_MMU_PAUSE_CLEAR_MASK (
0x02000000)
#define MMU_MMU_CONTROL1_MMU_PAUSE_CLEAR_SHIFT (
25)
#define MMU_MMU_CONTROL1_MMU_SOFT_RESET_MASK (
0x10000000)
#define MMU_MMU_CONTROL1_MMU_SOFT_RESET_SHIFT (
28)
#define MMU_MMU_BANK_INDEX_OFFSET (
0x0010)
#define MMU_MMU_BANK_INDEX_MMU_BANK_INDEX_MASK (
0xC0000000)
#define MMU_MMU_BANK_INDEX_MMU_BANK_INDEX_SHIFT (
30)
#define MMU_MMU_BANK_INDEX_MMU_BANK_INDEX_NO_REPS (
16)
#define MMU_MMU_BANK_INDEX_MMU_BANK_INDEX_SIZE (
2)
#define MMU_REQUEST_PRIORITY_ENABLE_OFFSET (
0x0018)
#define MMU_REQUEST_PRIORITY_ENABLE_CMD_PRIORITY_ENABLE_MASK (
0x00008000)
#define MMU_REQUEST_PRIORITY_ENABLE_CMD_PRIORITY_ENABLE_SHIFT (
15)
#define MMU_REQUEST_PRIORITY_ENABLE_CMD_PRIORITY_ENABLE_NO_REPS (
16)
#define MMU_REQUEST_PRIORITY_ENABLE_CMD_PRIORITY_ENABLE_SIZE (
1)
#define MMU_REQUEST_PRIORITY_ENABLE_CMD_MMU_PRIORITY_ENABLE_MASK (
0x00010000)
#define MMU_REQUEST_PRIORITY_ENABLE_CMD_MMU_PRIORITY_ENABLE_SHIFT (
16)
#define MMU_REQUEST_LIMITED_THROUGHPUT_OFFSET (
0x001C)
#define MMU_REQUEST_LIMITED_THROUGHPUT_LIMITED_WORDS_MASK (
0x000003FF)
#define MMU_REQUEST_LIMITED_THROUGHPUT_LIMITED_WORDS_SHIFT (
0)
#define MMU_REQUEST_LIMITED_THROUGHPUT_REQUEST_GAP_MASK (
0x0FFF0000)
#define MMU_REQUEST_LIMITED_THROUGHPUT_REQUEST_GAP_SHIFT (
16)
#define MMU_MMU_ADDRESS_CONTROL_OFFSET (
0x0070)
#define MMU_MMU_ADDRESS_CONTROL_TRUSTED (IMG_TRUE)
#define MMU_MMU_ADDRESS_CONTROL_MMU_BYPASS_MASK (
0x00000001)
#define MMU_MMU_ADDRESS_CONTROL_MMU_BYPASS_SHIFT (
0)
#define MMU_MMU_ADDRESS_CONTROL_MMU_ENABLE_EXT_ADDRESSING_MASK (
0x00000010)
#define MMU_MMU_ADDRESS_CONTROL_MMU_ENABLE_EXT_ADDRESSING_SHIFT (
4)
#define MMU_MMU_ADDRESS_CONTROL_UPPER_ADDRESS_FIXED_MASK (
0x00FF0000)
#define MMU_MMU_ADDRESS_CONTROL_UPPER_ADDRESS_FIXED_SHIFT (
16)
#define MMU_MMU_CONFIG0_OFFSET (
0x0080)
#define MMU_MMU_CONFIG0_NUM_REQUESTORS_MASK (
0x0000000F)
#define MMU_MMU_CONFIG0_NUM_REQUESTORS_SHIFT (
0)
#define MMU_MMU_CONFIG0_EXTENDED_ADDR_RANGE_MASK (
0x000000F0)
#define MMU_MMU_CONFIG0_EXTENDED_ADDR_RANGE_SHIFT (
4)
#define MMU_MMU_CONFIG0_GROUP_OVERRIDE_SIZE_MASK (
0x00000700)
#define MMU_MMU_CONFIG0_GROUP_OVERRIDE_SIZE_SHIFT (
8)
#define MMU_MMU_CONFIG0_ADDR_COHERENCY_SUPPORTED_MASK (
0x00001000)
#define MMU_MMU_CONFIG0_ADDR_COHERENCY_SUPPORTED_SHIFT (
12)
#define MMU_MMU_CONFIG0_MMU_SUPPORTED_MASK (
0x00002000)
#define MMU_MMU_CONFIG0_MMU_SUPPORTED_SHIFT (
13)
#define MMU_MMU_CONFIG0_TILE_ADDR_GRANULARITY_MASK (
0x001F0000)
#define MMU_MMU_CONFIG0_TILE_ADDR_GRANULARITY_SHIFT (
16)
#define MMU_MMU_CONFIG0_NO_READ_REORDER_MASK (
0x00200000)
#define MMU_MMU_CONFIG0_NO_READ_REORDER_SHIFT (
21)
#define MMU_MMU_CONFIG0_TAGS_SUPPORTED_MASK (
0xFFC00000)
#define MMU_MMU_CONFIG0_TAGS_SUPPORTED_SHIFT (
22)
#define MMU_MMU_CONFIG1_OFFSET (
0x0084)
#define MMU_MMU_CONFIG1_PAGE_SIZE_MASK (
0x0000000F)
#define MMU_MMU_CONFIG1_PAGE_SIZE_SHIFT (
0)
#define MMU_MMU_CONFIG1_PAGE_CACHE_ENTRIES_MASK (
0x0000FF00)
#define MMU_MMU_CONFIG1_PAGE_CACHE_ENTRIES_SHIFT (
8)
#define MMU_MMU_CONFIG1_DIR_CACHE_ENTRIES_MASK (
0x001F0000)
#define MMU_MMU_CONFIG1_DIR_CACHE_ENTRIES_SHIFT (
16)
#define MMU_MMU_CONFIG1_BANDWIDTH_COUNT_SUPPORTED_MASK (
0x01000000)
#define MMU_MMU_CONFIG1_BANDWIDTH_COUNT_SUPPORTED_SHIFT (
24)
#define MMU_MMU_CONFIG1_STALL_COUNT_SUPPORTED_MASK (
0x02000000)
#define MMU_MMU_CONFIG1_STALL_COUNT_SUPPORTED_SHIFT (
25)
#define MMU_MMU_CONFIG1_LATENCY_COUNT_SUPPORTED_MASK (
0x04000000)
#define MMU_MMU_CONFIG1_LATENCY_COUNT_SUPPORTED_SHIFT (
26)
#define MMU_MMU_STATUS0_OFFSET (
0x0088)
#define MMU_MMU_STATUS0_MMU_PF_N_RW_MASK (
0x00000001)
#define MMU_MMU_STATUS0_MMU_PF_N_RW_SHIFT (
0)
#define MMU_MMU_STATUS0_MMU_FAULT_ADDR_MASK (
0xFFFFF000)
#define MMU_MMU_STATUS0_MMU_FAULT_ADDR_SHIFT (
12)
#define MMU_MMU_STATUS1_OFFSET (
0x008C)
#define MMU_MMU_STATUS1_MMU_FAULT_REQ_STAT_MASK (
0x0000FFFF)
#define MMU_MMU_STATUS1_MMU_FAULT_REQ_STAT_SHIFT (
0)
#define MMU_MMU_STATUS1_MMU_FAULT_REQ_ID_MASK (
0x000F0000)
#define MMU_MMU_STATUS1_MMU_FAULT_REQ_ID_SHIFT (
16)
#define MMU_MMU_STATUS1_MMU_FAULT_INDEX_MASK (
0x03000000)
#define MMU_MMU_STATUS1_MMU_FAULT_INDEX_SHIFT (
24)
#define MMU_MMU_STATUS1_MMU_FAULT_RNW_MASK (
0x10000000)
#define MMU_MMU_STATUS1_MMU_FAULT_RNW_SHIFT (
28)
#define MMU_MMU_MEM_REQ_OFFSET (
0x0090)
#define MMU_MMU_MEM_REQ_TAG_OUTSTANDING_MASK (
0x000003FF)
#define MMU_MMU_MEM_REQ_TAG_OUTSTANDING_SHIFT (
0)
#define MMU_MMU_MEM_REQ_EXT_WRRESP_FAULT_MASK (
0x00001000)
#define MMU_MMU_MEM_REQ_EXT_WRRESP_FAULT_SHIFT (
12)
#define MMU_MMU_MEM_REQ_EXT_RDRESP_FAULT_MASK (
0x00002000)
#define MMU_MMU_MEM_REQ_EXT_RDRESP_FAULT_SHIFT (
13)
#define MMU_MMU_MEM_REQ_EXT_READ_BURST_FAULT_MASK (
0x00004000)
#define MMU_MMU_MEM_REQ_EXT_READ_BURST_FAULT_SHIFT (
14)
#define MMU_MMU_MEM_REQ_INT_PROTOCOL_FAULT_MASK (
0x80000000)
#define MMU_MMU_MEM_REQ_INT_PROTOCOL_FAULT_SHIFT (
31)
#define MMU_MMU_MEM_REQ_INT_PROTOCOL_FAULT_NO_REPS (
16)
#define MMU_MMU_MEM_REQ_INT_PROTOCOL_FAULT_SIZE (
1)
#define MMU_MMU_FAULT_SELECT_OFFSET (
0x00A0)
#define MMU_MMU_FAULT_SELECT_MMU_FAULT_SELECT_MASK (
0x0000000F)
#define MMU_MMU_FAULT_SELECT_MMU_FAULT_SELECT_SHIFT (
0)
#define MMU_PROTOCOL_FAULT_OFFSET (
0x00A8)
#define MMU_PROTOCOL_FAULT_FAULT_PAGE_BREAK_MASK (
0x00000001)
#define MMU_PROTOCOL_FAULT_FAULT_PAGE_BREAK_SHIFT (
0)
#define MMU_PROTOCOL_FAULT_FAULT_WRITE_MASK (
0x00000010)
#define MMU_PROTOCOL_FAULT_FAULT_WRITE_SHIFT (
4)
#define MMU_PROTOCOL_FAULT_FAULT_READ_MASK (
0x00000020)
#define MMU_PROTOCOL_FAULT_FAULT_READ_SHIFT (
5)
#define MMU_TOTAL_READ_REQ_OFFSET (
0x0100)
#define MMU_TOTAL_READ_REQ_TOTAL_READ_REQ_MASK (
0xFFFFFFFF)
#define MMU_TOTAL_READ_REQ_TOTAL_READ_REQ_SHIFT (
0)
#define MMU_TOTAL_WRITE_REQ_OFFSET (
0x0104)
#define MMU_TOTAL_WRITE_REQ_TOTAL_WRITE_REQ_MASK (
0xFFFFFFFF)
#define MMU_TOTAL_WRITE_REQ_TOTAL_WRITE_REQ_SHIFT (
0)
#define MMU_READS_LESS_64_REQ_OFFSET (
0x0108)
#define MMU_READS_LESS_64_REQ_READS_LESS_64_REQ_MASK (
0xFFFFFFFF)
#define MMU_READS_LESS_64_REQ_READS_LESS_64_REQ_SHIFT (
0)
#define MMU_WRITES_LESS_64_REQ_OFFSET (
0x010C)
#define MMU_WRITES_LESS_64_REQ_WRITES_LESS_64_REQ_MASK (
0xFFFFFFFF)
#define MMU_WRITES_LESS_64_REQ_WRITES_LESS_64_REQ_SHIFT (
0)
#define MMU_EXT_CMD_STALL_OFFSET (
0x0120)
#define MMU_EXT_CMD_STALL_EXT_CMD_STALL_MASK (
0xFFFFFFFF)
#define MMU_EXT_CMD_STALL_EXT_CMD_STALL_SHIFT (
0)
#define MMU_WRITE_REQ_STALL_OFFSET (
0x0124)
#define MMU_WRITE_REQ_STALL_WRITE_REQ_STALL_MASK (
0xFFFFFFFF)
#define MMU_WRITE_REQ_STALL_WRITE_REQ_STALL_SHIFT (
0)
#define MMU_MMU_MISS_STALL_OFFSET (
0x0128)
#define MMU_MMU_MISS_STALL_MMU_MISS_STALL_MASK (
0xFFFFFFFF)
#define MMU_MMU_MISS_STALL_MMU_MISS_STALL_SHIFT (
0)
#define MMU_ADDRESS_STALL_OFFSET (
0x012C)
#define MMU_ADDRESS_STALL_ADDRESS_STALL_MASK (
0xFFFFFFFF)
#define MMU_ADDRESS_STALL_ADDRESS_STALL_SHIFT (
0)
#define MMU_TAG_STALL_OFFSET (
0x0130)
#define MMU_TAG_STALL_TAG_STALL_MASK (
0xFFFFFFFF)
#define MMU_TAG_STALL_TAG_STALL_SHIFT (
0)
#define MMU_PEAK_READ_OUTSTANDING_OFFSET (
0x0140)
#define MMU_PEAK_READ_OUTSTANDING_PEAK_TAG_OUTSTANDING_MASK (
0x000003FF)
#define MMU_PEAK_READ_OUTSTANDING_PEAK_TAG_OUTSTANDING_SHIFT (
0)
#define MMU_PEAK_READ_OUTSTANDING_PEAK_READ_LATENCY_MASK (
0xFFFF0000)
#define MMU_PEAK_READ_OUTSTANDING_PEAK_READ_LATENCY_SHIFT (
16)
#define MMU_AVERAGE_READ_LATENCY_OFFSET (
0x0144)
#define MMU_AVERAGE_READ_LATENCY_AVERAGE_READ_LATENCY_MASK (
0xFFFFFFFF)
#define MMU_AVERAGE_READ_LATENCY_AVERAGE_READ_LATENCY_SHIFT (
0)
#define MMU_STATISTICS_CONTROL_OFFSET (
0x0160)
#define MMU_STATISTICS_CONTROL_BANDWIDTH_STATS_INIT_MASK (
0x00000001)
#define MMU_STATISTICS_CONTROL_BANDWIDTH_STATS_INIT_SHIFT (
0)
#define MMU_STATISTICS_CONTROL_STALL_STATS_INIT_MASK (
0x00000002)
#define MMU_STATISTICS_CONTROL_STALL_STATS_INIT_SHIFT (
1)
#define MMU_STATISTICS_CONTROL_LATENCY_STATS_INIT_MASK (
0x00000004)
#define MMU_STATISTICS_CONTROL_LATENCY_STATS_INIT_SHIFT (
2)
#define MMU_MMU_VERSION_OFFSET (
0x01D0)
#define MMU_MMU_VERSION_MMU_MAJOR_REV_MASK (
0x00FF0000)
#define MMU_MMU_VERSION_MMU_MAJOR_REV_SHIFT (
16)
#define MMU_MMU_VERSION_MMU_MINOR_REV_MASK (
0x0000FF00)
#define MMU_MMU_VERSION_MMU_MINOR_REV_SHIFT (
8)
#define MMU_MMU_VERSION_MMU_MAINT_REV_MASK (
0x000000FF)
#define MMU_MMU_VERSION_MMU_MAINT_REV_SHIFT (
0)
#define MMU_BYTE_SIZE (
0x01D4)
#endif