mirror of
https://github.com/Motorhead1991/qemu.git
synced 2025-08-06 01:03:55 -06:00
hw/riscv/virt.c: remove 'is_32_bit' param from create_fdt_socket_cpus()
create_fdt_socket_cpus() writes a different 'mmu-type' value if we're running in 32 or 64 bits. However, the flag is being calculated during virt_machine_init(), and is passed around in create_fdt(), then create_fdt_socket(), and then finally create_fdt_socket_cpus(). None of the intermediate functions are using the flag, which is a bit misleading. Remove 'is_32_bit' flag from create_fdt_socket_cpus() and calculate it using the already available RISCVVirtState pointer. This will also change the signature of create_fdt_socket() and create_fdt(), making it clear that these functions don't do anything special when we're running in 32 bit mode. Signed-off-by: Daniel Henrique Barboza <dbarboza@ventanamicro.com> Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org> Reviewed-by: Alistair Francis <alistair.francis@wdc.com> Message-Id: <20230111170948.316276-5-dbarboza@ventanamicro.com> Signed-off-by: Alistair Francis <alistair.francis@wdc.com>
This commit is contained in:
parent
f5be2ccb43
commit
914c97f968
1 changed files with 9 additions and 9 deletions
|
@ -223,12 +223,13 @@ static void create_pcie_irq_map(RISCVVirtState *s, void *fdt, char *nodename,
|
||||||
|
|
||||||
static void create_fdt_socket_cpus(RISCVVirtState *s, int socket,
|
static void create_fdt_socket_cpus(RISCVVirtState *s, int socket,
|
||||||
char *clust_name, uint32_t *phandle,
|
char *clust_name, uint32_t *phandle,
|
||||||
bool is_32_bit, uint32_t *intc_phandles)
|
uint32_t *intc_phandles)
|
||||||
{
|
{
|
||||||
int cpu;
|
int cpu;
|
||||||
uint32_t cpu_phandle;
|
uint32_t cpu_phandle;
|
||||||
MachineState *mc = MACHINE(s);
|
MachineState *mc = MACHINE(s);
|
||||||
char *name, *cpu_name, *core_name, *intc_name;
|
char *name, *cpu_name, *core_name, *intc_name;
|
||||||
|
bool is_32_bit = riscv_is_32bit(&s->soc[0]);
|
||||||
|
|
||||||
for (cpu = s->soc[socket].num_harts - 1; cpu >= 0; cpu--) {
|
for (cpu = s->soc[socket].num_harts - 1; cpu >= 0; cpu--) {
|
||||||
cpu_phandle = (*phandle)++;
|
cpu_phandle = (*phandle)++;
|
||||||
|
@ -721,7 +722,7 @@ static void create_fdt_pmu(RISCVVirtState *s)
|
||||||
}
|
}
|
||||||
|
|
||||||
static void create_fdt_sockets(RISCVVirtState *s, const MemMapEntry *memmap,
|
static void create_fdt_sockets(RISCVVirtState *s, const MemMapEntry *memmap,
|
||||||
bool is_32_bit, uint32_t *phandle,
|
uint32_t *phandle,
|
||||||
uint32_t *irq_mmio_phandle,
|
uint32_t *irq_mmio_phandle,
|
||||||
uint32_t *irq_pcie_phandle,
|
uint32_t *irq_pcie_phandle,
|
||||||
uint32_t *irq_virtio_phandle,
|
uint32_t *irq_virtio_phandle,
|
||||||
|
@ -750,7 +751,7 @@ static void create_fdt_sockets(RISCVVirtState *s, const MemMapEntry *memmap,
|
||||||
qemu_fdt_add_subnode(mc->fdt, clust_name);
|
qemu_fdt_add_subnode(mc->fdt, clust_name);
|
||||||
|
|
||||||
create_fdt_socket_cpus(s, socket, clust_name, phandle,
|
create_fdt_socket_cpus(s, socket, clust_name, phandle,
|
||||||
is_32_bit, &intc_phandles[phandle_pos]);
|
&intc_phandles[phandle_pos]);
|
||||||
|
|
||||||
create_fdt_socket_memory(s, memmap, socket);
|
create_fdt_socket_memory(s, memmap, socket);
|
||||||
|
|
||||||
|
@ -998,8 +999,7 @@ static void create_fdt_fw_cfg(RISCVVirtState *s, const MemMapEntry *memmap)
|
||||||
g_free(nodename);
|
g_free(nodename);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void create_fdt(RISCVVirtState *s, const MemMapEntry *memmap,
|
static void create_fdt(RISCVVirtState *s, const MemMapEntry *memmap)
|
||||||
bool is_32_bit)
|
|
||||||
{
|
{
|
||||||
MachineState *mc = MACHINE(s);
|
MachineState *mc = MACHINE(s);
|
||||||
uint32_t phandle = 1, irq_mmio_phandle = 1, msi_pcie_phandle = 1;
|
uint32_t phandle = 1, irq_mmio_phandle = 1, msi_pcie_phandle = 1;
|
||||||
|
@ -1031,9 +1031,9 @@ static void create_fdt(RISCVVirtState *s, const MemMapEntry *memmap,
|
||||||
qemu_fdt_setprop_cell(mc->fdt, "/soc", "#size-cells", 0x2);
|
qemu_fdt_setprop_cell(mc->fdt, "/soc", "#size-cells", 0x2);
|
||||||
qemu_fdt_setprop_cell(mc->fdt, "/soc", "#address-cells", 0x2);
|
qemu_fdt_setprop_cell(mc->fdt, "/soc", "#address-cells", 0x2);
|
||||||
|
|
||||||
create_fdt_sockets(s, memmap, is_32_bit, &phandle,
|
create_fdt_sockets(s, memmap, &phandle, &irq_mmio_phandle,
|
||||||
&irq_mmio_phandle, &irq_pcie_phandle, &irq_virtio_phandle,
|
&irq_pcie_phandle, &irq_virtio_phandle,
|
||||||
&msi_pcie_phandle);
|
&msi_pcie_phandle);
|
||||||
|
|
||||||
create_fdt_virtio(s, memmap, irq_virtio_phandle);
|
create_fdt_virtio(s, memmap, irq_virtio_phandle);
|
||||||
|
|
||||||
|
@ -1507,7 +1507,7 @@ static void virt_machine_init(MachineState *machine)
|
||||||
virt_flash_map(s, system_memory);
|
virt_flash_map(s, system_memory);
|
||||||
|
|
||||||
/* create device tree */
|
/* create device tree */
|
||||||
create_fdt(s, memmap, riscv_is_32bit(&s->soc[0]));
|
create_fdt(s, memmap);
|
||||||
|
|
||||||
s->machine_done.notify = virt_machine_done;
|
s->machine_done.notify = virt_machine_done;
|
||||||
qemu_add_machine_init_done_notifier(&s->machine_done);
|
qemu_add_machine_init_done_notifier(&s->machine_done);
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue