ARM/Linux/嵌入式/驱动必需知道的官网网站

快速链接:
.
👉👉👉 个人博客笔记导读目录(全部) 👈👈👈

  • 付费专栏-付费课程 【购买须知】:
  • ARMv8/ARMv9架构精选系列–目录 👈👈👈
  • ARMV8/ARMV9/Trustzone/TEE安全课程👈👈👈

目录

      • 1、分集目录
      • 2、专题目录详细
        • 2.1、【专题目录01】ARM基础/汇编指令集/寄存器
        • 2.2、【专题目录02】gic/异常/中断
        • 2.3、【专题目录03】mmu/cache
        • 2.4、【专题目录04】Trustzone&安全架构&安全技术
        • 2.5、【专题目录05】ARM架构-architecture
        • 2.6、【专题目录06】arm架构入门
        • 2.7、【专题目录21】ATF(TF-A)
        • 2.8、【专题目录22】optee精选系列
        • 2.9、【专题目录23】Linux Kernel
        • 2.10、【专题目录24】-Android13安全架构精选–持续更新中
        • 2.11、【专题目录25】大系统代码导读系列
        • 2.12、【专题目录31】-密码学基础/ cryptography
        • 2.13、【专题目录41】- 环境问题
      • 3、其它目录
        • 3.1、编程基础
        • 3.2、MTK
        • 3.3、社区开发
        • 3.4、汽车电子
        • 3.55、 cortex-m & ROTS
        • 3.6、操作系统
        • 3.7、转载文章
        • 3.8、搜藏区
        • 3.9、资料 总结&预览&下载区
        • 3.10、【宣传】 和 【程序人生】


1、分集目录

  • 【专题目录01】ARM基础/汇编指令集/寄存器
  • 【专题目录02】gic/异常/中断
  • 【专题目录03】mmu/cache
  • 【专题目录04】Trustzone&安全架构&安全技术
  • 【专题目录05】ARM架构-architecture
  • 【专题目录06】arm架构入门
  • 【专题目录21】ATF(TF-A)
  • 【专题目录22】-optee精选系列
  • 【专题目录23】Linux Kernel
  • 【专题目录24】-Android13安全架构精选–持续更新中
  • 【专题目录25】大系统代码导读系列
  • 【专题目录31】-密码学基础/ cryptography
  • 【专题目录41】- 环境问题
  • 【目录90】optee原理和实战指南 – Confidential
  • 博客目录汇总-其它

2、专题目录详细

2.1、【专题目录01】ARM基础/汇编指令集/寄存器

【register & assembly】

  • [register]-ARMV8-aarch64的通用寄存器介绍和总结
  • [register]-ARMV8-aarch64 部分系统寄存器总结(必背)
  • [register]-ARMV8系统中通用寄存器和系统寄存器的介绍和总结⚡
  • [register]-Cache Type Register(CTR)寄存器介绍
  • [register]-TCR(Translation Control Register)寄存器详解
  • armv8/arnv9的aarch64架构中系统寄存器的分类和总结

  • [ARM-assembly]-ARMv8-A64指令集总结和学习⚡
  • [ARM-assembly]-ARMV8-A64指令编码介绍
  • [assembly]-MMU的地址翻译(Address translation)指令介绍
  • [assembly]-ARMV8的cache的指令集介绍

2.2、【专题目录02】gic/异常/中断

  • .
    精选
  • 00-《armv8/armv9中断系列详解》-armv8/armv9中断系列详解-序言
  • 02-《armv8/armv9中断系列详解》-ARM gicv3/gicv4的总结-基础篇
  • 03-《armv8/armv9中断系列详解》-armv8/armv9中断系列详解-硬件基础篇
  • 04-《armv8/armv9中断系列详解》-Linux Kernel/optee/ATF/hafnium等操作系统的异常向量表的速查
  • 05-《armv8/armv9中断系列详解》-Linux kernel中断相关软件导读
  • 06-《armv8/armv9中断系列详解》-optee3.14中断相关软件导读
  • 07-《armv8/armv9中断系列详解-TF-A中断相关软件导读 – TODO
  • 08-《armv8/armv9中断系列详解》-中断示例展示(不含虚拟化部分)
  • 09-《armv8/armv9中断系列详解》-optee运行时来了一个REE(linux)中断–代码导读
  • 10–《armv8/armv9中断系列详解》-中断示例展示(虚拟化部分)

  • [答疑]-中断流程举例:在TEE侧时产生了FIQ,回到REE后为啥又产生了IRQ
  • [答疑]-中断流程举例:在REE(SCR.FIQ=1)侧时产生了FIQ,跳转到EL3后做了哪些事情?
  • Linux和optee双系统中1020-1023号的中断号的使用
  • EL3中设置的中断的routing模型
  • 50-armv8/armv9中断系列详解-中断示例展示(虚拟化部分)
  • 深入了解 ARMv9对不可屏蔽中断的支持
  • Linux Kernel支持NMI的三种方式
  • gic中某些寄存器写不了的解决方法


    Common
  • linux和optee的中断处理流程举例(gicv3举例)
  • 中断虚拟化-Host和Guest的中断处理流程举例(gicv3举例)
    SDEI初探-透过事务看本质


    gic相关
  • [gic]-ARM gicv3/gicv4的详细介绍-2020/08
  • [gic]-ARM gicv3/gicv2的总结和介绍-PPT
  • [gic]-ARM gicv2和gicv3的中断模型总结
  • [gic]-gicv2的bypass功能
  • [gic]-gicv3/gicv4的feature总结


    ARM Core相关
  • [ARM异常]-ARM Core如何响应中断的
  • [ARM异常]-ARMV8-aarch64异常和中断处理概念详细介绍
  • [ARM异常]-ARMV8-aarch64 异常(中断)是如何跳转到向量表的
  • [ARM异常]-异常进入和异常退出时的arm core的硬件自动的行为
  • [ARM异常]-armv8/armv9异步异常类型、路由、屏蔽
  • [ARM异常]-armv8/armv9同步异常的介绍
  • [ARM异常]-SPIs(共享中断)routing到指定CPU的方法
  • [ARM异常]-中断的术语介绍:target,assert,taken,acknowledge
  • [ARM异常]-ARM体系中是否支持中断嵌套
  • armv8的Serror的理解


    Linux Kernel
  • linux kernel中设置向量表基地址
  • Linux Kernel 5.14 arm64异常向量表解读-中断处理解读
  • Linux Kernel中断下半部分实现的三种方式
  • 探究实现中断下半部分的第四种方式
  • 在Linux Kernel中有没有定义和实现FIQ向量
  • 在linux、optee、ATF中的中断异常向量表
  • 思考:Linux Kernel的中断处理函数中是否会被其它程序(中断/异常)打断?
  • irq domain介绍和代码导读


    optee
  • optee3.14中的异常向量表解读–中断处理解读
  • optee中添加一个中断以及底层代码的相关解读
  • optee中关于异常向量表、中断等的深入思考
  • optee切换到REE的几种方式 — optee处理FIQ会主动切REE
  • optee的RPC设计(模型)详解 — optee处理FIQ和RPC相关
  • optee的RPC流程的代码详解
  • optee中的中断处理详解
  • optee中的thread_vector_table线程向量表— optee的线程向量表和中断没关系,但有相似的地方
  • optee对std smc的处理的详解
  • optee的fast call的介绍
  • optee运行时来了一个REE(linux)中断–代码导读
  • optee中断处理的介绍(概念篇)

