All of lore.kernel.org
 help / color / mirror / Atom feed
From: "Edgar E. Iglesias" <edgar.iglesias@gmail.com>
To: "Philippe Mathieu-Daudé" <philmd@linaro.org>
Cc: qemu-devel@nongnu.org, "Anton Johansson" <anjo@rev.ng>,
	"Peter Maydell" <peter.maydell@linaro.org>,
	"Alistair Francis" <alistair@alistair23.me>,
	"Thomas Huth" <thuth@redhat.com>,
	qemu-arm@nongnu.org, devel@lists.libvirt.org,
	"Marc-André Lureau" <marcandre.lureau@redhat.com>,
	"Paolo Bonzini" <pbonzini@redhat.com>,
	"Jason Wang" <jasowang@redhat.com>,
	"Richard Henderson" <richard.henderson@linaro.org>
Subject: Re: [PATCH 08/19] hw/microblaze: Propagate CPU endianness to microblaze_load_kernel()
Date: Wed, 6 Nov 2024 00:02:22 +0100	[thread overview]
Message-ID: <Zyqj_mB8pkuQ2rG4@zapote> (raw)
In-Reply-To: <20241105130431.22564-9-philmd@linaro.org>

On Tue, Nov 05, 2024 at 02:04:20PM +0100, Philippe Mathieu-Daudé wrote:
> Pass vCPU endianness as argument so we can load kernels
> with different endianness (different from the qemu-system-binary
> builtin one).

Reviewed-by: Edgar E. Iglesias <edgar.iglesias@amd.com>


