diff options
| author | 张世争 <[email protected]> | 2023-03-16 10:27:16 +0800 |
|---|---|---|
| committer | GitHub <[email protected]> | 2023-03-16 10:27:16 +0800 |
| commit | 334c609c6c38a3bd30275bfb4bb563b6c160860a (patch) | |
| tree | 79254097812602fa5d912ee5d5f3253fa0c93c96 /components/mm | |
| parent | 2394e75265891c83e3b9a00634a30c9ef1c7b13a (diff) | |
[components][mm] add ioremap for normal memory api (#7050)
Diffstat (limited to 'components/mm')
| -rw-r--r-- | components/mm/ioremap.c | 9 | ||||
| -rw-r--r-- | components/mm/ioremap.h | 3 |
2 files changed, 11 insertions, 1 deletions
diff --git a/components/mm/ioremap.c b/components/mm/ioremap.c index a3b8a9e1f2..f72a8b9354 100644 --- a/components/mm/ioremap.c +++ b/components/mm/ioremap.c @@ -27,6 +27,7 @@ size_t rt_ioremap_size; enum ioremap_type { MM_AREA_TYPE_PHY, + MM_AREA_TYPE_PHY_WT, MM_AREA_TYPE_PHY_CACHED }; @@ -52,6 +53,9 @@ static void *_ioremap_type(void *paddr, size_t size, enum ioremap_type type) case MM_AREA_TYPE_PHY: attr = MMU_MAP_K_DEVICE; break; + case MM_AREA_TYPE_PHY_WT: + attr = MMU_MAP_K_RW; + break; case MM_AREA_TYPE_PHY_CACHED: attr = MMU_MAP_K_RWCB; break; @@ -82,6 +86,11 @@ void *rt_ioremap_nocache(void *paddr, size_t size) return _ioremap_type(paddr, size, MM_AREA_TYPE_PHY); } +void *rt_ioremap_wt(void *paddr, size_t size) +{ + return _ioremap_type(paddr, size, MM_AREA_TYPE_PHY_WT); +} + void *rt_ioremap_cached(void *paddr, size_t size) { return _ioremap_type(paddr, size, MM_AREA_TYPE_PHY_CACHED); diff --git a/components/mm/ioremap.h b/components/mm/ioremap.h index dc219630a3..7ac9d196a9 100644 --- a/components/mm/ioremap.h +++ b/components/mm/ioremap.h @@ -32,7 +32,8 @@ extern "C" { void *rt_ioremap(void *paddr, size_t size); void *rt_ioremap_nocache(void *paddr, size_t size); -void *rt_ioremap_cached (void *paddr, size_t size); +void *rt_ioremap_cached(void *paddr, size_t size); +void *rt_ioremap_wt(void *paddr, size_t size); void rt_iounmap(volatile void *addr); extern void *rt_ioremap_start; |
