Thank you for your help, Julien I found the memory overlapping problem between Kernel and Device Tree in bootwrapper. The problem came from INITRD_OFFSET and PHYS_OFFSET macro(0x00d00000) I fixed these offsets from 0x00d00000 to 0x00e00000 and then I avoided the memory overlapping problem:
(XEN) MODULE[0]: 0000000080e0230c - 0000000080e04731 Device Tree (XEN) MODULE[1]: 0000000080a00000 - 0000000080d904b8 Kernel console=hvc0 earlyprintk=xen debug mem=2048M root=/dev/mmcblk0 rw ip=dhcp However, I've got another error as below: (XEN) Checking for initrd in /chosen (XEN) RAM: 0000000080000000 - 00000000ffffffff (XEN) (XEN) MODULE[0]: 0000000080e0230c - 0000000080e04731 Device Tree (XEN) MODULE[1]: 0000000080a00000 - 0000000080d904b8 Kernel console=hvc0 earlyprintk=xen debug mem=2048M root=/dev/mmcblk0 rw ip=dhcp (XEN) (XEN) Command line: earlyprintk console=ttyAMA0 (XEN) Placing Xen at 0x00000000ffe00000-0x0000000100000000 (XEN) Update BOOTMOD_XEN from 0000000080200000-00000000802fd781 => 00000000ffe00000-00000000ffefd781 (XEN) Xen heap: 00000000fa000000-00000000fe000000 (16384 pages) (XEN) Dom heap: 507904 pages (XEN) Domain heap initialised (XEN) Platform: VERSATILE EXPRESS (XEN) Bad console= option 'ttyAMA0' Xen 4.8-unstable (XEN) Xen version 4.8-unstable (wonseok@) (arm-linux-gnueabihf-gcc (crosstool-NG linaro-1.13.1-4.7-2013.03-20130313 - Linaro GCC 2013.03) 4.7.3 20130226 (prerelease)) debug=y Tue Jul 12 19:59:29 KST 2016 (XEN) Latest ChangeSet: Thu Jun 30 14:01:02 2016 +0200 git:bb4f41b-dirty (XEN) Processor: 412fc0f0: "ARM Limited", variant: 0x2, part 0xc0f, rev 0x0 (XEN) 32-bit Execution: (XEN) Processor Features: 00001131:00011011 (XEN) Instruction Sets: AArch32 A32 Thumb Thumb-2 ThumbEE Jazelle (XEN) Extensions: GenericTimer Security (XEN) Debug Features: 02010555 (XEN) Auxiliary Features: 00000000 (XEN) Memory Model Features: 10201105 20000000 01240000 02102211 (XEN) ISA Features: 02101110 13112111 21232041 11112131 10011142 00000000 (XEN) Set SYS_FLAGS to 00000000ffe0004c (0020004c) (XEN) Generic Timer IRQ: phys=30 hyp=26 virt=27 Freq: 24000 KHz (XEN) GICv2 initialization: (XEN) gic_dist_addr=000000002c001000 (XEN) gic_cpu_addr=000000002c002000 (XEN) gic_hyp_addr=000000002c004000 (XEN) gic_vcpu_addr=000000002c006000 (XEN) gic_maintenance_irq=25 (XEN) GICv2: 128 lines, 8 cpus, secure (IID 3902043b). (XEN) Using scheduler: SMP Credit Scheduler (credit) (XEN) Allocated console ring of 64 KiB. (XEN) VFP implementer 0x41 architecture 4 part 0x30 variant 0xf rev 0x0 (XEN) Bringing up CPU1 - CPU 00000001 booting - - Xen starting in Hyp mode - - Setting up control registers - - Turning on paging - - Ready - (XEN) CPU 2 booted. (XEN) Bringing up CPU3 - CPU 00000003 booting - - Xen starting in Hyp mode - - Setting up control registers - - Turning on paging - - Ready - (XEN) CPU 3 booted. (XEN) Bringing up CPU4 - CPU 00000100 booting - - Xen starting in Hyp mode - - Setting up control registers - - Turning on paging - - Ready - (XEN) CPU 4 booted. (XEN) Bringing up CPU5 - CPU 00000101 booting - - Xen starting in Hyp mode - - Setting up control registers - - Turning on paging - - Ready - (XEN) CPU 5 booted. (XEN) Bringing up CPU6 - CPU 00000102 booting - - Xen starting in Hyp mode - - Setting up control registers - - Turning on paging - - Ready - (XEN) CPU 6 booted. (XEN) Bringing up CPU7 (XEN) CPU7 never came online (XEN) Failed to bring up CPU 7 (error -5) (XEN) Brought up 7 CPUs (XEN) P2M: 40-bit IPA (XEN) P2M: 3 levels with order-1 root, VTCR 0x80003558 (XEN) I/O virtualisation disabled (XEN) *** LOADING DOMAIN 0 *** (XEN) Loading kernel from boot module @ 0000000080a00000 (XEN) Allocating 1:1 mappings totalling 128MB for dom0: (XEN) BANK[0] 0x00000088000000-0x00000090000000 (128MB) (XEN) Grant table range: 0x000000ffe00000-0x000000ffe5d000 (XEN) Loading zImage from 0000000080a00000 to 000000008fc00000-000000008ff904b8 (XEN) Allocating PPI 16 for event channel interrupt (XEN) Loading dom0 DTB to 0x000000008fa00000-0x000000008fa0220e (XEN) Scrubbing Free RAM on 1 nodes using 7 CPUs (XEN) ...done. (XEN) Initial low memory virq threshold set at 0x4000 pages. (XEN) Std. Loglevel: All (XEN) Guest Loglevel: All (XEN) *** Serial input -> DOM0 (type 'CTRL-a' three times to switch input to Xen) (XEN) Freed 268kB init memory. (XEN) traps.c:2506:d0v0 HSR=0x90000045 pc=0x80341924 gva=0xefffe000 gpa=0x000000f7ffe000 Could you please explain the reason why the above fault? Thanks, Wonseok Thanks, Wonseok. 2016-07-12 19:09 GMT+09:00 Julien Grall <julien.gr...@arm.com>: > > > On 12/07/16 06:20, Wonseok Ko wrote: > >> Hi, All >> > > Hello, > > I founded the previous post to solve the problem as the same as mine, >> the patch was applied in latest version, but I've got the data abort. >> previous post: >> https://lists.xen.org/archives/html/xen-devel/2013-09/msg00606.html and >> I referred >> to the wiki page: >> http://wiki.xen.org/wiki/Xen_ARM_with_Virtualization_Extensions/FastModels >> > > This page has not been updated for a while for ARM32. It might be possible > that the page is out-of-date for the newer models. > > I build the latest version of Xen with command as below: >> # make distclean; XEN_TARGET_ARCH=arm32 >> CROSS_COMPILE=arm-linux-gnueabihf- debug=y CONFIG_EARLY_PRINTK=fastmodel >> ./configure >> # make xen XEN_TARGET_ARCH=arm32 CROSS_COMPILE=arm-linux-gnueabihf- >> debug=y CONFIG_EARLY_PRINTK=fastmodel -j 8 >> >> My fastmodels command as below: >> >> FVP_VE_Cortex-A15x4-A7x4 -acoretile.cluster0.*=./linux-system-semi.axf \ >> >> -acoretile.cluster1.*=./linux-system-semi.axf \ >> >> >> -Cmotherboard.smsc_91c111.enabled=1-Cmotherboard.hostbridge.userNetworking=1\ >> >> -Ccoretile.dualclustersystemconfigurationblock.CFG_ACTIVECLUSTER=0x3 \ >> >> -Ccoretile.cluster0.cpu0.semihosting-cmd_line="\ >> >> --kernel ../xen/xen/xen \ >> >> --module ../linux/arch/arm/boot/zImage \ >> >> --dtb rtsm_ve-cortex_a15x4_a7x4.dtb \ >> >> -- earlyprintk console=ttyAMA0 mem=2048M >> root=/dev/nfs nfsroot=192.168.0.8:/srv/nfsroot/ rw ip=dhcp" >> > > This should be the Xen command line and not Linux one. > > >> >> Does anybody help me to fix it? or If I did something wrong, please let >> me know. >> >> here is log: >> >> Trying 127.0.0.1... >> >> Connected to localhost. >> >> Escape character is '^]'. >> >> - UART enabled - >> >> - CPU 00000000 booting - >> >> - Xen starting in Hyp mode - >> >> - Zero BSS - >> >> - Setting up control registers - >> >> - Turning on paging - >> >> - Ready - >> >> (XEN) Checking for initrd in /chosen >> >> (XEN) RAM: 0000000080000000 - 00000000ffffffff >> >> (XEN) >> >> (XEN) MODULE[0]: 0000000080d0230c - 0000000080d0473d Device Tree >> >> (XEN) MODULE[1]: 0000000080a00000 - 0000000080d904b8 Kernel >> console=ttyAMA0 >> > > If I am not mistaken, the Device Tree and the Kernel overlaps in the > memory. So Xen will try to free twice the same page, hence the data abort > later one. > > I would look into the bootwrapper to find out why the addresses overlap. > > [...] > > (XEN) Xen call trace: >> >> (XEN) [<0021be40>] page_alloc.c#free_heap_pages+0x2c0/0x428 (PC) >> >> (XEN) [<0021be18>] page_alloc.c#free_heap_pages+0x298/0x428 (LR) >> >> (XEN) [<0021cbb8>] page_alloc.c#init_heap_pages+0x100/0x118 >> >> (XEN) [<0021ce78>] init_domheap_pages+0xb0/0xb4 >> >> (XEN) [<002549e8>] dt_unreserved_regions+0xf4/0xfc >> >> (XEN) [<0028b378>] discard_initial_modules+0x138/0x178 >> >> (XEN) [<0024b1b0>] construct_dom0+0xb24/0xc8c >> >> (XEN) [<0028c12c>] start_xen+0xd38/0xeb0 >> >> (XEN) [<00200550>] arm32/head.o#paging+0x94/0xd8 >> > > Regards, > > -- > Julien Grall >
_______________________________________________ Xen-devel mailing list Xen-devel@lists.xen.org https://lists.xen.org/xen-devel