> 
> Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org>
> ---
>  hw/microblaze/boot.h                     | 4 ++--
>  hw/microblaze/boot.c                     | 8 ++++----
>  hw/microblaze/petalogix_ml605_mmu.c      | 2 +-
>  hw/microblaze/petalogix_s3adsp1800_mmu.c | 2 +-
>  hw/microblaze/xlnx-zynqmp-pmu.c          | 2 +-
>  5 files changed, 9 insertions(+), 9 deletions(-)
> 
> diff --git a/hw/microblaze/boot.h b/hw/microblaze/boot.h
> index 5a8c2f79750..d179a551a69 100644
> --- a/hw/microblaze/boot.h
> +++ b/hw/microblaze/boot.h
> @@ -2,8 +2,8 @@
>  #define MICROBLAZE_BOOT_H
>  
>  
> -void microblaze_load_kernel(MicroBlazeCPU *cpu, hwaddr ddr_base,
> -                            uint32_t ramsize,
> +void microblaze_load_kernel(MicroBlazeCPU *cpu, bool is_little_endian,
> +                            hwaddr ddr_base, uint32_t ramsize,
>                              const char *initrd_filename,
>                              const char *dtb_filename,
>                              void (*machine_cpu_reset)(MicroBlazeCPU *));
> diff --git a/hw/microblaze/boot.c b/hw/microblaze/boot.c
> index ed61e483ee8..3675489fa5b 100644
> --- a/hw/microblaze/boot.c
> +++ b/hw/microblaze/boot.c
> @@ -114,8 +114,8 @@ static uint64_t translate_kernel_address(void *opaque, uint64_t addr)
>      return addr - 0x30000000LL;
>  }
>  
> -void microblaze_load_kernel(MicroBlazeCPU *cpu, hwaddr ddr_base,
> -                            uint32_t ramsize,
> +void microblaze_load_kernel(MicroBlazeCPU *cpu, bool is_little_endian,
> +                            hwaddr ddr_base, uint32_t ramsize,
>                              const char *initrd_filename,
>                              const char *dtb_filename,
>                              void (*machine_cpu_reset)(MicroBlazeCPU *))
> @@ -144,13 +144,13 @@ void microblaze_load_kernel(MicroBlazeCPU *cpu, hwaddr ddr_base,
>          /* Boots a kernel elf binary.  */
>          kernel_size = load_elf(kernel_filename, NULL, NULL, NULL,
>                                 &entry, NULL, &high, NULL,
> -                               TARGET_BIG_ENDIAN, EM_MICROBLAZE, 0, 0);
> +                               !is_little_endian, EM_MICROBLAZE, 0, 0);
>          base32 = entry;
>          if (base32 == 0xc0000000) {
>              kernel_size = load_elf(kernel_filename, NULL,
>                                     translate_kernel_address, NULL,
>                                     &entry, NULL, NULL, NULL,
> -                                   TARGET_BIG_ENDIAN, EM_MICROBLAZE, 0, 0);
> +                                   !is_little_endian, EM_MICROBLAZE, 0, 0);
>          }
>          /* Always boot into physical ram.  */
>          boot_info.bootstrap_pc = (uint32_t)entry;
> diff --git a/hw/microblaze/petalogix_ml605_mmu.c b/hw/microblaze/petalogix_ml605_mmu.c
> index 61e47d83988..d2b2109065d 100644
> --- a/hw/microblaze/petalogix_ml605_mmu.c
> +++ b/hw/microblaze/petalogix_ml605_mmu.c
> @@ -204,7 +204,7 @@ petalogix_ml605_init(MachineState *machine)
>      cpu->cfg.pvr_regs[5] = 0xc56be000;
>      cpu->cfg.pvr_regs[10] = 0x0e000000; /* virtex 6 */
>  
> -    microblaze_load_kernel(cpu, MEMORY_BASEADDR, ram_size,
> +    microblaze_load_kernel(cpu, true, MEMORY_BASEADDR, ram_size,
>                             machine->initrd_filename,
>                             BINARY_DEVICE_TREE_FILE,
>                             NULL);
> diff --git a/hw/microblaze/petalogix_s3adsp1800_mmu.c b/hw/microblaze/petalogix_s3adsp1800_mmu.c
> index 6c0f5c6c651..8110be83715 100644
> --- a/hw/microblaze/petalogix_s3adsp1800_mmu.c
> +++ b/hw/microblaze/petalogix_s3adsp1800_mmu.c
> @@ -129,7 +129,7 @@ petalogix_s3adsp1800_init(MachineState *machine)
>  
>      create_unimplemented_device("xps_gpio", GPIO_BASEADDR, 0x10000);
>  
> -    microblaze_load_kernel(cpu, ddr_base, ram_size,
> +    microblaze_load_kernel(cpu, !TARGET_BIG_ENDIAN, ddr_base, ram_size,
>                             machine->initrd_filename,
>                             BINARY_DEVICE_TREE_FILE,
>                             NULL);
> diff --git a/hw/microblaze/xlnx-zynqmp-pmu.c b/hw/microblaze/xlnx-zynqmp-pmu.c
> index 567aad47bfc..bdbf7328bf4 100644
> --- a/hw/microblaze/xlnx-zynqmp-pmu.c
> +++ b/hw/microblaze/xlnx-zynqmp-pmu.c
> @@ -172,7 +172,7 @@ static void xlnx_zynqmp_pmu_init(MachineState *machine)
>      qdev_realize(DEVICE(pmu), NULL, &error_fatal);
>  
>      /* Load the kernel */
> -    microblaze_load_kernel(&pmu->cpu, XLNX_ZYNQMP_PMU_RAM_ADDR,
> +    microblaze_load_kernel(&pmu->cpu, true, XLNX_ZYNQMP_PMU_RAM_ADDR,
>                             machine->ram_size,
>                             machine->initrd_filename,
>                             machine->dtb,
> -- 
> 2.45.2
> 

  parent reply	other threads:[~2024-11-05 23:02 UTC|newest]

Thread overview: 78+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-11-05 13:04 [PATCH 00/19] hw/microblaze: Allow running cross-endian vCPUs Philippe Mathieu-Daudé
2024-11-05 13:04 ` [PATCH 01/19] target/microblaze: Rename CPU endianness property as 'little-endian' Philippe Mathieu-Daudé
2024-11-05 14:16   ` Anton Johansson via
2024-11-05 14:16     ` Anton Johansson via
2024-11-05 22:29   ` Alistair Francis
2024-11-05 22:54   ` Edgar E. Iglesias
2024-11-05 23:01     ` Philippe Mathieu-Daudé
2024-11-05 23:18       ` Philippe Mathieu-Daudé
2024-11-05 23:20         ` Edgar E. Iglesias
2024-11-05 13:04 ` [PATCH 02/19] hw/microblaze: Deprecate big-endian petalogix-ml605 & xlnx-zynqmp-pmu Philippe Mathieu-Daudé
2024-11-05 14:22   ` Anton Johansson via
2024-11-05 14:22     ` Anton Johansson via
2024-11-05 22:34   ` Alistair Francis
2024-11-05 22:56   ` Edgar E. Iglesias
2024-11-05 13:04 ` [PATCH 03/19] hw/microblaze/s3adsp1800: Explicit CPU endianness Philippe Mathieu-Daudé
2024-11-05 13:22   ` Richard Henderson
2024-11-05 22:34   ` Alistair Francis
2024-11-05 22:59   ` Edgar E. Iglesias
2024-11-05 13:04 ` [PATCH 04/19] hw/microblaze/s3adsp1800: Rename unimplemented MMIO region as xps_gpio Philippe Mathieu-Daudé
2024-11-05 14:26   ` Anton Johansson via
2024-11-05 22:37   ` Alistair Francis
2024-11-05 22:59   ` Edgar E. Iglesias
2024-11-05 13:04 ` [PATCH 05/19] hw/microblaze/s3adsp1800: Declare machine type using DEFINE_TYPES macro Philippe Mathieu-Daudé
2024-11-05 14:33   ` Anton Johansson via
2024-11-05 14:33     ` Anton Johansson via
2024-11-05 22:40   ` Alistair Francis
2024-11-05 22:59   ` Edgar E. Iglesias
2024-11-05 13:04 ` [PATCH 06/19] hw/microblaze: Fix MemoryRegionOps coding style Philippe Mathieu-Daudé
2024-11-05 13:23   ` Richard Henderson
2024-11-05 22:38   ` Alistair Francis
2024-11-05 23:00   ` Edgar E. Iglesias
2024-11-05 13:04 ` [PATCH 07/19] hw/microblaze: Restrict MemoryRegionOps are implemented as 32-bit Philippe Mathieu-Daudé
2024-11-05 14:50   ` Anton Johansson via
2024-11-05 14:50     ` Anton Johansson via
2024-11-05 22:24   ` Philippe Mathieu-Daudé
2024-11-05 22:27     ` Philippe Mathieu-Daudé
2025-01-02 12:20       ` Philippe Mathieu-Daudé
2024-11-05 13:04 ` [PATCH 08/19] hw/microblaze: Propagate CPU endianness to microblaze_load_kernel() Philippe Mathieu-Daudé
2024-11-05 16:56   ` Anton Johansson via
2024-11-05 16:56     ` Anton Johansson via
2024-11-05 22:13   ` Alistair Francis
2024-11-05 23:02   ` Edgar E. Iglesias [this message]
2024-11-05 13:04 ` [PATCH 09/19] hw/intc/xilinx_intc: Only expect big-endian accesses Philippe Mathieu-Daudé
2024-11-05 16:58   ` Anton Johansson via
2024-11-05 16:58     ` Anton Johansson via
2024-11-05 22:24   ` Alistair Francis
2024-11-05 23:08   ` Edgar E. Iglesias
2024-11-14 22:43     ` Philippe Mathieu-Daudé
2024-11-15 15:00       ` Michal Simek
2024-11-05 13:04 ` [PATCH 10/19] hw/timer/xilinx_timer: " Philippe Mathieu-Daudé
2024-11-05 16:58   ` Anton Johansson via
2024-11-05 23:09   ` Edgar E. Iglesias
2024-11-05 13:04 ` [PATCH 11/19] hw/timer/xilinx_timer: Allow down to 8-bit memory access Philippe Mathieu-Daudé
2024-11-05 17:00   ` Anton Johansson via
2024-11-05 22:25   ` Alistair Francis
2024-11-05 23:09   ` Edgar E. Iglesias
2024-11-05 13:04 ` [PATCH 12/19] hw/net/xilinx_ethlite: Only expect big-endian accesses Philippe Mathieu-Daudé
2024-11-05 13:30   ` Richard Henderson
2024-11-06  9:53     ` Philippe Mathieu-Daudé
2024-11-05 14:18   ` Paolo Bonzini
2024-11-05 23:29     ` Philippe Mathieu-Daudé
2024-11-06  6:45       ` Paolo Bonzini
2024-11-05 23:16   ` Edgar E. Iglesias
2024-11-05 13:04 ` [PATCH 13/19] target/microblaze: Explode MO_TExx -> MO_TE | MO_xx Philippe Mathieu-Daudé
2024-11-05 13:31   ` Richard Henderson
2024-11-05 22:57   ` Alistair Francis
2024-11-05 13:04 ` [PATCH 14/19] target/microblaze: Set MO_TE once in do_load() / do_store() Philippe Mathieu-Daudé
2024-11-05 13:32   ` Richard Henderson
2024-11-05 13:04 ` [PATCH 15/19] target/microblaze: Introduce mo_endian() helper Philippe Mathieu-Daudé
2024-11-05 13:32   ` Richard Henderson
2024-11-05 13:04 ` [PATCH 16/19] target/microblaze: Consider endianness while translating code Philippe Mathieu-Daudé
2024-11-05 13:33   ` Richard Henderson
2024-11-05 13:04 ` [PATCH 17/19] hw/microblaze: Support various endianness for s3adsp1800 machines Philippe Mathieu-Daudé
2024-11-05 13:43   ` Richard Henderson
2024-11-05 13:04 ` [PATCH 18/19] tests/functional: Explicit endianness of microblaze assets Philippe Mathieu-Daudé
2024-11-05 13:44   ` Richard Henderson
2024-11-05 13:04 ` [PATCH 19/19] tests/functional: Add microblaze cross-endianness tests Philippe Mathieu-Daudé
2024-11-05 13:46   ` Richard Henderson

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=Zyqj_mB8pkuQ2rG4@zapote \
    --to=edgar.iglesias@gmail.com \
    --cc=alistair@alistair23.me \
    --cc=anjo@rev.ng \
    --cc=devel@lists.libvirt.org \
    --cc=jasowang@redhat.com \
    --cc=marcandre.lureau@redhat.com \
    --cc=pbonzini@redhat.com \
    --cc=peter.maydell@linaro.org \
    --cc=philmd@linaro.org \
    --cc=qemu-arm@nongnu.org \
    --cc=qemu-devel@nongnu.org \
    --cc=richard.henderson@linaro.org \
    --cc=thuth@redhat.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.