Pull to refresh
6
0
Дмитрий @dmirr

embedded software developer

Send message

Как-минимум - отпрапортовать проблему.

Если линк не поднимается, значит либо не работает "железо", или BOOT ROM не способно выполнить функцию по его инициализации. BMC будет считать, что SOC неисправен.
Инициализация SoC в данном случае - проведение "сброса" железа и этап работы BOOT ROM, до загрузки ПО из BOOT FLASH.

Что касается ресурсов PCIe, то речь в статье идет об отдельной иерархии management PCIe, где BMC является хостом, а серверные сокеты в ней - устройства. В этой иерархии рутовый комплекс находится в BMC и тот занимается инициализацией устройств на сокетах. Но речь, опять же, о тех IP внутри серверных SoC, которые находятся в домене platform management и не относятся к серверной функции. Т.е. те, что отвечают за коммуникацию информации между серверным сокетом и BMC.
За инициализацию устройств в иерархии PCIe сервера отвечает само ПО сервера.
Что касается загрузкт, то загрузка самого сервера начинается с инициализации SoC. Так например, при включении сокет проверяет бутстрап пины для определения конфигурации загрузки. В статье я предлагаю выбросить эти пины, заменив их IP блоком/PCIe функцией в домене platform management, которая бы захватывала загрузочную конфигурацию по шине (через виртуальные GPIO). А сама загрузка сервера вполне может происходить как обычно - с бут флэша. С т.з. серверного ПО все эти изменения будут видны лишь на самых ранних этапах, возможно до запуска BIOS. У BIOS остаются все те же функции и ответсвенность.

Вероятно, я плохо артикулировал это в статье - но сокеты сервера - это устройства PCIe для BMC. Он их включает/выключает и общается с ними по PCIe, когда возможно.

Как устройство PCIe, сокет может инициализировать линк на этапе BOOT ROM, когда фирмварь даже не загружена. И т.к. на сокете реализованы несколько PCIe функций, то уже на этапе работы BOOT ROM BMC может следить за статусом загрузки, устанавливать различные параметры загрузки и, собственно, передавать по линку сам образ ПО, если флэш сервера еще ни разу не прошивали.

Мой опыт в работе с железом говорит, что инициализация PCIe на таких ранних этапах вполне возможна. Посмотрите к примеру, что творят NXP в их I.MX6/8 SoC.

Разные вендоры точат свои дев киты кто под винду, кто под линукс. И если разрабатываешь софт для железа разных вендоров, то одним хостом не обойдешься.
Пэтому конечно приятнее просто сидеть на одном хосте в винде и пользовать тулчейны собранные под линукс.
Компания Agava делала такой эмулятор лет 12 назад. Сделали, кстати. Запускали bash, gcc и много что другое. Реализовали кучу девайсов, включая framebufer, audio/mixer и запускали иксы и mplayer. Использовали дистрибутив fedora core 2 тогда. Было интересно, но потом как-то все стухло. Теперь вот MS тему подхватило. Между прочим, для эмбедщика, вещь представляет интерес, поскольку позволит работать с линуксовыми кросс тулчейнами из под винды, что избавит от необходимости иметь дистрибутив Linux под VM.

Information

Rating
Does not participate
Location
Нижний Тагил, Свердловская обл., Россия
Works in
Date of birth
Registered
Activity