| 1234567891011121314151617181920212223242526272829303132333435363738 |
- #ifndef __MT_LPAE_H__
- #define __MT_LPAE_H__
- #ifdef CONFIG_ARM_LPAE
- #define INTERAL_MAPPING_OFFSET (0x40000000)
- #define INTERAL_MAPPING_LIMIT (INTERAL_MAPPING_OFFSET + 0x80000000)
- #define INFRA_LARGE_MEMORY_SETTING (CKSYS_BASE + 0x1F00)
- #define IS_MT_LARGE_MEMORY_MODE (readl(IOMEM(INFRA_LARGE_MEMORY_SETTING)) >> 13 & 0x1)
- #define MT_OVERFLOW_ADDR_START 0x100000000ULL
- /* For HW modules which support 33-bit address setting */
- #define CROSS_OVERFLOW_ADDR_TRANSFER(phy_addr, size, ret) \
- do { \
- if (((phys_addr_t)phy_addr < MT_OVERFLOW_ADDR_START) && (((phys_addr_t)phy_addr + size) \
- >= MT_OVERFLOW_ADDR_START)) \
- ret = MT_OVERFLOW_ADDR_START - phy_addr; \
- else \
- ret = 0; \
- } while (0)
- /* For SPM and MD32 only */
- #define MAPPING_DRAM_ACCESS_ADDR(phy_addr) \
- do { \
- if (phy_addr >= INTERAL_MAPPING_OFFSET && phy_addr < INTERAL_MAPPING_LIMIT) \
- phy_addr += INTERAL_MAPPING_OFFSET; \
- } while (0)
- #else /* !CONFIG_ARM_LPAE */
- #define IS_MT_LARGE_MEMORY_MODE 0
- #define CROSS_OVERFLOW_ADDR_TRANSFER(phy_addr, size, ret)
- #define MAPPING_DRAM_ACCESS_ADDR(phy_addr)
- #define MT_OVERFLOW_ADDR_START 0
- #endif
- #endif /*!__MT_LPAE_H__ */
|