1 Star 0 Fork 10

陈诚/plat-raspi

forked from YingyiTech/plat-raspi
关闭
 
加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
克隆/下载
pagetable64.S 1.51 KB
一键复制 编辑 原始数据 按行查看 历史
/* Copyright 2023 Hangzhou Yingyi Technology Co., Ltd
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
#include <uk/arch/lcpu.h>
#include <uk/arch/limits.h>
#include <uk/asm.h>
#include <uk/reloc.h>
#include <raspi/sysregs.h>
#include <raspi/mm.h>
#include <raspi/mmu.h>
ENTRY(start_mmu)
/*
* Using dsb here to guarantee the create_pagetables has
* been done.
*/
/* Load ttbr0, pagetable starts from _end */
ur_ldr x27, arm64_bpt_l3_pt0
msr ttbr0_el1, x27
isb
/* Clear the Monitor Debug System control register */
msr mdscr_el1, xzr
/* Invalidate the TLB to avoid stale one */
tlbi vmalle1
dsb nsh
ldr x2, =MAIR_INIT_ATTR
msr mair_el1, x2
/* Set up TCR_EL1. The platform must provide a
* configuration compatible with the paging API.
*/
ldr x2, =TCR_INIT_FLAGS
msr tcr_el1, x2
/* Setup SCTLR */
ldr x2, =SCTLR_SET_BITS
ldr x3, =SCTLR_CLEAR_BITS
mrs x1, sctlr_el1
bic x1, x1, x3 /* Clear the required bits */
orr x1, x1, x2 /* Set the required bits */
msr sctlr_el1, x1
isb
ret
END(start_mmu)
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
C
1
https://gitee.com/chneg3/plat-raspi.git
git@gitee.com:chneg3/plat-raspi.git
chneg3
plat-raspi
plat-raspi
master

搜索帮助

0d507c66 1850385 C8b1a773 1850385