# The HIOMAP protocol is used to access PNOR
unset SFC_IS_AST2500
unset SFC_IS_AST2400
set   PNORDD_IS_IPMI
unset PNORDD_IS_SFC
unset ALLOW_MICRON_PNOR
unset ALLOW_MACRONIX_PNOR

# VPD options - Enable EECACHE
set MVPD_READ_FROM_HW
set MVPD_WRITE_TO_HW
unset MVPD_READ_FROM_PNOR
unset MVPD_WRITE_TO_PNOR

set DJVPD_READ_FROM_HW
set DJVPD_WRITE_TO_HW
unset DJVPD_READ_FROM_PNOR
unset DJVPD_WRITE_TO_PNOR

set MEMVPD_READ_FROM_HW
set MEMVPD_WRITE_TO_HW
unset MEMVPD_READ_FROM_PNOR
unset MEMVPD_WRITE_TO_PNOR

# PLDM will be read via PLDM which is not supported yet
#set PVPD_READ_FROM_HW
#set PVPD_WRITE_TO_HW
#unset PVPD_READ_FROM_PNOR
#unset PVPD_WRITE_TO_PNOR

# gpio config
set GPIODD
unset PALMETTO_VDDR

# Disable SBE updates until it is supported
# TODO: Re-enable SBE Updates when supported
unset SBE_UPDATE_CONSECUTIVE
unset SBE_UPDATE_INDEPENDENT
unset SBE_UPDATE_SEQUENTIAL
unset SBE_UPDATE_SIMULTANEOUS
set NO_SBE_UPDATES

#unset PCIE_HOTPLUG_CONTROLLER

# turn on console output
set CONSOLE

set BMC_AST2500

#set DISABLE_HOSTBOOT_RUNTIME

# Compile in hostboot runtime PRD
#unset HBRT_PRD

# PNOR flags
unset PNOR_TWO_SIDE_SUPPORT

set BMC_BT_LPC_IPMI

# AXONE configs must be set until those flags are reworked in Hostboot
set AXONE
set AXONE_BRINGUP

# Enable hardware access to the EEPROMs with a cache
set SUPPORT_EEPROM_CACHING
set SUPPORT_EEPROM_HWACCESS

# set for trace debug to console
unset CONSOLE_OUTPUT_TRACE

# Output FFDC to console
set CONSOLE_OUTPUT_FFDCDISPLAY

# RTC TODO 248361
# Remove some time before product ships
set PRINT_SYSTEM_INFO

# Terminate Hostboot when errors occur in manufacturing mode
#   (relies on BMC to not trigger reboot)
#unset HANG_ON_MFG_SRC_TERM

set ENABLE_HDAT_IN_HOSTBOOT

# Temporary workaround for SW461052 
set P10_BRING_UP

# Until MCTP/PLDM file access available, load PHyp via the BOOTKERNEL partition
unset LOAD_PHYP_FROM_BOOTKERNEL
set LOAD_LIDS_VIA_PLDM