2.3、【专题目录03】mmu/cache

《深度学习cache系列》 - 2022

  • 00-cache思考篇 ⚡
  • 01-简述cache的基本概念和使用场景 ⚡
  • 02-cache的基本概念原理扫盲 ⚡
  • 03-cache的查询原理 ⚡
  • 04-多核多cluster多系统之间缓存一致性概述 ⚡
  • 05-cache相关的系统寄存器 ⚡
    .

mmu

  • armv8/armv9 MMU深度学习 ⚡
  • 深度学习arm MMU一篇就够了
  • [mmu/cache]-ARMV8-aarch64的虚拟内存(mmu/tlb/cache)介绍-概念扫盲
  • [mmu/cache]-ARM MMU的学习笔记-一篇就够了
  • LearnTheArchitecture-MemoryManagement
  • Memory Management Examples
  • armv8/armv9页表属性(page descriptor)的详细介绍
  • Translation Regime介绍⚡
    .

其它

  • 深度学习armv8/armv9 cache的原理
  • [mmu/cache]-ARM cache的学习笔记-一篇就够了
  • 有关多核一致性的理解和思考
  • cache/TLB里分别都有什么?
  • 深度学习armv8/armv9 cache的原理
  • MMU关闭时Cache的缓存策略是怎样的
  • 多级cache之间的替换策略
  • A53 cache的架构解读
  • 深度学习arm cache系列–一篇就够了

  • [assembly]-MMU的地址翻译(Address translation)指令介绍
  • [assembly]-ARMV8的cache的指令集介绍
  • [register]-Cache Type Register(CTR)寄存器介绍
  • [register]-TCR(Translation Control Register)寄存器详解

2.4、【专题目录04】Trustzone&安全架构&安全技术

【Trustzone & 安全架构】

  • [trustzone]-ARM trustzone的安全扩展介绍-一篇就够了
  • 思考:通过MMU/TLB/Cache对安全内存攻击的可能性
  • [trustzone]-TZC400学习总结
  • [trustzone]-ARM Trustzone架构下的软件框图
  • [armv9]-ARMV8/ARMV9安全架构介绍 --arm安全架构趋势 ⚡
  • [armv9]-ARMV9 CCA 机密计算简介
  • [armv9]-动态Trustzone技术的介绍
  • [armv9]-Introducing-Arm-Confidential-Compute-Architecture


    【安全技术】
  • 01-防止Stack smash的技术
  • 02-防止stack buffer overflows攻击的方法 : ShadowCallStack
  • 03-防止stack buffer overflows攻击的方法 : Canary 漏洞缓解机制
  • 04-[armv9]-PAC:Pointer authentication和BTI:Branch target instructions介绍


    【安全博文】
    物理攻击规避(Physical Attack Mitigation)

2.5、【专题目录05】ARM架构-architecture

