# Joe's initfile reference page: # https://w3-connections.ibm.com/wikis/home?lang=en-us#!/wiki/W9dc674bd1c19_432e_9f66_0e8b6ce7195f/page/P9%20Initfile%20Strategy%20%26%20Execution # http://ausxgsatm2.austin.ibm.com/gsa/home/j/m/jmcgill/web/public/p8/initfiles/mba_def.initfile #--****************************************************************************** #-- ISSUES TO RESOVLE #--****************************************************************************** # #--****************************************************************************** #-- REFERENCES FOR FILE #--****************************************************************************** # Files used to check what target type attributes are # MCS # /gsa/ausgsa/home/s/l/sleung/ekb/ekb/chips/p9/procedures/xml/attribute_info/memory_mcs_attributes.xml # /gsa/ausgsa/home/s/l/sleung/ekb/ekb/chips/p9/procedures/xml/attribute_info/memory_spd_attributes.xml # PROC (apparently from grep) # /gsa/ausgsa/home/s/l/sleung/ekb/ekb/chips/p9/procedures/xml/attribute_info/nest_attributes.xml (properties) # /gsa/ausgsa/home/s/l/sleung/ekb/ekb/chips/p9/procedures/xml/attribute_info/p9_sbe_attributes.xml (values) # Example: # ATTR_EFF_NUM_RANKS_PER_DIMM # TARGET_TYPE_MCS # File used to see if attribute is 1D or 2D array # /gsa/ausgsa/home/s/l/sleung/ekb/ekb/output/gen/attribute_ids.H # Example: # typedef uint8_t ATTR_EFF_DIMM_TYPE_Type[2][2]; # File for finding correct spydef name # 1st find the spydef file this ekb build is looking at by finding SPYDEF_FILE_LOCATION in file below # /gsa/ausgsa/home/s/l/sleung/ekb/ekb/tools/ifCompiler/scan_procedures.mk # 2nd open *.spydef in that dir and search for spy names # /afs/awd.austin.ibm.com/projects/eclipz/lab/p9/vbu_models/n10_e9050_tp046_ec150u01a_soa_sc_u138_01/edc/*.spydef # (File comes from actually building a vbu file and looking at the spydef) # Example: # idial MCP.PORT1.SRQ.PC.MBAREF0Q_CFG_TRFC { # Wrapper file calling this (TODO, need to actually make this file call this file) # /gsa/ausgsa/home/s/l/sleung/ekb/ekb/chips/p9/procedures/hwp/nest/p9_chiplet_scominit.C # Output file generated # /gsa/ausgsa/home/s/l/sleung/ekb/ekb/chips/p9/procedures/hwp/initfiles/p9_mcs_scom.C ## Syntax Notes # Compiler expects spys to be all caps #--****************************************************************************** #-- Required keywords/variables #--****************************************************************************** SyntaxVersion = 3 target_type 0 TARGET_TYPE_MCS; target_type 1 TARGET_TYPE_SYSTEM; target_type 2 TARGET_TYPE_PROC_CHIP; target_type 3 TARGET_TYPE_MCBIST; define SYS = TGT1; # If referencing Attr from system, add "SYS." in front define MCBIST = TGT3; # If referencing Attr from mcbist, add "MCBIST." in front #--****************************************************************************** #-- Systems Config #--****************************************************************************** #--****************************************************************************** #-- Effective Attributes #--****************************************************************************** #--****************************************************************************** #-- Dial Assignments #--****************************************************************************** ########################## # DD1 WORKAROUNDS ########################## # If cache scope prediciton logic is active, must disable fp_m bit, so fp ops will go fetch 128 bytes (for potential mdi update) espy MC01.PBI01.SCOMFIR.MCMODE1_DISABLE_FP_M_BIT [when=S] { spyv; ON; } # HW376110 ispy MC01.PBI01.SCOMFIR.MCPERF1_MERGE_CAPACITY_LIMIT [when=S] { # still applies for dd2 spyv; 0b0111; } # Turns off SRQ pf drop ispy MC01.PBI01.SCOMFIR.MCPERF1_ENABLE_PF_DROP_SRQ [when=S] { spyv; 0; } # HW400075 Always set MDI to 1 for ttypes cp_me and cp_m ispy MC01.PBI01.SCOMFIR.MCMODE2_DISABLE_MDI0 [when=S && ATTR_CHIP_EC_FEATURE_HW400075] { spyv, expr; 0b0001100000000, (TGT1.ATTR_RISK_LEVEL == 0); } # HW398139 Enable commandlist prefetch drop for better arbitration # Prefetch drop references an internal counter (6 by default - this is max value) to determine # when a prefetch gets dropped. DROP_CNT_THRESH determines the rate the counter decrements (in units # of 4 nest clocks) -- here, 8 * 4 nclks = 32 nclks, 32 nclks * 6 counts => takes 192 nest clocks # to drop a prefetch. This dial may need to be tuned for performance. espy MC01.PBI01.SCOMFIR.MCPERF1_ENABLE_PF_DROP_CMDLIST [when=S] { # enable for dd1 and dd2 spyv; ON; } ispy MC01.PBI01.SCOMFIR.MCPERF1_PF_DROP_CNT_THRESH [when=S] { spyv, expr; 8, (ATTR_CHIP_EC_FEATURE_HW398139==1); # dd1 (arbitrarily chosen, empirically found to be stable) 25, (ATTR_CHIP_EC_FEATURE_HW398139!=1); # dd2 (performance chosen) } # Temporary Boston Fix HW411339 for 1600 nest 2400 mem frequencies define def_mn_freq_ratio = (1000 * MCBIST.ATTR_MSS_FREQ) / SYS.ATTR_FREQ_PB_MHZ; espy MC01.PBI01.SCOMFIR.MCMODE2_FORCE_SFSTAT_ACTIVE [when=S && ATTR_CHIP_EC_FEATURE_HW411339] { spyv, expr; OFF, (def_mn_freq_ratio<=1350); # 1333 which is 2666/2000 (and lower ratios) will work as normal ON, (def_mn_freq_ratio>1350); # 1500 which is 2400/1600 will have sfsat/mdi always 1 } ################## # DD2 NEW SETTINGS ################## espy MC01.PBI01.SCOMFIR.MCMODE0_ENABLE_CENTAUR_SYNC [when=S && ATTR_CHIP_EC_FEATURE_NEW_MC_DD2_SETTINGS] { spyv; ON; } espy MC01.PBI01.SCOMFIR.MCMODE0_ENABLE_64_128B_READ [when=S && ATTR_CHIP_EC_FEATURE_NEW_MC_DD2_SETTINGS] { spyv; ON; } espy MC01.PBI01.SCOMFIR.MCMODE0_ENABLE_DROP_FP_DYN64_ACTIVE [when=S && ATTR_CHIP_EC_FEATURE_NEW_MC_DD2_SETTINGS] { spyv; ON; } ispy MC01.PBI01.SCOMFIR.MCPERF1_WRQ_CAPACITY_LIMIT [when=S && ATTR_CHIP_EC_FEATURE_NEW_MC_DD2_SETTINGS] { spyv; 0b001111; } ispy MC01.PBI01.SCOMFIR.MCMODE2_COLLISION_MODES [when=S && ATTR_CHIP_EC_FEATURE_NEW_MC_DD2_SETTINGS] { spyv; 0b0000000000001000; } espy MC01.PBI01.SCOMFIR.MCMODE0_CENTAURP_ENABLE_ECRESP [when=S && ATTR_CHIP_EC_FEATURE_NEW_MC_DD2_SETTINGS] { spyv; OFF; } espy MC01.PBI01.SCOMFIR.MCPERF1_ENABLE_PREFETCH_PROMOTE [when=S && ATTR_CHIP_EC_FEATURE_NEW_MC_DD2_SETTINGS] { spyv; ON; } # Dis Spec Ops for DCBFs (HW414958) dd1 and dd2 ispy MC01.PBI01.SCOMFIR.MCMODE1_DISABLE_SPEC_OP [when=S] { spyv; # Bit 45 of 33:51 field is DCBF type # 3333333444444444455 # 3456789012345678901 0b0000000000001000000; } ################# # DD2 WORKAROUNDS #################