Микрокомпьютер Skylab SKW92

Здесь обсуждаем устройства на МК и программы для них
Аватара пользователя
rhf-admin
администратор, спонсор, писатель, дизайнер, инженер, программист, идеолог
администратор, спонсор, писатель, дизайнер, инженер, программист, идеолог
Сообщения: 3060
Зарегистрирован: 25 авг 2009, 23:19
Откуда: Уфа
Контактная информация:

Микрокомпьютер Skylab SKW92

Сообщение rhf-admin »

Как залить прошивку OpenWRT в микрокомпьютер Skylab skw92:
Вариант 1 - через web-морду официальной прошивки
1) Подключаем ETH к PORT0 (выводы 1,2,3,4) (он по умолчанию настроен как WAN и для него включен режим DHCP-клиент)
2) В отладочной консоли набираем ifconfig и смотрим, какой нам выдали IP-адрес
3) Заходим по этому адресу в web-морду (admin/admin), переходим в раздел Administration (внизу), нажимаем загрузку новой прошивки Upload Firmware (не boot!), выбираем файл с прошивкой на диске и жмём Apply.
4) Получаем облом вот такого вида: Not a valid firmware. *** Warning: "/var/tmpFW" has corrupted data!
5) Подключаемся через Telnet и набираем:
# cd /var
# mtd_write -r write tmpFW mtd4
Unlocking mtd4 ...
Writing from tmpFW to mtd4 ... [e]
6) В отладочной консоли через UART0 можно наблюдать процесс перепрошивки. Когда он закончится - девайс автоматически рестартанёт с новой прошивкой.
Вариант 2 - по TFTP
Внимание!!! Перед прошивкой по TFTP необходимо настроить работу TFTP через firewall или вообще выключить firewall
1) ставим себе на комп TFTP-сервер и настраиваем его: прописываем серверу ip-адрес (адрес компа, на котором установлен сервер) и указываем в настройках рабочую директорию (в которой лежит прошивка, которую мы будем заливать в skw92)
2) при загрузке skw92 жмём 2
3) после предупреждения, что нам щас перешьют в устройстве линукс жмём Y
3) в строке Input Device IP прописываем адрес, который будет присвоен skw92
4) в строке Input server IP прописываем адрес нашего сервера
5) в строке Input Linux Kernel filename прописываем имя образа с прошивкой
Всё! После перепрошивки skw92 автоматически рестартанёт с новой прошивкой

Код: Выделить всё

RESET MT7628 PHY!!!!!!
Please choose the operation:
   1: Load system code to SDRAM via TFTP.
   2: Load system code then write to Flash via TFTP.
   3: Boot system code via Flash (default).
   4: Entr boot command line interface.
   7: Load Boot Loader code then write to Flash via Serial.
   9: Load Boot Loader code then write to Flash via TFTP.
default: 3

You choosed 2
                                                                                                                 0


2: System Load Linux Kernel then write to Flash via TFTP.
 Warning!! Erase Linux in Flash then burn new one. Are you sure?(Y/N)
 Please Input new ones /or Ctrl-C to discard
        Input device IP (10.10.10.123) ==:192.168.10.33
        Input server IP (10.10.10.3) ==:192.168.10.97
        Input Linux Kernel filename () ==:skw92a.bin

 NetTxPacket = 0x83FE6180
...
Вариант 3 - при наличии глюков: не даёт при загрузке выбрать пункт 2, не даёт настроить адреса TFTP-сервера и клиента
1) при загрузке жмём 4, чтобы попасть в командную строку
2) набираем ? и жмём enter, чтобы получить список доступных команд
3) набираем printenv чтобы получить список переменных окружения
Среди этих переменных есть ip-адрес устройства (ipaddr), ip-адрес сервера (serverip) и вариант загрузки по-умолчанию (BootType). Их можно менять командой setenv и сохранять командой saveenv.
Ниже приведён пример того, как настроить девайс на выбор по-умолчанию при загрузке пункта 2 загрузочного меню (Load system code then write to Flash via TFTP), то есть как раз на загрузку новой прошивки по TFTP:

Код: Выделить всё

[04030D08][04030C0D]
DDR Calibration DQS reg = 00008889


U-Boot 1.1.3 (Sep 22 2016 - 14:56:24)

Board: Ralink APSoC DRAM:  64 MB
relocate_code Pointer at: 83fb8000
flash manufacture id: ef, device id 40 17
find flash: W25Q64BV
============================================
Ralink UBoot Version: 5.0.0.0
--------------------------------------------
ASIC 7628_MP (Port5<->None)
DRAM component: 512 Mbits DDR, width 16
DRAM bus: 16 bit
Total memory: 64 MBytes
Flash component: SPI Flash
Date:Sep 22 2016  Time:14:56:24
============================================
icache: sets:512, ways:4, linesz:32 ,total:65536
dcache: sets:256, ways:4, linesz:32 ,total:32768

 ##### The CPU freq = 580 MHZ ####
 estimate memory size =64 Mbytes
