u-boot/arch/x86/include/asm/arch-qemu/qemu.h
Bin Meng ea67d549b8 x86: qemu: Support getting high memory size
At present only size of memory that is below 4GiB is retrieved from
QEMU. Add a function that gets size of memory that is above 4GiB.

Signed-off-by: Bin Meng <bmeng.cn@gmail.com>
Reviewed-by: Aiden Park <aiden.park@intel.com>
2019-09-10 14:19:39 +08:00

58 lines
1.2 KiB
C

/* 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_ */