/*
 * PPC64 architecture-specific definitions
 *
 * Copyright 2011 Matt Evans <matt@ozlabs.org>, IBM Corporation.
 *
 * This program is free software; you can redistribute it and/or modify it
 * under the terms of the GNU General Public License version 2 as published
 * by the Free Software Foundation.
 */

#ifndef KVM__KVM_ARCH_H
#define KVM__KVM_ARCH_H

#include <stdbool.h>
#include <linux/types.h>
#include <linux/sizes.h>
#include <time.h>

/*
 * MMIO lives after RAM, but it'd be nice if it didn't constantly move.
 * Choose a suitably high address, e.g. 63T...  This limits RAM size.
 */
#define PPC_MMIO_START			0x3F0000000000UL
#define PPC_MMIO_SIZE			0x010000000000UL

#define KERNEL_LOAD_ADDR        	0x0000000000000000
#define KERNEL_START_ADDR       	0x0000000000000000
#define KERNEL_SECONDARY_START_ADDR     0x0000000000000060
#define INITRD_LOAD_ADDR        	0x0000000002800000

#define RTAS_MAX_SIZE           	0x10000

#define TIMEBASE_FREQ           	512000000ULL

#define KVM_MMIO_START			PPC_MMIO_START

/*
 * This is the address that pci_get_io_port_block() starts allocating
 * from.  Note that this is a PCI bus address.
 */
#define KVM_IOPORT_AREA			0x0
#define KVM_PCI_CFG_AREA		0x1000000
#define KVM_PCI_MMIO_AREA		0x2000000
#define KVM_VIRTIO_MMIO_AREA		0x3000000

#define KVM_IRQ_OFFSET			16

#define KVM_VM_TYPE			0

#define KVM_IOEVENTFD_HAS_PIO		0

#define MAX_PAGE_SIZE			SZ_256K

struct spapr_phb;

struct kvm_arch {
	u64			sdr1;
	u32			pvr;
	unsigned long		rtas_gra;
	unsigned long		rtas_size;
	unsigned long		fdt_gra;
	unsigned long		initrd_gra;
	unsigned long		initrd_size;
	struct icp_state	*icp;
	struct spapr_phb	*phb;
};

#endif /* KVM__KVM_ARCH_H */
