Минимально необходимая инструкция по работе с указанным отладочным набором.
Выполняемые действия
Полная проверка может требовать дополнительных работ по конфигурированию (установки джамперов) отладочной платы KitSBiMX8 и не описана в данном документе.
Проверьте наличие и исправность следующих элементов
Дополнительное рекомендуемое оборудование
Поверьте наличие, и при необходимости установите два конфигурационных переключателя на XP14 в позиции 1-2 и 3-4 (системная консоль на USB type B интерфейсе).
Проверьте возможность временно замыкать конфигурационный переключатель XP43 (используется для перевода RK3568 в MaskRom режим, для загрузки через USB интерфейс).
Проверьте наличие, и при необходимости установите два конфигурационных переключателя на XP67 в позиции 1-2 и 3-4 (I2C интерфейс для базовой периферии - RTC, Audio Codec).
Проверьте наличие и при необходимости установите конфигурационные переключатели для правильной работы USB-концентратора
todo: description
XP62 1-2 - LCD_EN_12V XP23 2-3 - LCD_RL/UL XP24 1-2 - LCD_LVDS_SEL XP25 1-2 - LCD_EN_3V3 XP60 2-3 - LCD_PWM XP63 2-3 - LCD_BL_EN XP78 установлен DSI_EN XP71 1-2 - SPI conncted to FLASH XP34 1-2, 3-4 - SMB I2C connect to bus multiplexer XP69 1-2,3-4,5-6,7-8 - SPI connect to level shifter XP68 1-2,3-4 - I2C connected to EEPROM XP28 и XP45 сняты (PCIe CLKREQn принудительно ноль - отключено). XP56 установлен (GPIO_PWR_OFF) XP57 установлен (DIS AUTO ON) XP58 установлен (PWR_INT)
Подключите плату KitSBiMX8 к источнику питания, включите источник питания. Кратко нажмите кнопку SB2.
Должны загореться контрольные светодиоды VD132, VD133, VD139 расположенные рядом с разъемом питания и кнопкой SB1. Потребляемая мощность при этом не должна превышать 50мВт.
Нажмите и удерживайте нажатой кнопку SB2, В течении 5-10 секунд светодиоды должны погаснуть.
Подключите кабель USB 2.0 A-B к плате KitSBiMX8 (XS13) и персональной ЭВМ. На персональной ЭВМ должен обнаружиться устройство «Future Technology Devices International, Ltd FT232 Serial (UART) IC». Запустите терминал с параметрами соединения 115200n8 на обнаруженном порту.
Подключите кабель USB 2.0 A-microB к плате KitSBiMX8 (XS12) и персональной ЭВМ. На плате должен загореться светодиод VD32, расположенный рядом с разъемом XS12.
Установите модуль rk3568-rhos в слот на плате KitSBiMX8. Включите плату с процессорным модулем кратко нажав и отпустив кнопку SB2. Проконтролируйте сообщения в терминале. При их наличии установлен «прошитый» модуль, при отсутствии - чистый. Обратите внимание - в ряде случаев сообщения появляются при изменении настроек терминала на 1500000n8 - это показатель того, что модуль содержит штатную программу от производителя.
При установки «чистого» модуля, после подачи питания на персональной ЭВМ должно обнаружиться устройство «Fuzhou Rockchip Electronics Company» с VID 0x2207 и PID 0x350a. При установке прошитого модуля, его необходимо перевести в режим загрузки. Для этого отключите плату удерживая кнопку SB2 до момента выключения светодиодов VD132, VD133, VD139. Замкните и удерживайте замкнутыми контакты 1-2 XP43. Включите плату кратким нажатием на кнопку SB2 (VD132, VD133, VD139 должны загореться). Проконтролируйте перевод в MaskRom режим отсутствием сообщений о загрузке в терминале и появлении устройства «Fuzhou Rockchip Electronics Company» на персональной ЭВМ. Разомкните контакты 1-2 XP43. Модуль rk3568-rhos готов к установке прошивки.
$ git clone https://github.com/MinimumLaw/rkbin.git $ git clone https://github.com/MinimumLaw/ravion-uboot.git -b ravion-v2-2024.04 $ cd ravion-uboot
Подготовительный этап завершен. На данный момент далее необходимо применить патч для работы интерфейса Ethernet
diff --git a/drivers/net/phy/phy.c b/drivers/net/phy/phy.c index 63b3e46f1..161cb6b05 100644 --- a/drivers/net/phy/phy.c +++ b/drivers/net/phy/phy.c @@ -755,6 +755,15 @@ int phy_reset(struct phy_device *phydev) return -1; } + reg = phy_read(phydev, devad, 0x0467); + if ((reg & 0x0300) != 0x0200) { + pr_err("PHY Strap failed (0x%04x), set correct!\n", reg); + reg = (phy_read(phydev, devad, 0x0017) | (1<<9)); /* RGMII mode */ + phy_write(phydev, devad, 0x0017, reg); + reg = (phy_read(phydev, devad, 0x0019) | (1<<15)); /* Auto-MDX mode */ + phy_write(phydev, devad, 0x0019, reg); + } + return 0; }
Применить указанный патч можно с помощью команды
$ patch -p1 < phy-fixup.patch
Контролируем правильность применения патча по диагностическим сообщениям и по выводу команды
$ git diff
После применения указанного патча необходимо выполнить сборку загрузчика. Для этого запускаем сборочный скрипт.
$ ./build_rk3568j_rhos.sh
Проконтролировать правильность сборки по отсутствию сообщений о критических ошибках в терминале и наличию итогового файла «u-boot-rockchip.bin»
Убедитесь, что устройство находится в MasRom режиме и позволяет контролировать системную консоль через терминал.
$ sudo ./rk3568_flash.sh
Процесс загрузки контролировать через сообщения на ЭВМ, а так же в терминале.
ToDo: Переменные среды в загрузчике не рабочие. Необходима персонализация модуля и указание правильных переменных среды для загрузки. Это надо описать отдельно.
Клонируем локально репозитарий RHOS-RK3568
$ git clone https://github.com/MinimumLaw/rhos-rk3568-uefi.git
Инициализируем необходимые подмодули, для этого переходим в созданный каталог
$ cd rhos-rk3568-uefi/
и запускаем
$ git submodule update --init --recursive
Дожидаемся завершения синхронизации субмодулей. Все готово для сборки EDKII.
Для сборки отладочной версии необходимо запустить
$ ./build-debug-rk3568-rhos.sh
Для сборки релизной версии необходимо запустить
$ ./build-release-rk3568-rhos.sh
В любом случае мы получим файл «RK3568-RHOS_EFI.img» в текущем каталоге. Это и есть итоговый файл прошивки.
Загрузка собранной прошивки в плату осуществляется с помощью скрипта
flash-rk3568-rhos.sh
Убедитесь, что плата находится в MaskRom режиме. Контролируйте процесс загрузки по сообщениям скрипта и информации в терминале.
$ git checkout https://github.com/MinimumLaw/ravion-kernel.git $ cd ravion-kernel
Поправить скрипт build64.sh в части используемого кросс-компилятора, пути до корневого каталога целевой системы и других необходимых параметров сборки. Запустить сборку ядра.
$ ./build64.sh
Проконтролировать правильность сборки ядра по диагностическим сообщениям сборочной системы.