📱 MTK启动·Bootloader
30章
⚡ 系统启动 · 深度解析
v2.0
01
MTK平台概述
📟 芯片发展史
📊 市场地位
⚙️ 特性与优势
02
系统启动流程概览
🔋 电源键到桌面
📌 四阶段
🧩 ROM/Preloader/U-Boot/Kernel
03
硬件初始化基础
🧠 ARM Cortex-A
🔌 总线架构
⏱️ 时钟与复位
04
BootROM详解
💾 物理位置/存储
🎛️ 启动模式选择
⚡ 初始化流程
05
Preloader阶段 (上)
📥 加载与执行
📁 代码结构
🧮 DRAM初始化
06
Preloader阶段 (下)
🔌 UART/GPIO/PMIC
⬇️ 下载模式
🔐 签名验证
07
U-Boot阶段 (上)
⚒️ 编译与配置
🚀 start.S→board_init
🌲 设备树支持
08
U-Boot阶段 (下)
⌨️ 命令行界面
📦 环境变量
⚡ fastboot & AB升级
09
LK (Little Kernel) 详解
🔁 与U-Boot关系
📐 启动流程
🖥️ 显示/触摸初始化
10
Kernel启动准备
📦 Boot Image格式
📎 加载地址/解压
📂 Ramdisk作用
11
Linux Kernel启动 (上)
🏁 stext入口
📄 页表初始化
⚡ 中断向量表/CPU模式
12
Linux Kernel启动 (中)
🧠 memblock内存管理
📅 调度器初始化
⏲️ 定时器初始化
13
Linux Kernel启动 (下)
🔧 do_initcalls驱动
📁 文件系统挂载
🚀 init进程启动
14
init进程与Android系统
⚙️ /init启动
📜 init.rc解析
🧬 Zygote/SystemServer
15
MTK特有的启动优化
⚡ Quick Boot
❄️ 冷/热启动
📊 启动时间分析
16
安全启动 (Secure Boot)
🔗 信任链
🛡️ RSA/SHA签名
🚫 Anti-Rollback
17
TrustZone与TEE
🛡️ ARM TrustZone
🔐 OP-TEE实现
🔄 世界切换
18
下载模式与刷机
🛠️ SP Flash Tool
📟 DA作用
📡 UART/USB协议
19
NVRAM与校准数据
🗂️ NVRAM分区
📱 IMEI/SN存储
📖 读写流程
20
分区表解析
🧩 MTK分区布局
💽 GPT格式
📐 动态调整
21
eMMC与UFS存储
💾 eMMC协议
🚀 UFS协议
⚡ MTK & 性能优化
22
PMIC与电源管理
🔋 MT6358/6360
⚡ 上电时序
🔌 Pump Express充电
23
时钟与频率管理
🌲 时钟树
📈 DVFS CPU/GPU
🔁 总线频率调节
24
显示子系统初始化
🖥️ Display Controller
📺 MIPI DSI
🎬 LCD面板/开机动画
25
触摸屏与输入系统
👆 I2C/SPI驱动
📐 触摸校准
⌨️ Input Subsystem
26
传感器与外围设备
📳 加速度计/陀螺仪
🧠 Sensor HAL
🌀 Sensor Hub
27
WiFi/BT/GPS/NFC启动
📶 连接芯片固件
📡 WiFi/BT协议栈
🛰️ GPS定位引擎
28
Camera子系统初始化
📷 ISP初始化
🔬 Sensor驱动
📸 Camera HAL
29
音频子系统初始化
🎵 Audio DSP固件
🎚️ 音频编解码器
🔊 音频通路建立
30
启动问题调试与实战
🐞 黑屏/定屏/重启
📋 UART/ADB日志
🔌 JTAG调试