1 Overview
This chapter explains overall scheme
of internal ROM(iROM) boot
with memory devices such
as Samsung MoviNAND/iNand, MMC/SD Card ,pure Nand, eMMC, eSSD, UART
and USB boot
with iROM
is supported.
# 本章阐述了iROM 启动内存设备的总体方案,iROM 支持如三星 MoviNAND /iNand, MMC/SD 卡, 纯 Nand eMMC, eSSD UART 和 USB 启动。
In S5PV210, iROM boot releases retention I/O(resets I/O)
when it wakes up
for recognizing Boot Device
by OM pin. Refer section1
.4.
1.1 H/W Feature
# 在 S5PV210,当通过 OM 引脚识别启动设备时会使 BL0 释放保留的 I/O (复位I/O)
To use IROM boot loader, several hardware features are required.
# IROM 引导加载程序的工作需要以下硬件支持
S5PV210X microprocessor based
on CortexA8
64KB Internal ROM (iROM)
96KB Internal SRAM
General SDRAM
and Controller
4/
8 Bit High Speed SD/MMC Controller
4-bit SD /
4-bit MMC /
4 or 8-bit eMMC
Nand Flash Controller
OneNand Controller(AUDI)
eSSD Controller
UART/USB contorller
1.2 Feature
OneNand Boot(Mux/Demux)
Nand Boot (
with H/W
8/
16-Bit ECC)
MMC Boot (MMC Specification
4.3 compatible including eMMC)
eSSD Boot
UART/USB Boot
Secure boot mode support
- Verify Integrity
of Bootloader
for all boot-up devices except
for UART/USB boot. -
To support secure boot mode, Security
key value should be written
in S5PV210.
# 除了 UART/USB 启动之外的所有启动设备都需要验证引导模块的完整性。为了支持安全引导模式, S5PV210 应该写有安全键值。
If no
key is written
in S5PV210, It
is non-secure boot mode.
Otherwise It’s secure boot mode.
To do that, Samsung should write security
key in manufacture
step.
# 如果 S5PV210 没有写安全键值,那么它是不安全的引导模式。所以,三星在生产时就应该写安全键值。
Second boot support
-
When 1st boot mode fails, SD/MMC boot will be tried through SD/MMC channel
2 with 4-bit data
# 第二次启动支持,
# 当第一次启动模式失败, SD/MMC 启动代码将尝试通过 4 个比特大小的数据启动 SD/MMC 通道2
1.3 Advantage
of iROM booting
# iROM 启动的好处
1. Reduce BOM Cost
=>
In iROM booting
with Movinand/iNAND/MMC/eMMC Card, eSSD. System can be booted without booting rom
So. There
is no need other booting rom device(
like nor flash)
# 1. 减少 BOM 的花费
# 用 Movinand/iNAND/MMC/eMMC Card/eSSD 作为 iROM 的启动介质,因此系统启动时不需要 引导ROM,所以用 iROM 启动的方式不需要其他任何例如 NorFlash 这样的 ROM设备
2. Improve the Read Disturbance
=>
In iROM booting
with nand flash, S5PV210 can support
8/
16-bit H/W ECC.All nand boot can be supported
8-bit H/W ECC.
But,
16-bit ECC
is supported only one type
of Nand which
is 4KB
5cycle.
#
# 用 NandFlash 作为 iROM引导, S5PV210 可以支持 8/16-bit H/W ECC 。# 3 # 8位 H/W ECC 可以支持所有的 Nand 启动。
# 但是, 16位 ECC 只支持一种类型的 Nand (4 kb 5周期)。
3. Reduce the production cost (
Option)
=> You can program boot device memory
using other boot device. => so. There
is no need Gang programmer
# 减少生产费用
# 您可以使用其他程序启动设备的程序编程内存启动设备,都不需要让程序员参与
1.4 Circuit Design Check Point
#
1 To select iROM boot device OM pins are used. (Refer
3 Boot configuration)
# OM 引脚用来选择启动的方式
2 All
of boot memory device
of V210 have a SD/MMC second boot
using MMC channel
2
# 所有 v210 的启动内存设备都可以使用 MMC通道2 引导二次启动
3 OneNand boot - Xm0CSn4/NFCSn2/ONANDXL_CSn0 signal should be used
for boot.
# OneNand 启动时要用到 Xm0CSn4/NFCSn2/ONANDXL_CSn0
(BL1 code should be include checksum data
in the start
of BL1
binary. Refer section
2.9)
# BL1 代码的开始部分应该执行较检操作
4 Nand boot - Xm0CSn2/NFCSn0 signal should be used
for boot
(BL1 code should be include checksum data
in the start
of BL1
binary. Refer section
2.9)
#
5 SD/MMC/eMMC boot – MMC Channel
0 is used
for first boot.
And Channel
2 is used
for Second boot (BL1 code should be include checksum data
in start
of BL1
binary. Refer section
2.9)
# MMC 通道0 用于第一次启动, 通道2 用于第二次启动
6 UART boot – UART Channel port
2 is used
for boot.
# UART 启动 - UART 通道2 用于启动
BL1 / BL2 : It can be variable size copied
from boot device
to internal SRAM area. BL1 max. size
is 16KB. BL2 max. size
is 80KB.
# 从引导设备复制到内部存储器区域的程序大小是可变的。
# BL1 最大是 16KB, BL2 最大是 80KB
1 iROM can
do initial boot up : initialize system clock, device specific controller
and booting device.
# iROM 可以执行启动的初始化: 初始化系统时钟,设备特定的控制器和启动设备。
2 iROM boot codes can load boot-loader
to SRAM. The boot-loader
is called BL1.
then iROM verify integrity
of BL1
in case of secure boot mode.
# iROM引导代码 可以加载 BL1 到 SRAM 中,如果是在安全启动模式下,iROM 会较检 BL1 的完整性
3 BL1 will be executed: BL1 will load remained boot loader which
is called BL2
on the SRAM
then BL1 verify integrity
of BL2
in case of secure boot mode.
# BL1 将会执行, BL1 会调用在 SRAM 中的 BL2,如果是在安全启动模式下,BL1 会较检 BL2 的完整性
4 BL2 will be executed : BL2 initialize DRAM controller
then load OS data
to SDRAM.
# BL2 将会执行,BL2 初始化 DRAM 控制器,然后加载 OS 到 SDRAM
5 Finally, jump
to start address
of OS. That will make good environment
to use system.
# 最后,跳到 OS 代码的其实位置并且为使用系统创造良好的环境
2.2 iROM(BL0) boot-up sequence (Refer
2.3 V210 boot-up diagram)
1. Disable
the Watch-Dog Timer
2. Initialize
the instruction cache
3. Initialize
the stack region (see “memory map”
on chap
2.5)
4. Initialize
the heap region. (see “memory map”
on chap
2.5)
5. Initialize
the Block Device Copy Function. (see “Device Copy Function”
on chap
2.7)
6. Initialize
the PLL
and Set system clock. (see “clock configuration”
on chap
2.11)
7. Copy
the BL1
to the internal SRAM region (see “Device Copy Function”
on chap
2.7)
8. Verify
the checksum
of BL1.
If checksum fails, iROM will
try the second boot up. (SD/MMC channel
2)
9. Check
if it is secure-boot mode
or not.
If
the security key value
is written
in S5PV210, It’s secure-boot mode. If
it is secure-boot mode, verify
the integrity
of BL1.
10. Jump
to the start address
of BL1