Hafnium简介和构建

安全之安全(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为其中之一。
8364ccb11a454f078994faffd6e71e96.png

        用于实现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/clang+llvm-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/clang+llvm-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目录,例如:

PATH=<toolchain_dir>/clang+llvm-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_ASSERTIONS=<true|false>

        项目目录中的每个项目指定构建的根配置。添加项目是将支持扩展到新平台的首选方法。要构建的目标项目由project make变量选择,默认项目为“reference”。

make PROJECT=<project_name>

        如果你想改变make变量的值,你可能需要先使用:

make clobber

        那么args.gn文件将使用新值重新生成。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/172050.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

视频智能视觉分析真的遥不可及吗?有没有那种下载就能用的视频分析服务?

我一直有一个感觉&#xff0c;就是市面上很难找到那么一个带视频算法的软件&#xff0c;能让我们很直观地看到视频分析的效果&#xff0c;大部分都要内置在某种算力硬件上&#xff0c;或者对GPU要求比较严格&#xff0c;很难做到像以前我们做的视频直播软件那样&#xff0c;下载…

Java Dubbo 微服务框架 HP-SOA

HP-SOA 功能完备&#xff0c;简单易用&#xff0c;高度可扩展的Java微服务框架。 【快速开始】 技术架构 技术集成 Web服务框架&#xff1a;spring-boot 3.x微服务框架&#xff1a;Dubbo 3.x服务注册中心&#xff1a;Nacos配置中心&#xff1a;Nacos服务治理中心&#xff1…

使用DBSyncer实现增量Mysql到Mysql的数据同步_DBSyncer1.2.4版本---数据同步之DBSyncer工作笔记006

之前都是用来postgresql到mysql的同步,需要配置postgresql的复制槽,对于mysq来说,需要配置: mysql启用binlog: https://gitee.com/ghi/dbsyncer/wikis/%E6%93%8D%E4%BD%9C%E6%89%8B%E5%86%8C/%E6%97%A5%E5%BF%97%E9%85%8D%E7%BD%AE%EF%BC%88%E6%95%B0%E6%8D%AE%E6%BA%90%EF%B…

vscode 保存 “index.tsx“失败: 权限不足。选择 “以超级用户身份重试“ 以超级用户身份重试。

vscode 保存 "index.tsx"失败: 权限不足。选择 “以超级用户身份重试” 以超级用户身份重试。 操作&#xff1a;mac在文件夹中创建文件&#xff0c;sudo 创建umiJs项目 解决&#xff1a;修改文件夹权限 右键文件夹

网络协议--DNS:域名系统

14.1 引言 域名系统&#xff08;DNS&#xff09;是一种用于TCP/IP应用程序的分布式数据库&#xff0c;它提供主机名字和IP地址之间的转换及有关电子邮件的选路信息。这里提到的分布式是指在Internet上的单个站点不能拥有所有的信息。每个站点&#xff08;如大学中的系、校园、…

Vs2019 配置全局公共库和头文件

本文参考&#xff1a;Visual Studio 2019 配置全局公共库目录 背景 在程序开发过程中&#xff0c;日志和数据格式化是必不可少的。而spdlog和fmt正好可以满足这两点并且轻量。但是如果每次新建一个项目都必须引入一次显的太繁琐。那么是否可以加入vs的公共库呢? 实施 spdlog…

Java多线程篇(12)——ForkJoinPool

文章目录 1、基本原理2、源码2.1、sumbit干了啥&#xff1f;submitexternalPushsignalWorktryAddWorker 2.2、工作线程如何运行&#xff1f;怎么窃取&#xff1f;runWorkerscan 2.3、fork干了啥&#xff1f;fork 2.4、join干了啥&#xff1f;joinawaitJoin 1、基本原理 假设有…

《动手学深度学习 Pytorch版》 10.4 Bahdanau注意力

10.4.1 模型 Bahdanau 等人提出了一个没有严格单向对齐限制的可微注意力模型。在预测词元时&#xff0c;如果不是所有输入词元都相关&#xff0c;模型将仅对齐&#xff08;或参与&#xff09;输入序列中与当前预测相关的部分。这是通过将上下文变量视为注意力集中的输出来实现…

PS软件 点击 “另存为 Web 所用格式” ,提示错误 无法完成操作 系统找不到指定路径

软件&#xff1a;Adobe Photoshop 问题&#xff1a; PS 点击 另存为 Web 所用格式 &#xff0c;提示错误 无法完成操作 系统找不到指定路径 解决&#xff1a; 如果是Win10以上的系统&#xff0c;出现这种情况基本就是被系统自带的杀毒软件阻止了&#xff0c;可以看一下电脑右…

JavaScript从入门到精通系列第二十五篇:JavaScript中的Date对象

文章目录 一&#xff1a;Date对象简介 1&#xff1a;概念简介 二&#xff1a;Date对象 1&#xff1a;创建当前时间 2&#xff1a;创建指定时间 三&#xff1a;日期对象函数 1&#xff1a;getDate() 2&#xff1a;getDay() 3&#xff1a;getMonth() 4&#xff1a;getF…

vue源码分析(二)——vue的入口发生了什么

文章目录 前言&#xff08;1&#xff09;vue 项目构建的时候&#xff0c;通过package.json文件看到构建入口&#xff08;2&#xff09; 构建入口页面&#xff1a;导入同级模块config的getAllbuilds方法&#xff08;3&#xff09; 通过传入参数中的builds对象使用map获取&#x…

主流大语言模型的技术细节

主流大语言模型的技术原理细节从预训练到微调https://mp.weixin.qq.com/s/P1enjLqH-UWNy7uaIviWRA 比较 LLaMA、ChatGLM、Falcon 等大语言模型的细节&#xff1a;tokenizer、位置编码、Layer Normalization、激活函数等。2. 大语言模型的分布式训练技术&#xff1a;数据并行、…

threejs(4)-纹理材质高级操作

一、纹理重复_缩放_旋转_位移操作 // 导入threejs import * as THREE from "three"; // 导入轨道控制器 import { OrbitControls } from "three/examples/jsm/controls/OrbitControls.js"; // 导入lil.gui import { GUI } from "three/examples/jsm/l…

创建并启动华为HarmonyOS本地与远程模拟器及远程真机

1.打开设备管理器 2.选择要添加的手机设备,然后点击安装 3.正在下载华为手机模拟器 4.下载完成 5.创建新模拟器 下载系统镜像 点击下一步,创建模拟器 创建成功 启动模拟器 华为模拟器启动成功 6.登陆华为账号并使用远程模拟器 7.使用远程真机

使用Selenium和Java编写爬虫程序

以下是一个使用Selenium和Java编写的音频爬虫程序&#xff0c;该程序使用了proxy的代码。请注意&#xff0c;这个示例需要在IDE中运行&#xff0c;并且可能需要根据您的系统和需求进行调整。 import java.io.IOException; import java.util.List; import java.util.concurrent…

提升技能,挑战自我——一站式在线题库小程序

在这个信息爆炸的时代&#xff0c;我们总是在寻找一种方式&#xff0c;让自己在众多的知识海洋中快速提升技能&#xff0c;挑战自我。今天&#xff0c;我要向大家推荐一款全新的在线题库小程序KD蝌蚪阿坤&#xff0c;它将帮助你实现这个目标。 KD蝌蚪阿坤是一款全面的在线题库…

革新技术,释放创意 :Luminar NeoforMac/win超强AI图像编辑器

Luminar Neo&#xff0c;一个全新的AI图像编辑器&#xff0c;正以其强大的功能和独特的创意引领着图像编辑的潮流。借助于最新的AI技术&#xff0c;Luminar Neo为用户提供了无限可能的图像编辑体验&#xff0c;让每一个想法都能被精彩地实现。 Luminar Neo的AI引擎强大而高效&…

Vue3:将表格数据下载为excel文件

需求 将表格数据或者其他形式的数据下载为excel文件 技术栈 Vue3、ElementPlus、 实现 1、安装相关的库 下载xlsx 和 file-saver 库 npm install -S file-saver npm install -S xlsx引入XLSX库和FileSaver库 import XLSX from xlsx; import FileSaver from file-saver;…

论文阅读——ELECTRA

论文下载&#xff1a;https://openreview.net/pdf?idr1xMH1BtvB 另一篇分析文章&#xff1a;ELECTRA 详解 - 知乎 一、概述 对BERT的token mask 做了改进。结合了GAN生成对抗模型的思路&#xff0c;但是和GAN不同。 不是对选择的token直接用mask替代&#xff0c;而是替换为…

电商接口api数据比价接口推荐

当前&#xff0c;受诸多因素的影响&#xff0c;经济下行&#xff0c;在日趋激烈的市场竞争中&#xff0c;很多企业也都面临着越来越大的生存压力&#xff0c;企业的盈利空间也逐渐被压缩。因此&#xff0c;越来越多的企业在控制成本方面更下功夫&#xff0c;这也就对企业采购提…