mbox series

[kvm-unit-tests,v2,0/6] Misc assembly fixes and cleanups

Message ID 20210322150641.58878-1-alexandru.elisei@arm.com (mailing list archive)
Headers show
Series Misc assembly fixes and cleanups | expand

Message

Alexandru Elisei March 22, 2021, 3:06 p.m. UTC
This series is mostly fixes and cleanups for things I found when playing
with EFI support. Most of them I hope are fairly self-explanatory.

What is clearly aimed at running on baremetal is patch #2 ("arm/arm64:
Remove dcache_line_size global variable"), which is needed because the
startup environment is different for EFI apps and we're going to need to do
cache maintenance before setup() is run.

Patch #4 ("lib: arm64: Consolidate register definitions to sysreg.h") is
there to make importing register definitions and other header files from
Linux (like el2_setup.h) easier by switching to the same layout. And arm
is already using sysreg.h for SCTLR fields.

Changes in v2:
* Gathered Reviewed-by tags, thank you!
* For patch #2 ("arm/arm64: Remove dcache_line_size global variable"), I've
  modified the commit message to mention the change in parameters for
  dcache_by_line_op, I've added the proper header guards to
  lib/arm/asm/assembler.h and I've changed raw_dcache_line_size to use ubfx
  instead of ubfm.

Alexandru Elisei (6):
  arm64: Remove unnecessary ISB when writing to SPSel
  arm/arm64: Remove dcache_line_size global variable
  arm/arm64: Remove unnecessary ISB when doing dcache maintenance
  lib: arm64: Consolidate register definitions to sysreg.h
  arm64: Configure SCTLR_EL1 at boot
  arm64: Disable TTBR1_EL1 translation table walks

 lib/arm/asm/assembler.h       | 53 ++++++++++++++++++++++++++++++++++
 lib/arm/asm/processor.h       |  7 -----
 lib/arm64/asm/arch_gicv3.h    |  6 ----
 lib/arm64/asm/assembler.h     | 54 +++++++++++++++++++++++++++++++++++
 lib/arm64/asm/pgtable-hwdef.h |  1 +
 lib/arm64/asm/processor.h     | 17 -----------
 lib/arm64/asm/sysreg.h        | 24 ++++++++++++++++
 lib/arm/setup.c               |  7 -----
 arm/cstart.S                  | 19 ++----------
 arm/cstart64.S                | 28 +++++++-----------
 10 files changed, 145 insertions(+), 71 deletions(-)
 create mode 100644 lib/arm/asm/assembler.h
 create mode 100644 lib/arm64/asm/assembler.h

Comments

Andrew Jones March 25, 2021, 3:31 p.m. UTC | #1
On Mon, Mar 22, 2021 at 03:06:35PM +0000, Alexandru Elisei wrote:
> This series is mostly fixes and cleanups for things I found when playing
> with EFI support. Most of them I hope are fairly self-explanatory.
> 
> What is clearly aimed at running on baremetal is patch #2 ("arm/arm64:
> Remove dcache_line_size global variable"), which is needed because the
> startup environment is different for EFI apps and we're going to need to do
> cache maintenance before setup() is run.
> 
> Patch #4 ("lib: arm64: Consolidate register definitions to sysreg.h") is
> there to make importing register definitions and other header files from
> Linux (like el2_setup.h) easier by switching to the same layout. And arm
> is already using sysreg.h for SCTLR fields.
> 
> Changes in v2:
> * Gathered Reviewed-by tags, thank you!
> * For patch #2 ("arm/arm64: Remove dcache_line_size global variable"), I've
>   modified the commit message to mention the change in parameters for
>   dcache_by_line_op, I've added the proper header guards to
>   lib/arm/asm/assembler.h and I've changed raw_dcache_line_size to use ubfx
>   instead of ubfm.
> 
> Alexandru Elisei (6):
>   arm64: Remove unnecessary ISB when writing to SPSel
>   arm/arm64: Remove dcache_line_size global variable
>   arm/arm64: Remove unnecessary ISB when doing dcache maintenance
>   lib: arm64: Consolidate register definitions to sysreg.h
>   arm64: Configure SCTLR_EL1 at boot
>   arm64: Disable TTBR1_EL1 translation table walks
> 
>  lib/arm/asm/assembler.h       | 53 ++++++++++++++++++++++++++++++++++
>  lib/arm/asm/processor.h       |  7 -----
>  lib/arm64/asm/arch_gicv3.h    |  6 ----
>  lib/arm64/asm/assembler.h     | 54 +++++++++++++++++++++++++++++++++++
>  lib/arm64/asm/pgtable-hwdef.h |  1 +
>  lib/arm64/asm/processor.h     | 17 -----------
>  lib/arm64/asm/sysreg.h        | 24 ++++++++++++++++
>  lib/arm/setup.c               |  7 -----
>  arm/cstart.S                  | 19 ++----------
>  arm/cstart64.S                | 28 +++++++-----------
>  10 files changed, 145 insertions(+), 71 deletions(-)
>  create mode 100644 lib/arm/asm/assembler.h
>  create mode 100644 lib/arm64/asm/assembler.h
> 
> -- 
> 2.31.0
>

Applied to arm/queue

https://gitlab.com/rhdrjones/kvm-unit-tests/-/commits/arm/queue

Thanks,
drew