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

[Minios-devel] [UNIKRAFT PATCHv6 00/23] Follow up patches for Arm64 support series#1/5



This series address following comments:
01: Remove the check of '--enable-default-pie' in Makefile.uk,
02: Use macro-ed helper to simplify ioreg_read/write,
03: Use the same declaration for _text and _end,
04: Address comments for D-Cache operation function,
05: Get virtual address bits from id_aa64mmfr0_el1.PARange,
06: Ensure stack alignment for exceptions from EL1,
07: Invalidate D-Cache for modified area only,
08: Disable D-Cache before doing any change,
09: Calculate L3 table and page table size by image size,
10: Remove a -Wstringop-overflow warning for strncpy,
11: Remove useless blank line,

Some comments that haven't been addressed:
01: Check the MIDR and avoid the erratum on affected platform
     via an alternative or jump table. -- This erreta framework
     is not only for Arm but also for x86. I think we'd better
     to discuss in community.
02: Enable FIFO support for PL011.
03: Compare the pointers of different type is behaviour undefined

If I forgot anything please remind me.

You can get the whole patch set by:
git clone https://github.com/hejianet/unikraft_arm64.git -b 1stset_v6
---
v5 -> v6:
  fix error on X86 xen plat.
  rebase the codes to Unikraft 0.3 Iapetus Release
v4 -> v5: fix compilation error
v3 -> v4:
  1. Drop 04 and 24 patches in v3. patch 04 is gcc compiler
  optimization related, not a blocking issue. The resolution is
  under discussion. Patch 24 is not concerned by Sharan.
  2. Restore x18,x19 after using them.
  3. Fix IMAGE_ROUNDUP_SHIFT from 20 to 21.
  4. lots of checkpatch warning.
v2 -> v3: Rebase to the latest upstream base.

v1 -> v2:
  1. Add URL link for "Use macro-ed helper to simplify ioreg_read/write",
  2. Invalidate & clean Cache for memory that would be used,
  3. Improve code and commit comments for calculate pagebable size,
  4. Use macros to replace hardcode values,
  5. Use lsr/lsl to simplify 2MB round up,
  6. Do obfuscates arithmetic for kernel image symbols,
  7. Clean up kernel image symbols for C files.

Jia He (23):
  build: Remove the check of '--enable-default-pie' in Makefile.uk
  plat/include: Use macro-ed helper to simplify ioreg_read/write for
    Arm64
  plat/common: Move global variables defined in link scripts to a header
  plat: Clean up kernel image symbols
  plat/common: Remove earlycloberr from SYSREG_READ32 for Arm64
  plat/common: Clean and invalidate D-Cache only when boot for Arm64
  plat/common: Use correct dsb operation flag for Arm64
  plat/common: Add referred source code URL for cache operation
  plat/kvm: Correct invalid indent character for Arm64
  plat/kvm: Get VIRT_BITS from id_aa64mmfr0_el1.PARange for Arm64
  arch/include: Add a _regs member to save origial stack pointer
  plat/kvm: Add __TRAP_STACK_SIZE for stack pointer while exiting trap
  plat/kvm: Remove redundant space while entering trap for Arm
  plat/kvm: Force align the stack pointer for Arm64 EL1 exceptions
  plat/kvm: Rename pagetable.S to pagetable64.S for Arm64
  plat/kvm: Invalidate D-Cache that may have been modified for Arm64
  plat/kvm: arm64: Clear pagetable memory with boot stack
  plat/kvm: arm64: Calculate pagetable size dynamically by image size
  plat/kvm: arm64: Build L3 page table for range greater than 2MB
  plat/kvm: arm64: Support build L3 table for large image size
  plat/kvm: arm64: Remove needless semicolons in assembly
  plat/kvm: arm64: Ensure there is no stall data in cache when boot
  plat/kvm: arm64: Remove superfluous blank line

 Makefile.uk                                 |   8 +-
 arch/arm/arm64/include/uk/asm/lcpu.h        |  16 ++-
 plat/common/arm/cache64.S                   |  31 ++----
 plat/common/include/arm/arm64/cpu.h         |  58 ++++------
 plat/common/include/arm/arm64/cpu_defs.h    |  16 ++-
 plat/common/include/sections.h              | 110 +++++++++++++++++++
 plat/kvm/Makefile.uk                        |   2 +-
 plat/kvm/arm/entry64.S                      |  77 +++++++++----
 plat/kvm/arm/exceptions.S                   |  73 ++++++++++---
 plat/kvm/arm/{pagetable.S => pagetable64.S} | 115 +++++++++++++-------
 plat/kvm/arm/setup.c                        |  12 +-
 plat/kvm/include/kvm-arm/arm64/mm.h         |  14 ++-
 plat/kvm/memory.c                           |  23 ++--
 plat/kvm/x86/setup.c                        |   6 +-
 plat/xen/arm/setup.c                        |   6 +-
 plat/xen/include/xen-arm/mm.h               |   3 +-
 plat/xen/include/xen-x86/mm.h               |  21 ++--
 plat/xen/memory.c                           |  22 ++--
 plat/xen/x86/mm.c                           |  17 ++-
 plat/xen/x86/setup.c                        |   2 +-
 20 files changed, 419 insertions(+), 213 deletions(-)
 create mode 100644 plat/common/include/sections.h
 rename plat/kvm/arm/{pagetable.S => pagetable64.S} (84%)

--
2.17.1

IMPORTANT NOTICE: The contents of this email and any attachments are 
confidential and may also be privileged. If you are not the intended recipient, 
please notify the sender immediately and do not disclose the contents to any 
other person, use it for any purpose, or store or copy the information in any 
medium. Thank you.

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

 


Rackspace

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