/qemu/tests/qtest/libqos/ |
H A D | fw_cfg.c | 23 void qfw_cfg_select(QFWCFG *fw_cfg, uint16_t key) in qfw_cfg_select() argument 25 fw_cfg->select(fw_cfg, key); in qfw_cfg_select() 28 void qfw_cfg_read_data(QFWCFG *fw_cfg, void *data, size_t len) in qfw_cfg_read_data() argument 30 fw_cfg->read(fw_cfg, data, len); in qfw_cfg_read_data() 33 void qfw_cfg_get(QFWCFG *fw_cfg, uint16_t key, void *data, size_t len) in qfw_cfg_get() argument 35 qfw_cfg_select(fw_cfg, key); in qfw_cfg_get() 36 qfw_cfg_read_data(fw_cfg, data, len); in qfw_cfg_get() 39 uint16_t qfw_cfg_get_u16(QFWCFG *fw_cfg, uint16_t key) in qfw_cfg_get_u16() argument 42 qfw_cfg_get(fw_cfg, key, &value, sizeof(value)); in qfw_cfg_get_u16() 46 uint32_t qfw_cfg_get_u32(QFWCFG *fw_cfg, uint16_t key) in qfw_cfg_get_u32() argument [all …]
|
H A D | fw_cfg.h | 25 void (*select)(QFWCFG *fw_cfg, uint16_t key); 26 void (*read)(QFWCFG *fw_cfg, void *data, size_t len); 29 void qfw_cfg_select(QFWCFG *fw_cfg, uint16_t key); 30 void qfw_cfg_read_data(QFWCFG *fw_cfg, void *data, size_t len); 31 void qfw_cfg_get(QFWCFG *fw_cfg, uint16_t key, void *data, size_t len); 32 uint16_t qfw_cfg_get_u16(QFWCFG *fw_cfg, uint16_t key); 33 uint32_t qfw_cfg_get_u32(QFWCFG *fw_cfg, uint16_t key); 34 uint64_t qfw_cfg_get_u64(QFWCFG *fw_cfg, uint16_t key); 35 size_t qfw_cfg_get_file(QFWCFG *fw_cfg, const char *filename, 37 size_t qfw_cfg_write_file(QFWCFG *fw_cfg, QOSState *qs, const char *filename, [all …]
|
H A D | malloc-pc.c | 24 QFWCFG *fw_cfg = pc_fw_cfg_init(qts); in pc_alloc_init() local 26 ram_size = qfw_cfg_get_u64(fw_cfg, FW_CFG_RAM_SIZE); in pc_alloc_init() 30 pc_fw_cfg_uninit(fw_cfg); in pc_alloc_init()
|
/qemu/tests/qtest/ |
H A D | fw_cfg-test.c | 28 QFWCFG *fw_cfg; in test_fw_cfg_signature() local 33 fw_cfg = pc_fw_cfg_init(s); in test_fw_cfg_signature() 35 qfw_cfg_get(fw_cfg, FW_CFG_SIGNATURE, buf, 4); in test_fw_cfg_signature() 39 pc_fw_cfg_uninit(fw_cfg); in test_fw_cfg_signature() 45 QFWCFG *fw_cfg; in test_fw_cfg_id() local 50 fw_cfg = pc_fw_cfg_init(s); in test_fw_cfg_id() 52 id = qfw_cfg_get_u32(fw_cfg, FW_CFG_ID); in test_fw_cfg_id() 55 pc_fw_cfg_uninit(fw_cfg); in test_fw_cfg_id() 61 QFWCFG *fw_cfg; in test_fw_cfg_uuid() local 71 fw_cfg = pc_fw_cfg_init(s); in test_fw_cfg_uuid() [all …]
|
H A D | vmcoreinfo-test.c | 24 QFWCFG *fw_cfg; in test_vmcoreinfo_write_basic() local 34 fw_cfg = pc_fw_cfg_init(qs->qts); in test_vmcoreinfo_write_basic() 38 filesize = qfw_cfg_read_file(fw_cfg, qs, FW_CFG_VMCOREINFO_FILENAME, in test_vmcoreinfo_write_basic() 52 filesize = qfw_cfg_write_file(fw_cfg, qs, FW_CFG_VMCOREINFO_FILENAME, in test_vmcoreinfo_write_basic() 59 filesize = qfw_cfg_read_file(fw_cfg, qs, FW_CFG_VMCOREINFO_FILENAME, in test_vmcoreinfo_write_basic() 71 pc_fw_cfg_uninit(fw_cfg); in test_vmcoreinfo_write_basic()
|
H A D | boot-order-test.c | 110 g_autoptr(QFWCFG) fw_cfg = mm_fw_cfg_init(qts, 0xf0000510); in read_boot_order_pmac() 112 return qfw_cfg_get_u16(fw_cfg, FW_CFG_BOOT_DEVICE); in read_boot_order_pmac() 135 g_autoptr(QFWCFG) fw_cfg = mm_fw_cfg_init(qts, 0xd00000510ULL); in read_boot_order_sun4m() 137 return qfw_cfg_get_u16(fw_cfg, FW_CFG_BOOT_DEVICE); in read_boot_order_sun4m() 147 g_autoptr(QFWCFG) fw_cfg = io_fw_cfg_init(qts, 0x510); in read_boot_order_sun4u() 149 return qfw_cfg_get_u16(fw_cfg, FW_CFG_BOOT_DEVICE); in read_boot_order_sun4u()
|
/qemu/hw/i386/ |
H A D | fw_cfg.c | 54 void fw_cfg_add_e820(FWCfgState *fw_cfg) in fw_cfg_add_e820() argument 59 fw_cfg_add_file(fw_cfg, "etc/e820", table, nr_e820 * sizeof(*table)); in fw_cfg_add_e820() 62 void fw_cfg_build_smbios(PCMachineState *pcms, FWCfgState *fw_cfg, in fw_cfg_build_smbios() argument 87 fw_cfg_add_bytes(fw_cfg, FW_CFG_SMBIOS_ENTRIES, in fw_cfg_build_smbios() 111 fw_cfg_add_file(fw_cfg, "etc/smbios/smbios-tables", in fw_cfg_build_smbios() 113 fw_cfg_add_file(fw_cfg, "etc/smbios/smbios-anchor", in fw_cfg_build_smbios() 123 FWCfgState *fw_cfg; in fw_cfg_arch_create() local 130 fw_cfg = fw_cfg_init_io_dma(FW_CFG_IO_BASE, FW_CFG_IO_BASE + 4, in fw_cfg_arch_create() 132 fw_cfg_add_i16(fw_cfg, FW_CFG_NB_CPUS, boot_cpus); in fw_cfg_arch_create() 146 fw_cfg_add_i16(fw_cfg, FW_CFG_MAX_CPUS, apic_id_limit); in fw_cfg_arch_create() [all …]
|
H A D | x86-common.c | 182 if (x86ms->fw_cfg) { in x86_cpu_plug() 183 fw_cfg_modify_i16(x86ms->fw_cfg, FW_CFG_NB_CPUS, x86ms->boot_cpus); in x86_cpu_plug() 236 fw_cfg_modify_i16(x86ms->fw_cfg, FW_CFG_NB_CPUS, x86ms->boot_cpus); in x86_cpu_unplug_cb() 587 FWCfgState *fw_cfg) in load_elfboot() argument 626 fw_cfg_add_i32(fw_cfg, FW_CFG_KERNEL_ENTRY, pvh_start_addr); in load_elfboot() 627 fw_cfg_add_i32(fw_cfg, FW_CFG_KERNEL_ADDR, mh_load_addr); in load_elfboot() 628 fw_cfg_add_i32(fw_cfg, FW_CFG_KERNEL_SIZE, elf_kernel_size); in load_elfboot() 634 FWCfgState *fw_cfg, in x86_load_linux() argument 689 if (load_multiboot(x86ms, fw_cfg, f, kernel_filename, initrd_filename, in x86_load_linux() 700 header, pvh_start_addr, fw_cfg)) { in x86_load_linux() [all …]
|
H A D | fw_cfg.h | 26 void fw_cfg_build_smbios(PCMachineState *pcms, FWCfgState *fw_cfg, 28 void fw_cfg_build_feature_control(MachineState *ms, FWCfgState *fw_cfg); 29 void fw_cfg_add_acpi_dsdt(Aml *scope, FWCfgState *fw_cfg); 30 void fw_cfg_add_e820(FWCfgState *fw_cfg);
|
H A D | multiboot.c | 148 FWCfgState *fw_cfg, in load_multiboot() argument 394 fw_cfg_add_i32(fw_cfg, FW_CFG_KERNEL_ENTRY, mh_entry_addr); in load_multiboot() 395 fw_cfg_add_i32(fw_cfg, FW_CFG_KERNEL_ADDR, mh_load_addr); in load_multiboot() 396 fw_cfg_add_i32(fw_cfg, FW_CFG_KERNEL_SIZE, mbs.mb_buf_size); in load_multiboot() 397 fw_cfg_add_bytes(fw_cfg, FW_CFG_KERNEL_DATA, in load_multiboot() 400 fw_cfg_add_i32(fw_cfg, FW_CFG_INITRD_ADDR, ADDR_MBI); in load_multiboot() 401 fw_cfg_add_i32(fw_cfg, FW_CFG_INITRD_SIZE, sizeof(bootinfo)); in load_multiboot() 402 fw_cfg_add_bytes(fw_cfg, FW_CFG_INITRD_DATA, mb_bootinfo_data, in load_multiboot()
|
H A D | microvm.c | 291 FWCfgState *fw_cfg; in microvm_memory_init() local 321 fw_cfg = fw_cfg_init_io_dma(FW_CFG_IO_BASE, FW_CFG_IO_BASE + 4, in microvm_memory_init() 324 fw_cfg_add_i16(fw_cfg, FW_CFG_NB_CPUS, machine->smp.cpus); in microvm_memory_init() 325 fw_cfg_add_i16(fw_cfg, FW_CFG_MAX_CPUS, machine->smp.max_cpus); in microvm_memory_init() 326 fw_cfg_add_i64(fw_cfg, FW_CFG_RAM_SIZE, (uint64_t)machine->ram_size); in microvm_memory_init() 327 fw_cfg_add_i32(fw_cfg, FW_CFG_IRQ0_OVERRIDE, 1); in microvm_memory_init() 329 rom_set_fw(fw_cfg); in microvm_memory_init() 332 mmc->x86_load_linux(x86ms, fw_cfg, 0, true); in microvm_memory_init() 341 x86ms->fw_cfg = fw_cfg; in microvm_memory_init() 412 fw_cfg_modify_i32(x86ms->fw_cfg, FW_CFG_CMDLINE_SIZE, strlen(cmdline) + 1); in microvm_fix_kernel_cmdline() [all …]
|
/qemu/hw/ppc/ |
H A D | mac_oldworld.c | 109 void *fw_cfg; in ppc_heathrow_init() local 305 fw_cfg = FW_CFG(dev); in ppc_heathrow_init() 308 object_property_add_child(OBJECT(machine), TYPE_FW_CFG, OBJECT(fw_cfg)); in ppc_heathrow_init() 314 fw_cfg_add_i16(fw_cfg, FW_CFG_NB_CPUS, (uint16_t)machine->smp.cpus); in ppc_heathrow_init() 315 fw_cfg_add_i16(fw_cfg, FW_CFG_MAX_CPUS, (uint16_t)machine->smp.max_cpus); in ppc_heathrow_init() 316 fw_cfg_add_i64(fw_cfg, FW_CFG_RAM_SIZE, (uint64_t)machine->ram_size); in ppc_heathrow_init() 317 fw_cfg_add_i16(fw_cfg, FW_CFG_MACHINE_ID, ARCH_HEATHROW); in ppc_heathrow_init() 318 fw_cfg_add_i32(fw_cfg, FW_CFG_KERNEL_ADDR, kernel_base); in ppc_heathrow_init() 319 fw_cfg_add_i32(fw_cfg, FW_CFG_KERNEL_SIZE, kernel_size); in ppc_heathrow_init() 321 fw_cfg_add_i32(fw_cfg, FW_CFG_KERNEL_CMDLINE, cmdline_base); in ppc_heathrow_init() [all …]
|
H A D | mac_newworld.c | 153 void *fw_cfg; in ppc_core99_init() local 464 fw_cfg = FW_CFG(dev); in ppc_core99_init() 467 object_property_add_child(OBJECT(machine), TYPE_FW_CFG, OBJECT(fw_cfg)); in ppc_core99_init() 473 fw_cfg_add_i16(fw_cfg, FW_CFG_NB_CPUS, (uint16_t)machine->smp.cpus); in ppc_core99_init() 474 fw_cfg_add_i16(fw_cfg, FW_CFG_MAX_CPUS, (uint16_t)machine->smp.max_cpus); in ppc_core99_init() 475 fw_cfg_add_i64(fw_cfg, FW_CFG_RAM_SIZE, (uint64_t)machine->ram_size); in ppc_core99_init() 476 fw_cfg_add_i16(fw_cfg, FW_CFG_MACHINE_ID, machine_arch); in ppc_core99_init() 477 fw_cfg_add_i32(fw_cfg, FW_CFG_KERNEL_ADDR, kernel_base); in ppc_core99_init() 478 fw_cfg_add_i32(fw_cfg, FW_CFG_KERNEL_SIZE, kernel_size); in ppc_core99_init() 480 fw_cfg_add_i32(fw_cfg, FW_CFG_KERNEL_CMDLINE, cmdline_base); in ppc_core99_init() [all …]
|
H A D | prep.c | 243 void *fw_cfg; in ibm_40p_init() local 345 fw_cfg = FW_CFG(dev); in ibm_40p_init() 349 OBJECT(fw_cfg)); in ibm_40p_init() 366 fw_cfg_add_i32(fw_cfg, FW_CFG_KERNEL_ADDR, kernel_base); in ibm_40p_init() 367 fw_cfg_add_i32(fw_cfg, FW_CFG_KERNEL_SIZE, kernel_size); in ibm_40p_init() 379 fw_cfg_add_i32(fw_cfg, FW_CFG_INITRD_ADDR, initrd_base); in ibm_40p_init() 380 fw_cfg_add_i32(fw_cfg, FW_CFG_INITRD_SIZE, initrd_size); in ibm_40p_init() 383 fw_cfg_add_i32(fw_cfg, FW_CFG_KERNEL_CMDLINE, CMDLINE_ADDR); in ibm_40p_init() 386 fw_cfg_add_string(fw_cfg, FW_CFG_CMDLINE_DATA, in ibm_40p_init() 388 fw_cfg_add_i32(fw_cfg, FW_CFG_CMDLINE_SIZE, in ibm_40p_init() [all …]
|
/qemu/rust/hw/timer/hpet/src/ |
H A D | fw_cfg.rs | 43 let mut fw_cfg = unsafe { *addr_of_mut!(hpet_fw_cfg) }; in assign_hpet_id() localVariable 45 if fw_cfg.count == u8::MAX { in assign_hpet_id() 47 fw_cfg.count = 0; in assign_hpet_id() 50 if fw_cfg.count == 8 { in assign_hpet_id() 55 let id: usize = fw_cfg.count.into(); in assign_hpet_id() 56 fw_cfg.count += 1; in assign_hpet_id() 64 let mut fw_cfg = unsafe { *addr_of_mut!(hpet_fw_cfg) }; in update_hpet_cfg() localVariable 66 fw_cfg.hpet[hpet_id].event_timer_block_id = timer_block_id; in update_hpet_cfg() 67 fw_cfg.hpet[hpet_id].address = address; in update_hpet_cfg()
|
/qemu/hw/loongarch/ |
H A D | fw_cfg.c | 22 FWCfgState *fw_cfg; in virt_fw_cfg_init() local 26 fw_cfg = fw_cfg_init_mem_wide(VIRT_FWCFG_BASE + 8, VIRT_FWCFG_BASE, 8, in virt_fw_cfg_init() 28 fw_cfg_add_i16(fw_cfg, FW_CFG_MAX_CPUS, (uint16_t)max_cpus); in virt_fw_cfg_init() 29 fw_cfg_add_i64(fw_cfg, FW_CFG_RAM_SIZE, (uint64_t)ram_size); in virt_fw_cfg_init() 30 fw_cfg_add_i16(fw_cfg, FW_CFG_NB_CPUS, (uint16_t)smp_cpus); in virt_fw_cfg_init() 32 qemu_register_boot_set(fw_cfg_boot_set, fw_cfg); in virt_fw_cfg_init() 33 return fw_cfg; in virt_fw_cfg_init()
|
/qemu/hw/hppa/ |
H A D | machine.c | 197 FWCfgState *fw_cfg; in create_fw_cfg() local 204 fw_cfg = fw_cfg_init_mem(addr, addr + 4); in create_fw_cfg() 205 fw_cfg_add_i16(fw_cfg, FW_CFG_NB_CPUS, ms->smp.cpus); in create_fw_cfg() 206 fw_cfg_add_i16(fw_cfg, FW_CFG_MAX_CPUS, HPPA_MAX_CPUS); in create_fw_cfg() 207 fw_cfg_add_i64(fw_cfg, FW_CFG_RAM_SIZE, ms->ram_size); in create_fw_cfg() 210 fw_cfg_add_file(fw_cfg, "/etc/firmware-min-version", in create_fw_cfg() 214 fw_cfg_add_file(fw_cfg, "/etc/cpu/tlb_entries", in create_fw_cfg() 218 fw_cfg_add_file(fw_cfg, "/etc/cpu/btlb_entries", in create_fw_cfg() 222 fw_cfg_add_file(fw_cfg, "/etc/hppa/machine", in create_fw_cfg() 226 fw_cfg_add_file(fw_cfg, "/etc/hppa/power-button-addr", in create_fw_cfg() [all …]
|
/qemu/docs/specs/ |
H A D | fw_cfg.rst | 2 QEMU Firmware Configuration (fw_cfg) Device 37 As of QEMU v2.4, writes to the fw_cfg data register are no 100 The fw_cfg device is defined with ACPI ID ``QEMU0002``. Since we expect 101 ACPI tables to be passed into the guest through the fw_cfg device itself, 102 the guest-side firmware can not use ACPI to find fw_cfg. However, once the 104 guest kernel, the latter can use the fw_cfg ACPI node for a more accurate 113 The presence of the fw_cfg selector and data registers can be verified 115 and reading four bytes from the data register. If the fw_cfg device is 138 and retrieve them. The format of this file directory (from ``fw_cfg.h`` in 141 struct FWCfgFiles { /* the entire file directory fw_cfg item */ [all …]
|
H A D | acpi_hest_ghes.rst | 60 "etc/acpi/tables" fw_cfg blob. Each error source has different 63 (2) A new fw_cfg blob called "etc/hardware_errors" is introduced. QEMU 64 also needs to populate this blob. The "etc/hardware_errors" fw_cfg blob 72 for the "etc/hardware_errors" fw_cfg blob is 92 (8) QEMU defines a third and write-only fw_cfg blob which is called 97 "etc/hardware_errors" blob to the fw_cfg file "etc/hardware_errors_addr".
|
/qemu/hw/sparc64/ |
H A D | sun4u.c | 556 FWCfgState *fw_cfg; in sun4uv_init() local 692 fw_cfg = FW_CFG(dev); in sun4uv_init() 693 fw_cfg_add_i16(fw_cfg, FW_CFG_NB_CPUS, (uint16_t)machine->smp.cpus); in sun4uv_init() 694 fw_cfg_add_i16(fw_cfg, FW_CFG_MAX_CPUS, (uint16_t)machine->smp.max_cpus); in sun4uv_init() 695 fw_cfg_add_i64(fw_cfg, FW_CFG_RAM_SIZE, (uint64_t)machine->ram_size); in sun4uv_init() 696 fw_cfg_add_i16(fw_cfg, FW_CFG_MACHINE_ID, hwdef->machine_id); in sun4uv_init() 697 fw_cfg_add_i64(fw_cfg, FW_CFG_KERNEL_ADDR, kernel_entry); in sun4uv_init() 698 fw_cfg_add_i64(fw_cfg, FW_CFG_KERNEL_SIZE, kernel_size); in sun4uv_init() 700 fw_cfg_add_i32(fw_cfg, FW_CFG_CMDLINE_SIZE, in sun4uv_init() 702 fw_cfg_add_string(fw_cfg, FW_CFG_CMDLINE_DATA, machine->kernel_cmdline); in sun4uv_init() [all …]
|
/qemu/hw/misc/ |
H A D | vmcoreinfo.c | 41 FWCfgState *fw_cfg = fw_cfg_find(); in vmcoreinfo_realize() local 54 if (!fw_cfg || !fw_cfg->dma_enabled) { in vmcoreinfo_realize() 60 fw_cfg_add_file_callback(fw_cfg, FW_CFG_VMCOREINFO_FILENAME, in vmcoreinfo_realize()
|
/qemu/hw/sparc/ |
H A D | sun4m.c | 822 FWCfgState *fw_cfg; in sun4m_hw_init() local 1053 fw_cfg = FW_CFG(dev); in sun4m_hw_init() 1057 OBJECT(fw_cfg)); in sun4m_hw_init() 1063 fw_cfg_add_i16(fw_cfg, FW_CFG_NB_CPUS, (uint16_t)smp_cpus); in sun4m_hw_init() 1064 fw_cfg_add_i16(fw_cfg, FW_CFG_MAX_CPUS, (uint16_t)max_cpus); in sun4m_hw_init() 1065 fw_cfg_add_i64(fw_cfg, FW_CFG_RAM_SIZE, (uint64_t)machine->ram_size); in sun4m_hw_init() 1066 fw_cfg_add_i16(fw_cfg, FW_CFG_MACHINE_ID, hwdef->machine_id); in sun4m_hw_init() 1067 fw_cfg_add_i16(fw_cfg, FW_CFG_SUN4M_DEPTH, graphic_depth); in sun4m_hw_init() 1068 fw_cfg_add_i16(fw_cfg, FW_CFG_SUN4M_WIDTH, graphic_width); in sun4m_hw_init() 1069 fw_cfg_add_i16(fw_cfg, FW_CFG_SUN4M_HEIGHT, graphic_height); in sun4m_hw_init() [all …]
|
/qemu/hw/display/ |
H A D | ramfb.c | 140 FWCfgState *fw_cfg = fw_cfg_find(); in ramfb_setup() local 143 if (!fw_cfg || !fw_cfg->dma_enabled) { in ramfb_setup() 151 fw_cfg_add_file_callback(fw_cfg, "etc/ramfb", in ramfb_setup()
|
/qemu/hw/riscv/ |
H A D | boot.c | 500 FWCfgState *fw_cfg; in riscv_setup_firmware_boot() local 501 fw_cfg = fw_cfg_find(); in riscv_setup_firmware_boot() 503 assert(fw_cfg); in riscv_setup_firmware_boot() 509 load_image_to_fw_cfg(fw_cfg, in riscv_setup_firmware_boot() 513 load_image_to_fw_cfg(fw_cfg, in riscv_setup_firmware_boot() 518 fw_cfg_add_i32(fw_cfg, FW_CFG_CMDLINE_SIZE, in riscv_setup_firmware_boot() 520 fw_cfg_add_string(fw_cfg, FW_CFG_CMDLINE_DATA, in riscv_setup_firmware_boot()
|
/qemu/hw/nvram/ |
H A D | meson.build | 1 system_ss.add(files('fw_cfg-interface.c')) 2 system_ss.add(files('fw_cfg.c')) 21 specific_ss.add(when: 'CONFIG_ACPI', if_true: files('fw_cfg-acpi.c'))
|