/qemu/tests/qtest/libqos/ |
H A D | fw_cfg.c | 23 fw_cfg->select(fw_cfg, key); in qfw_cfg_select() 28 fw_cfg->read(fw_cfg, data, len); in qfw_cfg_read_data() 60 qtest_writew(fw_cfg->qts, fw_cfg->base, key); in mm_fw_cfg_select() 113 ptr[i] = qtest_readb(fw_cfg->qts, fw_cfg->base + 2); in mm_fw_cfg_read() 119 QFWCFG *fw_cfg = g_malloc0(sizeof(*fw_cfg)); in mm_fw_cfg_init() local 126 return fw_cfg; in mm_fw_cfg_init() 131 g_free(fw_cfg); in mm_fw_cfg_uninit() 136 qtest_outw(fw_cfg->qts, fw_cfg->base, key); in io_fw_cfg_select() 145 ptr[i] = qtest_inb(fw_cfg->qts, fw_cfg->base + 1); in io_fw_cfg_read() 151 QFWCFG *fw_cfg = g_malloc0(sizeof(*fw_cfg)); in io_fw_cfg_init() local [all …]
|
H A D | fw_cfg.h | 24 void (*select)(QFWCFG *fw_cfg, uint16_t key); 25 void (*read)(QFWCFG *fw_cfg, void *data, size_t len); 28 void qfw_cfg_select(QFWCFG *fw_cfg, uint16_t key); 31 uint16_t qfw_cfg_get_u16(QFWCFG *fw_cfg, uint16_t key); 32 uint32_t qfw_cfg_get_u32(QFWCFG *fw_cfg, uint16_t key); 33 uint64_t qfw_cfg_get_u64(QFWCFG *fw_cfg, uint16_t key); 34 size_t qfw_cfg_get_file(QFWCFG *fw_cfg, const char *filename, 38 void mm_fw_cfg_uninit(QFWCFG *fw_cfg); 40 void io_fw_cfg_uninit(QFWCFG *fw_cfg); 47 static inline void pc_fw_cfg_uninit(QFWCFG *fw_cfg) in pc_fw_cfg_uninit() argument [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 45 QFWCFG *fw_cfg; in test_fw_cfg_id() local 61 QFWCFG *fw_cfg; in test_fw_cfg_uuid() local 83 QFWCFG *fw_cfg; in test_fw_cfg_ram_size() local 97 QFWCFG *fw_cfg; in test_fw_cfg_nographic() local 111 QFWCFG *fw_cfg; in test_fw_cfg_nb_cpus() local 125 QFWCFG *fw_cfg; in test_fw_cfg_max_cpus() local 138 QFWCFG *fw_cfg; in test_fw_cfg_numa() local 167 QFWCFG *fw_cfg; in test_fw_cfg_boot_menu() local 180 QFWCFG *fw_cfg; in test_fw_cfg_reboot_timeout() local [all …]
|
H A D | boot-order-test.c | 115 g_autoptr(QFWCFG) fw_cfg = mm_fw_cfg_init(qts, 0xf0000510); in read_boot_order_pmac() 117 return qfw_cfg_get_u16(fw_cfg, FW_CFG_BOOT_DEVICE); in read_boot_order_pmac() 140 g_autoptr(QFWCFG) fw_cfg = mm_fw_cfg_init(qts, 0xd00000510ULL); in read_boot_order_sun4m() 142 return qfw_cfg_get_u16(fw_cfg, FW_CFG_BOOT_DEVICE); in read_boot_order_sun4m() 152 g_autoptr(QFWCFG) fw_cfg = io_fw_cfg_init(qts, 0x510); in read_boot_order_sun4u() 154 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 | 76 fw_cfg_add_bytes(fw_cfg, FW_CFG_SMBIOS_ENTRIES, in fw_cfg_build_smbios() 111 FWCfgState *fw_cfg; in fw_cfg_arch_create() local 120 fw_cfg_add_i16(fw_cfg, FW_CFG_NB_CPUS, boot_cpus); in fw_cfg_arch_create() 135 fw_cfg_add_i64(fw_cfg, FW_CFG_RAM_SIZE, ms->ram_size); in fw_cfg_arch_create() 137 fw_cfg_add_bytes(fw_cfg, FW_CFG_ACPI_TABLES, in fw_cfg_arch_create() 140 fw_cfg_add_i32(fw_cfg, FW_CFG_IRQ0_OVERRIDE, 1); in fw_cfg_arch_create() 142 fw_cfg_add_file(fw_cfg, "etc/e820", e820_table, in fw_cfg_arch_create() 161 fw_cfg_add_bytes(fw_cfg, FW_CFG_NUMA, numa_fw_cfg, in fw_cfg_arch_create() 165 return fw_cfg; in fw_cfg_arch_create() 207 void fw_cfg_add_acpi_dsdt(Aml *scope, FWCfgState *fw_cfg) in fw_cfg_add_acpi_dsdt() argument [all …]
|
H A D | x86-common.c | 181 if (x86ms->fw_cfg) { in x86_cpu_plug() 580 FWCfgState *fw_cfg) in load_elfboot() argument 620 fw_cfg_add_i32(fw_cfg, FW_CFG_KERNEL_ADDR, mh_load_addr); in load_elfboot() 627 FWCfgState *fw_cfg, in x86_load_linux() argument 690 header, pvh_start_addr, fw_cfg)) { in x86_load_linux() 693 fw_cfg_add_i32(fw_cfg, FW_CFG_CMDLINE_SIZE, in x86_load_linux() 698 fw_cfg_add_bytes(fw_cfg, FW_CFG_SETUP_DATA, in x86_load_linux() 947 fw_cfg_add_i32(fw_cfg, FW_CFG_KERNEL_ADDR, prot_addr); in x86_load_linux() 948 fw_cfg_add_i32(fw_cfg, FW_CFG_KERNEL_SIZE, kernel_size); in x86_load_linux() 953 fw_cfg_add_i32(fw_cfg, FW_CFG_SETUP_ADDR, real_addr); 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);
|
H A D | multiboot.c | 147 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 | 290 FWCfgState *fw_cfg; in microvm_memory_init() local 320 fw_cfg = fw_cfg_init_io_dma(FW_CFG_IO_BASE, FW_CFG_IO_BASE + 4, in microvm_memory_init() 323 fw_cfg_add_i16(fw_cfg, FW_CFG_NB_CPUS, machine->smp.cpus); in microvm_memory_init() 324 fw_cfg_add_i16(fw_cfg, FW_CFG_MAX_CPUS, machine->smp.max_cpus); in microvm_memory_init() 325 fw_cfg_add_i64(fw_cfg, FW_CFG_RAM_SIZE, (uint64_t)machine->ram_size); in microvm_memory_init() 326 fw_cfg_add_i32(fw_cfg, FW_CFG_IRQ0_OVERRIDE, 1); in microvm_memory_init() 327 fw_cfg_add_file(fw_cfg, "etc/e820", e820_table, in microvm_memory_init() 330 rom_set_fw(fw_cfg); in microvm_memory_init() 333 x86_load_linux(x86ms, fw_cfg, 0, true); in microvm_memory_init() 342 x86ms->fw_cfg = fw_cfg; in microvm_memory_init() [all …]
|
/qemu/hw/ppc/ |
H A D | mac_oldworld.c | 108 void *fw_cfg; in ppc_heathrow_init() local 309 fw_cfg = FW_CFG(dev); in ppc_heathrow_init() 322 fw_cfg_add_i32(fw_cfg, FW_CFG_KERNEL_ADDR, kernel_base); in ppc_heathrow_init() 323 fw_cfg_add_i32(fw_cfg, FW_CFG_KERNEL_SIZE, kernel_size); in ppc_heathrow_init() 329 fw_cfg_add_i32(fw_cfg, FW_CFG_KERNEL_CMDLINE, 0); in ppc_heathrow_init() 331 fw_cfg_add_i32(fw_cfg, FW_CFG_INITRD_ADDR, initrd_base); in ppc_heathrow_init() 332 fw_cfg_add_i32(fw_cfg, FW_CFG_INITRD_SIZE, initrd_size); in ppc_heathrow_init() 335 fw_cfg_add_i16(fw_cfg, FW_CFG_PPC_WIDTH, graphic_width); in ppc_heathrow_init() 348 fw_cfg_add_i32(fw_cfg, FW_CFG_PPC_TBFREQ, tbfreq); in ppc_heathrow_init() 351 fw_cfg_add_i32(fw_cfg, FW_CFG_PPC_BUSFREQ, BUSFREQ); in ppc_heathrow_init() [all …]
|
H A D | mac_newworld.c | 152 void *fw_cfg; in ppc_core99_init() local 467 fw_cfg = FW_CFG(dev); in ppc_core99_init() 479 fw_cfg_add_i16(fw_cfg, FW_CFG_MACHINE_ID, machine_arch); in ppc_core99_init() 480 fw_cfg_add_i32(fw_cfg, FW_CFG_KERNEL_ADDR, kernel_base); in ppc_core99_init() 481 fw_cfg_add_i32(fw_cfg, FW_CFG_KERNEL_SIZE, kernel_size); in ppc_core99_init() 487 fw_cfg_add_i32(fw_cfg, FW_CFG_KERNEL_CMDLINE, 0); in ppc_core99_init() 489 fw_cfg_add_i32(fw_cfg, FW_CFG_INITRD_ADDR, initrd_base); in ppc_core99_init() 490 fw_cfg_add_i32(fw_cfg, FW_CFG_INITRD_SIZE, initrd_size); in ppc_core99_init() 508 fw_cfg_add_i32(fw_cfg, FW_CFG_PPC_TBFREQ, tbfreq); in ppc_core99_init() 511 fw_cfg_add_i32(fw_cfg, FW_CFG_PPC_BUSFREQ, BUSFREQ); 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() 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() 398 fw_cfg_add_i16(fw_cfg, FW_CFG_MACHINE_ID, ARCH_PREP); in ibm_40p_init() 400 fw_cfg_add_i16(fw_cfg, FW_CFG_PPC_WIDTH, graphic_width); in ibm_40p_init() 401 fw_cfg_add_i16(fw_cfg, FW_CFG_PPC_HEIGHT, graphic_height); in ibm_40p_init() 402 fw_cfg_add_i16(fw_cfg, FW_CFG_PPC_DEPTH, graphic_depth); in ibm_40p_init() 405 fw_cfg_add_i16(fw_cfg, FW_CFG_BOOT_DEVICE, boot_device); in ibm_40p_init() [all …]
|
/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()
|
H A D | boot.c | 236 FWCfgState *fw_cfg) in fw_cfg_add_kernel_info() argument 243 load_image_to_fw_cfg(fw_cfg, in fw_cfg_add_kernel_info() 249 load_image_to_fw_cfg(fw_cfg, in fw_cfg_add_kernel_info() 255 fw_cfg_add_i32(fw_cfg, FW_CFG_CMDLINE_SIZE, in fw_cfg_add_kernel_info() 257 fw_cfg_add_string(fw_cfg, FW_CFG_CMDLINE_DATA, in fw_cfg_add_kernel_info() 265 fw_cfg_add_kernel_info(info, lvms->fw_cfg); in loongarch_firmware_boot()
|
/qemu/hw/hppa/ |
H A D | machine.c | 196 FWCfgState *fw_cfg; in create_fw_cfg() local 203 fw_cfg = fw_cfg_init_mem(addr, addr + 4); in create_fw_cfg() 209 fw_cfg_add_file(fw_cfg, "/etc/firmware-min-version", in create_fw_cfg() 213 fw_cfg_add_file(fw_cfg, "/etc/cpu/tlb_entries", in create_fw_cfg() 217 fw_cfg_add_file(fw_cfg, "/etc/cpu/btlb_entries", in create_fw_cfg() 221 fw_cfg_add_file(fw_cfg, "/etc/hppa/machine", in create_fw_cfg() 229 fw_cfg_add_file(fw_cfg, "/etc/hppa/rtc-addr", in create_fw_cfg() 237 qemu_register_boot_set(fw_cfg_boot_set, fw_cfg); in create_fw_cfg() 239 fw_cfg_add_file(fw_cfg, "/etc/qemu-version", in create_fw_cfg() 243 fw_cfg_add_extra_pci_roots(pci_bus, fw_cfg); 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 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 141 struct FWCfgFiles { /* the entire file directory fw_cfg item */ 150 char name[56]; /* fw_cfg item name, NUL-terminated ascii */ 252 -fw_cfg [name=]<item_name>,file=<path> 256 -fw_cfg [name=]<item_name>,string=<string> 263 -fw_cfg [name=]<item_name>,gen_id=<generated_id> [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 71 for the "etc/hardware_errors" fw_cfg blob is (N * 8 * 2 + N * 4096) bytes. 90 (8) QEMU defines a third and write-only fw_cfg blob which is called 95 "etc/hardware_errors" blob to the fw_cfg file "etc/hardware_errors_addr".
|
/qemu/hw/sparc64/ |
H A D | sun4u.c | 568 FWCfgState *fw_cfg; in sun4uv_init() local 704 fw_cfg = FW_CFG(dev); in sun4uv_init() 709 fw_cfg_add_i64(fw_cfg, FW_CFG_KERNEL_ADDR, kernel_entry); in sun4uv_init() 710 fw_cfg_add_i64(fw_cfg, FW_CFG_KERNEL_SIZE, kernel_size); in sun4uv_init() 712 fw_cfg_add_i32(fw_cfg, FW_CFG_CMDLINE_SIZE, in sun4uv_init() 716 fw_cfg_add_i32(fw_cfg, FW_CFG_CMDLINE_SIZE, 0); in sun4uv_init() 718 fw_cfg_add_i64(fw_cfg, FW_CFG_INITRD_ADDR, initrd_addr); in sun4uv_init() 719 fw_cfg_add_i64(fw_cfg, FW_CFG_INITRD_SIZE, initrd_size); in sun4uv_init() 722 fw_cfg_add_i16(fw_cfg, FW_CFG_SPARC64_WIDTH, graphic_width); in sun4uv_init() 724 fw_cfg_add_i16(fw_cfg, FW_CFG_SPARC64_DEPTH, graphic_depth); 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/riscv/ |
H A D | boot.c | 451 FWCfgState *fw_cfg; in riscv_setup_firmware_boot() local 452 fw_cfg = fw_cfg_find(); in riscv_setup_firmware_boot() 454 assert(fw_cfg); in riscv_setup_firmware_boot() 456 * Expose the kernel, the command line, and the initrd in fw_cfg. in riscv_setup_firmware_boot() 460 load_image_to_fw_cfg(fw_cfg, in riscv_setup_firmware_boot() 464 load_image_to_fw_cfg(fw_cfg, in riscv_setup_firmware_boot() 469 fw_cfg_add_i32(fw_cfg, FW_CFG_CMDLINE_SIZE, in riscv_setup_firmware_boot() 471 fw_cfg_add_string(fw_cfg, FW_CFG_CMDLINE_DATA, in riscv_setup_firmware_boot()
|
/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/sparc/ |
H A D | sun4m.c | 832 FWCfgState *fw_cfg; in sun4m_hw_init() local 1063 fw_cfg = FW_CFG(dev); in sun4m_hw_init() 1067 OBJECT(fw_cfg)); in sun4m_hw_init() 1077 fw_cfg_add_i16(fw_cfg, FW_CFG_SUN4M_DEPTH, graphic_depth); in sun4m_hw_init() 1078 fw_cfg_add_i16(fw_cfg, FW_CFG_SUN4M_WIDTH, graphic_width); in sun4m_hw_init() 1081 fw_cfg_add_i32(fw_cfg, FW_CFG_KERNEL_SIZE, kernel_size); in sun4m_hw_init() 1087 fw_cfg_add_i32(fw_cfg, FW_CFG_CMDLINE_SIZE, in sun4m_hw_init() 1090 fw_cfg_add_i32(fw_cfg, FW_CFG_KERNEL_CMDLINE, 0); in sun4m_hw_init() 1091 fw_cfg_add_i32(fw_cfg, FW_CFG_CMDLINE_SIZE, 0); in sun4m_hw_init() 1094 fw_cfg_add_i32(fw_cfg, FW_CFG_INITRD_SIZE, initrd_size); in sun4m_hw_init() [all …]
|
/qemu/hw/mips/ |
H A D | loongson3_virt.c | 283 FWCfgState *fw_cfg; in fw_conf_init() local 286 fw_cfg = fw_cfg_init_mem_wide(cfg_addr, cfg_addr + 8, 8, 0, NULL); in fw_conf_init() 287 fw_cfg_add_i16(fw_cfg, FW_CFG_NB_CPUS, (uint16_t)current_machine->smp.cpus); in fw_conf_init() 288 fw_cfg_add_i16(fw_cfg, FW_CFG_MAX_CPUS, (uint16_t)current_machine->smp.max_cpus); in fw_conf_init() 289 fw_cfg_add_i64(fw_cfg, FW_CFG_RAM_SIZE, (uint64_t)ram_size); in fw_conf_init() 290 fw_cfg_add_i32(fw_cfg, FW_CFG_MACHINE_VERSION, 1); in fw_conf_init() 291 fw_cfg_add_i64(fw_cfg, FW_CFG_CPU_FREQ, get_cpu_freq_hz()); in fw_conf_init() 293 fw_cfg_add_file(fw_cfg, "etc/system-states", in fw_conf_init() 296 qemu_register_boot_set(fw_cfg_boot_set, fw_cfg); in fw_conf_init()
|
/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')) 20 specific_ss.add(when: 'CONFIG_ACPI', if_true: files('fw_cfg-acpi.c'))
|