Merge branch 'next-dev' into thunder-boot

This commit is contained in:
Joseph Chen 2020-04-20 19:55:03 +08:00
commit b0a6db3b4a
6 changed files with 68 additions and 31 deletions

View File

@ -339,12 +339,12 @@ config SPL_FIT_IMAGE_KB
depends on SPL_FIT
default 2048
help
SPL FIT image size in KiB.
SPL FIT image size in KiB, default 2048KB = 1024KB(u-boot) + 1024KB(tee/atf + others).
config SPL_FIT_IMAGE_MULTIPLE
int "SPL FIT image multiple number"
depends on SPL_FIT
default 1
default 2
help
SPL FIT image multiple number.

View File

@ -295,30 +295,30 @@ static void *fit_get_blob(struct blk_desc *dev_desc, disk_partition_t *part)
return NULL;
if (blk_dread(dev_desc, part->start, blknum, fdt) != blknum) {
FIT_I("Failed to read fdt header\n");
debug("Failed to read fdt header\n");
goto fail;
}
if (fdt_check_header(fdt)) {
FIT_I("Invalid fdt header\n");
debug("Invalid fdt header\n");
goto fail;
}
if (!fit_is_ext_type(fdt)) {
FIT_I("Not external type\n");
debug("Not external type\n");
goto fail;
}
blknum = DIV_ROUND_UP(fdt_totalsize(fdt), dev_desc->blksz);
fit = memalign(ARCH_DMA_MINALIGN, blknum * dev_desc->blksz);
if (!fit) {
FIT_I("No memory\n");
debug("No memory\n");
goto fail;
}
if (blk_dread(dev_desc, part->start, blknum, fit) != blknum) {
free(fit);
FIT_I("Failed to read fit\n");
debug("Failed to read fit\n");
goto fail;
}
@ -504,7 +504,7 @@ int rockchip_read_fit_dtb(void *fdt_addr, char **hash, int *hash_size)
fit = fit_get_blob(dev_desc, &part);
if (!fit) {
FIT_I("No fdt description\n");
FIT_I("No fdt blob\n");
return -EINVAL;
}

View File

