#ifndef	_dr_tima_log_
#define	_dr_tima_log_


/* Redesign our lag to map only one page at a time */
#define	TIMA_LOG_MAP_SIZE	(1<<12)
#define	TIMA_LOG_MAP_MASK	(TIMA_LOG_MAP_SIZE - 1)

/* ============================================================================
 * Virtual address mapping
 * Note: The range we have access to is: 0x00040000 to 0x00080000.
 * ============================================================================
 */
#define TIMA_MM_BASE        (0x20240000)
#define TIMA_MM_MAP_SIZE    (0x40000)
#define TIMA_ALIGNMENT_TEST (0x3)

/* Dashboard virtual address ranges */
#define	TIMA_DASHBOARD_VADDR	(TIMA_MM_BASE)	/* One page */
#define	TIMA_DASHBOARD_END	(TIMA_DASHBOARD_VADDR + TIMA_LOG_MAP_SIZE)	/* Merely used for simplicity */

/* Secure log virtual address ranges */
#define	TIMA_SEC_LOG_VADDR	(TIMA_DASHBOARD_END)	/* One page */
#define	TIMA_SEC_LOG_PAGE	(TIMA_SEC_LOG_VADDR + TIMA_LOG_MAP_SIZE)	/* One page */
#define	TIMA_SEC_LOG_PAGE_END	(TIMA_SEC_LOG_PAGE + TIMA_LOG_MAP_SIZE)	/* Merely used for simplicity */

/* Debug log virtual address ranges */
#define	TIMA_DBG_LOG_VADDR	(TIMA_SEC_LOG_PAGE_END)	/* One page */
#define	TIMA_DBG_LOG_PAGE	(TIMA_DBG_LOG_VADDR + TIMA_LOG_MAP_SIZE)	/* One page */
#define	TIMA_DBG_LOG_PAGE_END	(TIMA_DBG_LOG_PAGE + TIMA_LOG_MAP_SIZE)	/* Merely used for simplicity */

/* Virtual mapping to read SFR into memory to make debug log secure */
#define	TIMA_SFR_VADDR		(TIMA_DBG_LOG_PAGE_END)
#define	TIMA_SFR_END		(TIMA_SFR_VADDR + TIMA_LOG_MAP_SIZE)

/* Virtual mapping for actual measurement buffer of TIMA */
#define	TIMA_MEASUREMENT_VADDR	(TIMA_SFR_END)
#define	TIMA_MEASUREMENT_SIZE	(32 * TIMA_LOG_MAP_SIZE)
#define	TIMA_MEASUREMENT_END	(TIMA_MEASUREMENT_VADDR + TIMA_MEASUREMENT_SIZE)

/* READ THIS IF YOU ARE ADDING A NEW MAPPING. 
 * READ THIS IF YOU ARE ADDING A NEW MAPPING.
 * READ THIS IF YOU ARE ADDING A NEW MAPPING.
 * NOTE -> Always keep the below condition updated. Whenever new mappings are appended, make sure
 * a "*_END" variable is defined and plugged in in the below condition. Better way to handle it?
 */

#if TIMA_MEASUREMENT_END > (TIMA_MM_BASE + TIMA_MM_MAP_SIZE)
#error TIMA driver virtual address space range exceeded!!
#endif

#endif
