Chip, boot, warm boot and diagnostics

Clocks, the Cancun/flex package, memory caching and scanning (soft-error protection), warm-boot storage, module start-up and diag-shell behaviour.

Set in several SONiC Trident 3 HWSKU files: cancun_dir, core_clock_frequency, disable_pcie_firmware_check, dpp_clock_ratio, help_cli_enable, mem_cache_enable, mem_scan_enable, memlist_enable, os, parity_correction, parity_enable, reglist_enable, scache_filename, skip_L2_USER_ENTRY, sram_scan_enable, stable_location, stable_size, table_dma_enable, warmboot_knet_shutdown_mode.

bcm_sdk_diag_run
Type:
string
bist_timeout_msec
Type:
number

Memory Built-In-Self-Test (BIST) timeout in milliseconds

board_name
Type:
string

Board driver name

cache_coherency_check
Type:
number
SONiC:

set in 1 Trident 3 HWSKU file; 0

cancun_debug_mode
Type:
number
Default:
0
cancun_dir
Type:
string

Directory with the Cancun (flex pipeline) package files. On SONiC the SAI uses sai_load_hw_config instead.

SONiC:

set in 3 Trident 3 HWSKU files; /usr/share/sonic/platform/cancun/sdk_6.5.16/

cancun_load_skip
Type:
number
Default:
0
cfap_tests
Type:
number

Select memory tests run by cfapinit (default MT_PAT_FIVES and MT_PAT_AS)

clear_on_hw_resetting
Type:
number
core_clock_frequency
Type:
number

Core clock in MHz; an unsupported value is ignored. Dell S5232F files set 1525.

SONiC:

set in 39 Trident 3 HWSKU files; 1525, 893, 445

custom_feature
Type:
number

Customer-specific features. Is used with a propery name suffix per feature. features will likely be specific to a certain device type.

Forms:

custom_feature_cmicx_ls_hw_cfg_async_enable<N>, custom_feature_cpu_port_priorities<N>, custom_feature_ptp_cosq_port<N>, custom_feature_unet_channels<N>

custom_feature_shel_arm_enable
Type:
number
Default:
0
dcb_intr_mitigate_enable
Type:
number

Packet DMA interrupts should be mitigated to improve performance

delay_core_pll_lock
Type:
number
diag_comma
Type:
number

ASCII comma character for show counters Use 44 for comma, 46 for period, 0 for none

diag_lb_fill_rx
Type:
number

Diagnostics loopback - if set to TRUE, all receive buffers are filled with 0xdeadbeef before DMAing into them. It is slow, but then you will know if loopback miscompares are due to skipped PCI writes.

diag_lb_packet_timeout
Type:
number

Diagnostics loopback (tr 17 through tr 24) timeout in seconds for loopback packet reception

diag_pw_buffer_size
Type:
number

When set to >= 68, packet watcher will run in truncating mode, allocating smaller Rx buffers and accepting oversized packets on all Rx DMA channels.

diag_pw_thread_pri
Type:
number

Packet watcher thread priority

diag_shell_exit_do_nothing
Type:
number

Do nothing when exit diag shell without “clean” option

diag_shell_use_slam
Type:
number

Use a bulk memory operation when writing multiple table entries in the CLI.

diag_tabs
Type:
number

Tab width for diagnostics (especially ‘show counters’)

disable_pcie_firmware_check
Type:
number
SONiC:

set in 6 Trident 3 HWSKU files; 1

dpp_clock_ratio
Type:
string

Ratio between the data-path pipeline clock and the core clock, as <n>:<m> (2:3 in Dell S5232F files).

SONiC:

set in 33 Trident 3 HWSKU files; 2:3

dpr_clock_frequency
Type:
number

DPR clock frequency applied to switch chip, any unsupported frequency will be ignored.

edk_init_disable
Type:
number
egr_share_flex_counter_pool
Type:
string

