если точнее - вычитываются первые 4 байта opt-roma, о остальные байты- 0xFF. Понять это можно несколькими способами - например, посмотреть в соответствующей области ОЗУ ПЭВМ. Ну или через отладочную прошивку системной платы ПЭВМ - посмотреть в логе, что было вычитано из платы расширения PCIe.
без корректного функционирования некоторых устройств, ОС даже не загрузится. впрочем, обсуждение полезности механизма opt-rom, выходит за рамки нашего вопроса. для нашего устройства - выполнение opt-rom-а до начала загрузки ОС - необходимо.
это вряд ли. проблема идентично проявляется на самых разных системных платах от разных производителей, если там установлен райзен. более того, если AMD Ryzen на тех же системных платах заменить, например, на AMD A8 - то всё начинает работать корректно. Так же класс PCI-устройства тут тоже вряд ли влияет.
Повторюсь проблема в вычитке PCI-Opt-ROM. Биос системной платы корректно вычитывает первые 4 байта, а вместо остальных - вычитывается 0xFF. Так как первые 2 байта содержать magic - он читается правильно, BIOS системной платы думает что opt-rom корректные, начинает его обрабатывать - и, в результате, виснет.