备案网站名称大全,网站什么时候做负载均衡,智能建站系统,宝安中心区新楼盘安全之安全(security)博客目录导读
目录
一、Hafnium简介
二、Hafnium构建
2.1.1 先决条件
2.1.1.1 构建Host
2.1.1.2 工具链
2.1.1.3 依赖
2.1.1.4 获取源码
2.1.2 构建 一、Hafnium简介 可信固件为Armv8-A、Armv9-A和Armv8-M提供了安全软件的参考实现。它为SoC开发人…安全之安全(security²)博客目录导读
目录
一、Hafnium简介
二、Hafnium构建
2.1.1 先决条件
2.1.1.1 构建Host
2.1.1.2 工具链
2.1.1.3 依赖
2.1.1.4 获取源码
2.1.2 构建 一、Hafnium简介 可信固件为Armv8-A、Armv9-A和Armv8-M提供了安全软件的参考实现。它为SoC开发人员和OEM提供了符合相关Arm规范的参考可信代码库。可信固件的代码是Arm规范的首选实现允许快速轻松地移植到现代芯片和平台。这构成了应用程序处理器上的可信执行环境(TEE)或微控制器的安全处理环境(SPE)的基础。 ARM可用的可信固件项目如下图9宫格所示Hafnium为其中之一。 用于实现Armv8.4-A Secure-EL2扩展的系统的参考安全分区管理器(SPM)。它允许多个隔离的安全分区(sp)在Secure-EL1上运行。贡献指南可以在文档中找到。请订阅项目电子邮件列表以参与开发讨论。Hafnium和Secure-EL2也是TF-A技术论坛讨论的主题。
文档Trusted Firmware-A Documentation — Trusted Firmware-A 2.9.0 documentation
代码trusted-firmware-a.git - Trusted Firmware for A profile Arm CPUs
二、Hafnium构建
2.1.1 先决条件
2.1.1.1 构建Host 建议使用相对较新的Linux发行版。CI运行是使用Ubuntu 22.04 LTS(64位)完成的。
2.1.1.2 工具链 建议使用以下工具链构建Hafninum和测试基础架构 对于x86_64 Ubuntu host
https://github.com/llvm/llvm-project/releases/download/llvmorg-15.0.6/clangllvm-15.0.6-x86_64-linux-gnu-ubuntu-18.04.tar.xz 对于AArch64 Ubuntu host
https://github.com/llvm/llvm-project/releases/download/llvmorg-15.0.6/clangllvm-15.0.6-aarch64-linux-gnu.tar.xz
【注意】 不支持使用安装在主机上的本地工具链(例如/usr/bin/clang)。 使用大于或明显小于指定的工具链版本不能保证工作。
2.1.1.3 依赖 如果你使用的是推荐的Ubuntu发行版那么你可以用下面的命令安装所需的软件包
sudo apt install make libssl-dev flex bison python3 python3-serialpython3-pip device-tree-compilerpip3 install fdt
2.1.1.4 获取源码 Hafnium源代码保存在托管于trustedfirmware.org的Git库中。要从服务器克隆这个库可以在shell中运行以下命令
git clone --recurse-submodules https://git.trustedfirmware.org/hafnium/hafnium.git 为了导入用于在提交消息中添加Change-Id的gerrit钩子hooks建议使用
git clone --recurse-submodules https://git.trustedfirmware.org/hafnium/hafnium.git { cd hafnium f$(git rev-parse --git-dir); curl -Lo $f/hooks/commit-msg https://review.trustedfirmware.org/tools/hooks/commit-msg { chmod x $f/hooks/commit-msg; git submodule --quiet foreach cp \\$toplevel/$f/hooks/commit-msg\ \\$toplevel/$f/modules/\$path/hooks/commit-msg\; }; }
2.1.2 构建 在构建之前应将PATH环境变量调整为LLVM/clang目录例如:
PATHtoolchain_dir/clangllvm-15.0.6-x86_64-linux-gnu-ubuntu-18.04/bin:$PATH 默认情况下Hafnium SPMC是用clang为几个目标平台构建的并附带测试。在Hafnium顶层目录中只需输入
make 生成的FVP镜像位于out/reference/secure_aem_v8a_fvp_vhe_clang/hafnium.bin中。 可以使用ENABLE_ASSERTIONS make变量设置最终构建中断言的存在默认情况下该变量被设置为true这意味着构建中包含断言。
make ENABLE_ASSERTIONStrue|false 项目目录中的每个项目指定构建的根配置。添加项目是将支持扩展到新平台的首选方法。要构建的目标项目由project make变量选择默认项目为“reference”。
make PROJECTproject_name 如果你想改变make变量的值你可能需要先使用:
make clobber 那么args.gn文件将使用新值重新生成。