Specifies egress objects sharing same pool or using exclusive pool. Example: egr_share_flex_counter_pool=split(vlan,vfi) make egr_vlan, egr_vfi use exclusive pool. egr_share_flex_counter_pool=share(vlan,vfi) make egr_vlan, egr_vfi use same pool. An object can appear in both share case and split case, but in each case it can appear one time at most. Use token between each groups and use comma between each objects. eg: egr_share_flex_counter_pool=split(A,B,C);share(C,D); Some objects may use the same HW table, so only the first one will take effect. All valid egress object name: port, vlan, vlanxlate, vfi, l3intf, mimlookupid, l2gre, vxlan, l3nat, niv, wlan, mim.

enhanced_ser_correction_event_report
Type:
number
Default:
0

This soc property is used to enable enhanced SER correction event report mechanism (i.e. parity correction/ECC 1-bit correction/ECC 2-bit correction event are identified). 0 => Use the traditional SER correction event report mechanism: Report event with SOC_SWITCH_EVENT_DATA_ERROR_CORRECTED type for both parity and ECC error correction(including 1-bit and 2-bit). 1 => Use enhanced SER correction event report mechanism: Report event with SOC_SWITCH_EVENT_DATA_ERROR_ECC_1BIT_CORRECTED type for ECC 1-bit error correction. Report event with SOC_SWITCH_EVENT_DATA_ERROR_ECC_2BIT_CORRECTED type for ECC 2-bit error correction. Report event with SOC_SWITCH_EVENT_DATA_ERROR_PARITY_CORRECTED type for parity error correction.

fail_on_unsupported_attribute
Type:
number
Default:
0
failover_fixed_nh_offset_enable
Type:
number

Enable Tomahawk3-like L3/MPLS failover (protection switching) with fixed next hop offset from primary NH on EGR_L3_NEXT_HOP table. Set value 1 to enabled the feature and half of EGR_L3_NEXT_HOP is reserved for possible failover usage. Default value is 0 which disable the fixed next hop offset failover.

fc_coe_data_offset
Type:
number
Default:
24

define offset in bytes from after Ethernet Frame for COE FC data. Valid range = [0-31]

fifo_delay_value
Type:
number
fifo_overflow_threshhold
Type:
number
flex_stat_port_group_support
Type:
number
Default:
0

Enable grouping ports together and assigning single stat identifier. Default value is 0 which disables this feature.

flex_stat_share_enable
Type:
number
Default:
0

Once enabled, it will allow sharing flex statid across accounting objects. SDK will provide cumulative count for accounting objects sharing statid. User has to take great precaution in not sharing statid across conflicting accounting objects. Currently this config variable enables sharing statid for port module only.

force_read_through
Type:
number
help_cli_enable
Type:
number

Print a command’s usage after help <cmd>, ? <cmd> or unrecognised parameters; 0 suppresses it.

SONiC:

set in 10 Trident 3 HWSKU files; 1

On Seastone2:

help_cli_enable=1

ignore_device_unique_ids
Type:
list
ing_share_flex_counter_pool
Type:
string

Specifies ingress objects sharing same pool or using exclusive pool. Example: ing_share_flex_counter_pool=split(vlan,vfi) make vlan, vfi use exclusive pool. ing_share_flex_counter_pool=share(vlan,vfi) make vlan, vfi use same pool. An object can appear in both share case and split case, but in each case it can appear one time at most. Use token between each groups and use comma between each objects. eg: ing_share_flex_counter_pool=split(A,B,C);share(C,D); Some objects may use the same HW table, so only the first one will take effect. All valid object name: port, vlan, vlanxlate, vfi, l3intf, vrf, policy, mplsvclabel, mplsswitchlabel, mplsfrrlabel, l3host, trill, mimlookupid, l2gre, extpolicy, vxlan, vsan, fcoe, l3route, niv, ipmc.

init_all_modules
Type:
number

Initialise all SDK modules at init bcm, including those not needed by the application.

ipep_clock_gating_disable
Type:
number
Default:
0

This soc property is used to disable IP-EP clock gating for BCM5687x, BCM5677x, BCM5637x, BCM5647x and BCM5627x devices. This needs to be set if visibility feature is being used Example: ipep_clock_gating_disable=0 -> Default, enables clock gating during init for power saving ipep_clock_gating_disable=1 -> Disables IPEP clock gating during init, MUST for visibility feature.

