Skip to content

Commit

Permalink
Only add 4MB padding with ATF version 1.03
Browse files Browse the repository at this point in the history
The new SPI-NOR layout only applies for Ampere Trusted Firmware (ATF)
version 1.03. This patch updates Makefile and build scripts to reflect
this changes.

Also, fixing typos: TIANCORE_* --> TIANOCORE_*

Signed-off-by: Thu Cao <thu.cao@amperecomputing.com>
Signed-off-by: Nhi Pham <npham@amperecomputing.com>
  • Loading branch information
thcao-ampere authored and nhivp committed Jan 29, 2021
1 parent 1682b41 commit 0be62bc
Show file tree
Hide file tree
Showing 2 changed files with 25 additions and 22 deletions.
7 changes: 3 additions & 4 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -84,7 +84,6 @@ BOARD_SETTING ?= $(EDK2_PLATFORMS_PKG_DIR)/$(BOARD_NAME)_board_setting.txt
ATF_MAJOR = $(shell grep -aPo AMPC31.\{0,14\} $(ATF_SLIM) | tr -d '\0' | cut -c7 )
ATF_MINOR = $(shell grep -aPo AMPC31.\{0,14\} $(ATF_SLIM) | tr -d '\0' | cut -c8-9 )
ATF_BUILD = $(shell grep -aPo AMPC31.\{0,14\} $(ATF_SLIM) | tr -d '\0' | cut -c10-17 )
ATF_VER = $(ATF_MAJOR)$(ATF_MINOR)

# Targets
define HELP_MSG
Expand Down Expand Up @@ -276,11 +275,11 @@ else
@dd bs=1024 seek=2048 if=$(OUTPUT_FD_IMAGE) of=$(OUTPUT_RAW_IMAGE)
endif

@if [ $(ATF_VER) -eq 102 ] || [ $(ATF_VER) -eq 101 ]; then \
cp $(OUTPUT_RAW_IMAGE) $(OUTPUT_IMAGE); \
else \
@if [ "$(ATF_MAJOR).$(ATF_MINOR)" = "1.03" ] || [ "$(ATF_MAJOR).$(ATF_MINOR)" = "2.01" ]; then \
dd if=/dev/zero bs=1024 count=4096 | tr "\000" "\377" > $(OUTPUT_IMAGE); \
dd bs=1 seek=4194304 conv=notrunc if=$(OUTPUT_RAW_IMAGE) of=$(OUTPUT_IMAGE); \
else \
cp $(OUTPUT_RAW_IMAGE) $(OUTPUT_IMAGE); \
fi

