Алгоритм инициализации phy в u-boot
Как то одно время очень долго разбирался с инициализацией phy в юбут и чтобы не забыть весь этот гемор написал этот рассказ.
Описание того как ведут себя сетевые интерфейсы в u-boot.
Если на платке два сетевых интерфейса, подключенных через разные микросхемы phy. После включения питания инициализируется первый интерфейс и если на нем есть линк, то инициализация второго не выполняется. Если линка нет то инициализируется второй.
Что происходит с клоками на шине rmii?
Описывается ситуация когда на платке два сетевых интерфейса. Первый подключен к 88e1111 второй к другому phy.
Описание поведения сигналов следует разделить на две части.
1. Кабель езернет НЕ подключен к первому разъему при включении питания и загрузке u-boot. U-boot стартанул и переключился на второй эзернет сделав первый не активным (для просмотра текущего активного
интерфейса: (=> printenv ethact)
Поведение клоков:
а. при отсутвии линка. на клоке ОТ 88e1111 шины rmii стоит частота 125мгц.
на клоке К 88e1111 шины rmii стоит частота 125мгц.
б. при подключении кабеля в разъем эзернет. на клоке ОТ 88e1111 шины rmii получаем ту частоту на которой происходит линк.
так например:
при линке 1Гбт частота - 125мгц
при линке 100Мбит частота - 25мгц
на клоке К 88e1111 шины rmii стоит частота 125мгц.
2. Кабель езернет подключен к первому разъему при включении питания и загрузке u-boot. U-boot стартанул и остановился на первом интерфейсе сделав его активным. (для просмотра текущего активного
интерфейса: (=> printenv ethact)
Поведение клоков:
а. при отсутвии линка. на клоке ОТ 88e1111 шины rmii стоит частота 125мгц.
на клоке К 88e1111 шины rmii стоит частота на которой был линк при загрузке u-boot и при инициализации сетевого интерфейса.
так например:
при линке 1Гбт частота - 125мгц
при линке 100Мбит частота - 25мгц
б. при подключении кабеля в разъем эзернет. на клоке ОТ 88e1111 шины rmii получаем ту частоту на которой происходит линк.
так например:
при линке 1Гбт частота - 125мгц
при линке 100Мбит частота - 25мгц
на клоке К 88e1111 шины rmii стоит частота на которой был линк ПРИ ЗАГРУЗКЕ u-boot и при инициализации сетевого интерфейса.
так например:
при линке 1Гбт частота - 125мгц
при линке 100Мбит частота - 25мгц
Еще один вид поведения клока это когда к сетевому интерфейсу не подключен phy, т.е. дорожки висят в воздухе.
на клоке ОТ 88e1111 шины rmii стоит частота 125мгц.
на клоке К 88e1111 шины rmii видим 0.
И вариант когда u-boot прогрузился проинициализировав первый интерфейс и сделав его активным. На втором интерфейсе на обоих клоках видим 125мгц