Message ID | 20220525112345.121321-13-alexandru.elisei@arm.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | arm64: Allow the user to set RAM base address | expand |
On Wed, 25 May 2022 12:23:44 +0100 Alexandru Elisei <alexandru.elisei@arm.com> wrote: > Add a new function, kvm__arch_default_ram_address(), which returns the > default address for guest RAM for each architecture. > > Signed-off-by: Alexandru Elisei <alexandru.elisei@arm.com> Reviewed-by: Andre Przywara <andre.przywara@arm.com> Cheers, Andre > --- > arm/aarch32/kvm.c | 5 +++++ > arm/aarch64/kvm.c | 5 +++++ > include/kvm/kvm.h | 1 + > mips/kvm.c | 5 +++++ > powerpc/kvm.c | 5 +++++ > riscv/kvm.c | 5 +++++ > x86/kvm.c | 5 +++++ > 7 files changed, 31 insertions(+) > > diff --git a/arm/aarch32/kvm.c b/arm/aarch32/kvm.c > index 9d68d7a15ee2..768a56bbb5b4 100644 > --- a/arm/aarch32/kvm.c > +++ b/arm/aarch32/kvm.c > @@ -7,3 +7,8 @@ void kvm__arch_validate_cfg(struct kvm *kvm) > kvm->cfg.ram_size, ARM_LOMAP_MAX_MEMORY); > } > } > + > +u64 kvm__arch_default_ram_address(void) > +{ > + return ARM_MEMORY_AREA; > +} > diff --git a/arm/aarch64/kvm.c b/arm/aarch64/kvm.c > index 2134528bf7f2..357936844046 100644 > --- a/arm/aarch64/kvm.c > +++ b/arm/aarch64/kvm.c > @@ -46,6 +46,11 @@ void kvm__arch_validate_cfg(struct kvm *kvm) > } > } > > +u64 kvm__arch_default_ram_address(void) > +{ > + return ARM_MEMORY_AREA; > +} > + > /* > * Return the TEXT_OFFSET value that the guest kernel expects. Note > * that pre-3.17 kernels expose this value using the native endianness > diff --git a/include/kvm/kvm.h b/include/kvm/kvm.h > index 640b76c095f9..360430b78b1e 100644 > --- a/include/kvm/kvm.h > +++ b/include/kvm/kvm.h > @@ -190,6 +190,7 @@ void kvm__remove_socket(const char *name); > void kvm__arch_validate_cfg(struct kvm *kvm); > void kvm__arch_set_cmdline(char *cmdline, bool video); > void kvm__arch_init(struct kvm *kvm); > +u64 kvm__arch_default_ram_address(void); > void kvm__arch_delete_ram(struct kvm *kvm); > int kvm__arch_setup_firmware(struct kvm *kvm); > int kvm__arch_free_firmware(struct kvm *kvm); > diff --git a/mips/kvm.c b/mips/kvm.c > index d8610cf81b94..4cbc9907731b 100644 > --- a/mips/kvm.c > +++ b/mips/kvm.c > @@ -12,6 +12,11 @@ struct kvm_ext kvm_req_ext[] = { > { 0, 0 } > }; > > +u64 kvm__arch_default_ram_address(void) > +{ > + return 0; > +} > + > void kvm__arch_validate_cfg(struct kvm *kvm) > { > } > diff --git a/powerpc/kvm.c b/powerpc/kvm.c > index d281b070fd0e..7b0d0669aff4 100644 > --- a/powerpc/kvm.c > +++ b/powerpc/kvm.c > @@ -48,6 +48,11 @@ struct kvm_ext kvm_req_ext[] = { > { 0, 0 } > }; > > +u64 kvm__arch_default_ram_address(void) > +{ > + return 0; > +} > + > void kvm__arch_validate_cfg(struct kvm *kvm) > { > } > diff --git a/riscv/kvm.c b/riscv/kvm.c > index c46660772aa0..4d6f5cb57ac8 100644 > --- a/riscv/kvm.c > +++ b/riscv/kvm.c > @@ -13,6 +13,11 @@ struct kvm_ext kvm_req_ext[] = { > { 0, 0 }, > }; > > +u64 kvm__arch_default_ram_address(void) > +{ > + return RISCV_RAM; > +} > + > void kvm__arch_validate_cfg(struct kvm *kvm) > { > } > diff --git a/x86/kvm.c b/x86/kvm.c > index 24b0305a1841..328fa7500596 100644 > --- a/x86/kvm.c > +++ b/x86/kvm.c > @@ -35,6 +35,11 @@ struct kvm_ext kvm_req_ext[] = { > { 0, 0 } > }; > > +u64 kvm__arch_default_ram_address(void) > +{ > + return 0; > +} > + > void kvm__arch_validate_cfg(struct kvm *kvm) > { > }
diff --git a/arm/aarch32/kvm.c b/arm/aarch32/kvm.c index 9d68d7a15ee2..768a56bbb5b4 100644 --- a/arm/aarch32/kvm.c +++ b/arm/aarch32/kvm.c @@ -7,3 +7,8 @@ void kvm__arch_validate_cfg(struct kvm *kvm) kvm->cfg.ram_size, ARM_LOMAP_MAX_MEMORY); } } + +u64 kvm__arch_default_ram_address(void) +{ + return ARM_MEMORY_AREA; +} diff --git a/arm/aarch64/kvm.c b/arm/aarch64/kvm.c index 2134528bf7f2..357936844046 100644 --- a/arm/aarch64/kvm.c +++ b/arm/aarch64/kvm.c @@ -46,6 +46,11 @@ void kvm__arch_validate_cfg(struct kvm *kvm) } } +u64 kvm__arch_default_ram_address(void) +{ + return ARM_MEMORY_AREA; +} + /* * Return the TEXT_OFFSET value that the guest kernel expects. Note * that pre-3.17 kernels expose this value using the native endianness diff --git a/include/kvm/kvm.h b/include/kvm/kvm.h index 640b76c095f9..360430b78b1e 100644 --- a/include/kvm/kvm.h +++ b/include/kvm/kvm.h @@ -190,6 +190,7 @@ void kvm__remove_socket(const char *name); void kvm__arch_validate_cfg(struct kvm *kvm); void kvm__arch_set_cmdline(char *cmdline, bool video); void kvm__arch_init(struct kvm *kvm); +u64 kvm__arch_default_ram_address(void); void kvm__arch_delete_ram(struct kvm *kvm); int kvm__arch_setup_firmware(struct kvm *kvm); int kvm__arch_free_firmware(struct kvm *kvm); diff --git a/mips/kvm.c b/mips/kvm.c index d8610cf81b94..4cbc9907731b 100644 --- a/mips/kvm.c +++ b/mips/kvm.c @@ -12,6 +12,11 @@ struct kvm_ext kvm_req_ext[] = { { 0, 0 } }; +u64 kvm__arch_default_ram_address(void) +{ + return 0; +} + void kvm__arch_validate_cfg(struct kvm *kvm) { } diff --git a/powerpc/kvm.c b/powerpc/kvm.c index d281b070fd0e..7b0d0669aff4 100644 --- a/powerpc/kvm.c +++ b/powerpc/kvm.c @@ -48,6 +48,11 @@ struct kvm_ext kvm_req_ext[] = { { 0, 0 } }; +u64 kvm__arch_default_ram_address(void) +{ + return 0; +} + void kvm__arch_validate_cfg(struct kvm *kvm) { } diff --git a/riscv/kvm.c b/riscv/kvm.c index c46660772aa0..4d6f5cb57ac8 100644 --- a/riscv/kvm.c +++ b/riscv/kvm.c @@ -13,6 +13,11 @@ struct kvm_ext kvm_req_ext[] = { { 0, 0 }, }; +u64 kvm__arch_default_ram_address(void) +{ + return RISCV_RAM; +} + void kvm__arch_validate_cfg(struct kvm *kvm) { } diff --git a/x86/kvm.c b/x86/kvm.c index 24b0305a1841..328fa7500596 100644 --- a/x86/kvm.c +++ b/x86/kvm.c @@ -35,6 +35,11 @@ struct kvm_ext kvm_req_ext[] = { { 0, 0 } }; +u64 kvm__arch_default_ram_address(void) +{ + return 0; +} + void kvm__arch_validate_cfg(struct kvm *kvm) { }
Add a new function, kvm__arch_default_ram_address(), which returns the default address for guest RAM for each architecture. Signed-off-by: Alexandru Elisei <alexandru.elisei@arm.com> --- arm/aarch32/kvm.c | 5 +++++ arm/aarch64/kvm.c | 5 +++++ include/kvm/kvm.h | 1 + mips/kvm.c | 5 +++++ powerpc/kvm.c | 5 +++++ riscv/kvm.c | 5 +++++ x86/kvm.c | 5 +++++ 7 files changed, 31 insertions(+)