在qemu vexpress-a15平台运行xen,guest OS Dom0 Mini-OS(Rtos)和Dom1 Linux

尝试在arm32平台上使用xen启动mini-os,这里使用的是mini-os编译生成二进制文件,由xen加载到创建域执行。

尝试了很久,启动mini-os在创建临时段表之后,开启mmu时系统跑飞,经过调试得出结论镜像的加载地址有问题,页表映射的物理地址跟实际加载地址不一样,开启mmu之后trap到指令终止异常。

        目前是这样修改的(因为也是刚接触xen不久,如果有大神了解这一块,请指导指导),修改xen代码中xen/arch/arm/kernel.c文件的kernel_zimage_place函数,将mini-os镜像加载到域内存起始地址+0x8000的偏移。

static paddr_t __init kernel_zimage_place(struct kernel_info *info)
{
    paddr_t load_addr;

    /*
     * If start is zero, the zImage is position independent, in this
     * case Documentation/arm/Booting recommends loading below 128MiB
     * and above 32MiB. Load it as high as possible within these
     * constraints, while also avoiding the DTB.
     */
    if ( info->zimage.start == 0 )
#ifdef CONFIG_ARM_64
    if ( info->type == DOMAIN_64BIT )
        return info->mem.bank[0].start + info->zimage.text_offset;
#endif

    /*
     * If start is zero, the zImage is position independent, in this
     * case Documentation/arm/Booting recommends loading below 128MiB
     * and above 32MiB. Load it as high as possible within these
     * constraints, while also avoiding the DTB.
     */
    if ( info->zimage.start == 0 )
    {
        paddr_t load_end;

        load_end = info->mem.bank[0].start + info->mem.bank[0].size;
        load_end = MIN(info->mem.bank[0].start + MB(128), load_end);

        load_addr = load_end - info->zimage.len;
        /* Align to 2MB */
        load_addr &= ~((2 << 20) - 1);
    } else if ( info->zimage.start == 1 ) {
        load_addr = info->mem.bank[0].start + 0x8000;
    }
    else
        load_addr = info->zimage.start;

    return load_addr;
}

在mini-os源码中,我们需要修改arm32.S的魔数值为1,因为在上面的kernel_zimage_place函数中的info->zimage.start匹配选项中我们设置为1,因此在mini-os上要做相应的匹配。

 

qemu-system-aarch64 -machine vexpress-a15 -machine virtualization=true -cpu cortex-a15 -m 1024 -kernel u-boot -device loader,file=xen-uImage,force-raw=on,addr=0x80400000 -device loader,file=mini-os.img,addr=0xa0008000 -device loader,file=vexpress-v2p-ca15_a7.dtb,addr=0x81f00000 -nographic

U-Boot 2019.01 (Sep 14 2021 - 02:57:40 -0700)

DRAM:  1 GiB
WARNING: Caches not enabled
Flash: 128 MiB
MMC:   MMC: 0
*** Warning - bad CRC, using default environment

In:    serial
Out:   serial
Err:   serial
Net:   smc911x-0
Hit any key to stop autoboot:  0 
=> bootm 0x80400000 - 0x81f00000
## Booting kernel from Legacy Image at 80400000 ...
   Image Name:   
   Image Type:   ARM Linux Kernel Image (uncompressed)
   Data Size:    1048584 Bytes = 1 MiB
   Load Address: 80200000
   Entry Point:  80200000
   Verifying Checksum ... OK
## Flattened Device Tree blob at 81f00000
   Booting using the fdt blob at 0x81f00000
   Loading Kernel Image ... OK
   Loading Device Tree to 9fe61000, end 9fe6842b ... OK

Starting kernel ...

