Цитата(krux @ Sep 29 2013, 18:34)

1) разрядность шины CSR зависит от канальности
address[(log2(MAX_CHANNELS)+7):0]
Это понятно. У меня мегафункция в режиме мультипорт, а количество портов - 1, вот и получается, согласно формуле, 8-ми разрядная шина адреса (к стати да, сверху очепятка, не 7 а 8 конечно же).
Цитата(krux @ Sep 29 2013, 18:34)

2) даже если все PHY висят физически на одном MDIO, к ним можно получить доступ через "окно" первого порта.
Правильно ли я понимаю, регистр MDIO_ADDR0 (0x03C) и окно PHY Device 0 Internal Registers (0x200 – 0x27C) образуют как бы пару, а MDIO_ADDR1 (0x040) и окно PHY Device 1 Internal Registers (0x280 – 0x2FC) образуют как бы вторую пару? Т.е., чтобы обратиться к какой-нибудь PHY, мне что надо сделать?
Мне надо в регистр MDIO_ADDR0 записать адрес этой PHY, после чего окно "PHY Device 0 Internal Registers" отобразится на нужную PHY. Таким образом, в регистре MDIO_ADDR0 значения нужно менять динамически, каждый раз перезаписывая перед обращением к другой PHY. Я правильно мыслю? Если правильно, то встаёт вопрос: зачем нужна вторая пара. Для второго MDIO? Но MDIO-интерфейс всегда один, не зависимо от количества портов.
И да, на стр. 4-28, только сегодня обнаружил такую строчку "The following registers are shared among all instances of a multi-port MAC:". Я её понимаю так: в мегафункции все регистры делятся на общие и на предназначенные для каждого порта (для второго порта (т.е. для первого, если считать от нуля) они начинаются со смещения 0х400), согласно последнему абзацу на стр. 4-27, и под строчкой перечислены как раз общие регистры. Но в перечислении указаны только регистры MDIO_ADDR0 и MDIO_ADDR1, а Окна там отсутствуют. Неужто буржуи забыли написать?