【architecture】

  • armv8/armv9的简介-学习这一篇就够了⚡
  • [architecture]-CPU(ARM)启动的第一条指令 ⚡
  • [architecture]-Cortex-A53的configuration signals
  • [architecture]-DBG、DMB、DSB 和 ISB指令介绍
  • [architecture]-DMB、DSB 和 ISB指令的深度解读 ⚡
  • [architecture]-arm exclusive机制介绍
  • [architecture]-ARMV8的The current Program Counter (PC)介绍
  • [architecture]-ARMV7架构下SecureMonitor双系统切换时保存和恢复哪些寄存
  • [architecture]-ARMV7架构下Linux Kernel的Userspace进程切换时保存和恢复哪些寄存器
  • [architecture]-Armv8 Cryptographic Extension介绍
  • [architecture]-ARMV8的RAS Extension(Reliability、Availability、Serviceability)介绍
  • [architecture]-ARM AMBA/AXI/ACE/LITE总线介绍
  • [architecture]-spin_unlock中是怎样让cpu退出standby模式的
  • [architecture]-ARM SMMU学习概念总结一篇就够了
  • [architecture]-处理器的顺序和乱序执行
  • [architecture]-armv8-aarch64种的SIMD/FP指令介绍
  • 01-缓存一致性—基础知识
  • 02-缓存一致性—实现big.LITTLE、GPU 计算和企业应用
  • 03-缓存一致性—提高性能和引入CoreLink CCI-500
  • CoreLink CCI-550的概念介绍
  • [armv9]-ARM最新架构为memcpy/memset底层的实现提供新的指令
  • ARMV8/ARMV9的执行状态的切换
  • SMMU学习这一篇就够了 ⚡
  • 思考: 什么时候需要disable MMU/i-cache/d-cache?
  • Cache多核之间的一致性MESI
  • 深度解读DynamIQ架构cache的替换策略
  • context switch的切换过程(TTBR0的切换/ASID的介绍)
  • 思考:EL3直接返回到EL1时需要配置EL2寄存器吗
  • 思考:开启MMU瞬间出现的问题以及解决方案
  • ARMV8/ARMV9或gic中某些寄存器写不了的解决方法
  • S3_0_C12_C12_7是啥寄存器
  • 最全讲解WFE和WFI进入低功耗的原理机制
  • FPU/VFP/ASE/NEON/MPE/SVE/MVE分别都是什么意思?
  • Neoverse Roadmap
  • SOC的多核启动流程详解
  • 深夜学习:有关Inner、Outer等相关词汇的理解
  • ARMv9新特性:虚拟内存系统架构 (VMSA) 的增强功能
  • Cortex-A715的介绍


    【技巧】
    操作系统中如何去读写一个armv8/armv9/gic寄存器


    【其它】
    [toolchains]-ARM ToolChains介绍
    [PSA]-PSA Certified简介


    【思考 & 实验 & 答疑】
    ARMV8 code reset和warm reset的理解
    有关中断唤醒源的思考
    PSCI多核启动-Linux Kernel从核启动-TEE开启多核


    [思考]-32位的应用程序为什么不能跑64位的应用程序
    [实验]-从汇编代码来看volatile关键字的作用
    [答疑]-ATF中异常向量表为何没有实现“Current Exception level with SP_ELx, x>0.“
    [答疑]-中断流程举例:在REE(SCR.FIQ=1)侧时产生了FIQ,跳转到EL3后做了哪些事情?
    [思考]-ARM LR寄存器的思考
    [答疑]-中断流程举例:在TEE侧时产生了FIQ,回到REE后为啥又产生了IRQ
    [问答]-EL1t和EL1h中的后缀t和h分别是什么意思
    [问答]-ARM文档中的†和‡的含义


    [记录]-Cortex-A76仅EL0支持aarch32

【 old文章】
以下都是辣鸡文章不用看!!!!


[ARM异常]-ARMV8的异常详细介绍
[ARM异常]-ARMV8的中断的routing和Mask表
[ARM异常]-ARM Core中与中断相关的寄存器
[ARM异常]-同步异常产生和返回(svc/hyc/smc/eret)
[ARM异常]-linux中(aarch/aarch64)异常向量表介绍
[ARM异常]-图解armv7/armv8的异常向量表和基地址
[ARM异常]-ARMV8-aarch32的异常向量表介绍
[ARM异常]-armv8-aarch64下当中断来时自动触发的硬件行为
[ARM异常]-ARMV8虚拟中断的介绍
[gic]-gicv3的1020-1023号的中断的使用
1、linux中的SGI(核间中断)IPI_RESCHEDULE详解
2、linux kernel的异常量表介绍
3、linux kernel中的中断处理流程
1、optee中的异常向量表的实现
2、optee的异常向量表-(irq,fiq,svc…)
[architecture]-ARMV8的一些总结-一篇就够了
[architecture]-Generic Timer
[architecture]-ARMV7的模式切换总结
[architecture]-ARMV8的Execution states介绍
[architecture]-ARMV8的Exception Level切换总结
[architecture]-ARMv8/armv7/linux的栈/sp的学习和总结
[Core]-ARM CORE的发展历史
[Core]-ARM-A系列Core的分类快速参考
[core]-ARM Core的分类和总结
[core]-ARMV7-A、ARMV8-A、ARMV9-A 架构简介
[core]-ARM A76学习笔记
[reference]-ARM Term术语汇总
[reference]-Features_in_A-profile
[reference]-armv8汇编学习-书籍推荐
[reference]-ARM缩写
[reference]-ARM/TEE/security等论文中的缩写和参考文献
[reference]-ARM core timeline
[reference]-MTK智能机(armv8)SOC分类和总结
[trustzone]-ARMV8的aarch64和aarch32环境下ELx级别的理解
[trustzone]-ARM Core的扩展和ELx级别的切换过程
[trustzone]-ARM trustzone技术下常见的软件框图
[trustzone]-ARM Trustzone架构下的软件框图
[Trustzone]-ARM Cortex-A Serial支持Trustzone和Hypervisor的总结
[hypervisor]-ARMV8的hypervisor技术介绍–InProgress
[hypervisor]-AArch64 (hypervisor)Virtualization学习笔记
[register]-04-ARMv8的寄存器简介和总结
[register]-05-ARMv8中常用系统寄存器详解
[ARM-assembly]-ARMV9-A64指令汇总-指令速查
[ARM-assembly]-汇编示例:c语言翻译成汇编
[ARM-assembly]-ARM ASM内联汇编学习
[ARM-assembly]-A64指令集合总结
[ARM-assembly]-C语言和汇编对比学习
[ARM-assembly]-全局变量/静态全局变量/初始化/未初始化变量的存放位置分析
[ARM-assembly]-ARM64汇编语言学习笔记
[ARM-assembly]-A64的load/store指令总结
[ARM-assembly]-ARMV8的exclusive和inexclusive的介绍
[ARM-assembly]-ARM交叉编译器下编译的各个镜像的反汇编文件分析
[ARM-assembly]-ARM向量浮点指令集 快速参考卡
[ARM-assembly]-Thumb指令集快速参考卡
[ARM-assembly]-ARMv8 A64 Quick Reference
[mmu/cache]-cache在linux和optee中的应用
[mmu/cache]-cache的一些基本概念介绍
[mmu/cache]-ARMV8 MMU内存管理中的Memory attributes和Cache policies

2.6、【专题目录06】arm架构入门