- UART enabled -
- Boot CPU booting -
- Setting up control registers -
- Turning on paging -
- Zero BSS -
- Ready -
(XEN) Checking for initrd in /chosen
(XEN) RAM: 0000000080000000 - 000000009fffffff
(XEN) RAM: 00000000a0000000 - 00000000bfffffff
(XEN) 
(XEN) MODULE[0]: 0000000080200000 - 000000008033e290 Xen         
(XEN) MODULE[1]: 000000009fe61000 - 000000009fe66000 Device Tree 
(XEN) MODULE[2]: 00000000a0008000 - 00000000a0a08000 Kernel      
(XEN)  RESVD[0]: 000000009ffbf000 - 000000009ffbf138
(XEN)  RESVD[1]: 000000009fe61000 - 000000009fe66000
(XEN) 
(XEN) 
(XEN) Command line: dom0_mem=512M console=dtuart dtuart=serial0 dom0_vcpus_pin hmp-unsafe=true dom0_max_vcpus=1 bootscrub=0 loglvl=all
(XEN) PFN compression on bits 18...18
(XEN) Xen heap: 00000000be000000-00000000c0000000 (8192 pages)
(XEN) Dom heap: 253952 pages
(XEN) Domain heap initialised
(XEN) Booting using Device Tree
(XEN) Platform: VERSATILE EXPRESS
(XEN) Looking for dtuart at "serial0", options ""
 Xen 4.16-unstable
