[Media Common] mhw head file clean up for self contain

[Media Common][APO] mhw head file clean up for self contain.
diff --git a/media_common/agnostic/common/hw/mhw_mi.h b/media_common/agnostic/common/hw/mhw_mi.h
index cbff986..df16481 100644
--- a/media_common/agnostic/common/hw/mhw_mi.h
+++ b/media_common/agnostic/common/hw/mhw_mi.h
@@ -28,13 +28,14 @@
 #ifndef __MHW_MI_H__
 #define __MHW_MI_H__
 
-class MhwCpInterface;
-
+#include <memory>
+#include "mos_defs.h"
 #include "mos_os.h"
-#include "mhw_utilities.h"
-#include "mhw_cp_interface.h"
 #include "mhw_mmio.h"
-#include "mhw_mi_itf.h"
+#include "mhw_utilities_next.h"
+#include "mos_os_specific.h"
+
+class MhwCpInterface;
 
 #define MHW_MI_WATCHDOG_ENABLE_COUNTER                  0x0
 #define MHW_MI_WATCHDOG_DISABLE_COUNTER                 0x1
diff --git a/media_driver/agnostic/common/hw/mhw_mi.cpp b/media_driver/agnostic/common/hw/mhw_mi.cpp
index 4ec20d7..cbb2c01 100644
--- a/media_driver/agnostic/common/hw/mhw_mi.cpp
+++ b/media_driver/agnostic/common/hw/mhw_mi.cpp
@@ -26,6 +26,7 @@
 //!
 
 #include "mhw_mi.h"
