В рамках проекта AMD openSIL (Open-Source Silicon Initialization Library) развивается набор открытых библиотек, содержащих компоненты для упрощения создания прошивок. Идея в выносе кода для инициализации оборудования в отдельные, независимо тестируемые и сопровождаемые, библиотеки openSIL, которые написаны на распространённом языке Си и могут статически связываться с основными прошивками без задействования специфичных протоколов.
Предоставляемый набор библиотек позволяет быстро и просто добавить поддержку необходимого оборудования в типовые UEFI-прошивки, а также альтернативные прошивки, созданные на базе платформ CoreBoot, oreboot, FortiBIOS и Project µ. Проект избавляет разработчиков от необходимости раздельного сопровождения прошивок для конкретного оборудования и изначально развивается как открытый и прозрачно развиваемый инструментарий, что также позволит повысить безопасность прошивок, упростить тестирование, обеспечить независимую верификацию, унифицировать отслеживание ошибок и уязвимостей.
Совместно с компаниями 9elements, AMI, AWS, 3mdeb, Datacom, Google, Meta и Oxide подготовлен первый вариант набора openSIL для эталонной платформы на базе четвёртого поколения процессоров AMD EPYC. Прототип будет продемонстрирован на конференции OCP Regional Summit, которая состоится с 19 по 20 апреля 2023 года. Отмечается, что код пока не готов к повсеместному использованию и находится на стадии рабочего прототипа. Из ближайших планов упоминается подготовка инструкций по интеграции с CoreBoot, публикация спецификации openSIL Firmware Architecture Specification, создание прошивок на базе CoreBoot и AMI Aptio OpenEdition для платформы AMD CRB на базе SoC AMD EPYC 4 Gen.
AMD openSIL включает три базовые библиотеки, рассчитанные на статическое связывание во время компиляции:
- xSIM (x86 Silicon Initialization Libraries) - предоставляет API для базовой инициализации хост-платформы, включая инициализацию DRAM, JEDEC и контроллеров памяти.
- xPRF (x86 Platform Reference Library) - сервисы для инициализации специфичных аппаратных компонентов, таких как GPIO и SMM.
- xUSL (x86 Utilities & Services Library) - вспомогательные внутренние обработчики, используемые в библиотеках xSIM и xPRF, и недоступные для вызова из прошивок.