CCS-утилиты программирования FLASH AM335x Печать
Добавил(а) microsin   

Этот документ (перевод [1]) описывает шаги по сборке различных инструментов прошивки и процедури их использования для платформы AM335x в среде CCS v5.1. Если Вы используете готовый бинарный код, то можете пропустить раздел "Сборка двоичного кода Flashing Tool" и сразу перейти к секции "Шаги по прошивке FLASH".

Примечание: готовые собранные бинарники flashing tools, предоставленные с этим релизом, были протестированы вместе со средой разработки CCS v5.1. Выполните пересборку бинарников, если используете другую версию CCS.

[Сборка двоичного кода Flashing Tool]

Для сборки нужен компьютер с операционной системой Windows, где установлена IDE CCS v5.1.

Примечание: готовый собранный образ доступен как host-tools/nand-flash-writer.out в пакете релиза Linux PSP [2].

• Исходный код NAND flasher должен быть доступен как часть пакета релиза AM335x [2] в файле host-tools/src/nandflash-< версия >.tar.gz.

• Распакуйте zip-архив исходного кода.

• Запустите CCS v5.1, и импортируйте этот проект, выполнив следующие шаги.

1. Откройте вид проектов c/c++ через меню View -> C/C++ Projects.
2. Откройте диалог импорта через меню File -> Import.
3. Раскройте опцию CCS и выберите Existing CCS/CCE Eclipse Project, кликните Next.
4. Кликните на кнопку Browse и выберите папку NAND flasher.
5. Кликните на чекбоксе, который сообщает об NAND Flasher и кликните Finish.

• Через меню Projects кликните Build Project, Project -> Build Project.

• Файл утилиты прошивки должен появиться в каталоге Nand_flasher/Debug.

[Шаги по прошивке FLASH]

Описанные шаги проверялись в среде IDE CCS v5.1, установленной на Windows XP.

Примечание: EVM обозначает Evaluation Module, т. е. оценочная плата разработчика.

• Подключите эмулятор XDS560 к AM335x EVM.

• Запустите CCS v5.1.

• Используйте файл конфигурации процессора AM335x.ccxml (target configuration file). Если нужно создать новую конфигурацию, то выполните следующие шаги.

1. Создайте новую область конфигурации Target Configurations через меню File -> New -> Target configuration file.
2. Назовите файл AM335x.ccxml и кликните Finish.
3. В новой конфигурации процессора (Target configuration) выберите область Basic, выберите чекбоксами тип соединения TI XDS560 Emulator и тип устройства AM335x.
4. Сохраните target configuration, например в файл AM335x.ccxml.
5. Выберите ядро Cortex A8 в области Advanced и обновите скрипт инициализации в файле AM335x.gel.
6. Сохраните target configuration.

• Выберите конфигурацию Debug в CCS, если это еще не сделано, через меню View -> Debug.

• Выберите View -> Target Configurations. Разверните дерево User defined, чтобы достичь AM335x.ccxml.

• Сделайте правый клик и выберите "Launch Selected Configuration". Это действие должно запустить сессию отладки.

• В области просмотра Debug (прокрутите список до конца) выберите соединение "TI XDS560 Emulator_0/Cortex A8".

• Сделайте правый клик и выберите опцию "Set Debug Scope". Это удалит из вида Debug все ядра, кроме Cortex A8.

• Выполните правый клик на Cortex A8, находящийся в списке вида Debug, и кликните "Connect Target".

• Запустите скрипт инициализации на закладке Scripts, AM335x System initialization -> AM335x_EVM_Initialization.

Flashing tool ожидает GEL-файл для инициализации DDR и RAM, встроенной в кристалл процессора. Последний GEL-файл можно найти на страничке [3].

После подключения к target загрузите GEL-файл выбором GEL Files на закладке Tools. После загрузки GEL-файла инициализируйте EVM, используя скрипты на закладке Scripts. Для инициализации EVM выберите AM335x_EVM_Initialization в AM335x System Initialization.

В этой врезке описана процедура прошивки образа в NAND flash, установленной на EVM. Готовый собранный инструментарий CCS (host-tools/nand-flash-writer.out) для NAND должен быть доступен как часть пакета релиза Linux PSP [2].

NAND flashing tool используется для прошивки SPL (Serial Port Loader) и U-boot. SPL должен быть прошит в первые 4 блока AM335x, потому что RBL (ROM Boot Loader) проверяет наличие SPL в первых 4 блоках NAND. Если в первом блоке загрузчик не найден, то RBL проверяет 2-й блок и так далее, вплоть до 4-го блока. Для поддержки этой функции SPL должен быть прошит в первые 4 блока. Таким образом, смещения секторов памяти для прошивки SPL будут 0x0, 0x20000, 0x40000 и 0x60000. Для U-Boot смещение прошивки составляет 0x80000, после 4-го блока. Карта содержимого NAND показана в разделе "NAND Layout" далее.