@ -436,6 +436,23 @@ static int reserve_malloc(void)
return 0;
}
#ifdef CONFIG_SYS_NONCACHED_MEMORY
static int reserve_noncached(void)
{
phys_addr_t start, end;
size_t size;
end = ALIGN(gd->start_addr_sp, MMU_SECTION_SIZE) - MMU_SECTION_SIZE;
size = ALIGN(CONFIG_SYS_NONCACHED_MEMORY, MMU_SECTION_SIZE);
start = end - size;
gd->start_addr_sp = start;
debug("Reserving %zu for noncached_alloc() at: %08lx\n",
size, gd->start_addr_sp);
return 0;
}
#endif
/* (permanently) allocate a Board Info struct */
static int reserve_board(void)
{
@ -874,6 +891,9 @@ static const init_fnc_t init_sequence_f[] = {
reserve_trace,
reserve_uboot,
reserve_malloc,
#ifdef CONFIG_SYS_NONCACHED_MEMORY
reserve_noncached,
#endif
reserve_board,
setup_machine,
reserve_global_data,

View File

@ -1326,7 +1326,7 @@ int fit_image_verify_with_data(const void *fit, int image_noffset,
goto error;
}
return 1;
return 1; /* success */
error:
printf(" error!\n%s for '%s' hash node in '%s' image node\n",

View File

@ -566,7 +566,9 @@ void board_init_r(gd_t *dummy1, ulong dummy2)
#endif
#if CONFIG_IS_ENABLED(OPTEE)
case IH_OS_OP_TEE:
printf("Jumping to U-Boot via OP-TEE\n");
printf("Jumping to U-Boot(0x%08lx) via OP-TEE(0x%08lx)\n\n",
(ulong)spl_image.entry_point_os,
(ulong)spl_image.entry_point);
spl_cleanup_before_jump(&spl_image);
spl_optee_entry(NULL, (void *)spl_image.entry_point_os,
(void *)spl_image.fdt_addr,

49
make.sh
View File

@ -10,6 +10,7 @@ BOARD=$1
SUBCMD=$1
FUNCADDR=$1
FILE=$2
ARGS=$*
JOB=`sed -n "N;/processor/p" /proc/cpuinfo|wc -l`
SUPPORT_LIST=`ls configs/*[r,p][x,v,k][0-9][0-9]*_defconfig`
@ -148,7 +149,7 @@ function prepare()
{
case $BOARD in
# Parse from exit .config
''|elf*|loader*|spl*|itb|debug*|trust|uboot|map|sym|env|EXT_DTB=*|fit*|nopack)
''|elf*|loader*|spl*|itb|debug*|trust|uboot|map|sym|env|EXT_DTB=*|fit*|nopack|--rollback-index*)
if [ ! -f .config ]; then
echo
echo "ERROR: No .config"
@ -167,7 +168,7 @@ function prepare()
;;
#Subcmd
''|elf*|loader*|spl*|itb|debug*|trust*|uboot|map|sym|env|EXT_DTB=*|fit*|nopack)
''|elf*|loader*|spl*|itb|debug*|trust*|uboot|map|sym|env|EXT_DTB=*|fit*|nopack|--rollback-index*)
;;
*)
@ -181,6 +182,8 @@ function prepare()
else
echo "make for ${BOARD}_defconfig by -j${JOB}"
make ${BOARD}_defconfig ${OPTION}
# Skip 1st args
ARGS=`echo $ARGS | awk '{ $1=""; print $0 }'`
fi
;;
esac
@ -235,8 +238,14 @@ function select_toolchain()
function sub_commands()
{
# skip "--" parameter, such as "--rollback-index-..."
if [[ "$SUBCMD" != "--*" ]]; then
cmd=${SUBCMD%-*}
opt=${SUBCMD#*-}
else
cmd=$SUBCMD
fi
elf=u-boot
map=u-boot.map
sym=u-boot.sym
@ -268,9 +277,7 @@ function sub_commands()
;;
fit)
if [ "$opt" = "s" ]; then
./scripts/fit-vboot.sh
else
if [ "$opt" = "ns" ]; then
./scripts/fit-vboot.sh --no-vboot
fi
exit 0
@ -316,6 +323,11 @@ function sub_commands()
exit 0
;;
--rollback-index*)
pack_fit_image $ARGS
exit 0
;;
EXT_DTB=*)
OPTION=${SUBCMD}
;;
@ -485,7 +497,7 @@ function pack_uboot_image()
exit 1
fi
${RKTOOLS}/loaderimage --pack --uboot u-boot.bin uboot.img ${uboot_load_addr} ${PLATFORM_UBOOT_IMG_SIZE}
ls u-boot.img u-boot-dtb.img >/dev/null 2>&1 && rm u-boot.img u-boot-dtb.img -rf
rm u-boot.img u-boot-dtb.img -rf
echo "pack uboot okay! Input: u-boot.bin"
}
@ -558,7 +570,7 @@ function pack_spl_loader_image()
return
fi
ls ${tmp_dir} >/dev/null 2>&1 && rm ${tmp_dir} -rf
rm ${tmp_dir} -rf
mkdir ${tmp_dir} -p
cp spl/u-boot-spl.bin ${tmp_dir}/
cp $ini $tmp_ini
@ -578,7 +590,7 @@ function pack_spl_loader_image()
${RKTOOLS}/boot_merger $tmp_ini
rm ${tmp_dir} -rf
cd -
ls *_loader_*.bin >/dev/null 2>&1 && rm *_loader_*.bin
rm *_loader_*.bin -rf
mv ${RKBIN}/*_loader_*.bin ./
filename=`basename *_loader_*.bin`
@ -605,8 +617,7 @@ function pack_loader_image()
return
fi
ls *_loader_*.bin >/dev/null 2>&1 && rm *_loader_*.bin
rm *_loader_*.bin -rf
numline=`cat $ini | wc -l`
if [ $numline -eq 1 ]; then
image=`sed -n "/PATH=/p" $ini | tr -d '\r' | cut -d '=' -f 2`
@ -666,7 +677,7 @@ function pack_trust_image()
return
fi
ls trust*.img >/dev/null 2>&1 && rm trust*.img
rm trust*.img -rf
if [ "$FILE" != "" ]; then
ini=$FILE;
else
@ -698,9 +709,13 @@ function pack_trust_image()
function pack_fit_image()
{
if grep -q '^CONFIG_FIT_SIGNATURE=y' .config ; then
./scripts/fit-vboot.sh $*
else
./scripts/fit-vboot-uboot.sh --no-vboot --no-rebuild
ls uboot.img trust*.img >/dev/null 2>&1 && rm uboot.img trust*.img -rf
rm uboot.img trust*.img -rf
echo "pack uboot.img (with uboot trust) okay! Input: $ini"
fi
}
function pack_images()
@ -711,7 +726,7 @@ function pack_images()
pack_trust_image
pack_loader_image
elif [ "$PACK_FORMAT" = "fit" ]; then
pack_fit_image
pack_fit_image $ARGS
fi
fi
}
@ -719,13 +734,13 @@ function pack_images()
function clean_files()
{
if [ -f spl/u-boot-spl.dtb ]; then
rm spl/u-boot-spl.dtb
rm spl/u-boot-spl.dtb -rf
fi
if [ -f tpl/u-boot-tpl.dtb ]; then
rm tpl/u-boot-tpl.dtb
rm tpl/u-boot-tpl.dtb -rf
fi
if [ -f u-boot.dtb ]; then
rm u-boot.dtb
rm u-boot.dtb -rf
fi
}
@ -734,7 +749,7 @@ function finish()
echo
if [ ! -z "$OPTION" ]; then
echo "Platform ${RKCHIP_LABEL} is build OK, with exist .config ($OPTION)"
elif [ "$BOARD" = '' ]; then
elif [ "$BOARD" = '' -o "$BOARD" = 'nopack' ]; then
echo "Platform ${RKCHIP_LABEL} is build OK, with exist .config"
else
echo "Platform ${RKCHIP_LABEL} is build OK, with new .config(make ${BOARD}_defconfig)"