cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 
Highlighted
Observer
Observer
379 Views
Registered: ‎04-12-2018

External Kernel hang after "starting kernel..."

Hello everyone,

I am using Petalinux 2018.2, and i am creating a project for Ultra96 (ZCU100) board. Because of a driver (ivshmem-net.c) that is only present on a specific kernel (4.14.83) different from Petalinux's default kernel, i am trying to create a project that uses an external local kernel source.

So i've create a new directory under components subfolder, with the new linux kernel source tree, and in petalinux-config, selected on Linux Components Selection my new kernel and specified the path, and selected on Auto Config Settings a manual device tree include directory and entered the path to the new kernel include directory (linux-xlnx/include).

After building the project, and packaging the fsbl, fpga, pmufw and u-boot into BOOT.BIN, i tried to boot the new image, but the console starts outputting after "Starting kernel.....".

PMUFW: v1.0

U-Boot 2018.01 (Aug 21 2019 - 17:38:01 +0100) Xilinx ZynqMP ZCU100 RevC

I2C: ready
DRAM: 2 GiB
EL Level: EL2
Chip ID: zu3eg
MMC: sdhci@ff160000: 0 (SD), sdhci@ff170000: 1
reading uboot.env
In: serial@ff010000
Out: serial@ff010000
Err: serial@ff010000
Model: ZynqMP ZCU100 RevC
Board: Xilinx ZynqMP
Net: Net Initialization Skipped
No ethernet found.
Hit any key to stop autoboot: 2  1  0
reading image.ub
5609352 bytes read in 418 ms (12.8 MiB/s)
## Loading kernel from FIT Image at 03000000 ...
Using 'conf@system-top.dtb' configuration
Trying 'kernel@1' kernel subimage
Description: Linux kernel
Type: Kernel Image
Compression: gzip compressed
Data Start: 0x030000f8
Data Size: 5570262 Bytes = 5.3 MiB
Architecture: AArch64
OS: Linux
Load Address: 0x00080000
Entry Point: 0x00080000
Hash algo: sha1
Hash value: f379e8507e9320553c71c35a9fdbb153362bc0ec
Verifying Hash Integrity ... sha1+ OK
## Loading fdt from FIT Image at 03000000 ...
Using 'conf@system-top.dtb' configuration
Trying 'fdt@system-top.dtb' fdt subimage
Description: Flattened Device Tree blob
Type: Flat Device Tree
Compression: uncompressed
Data Start: 0x035500d4
Data Size: 37182 Bytes = 36.3 KiB
Architecture: AArch64
Hash algo: sha1
Hash value: 97d696a2f22bfe8b68f778b0e9568d273972bda6
Verifying Hash Integrity ... sha1+ OK
Booting using the fdt blob at 0x35500d4
Uncompressing Kernel Image ... OK
Loading Device Tree to 0000000007ff3000, end 0000000007fff13d ... OK

Starting kernel ...

 

What might be the problem? Is it related to .dts? I am using the Petalinux's system-top.dtb, who has worked previously to when i was using Petalinux's default kernel, the only thing i've changed is the kernel.

0 Kudos
3 Replies
Highlighted
Observer
Observer
370 Views
Registered: ‎04-12-2018

Here is u-boot environment:

arch=arm
autoload=no
baudrate=115200
board=zynqmp
board_name=zynqmp
boot_img=BOOT.BIN
boot_targets=mmc0
bootargs=earlycon clk_ignore_unused earlyprintk=serial,ttyS0,115200 mem=1280M root=/dev/mmcblk0p2 rw rootwait
bootcmd=run uenvcmd
bootdelay=2
bootenv=uEnv.txt
clobstart=0x10000000
console=console=ttyPS0,115200
cp_kernel2ram=mmcinfo && fatload mmc ${sdbootdev} ${netstart} ${kernel_img}
cpu=armv8
default_bootcmd=run uenvboot; run cp_kernel2ram && bootm ${netstart}
dfu_mmc_info=set dfu_alt_info ${kernel_image} fat 0 1\\;dfu_mmc=run dfu_mmc_info && dfu 0 mmc 0
dfu_ram=run dfu_ram_info && dfu 0 ram 0
dfu_ram_info=setenv dfu_alt_info image.ub ram $netstart 0x1e00000
dtb_img=system.dtb
dtbnetstart=0x23fff000
fault=echo ${img} image size is greater than allocated place - partition ${img} is NOT UPDATED
fdtcontroladdr=7fe84310
importbootenv=echo "Importing environment from SD ..."; env import -t ${loadbootenv_addr} $filesize
install_boot=mmcinfo && fatwrite mmc ${sdbootdev} ${clobstart} ${boot_img} ${filesize}
install_bootenv=mmcinfo && fatwrite mmc ${sdbootdev} ${clobstart} ${bootenv_img} ${filesize}
install_kernel=mmcinfo && fatwrite mmc ${sdbootdev} ${clobstart} ${kernel_img} ${filesize}
kernel_img=image.ub
loadaddr=0x10000000
loadbootenv=load mmc $sdbootdev:$partid ${loadbootenv_addr} ${bootenv}
loadbootenv_addr=0x00100000
modeboot=sdboot
netstart=0x10000000
psserial0=setenv stdout ttyPS0;setenv stdin ttyPS0
sd_uEnvtxt_existence_test=test -e mmc $sdbootdev:$partid /uEnv.txt
sd_update_dtb=echo Updating dtb from SD; mmcinfo && fatload mmc ${sdbootdev}:1 ${clobstart} ${dtb_img} && run install_dtb
sdbootdev=0
serial=setenv stdout serial;setenv stdin serial
setup=setenv partid auto
soc=zynqmp
stderr=serial@ff010000
stdin=serial@ff010000
stdout=serial@ff010000
test_crc=if imi ${clobstart}; then run test_img; else echo ${img} Bad CRC - ${img} is NOT UPDATED; fi
test_img=setenv var "if test ${filesize} -gt ${psize}; then run fault; else run ${installcmd}; fi"; run var; setenv var
thor_mmc=run dfu_mmc_info && thordown 0 mmc 0
thor_ram=run dfu_ram_info && thordown 0 ram 0
uenvboot=if run sd_uEnvtxt_existence_test; then run loadbootenv; echo Loaded environment from ${bootenv}; run importbootenv; fi; if test -n $uenvcmd; then echo Running uenvcmd ...; run uenvcmd; fi
uenvcmd=fatload mmc 0 0x3000000 image.ub && bootm 0x3000000
vendor=xilinx
0 Kudos
Highlighted
Moderator
Moderator
336 Views
Registered: ‎09-12-2007

Are you using the correct console in the bootargs?

0 Kudos
Highlighted
Observer
Observer
328 Views
Registered: ‎04-12-2018

I think so, because i use the same u-boot variable values when i boot using Petalinux's kernel source. The hang only occurs when i am using an external kernel source.

0 Kudos