S5PV210 Application Note (Internal ROM Booting) 翻译

来源:互联网 发布:网络招生独孤九剑 编辑:程序博客网 时间:2024/06/05 12:50
1 OverviewThis 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 Controller4-bit SD / 4-bit MMC / 4 or 8-bit eMMC  Nand Flash Controller  OneNand Controller(AUDI)  eSSD Controller  UART/USB contorller1.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 romSo. 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 最大是 80KB1 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 到 SDRAM5 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 Timer2. Initialize the instruction cache3. 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# 关看门狗# 初始化指令cache# 初始化栈# 初始化堆# 初始化块设备复制函数device copy function# 设置SoC时钟系统# 复制BL1到内部IRAM(16KB)# 检查BL1的校验和# 跳转到BL1去执行
0 0