【专题:《learn-the-architecture系列》】

  • 01-Introducing the Arm architecture ⚡
  • 02-Armv8-A Instruction Set Architecture ⚡
  • 03_Introduction_to_AMBA_AXI ⚡
  • 04-TrustZone for Armv8-A ⚡
  • 05-Exception model ⚡
  • 06-GICv3_v4_overview ⚡
  • 07-Armv8-A virtualization ⚡
  • 08-Isolation using virtualization in the Secure World_Whitepaper ⚡
  • 09-LearnTheArchitecture-MemoryManagement ⚡
  • 10-Armv8-A memory model guide ⚡
  • 11-Memory Management Examples ⚡
  • 12-Generic Timer ⚡
  • 13-Introduction to security ⚡
  • 14-Providing protection for complex software ⚡
  • 15-Arm-Confidential-Compute-Software-Stack ⚡
  • 15.2-armv9的RME简介 ⚡
  • 16-Understanding the Armv8.x extensions ⚡


    【专题:《Armv8/armv9架构入门指南》】
  • 【第一章】- 前言-----此章节末尾有PDF下载地址
  • 《Armv8/armv9架构入门指南》-【第二章】- ARMv8‑A 架构和处理器⚡
  • 《Armv8/armv9架构入门指南》-【第三章】- ARMv8 基础知识⚡
  • 《Armv8/armv9架构入门指南》-【第四章】- ARMv8 寄存器⚡
  • 《Armv8/armv9架构入门指南》-【第五章】- ARMv8 指令集简介⚡
  • 《Armv8/armv9架构入门指南》-【第六章】- ARMv8指令集⚡
  • 《Armv8/armv9架构入门指南》-【第七章】- AArch64 浮点和 NEON⚡
  • 《Armv8/armv9架构入门指南》-【第八章】- 移植到 A64⚡
  • 《Armv8/armv9架构入门指南》-【第九章】- ARM 64 位架构的 ABI⚡
  • 《Armv8/armv9架构入门指南》-【第十章】- AArch64 异常处理⚡
  • 《Armv8/armv9架构入门指南》-【第十一章】- 缓存cache⚡
  • 《Armv8/armv9架构入门指南》-【第十二章】- 内存管理单元⚡
  • 《Armv8/armv9架构入门指南》-【第十三章】- 内存排序⚡
  • 《Armv8/armv9架构入门指南》-【第十四章】- 多核处理器⚡
  • 《Armv8/armv9架构入门指南》-【第十五章】- 电源管理⚡
  • 《Armv8/armv9架构入门指南》-【第十六章】- big.LITTLE 技术⚡
  • 《Armv8/armv9架构入门指南》-【第十七章】- 安全⚡
  • 《Armv8/armv9架构入门指南》-【第十八章】- 调试⚡
  • 《Armv8/armv9架构入门指南》-【第十九章】- ARMv8模型⚡

2.7、【专题目录21】ATF(TF-A)

【ATF】

  • ATF快速扫盲(Quick Start)
  • ATF的代码学习篇-一篇就够了
  • MTK:一篇文章了解ATF原理
  • 程序之间的跳转模型 ⚡ –-----学习arm的最最干货!! 精髓
  • Linux Kernel/optee/ATF等操作系统的异常向量表的速查
  • ATF的异常向量表介绍-(irq,fiq,smc,hyc…)
  • 中断配置:SCR.FIQ/SCR.IRQ的配置详解
  • smc指令详解
  • 思想解读:TF-A(ATF)中栈指针和栈内存的设计思想解读
  • TF-A代码阅读: 双系统切换时是如何保存寄存器的(cpu_context介绍)
  • TF-A代码阅读: SP_EL3栈内存-cpu_data内存的介绍(cpu_context介绍)
  • TEE/REE系统切换时ATF的寄存器的保存和恢复
  • ARM级别/异常/状态切回时候的寄存器保存与恢复
  • ATF RT-SVC的介绍
  • ATF的RT_SVC的详解(runtime service)
  • ATF启动–BL31跳转到optee和uboot
  • ATF(TF-A)的编译方法
  • ATF makefile的导读
  • armv8 boot流程(一):ARMV8 code reset和warm reset的理解
  • armv8 boot流程(二):软件如何判断当前是cold reset/warm reset/primary boot/senondary boot
  • armv8 boot流程(三):TF-A(ATF)中mailbox的使用
  • ATF中RESET_TO_BL31宏的含义
  • 启动-异常学习笔记-代码导读
  • FFA interface
  • FF-A架构中CA到TA的调用模型

【专题:《ATF/FF-A/specification文档学习系列》】

类别博文说明
overview01-ATF里面都有什么?
02- Image Terminology
03-System Control Processor Firmware简介
Components01-Secure Payload Dispatcher (SPD)
02-Activity Monitors
3-Arm SiP Services
4-Debug FS
5-Exception Handling Framework
6-Firmware Configuration Framework
7-Firmware Update (FWU)
8-Measured Boot Driver (MBD)
9-Maximum Power Mitigation Mechanism (MPMM)
10-Platform Interrupt Controller API
11-Reliability, Availability, and Serviceability (RAS) Extensions
12-Library at ROM
13-SDEI: Software Delegated Exception Interface
14-Secure Partition Manager
15-Secure Partition Manager (MM)
16-FF-A manifest binding to device tree
17-Translation (XLAT) Tables Library
18-Chain of trust bindings
19-Realm Management Extension (RME)
20-Granule Protection Tables Library
System Design1-Alternative Boot Flows
2-Authentication Framework & Chain of Trust
3-Arm CPU Specific Build Macros
4.-Firmware Design
         4.11-固件映像包 (FIP)
5-Interrupt Management Framework
6-PSCI Power Domain Tree Structure
7-CPU Reset
8-Trusted Board Boot
9-Building FIP images with support for Trusted Board Boot
specification01_SMC_Calling_Convention(SMCCC)
02-Power_State_Coordination_Interface(PSCI)
03_Software_Delegated_Exception_Interface (SDEI)
04-System_Control_and_Management_Interface(SCMI)
05-Trusted_Board_Boot_Requirements(TBBR)
FF-A[FF-A]-01-Introduction
[FF-A]-02-Concepts
[FF-A]-03-Partition setup