RESET MT7628 PHY!!!!!!
Please choose the operation:
   1: Load system code to SDRAM via TFTP.
   2: Load system code then write to Flash via TFTP.
   3: Boot system code via Flash (default).
   4: Entr boot command line interface.
   7: Load Boot Loader code then write to Flash via Serial.
   9: Load Boot Loader code then write to Flash via TFTP.
default: 3
 4

You choosed 4


4: System Enter Boot Command Line Interface.


MT7628 # ?
?
?       - alias for 'help'
bootm   - boot application image from memory
cp      - memory copy
erase   - erase SPI FLASH memory
go      - start application at address 'addr'
help    - print online help
loadb   - load binary file over serial line (kermit mode)
md      - memory display
mdio   - Ralink PHY register R/W command !!
mm      - memory modify (auto-incrementing)
nm      - memory modify (constant address)
printenv- print environment variables
reset   - Perform RESET of the CPU
rf      - read/write rf register
saveenv - save environment variables to persistent storage
setenv  - set environment variables
spi     - spi command
tftpboot- boot image via network using TFTP protocol
version - print monitor version
MT7628 # printenv
printenv
bootcmd=tftp
bootdelay=5
baudrate=57600
ethaddr="00:AA:BB:CC:DD:10"
ipaddr=10.10.10.123
serverip=10.10.10.3
stdin=serial
stdout=serial
stderr=serial
BootType=3

Environment size: 160/4092 bytes
MT7628 # setenv BootType 2
setenv BootType 2
MT7628 #
MT7628 # saveenv
saveenv
Saving Environment to SPI Flash...
Erasing SPI Flash...
.
Writing to SPI Flash...
.
done
MT7628 #
MT7628 # reset
Вариант 4 - через SD-карту/USB-флешку
1. Кладём образ с прошивкой на SD-карту / USB-флешку, подключаем и подмонтируем к нашему микрокомпьютеру.
2. Переходим в папку с прошивкой (cd /путь)
3. Выполняем следующие команды:

Код: Выделить всё

mtd unlock firmware
Unlocking firmware ...

mtd -r write имя_файла_с_образом.bin firmware
Unlocking firmware ...

Writing from имя_файла_с_образом.bin to firmware ...     
Rebooting ...
P.S. Альтернативно можно вместо sd-карты / USB-флешки скачать прошивку, скажем, через wget, например, в /tmp, далее всё также...
С уважением, администрация сайта.
Аватара пользователя
rhf-admin
администратор, спонсор, писатель, дизайнер, инженер, программист, идеолог
администратор, спонсор, писатель, дизайнер, инженер, программист, идеолог
Сообщения: 3060
Зарегистрирован: 25 авг 2009, 23:19
Откуда: Уфа
Контактная информация:

Микрокомпьютер Skylab SKW92 - Bootloader

Сообщение rhf-admin »

Лог загрузки:
boot_log .pdf
(57.78 КБ) 328 скачиваний
Из лога удалось узнать, что для первоначальной загрузки используется загрузчик U-Boot 1.1.3
Флешка имеет следующую структуру:
0x000000000000-0x00000002FFFF : Bootloader ---------------- 3 Blocks [0..2] of 64 KB
0x000000030000-0x00000003FFFF : Config --------------------- 1 Block [3..3] of 64 KB
0x000000040000-0x00000004FFFF : Factory Settings ---------- 1 Block [4..4] of 64 KB
0x000000050000-до конца флешки : Linux -------------------- 123 Block [5..127] of 64 KB

Если вы каким-либо образом повредили загрузчик и окирпичили ваш микрокомпьютер, то восстановить его можно сдув флешку с платы и записав на неё бут программатором. Я, естественно, для таких дел пользуюсь своим шлюзом, но в принципе подойдёт любой программатор, умеющий шить флешки по SPI.
Ниже в архиве выложены прочитанные с живой флешки бинарники, содержащие boot, config и factory settings.
boot+config+factory.7z
(36.58 КБ) 353 скачивания
С уважением, администрация сайта.
Аватара пользователя
rhf-admin
администратор, спонсор, писатель, дизайнер, инженер, программист, идеолог
администратор, спонсор, писатель, дизайнер, инженер, программист, идеолог
Сообщения: 3060
Зарегистрирован: 25 авг 2009, 23:19
Откуда: Уфа
Контактная информация:

