Message ID | 20231025200713.580814-2-sunilvl@ventanamicro.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | RISC-V: ACPI: Enable AIA, PLIC and update RHCT | expand |
On Thu, Oct 26, 2023 at 01:37:01AM +0530, Sunil V L wrote: ... > diff --git a/hw/nvram/fw_cfg-acpi.c b/hw/nvram/fw_cfg-acpi.c > new file mode 100644 > index 0000000000..eddaffc09b > --- /dev/null > +++ b/hw/nvram/fw_cfg-acpi.c > @@ -0,0 +1,44 @@ > +/* > + * Add fw_cfg device in DSDT > + * > + * Copyright (C) 2008-2010 Kevin O'Connor <kevin@koconnor.net> > + * Copyright (C) 2006 Fabrice Bellard > + * Copyright (C) 2013 Red Hat Inc > + * > + * Author: Michael S. Tsirkin <mst@redhat.com> > + * > + * Copyright (c) 2015 HUAWEI TECHNOLOGIES CO.,LTD. > + * > + * Author: Shannon Zhao <zhaoshenglong@huawei.com> > + * > + * This program is free software; you can redistribute it and/or modify > + * it under the terms of the GNU General Public License as published by > + * the Free Software Foundation; either version 2 of the License, or > + * (at your option) any later version. > + > + * This program is distributed in the hope that it will be useful, > + * but WITHOUT ANY WARRANTY; without even the implied warranty of > + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the > + * GNU General Public License for more details. > + > + * You should have received a copy of the GNU General Public License along > + * with this program; if not, see <http://www.gnu.org/licenses/>. I don't recommend creating new files with the long form GPL instead of an SPDX. I can't find a QEMU SPDX policy to point at, but pretty much every project I work on has been moving towards SPDX, and usually with a format policy. I presume QEMU will either slowly work its way there too or someday do a mass change. New files can participate in an unofficial slow transition now, rather than have to be touched again in a mass change. ... > diff --git a/include/hw/nvram/fw_cfg_acpi.h b/include/hw/nvram/fw_cfg_acpi.h > new file mode 100644 > index 0000000000..1c863df329 > --- /dev/null > +++ b/include/hw/nvram/fw_cfg_acpi.h > @@ -0,0 +1,15 @@ > +/* > + * ACPI support for fw_cfg > + * > + * SPDX-License-Identifier: GPL-2.0-or-later > + */ While QEMU doesn't appear to have an SPDX policy with formatting rules, I would format this as /* SPDX-License-Identifier: GPL-2.0-or-later */ /* * ACPI support for fw_cfg */ And the source file above as // SPDX-License-Identifier: GPL-2.0-or-later /* * Add fw_cfg device in DSDT * * ... */ as that is the recommended format for many projects (I think starting with Linux which documents[1] it) and tools have already learned that formatting. QEMU's checkpatch will accept the C99 comment style[2]. [1] https://www.kernel.org/doc/html/latest/process/license-rules.html#license-identifier-syntax [2] commit 8d061278d385 ("checkpatch: allow SPDX-License-Identifier") Thanks, drew
On Thu, Oct 26, 2023 at 10:15:00AM +0200, Andrew Jones wrote: > On Thu, Oct 26, 2023 at 01:37:01AM +0530, Sunil V L wrote: > ... > > diff --git a/hw/nvram/fw_cfg-acpi.c b/hw/nvram/fw_cfg-acpi.c > > new file mode 100644 > > index 0000000000..eddaffc09b > > --- /dev/null > > +++ b/hw/nvram/fw_cfg-acpi.c > > @@ -0,0 +1,44 @@ > > +/* > > + * Add fw_cfg device in DSDT > > + * > > + * Copyright (C) 2008-2010 Kevin O'Connor <kevin@koconnor.net> > > + * Copyright (C) 2006 Fabrice Bellard > > + * Copyright (C) 2013 Red Hat Inc > > + * > > + * Author: Michael S. Tsirkin <mst@redhat.com> > > + * > > + * Copyright (c) 2015 HUAWEI TECHNOLOGIES CO.,LTD. > > + * > > + * Author: Shannon Zhao <zhaoshenglong@huawei.com> > > + * > > + * This program is free software; you can redistribute it and/or modify > > + * it under the terms of the GNU General Public License as published by > > + * the Free Software Foundation; either version 2 of the License, or > > + * (at your option) any later version. > > + > > + * This program is distributed in the hope that it will be useful, > > + * but WITHOUT ANY WARRANTY; without even the implied warranty of > > + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the > > + * GNU General Public License for more details. > > + > > + * You should have received a copy of the GNU General Public License along > > + * with this program; if not, see <http://www.gnu.org/licenses/>. > > I don't recommend creating new files with the long form GPL instead of an > SPDX. I can't find a QEMU SPDX policy to point at, but pretty much every > project I work on has been moving towards SPDX, and usually with a format > policy. I presume QEMU will either slowly work its way there too or > someday do a mass change. New files can participate in an unofficial slow > transition now, rather than have to be touched again in a mass change. > Sure. Let me update this in the next revision. > ... > > diff --git a/include/hw/nvram/fw_cfg_acpi.h b/include/hw/nvram/fw_cfg_acpi.h > > new file mode 100644 > > index 0000000000..1c863df329 > > --- /dev/null > > +++ b/include/hw/nvram/fw_cfg_acpi.h > > @@ -0,0 +1,15 @@ > > +/* > > + * ACPI support for fw_cfg > > + * > > + * SPDX-License-Identifier: GPL-2.0-or-later > > + */ > > While QEMU doesn't appear to have an SPDX policy with formatting rules, > I would format this as > > /* SPDX-License-Identifier: GPL-2.0-or-later */ > /* > * ACPI support for fw_cfg > */ > > And the source file above as > > // SPDX-License-Identifier: GPL-2.0-or-later > /* > * Add fw_cfg device in DSDT > * > * ... > */ > > as that is the recommended format for many projects (I think starting > with Linux which documents[1] it) and tools have already learned that > formatting. QEMU's checkpatch will accept the C99 comment style[2]. > > [1] https://www.kernel.org/doc/html/latest/process/license-rules.html#license-identifier-syntax > [2] commit 8d061278d385 ("checkpatch: allow SPDX-License-Identifier") > Thanks for the pointers. Let me update according to this. Thanks, Sunil
diff --git a/hw/arm/virt-acpi-build.c b/hw/arm/virt-acpi-build.c index 9ce136cd88..dd2e95f0ea 100644 --- a/hw/arm/virt-acpi-build.c +++ b/hw/arm/virt-acpi-build.c @@ -35,7 +35,7 @@ #include "target/arm/cpu.h" #include "hw/acpi/acpi-defs.h" #include "hw/acpi/acpi.h" -#include "hw/nvram/fw_cfg.h" +#include "hw/nvram/fw_cfg_acpi.h" #include "hw/acpi/bios-linker-loader.h" #include "hw/acpi/aml-build.h" #include "hw/acpi/utils.h" @@ -94,21 +94,6 @@ static void acpi_dsdt_add_uart(Aml *scope, const MemMapEntry *uart_memmap, aml_append(scope, dev); } -static void acpi_dsdt_add_fw_cfg(Aml *scope, const MemMapEntry *fw_cfg_memmap) -{ - Aml *dev = aml_device("FWCF"); - aml_append(dev, aml_name_decl("_HID", aml_string("QEMU0002"))); - /* device present, functioning, decoding, not shown in UI */ - aml_append(dev, aml_name_decl("_STA", aml_int(0xB))); - aml_append(dev, aml_name_decl("_CCA", aml_int(1))); - - Aml *crs = aml_resource_template(); - aml_append(crs, aml_memory32_fixed(fw_cfg_memmap->base, - fw_cfg_memmap->size, AML_READ_WRITE)); - aml_append(dev, aml_name_decl("_CRS", crs)); - aml_append(scope, dev); -} - static void acpi_dsdt_add_flash(Aml *scope, const MemMapEntry *flash_memmap) { Aml *dev, *crs; @@ -864,7 +849,7 @@ build_dsdt(GArray *table_data, BIOSLinker *linker, VirtMachineState *vms) if (vmc->acpi_expose_flash) { acpi_dsdt_add_flash(scope, &memmap[VIRT_FLASH]); } - acpi_dsdt_add_fw_cfg(scope, &memmap[VIRT_FW_CFG]); + fw_cfg_acpi_dsdt_add(scope, &memmap[VIRT_FW_CFG]); acpi_dsdt_add_virtio(scope, &memmap[VIRT_MMIO], (irqmap[VIRT_MMIO] + ARM_SPI_BASE), NUM_VIRTIO_TRANSPORTS); acpi_dsdt_add_pci(scope, memmap, irqmap[VIRT_PCIE] + ARM_SPI_BASE, vms); diff --git a/hw/nvram/fw_cfg-acpi.c b/hw/nvram/fw_cfg-acpi.c new file mode 100644 index 0000000000..eddaffc09b --- /dev/null +++ b/hw/nvram/fw_cfg-acpi.c @@ -0,0 +1,44 @@ +/* + * Add fw_cfg device in DSDT + * + * Copyright (C) 2008-2010 Kevin O'Connor <kevin@koconnor.net> + * Copyright (C) 2006 Fabrice Bellard + * Copyright (C) 2013 Red Hat Inc + * + * Author: Michael S. Tsirkin <mst@redhat.com> + * + * Copyright (c) 2015 HUAWEI TECHNOLOGIES CO.,LTD. + * + * Author: Shannon Zhao <zhaoshenglong@huawei.com> + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + + * You should have received a copy of the GNU General Public License along + * with this program; if not, see <http://www.gnu.org/licenses/>. + */ + +#include "hw/nvram/fw_cfg_acpi.h" +#include "hw/acpi/aml-build.h" + +void fw_cfg_acpi_dsdt_add(Aml *scope, const MemMapEntry *fw_cfg_memmap) +{ + Aml *dev = aml_device("FWCF"); + aml_append(dev, aml_name_decl("_HID", aml_string("QEMU0002"))); + /* device present, functioning, decoding, not shown in UI */ + aml_append(dev, aml_name_decl("_STA", aml_int(0xB))); + aml_append(dev, aml_name_decl("_CCA", aml_int(1))); + + Aml *crs = aml_resource_template(); + aml_append(crs, aml_memory32_fixed(fw_cfg_memmap->base, + fw_cfg_memmap->size, AML_READ_WRITE)); + aml_append(dev, aml_name_decl("_CRS", crs)); + aml_append(scope, dev); +} diff --git a/hw/nvram/meson.build b/hw/nvram/meson.build index 75e415b1a0..4996c72456 100644 --- a/hw/nvram/meson.build +++ b/hw/nvram/meson.build @@ -17,3 +17,4 @@ system_ss.add(when: 'CONFIG_XLNX_EFUSE_ZYNQMP', if_true: files( system_ss.add(when: 'CONFIG_XLNX_BBRAM', if_true: files('xlnx-bbram.c')) specific_ss.add(when: 'CONFIG_PSERIES', if_true: files('spapr_nvram.c')) +specific_ss.add(when: 'CONFIG_ACPI', if_true: files('fw_cfg-acpi.c')) diff --git a/hw/riscv/virt-acpi-build.c b/hw/riscv/virt-acpi-build.c index 7331248f59..d8772c2821 100644 --- a/hw/riscv/virt-acpi-build.c +++ b/hw/riscv/virt-acpi-build.c @@ -28,6 +28,7 @@ #include "hw/acpi/acpi.h" #include "hw/acpi/aml-build.h" #include "hw/acpi/utils.h" +#include "hw/nvram/fw_cfg_acpi.h" #include "qapi/error.h" #include "qemu/error-report.h" #include "sysemu/reset.h" @@ -97,22 +98,6 @@ static void acpi_dsdt_add_cpus(Aml *scope, RISCVVirtState *s) } } -static void acpi_dsdt_add_fw_cfg(Aml *scope, const MemMapEntry *fw_cfg_memmap) -{ - Aml *dev = aml_device("FWCF"); - aml_append(dev, aml_name_decl("_HID", aml_string("QEMU0002"))); - - /* device present, functioning, decoding, not shown in UI */ - aml_append(dev, aml_name_decl("_STA", aml_int(0xB))); - aml_append(dev, aml_name_decl("_CCA", aml_int(1))); - - Aml *crs = aml_resource_template(); - aml_append(crs, aml_memory32_fixed(fw_cfg_memmap->base, - fw_cfg_memmap->size, AML_READ_WRITE)); - aml_append(dev, aml_name_decl("_CRS", crs)); - aml_append(scope, dev); -} - /* RHCT Node[N] starts at offset 56 */ #define RHCT_NODE_ARRAY_OFFSET 56 @@ -226,7 +211,7 @@ static void build_dsdt(GArray *table_data, scope = aml_scope("\\_SB"); acpi_dsdt_add_cpus(scope, s); - acpi_dsdt_add_fw_cfg(scope, &memmap[VIRT_FW_CFG]); + fw_cfg_acpi_dsdt_add(scope, &memmap[VIRT_FW_CFG]); aml_append(dsdt, scope); diff --git a/include/hw/nvram/fw_cfg_acpi.h b/include/hw/nvram/fw_cfg_acpi.h new file mode 100644 index 0000000000..1c863df329 --- /dev/null +++ b/include/hw/nvram/fw_cfg_acpi.h @@ -0,0 +1,15 @@ +/* + * ACPI support for fw_cfg + * + * SPDX-License-Identifier: GPL-2.0-or-later + */ + +#ifndef FW_CFG_ACPI_H +#define FW_CFG_ACPI_H + +#include "qemu/osdep.h" +#include "exec/hwaddr.h" + +void fw_cfg_acpi_dsdt_add(Aml *scope, const MemMapEntry *fw_cfg_memmap); + +#endif