2.8、【专题目录22】optee精选系列

optee目录

  • .
    环境搭建
  • optee3.8 qemu_v8的环境搭建篇
  • optee3.12.0 qemu_v8的环境搭建篇
  • optee3.14.0 qemu_v8的环境搭建篇
  • optee3.14.0 qemu_v8的环境搭建篇(ubuntu20.10)–终极篇
  • optee3.14 qemu_v8的环境搭建篇(ubuntu20.04)–镜像方式-直接使用
  • optee3.16.0 qemu_v8的环境搭建篇(ubuntu20.10)
  • optee3.18.0 qemu_v8的环境搭建篇(ubuntu20.10)
  • FF-A学习环境搭建:基于qemu_v8/spmc_at_el3/optee(ubuntu20.10)


    存储系统/Storage
  • optee的存储系统模型详解


    密码学接口/Cryptography/密钥
  • optee的key的派生
  • optee中的密码学算法注册模型


    异常/中断/smc/RPC/双系统切换
  • optee中的异常向量表解读–中断处理解读
  • optee中关于异常向量表、中断等的深入思考
  • optee中添加一个中断以及底层代码的相关解读
  • optee运行时来了一个REE(linux)中断–代码导读
  • 中断/gic代码导读:在哪里配置安全中断的?
  • optee中的线程向量表(thread_vector_table)
  • optee的fast call的介绍
  • optee对std smc的处理的详解
  • 驱动调用Userspace的设计与实现
  • optee的RPC设计(模型)详解
  • 探究optee中的RPC机制中的上下文切换和PC跳转
  • optee的RPC流程的代码详解
  • optee返回到REE的几种方式
  • optee进入和退出方式的设计模型
  • Linux Kernel(tee_worker)到TEE的调度模型
  • tee_workder线程模型的介绍
  • 再谈optee中是否支持多线程
  • optee中的线程调度


    内存管理
  • optee的内存管理的详细介绍
  • optee内存管理和页表建立
  • optee内核中malloc函数的原理介绍
  • optee应用程序中malloc函数的原理介绍
  • optee中的arm64的virt_to_phys的实现
  • optee中core_init_mmu_regs函数解读
  • optee的共享内存的介绍
  • optee的Share Memory介绍
  • optee中共享内存的类型
  • optee中静态共享内存的注册
  • optee中MMU内存管理模型-页表的建立模型
  • optee的内存管理 : 将内存加入到页表去管理
  • optee的内存管理 :页表的创建过程
  • optee3.14中MMU页表查询的所需配置–深入解读
  • 在enable mmu之前可以使用mmu了


    CA/TA/PTA的原理开发
  • optee的error codes
  • TA的签名和验签
  • optee的Offline Signing of TAs方案
  • 编写TA链接静态库的方法
  • 通过TA binary查看TA的uuid和stack
  • opteeTA启动的过程(open_ta的过程)
  • optee中User TA的加载和运行
  • CA/TA通信的share memory设计思想解读
  • TEEC_RegisterSharedMemory和TEEC_AllocateSharedMemory的区别
  • TEEC_AllocateSharedMemory()和 TEEC_RegisterSharedMemory()的总结
  • CA/TA参数传输中tmpref,memref和Value的区别
  • Globalplatform TEE api介绍
  • TEE Internal Core API总结
  • GP API的归类和总结
  • TEEC_Context和TEEC_InitializeContext介绍
  • Trusted Applications介绍
  • optee编译TA时的属性配置和设置


    core
  • optee的启动过程
  • optee中utee syscall的实现(系统调用实现)
  • optee系统服务/service的实现方式
  • optee中的panic函数实现
  • optee的线程介绍
  • 思想解读:optee中的多线程处理
  • optee:kernel space调用user space进程时候的硬件行为
  • 32位的应用程序和64位的应用程序有什么区别
  • optee中spinlock的实现原理详解
  • optee中mutex的实现方式
  • optee的栈指针和栈内存的介绍
  • optee aarch64体系下栈的设计(sp_el0/sp_el1)
  • optee中使用虚函数(平台客制化)的设计模型


    Presentations
  • PKCS#11 in OP-TEE
  • optee HSM的实现
  • ASLR in optee
  • Secure Partitions in optee


    业务&架构&设计
  • optee的TLS接口的设计与实现
  • 基于optee的TEE HSM的设计与实现
  • 基于optee的第三种存储系统(persist存储)的设计与实现 --TODO 🚫
  • 基于optee的GP Socket API的设计与实践
  • optee中RPC机制的应用与实践


    old
  • optee中的异常向量表的实现
  • optee的异常向量表-(irq,fiq,svc…)
  • optee中的中断处理详解
  • optee代码中和ARM硬件相关的函数解读🚫
  • optee栈的介绍(一)
  • optee栈的介绍(二)
  • optee同步机制的介绍🚫
  • optee堆Virtualization(hypervisor)的支持

其它TEE目录

  • Trusty TEE简介

(2022)

ongoing

  • .
    optee系统的组件
  • CA/TA
  • ClientLib、supplicant
  • TEE-OS
  • linux_kernel_tee_driver
  • 组件的切换
    REE到TEE的调用
    TEE到REE的反向调用
    ShareMemory的介绍
    参数的传递


    optee内核介绍
  • optee内核的启动
  • optee内核的进入和退出方式
  • Fast call和STD call
  • 内置程序 – STA/ETA/PTA/driver/service
  • 系统调用
  • 中断机制
  • 内存管理
  • 线程和调度
  • 多核与多线程
  • 存储系统
  • 密码学系统
  • 密钥系统

CA/TA开发(收费区)

TitleDescriptionStatus
01-How to setup SDK and compile TAsdone
02-CA/TA编程:aes demodone
03-CA/TA编程:aes_auth demodone
04-CA/TA编程:hash demodone
05-CA/TA编程:hmac demodone
06-CA/TA编程:rsa demodone
07-CA/TA编程:rsakey demodone
08-CA/TA编程:ecdsa demo
09-CA/TA编程:storage demodone