Re: Микрокомпьютер Skylab SKW92

Сообщение rhf-admin »

Кстати, забыл написать, - параметры для подключения по UART:
57600-8-1-none
С уважением, администрация сайта.
Аватара пользователя
Virtual2
Читатель
Читатель
Сообщения: 160
Зарегистрирован: 23 май 2016, 22:12

Re: Микрокомпьютер Skylab SKW92

Сообщение Virtual2 »

1) Подключаем ETH к PORT0 (выводы 1,2,3,4) (он по умолчанию настроен как WAN и для него включен режим DHCP-клиент)
а все остальные порты в LAN и там включен DHCP Server! что несколько упрощает подключение.
кст. IP адрес в лан по умолчанию в родной прошиивке 10.10.10.254
Аватара пользователя
rhf-admin
администратор, спонсор, писатель, дизайнер, инженер, программист, идеолог
администратор, спонсор, писатель, дизайнер, инженер, программист, идеолог
Сообщения: 3060
Зарегистрирован: 25 авг 2009, 23:19
Откуда: Уфа
Контактная информация:

Re: Микрокомпьютер Skylab SKW92

Сообщение rhf-admin »

В skw92 есть один забавный нюанс: интерфейсы lan мультиплексированы с некоторыми другими интерфейсами, в частности SDXC и при этом, что самое обидное, мы не можем выключать lan-ы по одному, только все сразу. В итоге - либо все 4 lan-порта одновременно, либо sd-карта.

Однако есть небольшой хук ушами, позволяющий хотя бы переключать эти интерфейсы налету. Выбор определяется битами 17-20 регистра AGPIO_CFG (адрес 0x1000003C), - менять можно через devmem. При установке любого из 4-х битов в 1 lan-порты переключаются из аналогового входа в цифровой и перестают быть lan-портами, если все 4 бита нули - перед нами снова lan-порты.
Ниже приведены логи, в которых выполняется такое переключение между lan-портами и sd-картой налету. В приведённом примере необходимые для работы с sd-картой модули ядра скомпилены и подгружаются отдельно. При этом модули mmc_core.ko, mmc_block.ko и mtk_sd.ko можно даже и не выгружать (но в примере они сначала выгружаются):

Код: Выделить всё

BusyBox v1.33.1 (2021-05-19 13:50:50 UTC) built-in shell (ash)

  _______                     ________        __
 |       |.-----.-----.-----.|  |  |  |.----.|  |_
 |   -   ||  _  |  -__|     ||  |  |  ||   _||   _|
 |_______||   __|_____|__|__||________||__|  |____|
          |__| W I R E L E S S   F R E E D O M
 -----------------------------------------------------
 OpenWrt SNAPSHOT, r16753-b810d649fb
 -----------------------------------------------------
root@OpenWrt:/#

root@OpenWrt:/# cd /tmp
root@OpenWrt:/tmp# wget http://192.168.10.97/MMC/mmc_block.ko
Downloading 'http://192.168.10.97/MMC/mmc_block.ko'
Connecting to 192.168.10.97:80
Writing to 'mmc_block.ko'
mmc_block.ko         100% |*******************************| 40964   0:00:00 ETA
Download completed (40964 bytes)
root@OpenWrt:/tmp# wget http://192.168.10.97/MMC/mmc_core.ko
Downloading 'http://192.168.10.97/MMC/mmc_core.ko'
Connecting to 192.168.10.97:80
Writing to 'mmc_core.ko'
mmc_core.ko          100% |*******************************|   118k  0:00:00 ETA
Download completed (121504 bytes)
root@OpenWrt:/tmp# wget http://192.168.10.97/MMC/mtk_sd.ko
Downloading 'http://192.168.10.97/MMC/mtk_sd.ko'
Connecting to 192.168.10.97:80
Writing to 'mtk_sd.ko'
mtk_sd.ko            100% |*******************************| 20928   0:00:00 ETA
Download completed (20928 bytes)
root@OpenWrt:/tmp# insmod mmc_core.ko
root@OpenWrt:/tmp# insmod mmc_block.ko
root@OpenWrt:/tmp# insmod mtk_sd.ko
root@OpenWrt:/tmp# [  275.347628] mmc0: new high speed SDHC card at address b368
[  275.365914] mmcblk0: mmc0:b368 NCard 7.48 GiB
[  275.377885]  mmcblk0: p1						<----- включилась SD-карта, пропала связь через LAN

