/* IBM_PROLOG_BEGIN_TAG */ /* This is an automatically generated prolog. */ /* */ /* $Source: chips/p9/procedures/hwp/initfiles/p9_mmu_scom.C $ */ /* */ /* IBM CONFIDENTIAL */ /* */ /* EKB Project */ /* */ /* COPYRIGHT 2016 */ /* [+] International Business Machines Corp. */ /* */ /* */ /* The source code for this program is not published or otherwise */ /* divested of its trade secrets, irrespective of what has been */ /* deposited with the U.S. Copyright Office. */ /* */ /* IBM_PROLOG_END_TAG */ #include "p9_mmu_scom.H" #include #include #include using namespace fapi2; constexpr auto literal_0x0000000000000000 = 0x0000000000000000; constexpr auto literal_0x049F700000000000 = 0x049F700000000000; constexpr auto literal_0x00000000000C = 0x00000000000C; constexpr auto literal_0x000000000000 = 0x000000000000; constexpr auto literal_0x9000FAFC00FC = 0x9000FAFC00FC; constexpr auto literal_0xF8 = 0xF8; constexpr auto literal_0x0258 = 0x0258; fapi2::ReturnCode p9_mmu_scom(const fapi2::Target& TGT0, const fapi2::Target& TGT1) { fapi2::ReturnCode l_rc = 0; do { fapi2::buffer l_scom_buffer; { l_rc = fapi2::getScom( TGT0, 0x5012c03ull, l_scom_buffer ); if (l_rc) { FAPI_ERR("ERROR executing: getScom (0x5012c03ull)"); break; } { l_scom_buffer.insert (literal_0x0000000000000000, 0, 22, 0 ); } l_rc = fapi2::putScom(TGT0, 0x5012c03ull, l_scom_buffer); if (l_rc) { FAPI_ERR("ERROR executing: putScom (0x5012c03ull)"); break; } } { l_rc = fapi2::getScom( TGT0, 0x5012c06ull, l_scom_buffer ); if (l_rc) { FAPI_ERR("ERROR executing: getScom (0x5012c06ull)"); break; } { l_scom_buffer.insert (literal_0x0000000000000000, 0, 22, 0 ); } l_rc = fapi2::putScom(TGT0, 0x5012c06ull, l_scom_buffer); if (l_rc) { FAPI_ERR("ERROR executing: putScom (0x5012c06ull)"); break; } } { l_rc = fapi2::getScom( TGT0, 0x5012c07ull, l_scom_buffer ); if (l_rc) { FAPI_ERR("ERROR executing: getScom (0x5012c07ull)"); break; } { l_scom_buffer.insert (literal_0x049F700000000000, 0, 22, 0 ); } l_rc = fapi2::putScom(TGT0, 0x5012c07ull, l_scom_buffer); if (l_rc) { FAPI_ERR("ERROR executing: putScom (0x5012c07ull)"); break; } } fapi2::ATTR_PROC_FABRIC_ADDR_BAR_MODE_Type l_TGT1_ATTR_PROC_FABRIC_ADDR_BAR_MODE; l_rc = FAPI_ATTR_GET(fapi2::ATTR_PROC_FABRIC_ADDR_BAR_MODE, TGT1, l_TGT1_ATTR_PROC_FABRIC_ADDR_BAR_MODE); if (l_rc) { FAPI_ERR("ERROR executing: FAPI_ATTR_GET (ATTR_PROC_FABRIC_ADDR_BAR_MODE)"); break; } fapi2::ATTR_PROC_FABRIC_PUMP_MODE_Type l_TGT1_ATTR_PROC_FABRIC_PUMP_MODE; l_rc = FAPI_ATTR_GET(fapi2::ATTR_PROC_FABRIC_PUMP_MODE, TGT1, l_TGT1_ATTR_PROC_FABRIC_PUMP_MODE); if (l_rc) { FAPI_ERR("ERROR executing: FAPI_ATTR_GET (ATTR_PROC_FABRIC_PUMP_MODE)"); break; } { l_rc = fapi2::getScom( TGT0, 0x5012c15ull, l_scom_buffer ); if (l_rc) { FAPI_ERR("ERROR executing: getScom (0x5012c15ull)"); break; } { if ((l_TGT1_ATTR_PROC_FABRIC_ADDR_BAR_MODE == fapi2::ENUM_ATTR_PROC_FABRIC_ADDR_BAR_MODE_SMALL_SYSTEM)) { constexpr auto l_NMMU_MM_FBC_CQ_WRAP_NXCQ_SCOM_ADDR_BAR_MODE_ON = 0x1; l_scom_buffer.insert (l_NMMU_MM_FBC_CQ_WRAP_NXCQ_SCOM_ADDR_BAR_MODE_ON, 33, 1, 63 ); } else if ((l_TGT1_ATTR_PROC_FABRIC_ADDR_BAR_MODE == fapi2::ENUM_ATTR_PROC_FABRIC_ADDR_BAR_MODE_LARGE_SYSTEM)) { constexpr auto l_NMMU_MM_FBC_CQ_WRAP_NXCQ_SCOM_ADDR_BAR_MODE_OFF = 0x0; l_scom_buffer.insert (l_NMMU_MM_FBC_CQ_WRAP_NXCQ_SCOM_ADDR_BAR_MODE_OFF, 33, 1, 63 ); } } { if ((l_TGT1_ATTR_PROC_FABRIC_PUMP_MODE == fapi2::ENUM_ATTR_PROC_FABRIC_PUMP_MODE_CHIP_IS_NODE)) { constexpr auto l_NMMU_MM_FBC_CQ_WRAP_NXCQ_SCOM_CFG_PUMP_MODE_ON = 0x1; l_scom_buffer.insert (l_NMMU_MM_FBC_CQ_WRAP_NXCQ_SCOM_CFG_PUMP_MODE_ON, 39, 1, 63 ); } else if ((l_TGT1_ATTR_PROC_FABRIC_PUMP_MODE == fapi2::ENUM_ATTR_PROC_FABRIC_PUMP_MODE_CHIP_IS_GROUP)) { constexpr auto l_NMMU_MM_FBC_CQ_WRAP_NXCQ_SCOM_CFG_PUMP_MODE_OFF = 0x0; l_scom_buffer.insert (l_NMMU_MM_FBC_CQ_WRAP_NXCQ_SCOM_CFG_PUMP_MODE_OFF, 39, 1, 63 ); } } l_rc = fapi2::putScom(TGT0, 0x5012c15ull, l_scom_buffer); if (l_rc) { FAPI_ERR("ERROR executing: putScom (0x5012c15ull)"); break; } } { l_rc = fapi2::getScom( TGT0, 0x5012c43ull, l_scom_buffer ); if (l_rc) { FAPI_ERR("ERROR executing: getScom (0x5012c43ull)"); break; } { l_scom_buffer.insert (literal_0x00000000000C, 0, 48, 16 ); } l_rc = fapi2::putScom(TGT0, 0x5012c43ull, l_scom_buffer); if (l_rc) { FAPI_ERR("ERROR executing: putScom (0x5012c43ull)"); break; } } { l_rc = fapi2::getScom( TGT0, 0x5012c46ull, l_scom_buffer ); if (l_rc) { FAPI_ERR("ERROR executing: getScom (0x5012c46ull)"); break; } { l_scom_buffer.insert (literal_0x000000000000, 0, 48, 16 ); } l_rc = fapi2::putScom(TGT0, 0x5012c46ull, l_scom_buffer); if (l_rc) { FAPI_ERR("ERROR executing: putScom (0x5012c46ull)"); break; } } { l_rc = fapi2::getScom( TGT0, 0x5012c47ull, l_scom_buffer ); if (l_rc) { FAPI_ERR("ERROR executing: getScom (0x5012c47ull)"); break; } { l_scom_buffer.insert (literal_0x9000FAFC00FC, 0, 48, 16 ); } l_rc = fapi2::putScom(TGT0, 0x5012c47ull, l_scom_buffer); if (l_rc) { FAPI_ERR("ERROR executing: putScom (0x5012c47ull)"); break; } } { l_rc = fapi2::getScom( TGT0, 0x5012c52ull, l_scom_buffer ); if (l_rc) { FAPI_ERR("ERROR executing: getScom (0x5012c52ull)"); break; } { constexpr auto l_NMMU_MM_PIPE_THREAD_MODE_SINGLE_THREAD_MODE_ST_INV = 0x70; l_scom_buffer.insert (l_NMMU_MM_PIPE_THREAD_MODE_SINGLE_THREAD_MODE_ST_INV, 20, 1, 57 ); l_scom_buffer.insert (l_NMMU_MM_PIPE_THREAD_MODE_SINGLE_THREAD_MODE_ST_INV, 24, 1, 62 ); l_scom_buffer.insert (l_NMMU_MM_PIPE_THREAD_MODE_SINGLE_THREAD_MODE_ST_INV, 26, 1, 63 ); } { l_scom_buffer.insert (literal_0xF8, 30, 1, 59 ); l_scom_buffer.insert (literal_0xF8, 60, 4, 60 ); } l_rc = fapi2::putScom(TGT0, 0x5012c52ull, l_scom_buffer); if (l_rc) { FAPI_ERR("ERROR executing: putScom (0x5012c52ull)"); break; } } { l_rc = fapi2::getScom( TGT0, 0x5012c53ull, l_scom_buffer ); if (l_rc) { FAPI_ERR("ERROR executing: getScom (0x5012c53ull)"); break; } { constexpr auto l_NMMU_MM_PIPE_THREAD_MODE_SINGLE_THREAD_MODE_ST_INV = 0x70; l_scom_buffer.insert (l_NMMU_MM_PIPE_THREAD_MODE_SINGLE_THREAD_MODE_ST_INV, 2, 2, 60 ); } { l_scom_buffer.insert (literal_0x0258, 32, 16, 48 ); } l_rc = fapi2::putScom(TGT0, 0x5012c53ull, l_scom_buffer); if (l_rc) { FAPI_ERR("ERROR executing: putScom (0x5012c53ull)"); break; } } { l_rc = fapi2::getScom( TGT0, 0x5012c54ull, l_scom_buffer ); if (l_rc) { FAPI_ERR("ERROR executing: getScom (0x5012c54ull)"); break; } { constexpr auto l_NMMU_MM_PIPE_THREAD_MODE_SINGLE_THREAD_MODE_ST_INV = 0x70; l_scom_buffer.insert (l_NMMU_MM_PIPE_THREAD_MODE_SINGLE_THREAD_MODE_ST_INV, 16, 1, 58 ); } l_rc = fapi2::putScom(TGT0, 0x5012c54ull, l_scom_buffer); if (l_rc) { FAPI_ERR("ERROR executing: putScom (0x5012c54ull)"); break; } } { l_rc = fapi2::getScom( TGT0, 0x5012c55ull, l_scom_buffer ); if (l_rc) { FAPI_ERR("ERROR executing: getScom (0x5012c55ull)"); break; } { constexpr auto l_NMMU_MM_PIPE_THREAD_MODE_SINGLE_THREAD_MODE_ST_INV = 0x70; l_scom_buffer.insert (l_NMMU_MM_PIPE_THREAD_MODE_SINGLE_THREAD_MODE_ST_INV, 16, 1, 59 ); } { constexpr auto l_NMMU_MM_CFG_NMMU_CTL_TLB_HASH_PID_DIS_ON = 0x1; l_scom_buffer.insert (l_NMMU_MM_CFG_NMMU_CTL_TLB_HASH_PID_DIS_ON, 21, 1, 63 ); } l_rc = fapi2::putScom(TGT0, 0x5012c55ull, l_scom_buffer); if (l_rc) { FAPI_ERR("ERROR executing: putScom (0x5012c55ull)"); break; } } } while (0); return l_rc; }