(XEN) Xen version 4.16-unstable (hdwei@) (arm-linux-gnueabihf-gcc (Linaro GCC 6.5-2018.12) 6.5.0) debug=y Fri Apr  1 23:33:34 PDT 2022
(XEN) Latest ChangeSet: Thu Sep 9 17:34:39 2021 +0100 git:c76cfad-dirty
(XEN) build-id: 290c50fcb8268d83a4ce6e1197aa1fc031ebc8c9
(XEN) Processor: 412fc0f1: "ARM Limited", variant: 0x2, part 0xc0f,rev 0x1
(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
(XEN)                          01240000 02102211
(XEN)   ISA Features: 02101110 13112111 21232041
(XEN)                 11112131 10011142 00000000
(XEN) Set SYS_FLAGS to 00000000802000d4 (002000d4)
(XEN) SMP: Allowing 1 CPUs
(XEN) Generic Timer IRQ: phys=30 hyp=26 virt=27 Freq: 62500 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: 160 lines, 1 cpu, secure (IID 00000000).
(XEN) XSM Framework v1.0.0 initialized
(XEN) Initialising XSM SILO mode
(XEN) Using scheduler: SMP Credit Scheduler rev2 (credit2)
(XEN) Initializing Credit2 scheduler
(XEN)  load_precision_shift: 18
(XEN)  load_window_shift: 30
(XEN)  underload_balance_tolerance: 0
(XEN)  overload_balance_tolerance: -3
(XEN)  runqueues arrangement: socket
(XEN)  cap enforcement granularity: 10ms
(XEN) load tracking window length 1073741824 ns
(XEN) Allocated console ring of 16 KiB.
(XEN) VFP implementer 0x41 architecture 4 part 0x30 variant 0xf rev 0x0
(XEN) CPU0: Guest atomics will try 1 times before pausing the domain
(XEN) Brought up 1 CPUs
(XEN) I/O virtualisation disabled
(XEN) P2M: 40-bit IPA
(XEN) P2M: 3 levels with order-1 root, VTCR 0x80003558
(XEN) Scheduling granularity: cpu, 1 CPU per sched-resource
(XEN) Adding cpu 0 to runqueue 0
(XEN)  First cpu on runqueue, activating
(XEN) alternatives: Patching with alt table 002d267c -> 002d276c
(XEN) CPU0 will execute ICIALLU on guest exit
(XEN) *** LOADING DOMAIN 0 ***
(XEN) Loading d0 kernel from boot module @ 00000000a0008000
(XEN) Allocating 1:1 mappings totalling 512MB for dom0:
(XEN) BANK[0] 0x00000088000000-0x00000098000000 (256MB)
(XEN) BANK[1] 0x000000a8000000-0x000000b8000000 (256MB)
(XEN) Grant table range: 0x00000080200000-0x00000080240000
(XEN) Allocating PPI 16 for event channel interrupt
(XEN) Loading zImage from 00000000a0008000 to 0000000088008000-0000000088026000
(XEN) Loading d0 DTB to 0x0000000090000000-0x0000000090003dc3
(XEN) Initial low memory virq threshold set at 0x4000 pages.
(XEN) Std. Loglevel: All
(XEN) Guest Loglevel: All
(XEN) ***************************************************
(XEN) WARNING: HMP COMPUTING HAS BEEN ENABLED.
(XEN) It has implications on the security and stability of the system,
(XEN) unless the cpu affinity of all domains is specified.
(XEN) ***************************************************
(XEN) 3... 2... 1... 
(XEN) *** Serial input to DOM0 (type 'CTRL-a' three times to switch input)
(XEN) Freed 348kB init memory.
(XEN) jump to start up guest machine pc:88008000
hello world 
enter arch_init...
Virtual -> physical offset = 0
Checking DTB at 08400000...
Console is on port 0
Console ring is at mfn 0
MM: Init
    _text: 00408000(VA)
    _etext: 0041f5bc(VA)
    _erodata: 00425000(VA)
    _edata: 00426000(VA)
    _end: 0042dd0c(VA)
Found memory at 0x88000000 (len 0x10000000)
Using pages 557102 to 622592 as free space for heap.
MM: Initialise page allocator for 42e000(8802e000)-103fc000(97ffc000)
MM: done
Found GIC: gicd_base = a4401000, gicc_base = a4402000
GIC not found!
GIC not found!
Initialising timer interface
Virtual Count register is bbbf260, freq = 62500000 Hz
Initialising console ... done.
FDT suggests grant table base 80200000
(XEN) grant_table.c:1865:d0v0 Expanding d0 grant table from 1 to 2 frames
(XEN) grant_table.c:1865:d0v0 Expanding d0 grant table from 2 to 3 frames
(XEN) grant_table.c:1865:d0v0 Expanding d0 grant table from 3 to 4 frames
gnttab_table mapped at f8600000.
Initialising scheduler
Thread "Idle": pointer: 0x00441010, stack: 0x103f8000
Thread "xenstore": pointer: 0x00441048, stack: 0x00444000
xenbus initialised on irq 0 mfn 0x0
Thread "shutdown": pointer: 0x00441080, stack: 0x103f0000
kernel.c: dummy main: start_info=0042d858
app main:0
app main:1
app main:2
app main:3
app main:4
app main:5
app main:6
app main:7
app main:8
app main:9
app main:10
app main:11
app main:12
app main:13
app main:14
app main:15
app main:16

运行xen,guest OS Dom0 Rtos和Dom1 Linux

        首先需要修改设备树文件:

        chosen {
                bootargs = "dom0_mem=512M console=dtuart dtuart=serial0 dom0_vcpus_pin hmp-unsafe=true dom0_max_vcpus=1 bootscrub=0 loglvl=all";
                /delete-property/stdout-path;
                xen,dom0-bootargs = "rw root=/dev/ram rdinit=/sbin/init earlyprintk=serial,ttyAMA0 console=hvc0 earlycon=xenboot";

                modules {
                        #address-cells = <1>;
                        #size-cells = <1>;
                        module@1 {
                                compatible = "xen,linux-zimage", "xen,multiboot-module";
                                reg = <0xa0008000 0x00a00000>;
                        };
                };

                domU1 {
                        compatible = "xen,domain";
                        #address-cells = <0x2>;
                        #size-cells = <0x1>;
                        memory = <0 131072>;
                        cpus = <1>;
                        vpl011;
                        module@1 {
                                compatible = "multiboot,kernel", "multiboot,module";
                                reg = <0x0 0xb0008000 0xffffff>;
                                bootargs = "rw root=/dev/ram rdinit=/sbin/init console=ttyAMA0";
                        };

                        module@2 {
                                compatible = "multiboot,ramdisk", "multiboot,module";
                                reg = <0x0 0x84000000 0xffffff>;
                        };
                };
        };

qemu-system-aarcchine virtualization=true -cpu cortex-a15 -m 1024 -kernel u-boot -device loader,file=xen-uImage,force-raw=on,addr=0x80400000 -device loader,file=zImage,addr=0xb0008000 -device loader,file=vexpress-v2p-ca15_a7.dtb,addr=0x81f00000 -device loader,file=rootfs.img.gz,addr=0x84000000 -device loader,file=mini-os.img,addr=0xa0008000 -nographic

U-Boot 2019.01 (Sep 14 2021 - 02:57:40 -0700)

DRAM:  1 GiB
WARNING: Caches not enabled
Flash: 128 MiB
MMC:   MMC: 0
*** Warning - bad CRC, using default environment

In:    serial
Out:   serial
Err:   serial
Net:   smc911x-0
Hit any key to stop autoboot:  0 
=> bootm 0x80400000 - 0x81f00000

 输入bootm 0x80400000 - 0x81f00000,启动xen,如下是启动输出流程。

## Booting kernel from Legacy Image at 80400000 ...
   Image Name:   
   Image Type:   ARM Linux Kernel Image (uncompressed)
   Data Size:    1048584 Bytes = 1 MiB
   Load Address: 80200000
   Entry Point:  80200000
   Verifying Checksum ... OK
## Flattened Device Tree blob at 81f00000
   Booting using the fdt blob at 0x81f00000
   Loading Kernel Image ... OK
   Loading Device Tree to 9fe61000, end 9fe685ae ... OK

Starting kernel ...

- UART enabled -
- Boot CPU booting -
- Setting up control registers -
- Turning on paging -
- Zero BSS -
- Ready -
(XEN) Checking for initrd in /chosen
(XEN) RAM: 0000000080000000 - 000000009fffffff
(XEN) RAM: 00000000a0000000 - 00000000bfffffff
(XEN) 
(XEN) MODULE[0]: 0000000080200000 - 000000008033e290 Xen         
(XEN) MODULE[1]: 000000009fe61000 - 000000009fe66000 Device Tree 
(XEN) MODULE[2]: 00000000a0008000 - 00000000a0a08000 Kernel      
(XEN) MODULE[3]: 00000000b0008000 - 00000000b1007fff Kernel      
(XEN) MODULE[4]: 0000000084000000 - 0000000084ffffff Ramdisk     
(XEN)  RESVD[0]: 000000009ffbf000 - 000000009ffbf138
(XEN)  RESVD[1]: 000000009fe61000 - 000000009fe66000
(XEN) 
(XEN) CMDLINE[00000000b0008000]:domU1 rw root=/dev/ram rdinit=/sbin/init console=ttyAMA0
(XEN) 
(XEN) Command line: dom0_mem=512M console=dtuart dtuart=serial0 dom0_vcpus_pin hmp-unsafe=true dom0_max_vcpus=1 bootscrub=0 loglvl=all
(XEN) PFN compression on bits 18...18
(XEN) Xen heap: 00000000be000000-00000000c0000000 (8192 pages)
(XEN) Dom heap: 253952 pages
(XEN) Domain heap initialised
(XEN) Booting using Device Tree
(XEN) Platform: VERSATILE EXPRESS
(XEN) Looking for dtuart at "serial0", options ""
 Xen 4.16-unstable
(XEN) Xen version 4.16-unstable (hdwei@) (arm-linux-gnueabihf-gcc (Linaro GCC 6.5-2018.12) 6.5.0) debug=y Thu Apr  7 19:39:17 PDT 2022
(XEN) Latest ChangeSet: Thu Sep 9 17:34:39 2021 +0100 git:c76cfad-dirty
(XEN) build-id: 4830b94fe5739cf53a28a8c9222535f48d661f54
(XEN) Processor: 412fc0f1: "ARM Limited", variant: 0x2, part 0xc0f,rev 0x1
(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
(XEN)                          01240000 02102211
(XEN)   ISA Features: 02101110 13112111 21232041
(XEN)                 11112131 10011142 00000000
(XEN) Set SYS_FLAGS to 00000000802000d4 (002000d4)
(XEN) SMP: Allowing 1 CPUs
(XEN) Generic Timer IRQ: phys=30 hyp=26 virt=27 Freq: 62500 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: 160 lines, 1 cpu, secure (IID 00000000).
(XEN) XSM Framework v1.0.0 initialized
(XEN) Initialising XSM SILO mode
(XEN) Using scheduler: SMP Credit Scheduler rev2 (credit2)
(XEN) Initializing Credit2 scheduler
(XEN)  load_precision_shift: 18
(XEN)  load_window_shift: 30
(XEN)  underload_balance_tolerance: 0
(XEN)  overload_balance_tolerance: -3
(XEN)  runqueues arrangement: socket
(XEN)  cap enforcement granularity: 10ms
(XEN) load tracking window length 1073741824 ns
(XEN) Allocated console ring of 16 KiB.
(XEN) VFP implementer 0x41 architecture 4 part 0x30 variant 0xf rev 0x0
(XEN) CPU0: Guest atomics will try 1 times before pausing the domain
(XEN) Brought up 1 CPUs
(XEN) I/O virtualisation disabled
(XEN) P2M: 40-bit IPA
(XEN) P2M: 3 levels with order-1 root, VTCR 0x80003558
(XEN) Scheduling granularity: cpu, 1 CPU per sched-resource
(XEN) Adding cpu 0 to runqueue 0
(XEN)  First cpu on runqueue, activating
(XEN) alternatives: Patching with alt table 002d267c -> 002d276c
(XEN) CPU0 will execute ICIALLU on guest exit
(XEN) *** LOADING DOMAIN 0 ***
(XEN) Loading d0 kernel from boot module @ 00000000a0008000
(XEN) Allocating 1:1 mappings totalling 512MB for dom0:
(XEN) BANK[0] 0x00000088000000-0x0000009c000000 (320MB)
(XEN) BANK[1] 0x000000a4000000-0x000000b0000000 (192MB)
(XEN) Grant table range: 0x00000080200000-0x00000080240000
(XEN) Allocating PPI 16 for event channel interrupt
(XEN) Loading zImage from 00000000a0008000 to 0000000088008000-0000000088025fff
(XEN) Loading d0 DTB to 0x0000000090000000-0x0000000090003e4e
(XEN) *** LOADING DOMU cpus=1 memory=20000KB ***
(XEN) Loading d1 kernel from boot module @ 00000000b0008000
(XEN) Loading ramdisk from boot module @ 0000000084000000
(XEN) Allocating mappings totalling 128MB for d1:
(XEN) d1 BANK[0] 0x00000040000000-0x00000048000000 (128MB)
(XEN) d1 BANK[1] 0x00000200000000-0x00000200000000 (0MB)
(XEN) Loading zImage from 00000000b0008000 to 0000000047a00000-0000000047e22998
(XEN) Loading d1 initrd from 0000000084000000 to 0x0000000046a00000-0x00000000479fffff
(XEN) Loading d1 DTB to 0x0000000046800000-0x00000000468004bb
(XEN) Initial low memory virq threshold set at 0x4000 pages.
(XEN) Std. Loglevel: All
(XEN) Guest Loglevel: All
(XEN) ***************************************************
(XEN) WARNING: HMP COMPUTING HAS BEEN ENABLED.
(XEN) It has implications on the security and stability of the system,
(XEN) unless the cpu affinity of all domains is specified.
(XEN) ***************************************************
(XEN) 3... 2... 1... 
(XEN) *** Serial input to DOM0 (type 'CTRL-a' three times to switch input)
(XEN) Freed 348kB init memory.
hello world 
enter arch_init...
Virtual -> physical offset = 0
Checking DTB at 08400000...
Console is on port 0
Console ring is at mfn 0
Found GIC: gicd_base = a4401000, gicc_base = a4402000
GIC not found!
GIC not found!
MM: Init
    _text: 00408000(VA)
    _etext: 0041f5cc(VA)
    _erodata: 00425000(VA)
    _edata: 00426000(VA)
    _end: 0042dd0c(VA)
Found memory at 0x88000000 (len 0x14000000)
Using pages 557102 to 638976 as free space for heap.
MM: Initialise page allocator for 42e000(8802e000)-143fc000(9bffc000)
MM: done
Found GIC: gicd_base = a4401000, gicc_base = a4402000
GIC not found!
GIC not found!
Initialising timer interface
Virtual Count register is c4da9f3, freq = 62500000 Hz
Initialising console ... done.
FDT suggests grant table base 80200000
(XEN) grant_table.c:1865:d0v0 Expanding d0 grant table from 1 to 2 frames
(XEN) grant_table.c:1865:d0v0 Expanding d0 grant table from 2 to 3 frames
(XEN) grant_table.c:1865:d0v0 Expanding d0 grant table from 3 to 4 frames
gnttab_table mapped at f8600000.
Initialising scheduler
Thread "Idle": pointer: 0x00442010, stack: 0x143f8000
Thread "xenstore": pointer: 0x00442048, stack: 0x00444000
xenbus initialised on irq 0 mfn 0x0
Thread "shutdown": pointer: 0x00442080, stack: 0x143f0000
kernel.c: dummy main: start_info=0042d858
app main:0
(XEN) d1v0: vGICD: unhandled word write 0xffffffff to ICACTIVER4
(XEN) d1v0: vGICD: unhandled word write 0xffffffff to ICACTIVER8
(XEN) d1v0: vGICD: unhandled word write 0xffffffff to ICACTIVER12
(XEN) d1v0: vGICD: unhandled word write 0xffffffff to ICACTIVER16
(XEN) d1v0: vGICD: unhandled word write 0xffffffff to ICACTIVER0
(XEN) DOM1: Booting Linux on physical CPU 0x0
(XEN) DOM1: Linux version 4.20.0 (hdwei@ubuntu) (gcc version 6.5.0 (Linaro GCC 6.5-2018.12)) #2 SMP Sun Sep 26 01:35:27 PDT 2021
(XEN) DOM1: CPU: ARMv7 Processor [412fc0f1] revision 1 (ARMv7), cr=10c5387d
(XEN) DOM1: CPU: div instructions available: patching division code
(XEN) DOM1: CPU: PIPT / VIPT nonaliasing data cache, PIPT instruction cache
(XEN) DOM1: OF: fdt: Machine model: (null)
(XEN) DOM1: Memory policy: Data cache writealloc
(XEN) DOM1: psci: probing for conduit method from DT.
(XEN) DOM1: psci: PSCIv1.1 detected in firmware.
(XEN) DOM1: psci: Using standard PSCI v0.2 function IDs
(XEN) DOM1: psci: Trusted OS migration not required
(XEN) DOM1: psci: SMC Calling Convention v1.1
(XEN) DOM1: random: get_random_bytes called from start_kernel+0x9c/0x464 with crng_init=0
(XEN) DOM1: percpu: Embedded 17 pages/cpu @(ptrval) s37772 r8192 d23668 u69632
(XEN) DOM1: Built 1 zonelists, mobility grouping on.  Total pages: 32512
(XEN) DOM1: Kernel command line: rw root=/dev/ram rdinit=/sbin/init console=ttyAMA0
(XEN) DOM1: Dentry cache hash table entries: 16384 (order: 4, 65536 bytes)
(XEN) DOM1: Inode-cache hash table entries: 8192 (order: 3, 32768 bytes)
(XEN) DOM1: Memory: 102640K/131072K available (7168K kernel code, 406K rwdata, 1456K rodata, 1024K init, 165K bss, 28432K reserved, 0K cma
(XEN) DOM1: -reserved)
(XEN) DOM1: Virtual kernel memory layout:
(XEN) DOM1:     vector  : 0xffff0000 - 0xffff1000   (   4 kB)
(XEN) DOM1:     fixmap  : 0xffc00000 - 0xfff00000   (3072 kB)
(XEN) DOM1:     vmalloc : 0x88800000 - 0xff800000   (1904 MB)
(XEN) DOM1:     lowmem  : 0x80000000 - 0x88000000   ( 128 MB)
(XEN) DOM1:     modules : 0x7f000000 - 0x80000000   (  16 MB)
(XEN) DOM1:       .text : 0x(ptrval) - 0x(ptrval)   (8160 kB)
(XEN) DOM1:       .init : 0x(ptrval) - 0x(ptrval)   (1024 kB)
(XEN) DOM1:       .data : 0x(ptrval) - 0x(ptrval)   ( 407 kB)
(XEN) DOM1:        .bss : 0x(ptrval) - 0x(ptrval)   ( 166 kB)
(XEN) DOM1: SLUB: HWalign=64, Order=0-3, MinObjects=0, CPUs=1, Nodes=1
(XEN) DOM1: rcu: Hierarchical RCU implementation.
(XEN) DOM1: rcu: 	RCU event tracing is enabled.
(XEN) DOM1: rcu: 	RCU restricting CPUs from NR_CPUS=8 to nr_cpu_ids=1.
(XEN) DOM1: rcu: RCU calculated value of scheduler-enlistment delay is 10 jiffies.
(XEN) DOM1: rcu: Adjusting geometry for rcu_fanout_leaf=16, nr_cpu_ids=1
(XEN) DOM1: NR_IRQS: 16, nr_irqs: 16, preallocated irqs: 16
(XEN) DOM1: arch_timer: cp15 timer(s) running at 62.50MHz (virt).
(XEN) DOM1: clocksource: arch_sys_counter: mask: 0xffffffffffffff max_cycles: 0x1cd42e208c, max_idle_ns: 881590405314 ns
(XEN) DOM1: sched_clock: 56 bits at 62MHz, resolution 16ns, wraps every 4398046511096ns
(XEN) DOM1: Switching to timer-based delay loop, resolution 16ns
(XEN) DOM1: Console: colour dummy device 80x30
(XEN) DOM1: Calibrating delay loop (skipped), value calculated using timer frequency.. 125.00 BogoMIPS (lpj=625000)
(XEN) DOM1: pid_max: default: 32768 minimum: 301
(XEN) DOM1: Mount-cache hash table entries: 1024 (order: 0, 4096 bytes)
(XEN) DOM1: Mountpoint-cache hash table entries: 1024 (order: 0, 4096 bytes)
(XEN) DOM1: CPU: Testing write buffer coherency: ok
(XEN) DOM1: CPU0: Spectre v2: firmware did not set auxiliary control register IBE bit, system vulnerable
(XEN) DOM1: /cpus/cpu@0 missing clock-frequency property
(XEN) DOM1: CPU0: thread -1, cpu 0, socket 0, mpidr 80000000
(XEN) DOM1: Setting up static identity map for 0x40100000 - 0x40100060
(XEN) DOM1: rcu: Hierarchical SRCU implementation.
(XEN) DOM1: smp: Bringing up secondary CPUs ...
(XEN) DOM1: smp: Brought up 1 node, 1 CPU
(XEN) DOM1: SMP: Total of 1 processors activated (125.00 BogoMIPS).
(XEN) DOM1: CPU: All CPU(s) started in SVC mode.
(XEN) DOM1: devtmpfs: initialized
(XEN) DOM1: VFP support v0.3: implementor 41 architecture 4 part 30 variant f rev 0
(XEN) DOM1: clocksource: jiffies: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 19112604462750000 ns
(XEN) DOM1: futex hash table entries: 256 (order: 2, 16384 bytes)
(XEN) DOM1: NET: Registered protocol family 16
(XEN) DOM1: DMA: preallocated 256 KiB pool for atomic coherent allocations
(XEN) DOM1: cpuidle: using governor ladder
(XEN) DOM1: hw-breakpoint: Failed to enable monitor mode on CPU 0.
(XEN) DOM1: Serial: AMBA PL011 UART driver
(XEN) DOM1: 22000000.sbsa-uart: ttyAMA0 at MMIO 0x22000000 (irq = 19, base_baud = 0) is a SBSA
(XEN) DOM1: printk: console [ttyAMA0] enabled
(XEN) DOM1: SCSI subsystem initialized
(XEN) DOM1: usbcore: registered new interface driver usbfs
(XEN) DOM1: usbcore: registered new interface driver hub
(XEN) DOM1: usbcore: registered new device driver usb
(XEN) DOM1: Advanced Linux Sound Architecture Driver Initialized.
(XEN) DOM1: clocksource: Switched to clocksource arch_sys_counter
(XEN) DOM1: NET: Registered protocol family 2
(XEN) DOM1: tcp_listen_portaddr_hash hash table entries: 512 (order: 0, 6144 bytes)
(XEN) DOM1: TCP established hash table entries: 1024 (order: 0, 4096 bytes)
(XEN) DOM1: TCP bind hash table entries: 1024 (order: 1, 8192 bytes)
(XEN) DOM1: TCP: Hash tables configured (established 1024 bind 1024)
(XEN) DOM1: UDP hash table entries: 256 (order: 1, 8192 bytes)
(XEN) DOM1: UDP-Lite hash table entries: 256 (order: 1, 8192 bytes)
(XEN) DOM1: NET: Registered protocol family 1
(XEN) DOM1: RPC: Registered named UNIX socket transport module.
(XEN) DOM1: RPC: Registered udp transport module.
(XEN) DOM1: RPC: Registered tcp transport module.
(XEN) DOM1: RPC: Registered tcp NFSv4.1 backchannel transport module.
(XEN) DOM1: Trying to unpack rootfs image as initramfs...
app main:1
(XEN) DOM1: Freeing initrd memory: 16384K
(XEN) DOM1: workingset: timestamp_bits=30 max_order=15 bucket_order=0
(XEN) DOM1: squashfs: version 4.0 (2009/01/31) Phillip Lougher
(XEN) DOM1: jffs2: version 2.2. (NAND) © 2001-2006 Red Hat, Inc.
(XEN) DOM1: 9p: Installing v9fs 9p2000 file system support
(XEN) DOM1: io scheduler noop registered (default)
(XEN) DOM1: io scheduler mq-deadline registered
(XEN) DOM1: io scheduler kyber registered
(XEN) DOM1: brd: module loaded
(XEN) DOM1: libphy: Fixed MDIO Bus: probed
(XEN) DOM1: usbcore: registered new interface driver usb-storage
(XEN) DOM1: ledtrig-cpu: registered to indicate activity on CPUs
(XEN) DOM1: usbcore: registered new interface driver usbhid
(XEN) DOM1: usbhid: USB HID core driver
(XEN) DOM1: oprofile: no performance counters
(XEN) DOM1: oprofile: using timer interrupt.
(XEN) DOM1: NET: Registered protocol family 17
(XEN) DOM1: 9pnet: Installing 9P2000 support
(XEN) DOM1: Registering SWP/SWPB emulation handler
(XEN) DOM1: hctosys: unable to open rtc device (rtc0)
(XEN) DOM1: ALSA device list:
(XEN) DOM1:   No soundcards found.
app main:2
(XEN) DOM1: Freeing unused kernel memory: 1024K
(XEN) DOM1: Run /sbin/init as init process
(XEN) DOM1: mount: mounting tmpfs on /tmp failed: No such file or directory
(XEN) DOM1: ifconfig: SIOCSIFADDR: No such device
(XEN) DOM1: 
app main:3
app main:4
app main:5
app main:6
app main:7
app main:8
app main:9
(XEN) *** Serial input to DOM1 (type 'CTRL-a' three times to switch input)
app main:10
app main:11
app main:12
(XEN) Please press Enter to activate this console. 
(XEN) 
(XEN) [root@vexpress ]# 
(XEN) [root@vexpress ]# app main:13

(XEN) [root@vexpress ]# 
(XEN) [root@vexpress ]# app main:14
app main:15
app main:16
app main:17
app main:18

  “app main:xx”是由mini-os打印出来的,启动之后就循环做打印输出;通过输入连续6次Ctrl+a切换到DomU1:

(XEN) *** Serial input to DOM1 (type 'CTRL-a' three times to switch input)
app main:10
app main:11
app main:12
(XEN) Please press Enter to activate this console. 
(XEN) 
(XEN) [root@vexpress ]# 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值