3. Система (System) 3.1. Отображение памяти 3.10. Контроллер термодатчика 3.11. Подключение периферийной системы PSI 3.12. Модуль управления памятью ввода-вывода IOMMU 3.13. Часы реального времени RTC 3.2. Конфигурация CPUX 3.3. Контроллер синхрогенератора 3.4. Загрузочное ПЗУ (BROM) 3.5. Конфигурация системы 3.6. Таймер 3.8. Универсальный контроллер прерываний Глава 3. Система - System Раздел 3.4. Загрузочное ПЗУ (BROM) - BROM System 3.4. Системный загрузчик (BROM)3.4.1. ОбзорУ системы BROM есть несколько способов загрузки. Он имеет встроенное загрузочное ПЗУ (BROM), которое можно рассматривать как основной загрузчик программ. В процессе запуска SoC начинает получать первую инструкцию с адреса 0x0, где находится BROM. Система BROM делится на две части: Firmware Exchange Launch (FEL) и Media Boot. Задача FEL - записать внешние данные в локальную энергонезависимую память (NVM), задача Media Boot - загрузить эффективный и законный BOOT0 из энергонезависимой памяти Non-Volatile Memory (NVM) и запустить его. Система BROM включает в себя следующие функции:3.4.2. Операции и функциональные описания3.4.2.1 Выбор загрузочного носителяСистема BROM поддерживает следующие загрузочные носители:Существует два способа выбора загрузки: BOOT_MODE на самом деле совпадает с нулевым битом идентификатора безопасности (SID) т.е. BROM_CONFIG[0] В таблице показан параметр BOOT_MODE (BROM_CONFIG[0] at SID).3.4.2.1 1. Выбор контакта GPIO Если состояние BOOT_MODE равно 0, то нужно выбрать вывод GPIO. В режиме вывода GPIO есть 5 бит для выбора загрузочного носителя для загрузки. Таблица 3-4. Конфигурация выбора загрузочного носителя по контакту GPIO Pin_Boot_Select [4: 0] (в 0x03000024 [13: 9]) | Загрузочный носитель | Примечание Примечание Для микропроцессора H616 Boot_Select[0] зафиксирован на 1, поэтому носитель SLC_NAND Не поддерживается (For H616 package, Boot_Select[0] is fixed at 1, so the SLC_NAND media is not supported). 2. Выбор электронного предохранителя (eFuse Select) Если состояние BOOT_MODE равно 1, то нужно выбрать тип eFuse. Тип eFuse имеет одну 12-битную конфигурацию eFuse_Boot_Select_Cfg[11:0] (at BROM_TRY[11:0] of SID module), при этом каждые 3 бита разделены на группу Boot Select, поэтому есть четыре группы boot_select. Таблица 3-5. Конфигурация выбора загрузки с помощью eFuse Таблица 3-6 описывает каждую группу настроек выбора загрузки eFuse. От первой группы до третьей группы те же настройки, но с четвертой группой нужно быть осторожным. Если для eFuse_Boot_Select_7 установлено значение 111, это означает, что это способ Try (Пробный). По пути Try идут SMHC0, SMHC2, Nand Flash, SPI NOR Flash, SPI NAND Flash. Таблица 3-6. Настройка выбора загрузки eFuse 3.4.2.2 BROM процессВ режиме нормальной загрузки загрузка системы начнется с CPU0. BROM прочитает регистр флага Hotplug в соответствии с флагом, следует ли выполнить соответствующий процесс. Наконец, BROM считывает состояние вывода FEL, если обнаруживается, что сигнал вывода FEL достигает высокого уровня, тогда система перейдет к процессу Try Media Boot или перейдет к процессу обязательного обновления. На рисунке 3-6 показан процесс BROM. Рисунок 3-6. Диаграмма процесса загрузки 3.4.2.3 Безопасный процесс BROMSecure (безопасная) BROM поддерживает следующие функции:Перед запуском безопасной загрузки программное обеспечение должно проверить, был ли он изменен или заменен, чтобы система проверила и проверила целостность сертификата, поскольку сертификат использовал подпись алгоритма RSA. В системе также используется аппаратный модуль Crypto Engine (CE) для ускорения шифрования и дешифрования. Использование стандартной криптографии гарантирует, что образам микропрограмм можно доверять, поэтому Secure BROM обеспечивает ожидаемое состояние безопасности системы. В режиме загрузки Security, по сравнению с обычным BROM, после завершения процесса Try Media Boot система перейдет к запуску программного обеспечения Security BROM. На рис. 3-7 показан процесс Secure BROM. Рисунок 3-7. Схема процесса безопасной загрузки BROM 3.4.2.4 Описание процесса BROM1. Обязательный процесс обновления Когда система выбирает, следует ли запускать процесс обязательного обновления, если обнаруживается, что сигнал FEL понижается до низкого уровня, то система переходит к процессу обязательного обновления. На рис. 3-8 показан процесс обязательного обновления.Рисунок 3-8 Процесс обязательного обновления Примечание 2. Процесс FEL - запуск замены прошивки (Firmware Exchange Launch) Когда система выбирает процесс обязательного обновления, система переходит к процессу FEL. На рис. 3-9 показан процесс обновления FEL.Рисунок 3-9. Процесс USB FEL. 3. Процесс пробной загрузки с носителя Когда система выбирает, входит ли процесс обязательного обновления, если обнаруживается высокий уровень сигнала вывода FEL, система переходит к процессу пробной загрузки с носителя. Пробный Media Boot Process будет читать состояние регистра BOOT_MODE, состояние BOOT_MODE решает, загружаться с вывода GPIO или efuse. На рис. 3-10 показан процесс выбора загрузки по контакту GPIO. Рисунок 3-10. Процесс выбора загрузки по контакту GPIO. Примечание SMHC0 обычно является внешней SD/TF картой. SMHC2 обычно является внешним eMMC. На рис. 3-11 показан процесс выбора загрузки efuse. Рисунок 3-11. eFuse Boot Select Process - процесс выбора загрузки с помощью электронных предохранителей |