自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

baron-周贺贺-代码改变世界ctw

【介绍】: 某外企资深安全工程师、阅码场资深讲师、51CTO编辑、优快云博客专家... 【研究方向】:安全/虚拟化、Trustzone、TEE、SOC架构、ARM架构、终端安全/手机安全/设备安全/系统安全、Linux Kernel安全、Android

  • 博客(1652)
  • 资源 (21)
  • 问答 (1)
  • 收藏
  • 关注

原创 【置顶】TEE从入门到精通-[目录]

此专栏讲解包含不限于optee、商用TEE、常规的安全业务设计。但主要基于optee最新代码,深度讲解和剖析各项原理和机制...

2022-05-06 08:35:45 5519 2

原创 [目录]-博客笔记导读目录(全部)

编辑backup: 汇总-arm-optee-android-复制黏贴–(网址)============= (以下是正文) =============CA/TA开发(收费区)0-博客笔记导读目录(全部)-backup-202111210-博客笔记导读目录(全部)-backup-202108120-博客笔记导读目录(全部)-backup-202201180-博客笔记导读目录(全部)-20220506backup草稿-博客笔记导读目录(全部)(统计:本文共记录650篇博文)...............

2020-06-30 10:57:13 34023 24

原创 【置顶】ARMv8/ARMv9架构入门到精通-[目录]

周贺贺,baron,代码改变世界,coding_the_world,Arm精选,arm_2023,安全启动,加密启动optee、ATF、TF-A、Trustzone、optee3.14、MMU、VMSA、cache、TLB、arm、armv8、armv9、TEE、安全、内存管理、页表,Non-cacheable,Cacheable, non-shareable,inner-shareable,outer-shareable, optee、ATF、TF-A、Trustzone、optee3.14、MMU、V

2020-06-30 10:32:07 20896 11

原创 qemu启动aarch64 linux+ buildroot + 应用程序

https://www.kernel.org/sudo apt updatesudo apt install -y build-essential qemu qemu-system gcc make bc flex bison libssl-dev libncurses5-dev libelf-devgit clone --depth 1 https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.gitcp arch/arm64/

2025-02-17 15:56:15 401

原创 飞书专栏-TEE文档

优快云学院课程连接:https://edu.youkuaiyun.com/course/detail/39573

2025-02-13 15:30:08 318

原创 飞书知识库文档-Arm专栏

我们开通权限更方便。不用要求您加入组织,也不用互加飞书好友。仅仅要求您扫码入飞书群,就可以自动获取权限。我们有短域名,http://armdoc.hehezhou.cn,好记,在公司摸鱼学习更方便。ARM专栏知识库的建设基本完成,目前有200多篇文章左右,分类齐全。我们有讨论群、课程群等,交流/沟通/学习更方面。

2025-02-13 15:25:00 214

原创 《aarch64汇编从入门到精通》-204页PPT+实验

✅9、既适合资深/高级工程师来查缺补漏,又适合初级工程师入门,也适合ASIC同事跨界学习,软硬件融合。✅3、能读得懂Linux、uboot、ATF、optee等系统的任意汇编代码;✅2、基于Armv8/Armv9架构讲解汇编。✅1、依照官方文档总结制作,体系更完整,不遗漏知识;✅4、学完ARM架构,再学汇编,更轻松更容易。✅5、系统工程师、BSP工程师、驱动工程师。✅1、电子信息大类专业、计算机大类专业;✅2、任何从事或想从事底层开发的;✅2、熟悉计算机、芯片底层相关知识。✅4、也能够写汇编代码。

2025-02-13 15:09:07 262

原创 底层工程师必须的《ARM架构扫盲-SOC架构扫盲》课程只需99元

该课程赠送给ARM三期学员 和 VIP学员。(请耐心等待,3个工作日内自动赠送到个人账号)该课程适合:快速学习、快速扫盲、快速掌握一大堆的知识和概念。共计2节课,2小时+, 2024年10月最新制作和录制。

2025-02-13 15:04:17 334

原创 《8天入门Trustzone/TEE/安全架构》

优快云学院课程连接:https://edu.youkuaiyun.com/course/detail/39573

2025-02-13 14:54:04 336

原创 《8天入门ARM架构》

优快云学院课程连接:https://edu.youkuaiyun.com/course/detail/39573

2025-02-12 15:18:52 233

原创 cache直播训练营回放+cacha专题-单售

本课程属于Arm三期课程的一部分。建议购买Arm三期课程。总时长14小时:7h的专题精讲 + 7h的直播回放。

2025-02-12 15:13:36 169

原创 《Arm架构-功耗管理精讲与实战》

本课程属于Arm三期课程的一部分。建议购买Arm三期课程。

