Нередко возникает необходимость перепрошить контрольную плату через SD-карту. Но что делать, если слот неисправен, а заменить некогда или вообще на плате отсутствует контролер MMC?
Кто-то скажет, что проще выпаять NAND, припаять его на другую КП с рабочим слотом, прошить и перепаять обратно. Это, конечно неплохое решение, но есть рабочий способ прошить контрольку.
В этой статье мы рассмотрим метод прошивки контрольной платы от Antminer S9 с помощью U-BOOT.
Работать будем из под Windows.
Первое и самое главное, что должно у нас уже быть - это USB-UART конвертор.
В природе их множество.
Если нет, но срочно нужен, то может подойти и CH341A или даже Arduino.
Далее скачиваем и устанавливаем программу «Tera Term».
Прога свободная, можно скачать на официальном сайте.
Эта программа поможет нам работать с удобным терминалом.
Следующая программа, которая нам понадобится - это «tftpd64». Фалы установки находятся в репозитории Github. Программа свободная.
Эта программа поможет нам развернуть TFTP сервер для доступа к дампам нашей контрольки.
Контент доступен только участникам форума
Первым делом создадим на диске C:/ папку «TFTP» и поместим туда 4 файла дампа прошивки Antminer S9, извлеченные с архива.
Далее устанавливаем и запускаем «tftpd64»
Контент доступен только участникам форума
Подключаем USB-UART к компьютеру и контрольной плате. На контрольной плате имеется 3 пина UART (RXD/GND/TXD), подключаем соответственно RXD к TX на конверторе и TXD на RX. Земля (GND) общая между КП и USB-UART.
Устанавливаем и запускаем «Tera Term»
В открывшемся окошке «Tera Term: Новое соединение» выбираем «COM», правее «Порт:» выбираем номер порта, на котором висит наш USB-UART преобразователь.
Контент доступен только участникам форума
Если с драйверами порядок, то выбрав нужный порт, нажимаем «OK»
Появится пустое окно терминала. В заголовке окна программы мы видим номер COM порта, значит мы подключились к USB-UART. Всё готово к работе.
Подключаем контрольку к сети, и подаём на неё питание.
В терминале появятся строки:
Контент доступен только участникам форума
Последняя строка будет
Контент доступен только участникам форума
И идёт обратный отсчёт.
Пока идёт отсчёт, мы должны успеть нажать в терминале Enter, чтобы появилась строка приглашения
Zynq>
или
zynq-uboot>
Увидав
Zynq>
или
zynq-uboot>
можно понять, что мы прервали загрузку прошивки на контрольной плате и находимся режиме U-BOOT.
2 возможные проблемы на этот момент:
Нажмите чтобы развернуть
2 возможные проблемы на этот момент:
Нажмите чтобы скрыть
Контент доступен только участникам форума
Итак, если мы уже в режиме U-BOOT, это хорошо, возможно получится прошить.
Что мы делаем дальше?
Мы задаём нашей контрольке локальный адрес и адрес нашего TFTP сервера
Контент доступен только участникам форума
и нажимаем Enter. U-BOOT скушает эти команды не возвращая ничего в ответ.
Контент доступен только участникам форума
Далее мы пробуем прогрузить 1 файл дампа по TFTP протоколу.
Для этого вводим в терминал команду:
Контент доступен только участникам форума
Нажимаем Enter и терминал начнёт забиваться символом #
Это такая визуализация загрузки. По окончанию появятся строки:
Контент доступен только участникам форума
Это означает, что файл дампа успешно прогрузился в ОЗУ контрольки, остаётся его переписать из ОЗУ в память NAND.
Но предварительно память необходимо очистить, иначе не избежать ошибок.
Для этого вводим команду:
Контент доступен только участникам форума
и нажимаем Enter.
Пойдет процесс зачистки NAND в процентах, по окончанию появятся строки:
Контент доступен только участникам форума
Skipping bad block - это пропуск последних 500КБ в памяти, занятых её разметкой.
Это нормальное явление на данных контрольных платах.
Контент доступен только участникам форума
Очистив NAND можно переписывать 1 часть дампа из ОЗУ в NAND командой:
Контент доступен только участникам форума
Нажимаем Enter и наблюдаем, что терминал подвис на некоторое время. Идет процесс записи дампа.
По итогу мы увидим надпись:
Контент доступен только участникам форума
Отлично! 1 часть записалась успешно.
Скачиваем 2 часть командой:
Контент доступен только участникам форума
и нажимаем Enter.
Тут уже знакомая нам загрузка и вывод результата:
Контент доступен только участникам форума
Записываем скаченный дамп в NAND:
Контент доступен только участникам форума
Нажимаем Enter и дожидаемся результата:
Контент доступен только участникам форума
По аналогии скачиваем 3 файл дампа:
Контент доступен только участникам форума
Дожидаемся окончания закачивания и вписываем в NAND:
Контент доступен только участникам форума
После скачиваем последний файл дампа:
Контент доступен только участникам форума
И записываем его в NAND:
Контент доступен только участникам форума
По завершению перезагружаем нашу контрольную плату:
Контент доступен только участникам форума
Видим, что контрольная плата начала загружать прошивку.
Прошивка стоковая с отключёнными проверками сигнатур. Её можно обновить до нужной вам прошивки уже через вэб-морду или BTC-TOOLs.
Теперь заберёмся что это за 7fc0000, 3fe0000 и прочее. И что мы вообще за команды выполняли.
Контент доступен только участникам форума
Теперь по командам:
Нажмите чтобы развернуть
Теперь по командам:
Нажмите чтобы скрыть
Контент доступен только участникам форума
Подводные камни этого метода:
Нажмите чтобы развернуть
Подводные камни этого метода:
Нажмите чтобы скрыть
Контент доступен только участникам форума
Материал подготовил: @Vinogradov
Копирование и распространение с разрешения автора.