1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
|
#ifndef __HVMLOADER_CONFIG_H__
#define __HVMLOADER_CONFIG_H__
#include <stdint.h>
enum virtual_vga { VGA_none, VGA_std, VGA_cirrus, VGA_pt };
extern enum virtual_vga virtual_vga;
extern unsigned long igd_opregion_pgbase;
struct bios_config {
const char *name;
/* BIOS ROM image bits */
void *image;
unsigned int image_size;
/* Physical address to load at */
unsigned int bios_address;
/* ROMS */
void (*load_roms)(void);
void (*bios_load)(const struct bios_config *config);
void (*bios_info_setup)(void);
void (*bios_info_finish)(void);
void (*e820_setup)(void);
void (*acpi_build_tables)(void);
void (*create_mp_tables)(void);
void (*create_smbios_tables)(void);
void (*create_pir_tables)(void);
};
extern struct bios_config rombios_config;
extern struct bios_config seabios_config;
extern struct bios_config ovmf_config;
#define PAGE_SHIFT 12
#define PAGE_SIZE (1ul << PAGE_SHIFT)
#define IOAPIC_BASE_ADDRESS 0xfec00000
#define IOAPIC_ID 0x01
#define IOAPIC_VERSION 0x11
#define LAPIC_BASE_ADDRESS 0xfee00000
#define LAPIC_ID(vcpu_id) ((vcpu_id) * 2)
#define PCI_ISA_DEVFN 0x08 /* dev 1, fn 0 */
#define PCI_ISA_IRQ_MASK 0x0c20U /* ISA IRQs 5,10,11 are PCI connected */
/* MMIO hole: Hardcoded defaults, which can be dynamically expanded. */
#define PCI_MEM_START 0xf0000000
#define PCI_MEM_END 0xfc000000
#define PCI_MIN_BIG_BAR_SIZE 0x20000000
extern unsigned long pci_mem_start, pci_mem_end;
/* Memory map. */
#define SCRATCH_PHYSICAL_ADDRESS 0x00010000
#define HYPERCALL_PHYSICAL_ADDRESS 0x00080000
#define VGABIOS_PHYSICAL_ADDRESS 0x000C0000
#define HVMLOADER_PHYSICAL_ADDRESS 0x00100000
/* Special BIOS mappings, etc. are allocated from here upwards... */
#define RESERVED_MEMBASE 0xFC000000
/* NB. ACPI_INFO_PHYSICAL_ADDRESS *MUST* match definition in acpi/dsdt.asl! */
#define ACPI_INFO_PHYSICAL_ADDRESS 0xFC000000
#define RESERVED_MEMORY_DYNAMIC_START 0xFC001000
#define RESERVED_MEMORY_DYNAMIC_END 0xFE000000
/*
* GUEST_RESERVED: Physical address space reserved for guest use.
* This is not dynamically advertised to guests, so this range must *never*
* be used for any purpose by us, in future. It must always be marked as
* reserved in the memory map (e.g., E820_RESERVED) so that mechanisms such
* as PCI BAR remapping do not allocate from this region.
*/
#define GUEST_RESERVED_START 0xFE700000
#define GUEST_RESERVED_END 0xFE800000
extern unsigned long scratch_start;
#endif /* __HVMLOADER_CONFIG_H__ */
/*
* Local variables:
* mode: C
* c-set-style: "BSD"
* c-basic-offset: 4
* tab-width: 4
* indent-tabs-mode: nil
* End:
*/
|