xref: /openbmc/openpower-debug-collector/dump/tools/common/include/gendumpheader (revision 05dfcaac8a9795b4e6634ad14a15899d8fb730b7)
165d15fb3SDhruvaraj Subhashchandran#!/bin/bash
265d15fb3SDhruvaraj Subhashchandran#
365d15fb3SDhruvaraj Subhashchandran#Header for BMC DUMP
465d15fb3SDhruvaraj Subhashchandran#This script will create header file only for IBM systems.
565d15fb3SDhruvaraj Subhashchandran#This script will generate generic IBM dump header format.
665d15fb3SDhruvaraj Subhashchandran#
765d15fb3SDhruvaraj Subhashchandran#Note: The dump header will be imposed on the dump file i.e
865d15fb3SDhruvaraj Subhashchandran#<dump name>.tar.xz/gz only on IBM specific systems, user needs to
965d15fb3SDhruvaraj Subhashchandran#separate out the header before extracting the dump.
1065d15fb3SDhruvaraj Subhashchandran#
1165d15fb3SDhruvaraj Subhashchandran
1265d15fb3SDhruvaraj Subhashchandran#Constants
1365d15fb3SDhruvaraj Subhashchandrandeclare -rx DUMP_HEADER_ENTRY_SIZE='516'
1465d15fb3SDhruvaraj Subhashchandrandeclare -rx SIZE_4='4'
1565d15fb3SDhruvaraj Subhashchandrandeclare -rx SIZE_8='8'
1665d15fb3SDhruvaraj Subhashchandrandeclare -rx SIZE_12='12'
1765d15fb3SDhruvaraj Subhashchandrandeclare -rx SIZE_32='32'
1865d15fb3SDhruvaraj Subhashchandran#Dump Summary size without header
1965d15fb3SDhruvaraj Subhashchandrandeclare -rx DUMP_SUMMARY_SIZE='1024'
2065d15fb3SDhruvaraj Subhashchandrandeclare -rx HW_DUMP='00'
2165d15fb3SDhruvaraj Subhashchandrandeclare -rx HB_DUMP='20'
2265d15fb3SDhruvaraj Subhashchandrandeclare -rx SBE_DUMP='30'
2365d15fb3SDhruvaraj Subhashchandrandeclare -rx OP_DUMP="opdump"
2465d15fb3SDhruvaraj Subhashchandrandeclare -rx INVENTORY_MANAGER='xyz.openbmc_project.Inventory.Manager'
2565d15fb3SDhruvaraj Subhashchandrandeclare -rx INVENTORY_PATH='/xyz/openbmc_project/inventory/system'
2665d15fb3SDhruvaraj Subhashchandrandeclare -rx INVENTORY_ASSET_INT='xyz.openbmc_project.Inventory.Decorator.Asset'
2765d15fb3SDhruvaraj Subhashchandrandeclare -rx INVENTORY_BMC_BOARD='/xyz/openbmc_project/inventory/system/chassis/motherboard'
2865d15fb3SDhruvaraj Subhashchandrandeclare -rx PHOSPHOR_LOGGING='xyz.openbmc_project.Logging'
2965d15fb3SDhruvaraj Subhashchandrandeclare -rx PEL_ENTRY='org.open_power.Logging.PEL.Entry'
3065d15fb3SDhruvaraj Subhashchandrandeclare -rx PEL_ID_PROP='PlatformLogID'
3165d15fb3SDhruvaraj Subhashchandran
3265d15fb3SDhruvaraj Subhashchandran#Variables
3365d15fb3SDhruvaraj Subhashchandrandeclare -x modelNo
3465d15fb3SDhruvaraj SubhashchandranmodelNo=$(busctl get-property $INVENTORY_MANAGER $INVENTORY_PATH \
3565d15fb3SDhruvaraj Subhashchandran    $INVENTORY_ASSET_INT Model | cut -d " " -f 2 | sed "s/^\(\"\)\(.*\)\1\$/\2/g")
36*05dfcaacSGopichand Paturi
3765d15fb3SDhruvaraj Subhashchandran#Variables
38*05dfcaacSGopichand Paturideclare -x serialNo="0000000"
39*05dfcaacSGopichand Paturi
4065d15fb3SDhruvaraj Subhashchandrandeclare -x dDay
4165d15fb3SDhruvaraj SubhashchandrandDay=$(date -d @"$EPOCHTIME" +'%Y%m%d%H%M%S')
4265d15fb3SDhruvaraj Subhashchandrandeclare -x bmcSerialNo
4365d15fb3SDhruvaraj SubhashchandranbmcSerialNo=$(busctl call $INVENTORY_MANAGER $INVENTORY_BMC_BOARD \
4465d15fb3SDhruvaraj Subhashchandran        org.freedesktop.DBus.Properties Get ss $INVENTORY_ASSET_INT \
4565d15fb3SDhruvaraj Subhashchandran    SerialNumber | cut -d " " -f 3 | sed "s/^\(\"\)\(.*\)\1\$/\2/g")
4665d15fb3SDhruvaraj Subhashchandran
47*05dfcaacSGopichand Paturi#Source common functions
48*05dfcaacSGopichand Paturi. $DREPORT_INCLUDE/opfunctions
49*05dfcaacSGopichand Paturi
5065d15fb3SDhruvaraj Subhashchandran#Function to add NULL
5165d15fb3SDhruvaraj Subhashchandranfunction add_null() {
5265d15fb3SDhruvaraj Subhashchandran    local a=$1
5365d15fb3SDhruvaraj Subhashchandran    printf '%*s' $a | tr ' ' "\0" >> $FILE
5465d15fb3SDhruvaraj Subhashchandran}
5565d15fb3SDhruvaraj Subhashchandran
561bee03b8SSwarnendu-R-C# Function to add Originator details to dump header
571bee03b8SSwarnendu-R-Cfunction add_originator_details() {
581bee03b8SSwarnendu-R-C    if [ -z "$ORIGINATOR_TYPE" ]; then
591bee03b8SSwarnendu-R-C        add_null 4
601bee03b8SSwarnendu-R-C    else
611bee03b8SSwarnendu-R-C        len=${#ORIGINATOR_TYPE}
621bee03b8SSwarnendu-R-C        nulltoadd=$(( SIZE_4 - len ))
631bee03b8SSwarnendu-R-C        printf '%s' "$ORIGINATOR_TYPE" >> "$FILE"
641bee03b8SSwarnendu-R-C        if [ "$nulltoadd" -gt 0 ]; then
651bee03b8SSwarnendu-R-C            add_null "$nulltoadd"
661bee03b8SSwarnendu-R-C        fi
671bee03b8SSwarnendu-R-C    fi
681bee03b8SSwarnendu-R-C
691bee03b8SSwarnendu-R-C    if [ -z "$ORIGINATOR_ID" ]; then
701bee03b8SSwarnendu-R-C        add_null 32
711bee03b8SSwarnendu-R-C    else
721bee03b8SSwarnendu-R-C        len=${#ORIGINATOR_ID}
731bee03b8SSwarnendu-R-C        nulltoadd=$(( SIZE_32 - len ))
741bee03b8SSwarnendu-R-C        printf '%s' "$ORIGINATOR_ID" >> "$FILE"
751bee03b8SSwarnendu-R-C        if [ "$nulltoadd" -gt 0 ]; then
761bee03b8SSwarnendu-R-C            add_null "$nulltoadd"
771bee03b8SSwarnendu-R-C        fi
781bee03b8SSwarnendu-R-C    fi
791bee03b8SSwarnendu-R-C}
801bee03b8SSwarnendu-R-C
8165d15fb3SDhruvaraj Subhashchandran#Function to is to convert the EPOCHTIME collected
8265d15fb3SDhruvaraj Subhashchandran#from dreport into hex values and write the same in
8365d15fb3SDhruvaraj Subhashchandran#header.
8465d15fb3SDhruvaraj Subhashchandranfunction dump_time() {
8565d15fb3SDhruvaraj Subhashchandran    x=${#dDay}
8665d15fb3SDhruvaraj Subhashchandran    msize=`expr $x / 2`
8765d15fb3SDhruvaraj Subhashchandran    msize=`expr $SIZE_8 - $msize`
8865d15fb3SDhruvaraj Subhashchandran    for ((i=0;i<$x;i+=2));
8965d15fb3SDhruvaraj Subhashchandran    do
9065d15fb3SDhruvaraj Subhashchandran        printf \\x${dDay:$i:2} >> $FILE
9165d15fb3SDhruvaraj Subhashchandran    done
9265d15fb3SDhruvaraj Subhashchandran    add_null $msize
9365d15fb3SDhruvaraj Subhashchandran}
9465d15fb3SDhruvaraj Subhashchandran
9565d15fb3SDhruvaraj Subhashchandran#Function to fetch the size of the dump
9665d15fb3SDhruvaraj Subhashchandranfunction dump_size() {
9765d15fb3SDhruvaraj Subhashchandran    #Adding 516 bytes as the total dump size is dump tar size
9865d15fb3SDhruvaraj Subhashchandran    #plus the dump header entry in this case
9965d15fb3SDhruvaraj Subhashchandran    #dump_header and dump_entry
10065d15fb3SDhruvaraj Subhashchandran    # shellcheck disable=SC2154 # name_dir comes from elsewhere.
10165d15fb3SDhruvaraj Subhashchandran    dumpSize=$(stat -c %s "$name_dir.bin")
10265d15fb3SDhruvaraj Subhashchandran    sizeDump=$(( dumpSize + DUMP_HEADER_ENTRY_SIZE ))
10365d15fb3SDhruvaraj Subhashchandran    printf -v hex "%x" "$sizeDump"
10465d15fb3SDhruvaraj Subhashchandran    x=${#hex}
10565d15fb3SDhruvaraj Subhashchandran    if [ $(($x % 2)) -eq 1 ]; then
10665d15fb3SDhruvaraj Subhashchandran        hex=0$hex
10765d15fb3SDhruvaraj Subhashchandran        x=${#hex}
10865d15fb3SDhruvaraj Subhashchandran    fi
10965d15fb3SDhruvaraj Subhashchandran    msize=`expr $x / 2`
11065d15fb3SDhruvaraj Subhashchandran    msize=`expr $SIZE_8 - $msize`
11165d15fb3SDhruvaraj Subhashchandran    add_null $msize
11265d15fb3SDhruvaraj Subhashchandran    for ((i=0;i<$x;i+=2));
11365d15fb3SDhruvaraj Subhashchandran    do
11465d15fb3SDhruvaraj Subhashchandran        printf \\x${hex:$i:2} >> $FILE
11565d15fb3SDhruvaraj Subhashchandran    done
11665d15fb3SDhruvaraj Subhashchandran}
11765d15fb3SDhruvaraj Subhashchandran
11865d15fb3SDhruvaraj Subhashchandran#Function to set dump id to 8 bytes format
11965d15fb3SDhruvaraj Subhashchandranfunction get_dump_id() {
12065d15fb3SDhruvaraj Subhashchandran    # shellcheck disable=SC2154
12165d15fb3SDhruvaraj Subhashchandran    size=${#dump_id}
12265d15fb3SDhruvaraj Subhashchandran    if [ "$1" == "$OP_DUMP" ]; then
12365d15fb3SDhruvaraj Subhashchandran        nulltoadd=$(( SIZE_4 - size / 2 - size % 2 ))
12465d15fb3SDhruvaraj Subhashchandran        add_null "$nulltoadd"
12565d15fb3SDhruvaraj Subhashchandran        for ((i=0;i<size;i+=2));
12665d15fb3SDhruvaraj Subhashchandran        do
12765d15fb3SDhruvaraj Subhashchandran            # shellcheck disable=SC2059
12865d15fb3SDhruvaraj Subhashchandran            printf "\\x${dump_id:$i:2}" >> "$FILE"
12965d15fb3SDhruvaraj Subhashchandran        done
13065d15fb3SDhruvaraj Subhashchandran    else
13165d15fb3SDhruvaraj Subhashchandran        nulltoadd=$(( SIZE_8 - size ))
13265d15fb3SDhruvaraj Subhashchandran        printf '%*s' "$nulltoadd" | tr ' ' "0" >> "$FILE"
13365d15fb3SDhruvaraj Subhashchandran        printf "%s" "$dump_id" >> "$FILE"
13465d15fb3SDhruvaraj Subhashchandran    fi
13565d15fb3SDhruvaraj Subhashchandran}
13665d15fb3SDhruvaraj Subhashchandran
13765d15fb3SDhruvaraj Subhashchandran#Function to get the bmc serial number
13865d15fb3SDhruvaraj Subhashchandranfunction getbmc_serial() {
13965d15fb3SDhruvaraj Subhashchandran    x=${#bmcSerialNo}
14065d15fb3SDhruvaraj Subhashchandran    nulltoadd=`expr $SIZE_12 - $x`
14165d15fb3SDhruvaraj Subhashchandran    printf $bmcSerialNo >> $FILE
14265d15fb3SDhruvaraj Subhashchandran    printf '%*s' $nulltoadd | tr ' ' "0" >> $FILE
14365d15fb3SDhruvaraj Subhashchandran}
14465d15fb3SDhruvaraj Subhashchandran
14565d15fb3SDhruvaraj Subhashchandran#Function to fetch the hostname
14665d15fb3SDhruvaraj Subhashchandranfunction system_name() {
14765d15fb3SDhruvaraj Subhashchandran    name=$(hostname)
14865d15fb3SDhruvaraj Subhashchandran    len=${#name}
14965d15fb3SDhruvaraj Subhashchandran    nulltoadd=$(( SIZE_32 - len ))
15065d15fb3SDhruvaraj Subhashchandran    printf "%s" "$name" >> "$FILE"
15165d15fb3SDhruvaraj Subhashchandran    add_null "$nulltoadd"
15265d15fb3SDhruvaraj Subhashchandran}
15365d15fb3SDhruvaraj Subhashchandran
15465d15fb3SDhruvaraj Subhashchandran#Function to get the errorlog ID
15565d15fb3SDhruvaraj Subhashchandranfunction get_eid() {
15665d15fb3SDhruvaraj Subhashchandran    # shellcheck disable=SC2154 # dump_type comes from elsewhere
15765d15fb3SDhruvaraj Subhashchandran    if [ "$dump_type" = "$OP_DUMP" ]; then
15865d15fb3SDhruvaraj Subhashchandran        # shellcheck disable=SC2154 # elog_id comes from elsewhere
15965d15fb3SDhruvaraj Subhashchandran        x=${#elog_id}
16065d15fb3SDhruvaraj Subhashchandran        if [ "$x" = 8 ]; then
16165d15fb3SDhruvaraj Subhashchandran            msize=$(( x / 2 ))
16265d15fb3SDhruvaraj Subhashchandran            msize=$(( SIZE_4 - msize ))
16365d15fb3SDhruvaraj Subhashchandran            for ((i=0;i<x;i+=2));
16465d15fb3SDhruvaraj Subhashchandran            do
16565d15fb3SDhruvaraj Subhashchandran                printf "\\x${elog_id:$i:2}" >> "$FILE"
16665d15fb3SDhruvaraj Subhashchandran            done
16765d15fb3SDhruvaraj Subhashchandran            add_null "$msize"
16865d15fb3SDhruvaraj Subhashchandran        else
16965d15fb3SDhruvaraj Subhashchandran            add_null 4
17065d15fb3SDhruvaraj Subhashchandran        fi
17165d15fb3SDhruvaraj Subhashchandran    else
17265d15fb3SDhruvaraj Subhashchandran        if ! { [[ $dump_type = "$TYPE_ELOG" ]] || \
17365d15fb3SDhruvaraj Subhashchandran                [[ $dump_type = "$TYPE_CHECKSTOP" ]]; }; then
17465d15fb3SDhruvaraj Subhashchandran            x=${#elog_id}
17565d15fb3SDhruvaraj Subhashchandran            if [ "$x" = 8 ]; then
17665d15fb3SDhruvaraj Subhashchandran                for ((i=0;i<x;i+=2));
17765d15fb3SDhruvaraj Subhashchandran                do
17865d15fb3SDhruvaraj Subhashchandran                    printf "\\x${elog_id:$i:2}" >> "$FILE"
17965d15fb3SDhruvaraj Subhashchandran                done
18065d15fb3SDhruvaraj Subhashchandran            else
18165d15fb3SDhruvaraj Subhashchandran                add_null 4
18265d15fb3SDhruvaraj Subhashchandran            fi
18365d15fb3SDhruvaraj Subhashchandran        else
18465d15fb3SDhruvaraj Subhashchandran            strpelid=$(busctl get-property $PHOSPHOR_LOGGING \
18565d15fb3SDhruvaraj Subhashchandran                $optional_path $PEL_ENTRY $PEL_ID_PROP | cut -d " " -f 2)
18665d15fb3SDhruvaraj Subhashchandran            decpelid=$(expr "$strpelid" + 0)
18765d15fb3SDhruvaraj Subhashchandran            hexpelid=$(printf "%x" "$decpelid")
18865d15fb3SDhruvaraj Subhashchandran            x=${#hexpelid}
18965d15fb3SDhruvaraj Subhashchandran            if [ "$x" = 8 ]; then
19065d15fb3SDhruvaraj Subhashchandran                for ((i=0;i<x;i+=2));
19165d15fb3SDhruvaraj Subhashchandran                do
19265d15fb3SDhruvaraj Subhashchandran                    printf "\\x${hexpelid:$i:2}" >> "$FILE"
19365d15fb3SDhruvaraj Subhashchandran                done
19465d15fb3SDhruvaraj Subhashchandran            else
19565d15fb3SDhruvaraj Subhashchandran                add_null 4
19665d15fb3SDhruvaraj Subhashchandran            fi
19765d15fb3SDhruvaraj Subhashchandran        fi
19865d15fb3SDhruvaraj Subhashchandran    fi
19965d15fb3SDhruvaraj Subhashchandran}
20065d15fb3SDhruvaraj Subhashchandran
20165d15fb3SDhruvaraj Subhashchandran#Function to get the tar size of the dump
20265d15fb3SDhruvaraj Subhashchandranfunction tar_size() {
20365d15fb3SDhruvaraj Subhashchandran    printf -v hex "%x" "$size_dump"
20465d15fb3SDhruvaraj Subhashchandran    x=${#hex}
20565d15fb3SDhruvaraj Subhashchandran    if [ $((x % 2)) -eq 1 ]; then
20665d15fb3SDhruvaraj Subhashchandran        hex=0$hex
20765d15fb3SDhruvaraj Subhashchandran        x=${#hex}
20865d15fb3SDhruvaraj Subhashchandran    fi
20965d15fb3SDhruvaraj Subhashchandran    msize=$(( x / 2 ))
21065d15fb3SDhruvaraj Subhashchandran    msize=$(( SIZE_4 - msize ))
21165d15fb3SDhruvaraj Subhashchandran    add_null "$msize"
21265d15fb3SDhruvaraj Subhashchandran    for ((i=0;i<x;i+=2));
21365d15fb3SDhruvaraj Subhashchandran    do
21465d15fb3SDhruvaraj Subhashchandran        # shellcheck disable=SC2059 # using 'hex' as a variable is safe here.
21565d15fb3SDhruvaraj Subhashchandran        printf "\\x${hex:$i:2}" >> "$FILE"
21665d15fb3SDhruvaraj Subhashchandran    done
21765d15fb3SDhruvaraj Subhashchandran}
21865d15fb3SDhruvaraj Subhashchandran
21965d15fb3SDhruvaraj Subhashchandran#Function will get the total size of the dump without header
22065d15fb3SDhruvaraj Subhashchandran# i.e. Dump summary size i.e. 1024 bytes + the tar file size
22165d15fb3SDhruvaraj Subhashchandranfunction total_size() {
22265d15fb3SDhruvaraj Subhashchandran    size_dump=$(( size_dump + DUMP_SUMMARY_SIZE ))
22365d15fb3SDhruvaraj Subhashchandran    printf -v hex "%x" "$size_dump"
22465d15fb3SDhruvaraj Subhashchandran    x=${#hex}
22565d15fb3SDhruvaraj Subhashchandran    if [ $((x % 2)) -eq 1 ]; then
22665d15fb3SDhruvaraj Subhashchandran        hex=0$hex
22765d15fb3SDhruvaraj Subhashchandran        x=${#hex}
22865d15fb3SDhruvaraj Subhashchandran    fi
22965d15fb3SDhruvaraj Subhashchandran    msize=$(( x / 2 ))
23065d15fb3SDhruvaraj Subhashchandran    msize=$(( SIZE_8 - msize ))
23165d15fb3SDhruvaraj Subhashchandran    add_null "$msize"
23265d15fb3SDhruvaraj Subhashchandran    for ((i=0;i<x;i+=2));
23365d15fb3SDhruvaraj Subhashchandran    do
23465d15fb3SDhruvaraj Subhashchandran        # shellcheck disable=SC2059 # using 'hex' as a variable is safe here.
23565d15fb3SDhruvaraj Subhashchandran        printf "\\x${hex:$i:2}" >> "$FILE"
23665d15fb3SDhruvaraj Subhashchandran    done
23765d15fb3SDhruvaraj Subhashchandran}
23865d15fb3SDhruvaraj Subhashchandran
23965d15fb3SDhruvaraj Subhashchandran#Function to populate content type based on dump type
24065d15fb3SDhruvaraj Subhashchandranfunction content_type() {
24165d15fb3SDhruvaraj Subhashchandran    type="00000000"
24265d15fb3SDhruvaraj Subhashchandran    # content type:
24365d15fb3SDhruvaraj Subhashchandran    # Hostboot dump = "20"
24465d15fb3SDhruvaraj Subhashchandran    # Hardware dump = "00"
24565d15fb3SDhruvaraj Subhashchandran    # SBE dump = "30"
24665d15fb3SDhruvaraj Subhashchandran    if [ "$dump_content_type" = "$HB_DUMP" ]; then
24765d15fb3SDhruvaraj Subhashchandran        type="00000200"
24865d15fb3SDhruvaraj Subhashchandran    elif [ "$dump_content_type" = "$HW_DUMP" ]; then
24965d15fb3SDhruvaraj Subhashchandran        type="40000000"
25065d15fb3SDhruvaraj Subhashchandran    elif [ "$dump_content_type" = "$SBE_DUMP" ]; then
25165d15fb3SDhruvaraj Subhashchandran        type="02000000"
25265d15fb3SDhruvaraj Subhashchandran    fi
25365d15fb3SDhruvaraj Subhashchandran    x=${#type}
25465d15fb3SDhruvaraj Subhashchandran    for ((i=0;i<$x;i+=2));
25565d15fb3SDhruvaraj Subhashchandran    do
25665d15fb3SDhruvaraj Subhashchandran        # shellcheck disable=SC2059 # using 'type' as a variable is safe here.
25765d15fb3SDhruvaraj Subhashchandran        printf "\\x${type:$i:2}" >> "$FILE"
25865d15fb3SDhruvaraj Subhashchandran    done
25965d15fb3SDhruvaraj Subhashchandran}
26065d15fb3SDhruvaraj Subhashchandran
26165d15fb3SDhruvaraj Subhashchandran# @brief Fetching model number and serial number property from inventory
26265d15fb3SDhruvaraj Subhashchandran#  If the busctl command fails, populating the model and serial number
26365d15fb3SDhruvaraj Subhashchandran#  with default value i.e. 0
26465d15fb3SDhruvaraj Subhashchandranfunction get_bmc_model_serial_number() {
26565d15fb3SDhruvaraj Subhashchandran    modelNo=$(busctl get-property $INVENTORY_MANAGER $INVENTORY_PATH \
26665d15fb3SDhruvaraj Subhashchandran        $INVENTORY_ASSET_INT Model | cut -d " " -f 2 | sed "s/^\(\"\)\(.*\)\1\$/\2/g")
26765d15fb3SDhruvaraj Subhashchandran
26865d15fb3SDhruvaraj Subhashchandran    if [ -z "$modelNo" ]; then
26965d15fb3SDhruvaraj Subhashchandran        modelNo="00000000"
27065d15fb3SDhruvaraj Subhashchandran    fi
27165d15fb3SDhruvaraj Subhashchandran
27265d15fb3SDhruvaraj Subhashchandran    bmcSerialNo=$(busctl call $INVENTORY_MANAGER $INVENTORY_BMC_BOARD \
27365d15fb3SDhruvaraj Subhashchandran            org.freedesktop.DBus.Properties Get ss $INVENTORY_ASSET_INT \
27465d15fb3SDhruvaraj Subhashchandran        SerialNumber | cut -d " " -f 3 | sed "s/^\(\"\)\(.*\)\1\$/\2/g")
27565d15fb3SDhruvaraj Subhashchandran
27665d15fb3SDhruvaraj Subhashchandran    if [ -z "$bmcSerialNo" ]; then
27765d15fb3SDhruvaraj Subhashchandran        bmcSerialNo="000000000000"
27865d15fb3SDhruvaraj Subhashchandran    fi
27965d15fb3SDhruvaraj Subhashchandran}
28065d15fb3SDhruvaraj Subhashchandran
28165d15fb3SDhruvaraj Subhashchandran#Function to add virtual file directory entry, consists of below entries
28265d15fb3SDhruvaraj Subhashchandran####################FORMAT################
28365d15fb3SDhruvaraj Subhashchandran#Name              Size(bytes)  Value
28465d15fb3SDhruvaraj Subhashchandran#Entry Header      8            FILE
28565d15fb3SDhruvaraj Subhashchandran#Entry Size        2            0x0040
28665d15fb3SDhruvaraj Subhashchandran#Reserved          10           NULL
28765d15fb3SDhruvaraj Subhashchandran#Entry Type        2            0x0001
28865d15fb3SDhruvaraj Subhashchandran#File Name Prefix  2            0x000F
28965d15fb3SDhruvaraj Subhashchandran#Dump File Type    7            BMCDUMP/SYSDUMP/NAGDUMP
29065d15fb3SDhruvaraj Subhashchandran#Separator         1            .
29165d15fb3SDhruvaraj Subhashchandran#System Serial No  7            System serial number fetched from system
29265d15fb3SDhruvaraj Subhashchandran#Dump Identifier   8            Dump Identifier value fetched from dump
29365d15fb3SDhruvaraj Subhashchandran#Separator         1            .
29465d15fb3SDhruvaraj Subhashchandran#Time stamp        14           Form should be yyyymmddhhmmss
29565d15fb3SDhruvaraj Subhashchandran#Null Terminator   1            0x00
29665d15fb3SDhruvaraj Subhashchandranfunction dump_file_entry() {
29765d15fb3SDhruvaraj Subhashchandran    printf "FILE    " >> $FILE
29865d15fb3SDhruvaraj Subhashchandran    add_null 1
29965d15fb3SDhruvaraj Subhashchandran    printf '\x40' >> $FILE #Virtual file directory entry size
30065d15fb3SDhruvaraj Subhashchandran    add_null 11
30165d15fb3SDhruvaraj Subhashchandran    printf '\x01' >> $FILE
30265d15fb3SDhruvaraj Subhashchandran    add_null 1
30365d15fb3SDhruvaraj Subhashchandran    printf '\x0F' >> "$FILE"
30465d15fb3SDhruvaraj Subhashchandran    if [ "$dump_type" = "$OP_DUMP" ]; then
30565d15fb3SDhruvaraj Subhashchandran        printf "SYSDUMP.%s." "$serialNo" >> "$FILE"
30665d15fb3SDhruvaraj Subhashchandran    else
30765d15fb3SDhruvaraj Subhashchandran        printf "%s.%s." "$header_dump_name" "$serialNo" >> "$FILE"
30865d15fb3SDhruvaraj Subhashchandran    fi
30965d15fb3SDhruvaraj Subhashchandran    get_dump_id
31065d15fb3SDhruvaraj Subhashchandran    printf "." >> $FILE
31165d15fb3SDhruvaraj Subhashchandran    printf $dDay >> $FILE  #UTC time stamp
31265d15fb3SDhruvaraj Subhashchandran    add_null 1
31365d15fb3SDhruvaraj Subhashchandran}
31465d15fb3SDhruvaraj Subhashchandran
31565d15fb3SDhruvaraj Subhashchandran#Function section directory entry, consists of below entries
31665d15fb3SDhruvaraj Subhashchandran####################FORMAT################
31765d15fb3SDhruvaraj Subhashchandran#Name              Size(bytes)  Value
31865d15fb3SDhruvaraj Subhashchandran#Entry Header      8            SECTION
31965d15fb3SDhruvaraj Subhashchandran#Entry Size        2            0x0030
32065d15fb3SDhruvaraj Subhashchandran#Section Priority  2            0x0000
32165d15fb3SDhruvaraj Subhashchandran#Reserved          4            NULL
32265d15fb3SDhruvaraj Subhashchandran#Entry Flags       4            0x00000001
32365d15fb3SDhruvaraj Subhashchandran#Entry Types       2            0x0002
32465d15fb3SDhruvaraj Subhashchandran#Reserved          2            NULL
32565d15fb3SDhruvaraj Subhashchandran#Dump Size         8            Dump size in hex + dump header
32665d15fb3SDhruvaraj Subhashchandran#Optional Section  16           BMCDUMP/NAGDUMP/DUMP SUMMARY
32765d15fb3SDhruvaraj Subhashchandranfunction dump_section_entry() {
32865d15fb3SDhruvaraj Subhashchandran    printf "SECTION " >> $FILE
32965d15fb3SDhruvaraj Subhashchandran    add_null 1
33065d15fb3SDhruvaraj Subhashchandran    printf '\x30' >> "$FILE" #Section entry size
33165d15fb3SDhruvaraj Subhashchandran    add_null 9
33265d15fb3SDhruvaraj Subhashchandran    if [ "$dump_type" = "$OP_DUMP" ]; then
33365d15fb3SDhruvaraj Subhashchandran        add_null 1
33465d15fb3SDhruvaraj Subhashchandran    else
33565d15fb3SDhruvaraj Subhashchandran        printf '\x01' >> "$FILE"
33665d15fb3SDhruvaraj Subhashchandran    fi
33765d15fb3SDhruvaraj Subhashchandran    add_null 1
33865d15fb3SDhruvaraj Subhashchandran    printf '\x02' >> "$FILE"
33965d15fb3SDhruvaraj Subhashchandran    add_null 2
34065d15fb3SDhruvaraj Subhashchandran    if [ "$dump_type" = "$OP_DUMP" ]; then
34165d15fb3SDhruvaraj Subhashchandran        add_null 6
34265d15fb3SDhruvaraj Subhashchandran        printf '\x04' >> "$FILE"
34365d15fb3SDhruvaraj Subhashchandran        add_null 1
34465d15fb3SDhruvaraj Subhashchandran        printf "DUMP SUMMARY" >> "$FILE"
34565d15fb3SDhruvaraj Subhashchandran        add_null 4
34665d15fb3SDhruvaraj Subhashchandran    else
34765d15fb3SDhruvaraj Subhashchandran        dump_size    #Dump size
34865d15fb3SDhruvaraj Subhashchandran        printf "%s" "$header_dump_name" >> "$FILE"
34965d15fb3SDhruvaraj Subhashchandran        add_null 9
35065d15fb3SDhruvaraj Subhashchandran    fi
35165d15fb3SDhruvaraj Subhashchandran}
35265d15fb3SDhruvaraj Subhashchandran
35365d15fb3SDhruvaraj Subhashchandran#Function to add dump header, consists of below entries
35465d15fb3SDhruvaraj Subhashchandran####################FORMAT################
35565d15fb3SDhruvaraj Subhashchandran#Name              Size(bytes)  Value
35665d15fb3SDhruvaraj Subhashchandran#Dump type         8            BMC/NAG DUMP
35765d15fb3SDhruvaraj Subhashchandran#Dump Request time 8            Dump request time stamp (in BCD)
358eb46252dSManojkiran Eda#Dump Identifier   4            Dump identifier fetched from dump
35965d15fb3SDhruvaraj Subhashchandran#Dump version      2            0x0210
36065d15fb3SDhruvaraj Subhashchandran#Dump header       2            0x200
36165d15fb3SDhruvaraj Subhashchandran#Total dump size   8            Dump size + dump header
36265d15fb3SDhruvaraj Subhashchandran#Panel function    32           System model, feature, type and IPL mode
36365d15fb3SDhruvaraj Subhashchandran#System Name       32           System Name (in ASCII)
36465d15fb3SDhruvaraj Subhashchandran#Serial number     7            System serial number
36565d15fb3SDhruvaraj Subhashchandran#Reserved          1            NULL
36665d15fb3SDhruvaraj Subhashchandran#PLID              4            Comes from errorlog
36765d15fb3SDhruvaraj Subhashchandran#File Header Size  2            0x70
36865d15fb3SDhruvaraj Subhashchandran#Dump SRC Size     2            Dump SRC Size. Currently NULL
36965d15fb3SDhruvaraj Subhashchandran#DUMP SRC          320          DUMP SRC. Currently NULL
37065d15fb3SDhruvaraj Subhashchandran#Dump Req Type     4            Dump requester user interface type.
37165d15fb3SDhruvaraj Subhashchandran#Dump Req ID       32           Dump requester user interface ID
37265d15fb3SDhruvaraj Subhashchandran#Dump Req user ID  32           Dump requester user ID.
37365d15fb3SDhruvaraj Subhashchandran#
37465d15fb3SDhruvaraj Subhashchandran#TODO: Github issue #2639, to populate the unpopulated elements.
37565d15fb3SDhruvaraj Subhashchandran#Note: Unpopulated elements are listed below are set as NULL
37665d15fb3SDhruvaraj Subhashchandran#PLID
37765d15fb3SDhruvaraj Subhashchandran#SRC size
37865d15fb3SDhruvaraj Subhashchandran#SRC dump
379eb46252dSManojkiran Eda#Dump requester type
38065d15fb3SDhruvaraj Subhashchandran#Dump Req ID
38165d15fb3SDhruvaraj Subhashchandran#Dump Req user ID
38265d15fb3SDhruvaraj Subhashchandranfunction dump_header() {
38365d15fb3SDhruvaraj Subhashchandran    if [ $dump_type = "$TYPE_FAULTDATA" ]; then
38465d15fb3SDhruvaraj Subhashchandran        printf "FLT DUMP" >> $FILE
38565d15fb3SDhruvaraj Subhashchandran    else
38665d15fb3SDhruvaraj Subhashchandran        printf "BMC DUMP" >> $FILE
38765d15fb3SDhruvaraj Subhashchandran    fi
38865d15fb3SDhruvaraj Subhashchandran    dump_time
38965d15fb3SDhruvaraj Subhashchandran    add_null 4 #Dump Identifier
39065d15fb3SDhruvaraj Subhashchandran    printf '\x02' >> $FILE #Dump version 0x0210
39165d15fb3SDhruvaraj Subhashchandran    printf '\x10' >> $FILE
39265d15fb3SDhruvaraj Subhashchandran    printf '\x02' >> $FILE #Dump header size 0x0200
39365d15fb3SDhruvaraj Subhashchandran    add_null 1
39465d15fb3SDhruvaraj Subhashchandran    dump_size  #dump size
39565d15fb3SDhruvaraj Subhashchandran    printf "$modelNo" >> "$FILE"
39665d15fb3SDhruvaraj Subhashchandran    add_null 24
39765d15fb3SDhruvaraj Subhashchandran    printf "Server-%s-SN%s" "$modelNo" "$serialNo" >> "$FILE"
39865d15fb3SDhruvaraj Subhashchandran    add_null 7
39965d15fb3SDhruvaraj Subhashchandran    printf "$serialNo" >> "$FILE"
40065d15fb3SDhruvaraj Subhashchandran    add_null 1
40165d15fb3SDhruvaraj Subhashchandran    get_eid
40265d15fb3SDhruvaraj Subhashchandran    add_null 1
40365d15fb3SDhruvaraj Subhashchandran    printf '\x70' >> "$FILE" #File header size
40465d15fb3SDhruvaraj Subhashchandran    add_null 2 # SRC size
40565d15fb3SDhruvaraj Subhashchandran    add_null 320 # SRC dump
40665d15fb3SDhruvaraj Subhashchandran    getbmc_serial
4071bee03b8SSwarnendu-R-C    # Dump requester/Originator details
4081bee03b8SSwarnendu-R-C    add_originator_details
4091bee03b8SSwarnendu-R-C    add_null 32 # Dump Req user ID
41065d15fb3SDhruvaraj Subhashchandran}
41165d15fb3SDhruvaraj Subhashchandran
41265d15fb3SDhruvaraj Subhashchandran#Function to add Dump entry, consists of below entries
41365d15fb3SDhruvaraj Subhashchandran####################FORMAT################
41465d15fb3SDhruvaraj Subhashchandran#Name               Size(bytes)  Value
41565d15fb3SDhruvaraj Subhashchandran#Dump Entry Version 1            0x01
41665d15fb3SDhruvaraj Subhashchandran#BMC Dump Valid     1            0x01
41765d15fb3SDhruvaraj Subhashchandran#No of Dump Entry   2            Number of Dump Entry
41865d15fb3SDhruvaraj Subhashchandran#
41965d15fb3SDhruvaraj Subhashchandranfunction dump_entry() {
42065d15fb3SDhruvaraj Subhashchandran    printf '\x01' >> $FILE #Dump entry version
42165d15fb3SDhruvaraj Subhashchandran    printf '\x01' >> $FILE #Dump valid
42265d15fb3SDhruvaraj Subhashchandran    add_null 1
42365d15fb3SDhruvaraj Subhashchandran    printf '\x10' >> $FILE #Dump entry
42465d15fb3SDhruvaraj Subhashchandran}
42565d15fb3SDhruvaraj Subhashchandran
42665d15fb3SDhruvaraj Subhashchandran#Function to Hardware Dump Section
42765d15fb3SDhruvaraj Subhashchandran####################FORMAT##################
42865d15fb3SDhruvaraj Subhashchandran#Name            Size(bytes)    Value
42965d15fb3SDhruvaraj Subhashchandran#HWDumpHeader      8            SECTION
43065d15fb3SDhruvaraj Subhashchandran#HWDumpEntrySize   2            0x0030
43165d15fb3SDhruvaraj Subhashchandran#HWDumpPriority    2            0x02
43265d15fb3SDhruvaraj Subhashchandran#reserve6          4            NULL
43365d15fb3SDhruvaraj Subhashchandran#HWDumpEntryFlag   4            0x0001
43465d15fb3SDhruvaraj Subhashchandran#HWDumpEntryType   2            0x02
43565d15fb3SDhruvaraj Subhashchandran#reserve7          2            NULL
43665d15fb3SDhruvaraj Subhashchandran#reserve7a         4            NULL
43765d15fb3SDhruvaraj Subhashchandran#HWDumpSize        4            NULL
43865d15fb3SDhruvaraj Subhashchandran#HWDumpName[16]    16           HARDWARE DATA
43965d15fb3SDhruvaraj Subhashchandranfunction hw_dump_section() {
44065d15fb3SDhruvaraj Subhashchandran    printf "SECTION " >> "$FILE"
44165d15fb3SDhruvaraj Subhashchandran    add_null 1
44265d15fb3SDhruvaraj Subhashchandran    printf '\x30' >> "$FILE" #Section entry size
44365d15fb3SDhruvaraj Subhashchandran    add_null 1
44465d15fb3SDhruvaraj Subhashchandran    printf '\x02' >> "$FILE"
44565d15fb3SDhruvaraj Subhashchandran    add_null 7
44665d15fb3SDhruvaraj Subhashchandran    printf '\x00' >> "$FILE"
44765d15fb3SDhruvaraj Subhashchandran    add_null 1
44865d15fb3SDhruvaraj Subhashchandran    printf '\x02' >> "$FILE"
44965d15fb3SDhruvaraj Subhashchandran    add_null 6
45065d15fb3SDhruvaraj Subhashchandran    tar_size
45165d15fb3SDhruvaraj Subhashchandran    printf "HARDWARE DATA" >> "$FILE"
45265d15fb3SDhruvaraj Subhashchandran    add_null 3
45365d15fb3SDhruvaraj Subhashchandran}
45465d15fb3SDhruvaraj Subhashchandran
45565d15fb3SDhruvaraj Subhashchandran#Function to Mainstore Dump Section
45665d15fb3SDhruvaraj Subhashchandran######################FORMAT###################
45765d15fb3SDhruvaraj Subhashchandran#Name                Size(in bytes)   Value
45865d15fb3SDhruvaraj Subhashchandran#MainstoreHeader         8            SECTION
45965d15fb3SDhruvaraj Subhashchandran#MainstoreEntrySize      2            0x30
46065d15fb3SDhruvaraj Subhashchandran#MainstorePriority       2            0x02
46165d15fb3SDhruvaraj Subhashchandran#reserve8                4            NULL
46265d15fb3SDhruvaraj Subhashchandran#MainstoreEntryFlag      4            NULL
46365d15fb3SDhruvaraj Subhashchandran#MainstoreEntryType      2            0x01
46465d15fb3SDhruvaraj Subhashchandran#reserve9                2            NULL
46565d15fb3SDhruvaraj Subhashchandran#MainstoreSize           8            NULL
46665d15fb3SDhruvaraj Subhashchandran#MainstoreName           16           HYPERVISOR DATA
46765d15fb3SDhruvaraj Subhashchandranfunction mainstore_dump_section() {
46865d15fb3SDhruvaraj Subhashchandran    printf "SECTION " >> "$FILE"
46965d15fb3SDhruvaraj Subhashchandran    add_null 1
47065d15fb3SDhruvaraj Subhashchandran    printf '\x30' >> "$FILE" #Section entry size
47165d15fb3SDhruvaraj Subhashchandran    add_null 1
47265d15fb3SDhruvaraj Subhashchandran    printf '\x02' >> "$FILE"
47365d15fb3SDhruvaraj Subhashchandran    add_null 7
47465d15fb3SDhruvaraj Subhashchandran    printf '\x01' >> "$FILE"
47565d15fb3SDhruvaraj Subhashchandran    add_null 1
47665d15fb3SDhruvaraj Subhashchandran    printf '\x02' >> "$FILE"
47765d15fb3SDhruvaraj Subhashchandran    add_null 10
47865d15fb3SDhruvaraj Subhashchandran    printf "HYPERVISOR DATA" >> "$FILE"
47965d15fb3SDhruvaraj Subhashchandran    add_null 1
48065d15fb3SDhruvaraj Subhashchandran}
48165d15fb3SDhruvaraj Subhashchandran
48265d15fb3SDhruvaraj Subhashchandran#Function for platform system dump header
48365d15fb3SDhruvaraj Subhashchandran######################FORMAT##################
48465d15fb3SDhruvaraj Subhashchandran#Name                Size(in bytes)   Value
48565d15fb3SDhruvaraj Subhashchandran#eyeCatcher              8            SYS DUMP
48665d15fb3SDhruvaraj Subhashchandran#requestTimestamp        8            BCD time
48765d15fb3SDhruvaraj Subhashchandran#dumpIdentifier          4
48865d15fb3SDhruvaraj Subhashchandran#dumpVersion             2
48965d15fb3SDhruvaraj Subhashchandran#headerSize              2
49065d15fb3SDhruvaraj Subhashchandran#totalDumpSize           8
49165d15fb3SDhruvaraj Subhashchandran#machineInfo             32
49265d15fb3SDhruvaraj Subhashchandran#systemName              32
49365d15fb3SDhruvaraj Subhashchandran#systemSerialNumber      7
49465d15fb3SDhruvaraj Subhashchandran#Dump Creator BMC        1
49565d15fb3SDhruvaraj Subhashchandran#eventLogId              4
49665d15fb3SDhruvaraj Subhashchandran#fileHeaderSize          2
497eb46252dSManojkiran Eda####################DATA NOT AVAILABLE##########
49865d15fb3SDhruvaraj Subhashchandran#srcSize                 2
49965d15fb3SDhruvaraj Subhashchandran#dumpSrc                 332
50065d15fb3SDhruvaraj Subhashchandran#toolType                4
50165d15fb3SDhruvaraj Subhashchandran#clientId                32
50265d15fb3SDhruvaraj Subhashchandran#userId                  32
50365d15fb3SDhruvaraj Subhashchandran#systemDumpFlags         2
50465d15fb3SDhruvaraj Subhashchandran#hardwareErrorFlags      2
50565d15fb3SDhruvaraj Subhashchandran#processorChipEcid       2
50665d15fb3SDhruvaraj Subhashchandran#hardwareObjectModel     1
50765d15fb3SDhruvaraj Subhashchandran#chUnused                1
50865d15fb3SDhruvaraj Subhashchandran#cecMemoryErrorFlags     8
50965d15fb3SDhruvaraj Subhashchandran#memoryDumpStartTime     8
51065d15fb3SDhruvaraj Subhashchandran#memoryDumpCompleteTime  8
51165d15fb3SDhruvaraj Subhashchandran#hypVerRelMod            8
51265d15fb3SDhruvaraj Subhashchandran#Reserved4HysrInfo       2
51365d15fb3SDhruvaraj Subhashchandran#hypMode                 1
51465d15fb3SDhruvaraj Subhashchandran#hypDumpContentPolicy    1
51565d15fb3SDhruvaraj Subhashchandran#Reserved4HWDInfo        2
51665d15fb3SDhruvaraj Subhashchandran#hardwareNodalCount      2
51765d15fb3SDhruvaraj Subhashchandran#hardwareDumpTableSize   4
51865d15fb3SDhruvaraj Subhashchandran#hardwareDumpDataSize    4
51965d15fb3SDhruvaraj Subhashchandran#totalHardwareDumpDataSize   4
52065d15fb3SDhruvaraj Subhashchandran#mdrtTableSize           4
52165d15fb3SDhruvaraj Subhashchandran#mdrtTableAddress        8
52265d15fb3SDhruvaraj Subhashchandran#memoryDumpDataSize      8
52365d15fb3SDhruvaraj Subhashchandran#hypModLoadMapTime       8
52465d15fb3SDhruvaraj Subhashchandran#hardwareCollectionEndTime   8
52565d15fb3SDhruvaraj Subhashchandran#contentType             4
52665d15fb3SDhruvaraj Subhashchandran#failingUnitId           4
52765d15fb3SDhruvaraj Subhashchandran#failingCappChipId       2
52865d15fb3SDhruvaraj Subhashchandran#failingCappUnitId       1
52965d15fb3SDhruvaraj Subhashchandran#reserve02               5
53065d15fb3SDhruvaraj Subhashchandran#hypHRMOR                8
53165d15fb3SDhruvaraj Subhashchandran#hypNACAAddress          8
53265d15fb3SDhruvaraj Subhashchandran#hardwareCollectionStartTime  8
53365d15fb3SDhruvaraj Subhashchandran#mdstTableSize           4
53465d15fb3SDhruvaraj Subhashchandran#payloadState            4
53565d15fb3SDhruvaraj Subhashchandran#creator BMC             1
53665d15fb3SDhruvaraj Subhashchandran#reservedForCreator      169
53765d15fb3SDhruvaraj Subhashchandranfunction plat_dump_header() {
53865d15fb3SDhruvaraj Subhashchandran    printf "SYS DUMP" >> "$FILE"
53965d15fb3SDhruvaraj Subhashchandran    dump_time
54065d15fb3SDhruvaraj Subhashchandran    get_dump_id "$OP_DUMP"   #Dump identifier
54165d15fb3SDhruvaraj Subhashchandran    printf '\x02' >> "$FILE"
54265d15fb3SDhruvaraj Subhashchandran    printf '\x21' >> "$FILE" #Need to cross check
54365d15fb3SDhruvaraj Subhashchandran    printf '\x04' >> "$FILE" #Dump header size 0x0400
54465d15fb3SDhruvaraj Subhashchandran    add_null 1
54565d15fb3SDhruvaraj Subhashchandran    total_size
54665d15fb3SDhruvaraj Subhashchandran    printf "%s" "$modelNo" >> "$FILE"
54765d15fb3SDhruvaraj Subhashchandran    add_null 24
54865d15fb3SDhruvaraj Subhashchandran    system_name
54965d15fb3SDhruvaraj Subhashchandran    printf "%s" "$serialNo" >> "$FILE"
55065d15fb3SDhruvaraj Subhashchandran    printf '\x01' >> "$FILE"   #Dump Creator BMC
55165d15fb3SDhruvaraj Subhashchandran    get_eid
55265d15fb3SDhruvaraj Subhashchandran    add_null 1
55365d15fb3SDhruvaraj Subhashchandran    printf '\xd0' >> "$FILE" #File Header size
55465d15fb3SDhruvaraj Subhashchandran    add_null 498
55565d15fb3SDhruvaraj Subhashchandran    content_type # 4 bytes
55665d15fb3SDhruvaraj Subhashchandran    add_null 44
55765d15fb3SDhruvaraj Subhashchandran    printf '\x01' >> "$FILE"  # BMC indicator
55865d15fb3SDhruvaraj Subhashchandran    add_null 367
55965d15fb3SDhruvaraj Subhashchandran}
56065d15fb3SDhruvaraj Subhashchandran
56165d15fb3SDhruvaraj Subhashchandran
56265d15fb3SDhruvaraj Subhashchandran#main function
56365d15fb3SDhruvaraj Subhashchandranfunction gen_header_package() {
564*05dfcaacSGopichand Paturi    fetch_serial_number
56565d15fb3SDhruvaraj Subhashchandran    dump_file_entry
56665d15fb3SDhruvaraj Subhashchandran    dump_section_entry
56765d15fb3SDhruvaraj Subhashchandran    if [ "$dump_type" = "$OP_DUMP" ]; then
56865d15fb3SDhruvaraj Subhashchandran        hw_dump_section
56965d15fb3SDhruvaraj Subhashchandran        mainstore_dump_section
57065d15fb3SDhruvaraj Subhashchandran        plat_dump_header
57165d15fb3SDhruvaraj Subhashchandran    else
57265d15fb3SDhruvaraj Subhashchandran        dump_header
57365d15fb3SDhruvaraj Subhashchandran        dump_entry
57465d15fb3SDhruvaraj Subhashchandran    fi
57565d15fb3SDhruvaraj Subhashchandran}
57665d15fb3SDhruvaraj Subhashchandran
57765d15fb3SDhruvaraj Subhashchandranget_bmc_model_serial_number
57865d15fb3SDhruvaraj Subhashchandran
57965d15fb3SDhruvaraj Subhashchandran#Run gen_header_package
58065d15fb3SDhruvaraj Subhashchandrangen_header_package
581