+#include "mhw_cp_interface.h"
 
 MhwMiInterface::MhwMiInterface(
     MhwCpInterface      *cpInterface,
diff --git a/media_driver/agnostic/common/hw/vdbox/mhw_vdbox_hcp_generic.h b/media_driver/agnostic/common/hw/vdbox/mhw_vdbox_hcp_generic.h
index 60d1741..e3d4594 100644
--- a/media_driver/agnostic/common/hw/vdbox/mhw_vdbox_hcp_generic.h
+++ b/media_driver/agnostic/common/hw/vdbox/mhw_vdbox_hcp_generic.h
@@ -29,6 +29,7 @@
 #define _MHW_VDBOX_HCP_GENERIC_H_
 
 #include "mhw_vdbox_hcp_interface.h"
+#include "mhw_cp_interface.h"
 
 //!  MHW Vdbox Hcp generic interface
 /*!
diff --git a/media_driver/agnostic/common/hw/vdbox/mhw_vdbox_huc_generic.h b/media_driver/agnostic/common/hw/vdbox/mhw_vdbox_huc_generic.h
index 53a4482..12eea7c 100644
--- a/media_driver/agnostic/common/hw/vdbox/mhw_vdbox_huc_generic.h
+++ b/media_driver/agnostic/common/hw/vdbox/mhw_vdbox_huc_generic.h
@@ -29,6 +29,7 @@
 #define _MHW_VDBOX_HUC_GENERIC_H_
 
 #include "mhw_vdbox_huc_interface.h"
+#include "mhw_cp_interface.h"
 
 //!  MHW Vdbox Huc generic interface
 /*!
diff --git a/media_driver/agnostic/common/hw/vdbox/mhw_vdbox_mfx_generic.h b/media_driver/agnostic/common/hw/vdbox/mhw_vdbox_mfx_generic.h
index 02cdf57..f65803e 100644
--- a/media_driver/agnostic/common/hw/vdbox/mhw_vdbox_mfx_generic.h
+++ b/media_driver/agnostic/common/hw/vdbox/mhw_vdbox_mfx_generic.h
@@ -29,6 +29,7 @@
 #define _MHW_VDBOX_MFX_GENERIC_H_
 
 #include "mhw_vdbox_mfx_interface.h"
+#include "mhw_cp_interface.h"
 
 //!  MHW Vdbox Mfx generic interface
 /*!
diff --git a/media_driver/agnostic/common/shared/null_hardware.cpp b/media_driver/agnostic/common/shared/null_hardware.cpp
index a5b6e6e..2561bf1 100644
--- a/media_driver/agnostic/common/shared/null_hardware.cpp
+++ b/media_driver/agnostic/common/shared/null_hardware.cpp
@@ -25,6 +25,7 @@
 #include "mos_os_mock_adaptor.h"
 #include "null_hardware.h"
 #include "mhw_mi.h"
+#include "mhw_mi_itf.h"
 
 bool  NullHW::m_initilized = false;
 bool  NullHW::m_enabled = false;
diff --git a/media_driver/agnostic/gen12/hw/mhw_mmio_g12.h b/media_driver/agnostic/gen12/hw/mhw_mmio_g12.h
index f5f07c1..9083556 100644
--- a/media_driver/agnostic/gen12/hw/mhw_mmio_g12.h
+++ b/media_driver/agnostic/gen12/hw/mhw_mmio_g12.h
@@ -137,4 +137,63 @@
 
 #define M_CCS_HW_FRONT_END_MMIO_MASK                                                     0x7FF
 
+// Media Engine
+#define M_MMIO_MAX_RELATIVE_OFFSET 0x3FFF  //!< Max reg relative offset in an engine
+#define M_MMIO_MEDIA_LOW_OFFSET 0x1C0000   //!< Low bound of VDBox and VEBox MMIO offset
+#define M_MMIO_MEDIA_HIGH_OFFSET 0x200000  //!< High bound of VDBox and VEBox MMIO offset
+
+//Render
+#define M_MMIO_RCS_AUX_TABLE_BASE_LOW 0x4200
+#define M_MMIO_RCS_AUX_TABLE_BASE_HIGH 0x4204
+#define M_MMIO_RCS_AUX_TABLE_INVALIDATE 0x4208
+#define M_MMIO_RCS_HW_FE_REMAP_RANGE_BEGIN 0x2000
+#define M_MMIO_RCS_HW_FE_REMAP_RANGE_END 0x27FF
+#define M_MMIO_RCS_AUX_TBL_REMAP_RANGE_BEGIN 0x4200
+#define M_MMIO_RCS_AUX_TBL_REMAP_RANGE_END 0x420F
+#define M_MMIO_RCS_TRTT_REMAP_RANGE_BEGIN 0x4400
+#define M_MMIO_RCS_TRTT_REMAP_RANGE_END 0x441F
+
+#define M_MMIO_MEDIA_REG_BASE 0X380000  //!<Media Engine Base
+
+//VD
+#define M_MMIO_VD0_AUX_TABLE_BASE_LOW 0x4210
+#define M_MMIO_VD0_AUX_TABLE_BASE_HIGH 0x4214
+#define M_MMIO_VD0_AUX_TABLE_INVALIDATE 0x4218
+#define M_MMIO_VD1_AUX_TABLE_BASE_LOW 0x4220
+#define M_MMIO_VD1_AUX_TABLE_BASE_HIGH 0x4224
+#define M_MMIO_VD1_AUX_TABLE_INVALIDATE 0x4228
+#define M_MMIO_VD2_AUX_TABLE_BASE_LOW 0x4290
+#define M_MMIO_VD2_AUX_TABLE_BASE_HIGH 0x4294
+#define M_MMIO_VD2_AUX_TABLE_INVALIDATE 0x4298
+#define M_MMIO_VD3_AUX_TABLE_BASE_LOW 0x42A0
+#define M_MMIO_VD3_AUX_TABLE_BASE_HIGH 0x42A4
+#define M_MMIO_VD3_AUX_TABLE_INVALIDATE 0x42A8
+
+//VE
+#define M_MMIO_VE0_AUX_TABLE_BASE_LOW 0x4230
+#define M_MMIO_VE0_AUX_TABLE_BASE_HIGH 0x4234
+#define M_MMIO_VE0_AUX_TABLE_INVALIDATE 0x4238
+#define M_MMIO_VE1_AUX_TABLE_BASE_LOW 0x42B0
+#define M_MMIO_VE1_AUX_TABLE_BASE_HIGH 0x42B4
+#define M_MMIO_VE1_AUX_TABLE_INVALIDATE 0x42B8
+
+//Compute
+#define M_MMIO_CCS0_AUX_TABLE_BASE_LOW 0x42C0
+#define M_MMIO_CCS0_AUX_TABLE_BASE_HIGH 0x42C4
+#define M_MMIO_CCS0_AUX_TABLE_INVALIDATE 0x42C8
+#define M_MMIO_CCS0_HW_FRONT_END_BASE_BEGIN 0x1A000
+#define M_MMIO_CCS0_HW_FRONT_END_BASE_END 0x1A7FF
+#define M_MMIO_CCS1_HW_FRONT_END_BASE_BEGIN 0x1C000
+#define M_MMIO_CCS1_HW_FRONT_END_BASE_END 0x1C7FF
+#define M_MMIO_CCS2_HW_FRONT_END_BASE_BEGIN 0x1E000
+#define M_MMIO_CCS2_HW_FRONT_END_BASE_END 0x1E7FF
+#define M_MMIO_CCS3_HW_FRONT_END_BASE_BEGIN 0x26000
+#define M_MMIO_CCS3_HW_FRONT_END_BASE_END 0x267FF
+
+//L3 cache configure
+#define M_MMIO_RCS_L3ALLOCREG 0xB134
+#define M_MMIO_CCS0_L3ALLOCREG 0xB234
+#define M_MMIO_RCS_TCCNTLREG 0xB138
+#define M_MMIO_CCS0_TCCNTLREG 0xB238
+
 #endif   //__MHW_MMIO_G12_H__
diff --git a/media_driver/media_softlet/agnostic/Xe_M/Xe_XPM_base/hw/mhw_mi_xe_xpm_base_impl.h b/media_driver/media_softlet/agnostic/Xe_M/Xe_XPM_base/hw/mhw_mi_xe_xpm_base_impl.h
index c42752f..0ec9956 100644
--- a/media_driver/media_softlet/agnostic/Xe_M/Xe_XPM_base/hw/mhw_mi_xe_xpm_base_impl.h
+++ b/media_driver/media_softlet/agnostic/Xe_M/Xe_XPM_base/hw/mhw_mi_xe_xpm_base_impl.h
@@ -366,6 +366,91 @@
         return MOS_STATUS_SUCCESS;
     }
 
+    uint32_t GetMmioInterfaces(MHW_MMIO_REGISTER_OPCODE opCode) override
+    {
+        uint32_t mmioRegisters = MHW_MMIO_RCS_AUX_TABLE_NONE;
+
+        switch (opCode) {
+        case MHW_MMIO_RCS_AUX_TABLE_BASE_LOW:
+            mmioRegisters = M_MMIO_RCS_AUX_TABLE_BASE_LOW;
+            break;
+        case MHW_MMIO_RCS_AUX_TABLE_BASE_HIGH:
+            mmioRegisters = M_MMIO_RCS_AUX_TABLE_BASE_HIGH;
+            break;
+        case MHW_MMIO_RCS_AUX_TABLE_INVALIDATE:
+            mmioRegisters = M_MMIO_RCS_AUX_TABLE_INVALIDATE;
+            break;
+        case MHW_MMIO_VD0_AUX_TABLE_BASE_LOW:
+            mmioRegisters = M_MMIO_VD0_AUX_TABLE_BASE_LOW;
+            break;
+        case MHW_MMIO_VD0_AUX_TABLE_BASE_HIGH:
+            mmioRegisters = M_MMIO_VD0_AUX_TABLE_BASE_HIGH;
+            break;
+        case MHW_MMIO_VD0_AUX_TABLE_INVALIDATE:
+            mmioRegisters = M_MMIO_VD0_AUX_TABLE_INVALIDATE;
+            break;
+        case MHW_MMIO_VD1_AUX_TABLE_BASE_LOW:
+            mmioRegisters = M_MMIO_VD1_AUX_TABLE_BASE_LOW;
+            break;
+        case MHW_MMIO_VD1_AUX_TABLE_BASE_HIGH:
+            mmioRegisters = M_MMIO_VD1_AUX_TABLE_BASE_HIGH;
+            break;
+        case MHW_MMIO_VD1_AUX_TABLE_INVALIDATE:
+            mmioRegisters = M_MMIO_VD1_AUX_TABLE_INVALIDATE;
+            break;
+        case MHW_MMIO_VD2_AUX_TABLE_BASE_LOW:
+            mmioRegisters = M_MMIO_VD2_AUX_TABLE_BASE_LOW;
+            break;
+        case MHW_MMIO_VD2_AUX_TABLE_BASE_HIGH:
+            mmioRegisters = M_MMIO_VD2_AUX_TABLE_BASE_HIGH;
+            break;
+        case MHW_MMIO_VD2_AUX_TABLE_INVALIDATE:
+            mmioRegisters = M_MMIO_VD2_AUX_TABLE_INVALIDATE;
+            break;
+        case MHW_MMIO_VD3_AUX_TABLE_BASE_LOW:
+            mmioRegisters = M_MMIO_VD3_AUX_TABLE_BASE_LOW;
+            break;
+        case MHW_MMIO_VD3_AUX_TABLE_BASE_HIGH:
+            mmioRegisters = M_MMIO_VD3_AUX_TABLE_BASE_HIGH;
+            break;
+        case MHW_MMIO_VD3_AUX_TABLE_INVALIDATE:
+            mmioRegisters = M_MMIO_VD3_AUX_TABLE_INVALIDATE;
+            break;
+        case MHW_MMIO_VE0_AUX_TABLE_BASE_LOW:
+            mmioRegisters = M_MMIO_VE0_AUX_TABLE_BASE_LOW;
+            break;
+        case MHW_MMIO_VE0_AUX_TABLE_BASE_HIGH:
+            mmioRegisters = M_MMIO_VE0_AUX_TABLE_BASE_HIGH;
+            break;
+        case MHW_MMIO_VE0_AUX_TABLE_INVALIDATE:
+            mmioRegisters = M_MMIO_VE0_AUX_TABLE_INVALIDATE;
+            break;
+        case MHW_MMIO_VE1_AUX_TABLE_BASE_LOW:
+            mmioRegisters = M_MMIO_VE1_AUX_TABLE_BASE_LOW;
+            break;
+        case MHW_MMIO_VE1_AUX_TABLE_BASE_HIGH:
+            mmioRegisters = M_MMIO_VE1_AUX_TABLE_BASE_HIGH;
+            break;
+        case MHW_MMIO_VE1_AUX_TABLE_INVALIDATE:
+            mmioRegisters = M_MMIO_VE1_AUX_TABLE_INVALIDATE;
+            break;
+        case MHW_MMIO_CCS0_AUX_TABLE_BASE_LOW:
+            mmioRegisters = M_MMIO_CCS0_AUX_TABLE_BASE_LOW;
+            break;
+        case MHW_MMIO_CCS0_AUX_TABLE_BASE_HIGH:
+            mmioRegisters = M_MMIO_CCS0_AUX_TABLE_BASE_HIGH;
+            break;
+        case MHW_MMIO_CCS0_AUX_TABLE_INVALIDATE:
+            mmioRegisters = M_MMIO_CCS0_AUX_TABLE_INVALIDATE;
+            break;
+        default:
+            MHW_ASSERTMESSAGE("Invalid mmio data provided");;
+            break;
+        }
+
+        return mmioRegisters;
+    }
+
     MOS_STATUS AddMiBatchBufferEnd(
         PMOS_COMMAND_BUFFER             cmdBuffer,
         PMHW_BATCH_BUFFER               batchBuffer) override
diff --git a/media_driver/media_softlet/agnostic/common/vp_vebox_cmd_packet_legacy.cpp b/media_driver/media_softlet/agnostic/common/vp_vebox_cmd_packet_legacy.cpp
index d84e9a4..e4065cf 100644
--- a/media_driver/media_softlet/agnostic/common/vp_vebox_cmd_packet_legacy.cpp
+++ b/media_driver/media_softlet/agnostic/common/vp_vebox_cmd_packet_legacy.cpp
@@ -34,6 +34,7 @@
 #include "vp_feature_caps.h"
 #include "vp_platform_interface.h"
 #include "mhw_vebox_itf.h"
+#include "mhw_mi_itf.h"
 
 namespace vp {
 
@@ -1464,9 +1465,9 @@
     VP_RENDER_CHK_NULL_RETURN(pVeboxInterface);
 
     miItf = std::static_pointer_cast<mhw::mi::Itf>(pMhwMiInterface->GetNewMiInterface());
-    if (m_veboxItf)
+    if (miItf)
     {
-        VP_RENDER_CHK_STATUS_RETURN(m_veboxItf->setVeboxPrologCmd(miItf, CmdBuffer));
+        VP_RENDER_CHK_STATUS_RETURN(miItf->SetPrologCmd(CmdBuffer));
     }
     else
     {
diff --git a/media_softlet/agnostic/common/hw/mhw_mi_cmdpar.h b/media_softlet/agnostic/common/hw/mhw_mi_cmdpar.h
index fcf090d..a724031 100644
--- a/media_softlet/agnostic/common/hw/mhw_mi_cmdpar.h
+++ b/media_softlet/agnostic/common/hw/mhw_mi_cmdpar.h
@@ -36,17 +36,6 @@
 {
 namespace mi
 {
-    static const uint32_t MHW_MI_WATCHDOG_ENABLE_COUNTER                  = 0x0;
-    static const uint32_t MHW_MI_WATCHDOG_DISABLE_COUNTER                 = 0x1;
-    static const uint32_t MHW_MI_DEFAULT_WATCHDOG_THRESHOLD_IN_MS         = 60;
-    static const uint32_t MHW_MI_ENCODER_16K_WATCHDOG_THRESHOLD_IN_MS     = 2000;
-    static const uint32_t MHW_MI_ENCODER_8K_WATCHDOG_THRESHOLD_IN_MS      = 500;
-    static const uint32_t MHW_MI_ENCODER_4K_WATCHDOG_THRESHOLD_IN_MS      = 100;
-    static const uint32_t MHW_MI_ENCODER_FHD_WATCHDOG_THRESHOLD_IN_MS     = 50;
-    static const uint32_t MHW_MI_DECODER_720P_WATCHDOG_THRESHOLD_IN_MS    = 10;
-    static const uint32_t MHW_MI_DECODER_16K_WATCHDOG_THRESHOLD_IN_MS     = 180;
-    static const uint32_t MHW_MI_DECODER_16Kx16K_WATCHDOG_THRESHOLD_IN_MS = 256;
-    static const uint32_t MHW_MI_WATCHDOG_COUNTS_PER_MILLISECOND          = (19200123 / 1000);   // Time stamp counts per millisecond
 
     enum MHW_COMMON_MI_SEMAPHORE_COMPARE_OPERATION
     {
diff --git a/media_softlet/agnostic/common/hw/mhw_mi_impl.h b/media_softlet/agnostic/common/hw/mhw_mi_impl.h
index 24766d3..44e579a 100644
--- a/media_softlet/agnostic/common/hw/mhw_mi_impl.h
+++ b/media_softlet/agnostic/common/hw/mhw_mi_impl.h
@@ -187,90 +187,7 @@
         return MOS_STATUS_SUCCESS;
     }
 
-    uint32_t GetMmioInterfaces(MHW_MMIO_REGISTER_OPCODE opCode) override
-    {
-        uint32_t mmioRegisters = MHW_MMIO_RCS_AUX_TABLE_NONE;
-
-        switch (opCode) {
-        case MHW_MMIO_RCS_AUX_TABLE_BASE_LOW:
-            mmioRegisters = M_MMIO_RCS_AUX_TABLE_BASE_LOW;
-            break;
-        case MHW_MMIO_RCS_AUX_TABLE_BASE_HIGH:
-            mmioRegisters = M_MMIO_RCS_AUX_TABLE_BASE_HIGH;
-            break;
-        case MHW_MMIO_RCS_AUX_TABLE_INVALIDATE:
-            mmioRegisters = M_MMIO_RCS_AUX_TABLE_INVALIDATE;
-            break;
-        case MHW_MMIO_VD0_AUX_TABLE_BASE_LOW:
-            mmioRegisters = M_MMIO_VD0_AUX_TABLE_BASE_LOW;
-            break;
-        case MHW_MMIO_VD0_AUX_TABLE_BASE_HIGH:
-            mmioRegisters = M_MMIO_VD0_AUX_TABLE_BASE_HIGH;
-            break;
-        case MHW_MMIO_VD0_AUX_TABLE_INVALIDATE:
-            mmioRegisters = M_MMIO_VD0_AUX_TABLE_INVALIDATE;
-            break;
-        case MHW_MMIO_VD1_AUX_TABLE_BASE_LOW:
-            mmioRegisters = M_MMIO_VD1_AUX_TABLE_BASE_LOW;
-            break;
-        case MHW_MMIO_VD1_AUX_TABLE_BASE_HIGH:
-            mmioRegisters = M_MMIO_VD1_AUX_TABLE_BASE_HIGH;
-            break;
-        case MHW_MMIO_VD1_AUX_TABLE_INVALIDATE:
-            mmioRegisters = M_MMIO_VD1_AUX_TABLE_INVALIDATE;
-            break;
-        case MHW_MMIO_VD2_AUX_TABLE_BASE_LOW:
-            mmioRegisters = M_MMIO_VD2_AUX_TABLE_BASE_LOW;
-            break;
-        case MHW_MMIO_VD2_AUX_TABLE_BASE_HIGH:
-            mmioRegisters = M_MMIO_VD2_AUX_TABLE_BASE_HIGH;
-            break;
-        case MHW_MMIO_VD2_AUX_TABLE_INVALIDATE:
-            mmioRegisters = M_MMIO_VD2_AUX_TABLE_INVALIDATE;
-            break;
-        case MHW_MMIO_VD3_AUX_TABLE_BASE_LOW:
-            mmioRegisters = M_MMIO_VD3_AUX_TABLE_BASE_LOW;
-            break;
-        case MHW_MMIO_VD3_AUX_TABLE_BASE_HIGH:
-            mmioRegisters = M_MMIO_VD3_AUX_TABLE_BASE_HIGH;
-            break;
-        case MHW_MMIO_VD3_AUX_TABLE_INVALIDATE:
-            mmioRegisters = M_MMIO_VD3_AUX_TABLE_INVALIDATE;
-            break;
-        case MHW_MMIO_VE0_AUX_TABLE_BASE_LOW:
-            mmioRegisters = M_MMIO_VE0_AUX_TABLE_BASE_LOW;
-            break;
-        case MHW_MMIO_VE0_AUX_TABLE_BASE_HIGH:
-            mmioRegisters = M_MMIO_VE0_AUX_TABLE_BASE_HIGH;
-            break;
-        case MHW_MMIO_VE0_AUX_TABLE_INVALIDATE:
-            mmioRegisters = M_MMIO_VE0_AUX_TABLE_INVALIDATE;
-            break;
-        case MHW_MMIO_VE1_AUX_TABLE_BASE_LOW:
-            mmioRegisters = M_MMIO_VE1_AUX_TABLE_BASE_LOW;
-            break;
-        case MHW_MMIO_VE1_AUX_TABLE_BASE_HIGH:
-            mmioRegisters = M_MMIO_VE1_AUX_TABLE_BASE_HIGH;
-            break;
-        case MHW_MMIO_VE1_AUX_TABLE_INVALIDATE:
-            mmioRegisters = M_MMIO_VE1_AUX_TABLE_INVALIDATE;
-            break;
-        case MHW_MMIO_CCS0_AUX_TABLE_BASE_LOW:
-            mmioRegisters = M_MMIO_CCS0_AUX_TABLE_BASE_LOW;
-            break;
-        case MHW_MMIO_CCS0_AUX_TABLE_BASE_HIGH:
-            mmioRegisters = M_MMIO_CCS0_AUX_TABLE_BASE_HIGH;
-            break;
-        case MHW_MMIO_CCS0_AUX_TABLE_INVALIDATE:
-            mmioRegisters = M_MMIO_CCS0_AUX_TABLE_INVALIDATE;
-            break;
-        default:
-            MHW_ASSERTMESSAGE("Invalid mmio data provided");;
-            break;
-        }
-
-        return mmioRegisters;
-    }
+    virtual uint32_t GetMmioInterfaces(MHW_MMIO_REGISTER_OPCODE opCode) = 0;
 
     MOS_STATUS AddProtectedProlog(MOS_COMMAND_BUFFER *cmdBuffer)
     {
@@ -282,6 +199,33 @@
         return MOS_STATUS_SUCCESS;
     }
 
+    MOS_STATUS SetPrologCmd(
+        PMOS_COMMAND_BUFFER cmdBuffer)
+    {
+        MOS_STATUS eStatus          = MOS_STATUS_SUCCESS;
+        uint64_t   auxTableBaseAddr = 0;
+
+        MHW_CHK_NULL_RETURN(cmdBuffer);
+        MHW_CHK_NULL_RETURN(this->m_osItf);
+
+        auxTableBaseAddr = this->m_osItf->pfnGetAuxTableBaseAddr(this->m_osItf);
+
+        if (auxTableBaseAddr)
+        {
+            auto &par      = MHW_GETPAR_F(MI_LOAD_REGISTER_IMM)();
+            par            = {};
+            par.dwData     = (auxTableBaseAddr & 0xffffffff);
+            par.dwRegister = GetMmioInterfaces(mhw::mi::MHW_MMIO_VE0_AUX_TABLE_BASE_LOW);
+            MHW_ADDCMD_F(MI_LOAD_REGISTER_IMM)(cmdBuffer);
+
+            par.dwData     = ((auxTableBaseAddr >> 32) & 0xffffffff);
+            par.dwRegister = GetMmioInterfaces(mhw::mi::MHW_MMIO_VE0_AUX_TABLE_BASE_HIGH);
+            MHW_ADDCMD_F(MI_LOAD_REGISTER_IMM)(cmdBuffer);
+        }
+
+        return eStatus;
+    }
+
 protected:
     using base_t = Itf;
 
diff --git a/media_softlet/agnostic/common/hw/mhw_mi_itf.h b/media_softlet/agnostic/common/hw/mhw_mi_itf.h
index cdb3721..4a2b2d3 100644
--- a/media_softlet/agnostic/common/hw/mhw_mi_itf.h
+++ b/media_softlet/agnostic/common/hw/mhw_mi_itf.h
@@ -105,6 +105,8 @@
 
     virtual MOS_STATUS AddProtectedProlog(MOS_COMMAND_BUFFER *cmdBuffer) = 0;
 
+    virtual MOS_STATUS SetPrologCmd(PMOS_COMMAND_BUFFER CmdBuffer) = 0;
+
     _MI_CMD_DEF(_MHW_CMD_ALL_DEF_FOR_ITF);
 MEDIA_CLASS_DEFINE_END(mhw__mi__Itf)
 };
diff --git a/media_softlet/agnostic/common/hw/mhw_mmio_common.h b/media_softlet/agnostic/common/hw/mhw_mmio_common.h
index cae5813..5d024d4 100644
--- a/media_softlet/agnostic/common/hw/mhw_mmio_common.h
+++ b/media_softlet/agnostic/common/hw/mhw_mmio_common.h
@@ -64,63 +64,5 @@
 static constexpr uint32_t  WATCHDOG_COUNT_CTRL_OFFSET_VECS                                             = 0x1C8178;
 static constexpr uint32_t  WATCHDOG_COUNT_THRESTHOLD_OFFSET_VECS                                       = 0x1C817C;
 
-// Media Engine 
-static constexpr uint32_t M_MMIO_MAX_RELATIVE_OFFSET                                                  = 0x3FFF; //!< Max reg relative offset in an engine
-static constexpr uint32_t M_MMIO_MEDIA_LOW_OFFSET                                                     = 0x1C0000; //!< Low bound of VDBox and VEBox MMIO offset
-static constexpr uint32_t M_MMIO_MEDIA_HIGH_OFFSET                                                    = 0x2000000;//!< High bound of VDBox and VEBox MMIO offset
-
-//Render 
-static constexpr uint32_t M_MMIO_RCS_AUX_TABLE_BASE_LOW                                               = 0x4200;
-static constexpr uint32_t M_MMIO_RCS_AUX_TABLE_BASE_HIGH                                              = 0x4204;
-static constexpr uint32_t M_MMIO_RCS_AUX_TABLE_INVALIDATE                                             = 0x4208;
-static constexpr uint32_t M_MMIO_RCS_HW_FE_REMAP_RANGE_BEGIN                                          = 0x2000;
-static constexpr uint32_t M_MMIO_RCS_HW_FE_REMAP_RANGE_END                                            = 0x27FF;
-static constexpr uint32_t M_MMIO_RCS_AUX_TBL_REMAP_RANGE_BEGIN                                        = 0x4200;
-static constexpr uint32_t M_MMIO_RCS_AUX_TBL_REMAP_RANGE_END                                          = 0x420F;
-static constexpr uint32_t M_MMIO_RCS_TRTT_REMAP_RANGE_BEGIN                                           = 0x4400;
-static constexpr uint32_t M_MMIO_RCS_TRTT_REMAP_RANGE_END                                             = 0x441F;
-
-static constexpr uint32_t M_MMIO_MEDIA_REG_BASE                                                       = 0X380000; //!<Media Engine Base
-
-//VD
-static constexpr uint32_t M_MMIO_VD0_AUX_TABLE_BASE_LOW                                               = 0x4210;
-static constexpr uint32_t M_MMIO_VD0_AUX_TABLE_BASE_HIGH                                              = 0x4214;
-static constexpr uint32_t M_MMIO_VD0_AUX_TABLE_INVALIDATE                                             = 0x4218;
-static constexpr uint32_t M_MMIO_VD1_AUX_TABLE_BASE_LOW                                               = 0x4220;
-static constexpr uint32_t M_MMIO_VD1_AUX_TABLE_BASE_HIGH                                              = 0x4224;
-static constexpr uint32_t M_MMIO_VD1_AUX_TABLE_INVALIDATE                                             = 0x4228;
-static constexpr uint32_t M_MMIO_VD2_AUX_TABLE_BASE_LOW                                               = 0x4290;
-static constexpr uint32_t M_MMIO_VD2_AUX_TABLE_BASE_HIGH                                              = 0x4294;
-static constexpr uint32_t M_MMIO_VD2_AUX_TABLE_INVALIDATE                                             = 0x4298;
-static constexpr uint32_t M_MMIO_VD3_AUX_TABLE_BASE_LOW                                               = 0x42A0;
-static constexpr uint32_t M_MMIO_VD3_AUX_TABLE_BASE_HIGH                                              = 0x42A4;
-static constexpr uint32_t M_MMIO_VD3_AUX_TABLE_INVALIDATE                                             = 0x42A8;
-
-//VE
-static constexpr uint32_t M_MMIO_VE0_AUX_TABLE_BASE_LOW                                               = 0x4230;
-static constexpr uint32_t M_MMIO_VE0_AUX_TABLE_BASE_HIGH                                              = 0x4234;
-static constexpr uint32_t M_MMIO_VE0_AUX_TABLE_INVALIDATE                                             = 0x4238;
-static constexpr uint32_t M_MMIO_VE1_AUX_TABLE_BASE_LOW                                               = 0x42B0;
-static constexpr uint32_t M_MMIO_VE1_AUX_TABLE_BASE_HIGH                                              = 0x42B4;
-static constexpr uint32_t M_MMIO_VE1_AUX_TABLE_INVALIDATE                                             = 0x42B8;
-
-//Compute
-static constexpr uint32_t M_MMIO_CCS0_AUX_TABLE_BASE_LOW                                              = 0x42C0;
-static constexpr uint32_t M_MMIO_CCS0_AUX_TABLE_BASE_HIGH                                             = 0x42C4;
-static constexpr uint32_t M_MMIO_CCS0_AUX_TABLE_INVALIDATE                                            = 0x42C8;
-static constexpr uint32_t M_MMIO_CCS0_HW_FRONT_END_BASE_BEGIN                                         = 0x1A000;
-static constexpr uint32_t M_MMIO_CCS0_HW_FRONT_END_BASE_END                                           = 0x1A7FF;
-static constexpr uint32_t M_MMIO_CCS1_HW_FRONT_END_BASE_BEGIN                                         = 0x1C000;
-static constexpr uint32_t M_MMIO_CCS1_HW_FRONT_END_BASE_END                                           = 0x1C7FF;
-static constexpr uint32_t M_MMIO_CCS2_HW_FRONT_END_BASE_BEGIN                                         = 0x1E000;
-static constexpr uint32_t M_MMIO_CCS2_HW_FRONT_END_BASE_END                                           = 0x1E7FF;
-static constexpr uint32_t M_MMIO_CCS3_HW_FRONT_END_BASE_BEGIN                                         = 0x26000;
-static constexpr uint32_t M_MMIO_CCS3_HW_FRONT_END_BASE_END                                           = 0x267FF;
-
-//L3 cache configure
-static constexpr uint32_t M_MMIO_RCS_L3ALLOCREG                                                       = 0xB134;
-static constexpr uint32_t M_MMIO_CCS0_L3ALLOCREG                                                      = 0xB234;
-static constexpr uint32_t M_MMIO_RCS_TCCNTLREG                                                        = 0xB138;
-static constexpr uint32_t M_MMIO_CCS0_TCCNTLREG                                                       = 0xB238;
 
 #endif   //__MHW_MMIO_COMMON_H__
diff --git a/media_softlet/agnostic/common/hw/mhw_render_itf.h b/media_softlet/agnostic/common/hw/mhw_render_itf.h
index 462b226..003ef28 100644
--- a/media_softlet/agnostic/common/hw/mhw_render_itf.h
+++ b/media_softlet/agnostic/common/hw/mhw_render_itf.h
@@ -30,6 +30,7 @@
 
 #include "mhw_itf.h"
 #include "mhw_render_cmdpar.h"
+#include "mhw_mi_itf.h"
 
 #define _RENDER_CMD_DEF(DEF)                \
     DEF(PIPELINE_SELECT);                   \
diff --git a/media_softlet/agnostic/common/hw/mhw_sfc_cmdpar.h b/media_softlet/agnostic/common/hw/mhw_sfc_cmdpar.h
index 955df46..3027424 100644
--- a/media_softlet/agnostic/common/hw/mhw_sfc_cmdpar.h
+++ b/media_softlet/agnostic/common/hw/mhw_sfc_cmdpar.h
@@ -29,6 +29,7 @@
 #define __MHW_SFC_CMDPAR_H__
 
 #include "mhw_sfc.h"
+#include "mhw_cmdpar.h"
 
 #ifdef IGFX_SFC_INTERFACE_EXT_SUPPORT
 #include "mhw_sfc_cmdpar_ext.h"
diff --git a/media_softlet/agnostic/common/hw/mhw_utilities_next.cpp b/media_softlet/agnostic/common/hw/mhw_utilities_next.cpp
index 60d840c..f86e968 100644
--- a/media_softlet/agnostic/common/hw/mhw_utilities_next.cpp
+++ b/media_softlet/agnostic/common/hw/mhw_utilities_next.cpp
@@ -24,11 +24,17 @@
 //! \brief         This modules implements utilities which are shared by both the HW interface     and the state heap interface.
 //!
 
+#include <math.h>
 #include "mhw_utilities_next.h"
-#include "mhw_render.h"
 #include "mhw_state_heap.h"
 #include "hal_oca_interface.h"
 #include "mos_interface.h"
+#include "hal_oca_interface_next.h"
+#include "media_skuwa_specific.h"
+#include "mhw_itf.h"
+#include "mhw_mi.h"
+#include "mhw_mi_cmdpar.h"
+#include "mhw_mi_itf.h"
 
 #define MHW_NS_PER_TICK_RENDER_ENGINE 80  // 80 nano seconds per tick in render engine
 
diff --git a/media_softlet/agnostic/common/hw/mhw_utilities_next.h b/media_softlet/agnostic/common/hw/mhw_utilities_next.h
index 374d9db..4c78e4b 100644
--- a/media_softlet/agnostic/common/hw/mhw_utilities_next.h
+++ b/media_softlet/agnostic/common/hw/mhw_utilities_next.h
@@ -26,10 +26,16 @@
 #ifndef __MHW_UTILITIES_NEXT_H__
 #define __MHW_UTILITIES_NEXT_H__
 
+#include <memory>
+#include "mos_defs.h"
 #include "mos_os.h"
-#include <math.h>
 #include "mos_util_debug.h"
 #include "mhw_mmio.h"
+#include "mos_os_hw.h"
+#include "mos_os_specific.h"
+#include "mos_resource_defs.h"
+#include "mos_utilities.h"
+struct _MHW_BATCH_BUFFER;
 
 typedef struct _MHW_RCS_SURFACE_PARAMS MHW_RCS_SURFACE_PARAMS, * PMHW_RCS_SURFACE_PARAMS;
 typedef struct _MHW_BATCH_BUFFER MHW_BATCH_BUFFER, * PMHW_BATCH_BUFFER;
diff --git a/media_softlet/agnostic/common/hw/mhw_vebox_impl.h b/media_softlet/agnostic/common/hw/mhw_vebox_impl.h
index 237bd85..f3c6d7e 100644
--- a/media_softlet/agnostic/common/hw/mhw_vebox_impl.h
+++ b/media_softlet/agnostic/common/hw/mhw_vebox_impl.h
@@ -530,35 +530,6 @@
         return eStatus;
     }
 
-    MOS_STATUS setVeboxPrologCmd(
-        std::shared_ptr<mhw::mi::Itf> miItf,
-        PMOS_COMMAND_BUFFER CmdBuffer)
-    {
-        MOS_STATUS                            eStatus = MOS_STATUS_SUCCESS;
-        uint64_t                              auxTableBaseAddr = 0;
-
-        MHW_CHK_NULL_RETURN(miItf);
-        MHW_CHK_NULL_RETURN(CmdBuffer);
-        MHW_CHK_NULL_RETURN(this->m_osItf);
-
-        auxTableBaseAddr = this->m_osItf->pfnGetAuxTableBaseAddr(this->m_osItf);
-
-        if (auxTableBaseAddr)
-        {
-            auto& par = miItf->MHW_GETPAR_F(MI_LOAD_REGISTER_IMM)();
-            par = {};
-            par.dwData     = (auxTableBaseAddr & 0xffffffff);
-            par.dwRegister        = miItf->GetMmioInterfaces(mhw::mi::MHW_MMIO_VE0_AUX_TABLE_BASE_LOW);
-            miItf->MHW_ADDCMD_F(MI_LOAD_REGISTER_IMM)(CmdBuffer);
-
-            par.dwData     = ((auxTableBaseAddr >> 32) & 0xffffffff);
-            par.dwRegister = miItf->GetMmioInterfaces(mhw::mi::MHW_MMIO_VE0_AUX_TABLE_BASE_HIGH);
-            miItf->MHW_ADDCMD_F(MI_LOAD_REGISTER_IMM)(CmdBuffer);
-        }
-
-        return eStatus;
-    }
-
   MOS_STATUS AdjustBoundary(
         PMHW_VEBOX_SURFACE_PARAMS pCurrSurf,
         uint32_t *pdwSurfaceWidth,
diff --git a/media_softlet/agnostic/common/hw/mhw_vebox_itf.h b/media_softlet/agnostic/common/hw/mhw_vebox_itf.h
index 469140d..ca7eb01 100644
--- a/media_softlet/agnostic/common/hw/mhw_vebox_itf.h
+++ b/media_softlet/agnostic/common/hw/mhw_vebox_itf.h
@@ -72,8 +72,6 @@
 
     virtual MOS_STATUS AddVeboxSurfaces(PMOS_COMMAND_BUFFER pCmdBufferInUse, PMHW_VEBOX_SURFACE_STATE_CMD_PARAMS pVeboxSurfaceStateCmdParams) = 0;
 
-    virtual MOS_STATUS setVeboxPrologCmd(std::shared_ptr<mhw::mi::Itf> miItf, PMOS_COMMAND_BUFFER CmdBuffer) = 0;
-
     virtual MOS_STATUS SetVeboxDndiState(PMHW_VEBOX_DNDI_PARAMS pVeboxDndiParams) = 0;
 
     virtual MOS_STATUS SetVeboxIecpState(PMHW_VEBOX_IECP_PARAMS pVeboxIecpParams) = 0;
diff --git a/media_softlet/agnostic/common/shared/packet/media_packet.h b/media_softlet/agnostic/common/shared/packet/media_packet.h
index 0a73d13..3113667 100644
--- a/media_softlet/agnostic/common/shared/packet/media_packet.h
+++ b/media_softlet/agnostic/common/shared/packet/media_packet.h
@@ -33,6 +33,7 @@
 #include "mhw_mi.h"
 #include "media_status_report.h"
 #include "mhw_cmdpar.h"
+#include "mhw_mi_itf.h"
 
 #define __SETPAR(CMD, itf)                                                              \
                                                                                         \
diff --git a/media_softlet/agnostic/common/shared/profiler/media_perf_profiler_next.h b/media_softlet/agnostic/common/shared/profiler/media_perf_profiler_next.h
index 292fb3a..b3c6fea 100644
--- a/media_softlet/agnostic/common/shared/profiler/media_perf_profiler_next.h
+++ b/media_softlet/agnostic/common/shared/profiler/media_perf_profiler_next.h
@@ -27,9 +27,22 @@
 #define __MEDIA_PERF_PROFILER_NEXT_H__
 
 #include <map>
+#include <stdint.h>
+#include <memory>
+#include "mos_defs.h"
 #include "mos_os.h"
-#include "mhw_mi.h"
 #include "media_class_trace.h"
+#include "mhw_mi_itf.h"
+#include "igfxfmid.h"
+#include "mos_defs_specific.h"
+#include "mos_os_specific.h"
+namespace mhw
+{
+    namespace mi
+    {
+        class Itf;
+    }
+}  // namespace mhw
 
 using Map = std::map<void*, uint32_t>;
 
diff --git a/media_softlet/agnostic/common/vp/hal/packet/vp_vebox_cmd_packet.cpp b/media_softlet/agnostic/common/vp/hal/packet/vp_vebox_cmd_packet.cpp
index 8e69a45..38ea991 100644
--- a/media_softlet/agnostic/common/vp/hal/packet/vp_vebox_cmd_packet.cpp
+++ b/media_softlet/agnostic/common/vp/hal/packet/vp_vebox_cmd_packet.cpp
@@ -1407,9 +1407,9 @@
 MOS_STATUS VpVeboxCmdPacket::SetVeboxProCmd(
     MOS_COMMAND_BUFFER*   CmdBuffer)
 {
-    VP_RENDER_CHK_NULL_RETURN(m_veboxItf);
+    VP_RENDER_CHK_NULL_RETURN(m_miItf);
 
-    VP_RENDER_CHK_STATUS_RETURN(m_veboxItf->setVeboxPrologCmd(m_miItf, CmdBuffer));
+    VP_RENDER_CHK_STATUS_RETURN(m_miItf->SetPrologCmd(CmdBuffer));
 
     return MOS_STATUS_SUCCESS;
 }