2025-02-12 15:03:34 253

原创 《ATF/optee/hafnium/inux/xen代码精读》

附录2:(以指纹为例)一张经典的软件架构图。附录1:未来主流的软件框图。

2025-02-12 14:54:46 128

原创 《Android Keymaster/Keymint精讲》

课程大纲:

2025-02-12 14:44:28 243

原创 《Android13安全架构详解》

讲解最新最全的Android安全架构,本课程包含但不限于以下课程:密码锁/locksetting/gatekeeper生物认证/指纹/人脸cts/vts/CDD解读代码导读、流程分析安全业务的设计TEE简介。

2025-02-12 14:33:07 251

原创 《CA/TA开发从入门到精通》

✅aeskey的操作,如何随机生成aeskey(TEE_GenerateKey),objectHandle和aesbuf有什么区别?✅RSA key的处理,包含如何生成RSA KEY,rsakey object如何转换成可见的数组,如何转换der,如何转换pem,反向又如何转换。✅从无到有、手把手教你编写CA/TA,快速上手,快速部署项目标准的开发,开发一套CA/TA,可部署到不同的TEE OS上。对称密码学算法aes的使用,CBC/ECB/CTR/XTS分组密码的使用,加密解密,pending等。

2025-02-12 14:10:03 304

原创 《optee系统开发精讲》

