Тест самотестирования при включении (POST) проверяет целостность синхронного динамического процессора SDRAM. После проверки SDRAM тест POST пытается передать контроль образу ПЗУ загрузки по умолчанию или альтернативному образу загрузки. Также тест POST может загружать двоичные образы через порт сервиса и записывать из в флэш-память. Это позволяет тесту POST проводить минимальное количество аварийных восстановлений после ошибок флэш-памяти.
Действия теста POST при загрузке
ROM Init
Включение питания
При включении питания загорается индикатор ERR (рисунок 1). После этого код postInit инициализирует внутренние регистры процессора и подсистемы, включая контроллер синхронного динамического SDRAM. На этой стадии теста POST внутреннее ОЗУ процессора используется в качестве стека небольшого размера. Затем контроль передается процедуре Ipostmain для тестирования синхронного динамического SDRAM.
Рисунок 1. ROM Init.
Первичный тест POST
Инициализация порта сервиса и программируемого логического устройства
lpostMain запускается путем инициализации оборудования порта сервиса и программируемых логических устройств системы. При успешном завершении индикатор ERR выключается, и загорается индикатор RDY (рисунок 2).
Рисунок 2. Первичный тест POST.
Тест POST отображает версию микропрограммы порта сервиса.
== POST Version nnn ==
Тест простого доступа
Тест простого доступа проверяет способность процессора проводить простые операции записи и чтения в SDRAM. Проведение теста отображается миганием индикатора FC1 (рисунок 3).
Рисунок 3. Простой доступ.
Тест прохождения битов
Этот тест пропускает сначала бит со значением 1, а затем бит со значением 0 через базу каждого банка SDRAM. Проведение теста отображается миганием индикатора FC2 (рисунок 4).
Рисунок 4.Тест прохождения битов.
Размер памяти
Этот тест проверяет соответствие размера SDRAM минимальному и максимальному размеру, установленному для данного оборудования. Проведение теста отображается миганием индикатора FC2 (рисунок 5).
Рисунок 5. Размер памяти.
Тест по шаблону
Этот тест записывает и читает группы диагностических шаблонов при каждом выделении памяти SDRAM. Проведение теста отображается миганием индикатора SCSI2 (рисунок 6). Проведение этого теста может занять несколько секунд.
Рисунок 6. Тест по шаблону.
Тест адреса
Этот тест записывает и читает теги адресов в память, чтобы проверить наличие плохих адресных строк в SDRAM. Проведение теста отображается миганием индикатора SCSI3 (рисунок 7). Затем тест POST перемещается в SDRAM и переносит свой стек из внутреннего ОЗУ процессора в SDRAM. Контроль переходит к вторичному тесту POST в синхронном динамическом SDRAM.
Рисунок 7. Тест адреса.
Вторичный тест POST
На этой стадии POST пытается обнаружить и запустить внутренний загрузчик, "bootrom". Если оператор нажимает клавишу прерывания <Ctrl><P>, то тест POST отобразит меню сервиса. Подробности см. в разделе Меню сервиса POST.
Обнаружение и запуск Bootrom
Тест POST проверяет первичные местоположения bootrom во флэш-памяти, чтобы определить наличие рабочего загрузчика bootrom. Если загрузчик bootrom найден, POST передает ему контроль. Если образ bootrom не найден, то тест POST продолжит его поиск в местоположении вторичного bootrom. Проведение теста отображается миганием индикатора SCSI4 (рисунок 8).
Рисунок 8. Обнаружение и запуск.
Запуск Bootrom
Когда тест POST запускает образ bootrom, на терминале появляется следующая строка:
Bootrom (*FFF00100)(2)
Число в первых скобках является адресом кода запуска bootrom. Число во вторых скобках является флажком для определения операционной системой типа загрузки - "горячей" или "холодной". Во время изменения конфигурации программируемого логического устройства код bootrom включает индикатор ERR (рисунок 9).
Рисунок 9. Запуск bootrom.
Меню сервиса теста POST
Меню сервиса теста POST отображается при помощи тонкого инструмента (например, развернутой скрепки) немаркированной кнопки между кнопкой RST и индикатором PWR.
Рисунок 10. NMI 1.
Эту кнопку можно нажимать в любое время во время тестов памяти.
Рисунок 11. NMI 2.
После выполнения тестов памяти POST выводит на экран следующее:
== POST Version nnn ==
== POST MENU ==
A - Cold boot from [A]lternate bootrom B - Cold [B]oot from primary bootrom R - [R]eceive new boot image from serial port V - full [V]ersion information
A - Cold boot from [A]lternate bootrom ("Холодная" загрузка с помощью альтернативного загрузчика bootrom)
В этой операции программа теста POST передает управление альтернативному образу bootrom по адресу 0xFFE00100 и обрабатывает его, как "холодную" загрузку.
B - Cold [B]oot from primary bootrom ("Холодная" загрузка с помощью первичного загрузчика bootrom)
Данная функция теста POST передает контроль образу bootrom по умолчанию или первичному образу по адресу 0xFFF00100 и рассматривает его в качестве "холодной" загрузки. После загрузки нового образа bootrom выберите эту опцию для загрузки SNC.
R - [R]eceive new boot image from serial port (Получение нового образа загрузки через последовательный порт)
Эта функция запускает механизм передачи ZMODEM, который передает в программу теста POST двоичный файл образа bootrom. Он не может принять двоичный файл друго типа. Если передача прошла успешно, программа POST запишет образ в устройство флэш-памяти. Во время ожидания файла тест POST выводит на экран следующее:
**B000000023be50
На этой стадии оператор может с помощью протокола ZMODEM передать файл bootrom в тест POST. Дополнительную информацию см. в документации эмулятора терминала. После передачи файла тест POST отображает:
File transfer and update PASSED ZMODEM Messages: Writing to flash:MMMMMMMM-NNNN
Если произошли ошибки, тест POST выведет на экран соответствующие сообщения, а также следующую строку:
File transfer and update FAILED
V- full [V]ersion information (полные данные о версии)
При выполнении этой команды тест POST отображает номер версии, дату редакции, компьютер, на котором осуществлена сборка, и имя выполнившего это действие пользователя. На экране отобразится следующее:
POST version 0402.02 Built Apr 4 2001, 15:24:06 on TANGLEFOOT by jimu
Отображение ошибок
Тест POST включит мигание индикатора ERR, а также других индикаторов, ассоциированных с неудавшимся тестом. См. назначения индикаторов при нормальной последовательности теста POST. Сообщения об ошибках также могут отображаться на порте сервиса.