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

Re: [Xen-devel] [PATCH 0/4] mini-os: initial ARM support



On 5 June 2014 15:36, Oleksandr Tyshchenko
<oleksandr.tyshchenko@xxxxxxxxxxxxxxx> wrote:
> Hi Thomas, all
>
> Thank you,
> it is very interesting for me since I am trying to port XEN stuff to
> embedded OS and using Mini-OS
> as example.
>
> I tried to run Mini-OS as domU and I got a hypervisor crash at an early
> initialization stage (
>
> I took Mini-OS from github:
> https://github.com/talex5/xen ("proposed" branch)
> As I understand correctly this branch contains all necessary patches to
> build
> and verify Mini-OS on ARM (I so have thought because the last 4 commits from
> this
> branch correspond to patch series in current thread). Is it correct?
>
> But the Mini-OS from "next" branch boots without crashes (I changed GIC
> addresses only):

Hi Oleksandr,

The "proposed" branch currently contain's only Karim Raslan's initial
ARM work. I have a series of patches on top of this (on the next
branch), but I was planning to get this initial support in first.

Possibly my "Fixed initialisation code" commit should be merged with
Karim's code into a single patch. On the other hand, it might be
clearer to keep them separate (especially for other people who have
built on Karim's original work, e.g. I see on github that Jonathan
Daugherty has a fork from there).

[...]

> Also, could you, please, explain me some generic things about Mini-OS:
> 1. Is HAVE_LIBC a necessary config? I mean if I build Mini-OS without proper
> LIBC support will the Mini-OS to operate fully
> (are there any restrictions?)

You only need HAVE_LIBC if you want to use your own libc. Without
HAVE_LIBC, minios provides its own versions of some basic functions
(memcmp, sprintf, etc). Mirage works without it, for example.

> 2. If yes, what should I do to build Mini-OS with proper LIBC support?
> Unfortunately, it is not clear for me.
>
>
> On Mon, Jun 2, 2014 at 8:49 PM, Thomas Leonard <talex5@xxxxxxxxx> wrote:
>>
>> This series is Karim's initial ARM support, broken up into smaller
>> patches.
>> I removed some debug code from the patch, fixed it to work on x86 again,
>> and replaced memmove with a BSD-licensed version.
>>
>> I also added a fix so that Mini-OS doesn't shut down immediately. This is
>> for x86 too, but I needed it because otherwise it's hard to test it.
>>
>> It's probably not worth worrying too much about the ARM support itself
>> (there
>> will be more patches coming shortly!) - the main thing is refactoring
>> Mini-OS
>> to support the new architecture.
>>
>> Karim Raslan (3):
>>   mini-os: Tidied up code
>>   mini-os: Initial commit to port minios to ARM
>>   mini-os: Added FDT support on ARM
>>
>> Thomas Leonard (1):
>>   mini-os: Fixed shutdown thread
>>
>>  extras/mini-os/ARM-TODO.txt                        |   19 +
>>  extras/mini-os/COPYING                             |   27 +
>>  extras/mini-os/Config.mk                           |    2 +
>>  extras/mini-os/Makefile                            |   23 +
>>  extras/mini-os/README                              |    7 +-
>>  extras/mini-os/arch/arm/Makefile                   |   33 +
>>  extras/mini-os/arch/arm/arch.mk                    |    6 +
>>  extras/mini-os/arch/arm/arm32.S                    |  211 +++
>>  extras/mini-os/arch/arm/divsi3.S                   |  404 ++++++
>>  extras/mini-os/arch/arm/events.c                   |   24 +
>>  extras/mini-os/arch/arm/hypercalls32.S             |   88 ++
>>  extras/mini-os/arch/arm/ldivmod.S                  |   67 +
>>  extras/mini-os/arch/arm/ldivmod_helper.c           |   66 +
>>  extras/mini-os/arch/arm/minios-arm32.lds           |   73 +
>>  extras/mini-os/arch/arm/mm.c                       |   44 +
>>  extras/mini-os/arch/arm/qdivrem.c                  |  270 ++++
>>  extras/mini-os/arch/arm/sched.c                    |   32 +
>>  extras/mini-os/arch/arm/setup.c                    |   55 +
>>  extras/mini-os/arch/arm/time.c                     |  232 +++
>>  extras/mini-os/arch/arm/xenbus.c                   |   36 +
>>  extras/mini-os/arch/x86/events.c                   |   28 +
>>  extras/mini-os/arch/x86/setup.c                    |   44 +-
>>  extras/mini-os/arch/x86/time.c                     |    6 +-
>>  extras/mini-os/arch/x86/x86_32.S                   |    2 +-
>>  extras/mini-os/arch/x86/x86_64.S                   |    2 +-
>>  extras/mini-os/arch/x86/xenbus.c                   |   10 +
>>  extras/mini-os/console/console.c                   |    4 +-
>>  extras/mini-os/drivers/gic.c                       |  179 +++
>>  extras/mini-os/events.c                            |   35 +-
>>  extras/mini-os/gntmap.c                            |   34 +-
>>  extras/mini-os/gnttab.c                            |    1 +
>>  extras/mini-os/hypervisor.c                        |   20 +-
>>  extras/mini-os/include/arm/arch_limits.h           |    9 +
>>  extras/mini-os/include/arm/arch_mm.h               |   37 +
>>  extras/mini-os/include/arm/arch_sched.h            |   22 +
>>  extras/mini-os/include/arm/arch_spinlock.h         |   49 +
>>  extras/mini-os/include/arm/hypercall-arm32.h       |  173 +++
>>  extras/mini-os/include/arm/os.h                    |  314 +++++
>>  extras/mini-os/include/arm/traps.h                 |   20 +
>>  extras/mini-os/include/console.h                   |    1 +
>>  extras/mini-os/include/fdt.h                       |   60 +
>>  extras/mini-os/include/hypervisor.h                |   19 +-
>>  extras/mini-os/include/lib.h                       |    4 +-
>>  extras/mini-os/include/libfdt.h                    | 1478
>> ++++++++++++++++++++
>>  extras/mini-os/include/libfdt_env.h                |   37 +
>>  extras/mini-os/include/mm.h                        |    2 +
>>  extras/mini-os/include/types.h                     |   73 +-
>>  extras/mini-os/include/x86/arch_mm.h               |    2 +
>>  extras/mini-os/include/x86/arch_spinlock.h         |    2 +-
>>  extras/mini-os/include/x86/os.h                    |   19 +-
>>  .../mini-os/include/x86/x86_64/hypercall-x86_64.h  |    1 +
>>  extras/mini-os/kernel.c                            |   94 +-
>>  extras/mini-os/lib/fdt/fdt.c                       |  222 +++
>>  extras/mini-os/lib/fdt/fdt_empty_tree.c            |   84 ++
>>  extras/mini-os/lib/fdt/fdt_ro.c                    |  574 ++++++++
>>  extras/mini-os/lib/fdt/fdt_rw.c                    |  492 +++++++
>>  extras/mini-os/lib/fdt/fdt_strerror.c              |   96 ++
>>  extras/mini-os/lib/fdt/fdt_sw.c                    |  256 ++++
>>  extras/mini-os/lib/fdt/fdt_wip.c                   |  118 ++
>>  extras/mini-os/lib/fdt/libfdt_internal.h           |   95 ++
>>  extras/mini-os/lib/memmove.c                       |   45 +
>>  extras/mini-os/lib/string.c                        |   12 +
>>  extras/mini-os/main.c                              |    2 +-
>>  extras/mini-os/mm.c                                |    9 +-
>>  extras/mini-os/sched.c                             |   12 +-
>>  extras/mini-os/time.c                              |   12 +
>>  extras/mini-os/xenbus/xenbus.c                     |   20 +-
>>  67 files changed, 6410 insertions(+), 139 deletions(-)
>>  create mode 100644 extras/mini-os/ARM-TODO.txt
>>  create mode 100755 extras/mini-os/arch/arm/Makefile
>>  create mode 100644 extras/mini-os/arch/arm/arch.mk
>>  create mode 100644 extras/mini-os/arch/arm/arm32.S
>>  create mode 100644 extras/mini-os/arch/arm/divsi3.S
>>  create mode 100644 extras/mini-os/arch/arm/events.c
>>  create mode 100644 extras/mini-os/arch/arm/hypercalls32.S
>>  create mode 100644 extras/mini-os/arch/arm/ldivmod.S
>>  create mode 100644 extras/mini-os/arch/arm/ldivmod_helper.c
>>  create mode 100755 extras/mini-os/arch/arm/minios-arm32.lds
>>  create mode 100644 extras/mini-os/arch/arm/mm.c
>>  create mode 100644 extras/mini-os/arch/arm/qdivrem.c
>>  create mode 100644 extras/mini-os/arch/arm/sched.c
>>  create mode 100644 extras/mini-os/arch/arm/setup.c
>>  create mode 100644 extras/mini-os/arch/arm/time.c
>>  create mode 100644 extras/mini-os/arch/arm/xenbus.c
>>  create mode 100644 extras/mini-os/arch/x86/events.c
>>  create mode 100644 extras/mini-os/arch/x86/xenbus.c
>>  create mode 100644 extras/mini-os/drivers/gic.c
>>  create mode 100644 extras/mini-os/include/arm/arch_limits.h
>>  create mode 100644 extras/mini-os/include/arm/arch_mm.h
>>  create mode 100644 extras/mini-os/include/arm/arch_sched.h
>>  create mode 100755 extras/mini-os/include/arm/arch_spinlock.h
>>  create mode 100644 extras/mini-os/include/arm/hypercall-arm32.h
>>  create mode 100644 extras/mini-os/include/arm/os.h
>>  create mode 100644 extras/mini-os/include/arm/traps.h
>>  create mode 100644 extras/mini-os/include/fdt.h
>>  create mode 100644 extras/mini-os/include/libfdt.h
>>  create mode 100644 extras/mini-os/include/libfdt_env.h
>>  create mode 100644 extras/mini-os/lib/fdt/fdt.c
>>  create mode 100644 extras/mini-os/lib/fdt/fdt_empty_tree.c
>>  create mode 100644 extras/mini-os/lib/fdt/fdt_ro.c
>>  create mode 100644 extras/mini-os/lib/fdt/fdt_rw.c
>>  create mode 100644 extras/mini-os/lib/fdt/fdt_strerror.c
>>  create mode 100644 extras/mini-os/lib/fdt/fdt_sw.c
>>  create mode 100644 extras/mini-os/lib/fdt/fdt_wip.c
>>  create mode 100644 extras/mini-os/lib/fdt/libfdt_internal.h
>>  create mode 100644 extras/mini-os/lib/memmove.c
>>  create mode 100644 extras/mini-os/time.c
>>
>> --
>> 1.9.3
>>
>>
>> _______________________________________________
>> Xen-devel mailing list
>> Xen-devel@xxxxxxxxxxxxx
>> http://lists.xen.org/xen-devel
>
>
>
>
> --
>
> Oleksandr Tyshchenko | Embedded Dev
> GlobalLogic
> www.globallogic.com



-- 
Dr Thomas Leonard        http://0install.net/
GPG: 9242 9807 C985 3C07 44A6  8B9A AE07 8280 59A5 3CC1
GPG: DA98 25AE CAD0 8975 7CDA  BD8E 0713 3F96 CA74 D8BA

_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
http://lists.xen.org/xen-devel


 


Rackspace

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