## tianocore_capsule : Tianocore Capsule image
Expand Down
40 changes: 22 additions & 18 deletions edk2-build.sh
Original file line number Diff line number Diff line change
Expand Up @@ -96,33 +96,37 @@ function build_tianocore_atf
ATF_BUILD="`grep -aPo 'AMPC31.{0,14}' ${ATF_IMAGE} | tr -d '\0' | cut -c10-17`"
ATF_VER="${ATF_MAJOR}${ATF_MINOR}"
echo "ATF_VERSION = ${ATF_MAJOR}.${ATF_MINOR}.${ATF_BUILD} - ATF_VER: ${ATF_VER}"
TIANCORE_ATF_SLIM="$DEST_DIR/${PLATFORM_LOWER}_tianocore_atf${LINUXBOOT_FMT}${BUILD_TYPE}_${VER}.${BUILD}.img"
if [ ${ATF_VER} -eq 102 ] || [ ${ATF_VER} -eq 101 ]; then
dd bs=1024 count=2048 if=/dev/zero | tr "\000" "\377" > ${TIANCORE_ATF_SLIM}
dd bs=1 conv=notrunc if=${ATF_IMAGE} of=${TIANCORE_ATF_SLIM}
dd bs=1 seek=2031616 conv=notrunc if=$DEST_DIR/${PLATFORM_LOWER}_board_setting.bin of=${TIANCORE_ATF_SLIM}
dd bs=1024 seek=2048 if=$DEST_DIR/${PLATFORM_LOWER}_tianocore${LINUXBOOT_FMT}${BUILD_TYPE}_${VER}.${BUILD}.fip.signed of=${TIANCORE_ATF_SLIM}
TIANOCORE_ATF_SLIM="$DEST_DIR/${PLATFORM_LOWER}_tianocore_atf${LINUXBOOT_FMT}${BUILD_TYPE}_${VER}.${BUILD}.img"
if [ ${ATF_VER} -eq 103 ] || [ ${ATF_VER} -eq 201 ]; then
# 4Mb padding only in 1.03 ATF VERSION
dd bs=1024 count=6144 if=/dev/zero | tr "\000" "\377" > ${TIANOCORE_ATF_SLIM}
dd bs=1 seek=4194304 conv=notrunc if=${ATF_IMAGE} of=${TIANOCORE_ATF_SLIM}
dd bs=1 seek=6225920 conv=notrunc if=$DEST_DIR/${PLATFORM_LOWER}_board_setting.bin of=${TIANOCORE_ATF_SLIM}
dd bs=1024 seek=6144 if=$DEST_DIR/${PLATFORM_LOWER}_tianocore${LINUXBOOT_FMT}${BUILD_TYPE}_${VER}.${BUILD}.fip.signed of=${TIANOCORE_ATF_SLIM}
else
dd bs=1024 count=6144 if=/dev/zero | tr "\000" "\377" > ${TIANCORE_ATF_SLIM}
dd bs=1 seek=4194304 conv=notrunc if=${ATF_IMAGE} of=${TIANCORE_ATF_SLIM}
dd bs=1 seek=6225920 conv=notrunc if=$DEST_DIR/${PLATFORM_LOWER}_board_setting.bin of=${TIANCORE_ATF_SLIM}
dd bs=1024 seek=6144 if=$DEST_DIR/${PLATFORM_LOWER}_tianocore${LINUXBOOT_FMT}${BUILD_TYPE}_${VER}.${BUILD}.fip.signed of=${TIANCORE_ATF_SLIM}
dd bs=1024 count=2048 if=/dev/zero | tr "\000" "\377" > ${TIANOCORE_ATF_SLIM}
dd bs=1 conv=notrunc if=${ATF_IMAGE} of=${TIANOCORE_ATF_SLIM}
dd bs=1 seek=2031616 conv=notrunc if=$DEST_DIR/${PLATFORM_LOWER}_board_setting.bin of=${TIANOCORE_ATF_SLIM}
dd bs=1024 seek=2048 if=$DEST_DIR/${PLATFORM_LOWER}_tianocore${LINUXBOOT_FMT}${BUILD_TYPE}_${VER}.${BUILD}.fip.signed of=${TIANOCORE_ATF_SLIM}
fi
if [ $LINUXBOOT -eq 0 ]; then
TIANCORE_ATF_SLIM="$DEST_DIR/${PLATFORM_LOWER}_tianocore_atf${LINUXBOOT_FMT}${BUILD_TYPE}_${VER}.${BUILD}.cap.img"
dd bs=1024 count=2048 if=/dev/zero | tr "\000" "\377" > ${TIANCORE_ATF_SLIM}
dd bs=1 conv=notrunc if=${ATF_IMAGE} of=${TIANCORE_ATF_SLIM}
dd bs=1 seek=2031616 conv=notrunc if=$DEST_DIR/${PLATFORM_LOWER}_board_setting.bin of=${TIANCORE_ATF_SLIM}
dd bs=1024 seek=2048 if=$DEST_DIR/${PLATFORM_LOWER}_tianocore${LINUXBOOT_FMT}${BUILD_TYPE}_${VER}.${BUILD}.fip.signed of=${TIANCORE_ATF_SLIM}
openssl dgst -sha256 -sign $PLATFORM_PATH/TestKeys/Dbu_AmpereTest.priv.pem -out $DEST_DIR/${PLATFORM_LOWER}_tianocore_atf${BUILD_TYPE}_${VER}.${BUILD}.img.sig ${TIANCORE_ATF_SLIM}
cat $DEST_DIR/${PLATFORM_LOWER}_tianocore_atf${BUILD_TYPE}_${VER}.${BUILD}.img.sig ${TIANCORE_ATF_SLIM} > $WS_BOARD/${target}_${PLATFORM_TOOLCHAIN}/${PLATFORM_LOWER}_tianocore_atf.img.signed
if [ ${ATF_VER} -eq 103 ] || [ ${ATF_VER} -eq 201 ]; then
# Capsule not 4Mb padding
TIANOCORE_ATF_SLIM="$DEST_DIR/${PLATFORM_LOWER}_tianocore_atf${LINUXBOOT_FMT}${BUILD_TYPE}_${VER}.${BUILD}.cap.img"
dd bs=1024 count=2048 if=/dev/zero | tr "\000" "\377" > ${TIANOCORE_ATF_SLIM}
dd bs=1 conv=notrunc if=${ATF_IMAGE} of=${TIANOCORE_ATF_SLIM}
dd bs=1 seek=2031616 conv=notrunc if=$DEST_DIR/${PLATFORM_LOWER}_board_setting.bin of=${TIANOCORE_ATF_SLIM}
dd bs=1024 seek=2048 if=$DEST_DIR/${PLATFORM_LOWER}_tianocore${LINUXBOOT_FMT}${BUILD_TYPE}_${VER}.${BUILD}.fip.signed of=${TIANOCORE_ATF_SLIM}
fi
openssl dgst -sha256 -sign $PLATFORM_PATH/TestKeys/Dbu_AmpereTest.priv.pem -out $DEST_DIR/${PLATFORM_LOWER}_tianocore_atf${BUILD_TYPE}_${VER}.${BUILD}.img.sig ${TIANOCORE_ATF_SLIM}
cat $DEST_DIR/${PLATFORM_LOWER}_tianocore_atf${BUILD_TYPE}_${VER}.${BUILD}.img.sig ${TIANOCORE_ATF_SLIM} > $WS_BOARD/${target}_${PLATFORM_TOOLCHAIN}/${PLATFORM_LOWER}_tianocore_atf.img.signed
# support 1.01 tag
ln -sf $WS_BOARD/${target}_${PLATFORM_TOOLCHAIN}/${PLATFORM_LOWER}_tianocore_atf.img.signed $WS_BOARD/${PLATFORM_LOWER}_atfedk2.img.signed
CAPSULE_DSC="`$TOOLS_DIR/parse-platforms.py $PLATFORM_CONFIG -p $board get -o capsule_dsc`"
build -n $NUM_THREADS -a "$PLATFORM_ARCH" -t ${PLATFORM_TOOLCHAIN} -p "$CAPSULE_DSC" -b "$target" ${PLATFORM_BUILDFLAGS} -D FIRMWARE_VER="${VER}.${BUILD} Build ${BUILD_DATE}" \
-D UEFI_ATF_IMAGE=$WS_BOARD/${target}_${PLATFORM_TOOLCHAIN}/${PLATFORM_LOWER}_tianocore_atf.img.signed
cp $WS_BOARD/${target}_${PLATFORM_TOOLCHAIN}/FV/JADEFIRMWAREUPDATECAPSULEFMPPKCS7.Cap $DEST_DIR/${PLATFORM_LOWER}_tianocore_atf${BUILD_TYPE}_${VER}.${BUILD}.cap
rm -fr ${TIANCORE_ATF_SLIM}
rm -fr ${TIANOCORE_ATF_SLIM}
fi
rm -fr $DEST_DIR/*.img.signed $DEST_DIR/*.img.sig $DEST_DIR/*.bin.padded $DEST_DIR/*.fd.crt $DEST_DIR/*.fip.signed
fi
Expand Down

0 comments on commit 0be62bc

Please sign in to comment.