root@OpenWrt:/tmp# rmmod mtk_sd.ko
[  336.260073] msdc0 -> removed !!! <- msdc_drv_remove() : L<2367> PID<rmmod><0x905>
[  336.275095] mmc0: card b368 removed
root@OpenWrt:/tmp# rmmod mmc_block.ko
root@OpenWrt:/tmp# rmmod mmc_core.ko					<----- выгрузили модули MMC,  карта пропала
root@OpenWrt:/tmp# devmem 0x1000003C 32					<----- но lan пока не работает, потому что
0x00FE01FF								<----- биты 17-20 в AGPIO_CFG остались подняты
root@OpenWrt:/tmp# devmem 0x1000003C 32 0x00E001FF			<----- сбрасываем руками биты 17-20 в AGPIO_CFG
root@OpenWrt:/tmp# [  453.926859] rt3050-esw 10110000.esw: link changed 0x00
[  455.824709] rt3050-esw 10110000.esw: link changed 0x04		<----- включился LAN, появилась связь !!!
root@OpenWrt:/tmp# insmod mmc_core.ko
root@OpenWrt:/tmp# insmod mmc_block.ko
root@OpenWrt:/tmp# insmod mtk_sd.ko
[  519.820420] rt2880-pinmux pinctrl: sdmode is already enabled
[  519.831724] mtk-sd 10130000.sdhci: Error applying setting, reverse things back
root@OpenWrt:/tmp# [  519.907302] mmc0: new high speed SDHC card at address b368
[  519.925487] mmcblk0: mmc0:b368 NCard 7.48 GiB
[  519.937347]  mmcblk0: p1						<----- снова включилась SD-карта
P.S. А нет, модули лучше всё же выгрузить, иначе есть шанс словить exeption, если при примонтированой карте туда/сюда ногами дёргать.
С уважением, администрация сайта.
Аватара пользователя
Virtual2
Читатель
Читатель
Сообщения: 160
Зарегистрирован: 23 май 2016, 22:12

Re: Микрокомпьютер Skylab SKW92

Сообщение Virtual2 »

rhf-admin писал(а): 23 май 2021, 11:48 Выбор определяется битами 17-20 регистра AGPIO_CFG (адрес 0x1000003C), - менять можно через devmem.
одно маленькое но 8-)
прошивка должна быть собрана с поддержкой devmem, как с утилью так и в ядре!. (по дефолту этого само собой ни у кого нет)
Аватара пользователя
Virtual2
Читатель
Читатель
Сообщения: 160
Зарегистрирован: 23 май 2016, 22:12

SKW92 - альфа док.

Сообщение Virtual2 »

фото альфа версии базовой платы, уже вполне себе рабочее!.
Снимок экрана от 2021-05-24 21-11-09.png
Снимок экрана от 2021-05-24 21-10-44.png
Аватара пользователя
Virtual2
Читатель
Читатель
Сообщения: 160
Зарегистрирован: 23 май 2016, 22:12

Re: SKW92 - альфа док. - активация SDHC

Сообщение Virtual2 »

для аппаратной активации нужно откусить одну деталь на SKW92 - альфа док.
Картинка раз
Снимок экрана от 2021-05-24 21-27-59.png
Картинка два
photo_2021-05-24_21-26-25.jpg
photo_2021-05-24_21-26-25.jpg (20.35 КБ) 6603 просмотра
Аватара пользователя
rhf-admin
администратор, спонсор, писатель, дизайнер, инженер, программист, идеолог
администратор, спонсор, писатель, дизайнер, инженер, программист, идеолог
Сообщения: 3060
Зарегистрирован: 25 авг 2009, 23:19
Откуда: Уфа
Контактная информация:

Re: Микрокомпьютер Skylab SKW92

Сообщение rhf-admin »

Теперь док-плату для экспериментов с skw92 можно приобрести в нашем интернет-магазине:
https://radiohlam.ru/product/rh-0009c/
С уважением, администрация сайта.
Аватара пользователя
rhf-admin
администратор, спонсор, писатель, дизайнер, инженер, программист, идеолог
администратор, спонсор, писатель, дизайнер, инженер, программист, идеолог
Сообщения: 3060
Зарегистрирован: 25 авг 2009, 23:19
Откуда: Уфа
Контактная информация:

Re: Микрокомпьютер Skylab SKW92

Сообщение rhf-admin »

На сайте появилась статья, описывающая особенности микрокомпьютеров skylab skw92, а также процедуру сборки альтернативных прошивок для них на базе openwrt. Плюс описание, как добавить в сборку сторонние пакеты (на примере добавления пакета omega2-ctrl от Onion): https://radiohlam.ru/skw92_1/
С уважением, администрация сайта.
Ответить

Вернуться в «Устройства на микроконтроллерах»