Почитайте про устройство Memory Management Unit (MMU), таблицы трансляции виртуальной памяти x86, TLB и так далее.
В стандартном режиме процессор оперирует виртуальными адресами, которые не соответствуют физическим ячейкам оперативной памяти. Это удобно с точки зрения программирования и безопасности - в разных программах можно использовать те же адреса, а также не пускать программы в "чужие" области памяти.
mmapiospace / mmapviewofsection как раз настраивает таблицу трансляции памяти для текущего процесса нужным образом, чтобы вы могли получить доступ к памяти, которую вы хотите.
А софт для прошивки биоса пишет в аппаратные регистры SPI контроллера на шине PCI Express, не в память. И это не особенность материнки, а скорее интерфейс к оборудованию. Похожим образом через чтение/запись работает большинство драйверов устройств