diff --git a/repos/os/src/drivers/gpu/intel/mmio.h b/repos/os/src/drivers/gpu/intel/mmio.h index 3f52cc8e47..436fc4b429 100644 --- a/repos/os/src/drivers/gpu/intel/mmio.h +++ b/repos/os/src/drivers/gpu/intel/mmio.h @@ -481,6 +481,10 @@ class Igd::Mmio : public Genode::Mmio struct Reserved : B::template Bitfield<16, 16> { }; /* MBZ */ struct Error_identity_bits : B::template Bitfield< 0, 16> { }; + + struct Error_instruction : B::template Bitfield<0, 1> { }; + struct Error_mem_refresh : B::template Bitfield<1, 1> { }; + struct Error_page_table : B::template Bitfield<4, 1> { }; }; struct RCS_EIR : EIR_BASE<0x2000> { }; diff --git a/repos/os/src/drivers/gpu/intel/mmio_dump.cc b/repos/os/src/drivers/gpu/intel/mmio_dump.cc index f470a0fbcf..65d5a5738a 100644 --- a/repos/os/src/drivers/gpu/intel/mmio_dump.cc +++ b/repos/os/src/drivers/gpu/intel/mmio_dump.cc @@ -78,6 +78,21 @@ void Igd::Mmio::error_dump() } log("RCS_EIR: ", Hex(read())); + if (read()) { + if (read()) + log(" Error_instruction"); + if (read()) + log(" Error_mem_refresh"); + if (read()) + log(" Error_page_table"); + + auto type = read(); + if (type != (RCS_EIR::Error_page_table::masked(type) | + RCS_EIR::Error_mem_refresh::masked(type) | + RCS_EIR::Error_instruction::masked(type))) + log(" some unknown error bits are set"); + } + log("RCS_ESR: ", Hex(read())); log("RCS_EMR: ", Hex(read())); log("RCS_INSTDONE: ", Hex(read()));