load_firmware
Type:
number

Debug option for SerDes firmware loading: load method, checksum and verification. Leave unset.

Forms:

load_firmware_<port>, load_firmware_<type>, load_firmware

low_power
Type:
number

Enable all of the low power modes that the device/sw combination supported. 1 means enabling low power mode; 0 means disabling low power mode.

lw_set_up_reinit_skip
Type:
number
mem_cache_enable
Type:
number
Default:
1

Keep a software copy of hardware tables for faster reads and soft-error correction. The SAI sets it to 1 if the file does not; an explicit 0 is kept.

SONiC:

set in 34 Trident 3 HWSKU files; 0, 1

On Seastone2:

mem_cache_enable=1

mem_check_max_override
Type:
number
Default:
0

Check for mem max override properties and reconfigure memories.

mem_check_nocache_override
Type:
number
Default:
0

Check for mem no-cache override properties and avoid caching.

mem_clear_chunk_size
Type:
number
Default:
4096

The size in bytes of memory to be used when clearing a table using bulk table operations. The number of table entries cleared in one operation will vary by table entry width.

mem_clear_hw_acceleration
Type:
number
Default:
1

Clear tables using the fastest method supported by the device.

mem_nocache_<MEMORY>
Type:
number

Exclude one memory (named in upper case, as in listmem) from the SDK’s software table cache when mem_cache_enable is on.

Names:

mem_nocache_L3_DEFIP, mem_nocache_L3_DEFIP_ALPM_IPV4, mem_nocache_L3_DEFIP_ALPM_IPV4_1, mem_nocache_L3_DEFIP_ALPM_IPV6_128, mem_nocache_L3_DEFIP_ALPM_IPV6_64, mem_nocache_L3_DEFIP_ALPM_IPV6_64_1, mem_nocache_L3_DEFIP_AUX_TABLE, mem_nocache_L3_DEFIP_PAIR_128

mem_scan_chunk_size
Type:
number

Specifies the number of table entries to be retrieved at a time during memory scanning.

mem_scan_enable
Type:
number

Run the background memory scan that detects and corrects soft errors in tables.

SONiC:

set in 3 Trident 3 HWSKU files; 1

mem_scan_interval
Type:
number

Specifies the memory scan repeat interval.

mem_scan_non_tcam_iterations
Type:
number

Specifies how many non-TCAM cycles to perform for every complete TCAM sweep in memscan.

mem_scan_rate
Type:
number

Specifies the memory scan rate in terms of entries per pass.

mem_scan_thread_pri
Type:
number

Specifies the priority of the memory scanning and error correction thread

memcache_in_scache
Type:
number
memlist_enable
Type:
number

Allow listmem to list memories; read when the command runs.

SONiC:

set in 10 Trident 3 HWSKU files; 1

On Seastone2:

memlist_enable=1; not read by the SDK on that switch

num_subports
Type:
number
Default:
0

Maximum number of subports or packet processing ports per physical port. This can be used to distribute the total number of available subports across physical ports(cascaded port) suffix with .portX, .geX or _geX.

os
Type:
string

Operating system of the diag application (os=unix). Found in many SONiC Trident 3 files; the SAI does not use it.

SONiC:

set in 20 Trident 3 HWSKU files; unix

parity_correction
Type:
number

Correct parity and ECC errors from the software table cache when they are detected.

SONiC:

set in 10 Trident 3 HWSKU files; 1

parity_counter_clear
Type:
number
Default:
1

Control to clear or restore(last value accumulated in s/w) counter on parity error

parity_enable
Type:
number

Enable parity and ECC checking of on-chip memories and the soft-error interrupt handling.

Forms:

parity_enable_<port>, parity_enable_<type>, parity_enable

SONiC:

set in 23 Trident 3 HWSKU files; 1, 0

On Seastone2:

parity_enable=0

reg_ser_error_assert
Type:
number
reglist_enable
Type:
number

Allow listreg to list registers; read when the command runs.

SONiC:

set in 10 Trident 3 HWSKU files; 1

On Seastone2:

reglist_enable=1; not read by the SDK on that switch

scache_filename
Type:
string