代码导读

  • 中断/gic代码导读:在哪里配置安全中断的?

2.9、【专题目录23】Linux Kernel

  • 快速写一个驱动程序并由User程序调用

  • Linux Kernel中的同步机制的介绍
  • Linux Kernel(armv8-aarch64)的原子操作的底层实现
  • Linux Kernel5.10的核间通信(SGI中断)的本质
  • Linux Kernel5.10的软中断(softirq)的本质
  • 经典面试题-Linux Kernel面试题

  • 一文了解Linux Kernel中密码学算法的设计与应用
  • Linux Kernel中非对称密码算法的实现
  • cryptocell学习笔记

  • Linux内核编码风格
  • Linux Kernel中local_irq_enable()和local_irq_disable()的实现
类别博文说明
bootup启动篇1、linux kernel中的FDT的解析
2、向linux kernel中添加cmdline的四种方式
3、在linux kernel或android中解析cmdline参数
4、linux kernel中的cmdline的详细介绍
5、linux kernel中的__setup()的调用
6、linux kernel中的第一个程序:init程序的调用
7、linux kernel中的module_init/initcall代码导读
reserved
core1、Linux Kernel中的系统调用
2、ARMV7架构下Linux Kernel的Userspace进程切换时保存和恢复哪些寄存器
arch强相关篇1、linux kernel中local_irq_disable()、local_irq_enable()代码解读
2、linux kernel中cache代码解读
3、linux kernel中的virt_to_phys代码解读
4、linux kernel进程切换(寄存器保存与恢复)
5、linux kernel中的栈的介绍
6、linux kernel中的进程栈
reserved
同步机制1、linux kernel的spin_lock的详细介绍
2、linux kernel的spinlock代码导读和分析
3、linux kernel的spinlock在armv7和armv8中的不同
4、linux kernel的信号量semaphore的代码导读和介绍
5、wait_for_completion和complete总结
6、linux kernel同步方法的总结
7、Linux Kernel中spinlock的设计与实现
8、Exclusive monitor在spinlock中的应用
reserved
中断/异常1、linux中的SGI(核间中断)IPI_RESCHEDULE详解
2、linux kernel的异常量表介绍
3、linux kernel中的中断处理流程
4、在linux、optee、ATF中的中断异常向量表
5、linux kernel中设置向量表基地址
6、Linux Kernel 5.14 arm64异常向量表解读-中断处理解读
7、在Linux Kernel中有没有定义和实现FIQ向量
8、Linux Kernel中断下半部分实现的三种方式
9、探究实现中断下半部分的第四种方式
reserved
内存管理1、linux kernel的virtual kernel memory layout介绍
2、linux kernel内存管理学习篇
3、Linux Kernel 5.10 aarch64体系对TTBR寄存器的设置
reserved
crypto1、Armv8 Cryptographic Extension在linux中的应用>
2、Armv8 Cryptographic Extension介绍
3、Linux Kernel aarch64 Crypto原理和框架介绍
4、Linux kernel内核调用crypto算法的方法
5、Linux Kernel aarch64的ARM-CE aes-ecb的底层代码导读
6、Linux kernel crypto的介绍
reserved
技巧使用篇1、linux kernel使用技巧
2、linux kernel的问与答
3、linux kernel的ErrorLog随记录
4、linux kernel变长数组使用示例
5、linux kernel中的数据结构和算法
6、linux kernel中netlink的使用示例
reserved
其它1、ioctl,unlocked_ioctl,compat_ioctl之间的区别resrved

1、Linux内核设计与实现学习笔记目录

2.10、【专题目录24】-Android13安全架构精选–持续更新中

类别博文参考/说明
securityTEE的学习方法
20分钟视频课程----TEE的学习方法

gatekeeper
1、android gatekeeper(locksetting密码锁)学习这一篇就够了 ⚡-- 入门级,超赞哦!
2、Android locksettings/gatekeeper代码导读
3、Android Gatekeeper流程深度解剖
4、android密码解锁/指纹解锁返回的authToken深度解剖
5、LockSettingsService的setLockCredentialInternal函数详解
6、Android手机使用命令行增加/删除/修改密码(password/pin/pattern)
7、 【代码导读】 Gatekeeper代码导读

生物支付: 人脸/指纹
1、android生物认证(指纹/人脸)学习这一篇就够了 ⚡
2、指纹/人脸/gatekeeper学习笔记⚡

keymaster/keystore
1、Android keymaster的介绍和总结
2、Android keymaster4.0- device集成笔记
3、Android keystore/Keymaster的代码导读
4、Android Keystore/keymaster的错误码
Gatekeeper-官方参考:
1、Gatekeeper官方文档
2、Gatekeeper接口函数介绍-hal
3、Gatekeeper接口函数介绍-type

生物支付-官方参考:
1、生物支付官方文档
2、fingerprint接口函数介绍-hal
3、fingerprint接口函数介绍-type
4、face接口函数介绍-hal
5、face接口函数介绍-type

keymaster-官方参考:
1、keymaster官方文档
2、keymaster接口函数介绍-hal
3、keymaster接口函数介绍-type
Security2 注意 : 在 S 开始,keystore2/keymint 取代了 keystore, 所以keystore/keymaster就不需要看了.

Keystore2/keymint
1、全网第一篇–keystore/keystore2/keymaster/keymint 深入学习 ⚡
2、keystore/keymaster代码导读系列 --随记
3、keystore2代码导读笔记
4、googlekey(attestation key)学习笔记 – 以MTK平台设计为例