✅1、全体系的掌握optee的核心知识点(多核多线程、启动流程、各类API、TA/PTA/STA、driver、service、各类设计思想、内存管理、中断管理…✅2、掌握TEE OS的设计核心思想(不限与optee,对其它TEE也是如此),能够进入软件架构层次的各项设计;✅4、学习和理解理解Armv8/Armv9架构、Trustzone架构。✅3、实事求是、有理有据、不瞎说,不编造、一切有源头可查;✅4、白话、通俗易懂。✅3、系统架构师、战略规划师。✅2、ATF、固件开发者。✅4、汽车行业软件工程师。

2025-02-12 14:06:10 139

原创 ATF系统安全从入门到精通

优快云学院课程连接:https://edu.youkuaiyun.com/course/detail/39573

2025-02-12 13:57:08 316

原创 《Coresight/Trace/Debug大合集》64节课16小时,6大主题, 685页PPT

虽然说当前已经完结了,但后续可能会持续更新。

2025-02-12 13:44:57 129

原创 《Android15安全架构课程》

StrongBox则是一个独立的硬件安全模块(HSM),专门存储高价值的加密密钥,如用于支付和生物认证的密钥。每个应用程序在独立的进程中运行,并且拥有一个唯一的用户ID (UID),使得应用程序之间不能直接访问彼此的数据。Android系统为用户提供了一个相对安全的操作环境,保护了用户数据和设备的安全。AVB是Android的验证引导机制,旨在确保设备启动时加载的每一层软件都是可信的。它通过加密和密钥管理机制,确保只有授权设备和用户才能访问受保护的内容,防止未经授权的复制和分发。

2025-02-11 18:44:12 827

原创 Secureboot从入门到精通 训练营

✅方向]:电子/计算机专业、芯片架构设计、芯片底层软件、芯片验证、BSP软件开发、内核驱动开发、固件开发、bootrom/bootloader开发、安全、虚拟化、大系统开发等;✅3、快速熟悉常规系统软件(bootrom、spl、ATF、TEE、bootloader、kernel…✅1、全体系的掌握安全软硬件核心知识点(efuse、Rpmb、crypto engine、密码学算法、ATF固件、启动的标准规范…✅[行业]:汽车电子、手机、服务器、云计算、物联网、人工智能 行业的同学;✅5、白话、通俗易懂。

2025-02-11 18:26:49 506

原创 《optee入门实战版》

说明:trustzone/tee高配版、标准版、实践版,相互独立,互不包含、互不冲突。

2025-02-11 14:27:19 234

原创 《Trustzone/TEE/安全从入门到精通-高配版》

3、掌握大系统软件设计架构,包括但不限于:Bootrom、spl、ATF、TEE、bootloader、linux、hafnium等。1、全体系的掌握ARMv8/ARMv9的核心知识点(ARM基础、异常中断GIC、MMU/Cache、architecture、SOC架构、Trustzone、虚拟化…2、掌握ARM架构、掌握SOC架构、掌握常规IP(gic、smmu、timer、AXI/ACE/CHI、TZC400、CCI/CMN…4、实事求是:有理有据,尽量不瞎说,不编造,一切有源头可查,有文档可参考;

2025-02-11 14:17:55 959

原创 Trustzone/TEE标准版-48节课/19.5h

说明:trustzone/tee高配版、标准版、实践版,相互独立,互不包含、互不冲突。

2025-02-11 14:05:09 841

原创 学好ARM让领导刮目相看《Armv8/Armv9架构从入门到精通(三期)》

周贺贺 baron ,12 年手机安全、汽车安全、芯片安全开发经验,擅长 Trustzone/TEE/ 安全的设计与开发,对 ARM 架构的安全领域有着深入的研究和丰富的实践经验,能够将复杂的安全知识和处理器架构知识进行系统整理并清晰讲解,透过事务看本质,帮助学员快速入门和理解。

2025-02-10 17:48:03 1430

原创 Arm精选-铂金VIP课程-总课时1000节+、总时长360h+、总价值3w+

拥有 12 年手机安全、汽车安全、芯片安全开发经验,擅长 Trustzone/TEE/ 安全的设计与开发,对 ARM 架构的安全领域有着深入的研究和丰富的实践经验,能够将复杂的安全知识和处理器架构知识进行系统整理并清晰讲解,透过事务看本质,帮助学员快速入门和理解。![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/6a838b9b979247c1930becd3dfd8fdef.png!

2025-02-10 15:54:49 182

原创 《optee系统架构从入门到精通》

拥有 12 年手机安全、汽车安全、芯片安全开发经验,擅长 Trustzone/TEE/ 安全的设计与开发,对 ARM 架构的安全领域有着深入的研究和丰富的实践经验,能够将复杂的安全知识和处理器架构知识进行系统整理并清晰讲解,透过事务看本质,帮助学员快速入门和理解。什么是TEE?TEE基础科普TEE的生态介绍?有哪些TEE厂商?各有什么特点?什么是TEE?TEE基础科普TEE的生态介绍?有哪些TEE厂商?各有什么特点?什么是open tee?什么是optee?什么是TEE?什么是optee?

2025-02-10 11:39:33 893

原创 《Trustzone/TEE/安全从入门到精通-标准版》

1、讲解ARM最新硬件架构(ARM Core、ARMArchitecture)、s0c架构 2、讲解最新的Trustzone安全架构、TEE架构Secureboot等 3、讲解软件组件:TF-A(ATF)、optee_os、LinuxKernel、CA/TA应用程序等,及其交互模型、设计模型 4、多系统交互代码导读、安全论证实践、CA/TA示例实践、安全业务设计实践 5、我们学习的是全部硬件、全部系统,软硬结合,或者是大系统的软硬件融

2025-01-25 12:15:29 547 2

原创 大系统的标准规范介绍

当前的主流软件框架是怎样的?有什么标准规范吗?不同的SOC系统启动时有什么标准规范吗?在运行状态跨系统进行电源管理时有什么标准规范吗

2025-01-13 17:47:44 59

原创 optee gprof

什么是optee Gprof?如何开启optee gprof?optee gprof和linux gprof有什么不同?

2025-01-13 17:46:54 31

原创 optee ftrace

如何开启optee ftrace?optee ftrace和linux ftrace有什么不同?

2025-01-13 17:46:21 35

原创 optee的dump stack

optee os有哪些调试技术?是否支持dump stack?

2025-01-13 17:45:12 30

原创 TEE LOG是如何打印的

optee的打印log是如何实现的?在optee_os中的打印log函数是啥? 有几种log输出级别控制? 能否动态控制?在TA中的打印log函数是啥? 有几种log输出级别控制?能否动态控制?那如何控制optee os的log输出呢? 如何控制TA的log输出呢?除了uart打印log方案,还有别的方案吗?uart打印log方案中,串口终端会不会出现乱码,如何解决呢?在optee启动很早期的,uart driver还没初始化呢,这个时候如果需要看log有什么办法实现?在TA中关闭log后,T

2025-01-13 17:44:20 56

原创 optee plugins

什么是optee plugins?optee plugins的本质和原理是什么?optee plugins为得是解决哪些问题?

2025-01-13 17:42:30 22

原创 Multi instance和Multi Session

不同的CA调用同一个TA,会怎样? 怎样迸发的?什么是multi instance? 什么是multi session?什么是single instance? 什么是single session?如果配置multi instance或single instance?如果是multi instance的TA,那么不同的instance TA之间能够共享数据吗?不同的TA调用同时访问存储接口,是如何互斥的?同一个TA的不同的instance,能够访问同一个存储吗?对于一个single instan

2025-01-13 17:41:42 54

原创 optee的TA防回滚技术

什么是防回滚技术?optee_os是否支持防回滚?TA是否支持防回滚?storage是否支持防回滚?secure time是否支持防回滚?RPMB对防回滚的支持?

2025-01-13 17:40:51 29

原创 optee的标准错误码

optee os中的标准错误码是谁定义的?遵循什么规范?CA侧和TA侧都有标准错误码,两者有何区别?每家TEE厂商都是否完全follow标准错误码呢?

2025-01-13 17:39:42 46

原创 TA的签名和验签

optee中的TA是如何签名的?支持哪些签名算法?TEE OS中是如何打包验签使用的公钥的?能否同时支持多把签名密钥?

2025-01-13 17:38:43 46

原创 optee支持动态库

👉👉👉 《optee精选全集》付费专栏-[目录] 👈👈👈。

2025-01-13 14:26:27 41

原创 TA链接静态库的方法

optee os支持静态库吗?TA支持静态库吗?在编译TA的时候如何link一个静态库?如何讲一段代码编译出静态库?

2025-01-13 14:25:51 43

《ATFopteehafniuminuxxen代码精读》

《ATFopteehafniuminuxxen代码精读》

2025-02-14

《optee系统开发精讲》

【学员收益】 1、全体系的掌握optee的核心知识点(多核多线程、启动流程、各类API、TA/PTA/STA、driver、service、各类设计思想、内存管理、中断管理…); 2、掌握TEE OS的设计核心思想(不限与optee,对其它TEE也是如此),能够进入软件架构层次的各项设计; 3、快速熟悉大系统软件的各项组件,能够进行大系统软件之间的设计或排查问题 4、学习和理解理解Armv8/Armv9架构、Trustzone架构 5、技术水平提升N个level, 掌握快速的学习方法;

2025-02-13

学好ARM让领导刮目相看《Armv8Armv9架构从入门到精通(三期)》

5 课程大纲 ARM基础:Arm基础简介、ARM和SOC架构基本原理、ARM的4个异常等级4个安全状态2个执行状态、aarch64的重要寄存器、A64指令集 异常中断&gic:学ARM架构最重要的就是学习异常中断,异常中断是ARM架构的灵魂,学好异常中断再去学习其它模块,就像开挂。多系统、大系统之间的调用/切换靠着就是异常中断。 Trustzone:Trustzone安全架构是Armv8/Armv9架构中的重要一环,ARM架构中的每一个知识点都和安全有着密不可分割的关系,没有安全的学习是不完整的学习。 虚拟化:虚拟化也是ARM架构中的重要组成部分,虚拟化不仅仅是hypervisor,虚拟化不仅仅是normal world侧才有,在安全侧也有虚拟化。 Cache:在工程实践中,我们所遇到的最难的问题、超低概率性的问题,80%以上都是和cache相关的。cache做为ARM架构中最难的一个模块,我们有必要花时间将这部分学透学精,学通后你将信息满满、自信爆棚。 MMU:MMU做为ARM架构中最简单的一个模块,对于软件工程师几乎是透明的,MMU模块的学习是最具有性价比的一个知识点,花

2025-02-13

《飞书专栏-TEE文档》

《飞书专栏-TEE文档》

2025-02-13

飞书知识库文档-Arm专栏

我们有短域名,http://armdoc.hehezhou.cn,好记,在公司摸鱼学习更方便。 我们有讨论群、课程群等,交流/沟通/学习更方面。 我们开通权限更方便。不用要求您加入组织,也不用互加飞书好友。仅仅要求您扫码入飞书群,就可以自动获取权限。

2025-02-13

《aarch64汇编从入门到精通》-204页PPT+实验

【适用人群】 1、电子信息大类专业、计算机大类专业; 2、任何从事或想从事底层开发的; 3、嵌入式软件工程师 4、Linux内核驱动工程师 5、系统工程师、BSP工程师、驱动工程师 6、SOC/芯片底层软件开发者 7、汽车电子工程师 8、学生 … 9、既适合资深/高级工程师来查缺补漏,又适合初级工程师入门,也适合ASIC同事跨界学习,软硬件融合

2025-02-13

《8天入门TrustzoneTEE安全架构》

《8天入门TrustzoneTEE安全架构》

2025-02-13

《8天入门ARM架构》

《8天入门ARM架构》

2025-02-13

cache直播训练营回放+cacha专题-单售

cache直播训练营回放+cacha专题-单售

2025-02-13

《Arm架构-功耗管理精讲与实战》

目录 1、功耗管理背景及挑战 2、功耗管理架构演进及变迁 3、系统分区-电压域和电源域 4、功耗状态及功耗模式 5、功耗管理框架-SCP&PPU&LPI 6、功耗管理软件 7、功耗管理标准接口 8、多核处理器启动 9、睡眠锁与唤醒源 10、功耗管理实战 11、功耗数据与功耗收益评估 12、功耗管理与安全

2025-02-13

《Android KeymasterKeymint精讲》

课程大纲: Keystore/Keystore2/keymaster/keymint的概念 keymaster/keymint的版本演进 keymint接口示例 Keystore/keymaster/keymint/Strongbox 软件框架 Keystore软件框架 Keystore算法使用示例 要求进行用户身份验证才能使用密钥 Keystore-strongbox 算法使用示例 AuthToken的使用示例 A/B System AVB 2.0 AVB需求和设计 RootOfTrust 定义 Root of trust binding ROT的介绍 版本绑定 Trusty CA和TA通信的定义 Trusty CA和TA的代码 Keymaster和keymint HAL接口定义 Android attestation Key Android RKP Keystore异常示例 strongbox........

2025-02-13

《Android13安全架构详解》

课程介绍 讲解最新最全的Android安全架构,本课程包含但不限于以下课程: 密码锁/locksetting/gatekeeper 生物认证/指纹/人脸 keystore/keystore2/keymaster/keymint googlekey/attestationKey cts/vts/CDD解读 代码导读、流程分析 安全业务的设计 TEE简介

2025-02-13

《CATA开发从入门到精通》

【课程大纲】 从无到有编写代码,已完成的大纲如下: 2秒钟快速编写(clone)一组CA/TA程序 安全存储详解以及代码示例 CA到TA双向传参数的四种方式(value、temref、memref),区别?优缺点? 对称密码学算法aes的使用,CBC/ECB/CTR/XTS分组密码的使用,加密解密,pending等 aeskey的操作,如何随机生成aeskey(TEE_GenerateKey),objectHandle和aesbuf有什么区别?如何将handle 认证加密算法,如aes-GCM的使用 非对称密码学算法RSA的使用,包括加密、解密、签名、验签 RSA key的处理,包含如何生成RSA KEY,rsakey object如何转换成可见的数组,如何转换der,如何转换pem,反向又如何转换 ECC/ECDSA的使用 国密sm2 sm3 sm4的使用. 其中sm4包含加密、解密、签名、验签等 encode和decode的实现 TA属性的定制以及API的使用

2025-02-13

ATF系统安全从入门到精通

ATF系统安全从入门到精通

2025-02-13

《CoresightTraceDebug大合集》64节课16小时,6大主题, 685页PPT

《CoresightTraceDebug大合集》64节课16小时,6大主题, 685页PPT

2025-02-13

《Android15安全架构课程》

2025-02-13

Secureboot从入门到精通 训练营

【适用人群】 安全启动做为大系统启动中的重要环节,各类人群、各个方向的同学前来学习。 [行业]:汽车电子、手机、服务器、云计算、物联网、人工智能 行业的同学; [人群]:本科/研究生/博士、初级工程师、中级工程师、资深工程师、行业大佬,即适合小白入门,也适合大佬查缺补漏; 方向]:电子/计算机专业、芯片架构设计、芯片底层软件、芯片验证、BSP软件开发、内核驱动开发、固件开发、bootrom/bootloader开发、安全、虚拟化、大系统开发等; [行业链]:主机厂、OEM、OEM、tier1、SOC厂家、各级供应商;

2025-02-13

《optee系统架构从入门到精通》

optee的打印log是如何实现的? 在optee_os中的打印log函数是啥?有几种log输出级别控制?能否动态控制? 在TA中的打印log函数是啥?有几种log输出级别控制?能否动态控制? 那如何控制optee os的log输出呢?如何控制TA的log输出呢? 除了uart打印log方案,还有别的方案吗? uart打印log方案中,串口终端会不会出现乱码,如何解决呢? 在optee启动很早期的,uart driver还没初始化呢,这个时候如果需要看log有什么办法实现? 在TA中关闭log后,TA调用到optee_os后,optee_os的log级别是否受TA的trace_level控制? 在TA中控制log的输出,到底是怎样控制的?是靠宏比较?还是靠底层C语言代码检查flag? 如何自己实现一套TA log的输出机制?尽量不依赖平台、不依赖os。

2025-02-13

《optee入门实战版》

说明:trustzone/tee高配版、标准版、实践版,相互独立,互不包含、互不冲突。

2025-02-13

《TrustzoneTEE安全从入门到精通-高配版》

【课程大纲】 (课程目标) 最快速地了解,SOC安全架构、Arm安全架构、Trustzone/TEE分别是什么?应用场景是怎样的? 1、知道我学习什么,我要怎么去学习,从此之后有了一个明确的学习路线。 2、认识一些共同目标的人,相互讨论问题,共同进步。勤学、共学、助学。 3、ARM不再神秘,SOC不在神秘,安全架构不再神秘,Trustzone不在什么,TEE不在神秘,让您短期内就能cover住全局 4、助你技术能力大大提升,质地飞跃,跨级飞跃。 5、有了这些基础知识后,市面上出现的任何SOC、任何软件架构,你都不在害怕,都能在短时间内快速上手。

2025-02-13

Trustzone/TEE标准版-48节课/19.5h

【课程大纲】 (课程目标) 1、最快速地了解,SOC安全架构、Arm安全架构、Trustzone/TEE分别是什么?应用场景是怎样的? 1、知道我学习什么,我要怎么去学习,从此之后有了一个明确的学习路线。 2、认识一些共同目标的人,相互讨论问题,共同进步。勤学、共学、助学。 3、ARM不再神秘,SOC不在神秘,安全架构不再神秘,Trustzone不在什么,TEE不在神秘,让您短期内就能cover住全局 4、助你技术能力大大提升,质地飞跃,跨级飞跃。 5、有了这些基础知识后,市面上出现的任何SOC、任何软件架构,你都不在害怕,都能在短时间内快速上手。

2025-02-13

Arm精选-铂金VIP课程-总课时1000节+、总时长360h+、总价值3w+

讲师介绍 拥有 12 年手机安全、汽车安全、芯片安全开发经验,擅长 Trustzone/TEE/ 安全的设计与开发,对 ARM 架构的安全领域有着深入的研究和丰富的实践经验,能够将复杂的安全知识和处理器架构知识进行系统整理并清晰讲解,透过事务看本质,帮助学员快速入门和理解。

2025-02-13

《optee系统架构从入门到精通》

课程大纲 01-Trustzone简介 什么是TEE?TEE基础科普 TEE的生态介绍?有哪些TEE厂商?各有什么特点? 02-TEE技术简介 什么是TEE?TEE基础科普 TEE的生态介绍?有哪些TEE厂商?各有什么特点? 03-TEE的生态和应用 这么些年过来,TEE为什么一直不温不火? TEE在手机生态中表现如何?发展趋势如何? TEE在汽车电子领域又是怎样的?是否大有前途? TEE在服务器领域是否有应用? TEE在物联网IOT中是否有需求? TEE还在哪些领域中有需求?(电视机/机顶盒…) 04-TrustzoneTEE的学习方法 什么是trustzone?什么是TEE?什么是架构? Trustzone是硬件吗?是软件吗? 当前主流的软件和硬件是怎么样子的?有什么标准规范吗? 如何学习Trustzone/TEE? 学习Trustzone/TEE的最佳路径是怎样的? 什么是软硬件交互?软硬件是怎样交互的?如何学习软硬件交互的主流框架?

2025-02-10

向linux kernel中添加cmdline的四种方式

在android的Makefile中添加 vim build/core/Makefile INTERNAL_KERNEL_CMDLINE := $(strip $(BOARD_KERNEL_CMDLINE) buildvariant=$(TARGET_BUILD_VARIANT) $(VERITY_KEYID)) ifdef INTERNAL_KERNEL_CMDLINE INTERNAL_BOOTIMAGE_ARGS += --cmdline "$(INTERNAL_KERNEL_CMDLINE)" endif

2025-01-19

深度学习armv8armv9 cache的原理

ARM 架构刚开始开发时,处理器的时钟速度和内存的访问速度大致相似。今天的处理器内核要复杂得 多,并且时钟频率可以快几个数量级。然而,外部总线和存储设备的频率并没有达到同样的程度。可以 实现可以与内核以相同速度运行的小片上 SRAM块,但与标准 DRAM 块相比,这种 RAM 非常昂贵, 标准 DRAM 块的容量可能高出数千倍。在许多基于 ARM 处理器的系统中,访问外部存储器需要数十甚 至数百个内核周期。 缓存是位于核心和主内存之间的小而快速的内存块。它在主内存中保存项目的副本。对高速缓冲存储器 的访问比对主存储器的访问快得多。每当内核读取或写入特定地址时,它首先会在缓存中查找。如果它 在高速缓存中找到地址,它就使用高速缓存中的数据,而不是执行对主存储器的访问。通过减少缓慢的 外部存储器访问时间的影响,这显着提高了系统的潜在性能。通过避免驱动外部信号的需要,它还降低 了系统的功耗

2025-01-19

多核多cluster多系统之间缓存一致性概述

然后请思考: (1)、core0中的L1和L2 cache有一致性的要求吗?缓存和替换策略是怎样的? (2)、core0 cache 和 core1 cache的一致性是谁来维护? 遵从MESI协议吗? (3)、core0 cache 和 core4 cache的是怎么维护一致性的呢? (4)、custer0 L3 cache 和 cluster1 L3 cache的一致性是谁来维护?遵从什么协议吗? (5)、custer0 L3 cache 和 GPU的L2一致性呢?遵从什么协议? (6)、custer0 L3 cache 和 其它的 I/O device Master 一致性呢?遵从什么协议? (7)、DSU、ACE、CHI、CCI、CMN的概念?

2025-01-19

Trusty qemu + android环境搭建详细步骤

下载源码 mkdir trusty cd trusty repo init -u https://android.googlesource.com/trusty/manifest -b master repo sync -j32 编译 ./trusty/vendor/google/aosp/scripts/build.py generic-arm64 查看编译结果 ls build-root/build-generic-arm64/lk.bin 安装运行依赖 sudo apt install libpixman-1-dev libstdc++-8-dev pkg-config libglib2.0-dev libusb-1.0-0-dev

2025-01-19

SOC的多核启动流程详解

1、基础概念 请先自行理解以下4个概念: cold boot warm boot Primary boot Secondary boot 另外还两种配置: 你的reset地址是可编程的,则会配置 PROGRAMMABLE_RESET_ADDRESS=1 ,与之对立的则是你的 reset地址是不可编程的。 你在SOC启动的时候,首先只启动一个core,则会配置 COLD_BOOT_SINGLE_CPU=1 ,与之对立的则 是你的SOC启动的时候,所有core都上电了。

2025-01-19

SMMU学习这一篇就够了

访问非连续的地址 现在系统中很少再预留连续的memory,如果Master需要很多memory,可以通过SMMU把一些非 连续的PA映射到连续的VA,例如给DMA,VPU,DPU使用。 32位转换成64位 现在很多系统是64位的,但是有些Master还是32位的,只能访问低4GB空间,如果访问更大的地址 空间需要软硬件参与交换memory,实现起来比较复杂,也可以通过SMMU来解决,Master发出来 的32位的地址,通过SMMU转换成64位,就很容易访问高地址空间。 限制Master的访问空间 Master理论上可以访问所有的地址空间,可以通过SMMU来对Master的访问进行过滤,只让 Master访问受限的区域,那这个区域也可以通过CPU对SMMU建立页表时动态控制。 用户态驱动 现在我们也看到很多系统把设备驱动做在用户态,调用驱动时不需要在切换到内核态,但是存在一 些安全隐患,就是用户态直接控制驱动,有可能访问到内核空间,这种情况下也可以用SMMU来实 现限制设备的访问空间 设备虚拟化 例如设备虚拟化有多种方式,Emulate,Para-virtualized,以及Pass-t

2025-01-19

optee返回REE的几种方式

TEE(optee)切换到REE(linux)几种方式 1、开机时,ATF跳转到optee初始化,初始化完成后再回到normal world 2、在uboot或linux driver中,调用fast call切到optee获取信息,然后再回到normal world 3、标准的std调用到optee,此时又分三种情况: 当cpu在执行std任务tee_entry_std(…)时,任务处理完成了,需要切换REE; 当cpu在执行std任务tee_entry_std(…)时,如有REE服务, 这时候会RPC调用切换REE 当cpu在执行std任务tee_entry_std(…)时,来了一个foreign interrupt, 这时候cpu也会切回REE

2025-01-19

optee的共享内存的介绍

1、共享内存的介绍 share memory是一块内存区域, 用于non-secure world和secure world的通信. optee支持两种share memory: 连续的buffer,非连续的buffer optee是按照buffer来管理共享内存的,而不是按照pool来管理的. 每一个buf需要配置如下属性: buffer的起始地址和size 该buffer的cache属性 如果是被map到非连续的buf,则列出它所有的块(chunk) 配置成连续的share buffer CFG_CORE_RESERVED_SHM=y CFG_SHMEM_START and CFG_SHMEM_SIZE 定义起始地址和size 该memory的type是MEM_AREA_NSEC_SHM 在non-secure world需要调用OPTEE_SMC_GET_SHM_CONFIG来获取: share memory的物理地址和size share memory的cached属性

2025-01-19

optee的RPC设计(模型)详解

1、REE和TEE正向调用/反向调用的流程图 开机之后,启动tee-supplicant后,执行: a b 一次完整的TEE调用流程: 1 2 3 4 5 一次完整的RPC流程 : 6 7 b 8 c 2 一次完整的TEE调用流程(在TEE中又调用了RPC): 1 2 3 4 5 6 7 b 8 c 2 3 4 5 2、REE到TEE的正向调用 ① APP调用CA,CA调用libteec.so,libteec.so调用/dev/tee0节点,进入驱动的ioctl函数 ② ioctl函数中调用optee_do_call_with_arg(),该函数调用smc将CPU通过ATF切换到了optee ③④ optee处理完任务后,调用smc通过ATF返回到驱动中的ioctl(返回到②中刚才切出去的地方) ⑤ ioctl返回到应用程序

2025-01-19

optee4.0.0 qemu-v8的环境搭建篇(ubuntu20.10)

1、拉取代码 repo init -u https://github.com/OP-TEE/manifest.git -m qemu_v8.xml --repourl=https://mirrors.tuna.tsinghua.edu.cn/git/git-repo -b 4.0.0 2、下载工具链 make -f toolchain.mk toolchains 3、编译 make -f qemu_v8.mk all -j8

2025-01-19

openssl命令行:RSA的用法- 终极版

1、生成密钥 openssl genrsa -out test2048_priv.pem 2048 openssl rsa -pubout -in test2048_priv.pem -out test2048_pub.pem openssl genrsa -out test3072_priv.pem 3072 openssl rsa -pubout -in test3072_priv.pem -out test3072_pub.pem openssl genrsa -out test4096_priv.pem 4096 openssl rsa -pubout -in test4096_priv.pem -out test4096_pub.pem 2、查看密钥 openssl rsa -in test2048_priv.pem -text -out openssl rsa -in test3072_priv.pem -text -out openssl rsa -in test4096_priv.pem -text -out

2025-01-19

mbedtls移植体验

1、下载mbedtls源码 git clone https://github.com/ARMmbed/mbedtls.git 2、下载编写程序的模板 (我自己的/通用的) git clone https://gitee.com/baron_zz/code_template.git 3、拷贝native_c_template命名为mbedtls_test cp native_c_template mbedtls_test -r 4、将mbedtls 中的libary、include目录拷贝到mbedtls_test 中

2025-01-19

Linux内核驱动面试的100问

什么是Linux内核?与用户空间有何区别? Linux内核的主要功能有哪些? 内核模块是什么?它们是如何工作的? 描述内核空间和用户空间之间的通信机制。 什么是系统调用?请给出几个例子。 如何查看当前系统的内核版本? 解释Linux内核的模块化是如何实现的。 什么是设备树?它在Linux内核中扮演什么角色?

2025-01-19

Linux Kernel中断下半部分实现的三种方式

1、软中断 软中断是一组静态定义的下半部接口,有 32 个,可以在所有处理器上同时执行,类型相同也可以;在编 译时静态注册。 软中断的相关函数: 注册软中断 open_softirq 触发软中断 raise_softirq 执行软中断 do_softirq

2025-01-19

Linux Kernel中的系统调用分析

例如: SYSCALL(NR_flock, sys_flock),其实就是定义__arm64_sys_flock函数 SC_COMP(NR_ioctl, sys_ioctl, compat_sys_ioctl),其实就是定义__arm64_compat_sys_ioctl函数 在sys.c中定义并初始化了系统调用的tab表 (kernel-4.19/arch/arm64/kernel/sys.c) #undef __SYSCALL #define __SYSCALL(nr, sym) [nr] = __arm64_##sym, const syscall_fn_t sys_call_table[__NR_syscalls] = { [0 ... __NR_syscalls - 1] = __arm64_sys_ni_syscall, #include <asm/unistd.h> };

2025-01-19

Linux Kernel中的同步机制的介绍

既然是3条指令,那么就有可能并发,也就意味着返回的结果可能不说预期的。 然后在linux kernel的操作系统中,提供访问原子变量的函数,用来解决上述问题。其中部分原子操作的 API如下: atomic_read atomic_add_return(i,v) atomic_add(i,v) atomic_inc(v) atomic_add_unless(v,a,u) ldr x0, &a add x0,x0,#1 str x0,&a atomic_inc_not_zero(v) atomic_sub_return(i,v) atomic_sub_and_test(i,v) atomic_sub(i,v) atomic_dec(v) atomic_cmpxchg(v,old,new)

2025-01-19

linux kernel中的cmdline的详细介绍

1、向linux kernel添加cmdline的四种方式 在linux启动时候,串口log中会打印cmdline 在linux启动完成后,通过 cat /proc/cmdline也是可以看到cmdline. 那么cmdline是如何添加的呢? (1)、 在dts中的bootargs中添加 (2)、在BoardConfig中添加 vim device/xxx/xxx_evb/BoardConfigCommon.mk (3)、在uboot中添加 vim u-boot/common/cmd_bootm.c [ 0.000000] c0 0 (swapper) Kernel command line: earlycon androidboot.selinux=permissive uart_dma keep_dbgclk_on clk_ignore_unused initrd=0xd0000000,38711808 rw crash_page=0x8f040000 initrd=/recoveryrc boot_reason=0x2000 ota_status=0x1001

2025-01-19

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除