summaryrefslogtreecommitdiff
path: root/arch/x86/include/asm/arch-qemu/qemu.h
blob: 061735b29858dc3f9b4c0af56d3f22d859cfe357 (plain)
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
/* SPDX-License-Identifier: GPL-2.0+ */
/*
 * Copyright (C) 2015, Bin Meng <bmeng.cn@gmail.com>
 */

#ifndef _ARCH_QEMU_H_
#define _ARCH_QEMU_H_

/* Programmable Attribute Map (PAM) Registers */
#define I440FX_PAM		0x59
#define Q35_PAM			0x90
#define PAM_NUM			7
#define PAM_RW			0x33

/* X-Bus Chip Select Register */
#define XBCS			0x4e
#define APIC_EN			(1 << 8)

/* IDE Timing Register */
#define IDE0_TIM		0x40
#define IDE1_TIM		0x42
#define IDE_DECODE_EN		(1 << 15)

/* PCIe ECAM Base Address Register */
#define PCIEX_BAR		0x60
#define BAR_EN			(1 << 0)

/* I/O Ports */
#define CMOS_ADDR_PORT		0x70
#define CMOS_DATA_PORT		0x71

#define LOW_RAM_ADDR		0x34
#define HIGH_RAM_ADDR		0x35

#define LOW_HIGHRAM_ADDR	0x5b
#define MID_HIGHRAM_ADDR	0x5c
#define HIGH_HIGHRAM_ADDR	0x5d

/* PM registers */
#define PMBA		0x40
#define PMREGMISC	0x80
#define PMIOSE		(1 << 0)

/**
 * qemu_get_low_memory_size() - Get low memory size
 *
 * @return:	size of memory below 4GiB
 */
u32 qemu_get_low_memory_size(void);

/**
 * qemu_get_high_memory_size() - Get high memory size
 *
 * @return:	size of memory above 4GiB
 */
u64 qemu_get_high_memory_size(void);

#endif /* _ARCH_QEMU_H_ */