Jump to content
    

Чтение/запись регистров через MII

Есть специфическая китайская железка, состоящая из основного SoC Nuvoton NUC980DK61YC и 3х портового Ethernet свитча KSZ8863RLLI.
Нужно поменять поведение свитча. В datasheet'е на него нашел, что за его поведение отвечают внутренние регистры. Регистры вроде бы должны быть доступны через MII и именно через него свит подключен к Nuvoton'у.
И вот тут у меня затык, я так и не смог придумать как их прочитать (ну и записать)
Железка на ARM5, внутри сильно порезанный OpenWRT в котором нет прочти ничего. Я пока пытаюсь запихнуть туда gcc чтобы собрать net-tools где есть mii-tool, но пока не очень успешно.
Готовые сборки net-tools, что мне удалось найти, ругаются на отсутствие зависимостей в различных библиотеках.
Собственно хочется понять, я не вижу какой-то более простой способ сконфигурить этот несчастный свитч?

Про самый простой способ: выпаять свитч, впихнуть его в макетную плату с минимально объвязкой и сконфигурить через родную утилиту от Micrel - я знаю, но планируется закупать много таких устройств и с каждым так делать не будешь.

Edited by Fleurety

Share this post


Link to post
Share on other sites

MII - это интерфейс данных для самого потока Ethernet. Через него регистры не доступны.

Обычно всегда есть интерфейс "рядом" - SMI (он же MDIO), или какой-нибудь SPI/I2C для более глубокого контроля.

Share this post


Link to post
Share on other sites

7 hours ago, Fleurety said:

Я пока пытаюсь запихнуть туда gcc

 Зачем? Гораздо проще собрать необходимое на ПК.

 

7 hours ago, Fleurety said:

mii-tool

Доступ к внутренним регистрам у KSZ8863 через SMI не стандартный, не уверен, что поможет.

 

7 hours ago, Fleurety said:

выпаять свитч, впихнуть его в макетную плату с минимально объвязкой и сконфигурить через родную утилиту от Micrel

 Где он запомнит эту конфигурацию?

Share this post


Link to post
Share on other sites

9 часов назад, Fleurety сказал:

Я пока пытаюсь запихнуть туда gcc чтобы собрать net-tools где есть mii-tool, но пока не очень успешно.

А мсье знает толк в извращениях))) Вы представляете, сколь будет это все собираться и компилироваться на 300МГц проце с тормознутой сдрам, сколько ее там, предположу, макс 16 мегабайт))))))  Я уже делал такое в махровых годах на TI DM368 там на это почти весь день ушел, при том, что все уже было готово и настроено,  только запусти... 

1 час назад, aaarrr сказал:

Зачем? Гораздо проще собрать необходимое на ПК.

Тут по моему это вообще без вариантов...

9 часов назад, Fleurety сказал:

Железка на ARM5

АРМ9 так то))

9 часов назад, Fleurety сказал:

внутри сильно порезанный OpenWRT в котором нет прочти ничего.

А поискать версию с большим функционалом? Хотя, кто ж сейчас такие процы под это дело ставит, под MIPS наверно куда проще было б найти...

2 часа назад, aaarrr сказал:

Где он запомнит эту конфигурацию?

Не спец, но там ведь SMI как-то видится, каким-нить скриптом туда пакет конфига слать?

Share this post


Link to post
Share on other sites

Спасибо за указание направления куда копать, куда не копать. Пошел искать интерфейса "рядом", вроде бы действительно там ест SPI, но что с ним делать я пока не понял:

image.thumb.png.1cf23b2dc3d22cdffa4b97d12b3a2e0a.png

В документации на свитч нашел следующее:

image.png.8fb7a524bfd0e0dc40a0fcd23690da4d.png 

Правда у меня даже близко ничего похожего нет:

image.thumb.png.16175b1a4dbe545e3389422704f54e05.png

image.thumb.png.549c521d600f85d27144cc30939e2899.png

Собственно как и чем можно попробовать прочитать регистры через SPI?

Share this post


Link to post
Share on other sites

On 2/28/2024 at 2:22 PM, Fleurety said:

В документации на свитч нашел следующее:

Может это не документация на свич, а документация на линуксовый драйвер свича ?

On 2/28/2024 at 2:22 PM, Fleurety said:

Собственно как и чем можно попробовать прочитать регистры через SPI?

А у вас SPI свича на плате точно соединен с процессором ?

Share this post


Link to post
Share on other sites

19 minutes ago, Fleurety said:

Собственно как и чем можно попробовать прочитать регистры через SPI?

Посмотрите, что вообще есть в sysfs на тему 8863 (т.е. find /sys | grep 8863)

Share this post


Link to post
Share on other sites

/sys/bus/spi/drivers/ksz8863
/sys/bus/spi/drivers/ksz8863/bind
/sys/bus/spi/drivers/ksz8863/uevent
/sys/bus/spi/drivers/ksz8863/unbind

Share this post


Link to post
Share on other sites

свои 5 коп. "ls /dev"  -  ищем что-то типа mmc**** расделы флеш/нан/т.п. Можно глянуть fstab и посмотреть куда смонтирован рутфс. если рутфс на /dev/mmcblk3p2, то нужен  /dev/mmcblk3p1. Где-то на флеше есть раздел, в котором ядро и дерево девайсов. Нужно найти этот раздел. Смонтировать как fat куда-нибудь в /mnt/dtb

В этом разделе должно быть дерево девайсов, файл *.dtb (и ядро, обычно zImage)

тащим тот файл на хост ПК, преобразуем из dtb в dts

Цитата

конвертация  dtd в dts
dtc -I dtb -O dts -o devicetree.dts devicetree.dtb 

Открываем текстовым редактором dts - картина маслом.  Находим свой ethernet и смотрим чем он дышит? какие ноги, какое управление mdio/spi/i2c.... (я получал доступ до регистров, и по мойму как раз инструментом mii-tool). Возможно, там же увидите значения регистров вашего eth, которые драйвер ядро задает при старте. 

Опять же ..... вангую... возможно для ёвной конфигурации надо в probe драйвер передать аргументы. И возможно достаточно эти аргументы поправить (или задать) в dts (и получите желаемую переконфигурацию). Потом обратно dts в dtb. Переписать dtb в разделе /dev/mmcblk3p1 - профит!!!

 

ps Но есть шанс получить кирпич. Хотя, если синтактическая ошибка в dts, то dtb не соберёте. А если передадите в драйвер из dtb "плохой" аргумент - в худшем случае ethrnet не заведётся, а всё остальное будет работать. Если не куда будет подрубить терминал, акромя ssh - то рабочий роутер без терминала - это тот же кирпич.  

 

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...