17d36db35SAvi Kivity #ifndef FWCFG_H 27d36db35SAvi Kivity #define FWCFG_H 37d36db35SAvi Kivity 47d36db35SAvi Kivity #include <stdint.h> 5*03b1e457SNadav Amit #include <stdbool.h> 67d36db35SAvi Kivity 77d36db35SAvi Kivity #define FW_CFG_SIGNATURE 0x00 87d36db35SAvi Kivity #define FW_CFG_ID 0x01 97d36db35SAvi Kivity #define FW_CFG_UUID 0x02 107d36db35SAvi Kivity #define FW_CFG_RAM_SIZE 0x03 117d36db35SAvi Kivity #define FW_CFG_NOGRAPHIC 0x04 127d36db35SAvi Kivity #define FW_CFG_NB_CPUS 0x05 137d36db35SAvi Kivity #define FW_CFG_MACHINE_ID 0x06 147d36db35SAvi Kivity #define FW_CFG_KERNEL_ADDR 0x07 157d36db35SAvi Kivity #define FW_CFG_KERNEL_SIZE 0x08 167d36db35SAvi Kivity #define FW_CFG_KERNEL_CMDLINE 0x09 177d36db35SAvi Kivity #define FW_CFG_INITRD_ADDR 0x0a 187d36db35SAvi Kivity #define FW_CFG_INITRD_SIZE 0x0b 197d36db35SAvi Kivity #define FW_CFG_BOOT_DEVICE 0x0c 207d36db35SAvi Kivity #define FW_CFG_NUMA 0x0d 217d36db35SAvi Kivity #define FW_CFG_BOOT_MENU 0x0e 227d36db35SAvi Kivity #define FW_CFG_MAX_CPUS 0x0f 237d36db35SAvi Kivity #define FW_CFG_MAX_ENTRY 0x10 247d36db35SAvi Kivity 257d36db35SAvi Kivity #define FW_CFG_WRITE_CHANNEL 0x4000 267d36db35SAvi Kivity #define FW_CFG_ARCH_LOCAL 0x8000 277d36db35SAvi Kivity #define FW_CFG_ENTRY_MASK ~(FW_CFG_WRITE_CHANNEL | FW_CFG_ARCH_LOCAL) 287d36db35SAvi Kivity 297d36db35SAvi Kivity #define FW_CFG_INVALID 0xffff 307d36db35SAvi Kivity 317d36db35SAvi Kivity #define BIOS_CFG_IOPORT 0x510 327d36db35SAvi Kivity 337d36db35SAvi Kivity #define FW_CFG_ACPI_TABLES (FW_CFG_ARCH_LOCAL + 0) 347d36db35SAvi Kivity #define FW_CFG_SMBIOS_ENTRIES (FW_CFG_ARCH_LOCAL + 1) 357d36db35SAvi Kivity #define FW_CFG_IRQ0_OVERRIDE (FW_CFG_ARCH_LOCAL + 2) 367d36db35SAvi Kivity 37*03b1e457SNadav Amit extern bool no_test_device; 38*03b1e457SNadav Amit 39*03b1e457SNadav Amit void read_cfg_override(void); 40*03b1e457SNadav Amit 41*03b1e457SNadav Amit static inline bool test_device_enabled(void) 42*03b1e457SNadav Amit { 43*03b1e457SNadav Amit return !no_test_device; 44*03b1e457SNadav Amit } 45*03b1e457SNadav Amit 467d36db35SAvi Kivity uint8_t fwcfg_get_u8(unsigned index); 477d36db35SAvi Kivity uint16_t fwcfg_get_u16(unsigned index); 487d36db35SAvi Kivity uint32_t fwcfg_get_u32(unsigned index); 497d36db35SAvi Kivity uint64_t fwcfg_get_u64(unsigned index); 507d36db35SAvi Kivity 517d36db35SAvi Kivity unsigned fwcfg_get_nb_cpus(void); 527d36db35SAvi Kivity 537d36db35SAvi Kivity #endif 547d36db35SAvi Kivity 55