* [PULL 0/1] loongarch-to-apply queue
@ 2022-12-15 8:09 Song Gao
2022-12-18 17:00 ` Peter Maydell
0 siblings, 1 reply; 10+ messages in thread
From: Song Gao @ 2022-12-15 8:09 UTC (permalink / raw)
To: qemu-devel; +Cc: richard.henderson, stefanha
The following changes since commit 5204b499a6cae4dfd9fe762d5e6e82224892383b:
mailmap: Fix Stefan Weil author email (2022-12-13 15:56:57 -0500)
are available in the Git repository at:
https://gitlab.com/gaosong/qemu.git tags/pull-loongarch-20221215
for you to fetch changes up to 288431a1fb9334d5d57ad7d5854d8475b23e7c42:
hw/loongarch/virt: Add cfi01 pflash device (2022-12-15 15:46:12 +0800)
----------------------------------------------------------------
Add cfi01 pflash device
----------------------------------------------------------------
Xiaojuan Yang (1):
hw/loongarch/virt: Add cfi01 pflash device
hw/loongarch/Kconfig | 1 +
hw/loongarch/acpi-build.c | 18 +++++++++++++
hw/loongarch/virt.c | 62 +++++++++++++++++++++++++++++++++++++++++++++
include/hw/loongarch/virt.h | 5 ++++
4 files changed, 86 insertions(+)
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [PULL 0/1] loongarch-to-apply queue
2022-12-15 8:09 Song Gao
@ 2022-12-18 17:00 ` Peter Maydell
0 siblings, 0 replies; 10+ messages in thread
From: Peter Maydell @ 2022-12-18 17:00 UTC (permalink / raw)
To: Song Gao; +Cc: qemu-devel, richard.henderson, stefanha
On Thu, 15 Dec 2022 at 08:11, Song Gao <gaosong@loongson.cn> wrote:
>
> The following changes since commit 5204b499a6cae4dfd9fe762d5e6e82224892383b:
>
> mailmap: Fix Stefan Weil author email (2022-12-13 15:56:57 -0500)
>
> are available in the Git repository at:
>
> https://gitlab.com/gaosong/qemu.git tags/pull-loongarch-20221215
>
> for you to fetch changes up to 288431a1fb9334d5d57ad7d5854d8475b23e7c42:
>
> hw/loongarch/virt: Add cfi01 pflash device (2022-12-15 15:46:12 +0800)
>
> ----------------------------------------------------------------
> Add cfi01 pflash device
>
> ----------------------------------------------------------------
> Xiaojuan Yang (1):
> hw/loongarch/virt: Add cfi01 pflash device
Applied, thanks.
Please update the changelog at https://wiki.qemu.org/ChangeLog/8.0
for any user-visible changes.
-- PMM
^ permalink raw reply [flat|nested] 10+ messages in thread
* [PULL 0/1] loongarch-to-apply queue
@ 2023-06-05 3:18 Song Gao
2023-06-05 14:18 ` Richard Henderson
0 siblings, 1 reply; 10+ messages in thread
From: Song Gao @ 2023-06-05 3:18 UTC (permalink / raw)
To: qemu-devel; +Cc: richard.henderson
The following changes since commit 848a6caa88b9f082c89c9b41afa975761262981d:
Merge tag 'migration-20230602-pull-request' of https://gitlab.com/juan.quintela/qemu into staging (2023-06-02 17:33:29 -0700)
are available in the Git repository at:
https://gitlab.com/gaosong/qemu.git tags/pull-loongarch-20230605
for you to fetch changes up to 8555ddc671203969b0e6eb651e538d02a9a79b3a:
hw/intc/loongarch_ipi: Bring back all 4 IPI mailboxes (2023-06-05 11:08:55 +0800)
----------------------------------------------------------------
Fixes Coverity CID: 1512452, 1512453
Fixes: 78464f023b54 ("hw/loongarch/virt: Modify ipi as percpu device")
----------------------------------------------------------------
Jiaxun Yang (1):
hw/intc/loongarch_ipi: Bring back all 4 IPI mailboxes
hw/intc/loongarch_ipi.c | 6 +++---
include/hw/intc/loongarch_ipi.h | 4 +++-
2 files changed, 6 insertions(+), 4 deletions(-)
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [PULL 0/1] loongarch-to-apply queue
2023-06-05 3:18 Song Gao
@ 2023-06-05 14:18 ` Richard Henderson
0 siblings, 0 replies; 10+ messages in thread
From: Richard Henderson @ 2023-06-05 14:18 UTC (permalink / raw)
To: Song Gao, qemu-devel
On 6/4/23 20:18, Song Gao wrote:
> The following changes since commit 848a6caa88b9f082c89c9b41afa975761262981d:
>
> Merge tag 'migration-20230602-pull-request' ofhttps://gitlab.com/juan.quintela/qemu into staging (2023-06-02 17:33:29 -0700)
>
> are available in the Git repository at:
>
> https://gitlab.com/gaosong/qemu.git tags/pull-loongarch-20230605
>
> for you to fetch changes up to 8555ddc671203969b0e6eb651e538d02a9a79b3a:
>
> hw/intc/loongarch_ipi: Bring back all 4 IPI mailboxes (2023-06-05 11:08:55 +0800)
>
> ----------------------------------------------------------------
> Fixes Coverity CID: 1512452, 1512453
> Fixes: 78464f023b54 ("hw/loongarch/virt: Modify ipi as percpu device")
Applied, thanks. Please update https://wiki.qemu.org/ChangeLog/8.1 as appropriate.
r~
^ permalink raw reply [flat|nested] 10+ messages in thread
* [PULL 0/1] loongarch-to-apply queue
@ 2024-02-01 7:33 Song Gao
2024-02-02 13:50 ` Peter Maydell
0 siblings, 1 reply; 10+ messages in thread
From: Song Gao @ 2024-02-01 7:33 UTC (permalink / raw)
To: qemu-devel; +Cc: peter.maydell
The following changes since commit bd2e12310b18b51aefbf834e6d54989fd175976f:
Merge tag 'qga-pull-2024-01-30' of https://github.com/kostyanf14/qemu into staging (2024-01-30 15:53:46 +0000)
are available in the Git repository at:
https://gitlab.com/gaosong/qemu.git tags/pull-loongarch-20240201
for you to fetch changes up to 27edd5040cae63bfa92c68f69883ba81aa3b6cda:
target/loongarch: Fix qtest test-hmp error when KVM-only build (2024-02-01 15:29:40 +0800)
----------------------------------------------------------------
pull-loongarch-20240201
----------------------------------------------------------------
Song Gao (1):
target/loongarch: Fix qtest test-hmp error when KVM-only build
target/loongarch/cpu.c | 2 -
target/loongarch/cpu_helper.c | 231 ++++++++++++++++++++++++++++++++++++++
target/loongarch/internals.h | 20 +++-
target/loongarch/meson.build | 1 +
target/loongarch/tcg/tlb_helper.c | 230 -------------------------------------
5 files changed, 250 insertions(+), 234 deletions(-)
create mode 100644 target/loongarch/cpu_helper.c
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [PULL 0/1] loongarch-to-apply queue
2024-02-01 7:33 Song Gao
@ 2024-02-02 13:50 ` Peter Maydell
0 siblings, 0 replies; 10+ messages in thread
From: Peter Maydell @ 2024-02-02 13:50 UTC (permalink / raw)
To: Song Gao; +Cc: qemu-devel
On Thu, 1 Feb 2024 at 07:33, Song Gao <gaosong@loongson.cn> wrote:
>
> The following changes since commit bd2e12310b18b51aefbf834e6d54989fd175976f:
>
> Merge tag 'qga-pull-2024-01-30' of https://github.com/kostyanf14/qemu into staging (2024-01-30 15:53:46 +0000)
>
> are available in the Git repository at:
>
> https://gitlab.com/gaosong/qemu.git tags/pull-loongarch-20240201
>
> for you to fetch changes up to 27edd5040cae63bfa92c68f69883ba81aa3b6cda:
>
> target/loongarch: Fix qtest test-hmp error when KVM-only build (2024-02-01 15:29:40 +0800)
>
> ----------------------------------------------------------------
> pull-loongarch-20240201
>
> ----------------------------------------------------------------
> Song Gao (1):
> target/loongarch: Fix qtest test-hmp error when KVM-only build
>
Applied, thanks.
Please update the changelog at https://wiki.qemu.org/ChangeLog/9.0
for any user-visible changes.
-- PMM
^ permalink raw reply [flat|nested] 10+ messages in thread
* [PULL 0/1] loongarch-to-apply queue
@ 2024-02-21 9:11 Song Gao
2024-02-21 9:11 ` [PULL 1/1] loongarch: Change the UEFI loading mode to loongarch Song Gao
2024-02-22 12:42 ` [PULL 0/1] loongarch-to-apply queue Peter Maydell
0 siblings, 2 replies; 10+ messages in thread
From: Song Gao @ 2024-02-21 9:11 UTC (permalink / raw)
To: qemu-devel; +Cc: peter.maydell
The following changes since commit 760b4dcdddba4a40b9fa0eb78fdfc7eda7cb83d0:
Merge tag 'for-upstream' of https://gitlab.com/bonzini/qemu into staging (2024-02-20 10:11:08 +0000)
are available in the Git repository at:
https://gitlab.com/gaosong/qemu.git tags/pull-loongarch-20240221
for you to fetch changes up to be57fd1e526e70fd55f1e87b0b70fab3c6baf089:
loongarch: Change the UEFI loading mode to loongarch (2024-02-21 17:06:23 +0800)
----------------------------------------------------------------
pull-loongarch-20240221
----------------------------------------------------------------
Xianglai Li (1):
loongarch: Change the UEFI loading mode to loongarch
hw/loongarch/acpi-build.c | 29 +++++++++++--
hw/loongarch/virt.c | 101 ++++++++++++++++++++++++++++++++------------
include/hw/loongarch/virt.h | 10 +++--
3 files changed, 107 insertions(+), 33 deletions(-)
^ permalink raw reply [flat|nested] 10+ messages in thread
* [PULL 1/1] loongarch: Change the UEFI loading mode to loongarch
2024-02-21 9:11 [PULL 0/1] loongarch-to-apply queue Song Gao
@ 2024-02-21 9:11 ` Song Gao
2024-02-22 12:42 ` [PULL 0/1] loongarch-to-apply queue Peter Maydell
1 sibling, 0 replies; 10+ messages in thread
From: Song Gao @ 2024-02-21 9:11 UTC (permalink / raw)
To: qemu-devel
Cc: peter.maydell, Xianglai Li, Andrea Bolognani, maobibo,
Philippe Mathieu-Daudé, zhaotianrui
From: Xianglai Li <lixianglai@loongson.cn>
The UEFI loading mode in loongarch is very different
from that in other architectures:loongarch's UEFI code
is in rom, while other architectures' UEFI code is in flash.
loongarch UEFI can be loaded as follows:
-machine virt,pflash=pflash0-format
-bios ./QEMU_EFI.fd
Other architectures load UEFI using the following methods:
-machine virt,pflash0=pflash0-format,pflash1=pflash1-format
loongarch's UEFI loading method makes qemu and libvirt incompatible
when using NVRAM, and the cost of loongarch's current loading method
far outweighs the benefits, so we decided to use the same UEFI loading
scheme as other architectures.
Cc: Andrea Bolognani <abologna@redhat.com>
Cc: maobibo@loongson.cn
Cc: Philippe Mathieu-Daudé <philmd@linaro.org>
Cc: Song Gao <gaosong@loongson.cn>
Cc: zhaotianrui@loongson.cn
Signed-off-by: Xianglai Li <lixianglai@loongson.cn>
Tested-by: Andrea Bolognani <abologna@redhat.com>
Reviewed-by: Song Gao <gaosong@loongson.cn>
Message-Id: <0bd892aa9b88e0f4cc904cb70efd0251fc1cde29.1708336919.git.lixianglai@loongson.cn>
Signed-off-by: Song Gao <gaosong@loongson.cn>
---
hw/loongarch/acpi-build.c | 29 +++++++++--
hw/loongarch/virt.c | 101 ++++++++++++++++++++++++++----------
include/hw/loongarch/virt.h | 10 ++--
3 files changed, 107 insertions(+), 33 deletions(-)
diff --git a/hw/loongarch/acpi-build.c b/hw/loongarch/acpi-build.c
index a1c4198741..6c75f216ea 100644
--- a/hw/loongarch/acpi-build.c
+++ b/hw/loongarch/acpi-build.c
@@ -314,16 +314,39 @@ static void build_pci_device_aml(Aml *scope, LoongArchMachineState *lams)
static void build_flash_aml(Aml *scope, LoongArchMachineState *lams)
{
Aml *dev, *crs;
+ MemoryRegion *flash_mem;
- hwaddr flash_base = VIRT_FLASH_BASE;
- hwaddr flash_size = VIRT_FLASH_SIZE;
+ hwaddr flash0_base;
+ hwaddr flash0_size;
+
+ hwaddr flash1_base;
+ hwaddr flash1_size;
+
+ flash_mem = pflash_cfi01_get_memory(lams->flash[0]);
+ flash0_base = flash_mem->addr;
+ flash0_size = flash_mem->size;
+
+ flash_mem = pflash_cfi01_get_memory(lams->flash[1]);
+ flash1_base = flash_mem->addr;
+ flash1_size = flash_mem->size;
dev = aml_device("FLS0");
aml_append(dev, aml_name_decl("_HID", aml_string("LNRO0015")));
aml_append(dev, aml_name_decl("_UID", aml_int(0)));
crs = aml_resource_template();
- aml_append(crs, aml_memory32_fixed(flash_base, flash_size, AML_READ_WRITE));
+ aml_append(crs, aml_memory32_fixed(flash0_base, flash0_size,
+ AML_READ_WRITE));
+ aml_append(dev, aml_name_decl("_CRS", crs));
+ aml_append(scope, dev);
+
+ dev = aml_device("FLS1");
+ aml_append(dev, aml_name_decl("_HID", aml_string("LNRO0015")));
+ aml_append(dev, aml_name_decl("_UID", aml_int(1)));
+
+ crs = aml_resource_template();
+ aml_append(crs, aml_memory32_fixed(flash1_base, flash1_size,
+ AML_READ_WRITE));
aml_append(dev, aml_name_decl("_CRS", crs));
aml_append(scope, dev);
}
diff --git a/hw/loongarch/virt.c b/hw/loongarch/virt.c
index 0ad7d8c887..a7b9199e70 100644
--- a/hw/loongarch/virt.c
+++ b/hw/loongarch/virt.c
@@ -54,7 +54,9 @@ struct loaderparams {
const char *initrd_filename;
};
-static void virt_flash_create(LoongArchMachineState *lams)
+static PFlashCFI01 *virt_flash_create1(LoongArchMachineState *lams,
+ const char *name,
+ const char *alias_prop_name)
{
DeviceState *dev = qdev_new(TYPE_PFLASH_CFI01);
@@ -66,45 +68,78 @@ static void virt_flash_create(LoongArchMachineState *lams)
qdev_prop_set_uint16(dev, "id1", 0x18);
qdev_prop_set_uint16(dev, "id2", 0x00);
qdev_prop_set_uint16(dev, "id3", 0x00);
- qdev_prop_set_string(dev, "name", "virt.flash");
- object_property_add_child(OBJECT(lams), "virt.flash", OBJECT(dev));
- object_property_add_alias(OBJECT(lams), "pflash",
+ qdev_prop_set_string(dev, "name", name);
+ object_property_add_child(OBJECT(lams), name, OBJECT(dev));
+ object_property_add_alias(OBJECT(lams), alias_prop_name,
OBJECT(dev), "drive");
+ return PFLASH_CFI01(dev);
+}
- lams->flash = PFLASH_CFI01(dev);
+static void virt_flash_create(LoongArchMachineState *lams)
+{
+ lams->flash[0] = virt_flash_create1(lams, "virt.flash0", "pflash0");
+ lams->flash[1] = virt_flash_create1(lams, "virt.flash1", "pflash1");
}
-static void virt_flash_map(LoongArchMachineState *lams,
- MemoryRegion *sysmem)
+static void virt_flash_map1(PFlashCFI01 *flash,
+ hwaddr base, hwaddr size,
+ MemoryRegion *sysmem)
{
- PFlashCFI01 *flash = lams->flash;
DeviceState *dev = DEVICE(flash);
- hwaddr base = VIRT_FLASH_BASE;
- hwaddr size = VIRT_FLASH_SIZE;
+ BlockBackend *blk;
+ hwaddr real_size = size;
+
+ blk = pflash_cfi01_get_blk(flash);
+ if (blk) {
+ real_size = blk_getlength(blk);
+ assert(real_size && real_size <= size);
+ }
- assert(QEMU_IS_ALIGNED(size, VIRT_FLASH_SECTOR_SIZE));
- assert(size / VIRT_FLASH_SECTOR_SIZE <= UINT32_MAX);
+ assert(QEMU_IS_ALIGNED(real_size, VIRT_FLASH_SECTOR_SIZE));
+ assert(real_size / VIRT_FLASH_SECTOR_SIZE <= UINT32_MAX);
- qdev_prop_set_uint32(dev, "num-blocks", size / VIRT_FLASH_SECTOR_SIZE);
+ qdev_prop_set_uint32(dev, "num-blocks", real_size / VIRT_FLASH_SECTOR_SIZE);
sysbus_realize_and_unref(SYS_BUS_DEVICE(dev), &error_fatal);
memory_region_add_subregion(sysmem, base,
sysbus_mmio_get_region(SYS_BUS_DEVICE(dev), 0));
+}
+static void virt_flash_map(LoongArchMachineState *lams,
+ MemoryRegion *sysmem)
+{
+ PFlashCFI01 *flash0 = lams->flash[0];
+ PFlashCFI01 *flash1 = lams->flash[1];
+
+ virt_flash_map1(flash0, VIRT_FLASH0_BASE, VIRT_FLASH0_SIZE, sysmem);
+ virt_flash_map1(flash1, VIRT_FLASH1_BASE, VIRT_FLASH1_SIZE, sysmem);
}
static void fdt_add_flash_node(LoongArchMachineState *lams)
{
MachineState *ms = MACHINE(lams);
char *nodename;
+ MemoryRegion *flash_mem;
+
+ hwaddr flash0_base;
+ hwaddr flash0_size;
- hwaddr flash_base = VIRT_FLASH_BASE;
- hwaddr flash_size = VIRT_FLASH_SIZE;
+ hwaddr flash1_base;
+ hwaddr flash1_size;
- nodename = g_strdup_printf("/flash@%" PRIx64, flash_base);
+ flash_mem = pflash_cfi01_get_memory(lams->flash[0]);
+ flash0_base = flash_mem->addr;
+ flash0_size = flash_mem->size;
+
+ flash_mem = pflash_cfi01_get_memory(lams->flash[1]);
+ flash1_base = flash_mem->addr;
+ flash1_size = flash_mem->size;
+
+ nodename = g_strdup_printf("/flash@%" PRIx64, flash0_base);
qemu_fdt_add_subnode(ms->fdt, nodename);
qemu_fdt_setprop_string(ms->fdt, nodename, "compatible", "cfi-flash");
qemu_fdt_setprop_sized_cells(ms->fdt, nodename, "reg",
- 2, flash_base, 2, flash_size);
+ 2, flash0_base, 2, flash0_size,
+ 2, flash1_base, 2, flash1_size);
qemu_fdt_setprop_cell(ms->fdt, nodename, "bank-width", 4);
g_free(nodename);
}
@@ -637,12 +672,32 @@ static void loongarch_firmware_init(LoongArchMachineState *lams)
{
char *filename = MACHINE(lams)->firmware;
char *bios_name = NULL;
- int bios_size;
+ int bios_size, i;
+ BlockBackend *pflash_blk0;
+ MemoryRegion *mr;
lams->bios_loaded = false;
+ /* Map legacy -drive if=pflash to machine properties */
+ for (i = 0; i < ARRAY_SIZE(lams->flash); i++) {
+ pflash_cfi01_legacy_drive(lams->flash[i],
+ drive_get(IF_PFLASH, 0, i));
+ }
+
virt_flash_map(lams, get_system_memory());
+ pflash_blk0 = pflash_cfi01_get_blk(lams->flash[0]);
+
+ if (pflash_blk0) {
+ if (filename) {
+ error_report("cannot use both '-bios' and '-drive if=pflash'"
+ "options at once");
+ exit(1);
+ }
+ lams->bios_loaded = true;
+ return;
+ }
+
if (filename) {
bios_name = qemu_find_file(QEMU_FILE_TYPE_BIOS, filename);
if (!bios_name) {
@@ -650,21 +705,15 @@ static void loongarch_firmware_init(LoongArchMachineState *lams)
exit(1);
}
- bios_size = load_image_targphys(bios_name, VIRT_BIOS_BASE, VIRT_BIOS_SIZE);
+ mr = sysbus_mmio_get_region(SYS_BUS_DEVICE(lams->flash[0]), 0);
+ bios_size = load_image_mr(bios_name, mr);
if (bios_size < 0) {
error_report("Could not load ROM image '%s'", bios_name);
exit(1);
}
-
g_free(bios_name);
-
- memory_region_init_ram(&lams->bios, NULL, "loongarch.bios",
- VIRT_BIOS_SIZE, &error_fatal);
- memory_region_set_readonly(&lams->bios, true);
- memory_region_add_subregion(get_system_memory(), VIRT_BIOS_BASE, &lams->bios);
lams->bios_loaded = true;
}
-
}
static void reset_load_elf(void *opaque)
diff --git a/include/hw/loongarch/virt.h b/include/hw/loongarch/virt.h
index 6ef9a92394..252f7df7f4 100644
--- a/include/hw/loongarch/virt.h
+++ b/include/hw/loongarch/virt.h
@@ -18,10 +18,12 @@
#define VIRT_FWCFG_BASE 0x1e020000UL
#define VIRT_BIOS_BASE 0x1c000000UL
-#define VIRT_BIOS_SIZE (4 * MiB)
+#define VIRT_BIOS_SIZE (16 * MiB)
#define VIRT_FLASH_SECTOR_SIZE (128 * KiB)
-#define VIRT_FLASH_BASE 0x1d000000UL
-#define VIRT_FLASH_SIZE (16 * MiB)
+#define VIRT_FLASH0_BASE VIRT_BIOS_BASE
+#define VIRT_FLASH0_SIZE VIRT_BIOS_SIZE
+#define VIRT_FLASH1_BASE 0x1d000000UL
+#define VIRT_FLASH1_SIZE (16 * MiB)
#define VIRT_LOWMEM_BASE 0
#define VIRT_LOWMEM_SIZE 0x10000000
@@ -49,7 +51,7 @@ struct LoongArchMachineState {
int fdt_size;
DeviceState *platform_bus_dev;
PCIBus *pci_bus;
- PFlashCFI01 *flash;
+ PFlashCFI01 *flash[2];
MemoryRegion system_iocsr;
MemoryRegion iocsr_mem;
AddressSpace as_iocsr;
--
2.25.1
^ permalink raw reply related [flat|nested] 10+ messages in thread
* Re: [PULL 0/1] loongarch-to-apply queue
2024-02-21 9:11 [PULL 0/1] loongarch-to-apply queue Song Gao
2024-02-21 9:11 ` [PULL 1/1] loongarch: Change the UEFI loading mode to loongarch Song Gao
@ 2024-02-22 12:42 ` Peter Maydell
2024-02-23 1:31 ` gaosong
1 sibling, 1 reply; 10+ messages in thread
From: Peter Maydell @ 2024-02-22 12:42 UTC (permalink / raw)
To: Song Gao; +Cc: qemu-devel
On Wed, 21 Feb 2024 at 09:11, Song Gao <gaosong@loongson.cn> wrote:
>
> The following changes since commit 760b4dcdddba4a40b9fa0eb78fdfc7eda7cb83d0:
>
> Merge tag 'for-upstream' of https://gitlab.com/bonzini/qemu into staging (2024-02-20 10:11:08 +0000)
>
> are available in the Git repository at:
>
> https://gitlab.com/gaosong/qemu.git tags/pull-loongarch-20240221
>
> for you to fetch changes up to be57fd1e526e70fd55f1e87b0b70fab3c6baf089:
>
> loongarch: Change the UEFI loading mode to loongarch (2024-02-21 17:06:23 +0800)
>
> ----------------------------------------------------------------
> pull-loongarch-20240221
>
> ----------------------------------------------------------------
> Xianglai Li (1):
> loongarch: Change the UEFI loading mode to loongarch
Hi; this fails to build for mipsel:
https://gitlab.com/qemu-project/qemu/-/jobs/6232698129
../hw/loongarch/acpi-build.c: In function ‘build_flash_aml’:
../hw/loongarch/acpi-build.c:327:19: error: incompatible types when
assigning to type ‘hwaddr’ {aka ‘long long unsigned int’} from type
‘Int128’
327 | flash0_size = flash_mem->size;
| ^~~~~~~~~
../hw/loongarch/acpi-build.c:331:19: error: incompatible types when
assigning to type ‘hwaddr’ {aka ‘long long unsigned int’} from type
‘Int128’
331 | flash1_size = flash_mem->size;
| ^~~~~~~~~
../hw/loongarch/virt.c: In function ‘fdt_add_flash_node’:
../hw/loongarch/virt.c:131:19: error: incompatible types when
assigning to type ‘hwaddr’ {aka ‘long long unsigned int’} from type
‘Int128’
131 | flash0_size = flash_mem->size;
| ^~~~~~~~~
../hw/loongarch/virt.c:135:19: error: incompatible types when
assigning to type ‘hwaddr’ {aka ‘long long unsigned int’} from type
‘Int128’
135 | flash1_size = flash_mem->size;
| ^~~~~~~~~
The value you get back from pflash_cfi01_get_memory() is a
MemoryRegion -- this should be an opaque struct to you, not
something you can reach in and get the 'size' field from.
(The 'size' field is an Int128, which is not necessarily an
integer type known to the compiler -- on some platforms it is
a struct -- which is why this doesn't compile here.)
Your board code created these memory regions so typically it
should already know how big they are. If you really
do need to get the size of a MemoryRegion, the function
to use is memory_region_size().
thanks
-- PMM
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [PULL 0/1] loongarch-to-apply queue
2024-02-22 12:42 ` [PULL 0/1] loongarch-to-apply queue Peter Maydell
@ 2024-02-23 1:31 ` gaosong
0 siblings, 0 replies; 10+ messages in thread
From: gaosong @ 2024-02-23 1:31 UTC (permalink / raw)
To: Peter Maydell; +Cc: qemu-devel
在 2024/2/22 下午8:42, Peter Maydell 写道:
> On Wed, 21 Feb 2024 at 09:11, Song Gao <gaosong@loongson.cn> wrote:
>> The following changes since commit 760b4dcdddba4a40b9fa0eb78fdfc7eda7cb83d0:
>>
>> Merge tag 'for-upstream' of https://gitlab.com/bonzini/qemu into staging (2024-02-20 10:11:08 +0000)
>>
>> are available in the Git repository at:
>>
>> https://gitlab.com/gaosong/qemu.git tags/pull-loongarch-20240221
>>
>> for you to fetch changes up to be57fd1e526e70fd55f1e87b0b70fab3c6baf089:
>>
>> loongarch: Change the UEFI loading mode to loongarch (2024-02-21 17:06:23 +0800)
>>
>> ----------------------------------------------------------------
>> pull-loongarch-20240221
>>
>> ----------------------------------------------------------------
>> Xianglai Li (1):
>> loongarch: Change the UEFI loading mode to loongarch
> Hi; this fails to build for mipsel:
> https://gitlab.com/qemu-project/qemu/-/jobs/6232698129
>
> ../hw/loongarch/acpi-build.c: In function ‘build_flash_aml’:
> ../hw/loongarch/acpi-build.c:327:19: error: incompatible types when
> assigning to type ‘hwaddr’ {aka ‘long long unsigned int’} from type
> ‘Int128’
> 327 | flash0_size = flash_mem->size;
> | ^~~~~~~~~
> ../hw/loongarch/acpi-build.c:331:19: error: incompatible types when
> assigning to type ‘hwaddr’ {aka ‘long long unsigned int’} from type
> ‘Int128’
> 331 | flash1_size = flash_mem->size;
> | ^~~~~~~~~
>
>
> ../hw/loongarch/virt.c: In function ‘fdt_add_flash_node’:
> ../hw/loongarch/virt.c:131:19: error: incompatible types when
> assigning to type ‘hwaddr’ {aka ‘long long unsigned int’} from type
> ‘Int128’
> 131 | flash0_size = flash_mem->size;
> | ^~~~~~~~~
> ../hw/loongarch/virt.c:135:19: error: incompatible types when
> assigning to type ‘hwaddr’ {aka ‘long long unsigned int’} from type
> ‘Int128’
> 135 | flash1_size = flash_mem->size;
> | ^~~~~~~~~
>
>
> The value you get back from pflash_cfi01_get_memory() is a
> MemoryRegion -- this should be an opaque struct to you, not
> something you can reach in and get the 'size' field from.
> (The 'size' field is an Int128, which is not necessarily an
> integer type known to the compiler -- on some platforms it is
> a struct -- which is why this doesn't compile here.)
>
> Your board code created these memory regions so typically it
> should already know how big they are. If you really
> do need to get the size of a MemoryRegion, the function
> to use is memory_region_size(
Got it , I will correct it.
Thanks.
Song Gao
> thanks
> -- PMM
^ permalink raw reply [flat|nested] 10+ messages in thread
end of thread, other threads:[~2024-02-23 1:33 UTC | newest]
Thread overview: 10+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2024-02-21 9:11 [PULL 0/1] loongarch-to-apply queue Song Gao
2024-02-21 9:11 ` [PULL 1/1] loongarch: Change the UEFI loading mode to loongarch Song Gao
2024-02-22 12:42 ` [PULL 0/1] loongarch-to-apply queue Peter Maydell
2024-02-23 1:31 ` gaosong
-- strict thread matches above, loose matches on Subject: below --
2024-02-01 7:33 Song Gao
2024-02-02 13:50 ` Peter Maydell
2023-06-05 3:18 Song Gao
2023-06-05 14:18 ` Richard Henderson
2022-12-15 8:09 Song Gao
2022-12-18 17:00 ` Peter Maydell
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).