[PATCH 2/2] nds32: Fill all TLB entries with kernel image mapping

2018-10-17 Thread Zong Li
We use earlycon replace with early_printk and doesn't use
early_io_map() to create UART mapping. It is not necessary
to reserve the one way in TLB for now.

It didn't make sense if use direct-mapped and reserve one
way at the same time. It allow the direct-mapped now.

Signed-off-by: Zong Li 
---
 arch/nds32/kernel/head.S | 9 +
 1 file changed, 1 insertion(+), 8 deletions(-)

diff --git a/arch/nds32/kernel/head.S b/arch/nds32/kernel/head.S
index 1ce653d..2c8aac6 100644
--- a/arch/nds32/kernel/head.S
+++ b/arch/nds32/kernel/head.S
@@ -123,14 +123,7 @@ _image_size_check:
 andi$r0, $r0, MMU_CFG_mskTBS
 srli$r6, $r6, MMU_CFG_offTBW
 srli$r0, $r0, MMU_CFG_offTBS
-/*
- * we just map the kernel to the maximum way - 1 of tlb
- * reserver one way for UART VA mapping
- * it will cause page fault if UART mapping cover the kernel mapping
- *
- * direct mapping is not supported now.
- */
-beqz$r6, __error ! MMU_CFG.TBW = 0 is direct mappin
+   addi$r6, $r6, #0x1   ! MMU_CFG.TBW value -> meaning
 addi$r0, $r0, #0x2   ! MMU_CFG.TBS value -> meaning
 sll $r0, $r6, $r0! entries = k-way * n-set
 mul $r6, $r0, $r5! max size = entries * page size
-- 
2.7.4



[PATCH 2/2] nds32: Fill all TLB entries with kernel image mapping

2018-10-17 Thread Zong Li
We use earlycon replace with early_printk and doesn't use
early_io_map() to create UART mapping. It is not necessary
to reserve the one way in TLB for now.

It didn't make sense if use direct-mapped and reserve one
way at the same time. It allow the direct-mapped now.

Signed-off-by: Zong Li 
---
 arch/nds32/kernel/head.S | 9 +
 1 file changed, 1 insertion(+), 8 deletions(-)

diff --git a/arch/nds32/kernel/head.S b/arch/nds32/kernel/head.S
index 1ce653d..2c8aac6 100644
--- a/arch/nds32/kernel/head.S
+++ b/arch/nds32/kernel/head.S
@@ -123,14 +123,7 @@ _image_size_check:
 andi$r0, $r0, MMU_CFG_mskTBS
 srli$r6, $r6, MMU_CFG_offTBW
 srli$r0, $r0, MMU_CFG_offTBS
-/*
- * we just map the kernel to the maximum way - 1 of tlb
- * reserver one way for UART VA mapping
- * it will cause page fault if UART mapping cover the kernel mapping
- *
- * direct mapping is not supported now.
- */
-beqz$r6, __error ! MMU_CFG.TBW = 0 is direct mappin
+   addi$r6, $r6, #0x1   ! MMU_CFG.TBW value -> meaning
 addi$r0, $r0, #0x2   ! MMU_CFG.TBS value -> meaning
 sll $r0, $r6, $r0! entries = k-way * n-set
 mul $r6, $r0, $r5! max size = entries * page size
-- 
2.7.4