В этой врезке описана процедура прошивки образа в 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. Введите путь до прошиваемого образа, когда появится следующее приглашение:
Следует предоставлять полный путь до файла образа, например C:\images\MLO.
8. После появления следующего приглашения введите адрес смещения в NAND:
Это смещение (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. Загрузите плату (подав на неё питание) и проверьте, как работает прошитый образ.