Примечание: утилита прошивки (flashing utility) запускается всякий раз для прошивки каждого компонента. Во время прошивки flashing utility заботится об очистке требуемых блоков в микросхеме памяти NAND flash. Из-за жесткого мультиплексирования функций выводов процессора память NAND доступна только на некоторых AM335x EVM, и в некоторых профилях. Пользователь должен убедиться, что d-профили были правильно выбраны для разрешения NAND перед тем, как прошивать образ в NAND. Не поддерживаемые профили NAND flash tool не смогут определить наличие NAND.

Для дополнительной информации см. руководство пользователя AM335x EVM [4].

[Прошивка образа в NAND Flash]

1. Запустите CCS, используя шаги, описанные выше во врезке "Подключение CCS к AM335x EVM".

2. Загрузите GEL-файл, используя шаги, описанные выше во врезке "Загрузка GEL-файла".

3. После того, как GEL-файл загружен, сбросьте плату запуском скриптов из GEL-файла. Для этого перейдите в Scripts -> AM335x System Initialization и кликните "AM335x_EVM_Initialization".

4. Убедитесь, что образ, предназначенный для прошивки - например Minimal LOader (MLO, т. е. файл загрузчика X-loader) - присутствует на компьютере Windows XP.

5. Загрузите nand-flash-writer.out и запустите его. Скрипт nand-flash-writer.out должен быть доступен в пакете релиза, в каталоге board-utilities\.

6. Выберите опцию для прошивки:

Choose your operation
Enter 1 ---> To Flash an Image
Enter 2 ---> To ERASE the whole NAND
Enter 3 ---> To EXIT

Когда появится это приглашение, выберите опцию 1. Опцию 2 выбирайте, если хотите стереть все содержимое NAND.

7. Введите путь до прошиваемого образа, когда появится следующее приглашение:

Enter image file path

Следует предоставлять полный путь до файла образа, например C:\images\MLO.

8. После появления следующего приглашения введите адрес смещения в NAND:

Enter offset (in hex):

Это смещение (offset) задает стартовую позицию в памяти, куда должен быть прошит файл образа.

Примечание: используйте для смещения hex-формат. Например, введите 0x0 для прошивки образа MLO (т. е. загрузчика первой стадии) в первый блок. Введите 0x80000 для прошивки U-Boot в четвертый блок (см. карту памяти NAND далее в разделе "NAND Layout").

9. Выберите ECC для прошивки.

Choose the ECC scheme from given options
Enter 1 ---> BCH 8 bit
Enter 2 ---> HAM
Enter 3 ---> T0 EXIT
Please enter ECC scheme type:

Всегда выбирайте BCH8 для MLO и U-Boot, поскольку код ROM использует схему BCH8 ECC. Введите 1 для выбора BCH8.

10. Убедитесь, что информация flash-памяти, отображаемая инструментом, соответствует установленной в EVM памяти NAND flash.

11. После этого инструмент должен сначала стереть (erase) требуемый регион flash, и затем начать прошивать новый образ.

12. По окончанию процесса Вы должны увидеть следующее сообщение:

Application is successfully flashed
NAND boot preparation was successful!

13. Отключите CCS, и затем выключите питание платы.

14. Убедитесь, что выбран Profile для NAND boot mode.

15. Загрузите плату (подав на неё питание) и проверьте, как работает прошитый образ.

[NAND Layout]

Память NAND на плате EVM должна быть сконфигурирована по карте, показанной на схеме ниже. Упомянутые в схеме адреса используются в соответствующих командах NAND.

+------------+-->0x00000000-> SPL start         (копия SPL в 1 блоке)
|            |
|            |-->0x0001FFFF-> SPL end 
|            |-->0x00020000-> SPL.backup1 start (копия SPL во 2 блоке)
|            |
|            |-->0x0003FFFF-> SPL.backup1 end 
|            |-->0x00040000-> SPL.backup2 start (копия SPL в 3 блоке)
|            |
|            |-->0x0005FFFF-> SPL.backup2 end 
|            |-->0x00060000-> SPL.backup3 start (копия SPL в 4 блоке)
|            |
|            |-->0x0007FFFF-> SPL.backup3 end
|            |-->0x00080000-> U-Boot start
|            |                                    
|            |-->0x002BFFFF-> U-Boot end 
|            |-->0x00260000-> ENV start
|            |
|            |
|            |-->0x0027FFFF-> ENV end
|            |-->0x00280000-> Linux Kernel start
|            |
|            |
|            |
|            |
|            |-->0x0077FFFF-> Linux Kernel end
|            |-->0x00780000-> File system start
|            |
|            |
|            |
|            |
|            |
|            |
|            |
|            |
|            |
|            |
|            |
|            |
+------------+-->0x10000000-> NAND end (Free end)

[Ссылки]

1. AM335x CCS Flashing Tools Guide site:processors.wiki.ti.com.
2. AM335x Linux PSP 04.06 site:software-dl.ti.com.
3. OMAP and Sitara CCS support site:processors.wiki.ti.com.
4. AM335x Evaluation Module TMDXEVM3358 site:ti.com.