Ethernet контроллер STM32F107 + PHY ST802RT1 + LwIP, прямое соединение кабелем с сервером.
При переключении сетевой карты сервера в различные режимы наблюдается картина:

100 Mb / Full - обмен есть
100 Mb / Half - обмен есть
10 Mb / Full - обмен есть
10 Mb / Half - обмена нет

PHY в режиме автосогласования корректно определяет все режимы, далее производится запись битов FES (FES=1 - 100Mbit) и DM (DM=1 - FullDuplex) в регистр ETH_MACCR по результатам автосогласования.
Замечено, что если MAC сконфигурирован на FullDuplex, то обмен нормальный, при любых вариантах Full / Half на сервере при соответствии скорости сервера и MAC.
Вопрос - почему так происходит и как с этим бороться?