Warm-boot state file. The SAI sets it from its own configuration (on SONiC /var/warmboot/brcm_bcm_scache) before reading the file.

SONiC:

set in 7 Trident 3 HWSKU files; /var/warmboot/wbscache, /tmp/scache

On Seastone2:

scache_filename=/var/warmboot/brcm_bcm_scache

ser_log_print_one
Type:
number
Default:
0
skip_<module>_init
Type:
number

Skip the start-up initialisation of one SDK module, for example skip_l3_init=1. The module is then unusable until it is initialised by hand. For bring-up and debugging only; never set on a SONiC switch.

Names:

skip_auth_init, skip_common_init, skip_cosq_init, skip_field_init, skip_hash_init, skip_ipmc_init, skip_l2_vlan_init, skip_l3_init, skip_mcast_init, skip_mim_init, skip_mirror_init, skip_mpls_init, skip_partial_port_hw_init, skip_port_hw_init, skip_qos_init, skip_stack_init, skip_stat_init, skip_trunk_init

skip_cancun_cch_reg_check
Type:
number
skip_L2_USER_ENTRY
Type:
number
Default:
0

Skip creating the default L2 user entries at start-up.

SONiC:

set in 10 Trident 3 HWSKU files; 0

skip_system_scrub
Type:
number
Default:
0
soc_family
Type:
string

Map a chip to a family. This is used in order to map several chips which require similar soc properties to a family, and than use the family as the property suffix. E.g, map chip X and Y to family Z, and than one can define property.Z than will be recognized by both X and Y.

soc_mem_bulk_schan_op_mode
Type:
string

Specifies S-Channel method/engine used for SOC memory bulk operations soc_mem_bulk_XXX(). FIFO - S-Channel FIFO engine is SBUS master. PIO - S-Channel PIO engine is SBUS master. FIFO engine is the recommended as default SBUS master for better performance. PIO mode is useful for debugging and performance comparison.

soc_skip_reset
Type:
number
Default:
0

Skip hardware reset (CMIC_CONFIG.RESET_CPS) when calling soc_reset(). This means that e.g. ‘init soc’ will NOT perform a hard reset.

sram_scan_chunk_size
Type:
number

Specifies the number of table entries to be retrieved at a time during sram scanning.

sram_scan_enable
Type:
number
Default:
1

Run the background SRAM soft-error scan. The SAI sets it to 1 if the file does not.

SONiC:

set in 3 Trident 3 HWSKU files; 0

On Seastone2:

sram_scan_enable=1; not read by the SDK on that switch

sram_scan_interval
Type:
number

Specifies the sram scan repeat interval.

sram_scan_rate
Type:
number

Specifies the sram scan rate in terms of entries per pass.

sram_scan_thread_pri
Type:
number

Specifies the priority of the sram scanning and error correction thread

ss_ignore_pbmp
Type:
number

Specifies the port bitmap of the ports on which system snake should be skipped.

stable_filename
Type:
string

File used for warm-boot state when stable_location is 3.

stable_flags
Type:
number

Specify the stable cache flags to configure Warm Boot operations

stable_location
Type:
number

Where warm-boot state is kept (memory, file or shared memory).

SONiC:

set in 4 Trident 3 HWSKU files; 3

stable_size
Type:
number

Size in bytes of the warm-boot state area (scache). SONiC files use 0x5500000.

SONiC:

set in 44 Trident 3 HWSKU files; 0x5500000, 0x55000000, 0x6400000

On Seastone2:

stable_size=0x5500000

table_dma_enable
Type:
number
Default:
1

Read whole tables by DMA instead of one entry at a time.

SONiC:

set in 8 Trident 3 HWSKU files; 1

temp_monitor_select
Type:
number

Select which on-chip temperature sensors the SDK monitors.

uat_mode
Type:
number
Default:
0
warmboot_event_handler_enable
Type:
number

Register Warm Boot event handler callback routine

warmboot_knet_shutdown_mode
Type:
number
Default:
0

This soc property is to indicate if shutdown KNET during doing warmboot. 0-shutdown by default 1-no shutdown

SONiC:

set in 4 Trident 3 HWSKU files; 1