[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Minios-devel] [PATCH 00/40] MINI-OS: enable the arm64 support



Hi Shijie,

On 03/11/17 03:11, Huang Shijie wrote:
The work is based on Chen Baozi and Volodymyr's patches.
I tested this patch set with my Softiron board.

From the logs I can see you have multiple threads started. But what kind of test did you perform? Did you try blkfront/netfront/balloon?

Cheers,


This patch set is based on the latest mini-os code:
  (git tree: https://github.com/lorc/mini-os.git
   The top is " 0b4b789 Update Xen header files again")

After this patch set:
        1.) The scheduler for arm64 works fine.
        2.) The gic/timer for arm64 works fine.

I tested this patch set on Softiron(arm64) and x86_64 platform.

Please see the log after the patch set:
   ---------------------------------------------------------
    (d1) - Mini-OS booting -
    (d1) - Setup CPU -
    (d1) - Setup booting pagetable -
    (d1) - MMU on -
    (d1) - Setup stack -
    (d1) - Jumping to C entry -
    (d1) Virtual -> physical offset = ffffffbfc0000000
    (d1) Checking DTB at 0xffffffc008000000...
    (d1) MM: Init
    (d1)     _text:       0xffffffc000000000(VA)
    (d1)     _etext:      0xffffffc000019a0c(VA)
    (d1)     _erodata:    0xffffffc000020000(VA)
    (d1)     _edata:      0xffffffc00002a38c(VA)
    (d1)     stack start: 0xffffffc000026000(VA)
    (d1)     _end:        0xffffffc0000337a0(VA)
    (d1) Found memory at 0x40000000 (len 0x20000000)
    (d1) Using pages 262196 to 393216 as free space for heap.
    (d1) MM: Initialise page allocator for 
ffffffc000034000(40034000)-ffffffc01ffff000(5ffff000)
    (d1)     Adding memory range 40040000-5ffff000
    (d1) MM: done
    (d1) Found GIC: gicd_base = 0xffffffbfc3001000, gicc_base = 
0xffffffbfc3002000
    (d1) Initialising timer interface
    (d1) Virtual Count register is 2abcb3e, freq = 250000000 Hz
    (d1) Initialising console ... done.
    (d1) FDT suggests grant table base 38000000
    (d1) gnttab_table mapped at 0xffffffbff8000000.
    (d1) Initialising scheduler
    (d1) Thread "Idle": pointer: 0x0xffffffc01fff8078, stack: 
0x0xffffffc01fff0000
    (d1) Thread "xenstore": pointer: 0x0xffffffc01fff80d8, stack: 
0x0xffffffc01fff4000
    (d1) xenbus initialised on irq 1
    (d1) Thread "shutdown": pointer: 0x0xffffffc01fff8138, stack: 
0x0xffffffc01ffe0000
    (d1) kernel.c: dummy main: par=0
   ---------------------------------------------------------

Huang Shijie (40):
   mini-os: fix the wrong parameter for map_free() in
     init_page_allocator()
   mini-os: replace the L1_PAGETABLE_SHIFT with PAGE_SHIFT
   arm64: add the boot code
   arm64: change physical_address_offset to paddr_t
   arm64: fix the wrong mask for to_virt/to_phys
   arm64: add the __PAGE_SIZE macro in header file
   arm64: add exception support
   arm64: dump the registers for do_bad_mode()/do_sync()
   arm64: add the basic helpers for arm64
   arm64: define the quad_t for arm64
   arm64: time.c: fix the wrong format for printk
   mini-os: define ULONG_MAX/LONG_MAX for arm64
   mini-os: remove the e820 from common code
   arm64: mm.c: fix the compiler error
   arm64: refine the arch_init_mm
   arm64: add shared_info support
   mini-os: implement the memmove/memchr
   mini-os: fix the compilor error in time
   arm64: define the CALLEE_SAVED_REGISTERS
   arm64: implement the __arch_switch_threads
   arm64: implement the arm_start_thread
   arm64: change sp to "unsigned long" type
   arm64: fix the wrong size of the register
   arm64: implement the run_idle_thread
   arm64: set the stack for the arm_start_thread
   mini-os: update the .gitignore
   arm64: add the header file arch_wordsize.h
   arm64: add the hypercall support
   arm64: init the memory system before console/xenbus/gic
   arm64: set the mapping for console and xenbus
   arm: add a new helper ioremap
   arm: parse out the address/size for gicd/gicc
   arm64: gic: implement the REG_WRITE32/REG_READ32
   arm64: implement the timer helpers for arm64
   arm64: time.c: read out the frequency for arm64
   arm64: add the link file
   arm64: add the makefile
   mini-os: Set TARGET_ARCH_FAM for arm64
   mini-os: create the image for arm
   mini-os: compile the dtc submodule for arm64

  .gitignore                        |   4 +
  .gitmodules                       |   3 +
  Config.mk                         |  11 +-
  Makefile                          |  23 ++
  arch/arm/arm64/Makefile           |  26 ++
  arch/arm/arm64/arch.mk            |   7 +
  arch/arm/arm64/arm64.S            | 534 ++++++++++++++++++++++++++++++++++++++
  arch/arm/arm64/asm.h              |  18 ++
  arch/arm/arm64/hypercalls64.S     |  81 ++++++
  arch/arm/arm64/minios-arm64.lds.S |  76 ++++++
  arch/arm/arm64/traps.c            |  44 ++++
  arch/arm/gic.c                    |  81 +++++-
  arch/arm/mm.c                     | 216 +++++++++++++--
  arch/arm/sched.c                  |  34 ++-
  arch/arm/setup.c                  |  10 +-
  arch/arm/time.c                   |  21 +-
  arch/x86/mm.c                     |  17 +-
  include/arm/arch_limits.h         |   2 +
  include/arm/arch_mm.h             |  26 +-
  include/arm/arm32/os.h            |  32 +++
  include/arm/arm64/arch_wordsize.h |   7 +
  include/arm/arm64/os.h            |  41 +++
  include/arm/arm64/pagetable.h     | 106 ++++++++
  include/arm/os.h                  |  65 +----
  include/arm/traps.h               |  14 +
  include/mm.h                      |   3 +
  include/posix/limits.h            |   2 +-
  include/sys/time.h                |   4 +
  include/types.h                   |   2 +-
  lib/memmove.c                     |  44 ++++
  lib/string.c                      |  12 +
  mm.c                              |  15 +-
  32 files changed, 1451 insertions(+), 130 deletions(-)
  create mode 100644 .gitmodules
  create mode 100644 arch/arm/arm64/Makefile
  create mode 100644 arch/arm/arm64/arch.mk
  create mode 100644 arch/arm/arm64/arm64.S
  create mode 100644 arch/arm/arm64/asm.h
  create mode 100644 arch/arm/arm64/hypercalls64.S
  create mode 100644 arch/arm/arm64/minios-arm64.lds.S
  create mode 100644 arch/arm/arm64/traps.c
  create mode 100644 include/arm/arm32/os.h
  create mode 100644 include/arm/arm64/arch_wordsize.h
  create mode 100644 include/arm/arm64/os.h
  create mode 100644 include/arm/arm64/pagetable.h
  create mode 100644 lib/memmove.c


--
Julien Grall

_______________________________________________
Minios-devel mailing list
Minios-devel@xxxxxxxxxxxxxxxxxxxx
https://lists.xenproject.org/cgi-bin/mailman/listinfo/minios-devel

 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.