[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Minios-devel] [PATCH 00/40] MINI-OS: enable the arm64 support
The work is based on Chen Baozi and Volodymyr's patches. I tested this patch set with my Softiron board. 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 -- 2.7.4 _______________________________________________ Minios-devel mailing list Minios-devel@xxxxxxxxxxxxxxxxxxxx https://lists.xenproject.org/cgi-bin/mailman/listinfo/minios-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |