Цитата
Правильно ли я понял, что базовый адрес rom expantion в памяти флешки равен 0? (по смещению 0 будет храниться 55h)
Да
Цитата
Хотелось бы подробнее узнать как подцепить корку PCIe к флешке или внутренней памяти ПЛИС - получается нужен преобразователь из Avalon ST в MM?
Тут два варианта.
1. Вы используете Qsys. Контроллер флешки у вас получается будет Avalon MM. Или внутреннюю память будете использовать, она тоже будет Avalon MM в Qsys.
Так как pcie корка сгенерена мегавизардом, вам придется написать свой компонент для Qsys, в котором обвяжете pcie корку, прикрутите к ней Avalon MM.
2. Вы не используете Qsys. Контроллер флешки у вас хоть какой.
Пишите некий костыль для стыковки этого контроллера флешки с коркой pcie.
Если внутреннюю память задействуете, то тоже будете состыковывать с коркой pcie.
Тут заковыка в том, что у pcie корки выход то Avalon ST, но напрямую данные от другого источника Avalon ST туда подавать нельзя.
В корку нужно засовывать пакеты в соответствии с форматом Transaction Layer Protocol в соответствии со спецификацией PCI Express.
Тоже касается и приходящих из корки пакетов - там вместе с данными присутствует заголовок пакета.
Почитать о формате пакетов можно здесь
http://xillybus.com/tutorials/pci-express-...utorial-guide-1То есть Биос будет пытаться читать ваш bar expantion.
По шине Avalon ST от корки к вам будут прилетать Read Request пакеты.
Вы их должны обнаружить (по полям Fmt и Type, а также Length=1, также адрес будет ссылаться на ваш bar expantion).
В ответ на этот запрос нужно вернуть Completion пакет с данными, а для такого пакета нужно самому собрать заголовок.
Отличие и достоинства Qsys варианта PCIE корки в том, что не нужно заморачиваться с заголовками.
Но в нее не заложили bar expantion, поэтому придется пыхтеть над заголовками pcie пакетов.