[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Minios-devel] [UNIKRAFT/NEWLIB PATCH 1/1] Add patch to have newlib running on ARM64
On 19/12/2019 12:35, Santiago Pagani wrote: Hi Julien, The problem is the same one encountered by Justin, quoted "some fdt nodes are parsed incorrectly, especially for those compatible strings with "\0"". This seems to be a newlib bug when compiling for ARM64. Instead of using Justin's workaround that adds the -DPREFER_SIZE_OVER_SPEED flag, this patch attempts to solve it in a more robust way by using the machine specific source files, written and tested for ARM64. That's a matter of perspective, there is still nothing in the stack trace below proving this is a newlib bug. Your changes may just make harder to reproduce the bug. Without the patch, the output we see is: qemu-system-aarch64 -machine virt -cpu cortex-a53 -display none -serial stdio -m 32M -kernel ./build/helloworld_kvm-arm64 [ 0.000000] Info: [libkvmplat] setup.cFound device tree on: %p @ 51 : Found device tree on: 0x40000000 [ 0.000000] Info: [libkvmplat] pl011.clibkvmplat @ 119 : Serial initializing [ 0.000000] Info: [libkvmplat] pl011.clibkvmplat @ 139 : Found PL011 UART on: 0x9000000 [ 0.000000] Info: [libkvmplat] pl011.clibkvmplat @ 142 : PL011 UART initialized [ 0.000000] Info: [libkvmplat] setup.cFound device tree on: %p @ 213 : Entering from KVM (arm64)... [ 0.000000] Info: [libkvmplat] setup.cFound device tree on: %p @ 199 : No command line found [ 0.000000] Info: [libkvmplat] setup.cFound device tree on: %p @ 69 : No PSCI conduit found in DTB [ 0.000000] Info: [libkvmplat] setup.cFound device tree on: %p @ 93 : Support PSCI from PSCI-0.2 [ 0.000000] Warn: [libkvmplat] setup.cFound device tree on: %p @ 140 : Currently, we support only one memory bank! [ 0.000000] Info: [libkvmgicv2] gic-v2.c @ 423 : Probing GICv2... [ 0.000000] dbg: [libkvmofw] fdt.clibkvmofw @ 173 : reached root node [ 0.000000] dbg: [libkvmofw] fdt.clibkvmofw @ 173 : reached root node [ 0.000000] Info: [libkvmgicv2] gic-v2.c @ 442 : Found GICv2 on: Distributor : 0x8000000 - 0x7ffffff [ 0.000000] Info: [libkvmgicv2] gic-v2.c @ 446 : CPU interface: 0x1000000000000 - 0x100000800ffff [ 0.000000] Info: [libkvmgicv2] gic-v2.c @ 354 : GICv2 Max CPU interface:1 [ 0.000000] Info: [libkvmgicv2] gic-v2.c @ 360 : GICv2 Max interrupt lines:32 [ 0.000000] CRIT: [libkvmplat] traps.c SP : 0x%016lx ESR_EL1 : 0x%016lx ELR_EL1 : 0x%016lx LR (x30) : 0x%016lx PSTATE : 0x%016lx FAR_EL1 : 0x%016lx x%02d ~ x%02d: 0x%016lx 0x%016lx 0x%016lx 0x%016lx x28 ~ x29: 0x%016lx 0x%016lx Unikraft: EL%d invalid %s trap caught Unikraft: EL1 sync trap caught This does not give much clue as no values are printed. Could you update Unikraft to print? I am particularly interested to undersand the first one as the others are probably just a consequence of it. Cheers, -- Julien Grall _______________________________________________ Minios-devel mailing list Minios-devel@xxxxxxxxxxxxxxxxxxxx https://lists.xenproject.org/mailman/listinfo/minios-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |