[PATCH 2/2] nds32: Fill all TLB entries with kernel image mapping
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
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