14c7f4f4fSSunil V L // SPDX-License-Identifier: GPL-2.0+ 24c7f4f4fSSunil V L /* 34c7f4f4fSSunil V L * Add fw_cfg device in DSDT 44c7f4f4fSSunil V L * 54c7f4f4fSSunil V L */ 64c7f4f4fSSunil V L 7*ee88df50SPeter Maydell #include "qemu/osdep.h" 84c7f4f4fSSunil V L #include "hw/nvram/fw_cfg_acpi.h" 94c7f4f4fSSunil V L #include "hw/acpi/aml-build.h" 104c7f4f4fSSunil V L 114c7f4f4fSSunil V L void fw_cfg_acpi_dsdt_add(Aml *scope, const MemMapEntry *fw_cfg_memmap) 124c7f4f4fSSunil V L { 134c7f4f4fSSunil V L Aml *dev = aml_device("FWCF"); 144c7f4f4fSSunil V L aml_append(dev, aml_name_decl("_HID", aml_string("QEMU0002"))); 154c7f4f4fSSunil V L /* device present, functioning, decoding, not shown in UI */ 164c7f4f4fSSunil V L aml_append(dev, aml_name_decl("_STA", aml_int(0xB))); 174c7f4f4fSSunil V L aml_append(dev, aml_name_decl("_CCA", aml_int(1))); 184c7f4f4fSSunil V L 194c7f4f4fSSunil V L Aml *crs = aml_resource_template(); 204c7f4f4fSSunil V L aml_append(crs, aml_memory32_fixed(fw_cfg_memmap->base, 214c7f4f4fSSunil V L fw_cfg_memmap->size, AML_READ_WRITE)); 224c7f4f4fSSunil V L aml_append(dev, aml_name_decl("_CRS", crs)); 234c7f4f4fSSunil V L aml_append(scope, dev); 244c7f4f4fSSunil V L } 25