Message ID | 20191203122753.19792-5-zhengxiang9@huawei.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | tests: Enable fw_cfg tests on AArch64 | expand |
On Tue, 3 Dec 2019 at 12:29, Xiang Zheng <zhengxiang9@huawei.com> wrote: > > I'm not sure whether it's neccesary to add FW_CFG_RAM_SIZE and > FW_CFG_MAX_CPUS into fw_cfg on virt machine. This patch just makes > the fw_cfg-test happy. > > Signed-off-by: Xiang Zheng <zhengxiang9@huawei.com> > --- > hw/arm/virt.c | 3 +++ > 1 file changed, 3 insertions(+) > > diff --git a/hw/arm/virt.c b/hw/arm/virt.c > index d4bedc2607..26a4183775 100644 > --- a/hw/arm/virt.c > +++ b/hw/arm/virt.c > @@ -1084,6 +1084,9 @@ static FWCfgState *create_fw_cfg(const VirtMachineState *vms, AddressSpace *as) > fw_cfg = fw_cfg_init_mem_wide(base + 8, base, 8, base + 16, as); > fw_cfg_add_i16(fw_cfg, FW_CFG_NB_CPUS, (uint16_t)ms->smp.cpus); > > + fw_cfg_add_i64(fw_cfg, FW_CFG_RAM_SIZE, (uint64_t)ram_size); > + fw_cfg_add_i16(fw_cfg, FW_CFG_MAX_CPUS, (uint16_t)ms->smp.max_cpus); > + > nodename = g_strdup_printf("/fw-cfg@%" PRIx64, base); > qemu_fdt_add_subnode(vms->fdt, nodename); > qemu_fdt_setprop_string(vms->fdt, nodename, > -- Is there a spec anywhere that defines the meaning of these FW_CFG entries ? docs/specs/fw_cfg.txt defines the device interface but not what the 'standard' keys mean. I'd prefer not to add them to the virt board without knowing what they mean and why we have them. thanks -- PMM
On 2019/12/3 20:32, Peter Maydell wrote: > On Tue, 3 Dec 2019 at 12:29, Xiang Zheng <zhengxiang9@huawei.com> wrote: >> >> I'm not sure whether it's neccesary to add FW_CFG_RAM_SIZE and >> FW_CFG_MAX_CPUS into fw_cfg on virt machine. This patch just makes >> the fw_cfg-test happy. >> >> Signed-off-by: Xiang Zheng <zhengxiang9@huawei.com> >> --- >> hw/arm/virt.c | 3 +++ >> 1 file changed, 3 insertions(+) >> >> diff --git a/hw/arm/virt.c b/hw/arm/virt.c >> index d4bedc2607..26a4183775 100644 >> --- a/hw/arm/virt.c >> +++ b/hw/arm/virt.c >> @@ -1084,6 +1084,9 @@ static FWCfgState *create_fw_cfg(const VirtMachineState *vms, AddressSpace *as) >> fw_cfg = fw_cfg_init_mem_wide(base + 8, base, 8, base + 16, as); >> fw_cfg_add_i16(fw_cfg, FW_CFG_NB_CPUS, (uint16_t)ms->smp.cpus); >> >> + fw_cfg_add_i64(fw_cfg, FW_CFG_RAM_SIZE, (uint64_t)ram_size); >> + fw_cfg_add_i16(fw_cfg, FW_CFG_MAX_CPUS, (uint16_t)ms->smp.max_cpus); >> + >> nodename = g_strdup_printf("/fw-cfg@%" PRIx64, base); >> qemu_fdt_add_subnode(vms->fdt, nodename); >> qemu_fdt_setprop_string(vms->fdt, nodename, >> -- > > Is there a spec anywhere that defines the meaning of these > FW_CFG entries ? docs/specs/fw_cfg.txt defines the > device interface but not what the 'standard' keys mean. > I'd prefer not to add them to the virt board without knowing > what they mean and why we have them. > I cannot find a spec or doc defines these FW_CFG entries. It seems that they are used on x86 machines to limit APIC ID values but useless on virt machine. I will drop this patch.
diff --git a/hw/arm/virt.c b/hw/arm/virt.c index d4bedc2607..26a4183775 100644 --- a/hw/arm/virt.c +++ b/hw/arm/virt.c @@ -1084,6 +1084,9 @@ static FWCfgState *create_fw_cfg(const VirtMachineState *vms, AddressSpace *as) fw_cfg = fw_cfg_init_mem_wide(base + 8, base, 8, base + 16, as); fw_cfg_add_i16(fw_cfg, FW_CFG_NB_CPUS, (uint16_t)ms->smp.cpus); + fw_cfg_add_i64(fw_cfg, FW_CFG_RAM_SIZE, (uint64_t)ram_size); + fw_cfg_add_i16(fw_cfg, FW_CFG_MAX_CPUS, (uint16_t)ms->smp.max_cpus); + nodename = g_strdup_printf("/fw-cfg@%" PRIx64, base); qemu_fdt_add_subnode(vms->fdt, nodename); qemu_fdt_setprop_string(vms->fdt, nodename,
I'm not sure whether it's neccesary to add FW_CFG_RAM_SIZE and FW_CFG_MAX_CPUS into fw_cfg on virt machine. This patch just makes the fw_cfg-test happy. Signed-off-by: Xiang Zheng <zhengxiang9@huawei.com> --- hw/arm/virt.c | 3 +++ 1 file changed, 3 insertions(+)