Как-то невнимательно вы читали Вашу же ссылку. 1. Функция

Как-то невнимательно вы читали Вашу же ссылку.
1. Функция работает по всей памяти.
2. GRUB использует именно эту функцию.

Цитата:
где лежат BIOSы PCI-расширений

Как всегда - где-то от 0xC0000 до 0xF(E?)0000. C0000 - видео, дальше BIOS сам решает кого куда совать. Искать - по сигнатурам. Сопоставлять с конкретным устройством - по VID/DID в PCI-заголовке.

Раскладка основного BIOS есть тут в статьях - сегменты 0xE000, 0xF000, 0x1000 и т.п. К загрузке ОС - ну, 0xF(E?)000-то остается. Мемори-маппед устройства - определять по PCI. Где лежит USB-память - по регистрам USB-контроллера. Еще где-то замапленная SMM-память лежит, по идее...
Таблицы ACPI - "выполняется сканирование блока BIOS Runtime (адреса 000E0000h-000FFFFFh), если ACPI поддерживается, там будет обнаружена структура RSDP (Root System Description Pointer). Структура RSDP содержит указатель на таблицу RSDT (Root System Description Table), содержащую каталог таблиц ACPI. RSDT и другие таблицы ACPI находятся в верхних адресах Extended памяти в блоке служебной информации BIOS. Для того, чтобы при использовании Extended памяти этот блок не был "затерт", размер памяти, о котором рапортует BIOS, уменьшен на размер этого блока".

Нда - задача нетривиальная, и готовое решение надо собирать по крупицам.