#define NVOC_KERNEL_BIF_H_PRIVATE_ACCESS_ALLOWED #include "nvoc/runtime.h" #include "nvoc/rtti.h" #include "nvtypes.h" #include "nvport/nvport.h" #include "nvport/inline/util_valist.h" #include "utils/nvassert.h" #include "g_kernel_bif_nvoc.h" #ifdef DEBUG char __nvoc_class_id_uniqueness_check_0xdbe523 = 1; #endif extern const struct NVOC_CLASS_DEF __nvoc_class_def_KernelBif; extern const struct NVOC_CLASS_DEF __nvoc_class_def_Object; extern const struct NVOC_CLASS_DEF __nvoc_class_def_OBJENGSTATE; void __nvoc_init_KernelBif(KernelBif*, RmHalspecOwner* ); void __nvoc_init_funcTable_KernelBif(KernelBif*, RmHalspecOwner* ); NV_STATUS __nvoc_ctor_KernelBif(KernelBif*, RmHalspecOwner* ); void __nvoc_init_dataField_KernelBif(KernelBif*, RmHalspecOwner* ); void __nvoc_dtor_KernelBif(KernelBif*); extern const struct NVOC_EXPORT_INFO __nvoc_export_info_KernelBif; static const struct NVOC_RTTI __nvoc_rtti_KernelBif_KernelBif = { /*pClassDef=*/ &__nvoc_class_def_KernelBif, /*dtor=*/ (NVOC_DYNAMIC_DTOR) &__nvoc_dtor_KernelBif, /*offset=*/ 0, }; static const struct NVOC_RTTI __nvoc_rtti_KernelBif_Object = { /*pClassDef=*/ &__nvoc_class_def_Object, /*dtor=*/ &__nvoc_destructFromBase, /*offset=*/ NV_OFFSETOF(KernelBif, __nvoc_base_OBJENGSTATE.__nvoc_base_Object), }; static const struct NVOC_RTTI __nvoc_rtti_KernelBif_OBJENGSTATE = { /*pClassDef=*/ &__nvoc_class_def_OBJENGSTATE, /*dtor=*/ &__nvoc_destructFromBase, /*offset=*/ NV_OFFSETOF(KernelBif, __nvoc_base_OBJENGSTATE), }; static const struct NVOC_CASTINFO __nvoc_castinfo_KernelBif = { /*numRelatives=*/ 3, /*relatives=*/ { &__nvoc_rtti_KernelBif_KernelBif, &__nvoc_rtti_KernelBif_OBJENGSTATE, &__nvoc_rtti_KernelBif_Object, }, }; const struct NVOC_CLASS_DEF __nvoc_class_def_KernelBif = { /*classInfo=*/ { /*size=*/ sizeof(KernelBif), /*classId=*/ classId(KernelBif), /*providerId=*/ &__nvoc_rtti_provider, #if NV_PRINTF_STRINGS_ALLOWED /*name=*/ "KernelBif", #endif }, /*objCreatefn=*/ (NVOC_DYNAMIC_OBJ_CREATE) &__nvoc_objCreateDynamic_KernelBif, /*pCastInfo=*/ &__nvoc_castinfo_KernelBif, /*pExportInfo=*/ &__nvoc_export_info_KernelBif }; static NV_STATUS __nvoc_thunk_KernelBif_engstateConstructEngine(struct OBJGPU *pGpu, struct OBJENGSTATE *pKernelBif, ENGDESCRIPTOR arg0) { return kbifConstructEngine(pGpu, (struct KernelBif *)(((unsigned char *)pKernelBif) - __nvoc_rtti_KernelBif_OBJENGSTATE.offset), arg0); } static NV_STATUS __nvoc_thunk_KernelBif_engstateStateInitLocked(struct OBJGPU *pGpu, struct OBJENGSTATE *pKernelBif) { return kbifStateInitLocked(pGpu, (struct KernelBif *)(((unsigned char *)pKernelBif) - __nvoc_rtti_KernelBif_OBJENGSTATE.offset)); } static NV_STATUS __nvoc_thunk_KernelBif_engstateStateLoad(struct OBJGPU *pGpu, struct OBJENGSTATE *pKernelBif, NvU32 arg0) { return kbifStateLoad(pGpu, (struct KernelBif *)(((unsigned char *)pKernelBif) - __nvoc_rtti_KernelBif_OBJENGSTATE.offset), arg0); } static NV_STATUS __nvoc_thunk_KernelBif_engstateStatePostLoad(struct OBJGPU *pGpu, struct OBJENGSTATE *pKernelBif, NvU32 arg0) { return kbifStatePostLoad(pGpu, (struct KernelBif *)(((unsigned char *)pKernelBif) - __nvoc_rtti_KernelBif_OBJENGSTATE.offset), arg0); } static NV_STATUS __nvoc_thunk_KernelBif_engstateStateUnload(struct OBJGPU *pGpu, struct OBJENGSTATE *pKernelBif, NvU32 arg0) { return kbifStateUnload(pGpu, (struct KernelBif *)(((unsigned char *)pKernelBif) - __nvoc_rtti_KernelBif_OBJENGSTATE.offset), arg0); } static NV_STATUS __nvoc_thunk_OBJENGSTATE_kbifStatePreLoad(POBJGPU pGpu, struct KernelBif *pEngstate, NvU32 arg0) { return engstateStatePreLoad(pGpu, (struct OBJENGSTATE *)(((unsigned char *)pEngstate) + __nvoc_rtti_KernelBif_OBJENGSTATE.offset), arg0); } static NV_STATUS __nvoc_thunk_OBJENGSTATE_kbifStatePostUnload(POBJGPU pGpu, struct KernelBif *pEngstate, NvU32 arg0) { return engstateStatePostUnload(pGpu, (struct OBJENGSTATE *)(((unsigned char *)pEngstate) + __nvoc_rtti_KernelBif_OBJENGSTATE.offset), arg0); } static void __nvoc_thunk_OBJENGSTATE_kbifStateDestroy(POBJGPU pGpu, struct KernelBif *pEngstate) { engstateStateDestroy(pGpu, (struct OBJENGSTATE *)(((unsigned char *)pEngstate) + __nvoc_rtti_KernelBif_OBJENGSTATE.offset)); } static NV_STATUS __nvoc_thunk_OBJENGSTATE_kbifStatePreUnload(POBJGPU pGpu, struct KernelBif *pEngstate, NvU32 arg0) { return engstateStatePreUnload(pGpu, (struct OBJENGSTATE *)(((unsigned char *)pEngstate) + __nvoc_rtti_KernelBif_OBJENGSTATE.offset), arg0); } static NV_STATUS __nvoc_thunk_OBJENGSTATE_kbifStateInitUnlocked(POBJGPU pGpu, struct KernelBif *pEngstate) { return engstateStateInitUnlocked(pGpu, (struct OBJENGSTATE *)(((unsigned char *)pEngstate) + __nvoc_rtti_KernelBif_OBJENGSTATE.offset)); } static void __nvoc_thunk_OBJENGSTATE_kbifInitMissing(POBJGPU pGpu, struct KernelBif *pEngstate) { engstateInitMissing(pGpu, (struct OBJENGSTATE *)(((unsigned char *)pEngstate) + __nvoc_rtti_KernelBif_OBJENGSTATE.offset)); } static NV_STATUS __nvoc_thunk_OBJENGSTATE_kbifStatePreInitLocked(POBJGPU pGpu, struct KernelBif *pEngstate) { return engstateStatePreInitLocked(pGpu, (struct OBJENGSTATE *)(((unsigned char *)pEngstate) + __nvoc_rtti_KernelBif_OBJENGSTATE.offset)); } static NV_STATUS __nvoc_thunk_OBJENGSTATE_kbifStatePreInitUnlocked(POBJGPU pGpu, struct KernelBif *pEngstate) { return engstateStatePreInitUnlocked(pGpu, (struct OBJENGSTATE *)(((unsigned char *)pEngstate) + __nvoc_rtti_KernelBif_OBJENGSTATE.offset)); } static NvBool __nvoc_thunk_OBJENGSTATE_kbifIsPresent(POBJGPU pGpu, struct KernelBif *pEngstate) { return engstateIsPresent(pGpu, (struct OBJENGSTATE *)(((unsigned char *)pEngstate) + __nvoc_rtti_KernelBif_OBJENGSTATE.offset)); } const struct NVOC_EXPORT_INFO __nvoc_export_info_KernelBif = { /*numEntries=*/ 0, /*pExportEntries=*/ 0 }; void __nvoc_dtor_OBJENGSTATE(OBJENGSTATE*); void __nvoc_dtor_KernelBif(KernelBif *pThis) { __nvoc_kbifDestruct(pThis); __nvoc_dtor_OBJENGSTATE(&pThis->__nvoc_base_OBJENGSTATE); PORT_UNREFERENCED_VARIABLE(pThis); } void __nvoc_init_dataField_KernelBif(KernelBif *pThis, RmHalspecOwner *pRmhalspecowner) { ChipHal *chipHal = &pRmhalspecowner->chipHal; const unsigned long chipHal_HalVarIdx = (unsigned long)chipHal->__nvoc_HalVarIdx; RmVariantHal *rmVariantHal = &pRmhalspecowner->rmVariantHal; const unsigned long rmVariantHal_HalVarIdx = (unsigned long)rmVariantHal->__nvoc_HalVarIdx; PORT_UNREFERENCED_VARIABLE(pThis); PORT_UNREFERENCED_VARIABLE(pRmhalspecowner); PORT_UNREFERENCED_VARIABLE(chipHal); PORT_UNREFERENCED_VARIABLE(chipHal_HalVarIdx); PORT_UNREFERENCED_VARIABLE(rmVariantHal); PORT_UNREFERENCED_VARIABLE(rmVariantHal_HalVarIdx); // NVOC Property Hal field -- PDB_PROP_KBIF_CHECK_IF_GPU_EXISTS_DEF if (( ((chipHal_HalVarIdx >> 5) == 1UL) && ((1UL << (chipHal_HalVarIdx & 0x1f)) & 0x11f0ffe0UL) )) /* ChipHal: TU102 | TU104 | TU106 | TU116 | TU117 | GA100 | GA102 | GA103 | GA104 | GA106 | GA107 | AD102 | AD103 | AD104 | AD106 | AD107 | GH100 */ { pThis->setProperty(pThis, PDB_PROP_KBIF_CHECK_IF_GPU_EXISTS_DEF, ((NvBool)(0 == 0))); } // NVOC Property Hal field -- PDB_PROP_KBIF_IS_FMODEL_MSI_BROKEN if (( ((chipHal_HalVarIdx >> 5) == 1UL) && ((1UL << (chipHal_HalVarIdx & 0x1f)) & 0x01f0ffe0UL) )) /* ChipHal: TU102 | TU104 | TU106 | TU116 | TU117 | GA100 | GA102 | GA103 | GA104 | GA106 | GA107 | AD102 | AD103 | AD104 | AD106 | AD107 */ { pThis->setProperty(pThis, PDB_PROP_KBIF_IS_FMODEL_MSI_BROKEN, ((NvBool)(0 == 0))); } // default else { pThis->setProperty(pThis, PDB_PROP_KBIF_IS_FMODEL_MSI_BROKEN, ((NvBool)(0 != 0))); } // NVOC Property Hal field -- PDB_PROP_KBIF_USE_CONFIG_SPACE_TO_REARM_MSI if (( ((chipHal_HalVarIdx >> 5) == 1UL) && ((1UL << (chipHal_HalVarIdx & 0x1f)) & 0x10000000UL) )) /* ChipHal: GH100 */ { pThis->setProperty(pThis, PDB_PROP_KBIF_USE_CONFIG_SPACE_TO_REARM_MSI, ((NvBool)(0 != 0))); } // default else { pThis->setProperty(pThis, PDB_PROP_KBIF_USE_CONFIG_SPACE_TO_REARM_MSI, ((NvBool)(0 == 0))); } // NVOC Property Hal field -- PDB_PROP_KBIF_ALLOW_REARM_MSI_FOR_VF // default { pThis->setProperty(pThis, PDB_PROP_KBIF_ALLOW_REARM_MSI_FOR_VF, ((NvBool)(0 != 0))); } // NVOC Property Hal field -- PDB_PROP_KBIF_P2P_READS_DISABLED // default { pThis->setProperty(pThis, PDB_PROP_KBIF_P2P_READS_DISABLED, ((NvBool)(0 != 0))); } // NVOC Property Hal field -- PDB_PROP_KBIF_P2P_WRITES_DISABLED // default { pThis->setProperty(pThis, PDB_PROP_KBIF_P2P_WRITES_DISABLED, ((NvBool)(0 != 0))); } // NVOC Property Hal field -- PDB_PROP_KBIF_UPSTREAM_LTR_SUPPORT_WAR_BUG_200634944 if (( ((chipHal_HalVarIdx >> 5) == 1UL) && ((1UL << (chipHal_HalVarIdx & 0x1f)) & 0x11f0fbe0UL) )) /* ChipHal: TU102 | TU104 | TU106 | TU116 | TU117 | GA102 | GA103 | GA104 | GA106 | GA107 | AD102 | AD103 | AD104 | AD106 | AD107 | GH100 */ { pThis->setProperty(pThis, PDB_PROP_KBIF_UPSTREAM_LTR_SUPPORT_WAR_BUG_200634944, ((NvBool)(0 == 0))); } // default else { pThis->setProperty(pThis, PDB_PROP_KBIF_UPSTREAM_LTR_SUPPORT_WAR_BUG_200634944, ((NvBool)(0 != 0))); } pThis->setProperty(pThis, PDB_PROP_KBIF_SUPPORT_NONCOHERENT, ((NvBool)(0 == 0))); // NVOC Property Hal field -- PDB_PROP_KBIF_SECONDARY_BUS_RESET_ENABLED if (( ((chipHal_HalVarIdx >> 5) == 1UL) && ((1UL << (chipHal_HalVarIdx & 0x1f)) & 0x11f0ffe0UL) )) /* ChipHal: TU102 | TU104 | TU106 | TU116 | TU117 | GA100 | GA102 | GA103 | GA104 | GA106 | GA107 | AD102 | AD103 | AD104 | AD106 | AD107 | GH100 */ { pThis->setProperty(pThis, PDB_PROP_KBIF_SECONDARY_BUS_RESET_ENABLED, ((NvBool)(0 == 0))); } // NVOC Property Hal field -- PDB_PROP_KBIF_FLR_PRE_CONDITIONING_REQUIRED if (( ((chipHal_HalVarIdx >> 5) == 1UL) && ((1UL << (chipHal_HalVarIdx & 0x1f)) & 0x000003e0UL) )) /* ChipHal: TU102 | TU104 | TU106 | TU116 | TU117 */ { pThis->setProperty(pThis, PDB_PROP_KBIF_FLR_PRE_CONDITIONING_REQUIRED, ((NvBool)(0 == 0))); } // default else { pThis->setProperty(pThis, PDB_PROP_KBIF_FLR_PRE_CONDITIONING_REQUIRED, ((NvBool)(0 != 0))); } } NV_STATUS __nvoc_ctor_OBJENGSTATE(OBJENGSTATE* ); NV_STATUS __nvoc_ctor_KernelBif(KernelBif *pThis, RmHalspecOwner *pRmhalspecowner) { NV_STATUS status = NV_OK; status = __nvoc_ctor_OBJENGSTATE(&pThis->__nvoc_base_OBJENGSTATE); if (status != NV_OK) goto __nvoc_ctor_KernelBif_fail_OBJENGSTATE; __nvoc_init_dataField_KernelBif(pThis, pRmhalspecowner); goto __nvoc_ctor_KernelBif_exit; // Success __nvoc_ctor_KernelBif_fail_OBJENGSTATE: __nvoc_ctor_KernelBif_exit: return status; } static void __nvoc_init_funcTable_KernelBif_1(KernelBif *pThis, RmHalspecOwner *pRmhalspecowner) { ChipHal *chipHal = &pRmhalspecowner->chipHal; const unsigned long chipHal_HalVarIdx = (unsigned long)chipHal->__nvoc_HalVarIdx; RmVariantHal *rmVariantHal = &pRmhalspecowner->rmVariantHal; const unsigned long rmVariantHal_HalVarIdx = (unsigned long)rmVariantHal->__nvoc_HalVarIdx; PORT_UNREFERENCED_VARIABLE(pThis); PORT_UNREFERENCED_VARIABLE(pRmhalspecowner); PORT_UNREFERENCED_VARIABLE(chipHal); PORT_UNREFERENCED_VARIABLE(chipHal_HalVarIdx); PORT_UNREFERENCED_VARIABLE(rmVariantHal); PORT_UNREFERENCED_VARIABLE(rmVariantHal_HalVarIdx); pThis->__kbifConstructEngine__ = &kbifConstructEngine_IMPL; pThis->__kbifStateInitLocked__ = &kbifStateInitLocked_IMPL; // Hal function -- kbifStateLoad pThis->__kbifStateLoad__ = &kbifStateLoad_IMPL; // Hal function -- kbifStatePostLoad if (( ((rmVariantHal_HalVarIdx >> 5) == 0UL) && ((1UL << (rmVariantHal_HalVarIdx & 0x1f)) & 0x00000001UL) )) /* RmVariantHal: VF */ { pThis->__kbifStatePostLoad__ = &kbifStatePostLoad_56cd7a; } else { pThis->__kbifStatePostLoad__ = &kbifStatePostLoad_IMPL; } // Hal function -- kbifStateUnload pThis->__kbifStateUnload__ = &kbifStateUnload_IMPL; // Hal function -- kbifGetBusIntfType if (( ((rmVariantHal_HalVarIdx >> 5) == 0UL) && ((1UL << (rmVariantHal_HalVarIdx & 0x1f)) & 0x00000001UL) )) /* RmVariantHal: VF */ { pThis->__kbifGetBusIntfType__ = &kbifGetBusIntfType_28ceda; } else { pThis->__kbifGetBusIntfType__ = &kbifGetBusIntfType_2f2c74; } // Hal function -- kbifInitDmaCaps if (( ((rmVariantHal_HalVarIdx >> 5) == 0UL) && ((1UL << (rmVariantHal_HalVarIdx & 0x1f)) & 0x00000001UL) )) /* RmVariantHal: VF */ { pThis->__kbifInitDmaCaps__ = &kbifInitDmaCaps_VGPUSTUB; } else { pThis->__kbifInitDmaCaps__ = &kbifInitDmaCaps_IMPL; } // Hal function -- kbifSavePcieConfigRegisters if (( ((chipHal_HalVarIdx >> 5) == 1UL) && ((1UL << (chipHal_HalVarIdx & 0x1f)) & 0x10000000UL) )) /* ChipHal: GH100 */ { pThis->__kbifSavePcieConfigRegisters__ = &kbifSavePcieConfigRegisters_GH100; } else { pThis->__kbifSavePcieConfigRegisters__ = &kbifSavePcieConfigRegisters_GM107; } // Hal function -- kbifRestorePcieConfigRegisters if (( ((chipHal_HalVarIdx >> 5) == 1UL) && ((1UL << (chipHal_HalVarIdx & 0x1f)) & 0x10000000UL) )) /* ChipHal: GH100 */ { pThis->__kbifRestorePcieConfigRegisters__ = &kbifRestorePcieConfigRegisters_GH100; } else { pThis->__kbifRestorePcieConfigRegisters__ = &kbifRestorePcieConfigRegisters_GM107; } // Hal function -- kbifGetXveStatusBits if (( ((chipHal_HalVarIdx >> 5) == 1UL) && ((1UL << (chipHal_HalVarIdx & 0x1f)) & 0x10000000UL) )) /* ChipHal: GH100 */ { pThis->__kbifGetXveStatusBits__ = &kbifGetXveStatusBits_GH100; } else { pThis->__kbifGetXveStatusBits__ = &kbifGetXveStatusBits_GM107; } // Hal function -- kbifClearXveStatus if (( ((chipHal_HalVarIdx >> 5) == 1UL) && ((1UL << (chipHal_HalVarIdx & 0x1f)) & 0x10000000UL) )) /* ChipHal: GH100 */ { pThis->__kbifClearXveStatus__ = &kbifClearXveStatus_GH100; } else { pThis->__kbifClearXveStatus__ = &kbifClearXveStatus_GM107; } // Hal function -- kbifGetXveAerBits if (( ((chipHal_HalVarIdx >> 5) == 1UL) && ((1UL << (chipHal_HalVarIdx & 0x1f)) & 0x10000000UL) )) /* ChipHal: GH100 */ { pThis->__kbifGetXveAerBits__ = &kbifGetXveAerBits_GH100; } else { pThis->__kbifGetXveAerBits__ = &kbifGetXveAerBits_GM107; } // Hal function -- kbifClearXveAer if (( ((chipHal_HalVarIdx >> 5) == 1UL) && ((1UL << (chipHal_HalVarIdx & 0x1f)) & 0x10000000UL) )) /* ChipHal: GH100 */ { pThis->__kbifClearXveAer__ = &kbifClearXveAer_GH100; } else { pThis->__kbifClearXveAer__ = &kbifClearXveAer_GM107; } // Hal function -- kbifGetPcieConfigAccessTestRegisters if (( ((chipHal_HalVarIdx >> 5) == 1UL) && ((1UL << (chipHal_HalVarIdx & 0x1f)) & 0x10000000UL) )) /* ChipHal: GH100 */ { pThis->__kbifGetPcieConfigAccessTestRegisters__ = &kbifGetPcieConfigAccessTestRegisters_b3696a; } else { pThis->__kbifGetPcieConfigAccessTestRegisters__ = &kbifGetPcieConfigAccessTestRegisters_GM107; } // Hal function -- kbifVerifyPcieConfigAccessTestRegisters if (( ((chipHal_HalVarIdx >> 5) == 1UL) && ((1UL << (chipHal_HalVarIdx & 0x1f)) & 0x10000000UL) )) /* ChipHal: GH100 */ { pThis->__kbifVerifyPcieConfigAccessTestRegisters__ = &kbifVerifyPcieConfigAccessTestRegisters_56cd7a; } else { pThis->__kbifVerifyPcieConfigAccessTestRegisters__ = &kbifVerifyPcieConfigAccessTestRegisters_GM107; } // Hal function -- kbifRearmMSI if (( ((chipHal_HalVarIdx >> 5) == 1UL) && ((1UL << (chipHal_HalVarIdx & 0x1f)) & 0x10000000UL) )) /* ChipHal: GH100 */ { pThis->__kbifRearmMSI__ = &kbifRearmMSI_f2d351; } else { pThis->__kbifRearmMSI__ = &kbifRearmMSI_GM107; } // Hal function -- kbifIsMSIEnabledInHW if (( ((chipHal_HalVarIdx >> 5) == 1UL) && ((1UL << (chipHal_HalVarIdx & 0x1f)) & 0x10000000UL) )) /* ChipHal: GH100 */ { pThis->__kbifIsMSIEnabledInHW__ = &kbifIsMSIEnabledInHW_GH100; } else { pThis->__kbifIsMSIEnabledInHW__ = &kbifIsMSIEnabledInHW_GM107; } // Hal function -- kbifIsMSIXEnabledInHW if (( ((chipHal_HalVarIdx >> 5) == 1UL) && ((1UL << (chipHal_HalVarIdx & 0x1f)) & 0x10000000UL) )) /* ChipHal: GH100 */ { pThis->__kbifIsMSIXEnabledInHW__ = &kbifIsMSIXEnabledInHW_GH100; } else { pThis->__kbifIsMSIXEnabledInHW__ = &kbifIsMSIXEnabledInHW_TU102; } // Hal function -- kbifIsPciIoAccessEnabled if (( ((chipHal_HalVarIdx >> 5) == 1UL) && ((1UL << (chipHal_HalVarIdx & 0x1f)) & 0x10000400UL) )) /* ChipHal: GA100 | GH100 */ { pThis->__kbifIsPciIoAccessEnabled__ = &kbifIsPciIoAccessEnabled_491d52; } else { pThis->__kbifIsPciIoAccessEnabled__ = &kbifIsPciIoAccessEnabled_GM107; } // Hal function -- kbifIs3dController if (( ((chipHal_HalVarIdx >> 5) == 1UL) && ((1UL << (chipHal_HalVarIdx & 0x1f)) & 0x10000000UL) )) /* ChipHal: GH100 */ { pThis->__kbifIs3dController__ = &kbifIs3dController_GH100; } else { pThis->__kbifIs3dController__ = &kbifIs3dController_GM107; } // Hal function -- kbifExecC73War if (( ((chipHal_HalVarIdx >> 5) == 1UL) && ((1UL << (chipHal_HalVarIdx & 0x1f)) & 0x10000000UL) )) /* ChipHal: GH100 */ { pThis->__kbifExecC73War__ = &kbifExecC73War_b3696a; } else { pThis->__kbifExecC73War__ = &kbifExecC73War_GM107; } // Hal function -- kbifEnableExtendedTagSupport if (( ((chipHal_HalVarIdx >> 5) == 1UL) && ((1UL << (chipHal_HalVarIdx & 0x1f)) & 0x10000000UL) )) /* ChipHal: GH100 */ { pThis->__kbifEnableExtendedTagSupport__ = &kbifEnableExtendedTagSupport_GH100; } // default else { pThis->__kbifEnableExtendedTagSupport__ = &kbifEnableExtendedTagSupport_b3696a; } // Hal function -- kbifPcieConfigEnableRelaxedOrdering if (( ((chipHal_HalVarIdx >> 5) == 1UL) && ((1UL << (chipHal_HalVarIdx & 0x1f)) & 0x10000000UL) )) /* ChipHal: GH100 */ { pThis->__kbifPcieConfigEnableRelaxedOrdering__ = &kbifPcieConfigEnableRelaxedOrdering_GH100; } else { pThis->__kbifPcieConfigEnableRelaxedOrdering__ = &kbifPcieConfigEnableRelaxedOrdering_GM107; } // Hal function -- kbifPcieConfigDisableRelaxedOrdering if (( ((chipHal_HalVarIdx >> 5) == 1UL) && ((1UL << (chipHal_HalVarIdx & 0x1f)) & 0x10000000UL) )) /* ChipHal: GH100 */ { pThis->__kbifPcieConfigDisableRelaxedOrdering__ = &kbifPcieConfigDisableRelaxedOrdering_GH100; } else { pThis->__kbifPcieConfigDisableRelaxedOrdering__ = &kbifPcieConfigDisableRelaxedOrdering_GM107; } // Hal function -- kbifInitRelaxedOrderingFromEmulatedConfigSpace if (( ((rmVariantHal_HalVarIdx >> 5) == 0UL) && ((1UL << (rmVariantHal_HalVarIdx & 0x1f)) & 0x00000001UL) )) /* RmVariantHal: VF */ { pThis->__kbifInitRelaxedOrderingFromEmulatedConfigSpace__ = &kbifInitRelaxedOrderingFromEmulatedConfigSpace_b3696a; } else { if (( ((chipHal_HalVarIdx >> 5) == 1UL) && ((1UL << (chipHal_HalVarIdx & 0x1f)) & 0x0000fc00UL) )) /* ChipHal: GA100 | GA102 | GA103 | GA104 | GA106 | GA107 */ { pThis->__kbifInitRelaxedOrderingFromEmulatedConfigSpace__ = &kbifInitRelaxedOrderingFromEmulatedConfigSpace_GA100; } // default else { pThis->__kbifInitRelaxedOrderingFromEmulatedConfigSpace__ = &kbifInitRelaxedOrderingFromEmulatedConfigSpace_b3696a; } } // Hal function -- kbifEnableNoSnoop if (( ((chipHal_HalVarIdx >> 5) == 1UL) && ((1UL << (chipHal_HalVarIdx & 0x1f)) & 0x10000000UL) )) /* ChipHal: GH100 */ { pThis->__kbifEnableNoSnoop__ = &kbifEnableNoSnoop_GH100; } else { pThis->__kbifEnableNoSnoop__ = &kbifEnableNoSnoop_GM107; } // Hal function -- kbifApplyWARBug3208922 if (( ((chipHal_HalVarIdx >> 5) == 1UL) && ((1UL << (chipHal_HalVarIdx & 0x1f)) & 0x100003e0UL) )) /* ChipHal: TU102 | TU104 | TU106 | TU116 | TU117 | GH100 */ { pThis->__kbifApplyWARBug3208922__ = &kbifApplyWARBug3208922_b3696a; } else { pThis->__kbifApplyWARBug3208922__ = &kbifApplyWARBug3208922_GA100; } // Hal function -- kbifProbePcieReqAtomicCaps if (( ((rmVariantHal_HalVarIdx >> 5) == 0UL) && ((1UL << (rmVariantHal_HalVarIdx & 0x1f)) & 0x00000001UL) )) /* RmVariantHal: VF */ { pThis->__kbifProbePcieReqAtomicCaps__ = &kbifProbePcieReqAtomicCaps_b3696a; } else { if (( ((chipHal_HalVarIdx >> 5) == 1UL) && ((1UL << (chipHal_HalVarIdx & 0x1f)) & 0x10000000UL) )) /* ChipHal: GH100 */ { pThis->__kbifProbePcieReqAtomicCaps__ = &kbifProbePcieReqAtomicCaps_GH100; } // default else { pThis->__kbifProbePcieReqAtomicCaps__ = &kbifProbePcieReqAtomicCaps_b3696a; } } // Hal function -- kbifEnablePcieAtomics if (( ((chipHal_HalVarIdx >> 5) == 1UL) && ((1UL << (chipHal_HalVarIdx & 0x1f)) & 0x10000000UL) )) /* ChipHal: GH100 */ { pThis->__kbifEnablePcieAtomics__ = &kbifEnablePcieAtomics_GH100; } // default else { pThis->__kbifEnablePcieAtomics__ = &kbifEnablePcieAtomics_b3696a; } // Hal function -- kbifDoFunctionLevelReset if (( ((chipHal_HalVarIdx >> 5) == 1UL) && ((1UL << (chipHal_HalVarIdx & 0x1f)) & 0x10000000UL) )) /* ChipHal: GH100 */ { pThis->__kbifDoFunctionLevelReset__ = &kbifDoFunctionLevelReset_GH100; } else { pThis->__kbifDoFunctionLevelReset__ = &kbifDoFunctionLevelReset_TU102; } // Hal function -- kbifInitXveRegMap if (( ((chipHal_HalVarIdx >> 5) == 1UL) && ((1UL << (chipHal_HalVarIdx & 0x1f)) & 0x000003e0UL) )) /* ChipHal: TU102 | TU104 | TU106 | TU116 | TU117 */ { pThis->__kbifInitXveRegMap__ = &kbifInitXveRegMap_TU102; } else { pThis->__kbifInitXveRegMap__ = &kbifInitXveRegMap_GA102; } // Hal function -- kbifGetMSIXTableVectorControlSize if (( ((chipHal_HalVarIdx >> 5) == 1UL) && ((1UL << (chipHal_HalVarIdx & 0x1f)) & 0x10000000UL) )) /* ChipHal: GH100 */ { pThis->__kbifGetMSIXTableVectorControlSize__ = &kbifGetMSIXTableVectorControlSize_GH100; } else { pThis->__kbifGetMSIXTableVectorControlSize__ = &kbifGetMSIXTableVectorControlSize_TU102; } // Hal function -- kbifSaveMsixTable if (( ((chipHal_HalVarIdx >> 5) == 1UL) && ((1UL << (chipHal_HalVarIdx & 0x1f)) & 0x10000000UL) )) /* ChipHal: GH100 */ { pThis->__kbifSaveMsixTable__ = &kbifSaveMsixTable_GH100; } // default else { pThis->__kbifSaveMsixTable__ = &kbifSaveMsixTable_46f6a7; } // Hal function -- kbifRestoreMsixTable if (( ((chipHal_HalVarIdx >> 5) == 1UL) && ((1UL << (chipHal_HalVarIdx & 0x1f)) & 0x10000000UL) )) /* ChipHal: GH100 */ { pThis->__kbifRestoreMsixTable__ = &kbifRestoreMsixTable_GH100; } // default else { pThis->__kbifRestoreMsixTable__ = &kbifRestoreMsixTable_46f6a7; } // Hal function -- kbifConfigAccessWait if (( ((chipHal_HalVarIdx >> 5) == 1UL) && ((1UL << (chipHal_HalVarIdx & 0x1f)) & 0x10000000UL) )) /* ChipHal: GH100 */ { pThis->__kbifConfigAccessWait__ = &kbifConfigAccessWait_GH100; } // default else { pThis->__kbifConfigAccessWait__ = &kbifConfigAccessWait_46f6a7; } // Hal function -- kbifGetPciConfigSpacePriMirror if (( ((chipHal_HalVarIdx >> 5) == 1UL) && ((1UL << (chipHal_HalVarIdx & 0x1f)) & 0x10000000UL) )) /* ChipHal: GH100 */ { pThis->__kbifGetPciConfigSpacePriMirror__ = &kbifGetPciConfigSpacePriMirror_GH100; } else { pThis->__kbifGetPciConfigSpacePriMirror__ = &kbifGetPciConfigSpacePriMirror_GM107; } // Hal function -- kbifGetBusOptionsAddr if (( ((chipHal_HalVarIdx >> 5) == 1UL) && ((1UL << (chipHal_HalVarIdx & 0x1f)) & 0x10000000UL) )) /* ChipHal: GH100 */ { pThis->__kbifGetBusOptionsAddr__ = &kbifGetBusOptionsAddr_GH100; } else { pThis->__kbifGetBusOptionsAddr__ = &kbifGetBusOptionsAddr_GM107; } // Hal function -- kbifPreOsGlobalErotGrantRequest if (( ((chipHal_HalVarIdx >> 5) == 1UL) && ((1UL << (chipHal_HalVarIdx & 0x1f)) & 0x01f00000UL) )) /* ChipHal: AD102 | AD103 | AD104 | AD106 | AD107 */ { pThis->__kbifPreOsGlobalErotGrantRequest__ = &kbifPreOsGlobalErotGrantRequest_AD102; } // default else { pThis->__kbifPreOsGlobalErotGrantRequest__ = &kbifPreOsGlobalErotGrantRequest_56cd7a; } // Hal function -- kbifStopSysMemRequests if (( ((rmVariantHal_HalVarIdx >> 5) == 0UL) && ((1UL << (rmVariantHal_HalVarIdx & 0x1f)) & 0x00000001UL) )) /* RmVariantHal: VF */ { pThis->__kbifStopSysMemRequests__ = &kbifStopSysMemRequests_56cd7a; } else { if (( ((chipHal_HalVarIdx >> 5) == 1UL) && ((1UL << (chipHal_HalVarIdx & 0x1f)) & 0x10000000UL) )) /* ChipHal: GH100 */ { pThis->__kbifStopSysMemRequests__ = &kbifStopSysMemRequests_GH100; } else { pThis->__kbifStopSysMemRequests__ = &kbifStopSysMemRequests_GM107; } } // Hal function -- kbifWaitForTransactionsComplete if (( ((chipHal_HalVarIdx >> 5) == 1UL) && ((1UL << (chipHal_HalVarIdx & 0x1f)) & 0x10000000UL) )) /* ChipHal: GH100 */ { pThis->__kbifWaitForTransactionsComplete__ = &kbifWaitForTransactionsComplete_GH100; } else { pThis->__kbifWaitForTransactionsComplete__ = &kbifWaitForTransactionsComplete_TU102; } // Hal function -- kbifTriggerFlr if (( ((chipHal_HalVarIdx >> 5) == 1UL) && ((1UL << (chipHal_HalVarIdx & 0x1f)) & 0x10000000UL) )) /* ChipHal: GH100 */ { pThis->__kbifTriggerFlr__ = &kbifTriggerFlr_GH100; } else { pThis->__kbifTriggerFlr__ = &kbifTriggerFlr_TU102; } // Hal function -- kbifCacheFlrSupport if (( ((chipHal_HalVarIdx >> 5) == 1UL) && ((1UL << (chipHal_HalVarIdx & 0x1f)) & 0x10000000UL) )) /* ChipHal: GH100 */ { pThis->__kbifCacheFlrSupport__ = &kbifCacheFlrSupport_GH100; } else { pThis->__kbifCacheFlrSupport__ = &kbifCacheFlrSupport_TU102; } // Hal function -- kbifCache64bBar0Support if (( ((chipHal_HalVarIdx >> 5) == 1UL) && ((1UL << (chipHal_HalVarIdx & 0x1f)) & 0x10000000UL) )) /* ChipHal: GH100 */ { pThis->__kbifCache64bBar0Support__ = &kbifCache64bBar0Support_GH100; } else if (( ((chipHal_HalVarIdx >> 5) == 1UL) && ((1UL << (chipHal_HalVarIdx & 0x1f)) & 0x01f0fc00UL) )) /* ChipHal: GA100 | GA102 | GA103 | GA104 | GA106 | GA107 | AD102 | AD103 | AD104 | AD106 | AD107 */ { pThis->__kbifCache64bBar0Support__ = &kbifCache64bBar0Support_GA100; } // default else { pThis->__kbifCache64bBar0Support__ = &kbifCache64bBar0Support_b3696a; } // Hal function -- kbifCacheVFInfo if (( ((chipHal_HalVarIdx >> 5) == 1UL) && ((1UL << (chipHal_HalVarIdx & 0x1f)) & 0x10000000UL) )) /* ChipHal: GH100 */ { pThis->__kbifCacheVFInfo__ = &kbifCacheVFInfo_GH100; } else { pThis->__kbifCacheVFInfo__ = &kbifCacheVFInfo_TU102; } // Hal function -- kbifRestoreBar0 if (( ((chipHal_HalVarIdx >> 5) == 1UL) && ((1UL << (chipHal_HalVarIdx & 0x1f)) & 0x000003e0UL) )) /* ChipHal: TU102 | TU104 | TU106 | TU116 | TU117 */ { pThis->__kbifRestoreBar0__ = &kbifRestoreBar0_GM107; } else { pThis->__kbifRestoreBar0__ = &kbifRestoreBar0_GA100; } // Hal function -- kbifAnyBarsAreValid if (( ((chipHal_HalVarIdx >> 5) == 1UL) && ((1UL << (chipHal_HalVarIdx & 0x1f)) & 0x000003e0UL) )) /* ChipHal: TU102 | TU104 | TU106 | TU116 | TU117 */ { pThis->__kbifAnyBarsAreValid__ = &kbifAnyBarsAreValid_GM107; } else { pThis->__kbifAnyBarsAreValid__ = &kbifAnyBarsAreValid_GA100; } // Hal function -- kbifRestoreBarsAndCommand if (( ((chipHal_HalVarIdx >> 5) == 1UL) && ((1UL << (chipHal_HalVarIdx & 0x1f)) & 0x10000000UL) )) /* ChipHal: GH100 */ { pThis->__kbifRestoreBarsAndCommand__ = &kbifRestoreBarsAndCommand_GH100; } else if (( ((chipHal_HalVarIdx >> 5) == 1UL) && ((1UL << (chipHal_HalVarIdx & 0x1f)) & 0x000003e0UL) )) /* ChipHal: TU102 | TU104 | TU106 | TU116 | TU117 */ { pThis->__kbifRestoreBarsAndCommand__ = &kbifRestoreBarsAndCommand_GM107; } else { pThis->__kbifRestoreBarsAndCommand__ = &kbifRestoreBarsAndCommand_GA100; } // Hal function -- kbifStoreBarRegOffsets if (( ((chipHal_HalVarIdx >> 5) == 1UL) && ((1UL << (chipHal_HalVarIdx & 0x1f)) & 0x01f0fc00UL) )) /* ChipHal: GA100 | GA102 | GA103 | GA104 | GA106 | GA107 | AD102 | AD103 | AD104 | AD106 | AD107 */ { pThis->__kbifStoreBarRegOffsets__ = &kbifStoreBarRegOffsets_GA100; } // default else { pThis->__kbifStoreBarRegOffsets__ = &kbifStoreBarRegOffsets_b3696a; } // Hal function -- kbifInit if (( ((chipHal_HalVarIdx >> 5) == 1UL) && ((1UL << (chipHal_HalVarIdx & 0x1f)) & 0x10000000UL) )) /* ChipHal: GH100 */ { pThis->__kbifInit__ = &kbifInit_GH100; } else { pThis->__kbifInit__ = &kbifInit_GM107; } // Hal function -- kbifGetValidEnginesToReset if (( ((chipHal_HalVarIdx >> 5) == 1UL) && ((1UL << (chipHal_HalVarIdx & 0x1f)) & 0x000003e0UL) )) /* ChipHal: TU102 | TU104 | TU106 | TU116 | TU117 */ { pThis->__kbifGetValidEnginesToReset__ = &kbifGetValidEnginesToReset_TU102; } else { pThis->__kbifGetValidEnginesToReset__ = &kbifGetValidEnginesToReset_GA100; } // Hal function -- kbifGetValidDeviceEnginesToReset if (( ((chipHal_HalVarIdx >> 5) == 1UL) && ((1UL << (chipHal_HalVarIdx & 0x1f)) & 0x100003e0UL) )) /* ChipHal: TU102 | TU104 | TU106 | TU116 | TU117 | GH100 */ { pThis->__kbifGetValidDeviceEnginesToReset__ = &kbifGetValidDeviceEnginesToReset_15a734; } else { pThis->__kbifGetValidDeviceEnginesToReset__ = &kbifGetValidDeviceEnginesToReset_GA100; } // Hal function -- kbifGetEccCounts if (( ((chipHal_HalVarIdx >> 5) == 1UL) && ((1UL << (chipHal_HalVarIdx & 0x1f)) & 0x10000000UL) )) /* ChipHal: GH100 */ { pThis->__kbifGetEccCounts__ = &kbifGetEccCounts_GH100; } // default else { pThis->__kbifGetEccCounts__ = &kbifGetEccCounts_4a4dee; } pThis->__nvoc_base_OBJENGSTATE.__engstateConstructEngine__ = &__nvoc_thunk_KernelBif_engstateConstructEngine; pThis->__nvoc_base_OBJENGSTATE.__engstateStateInitLocked__ = &__nvoc_thunk_KernelBif_engstateStateInitLocked; pThis->__nvoc_base_OBJENGSTATE.__engstateStateLoad__ = &__nvoc_thunk_KernelBif_engstateStateLoad; pThis->__nvoc_base_OBJENGSTATE.__engstateStatePostLoad__ = &__nvoc_thunk_KernelBif_engstateStatePostLoad; pThis->__nvoc_base_OBJENGSTATE.__engstateStateUnload__ = &__nvoc_thunk_KernelBif_engstateStateUnload; pThis->__kbifStatePreLoad__ = &__nvoc_thunk_OBJENGSTATE_kbifStatePreLoad; pThis->__kbifStatePostUnload__ = &__nvoc_thunk_OBJENGSTATE_kbifStatePostUnload; pThis->__kbifStateDestroy__ = &__nvoc_thunk_OBJENGSTATE_kbifStateDestroy; pThis->__kbifStatePreUnload__ = &__nvoc_thunk_OBJENGSTATE_kbifStatePreUnload; pThis->__kbifStateInitUnlocked__ = &__nvoc_thunk_OBJENGSTATE_kbifStateInitUnlocked; pThis->__kbifInitMissing__ = &__nvoc_thunk_OBJENGSTATE_kbifInitMissing; pThis->__kbifStatePreInitLocked__ = &__nvoc_thunk_OBJENGSTATE_kbifStatePreInitLocked; pThis->__kbifStatePreInitUnlocked__ = &__nvoc_thunk_OBJENGSTATE_kbifStatePreInitUnlocked; pThis->__kbifIsPresent__ = &__nvoc_thunk_OBJENGSTATE_kbifIsPresent; } void __nvoc_init_funcTable_KernelBif(KernelBif *pThis, RmHalspecOwner *pRmhalspecowner) { __nvoc_init_funcTable_KernelBif_1(pThis, pRmhalspecowner); } void __nvoc_init_OBJENGSTATE(OBJENGSTATE*); void __nvoc_init_KernelBif(KernelBif *pThis, RmHalspecOwner *pRmhalspecowner) { pThis->__nvoc_pbase_KernelBif = pThis; pThis->__nvoc_pbase_Object = &pThis->__nvoc_base_OBJENGSTATE.__nvoc_base_Object; pThis->__nvoc_pbase_OBJENGSTATE = &pThis->__nvoc_base_OBJENGSTATE; __nvoc_init_OBJENGSTATE(&pThis->__nvoc_base_OBJENGSTATE); __nvoc_init_funcTable_KernelBif(pThis, pRmhalspecowner); } NV_STATUS __nvoc_objCreate_KernelBif(KernelBif **ppThis, Dynamic *pParent, NvU32 createFlags) { NV_STATUS status; Object *pParentObj = NULL; KernelBif *pThis; RmHalspecOwner *pRmhalspecowner; // Assign `pThis`, allocating memory unless suppressed by flag. status = __nvoc_handleObjCreateMemAlloc(createFlags, sizeof(KernelBif), (void**)&pThis, (void**)ppThis); if (status != NV_OK) return status; // Zero is the initial value for everything. portMemSet(pThis, 0, sizeof(KernelBif)); // Initialize runtime type information. __nvoc_initRtti(staticCast(pThis, Dynamic), &__nvoc_class_def_KernelBif); pThis->__nvoc_base_OBJENGSTATE.__nvoc_base_Object.createFlags = createFlags; // pParent must be a valid object that derives from a halspec owner class. NV_ASSERT_OR_RETURN(pParent != NULL, NV_ERR_INVALID_ARGUMENT); // Link the child into the parent unless flagged not to do so. if (!(createFlags & NVOC_OBJ_CREATE_FLAGS_PARENT_HALSPEC_ONLY)) { pParentObj = dynamicCast(pParent, Object); objAddChild(pParentObj, &pThis->__nvoc_base_OBJENGSTATE.__nvoc_base_Object); } else { pThis->__nvoc_base_OBJENGSTATE.__nvoc_base_Object.pParent = NULL; } if ((pRmhalspecowner = dynamicCast(pParent, RmHalspecOwner)) == NULL) pRmhalspecowner = objFindAncestorOfType(RmHalspecOwner, pParent); NV_ASSERT_OR_RETURN(pRmhalspecowner != NULL, NV_ERR_INVALID_ARGUMENT); __nvoc_init_KernelBif(pThis, pRmhalspecowner); status = __nvoc_ctor_KernelBif(pThis, pRmhalspecowner); if (status != NV_OK) goto __nvoc_objCreate_KernelBif_cleanup; // Assignment has no effect if NVOC_OBJ_CREATE_FLAGS_IN_PLACE_CONSTRUCT is set. *ppThis = pThis; return NV_OK; __nvoc_objCreate_KernelBif_cleanup: // Unlink the child from the parent if it was linked above. if (pParentObj != NULL) objRemoveChild(pParentObj, &pThis->__nvoc_base_OBJENGSTATE.__nvoc_base_Object); // Do not call destructors here since the constructor already called them. if (createFlags & NVOC_OBJ_CREATE_FLAGS_IN_PLACE_CONSTRUCT) portMemSet(pThis, 0, sizeof(KernelBif)); else { portMemFree(pThis); *ppThis = NULL; } // coverity[leaked_storage:FALSE] return status; } NV_STATUS __nvoc_objCreateDynamic_KernelBif(KernelBif **ppThis, Dynamic *pParent, NvU32 createFlags, va_list args) { NV_STATUS status; status = __nvoc_objCreate_KernelBif(ppThis, pParent, createFlags); return status; }