Message ID | 20241105130431.22564-4-philmd@linaro.org (mailing list archive) |
---|---|
State | New |
Headers | show |
Series | hw/microblaze: Allow running cross-endian vCPUs | expand |
On 11/5/24 13:04, Philippe Mathieu-Daudé wrote: > By default the machine's CPU endianness is 'big' order > ('little-endian' property set to %false). > > This corresponds to the default when this machine was added; > see commits 6a8b1ae2020 "microblaze: Add petalogix s3a1800dsp > MMU linux ref-design." and 72b675caacf "microblaze: Hook into > the build-system." which added: > > [ "$target_cpu" = "microblaze" ] && target_bigendian=yes > > Later commit 877fdc12b1a ("microblaze: Allow targeting > little-endian mb") added little-endian support, forgetting > to set the CPU endianness to little-endian. Not an issue > since this property was never used, but we will use it soon, > so explicit the endianness to get the expected behavior. > > Signed-off-by: Philippe Mathieu-Daudé<philmd@linaro.org> > --- > hw/microblaze/petalogix_s3adsp1800_mmu.c | 2 ++ > 1 file changed, 2 insertions(+) Reviewed-by: Richard Henderson <richard.henderson@linaro.org> r~
On Tue, Nov 5, 2024 at 11:07 PM Philippe Mathieu-Daudé <philmd@linaro.org> wrote: > > By default the machine's CPU endianness is 'big' order > ('little-endian' property set to %false). > > This corresponds to the default when this machine was added; > see commits 6a8b1ae2020 "microblaze: Add petalogix s3a1800dsp > MMU linux ref-design." and 72b675caacf "microblaze: Hook into > the build-system." which added: > > [ "$target_cpu" = "microblaze" ] && target_bigendian=yes > > Later commit 877fdc12b1a ("microblaze: Allow targeting > little-endian mb") added little-endian support, forgetting > to set the CPU endianness to little-endian. Not an issue > since this property was never used, but we will use it soon, > so explicit the endianness to get the expected behavior. > > Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org> Acked-by: Alistair Francis <alistair.francis@wdc.com> Alistair > --- > hw/microblaze/petalogix_s3adsp1800_mmu.c | 2 ++ > 1 file changed, 2 insertions(+) > > diff --git a/hw/microblaze/petalogix_s3adsp1800_mmu.c b/hw/microblaze/petalogix_s3adsp1800_mmu.c > index dad46bd7f98..37e9a05a62a 100644 > --- a/hw/microblaze/petalogix_s3adsp1800_mmu.c > +++ b/hw/microblaze/petalogix_s3adsp1800_mmu.c > @@ -71,6 +71,8 @@ petalogix_s3adsp1800_init(MachineState *machine) > > cpu = MICROBLAZE_CPU(object_new(TYPE_MICROBLAZE_CPU)); > object_property_set_str(OBJECT(cpu), "version", "7.10.d", &error_abort); > + object_property_set_bool(OBJECT(cpu), "little-endian", > + !TARGET_BIG_ENDIAN, &error_abort); > qdev_realize(DEVICE(cpu), NULL, &error_abort); > > /* Attach emulated BRAM through the LMB. */ > -- > 2.45.2 > >
On Tue, Nov 05, 2024 at 02:04:15PM +0100, Philippe Mathieu-Daudé wrote: > By default the machine's CPU endianness is 'big' order > ('little-endian' property set to %false). > > This corresponds to the default when this machine was added; > see commits 6a8b1ae2020 "microblaze: Add petalogix s3a1800dsp > MMU linux ref-design." and 72b675caacf "microblaze: Hook into > the build-system." which added: > > [ "$target_cpu" = "microblaze" ] && target_bigendian=yes > > Later commit 877fdc12b1a ("microblaze: Allow targeting > little-endian mb") added little-endian support, forgetting > to set the CPU endianness to little-endian. Not an issue > since this property was never used, but we will use it soon, > so explicit the endianness to get the expected behavior. Reviewed-by: Edgar E. Iglesias <edgar.iglesias@amd.com> > > Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org> > --- > hw/microblaze/petalogix_s3adsp1800_mmu.c | 2 ++ > 1 file changed, 2 insertions(+) > > diff --git a/hw/microblaze/petalogix_s3adsp1800_mmu.c b/hw/microblaze/petalogix_s3adsp1800_mmu.c > index dad46bd7f98..37e9a05a62a 100644 > --- a/hw/microblaze/petalogix_s3adsp1800_mmu.c > +++ b/hw/microblaze/petalogix_s3adsp1800_mmu.c > @@ -71,6 +71,8 @@ petalogix_s3adsp1800_init(MachineState *machine) > > cpu = MICROBLAZE_CPU(object_new(TYPE_MICROBLAZE_CPU)); > object_property_set_str(OBJECT(cpu), "version", "7.10.d", &error_abort); > + object_property_set_bool(OBJECT(cpu), "little-endian", > + !TARGET_BIG_ENDIAN, &error_abort); > qdev_realize(DEVICE(cpu), NULL, &error_abort); > > /* Attach emulated BRAM through the LMB. */ > -- > 2.45.2 >
diff --git a/hw/microblaze/petalogix_s3adsp1800_mmu.c b/hw/microblaze/petalogix_s3adsp1800_mmu.c index dad46bd7f98..37e9a05a62a 100644 --- a/hw/microblaze/petalogix_s3adsp1800_mmu.c +++ b/hw/microblaze/petalogix_s3adsp1800_mmu.c @@ -71,6 +71,8 @@ petalogix_s3adsp1800_init(MachineState *machine) cpu = MICROBLAZE_CPU(object_new(TYPE_MICROBLAZE_CPU)); object_property_set_str(OBJECT(cpu), "version", "7.10.d", &error_abort); + object_property_set_bool(OBJECT(cpu), "little-endian", + !TARGET_BIG_ENDIAN, &error_abort); qdev_realize(DEVICE(cpu), NULL, &error_abort); /* Attach emulated BRAM through the LMB. */
By default the machine's CPU endianness is 'big' order ('little-endian' property set to %false). This corresponds to the default when this machine was added; see commits 6a8b1ae2020 "microblaze: Add petalogix s3a1800dsp MMU linux ref-design." and 72b675caacf "microblaze: Hook into the build-system." which added: [ "$target_cpu" = "microblaze" ] && target_bigendian=yes Later commit 877fdc12b1a ("microblaze: Allow targeting little-endian mb") added little-endian support, forgetting to set the CPU endianness to little-endian. Not an issue since this property was never used, but we will use it soon, so explicit the endianness to get the expected behavior. Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org> --- hw/microblaze/petalogix_s3adsp1800_mmu.c | 2 ++ 1 file changed, 2 insertions(+)