Header magic mismatch after flashing new kernel.

I built the kernel as described in System Programming | Compiling the Kernel (NVIDIA DRIVE Linux).
And flashed it with >>./bootburn.sh -b p2379c01-t186b -u kernel -V<<, which exited with >>Bootburn operation successful<<.
I tried it several times, with alwayes the same result.

Afterwards the serial console of Tegra-B prints the following error messages continuously.

NOTICE: BL31: v1.3(release):934cbe7
NOTICE: BL31: Built : 10:49:21, Sep 4 2018
qb:[E]: Header magic mismatch for partition kernel
qb:[E]: Error ImageCorrupted (0x12)
qb:[E]: Unable to load kernel
qb:[E]: Error ImageCorrupted (0x12)
qb:[E]: Error 0x12 booting configuration 0, going to trigger recovery!

NOTICE: BL31: v1.3(release):934cbe7
NOTICE: BL31: Built : 10:49:21, Sep 4 2018
qb:[E]: Generic header magic mismatch!
qb:[E]: Error loading kernel DTB, err:0x8
qb:[E]: Unable to load DTB
qb:[E]: Error InvalidState (0x8)
qb:[E]: Error 0x8 booting configuration 0, going to trigger recovery!

  1. Could somebody explain, what software part prints this error, can I fix this manually somehow?
  2. Is there anything I missed, other than building the kernel and flashing it?

Thanks,
Benedikt

Hi Benedikt,

Did you change anything in the kernel or did you try building it without any changes made?

Fabian

Hi Fabian,

I tried to build it without any changes.

Thanks,
Benedikt

Please provide me a detailed list of the commands you are running since I am afraid you are missing something.

Then I can verify what is going on.

Fabian

Hi Fabian,

sorry for the delay. I reinstalled the SDK, rebuilt the kernel and flashed it again with the following commands. In the end, I see the same erros like in the original post.
Intention is to flash a new kernel for Tegra-B on AutoChauffeur.

export ARCH=arm64
export CROSS_COMPILE=/toolchains/tegra-4.9-nv/usr/bin/aarch64-gnu-linux/aarch64-gnu-linux-
export CROSS32CC=/toolchains/gcc-arm-none-eabi-4_8-2014q3/bin/arm-none-eabi-gcc
export LOCALVERSION="-tegra-rebuilt"
cd drive-oss-src/
bash kernel/scripts/rt-patch.sh apply-patches
mkdir out-t186ref-linux
make -C kernel O={PWD}/out-t186ref-linux clean make -C kernel O={PWD}/out-t186ref-linux tegra_gnu_linux_defconfig
make -j3 -C kernel O=${PWD}/out-t186ref-linux

cp drive-t186ref-linux/kernel-rt_patches/Image drive-t186ref-linux/kernel-rt_patches/Image.orig
cp drive-t186ref-linux/kernel-rt_patches/zImage drive-t186ref-linux/kernel-rt_patches/zImage.orig
cp drive-oss-src/out-t186ref-linux/arch/arm64/boot/Image drive-t186ref-linux/kernel-rt_patches/
cp drive-oss-src/out-t186ref-linux/arch/arm64/boot/zImage drive-t186ref-linux/kernel-rt_patches/

cd drive-t186ref-foundation/
make -f Makefile.bind BOARD=p2379c01-t186b PCT=linux

shell> tegrarecovery b on
shell> tegrareset b

./tools/host/flashtools/bootburn/bootburn.sh -b p2379c01-t186b -H -u kernel

shell> tegrarecovery b off
shell> tegrareset b

Hi Benedikt,

Which PDK are you using?

Fabian

Hi Fabian,

/drive-t186ref-linux/lib-target/version-oss-sdk.txt says “5.0.10.3-12606092”, or which version do you want to know and how do I get it?

Regards,
Benedikt