diff --git a/repos/os/include/pci/config.h b/repos/os/include/pci/config.h index 4e5b61db59..3cb8931b1f 100644 --- a/repos/os/include/pci/config.h +++ b/repos/os/include/pci/config.h @@ -129,8 +129,12 @@ struct Pci::Config : Genode::Mmio Genode::uint64_t addr() { - return (bit64() ? ((Genode::uint64_t)read()<<32) : 0UL) - | Bar_32bit::Memory_base::masked(read()); + if (memory()) + return (bit64() + ? ((Genode::uint64_t)read()<<32) : 0UL) + | Bar_32bit::Memory_base::masked(read()); + else + return Bar_32bit::Io_base::masked(read()); } };