trusty
1、官网拉取Trusty-TEE的代码
Android Verify Boot(AVB)1、Android Verity Boot(AVB)初探
2、Android Verity Boot(AVB)验证原理
3、Android Verity Boot的参考资料
DRM/Widevine1、如何检查您的 Android 设备是否支持 Widevine DRM
2、什么是 Widevine 数字版权管理 (DRM),它为什么重要
vts/cts1、Android11有哪些vts
2、如何编写一个测试HIDL接口的vts(gtest)的testcase
3、VTS工具测试指定的testcase函数(以VtsHalKeymasterV4_0TargetTest为例)
reserved
build/makefile1、Android Makefile编译流
2、Android makefile编译流程(二)
3、剖析boot.img的制作流程
4、System.img是如何打包的
reserved
启动1、android/linux中的第一个init程序的启动
问题1、Device is not certified by Google
Android CDD解读 android CDD–TEE相关解读
1、解读Android12 CDD中针对隔离环境(TEE)的要求
TODO 全网第一篇震撼史无前例:Strongbox的设计模型讲解–ongoing
类别博文参考/说明
zerotouch1、Google zerotouch方案介绍🚫

2.11、【专题目录25】大系统代码导读系列

【《代码导读》】


CA/TA组件介绍

  • TEE组件介绍
  • CA/TA调用模型-代码导读
  • RPC模型:代码导读
  • Storage API的介绍

启动

  • 启动-异常学习笔记-代码导读
  • Secureboot

Trustzone

  • Trustzone–cpu_context的初始化以切换 – 双系统的安全身份如何切换的?
  • Trustzone–TZC400设置安全内存
  • Trustzone–配置中断的安全属性

mmu

  • MMU代码导读笔记 – TODO

2.12、【专题目录31】-密码学基础/ cryptography

【专题:《密码学基础系列》】

  • 01-密码学基础-前言
  • 02-密码学基础-基础知识介绍
  • 03-密码学基础-数字摘要hash的介绍
  • 04-密码学基础-aes和分组密码的介绍
  • 05-密码学基础-RSA的介绍
  • 06-密码学基础-混合密码系统
  • 07-密码学基础-国产密码算法(国密算法sm2/sm3/sm4)介绍
  • 公钥密码学标准(Public Key Cryptography Standards, PKCS)
  • pkcs#11和Cryptoki的介绍
  • X.509证书的介绍
  • CA证书概念介绍

    -可信平台模块(TPM)概念介绍
  • mbedtls移植体验

加解密原理基础:
[crypto]-01-对称加解密AES原理概念详解
[crypto]-02-非对称加解密RSA原理概念详解
[crypto]-03-数字摘要HASH原理概念详解 --inprogross&私有
[crypto]-04-国产密码算法(国密算法sm2/sm3/sm4)介绍
[crypto]-05-转载:PKCS #1 RSA Encryption Version 1.5介绍
[crypto]-05.1-PKCS PKCS#1 PKCS#7 PKCS#11的介绍
[crypto]-06-CA证书介绍和使用方法
[crypto]-10-openssl版本介绍


crypto engine硬件基础:
[crypto]-30-The Armv8 Cryptographic Extension在linux中的应用
[crypto]-31-crypto engion的学习和总结


代码示例:
[crypto]-50-base64_encode和base64_decode的C语言实现
[crypto]-51-RSA私钥pem转换成der, 在将der解析出n e d p q dp dq qp
[crypto]-51.1-python的aes加解密/rsa生成密钥对/rsa加解密/hmac加密
[crypto]-51.2-从rsa公钥中提取N和E
[crypto]-51.3-C语言实现:RSA的因子(nedp…)拼接pem
[crypto]-52-python3中rsa(签名验签加密解密)aes(ecb cbc ctr)hmac的使用,以及unittest测试用
[crypto]-53-openssl命令行的使用(aes/rsa签名校验/rsa加密解密/hmac)


总结:
[crypto]-90-crypto的一些术语和思考

2.13、【专题目录41】- 环境问题

【HOW TO】
[HOW TO]-virtualbox下安装ubuntu14.04超详细
[HOW TO]-图解virtualbox下安装ubuntu20.04虚拟机
[HOW TO]-ubuntu下快速搭建http
[HOW TO]-在ubuntu20.10上搭建SVN Server
[HOW TO]-ubuntu下安装selenium
[HOW TO]-ubuntu20.04 上安装jenkins
[HOW TO]-ubuntu20.10搭建opengrok服务指南
[HOW TO]-ubuntu20.10安装opengrok指南
[HOW TO]-centos环境搭建opengrok笔记
[HOW TO]-openjrok维护手册
[HOW TO]-ubuntu20.10环境上安装workpress
[HOW TO]-外网访问自己的HTTP服务器
[HOW TO]-git/gerrit配置方法
[HOW TO]-windows安装wget工具
[HOW TO]-堡垒机快捷登陆SSH服务器-expect自动输密码
[HOW TO]-python venv虚拟环境
[HOW TO]-ubuntu20.10上安装Pulse Secure客户端
[HOW TO]-Ubuntu 20.04修改终端标题栏文字
[HOW TO]-How to install maven
[HOW TO]-How to Install Python Pip on Ubuntu 20.04
[HOW TO]-如何使用Sphinx编写漂亮的文档
[How TO]-如何编写Linux kernel documentation
[HOW TO]-下载android官方源码
[HOW TO]-android手机安装google play
[HOW TO]-oppo手机安装google play
[HOW TO]-从github拉取optee代码拉不下来怎么办?
[HOW TO]-VirtualBox的虚拟机通过宿主机代理上网
[HOW TO]-官网拉取Trusty-TEE的代码
[HOW TO]-github/gitee的仓库统一管理
[HOW TO]-github/gitee私有项目用户名密码免输入
[HOW TO]-Ubuntu下 Tomcat 9 的设置办法
[HOW TO]-ubuntu安装samba


【Issue Fixed】
[Issue Fixed]-svnadmin: warning: cannot set LC_CTYPE locale
[Issue Fixed]-执行脚本时出现invalid option错误
[Issue Fixed]-Pulse r9.1 embedded browser install failure
[Issue Fixed]-不能为虚拟电脑xxx打开一个新任务
[Issue Fixed]-GCC编译[-Werror,-Wformat]
[Issue Fixed]-分卷压缩解压:gzip: stdin: not in gzip format
[Issue Fixed]-Ubuntu开发环境下遇到的环境问题梳理
[Issue Fixed]-repo-error: .repo/manifests/: contains uncommitted changes
[Issue Fixed]-fatal: unable to access xxx: server certificate verification
[Issue Fixed]-server certificate verification failed. CAfile: /etc/ssl/certs/ca-certificates.crt CRLfile: none
[Issue Fixed]-Ubuntu20.04执行apt-get update报错:404 Not Found [IP: 91.189.91.38 80]


