From b110c5b5b5097309f189f7f2a63d9970443b6d26 Mon Sep 17 00:00:00 2001 From: Stephen Cprek Date: Tue, 28 Jan 2014 14:55:50 -0600 Subject: ECC every partition to max size Change-Id: Ic486ba1989616d6bca5960ab71d009ddf685c928 RTC: 65006 Reviewed-on: http://gfw160.aus.stglabs.ibm.com:8080/gerrit/8429 Reviewed-by: Daniel M. Crowell Tested-by: Jenkins Server Reviewed-by: A. Patrick Williams III --- src/build/mkrules/hbfw/img/makefile | 81 +++++++++++++++++++++++++++---------- 1 file changed, 60 insertions(+), 21 deletions(-) (limited to 'src/build') diff --git a/src/build/mkrules/hbfw/img/makefile b/src/build/mkrules/hbfw/img/makefile index c7c6f273e..94e6c6580 100755 --- a/src/build/mkrules/hbfw/img/makefile +++ b/src/build/mkrules/hbfw/img/makefile @@ -71,7 +71,11 @@ TESTDATA = hbtestdata.bin TESTDATA_ECC = hbtestdata.bin.ecc HBEL_ECC_IMAGE = hbel.bin.ecc GUARD_ECC_IMAGE = guard.bin.ecc -GOLBAL_ECC_IMAGE = global.bin.ecc +GLOBAL_ECC_IMAGE = global.bin.ecc +DJVPD_ECC_IMAGE = djvpd.bin.ecc +MVPD_ECC_IMAGE = mvpd.bin.ecc +CVPD_ECC_IMAGE = cvpd.bin.ecc +PAYLOAD_ECC_IMAGE = payload.bin.ecc ALL_HB_IMAGES = ${BASE_IMAGES} \ ${BASE_W_HEADER_IMAGE} \ @@ -82,12 +86,15 @@ ALL_HB_IMAGES = ${BASE_IMAGES} \ ${EXT_PAD_IMAGE} \ ${EXT_SHA_IMAGE} ${EXT_HEADER_IMAGE} \ ${EXT_ECC_HEADER_IMAGE} \ - ${TESTDATA} ${TESTDATA_ECC} + ${TESTDATA} ${TESTDATA_ECC} \ + ${HBEL_ECC_IMAGE} ${GUARD_ECC_IMAGE} ${GLOBAL_ECC_IMAGE} \ + ${DJVPD_ECC_IMAGE} ${MVPD_ECC_IMAGE} ${CVPD_ECC_IMAGE} \ + ${PAYLOAD_ECC_IMAGE} cp_hbfiles: .SPECTARG ${BASE_IMAGES:@image@cp -f -u ${SRCPATH:F${image}} ${image};@} echo "00000000001800000000000008000000000000000007EF80" | xxd -r -ps - sbe.header - # add version header w/ sha hash + # add version header w/ HBB sha hash echo -en VERSION\\0 > ${BASE_SHA_IMAGE} sha512sum ${BASE_IMAGE} | awk '{print $$1}' | xxd -pr -r >> ${BASE_SHA_IMAGE} dd if=${BASE_SHA_IMAGE} of=secureboot.header ibs=4k conv=sync @@ -100,30 +107,46 @@ cp_hbfiles: .SPECTARG # dd command will pad image up to the next 4K page dd if=${EXT_IMAGE} of=${EXT_PAD_IMAGE} ibs=4k count=1280 conv=sync ecc --inject ${EXT_PAD_IMAGE} --output ${EXT_ECC_IMAGE} --p8 - # add version header w/ HBRT sha hash + # Add version header w/ HBRT sha hash echo -en VERSION\\0 > ${HBRT_SHA_IMAGE} sha512sum ${HBRT_IMAGE} | awk '{print $$1}' | xxd -pr -r >> ${HBRT_SHA_IMAGE} dd if=${HBRT_SHA_IMAGE} of=${TEMP_IMAGE} ibs=4k conv=sync cat ${HBRT_IMAGE} >> ${TEMP_IMAGE} - dd if=${TEMP_IMAGE} of=${HBRT_HEADER_IMAGE} ibs=4k conv=sync + # HBRT partition size w/o ECC = 2MB (2048K) + dd if=${TEMP_IMAGE} of=${HBRT_HEADER_IMAGE} ibs=2048K conv=sync ecc --inject ${HBRT_HEADER_IMAGE} --output ${HBRT_ECC_HEADER_IMAGE} --p8 - # add version header w/ HBI sha hash + # Add version header w/ HBI sha hash echo -en VERSION\\0 > ${EXT_SHA_IMAGE} sha512sum ${EXT_IMAGE} | awk '{print $$1}' | xxd -pr -r >> ${EXT_SHA_IMAGE} dd if=${EXT_SHA_IMAGE} of=${TEMP_IMAGE} ibs=4k conv=sync cat ${EXT_IMAGE} >> ${TEMP_IMAGE} - dd if=${TEMP_IMAGE} of=${EXT_HEADER_IMAGE} ibs=4k conv=sync + # HBI partition size w/o ECC = 5MB (5120K) + dd if=${TEMP_IMAGE} of=${EXT_HEADER_IMAGE} ibs=5120k conv=sync ecc --inject ${EXT_HEADER_IMAGE} --output ${EXT_ECC_HEADER_IMAGE} --p8 # create data for a test partition in pnor dd if=/dev/urandom of=${TESTDATA} bs=1 count=28K ecc --inject ${TESTDATA} --output ${TESTDATA_ECC} --p8 - # HBEL, GUARD, and GLOBAL ECC + # Fill the following partitions with FF's and then ECC them dd if=/dev/zero count=128K bs=1 | tr "\000" "\377" > ${TEMP_IMAGE} ecc --inject ${TEMP_IMAGE} --output ${HBEL_ECC_IMAGE} --p8 + # GUARD partition dd if=/dev/zero count=16K bs=1 | tr "\000" "\377" > ${TEMP_IMAGE} ecc --inject ${TEMP_IMAGE} --output ${GUARD_ECC_IMAGE} --p8 + # GLOBAL partition dd if=/dev/zero count=32K bs=1 | tr "\000" "\377" > ${TEMP_IMAGE} - ecc --inject ${TEMP_IMAGE} --output ${GOLBAL_ECC_IMAGE} --p8 + ecc --inject ${TEMP_IMAGE} --output ${GLOBAL_ECC_IMAGE} --p8 + # DJVPD partition + dd if=/dev/zero count=256K bs=1 | tr "\000" "\377" > ${TEMP_IMAGE} + ecc --inject ${TEMP_IMAGE} --output ${DJVPD_ECC_IMAGE} --p8 + # MVPD partition + dd if=/dev/zero count=512K bs=1 | tr "\000" "\377" > ${TEMP_IMAGE} + ecc --inject ${TEMP_IMAGE} --output ${MVPD_ECC_IMAGE} --p8 + # CVPD partition + dd if=/dev/zero count=256K bs=1 | tr "\000" "\377" > ${TEMP_IMAGE} + ecc --inject ${TEMP_IMAGE} --output ${CVPD_ECC_IMAGE} --p8 + # PAYLOAD partition + dd if=/dev/zero count=20480K bs=1 | tr "\000" "\377" > ${TEMP_IMAGE} + ecc --inject ${TEMP_IMAGE} --output ${PAYLOAD_ECC_IMAGE} --p8 rm ${TEMP_IMAGE} clobber_cp_hbfiles: @@ -201,39 +224,55 @@ PNOR_BUILD_SCRIPT = ${buildpnor.pl:P} #so need to use tryinclude for now. .tryinclude <${.PATH:Ffips_pnor.mk}> -HOSTBOOT_DEFAULT_SECTIONS = HBB=${BASE_W_HEADER_ECC_IMAGE},HBI=${EXT_ECC_HEADER_IMAGE},HBRT=${HBRT_ECC_HEADER_IMAGE},TEST=${TESTDATA_ECC},HBEL=${HBEL_ECC_IMAGE},GUARD=${GUARD_ECC_IMAGE},GLOBAL=${GOLBAL_ECC_IMAGE} +HOSTBOOT_DEFAULT_SECTIONS = HBB=${BASE_W_HEADER_ECC_IMAGE},HBI=${EXT_ECC_HEADER_IMAGE},HBRT=${HBRT_ECC_HEADER_IMAGE},TEST=${TESTDATA_ECC},HBEL=${HBEL_ECC_IMAGE},GUARD=${GUARD_ECC_IMAGE},GLOBAL=${GLOBAL_ECC_IMAGE},PAYLOAD=${PAYLOAD_ECC_IMAGE},CVPD=${CVPD_ECC_IMAGE},MVPD=${MVPD_ECC_IMAGE},DJVPD=${DJVPD_ECC_IMAGE} HBFW_OBJPATH = ${.PATH:M*obj*} ENGD_OBJPATH = ${HBFW_OBJPATH:S/hbfw\/img/engd\/href/g} MURANO_TARG_IMG = simics_MURANO_targeting.bin VENICE_TARG_IMG = simics_VENICE_targeting.bin +MURANO_TARG_IMG_ECC = simics_MURANO_targeting.bin.ecc +VENICE_TARG_IMG_ECC = simics_VENICE_targeting.bin.ecc MURANO_SLW_IMG = ${ENGD_OBJPATH:Fs1.ref_image.bin} VENICE_SLW_IMG = ${ENGD_OBJPATH:Fp8.ref_image.bin} MURANO_LOCAL_SLW_IMG = s1.ref_image.bin VENICE_LOCAL_SLW_IMG = p8.ref_image.bin +MURANO_LOCAL_SLW_IMG_ECC = s1.ref_image.bin.ecc +VENICE_LOCAL_SLW_IMG_ECC = p8.ref_image.bin.ecc MURANO_SBE_IMG = s1SbePartition.bin VENICE_SBE_IMG = p8SbePartition.bin +MURANO_SBE_IMG_ECC = s1SbePartition.bin.ecc +VENICE_SBE_IMG_ECC = p8SbePartition.bin.ecc SBEC_IMG = centSbePartition.bin +SBEC_IMG_ECC = centSbePartition.bin.ecc TEMP_IMG = temp.bin -INPUT_ECC = ${${MURANO_TARG_IMG}:P} ${${VENICE_TARG_IMG}:P} \ - ${MURANO_LOCAL_SLW_IMG} ${VENICE_LOCAL_SLW_IMG} \ - ${MURANO_SBE_IMG} ${VENICE_SBE_IMG} \ - ${SBEC_IMG} - inject_ecc: build_sbe_partitions # cp file with full path to one with local path cp ${MURANO_SLW_IMG} ${MURANO_LOCAL_SLW_IMG} cp ${VENICE_SLW_IMG} ${VENICE_LOCAL_SLW_IMG} - for file in ${INPUT_ECC}; do\ - dd if=$$file of=${TEMP_IMG} ibs=4k conv=sync; \ - ecc --inject ${TEMP_IMG} --output $$file.ecc --p8; \ - done + # HBD partition + dd if=${${MURANO_TARG_IMG}:P} of=${TEMP_IMG} ibs=1024k conv=sync; \ + ecc --inject ${TEMP_IMG} --output ${MURANO_TARG_IMG_ECC} --p8; \ + dd if=${${VENICE_TARG_IMG}:P} of=${TEMP_IMG} ibs=1024k conv=sync; \ + ecc --inject ${TEMP_IMG} --output ${VENICE_TARG_IMG_ECC} --p8; \ + # SBE partition + dd if=${MURANO_SBE_IMG} of=${TEMP_IMG} ibs=256k conv=sync; \ + ecc --inject ${TEMP_IMG} --output ${MURANO_SBE_IMG_ECC} --p8; \ + dd if=${VENICE_SBE_IMG} of=${TEMP_IMG} ibs=256k conv=sync; \ + ecc --inject ${TEMP_IMG} --output ${VENICE_SBE_IMG_ECC} --p8; \ + # SBEC partition + dd if=${SBEC_IMG} of=${TEMP_IMG} ibs=512k conv=sync; \ + ecc --inject ${TEMP_IMG} --output ${SBEC_IMG_ECC} --p8; \ + # WINK partition + dd if=${MURANO_LOCAL_SLW_IMG} of=${TEMP_IMG} ibs=1024k conv=sync; \ + ecc --inject ${TEMP_IMG} --output ${MURANO_LOCAL_SLW_IMG_ECC} --p8; \ + dd if=${VENICE_LOCAL_SLW_IMG} of=${TEMP_IMG} ibs=1024k conv=sync; \ + ecc --inject ${TEMP_IMG} --output ${VENICE_LOCAL_SLW_IMG_ECC} --p8; \ rm ${TEMP_IMG} -MURANO_SECT = HBD=${MURANO_TARG_IMG}.ecc,SBE=${MURANO_SBE_IMG}.ecc,SBEC=${SBEC_IMG}.ecc,WINK=${MURANO_LOCAL_SLW_IMG}.ecc -VENICE_SECT = HBD=${VENICE_TARG_IMG}.ecc,SBE=${VENICE_SBE_IMG}.ecc,SBEC=${SBEC_IMG}.ecc,WINK=${VENICE_LOCAL_SLW_IMG}.ecc +MURANO_SECT = HBD=${MURANO_TARG_IMG_ECC},SBE=${MURANO_SBE_IMG_ECC},SBEC=${SBEC_IMG_ECC},WINK=${MURANO_LOCAL_SLW_IMG_ECC} +VENICE_SECT = HBD=${VENICE_TARG_IMG_ECC},SBE=${VENICE_SBE_IMG_ECC},SBEC=${SBEC_IMG_ECC},WINK=${VENICE_LOCAL_SLW_IMG_ECC} PNOR_IMG_INFO = \ murano.pnor:defaultPnorLayout.xml:${MURANO_SECT},${HOSTBOOT_DEFAULT_SECTIONS} \ -- cgit v1.2.1