I have built and compile the yocto image and have flashed the ddr image onto my Rubik Pi 3, but when trying to boot up and checking the boot log in MobaXterm, here is a snippet of the output:
RAM Entry 0 : Base 0x0080000000 Size 0x0039700000
RAM Entry 1 : Base 0x00C0000000 Size 0x0001800000
RAM Entry 2 : Base 0x00C3400000 Size 0x00BCC00000
RAM Entry 3 : Base 0x0180000000 Size 0x0100000000
Total Available RAM : 8059 MB (0x01F7B00000)
Total Installed RAM : 8192 MB (0x0200000000)
Init CPU core 1
> Scheduler up on Core 1
UEFI Ver : 6.0.241219.BOOT.MXF.1.0.c1-00254.3-KODIAKLA-1
Build Info : 64b Dec 19 2024 14:58:24
Boot Device : UFS
PROD Mode : TRUE
Retail : TRUE
After Create Event Status (0x0)
ShmBridgeInitialize: enable status 0
PM0: 47, PM1: 63, PM2: 49, PM8: 46,
Module cannot re-initialize DAL module environment
UFS INQUIRY ID: SKhynix H9QT0G6CN6X146 A002
UFS Boot LUN: 1
tz_armv8_smc_call failed, TzStatus = 0xFFFFFFFF, SmcId = 0x32000105
Status = 0x3
APP_REGION_NOTIFICATION_CMD: Syscall Not Supported, status 3
HW Wdog Setting from PCD : Disabled
QseeResponse->result = 0xE
Status = 0x7
QseeResponse->result = 0xE
Status = 0x7
QseeResponse->result = 0xE
Status = 0x7
QseeResponse->result = 0xE
Status = 0x7
LoadImageFromPartitionUsingGuid Failed: 14
Failed to start featenabler_a TA, status = 14
DisplayDxe: SW renderer mode enabled!
DisplayDxe: Resolution 640x480 (1 intf)
smem_alloc_ex: SMEM alloc_ex failed with err=-3! smem_type=478, remote=3, size=32, flags=0x40000000.smem_alloc_ex: SMEM alloc_ex failed with err=-3! smem_type=478, remote=12, size=32, flags=0x40000000.smem_alloc_ex: SMEM alloc_ex failed with err=-3! smem_type=478, remote=17, size=32, flags=0x40000000.smem_alloc_ex: SMEM alloc_ex failed with err=-3! smem_type=478, remote=18, size=32, flags=0x40000000.fast_core_num val: 0
UsbConfigLibOpenProtocols: PMI version (0x0)
UsbConfigLibOpenProtocols: gPmicNpaClientHS2 cannot be created
UsbConfigInit: after setting role
UsbConfigInit: UsbConfigInit, not start on port: 0, mode 0
UsbConfigInit: after setting role
UsbConfigInit: UsbConfigInit, not start on port: 1, mode 0
ButtonsDxeTest: Keypress SDAM data payload 1
HypDtFixupEntryPoint : Reading of OsConfigTableSelection failed,checking DT setting
Selected FW GUID =: 6F25BFD2-A165-468B-980F-AC51A0A45C52
Platform = 20
FmpDxe(Qualcomm System Firmware Update Driver): Failed to get the controller state. Status = Not Found
SoftSKUDxeInitialize: SoftSKU not supported for this chip
MinidumpTADxe: Minidump TA loading not enabled.
Disp init wait [ 1889]
-----------------------------
Platform Init [ 1952] BDS
UEFI Ver : 6.0.241219.BOOT.MXF.1.0.c1-00254.3-KODIAKLA-1
Platform : IOT
Subtype : 11
Boot Device : UFS
Chip Name : QCS6490
Chip Ver : 1.0
Chip Serial Number : 0x9DB4A86B
ufs_error_log: 252
RPMB ReadCounterPkt failed, Result = 6
-----------------------------
No pending capsules found in EFI Raw file
GetMassStorageCapsuleCount returned - Not Found!
GetPersistedCapsuleCount returned - Not Found
InitCapsulePtrFromPersistedMedia returned - Not Found!
InitCapsulePtr returned - Not Found.
LocateProtocol(DPP) returned Status:Not Found
Locate pMorPpiProtocol failed 0xE 00000010
Platform Init End : 2122
-----------------------------
OS DTB found. Model = Thundercomm, Inc. RUBIK Pi 3
Reading of OsConfigTableSelection failed,checking DT settings
ERROR: DisableDisplay disabling,Status=0
MDPUpdateDynamicClocks: Clock management not supported!
MDPUpdateCoreClockAndBandwidth: MDPUpdateDynamicClocks failed!
MDPUpdateDynamicClocks: Clock management not supported!
MDPUpdateCoreClockAndBandwidth: MDPUpdateDynamicClocks failed!
Added qcom,platform-parts-info successfully in BoardInfoDxe
Failed to get SKU information. Unsupported
UEFI Total : 787 ms
POST Time [ 2333] OS Loader
Start EBS [ 2557]
BDS: LogFs sync skipped, Unsupported
App Log Flush : 0 ms
ScmArmV8ExitBootServicesHandler, Status = 0x0.
Gunyah based bootup
Exit EBS [ 2572] UEFI End
I also do not have the provision folder to perform the provision flash first as mentioned in a previous thread. here is a screenshot of the files that I do have available in the build folder
Dear customer,
1.May I ask if the development board you are currently using can boot up normally with the image released by TC?
2.From the screenshot, it seems that the package you have compiled may be incomplete. Please verify the completeness of your code download and share the compilation command you are using.
3.The issue of “not having the provision folder” is recognized, and our development team is committed to optimizing it. If you need to flash the provision, you can use the provision included in the image package released by TC.
Dear customer,
Based on the screenshot you provided in your previous response, it appears that the package you have compiled may be incomplete.
We kindly request that you verify the integrity of your code download and share the compilation command you are employing.
Good day
I started by syncing the repo as indicated in the yocto section of the online manual. Then used the rubikpi_build.sh script build and then the --flatbuild to package it. The build completed without errors. I have flashed it using tflash from windows as well as qdl from Ubuntu.
Is there a way to check the boot sequence or settings for a given build? Seems from end of the previous log that there are SKU errrors.
The flatbuild file is 10.8Gb in size and is the same as the working Linux version I downloaded and can successfully flash onto the board.
in the ufs folders of the flatbuild the files not in my generated folder:
Dear customer,
We suggest that after compiling with the command ./rubikpi_build.sh -a, you proceed to package using the command ./rubikpi_build.sh -dp -ip.
Additionally, please take note that if non-official images of RUBIK Pi 3 are flashed, you should copy efi.bin in the corresponding image package to the rubikpi/tools/pack directory before packaging.
to clarify, do you mean that the efi.bin that is in the official build folder should be copied to the rubikpi/tools folder and there i should create the pack folder and put the efi.bin in there before doing the flatbuild step?
Dear customer,
Upon completion of the build, please copy the generated efi.bin file from your code to the rubikpi/tools/pack directory before proceeding with the packaging process.
her is the the contents of the script I have, which @kinkin mentioned:
#!/bin/bash
# Author: Zhao Hongyang <hongyang.zhao@thundersoft.com>
# Date: 2025-03-13
# Copyright (c) 2025, Thundercomm All rights reserved.
#
# Redistribution and use in source and binary forms, with or without
# modification, are permitted provided that the following conditions are
# met:
# * Redistributions of source code must retain the above copyright
# notice, this list of conditions and the following disclaimer.
# * Redistributions in binary form must reproduce the above
# copyright notice, this list of conditions and the following
# disclaimer in the documentation and/or other materials provided
# with the distribution.
# * Neither the name of The Linux Foundation nor the names of its
# contributors may be used to endorse or promote products derived
# from this software without specific prior written permission.
#
# THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESS OR IMPLIED
# WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT
# ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS
# BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
# SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
# BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE
# OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN
# IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
#
meta_dir=`pwd`
assert() {
if [ ${PIPESTATUS[0]} -ne 0 ]; then
exit 1;
fi
}
usage() {
echo "\033[1;37mUsage:\033[0m"
echo " bash $0 [options]"
echo
echo "\033[1;37mOptions:\033[0m"
echo "\033[1;37m -h, --help\033[0m display this help message"
echo "\033[1;37m -a, --build_all\033[0m Compile Yocto project"
echo "\033[1;37m -l, --log\033[0m Save the logs to file"
echo "\033[1;37m -c, --clean\033[0m Clean up workspace"
echo "\033[1;37m -p, --zip_flat_build\033[0m Package the flat build"
echo
}
PRODUCT=""
ProjectName="RUBIKPi"
HardWareVersion="xx"
SoftWareVersion="QLI_1.3"
Buildtime=`date +%Y%m%d.%H%M%S`
RUBIKPI_ID="${ProjectName}_${HardWareVersion}_${SoftWareVersion}"
STORAGE="ufs"
LOGDIR="${meta_dir}/build_log/BuildLog_${RUBIKPI_ID}.${Buildtime}"
DEF_LOG_FILE=/dev/null
log_file=$DEF_LOG_FILE
do_log() {
if [ "$1" = "1" ]; then
if [ ! -d $LOGDIR ]; then
mkdir -p $LOGDIR
fi
log_file=$LOGDIR/$2
else
log_file=$DEF_LOG_FILE
fi
}
do_build_all() {
echo "`date +%Y%m%d_%H:%M:%S` RUBIKPI_ID:${RUBIKPI_ID}" 2>&1 | tee -a $log_file
cd ${meta_dir}
echo "${meta_dir}" 2>&1 | tee -a $log_file
echo "export EXTRALAYERS="meta-qcom-qim-sdk"" 2>&1 | tee -a $log_file
export EXTRALAYERS="meta-qcom-qim-product-sdk"
echo "MACHINE=qcm6490-idp" 2>&1 | tee -a $log_file
export MACHINE=qcm6490-idp
echo " DISTRO=qcom-wayland" 2>&1 | tee -a $log_file
export DISTRO=qcom-wayland
echo "FWZIP_PATH="${meta_dir}/src/vendor/thundercomm/prebuilt/BP-BINs"" 2>&1 | tee -a $log_file
export FWZIP_PATH="${meta_dir}/src/vendor/thundercomm/prebuilt/BP-BINs"
if [ "${PRODUCT}" == "Qualcomm" ]; then
echo "source setup-environment" 2>&1 | tee -a $log_file
source ${meta_dir}/setup-environment
else
echo "source setup-environment_RUBIKPi" 2>&1 | tee -a $log_file
source ${meta_dir}/setup-environment_RUBIKPi
fi
echo "BB_ENV_PASSTHROUGH_ADDITIONS" 2>&1 | tee -a $log_file
export BB_ENV_PASSTHROUGH_ADDITIONS="$BB_ENV_PASSTHROUGH_ADDITIONS FWZIP_PATH CUST_ID"
echo "bitbake qcom-multimedia-image" 2>&1 | tee -a $log_file
bitbake -k qcom-multimedia-image 2>&1 | tee -a $log_file
assert
echo "bitbake qcom-qim-product-sdk" 2>&1 | tee -a $log_file
bitbake -k qcom-qim-product-sdk 2>&1 | tee -a $log_file
assert
}
do_clean() {
cd ${meta_dir}
rm build-qcom-wayland -rf
rm sstate-cache -rf
rm build_log -rf
}
copy_files() {
FILELIST=$1
TARGETDIR=$2
if [ -d $TARGETDIR ]; then
echo "rm -fr $TARGETDIR" 2>&1 | tee -a $log_file
rm -fr $TARGETDIR
fi
echo "mkdir -p $TARGETDIR" 2>&1 | tee -a $log_file
mkdir -p $TARGETDIR
cd ${meta_dir}
for f in ${FILELIST[*]}; do
echo "cp -Lrpf --parents $f $TARGETDIR" 2>&1 | tee -a $log_file
cp -Lrpf $f $TARGETDIR
assert
done
assert
}
BIN_FILELIST=($meta_dir/build-qcom-wayland/tmp-glibc/deploy/images/qcm6490-idp/qcom-multimedia-image/*)
RUBIKPIOUT=${meta_dir}/rubikpi/output
FLATDIRNAME=FlatBuild_$RUBIKPI_ID.${Buildtime}
zip_package() {
cd $RUBIKPIOUT
echo "zip -r $FLATDIRNAME.zip $FLATDIRNAME" 2>&1 | tee -a $log_file
zip -r $FLATDIRNAME.zip $FLATDIRNAME
assert
}
do_flat_build() {
copy_files "${BIN_FILELIST[*]}" $RUBIKPIOUT/$FLATDIRNAME/$STORAGE
zip_package
}
# ========================== Start ========================================
LOGFILE=rubikpi_build.log
do_log_flag=0
do_build_all_flag=0
do_clean_flag=0
do_flat_build_flag=0
if [ "$1" != "" ]; then
while true; do
case "$1" in
-h|--help) usage; exit 0;;
-a|--build_all) do_build_all_flag=1 ;;
-l|--log) do_log_flag=1;;
-c|--clean) do_clean_flag=1 ;;
-p|--zip_flat_build) do_flat_build_flag=1 ;;
esac
shift
if [ "$1" = "" ]; then
break
fi
done
if [ ${do_clean_flag} -eq "1" ]; then
do_clean
fi
if [ ${do_log_flag} -eq "1" ]; then
do_log $do_log_flag $LOGFILE
fi
if [ ${do_build_all_flag} -eq "1" ]; then
do_build_all
fi
if [ ${do_flat_build_flag} -eq "1" ]; then
do_flat_build
fi
else
do_build_all
fi
it does not seem that the flags you mentioned (“-dp -ip”) will do anyhting for the rubikpi_build.sh script. Is my observation correct?
Dear customer
May I inquire whether you are using the yocto_kirkstone branch of the code? Please use the command ./rubikpi_build.sh --zip_falt_build to package your build.
Should the situation remain the same as before, kindly share your flatbuild image package with us.