【工具】

  • [工具]-PGP的使用方法
  • [工具]-文件明文导出工具
  • [工具]-电脑磁盘爆满了,但又不知道哪些文件占用的空间,怎么办?
  • [工具]-文件明文导出工具
  • Chrome好用的插件
  • Beyond Compare4长期使用方法
  • csdn自定义模块backup
  • UltraEdit-64中文安装


    【小脚本】
  • Linux Shell–批量创建软连接 : create_softLink.sh


    【笔记】
  • window使用笔记
  • ubuntu常用命令


    【其它】
    [Skill]-Markdown编辑器技巧
    [download]-软件下载和安装-old
    [download]-软件下载地址-百度网盘

3、其它目录

3.1、编程基础

类别博文说明
git1、git命令总结
C语言1、leetcode-C语言代码练习
2、C语言:构建一个二级链表并完成增删改查
3、printk格式说明符-查表
指令速查1、ARM/TEE/security等论文中的缩写和参考文献
2、Linux shell/makefile/gic/python指令速查-inprocess
reserved
makefile1、GCC,Clang,make,cmake,makefile,CMakeLists.txt的概念
Linux Shell1、Linux shell字符串截取与拼接
2、Linux Shell的dirname和readlink的使用
Python1、python编写一个压测重启的测试程序
2、python编写测试工具:tee的相关vts测试
3、python自动化测试locksetting/gatekeeper/keymaster/vts等
4、python3:读取目录下的文件名字生成html所需的格式
5、python批量处理jira上的issue
6、python脚本:从博客导读页中提取博客的id号🚫
7、python脚本:增加csdn阅读量🚫
8、itchat群机器人的自动画实现
9、微信公众号开发(python+werobot)-自动回复

环境搭建:
1、python venv虚拟环境
写代码的技巧1、C语言中compile time assert的实现
经验/总结
travis-ci中的checkpatch工具使用
linux shell变量while循环内改变无法传递到循环外
[python报错:UnicodeDecodeError: ‘ascii‘ codec can‘t decode byte 0xe0 in position 0: ordinal not in rang]

3.2、MTK

类别博文说明
integrate TEE1、MTK平台Trustonic-TEE使用-问题记录🚫
2、MTK for Google AttestationKey介绍
3、MTK平台命令行写入googlekey的步骤🚫
4、MTK代码中enable trustonic-TEE🚫
5、MTK豆荚TEE的TZ driver学习笔记🚫
6、MTK tee.img的打包原理介绍
7、MTK方案下tee.img的打包方式的详细拆解
reserved
platform feature1、MTK的oemlock介绍
2、android手机系统的启动流程-secureboot流程(以MTK平台为例)
preloader1、MTK preloader的ASSERT函数的实现🚫
2、MTK镜像(PL/ATF/TEE/LK/kernel)的memory layout介绍/启动地址介绍/lds文件分析🚫
LK1、MTK平台LK中的APP_START(LK app service)介绍

3.3、社区开发

  • Repo 命令参考资料
  • git/gitee操作手册
  • git命令总结
类别博文说明
git/github1、github:已经提交并push后再次追加提交
Docs1、如何编写Linux kernel documentation
Android1、下载android官方源码

3.4、汽车电子

  • 汽车开放系统架构(AUTOSAR)简介
  • ASIL:汽车功能安全等级总结

3.55、 cortex-m & ROTS

  • ARMV8-M学习笔记-入门
  • armv8-M(cortex-m) Trustzone总结和介绍
  • ARM Cortex-M学习简介

3.6、操作系统

  • L4Re Runtime Environment 学习资料
  • seL4 microkernel学习资料
  • 官网拉取fuchsia代码

3.7、转载文章

  • 万字长文—手把手教你加固内核安全配置

3.8、搜藏区

C语言__attribute__的使用
LoyenWang博客园 — 虚拟化技术
jasonactions博客园 —armv8学习
Linux内核设计与实现学习笔记目录
骏的世界
Peter.liu的csdn
伟林大佬博客 – 公众号:唐家湾畔老码农
许庆伟 – 内核功守道

3.9、资料 总结&预览&下载区

China Linux Kernel – PPT 预览 & 下载

3.10、【宣传】 和 【程序人生】

课程宣传

  • 付费专栏-付费课程-【购买须知】
  • 【精选】ARMv8/ARMv9架构入门到精通-[前言]
  • ARMv8/ARMv9视频课程-Trustzone/TEE/安全视频课程
  • ARMV8/ARMV9/TEE安全等视频课程上线了
  • CSDN课程推荐:《【专题】SecureBoot精讲》系列课程上线
  • CSDN课程推荐:《ARMv8/ARMv9架构学习》系列课程上线-56节18小时
  • 如何高效学习ARMv8/ARMv9架构知识
  • ARMV8-ARMV9架构学习知识图谱
  • 关于我博客付费专栏:写给粉丝的致歉信
  • 再见了哔哩哔哩-哔哩哔哩课程总结

自己的宣传

  • 一位底层工程师参加谷歌开发者大会后的感想
  • 【1024程序员节】创作创富-对话议题-直播笔记

别人的宣传

  • 创作创富,程序员资产配置的“武林秘籍 --新浪财经
  • 创作创富,程序员资产配置的“武林秘籍” --网易
  • 【1024程序员节】程序员创作创富 — CSDN创富对话社区
  • 程序员如何赚到人生第一个 100 万 —csdn程序人生
  • 经纬恒润:下一代汽车电子软件开发与测试论坛
  • 11月18-19日云端见 | 合作 · 高效—下一代汽车电子软件开发与测试论坛

更多推荐

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