/*
 * (C) Copyright 2001 Sysgo Real-Time Solutions, GmbH <www.elinos.com>
 * Andreas Heppel <aheppel@sysgo.de>
 *
 * See file CREDITS for list of people who contributed to this
 * project.
 *
 * This program is free software; you can redistribute it and/or
 * modify it under the terms of the GNU General Public License as
 * published by the Free Software Foundation; either version 2 of
 * the License, or (at your option) any later version.
 *
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
 *
 * You should have received a copy of the GNU General Public License
 * along with this program; if not, write to the Free Software
 * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
 * MA 02111-1307 USA
 */

#ifndef _MPC106_PCI_H
#define _MPC106_PCI_H

/*
 * Defines for the MPC106 PCI Config address and data registers followed by
 * defines for the standard PCI device configuration header.
 */
#define PCIDEVID_MPC106			0x0

/*
 * MPC106 Registers
 */
#define	MPC106_REG			0x80000000

#ifdef CFG_ADDRESS_MAP_A
#define MPC106_REG_ADDR			0x80000cf8
#define	MPC106_REG_DATA			0x80000cfc
#define MPC106_ISA_IO_PHYS		0x80000000
#define MPC106_ISA_IO_BUS		0x00000000
#define MPC106_ISA_IO_SIZE		0x00800000
#define MPC106_PCI_IO_PHYS		0x81000000
#define MPC106_PCI_IO_BUS		0x01000000
#define MPC106_PCI_IO_SIZE		0x3e800000
#define MPC106_PCI_MEM_PHYS		0xc0000000
#define MPC106_PCI_MEM_BUS		0x00000000
#define MPC106_PCI_MEM_SIZE		0x3f000000
#define	MPC106_PCI_MEMORY_PHYS		0x00000000
#define	MPC106_PCI_MEMORY_BUS		0x80000000
#define	MPC106_PCI_MEMORY_SIZE		0x80000000
#else
#define MPC106_REG_ADDR			0xfec00cf8
#define	MPC106_REG_DATA			0xfee00cfc
#define MPC106_ISA_MEM_PHYS		0xfd000000
#define MPC106_ISA_MEM_BUS		0x00000000
#define MPC106_ISA_MEM_SIZE		0x01000000
#define MPC106_ISA_IO_PHYS		0xfe000000
#define MPC106_ISA_IO_BUS		0x00000000
#define MPC106_ISA_IO_SIZE		0x00800000
#define MPC106_PCI_IO_PHYS		0xfe800000
#define MPC106_PCI_IO_BUS		0x00800000
#define MPC106_PCI_IO_SIZE		0x00400000
#define MPC106_PCI_MEM_PHYS		0x80000000
#define MPC106_PCI_MEM_BUS		0x80000000
#define MPC106_PCI_MEM_SIZE		0x7d000000
#define	MPC106_PCI_MEMORY_PHYS		0x00000000
#define	MPC106_PCI_MEMORY_BUS		0x00000000
#define MPC106_PCI_MEMORY_SIZE		0x40000000
#endif

#define CMD_SERR			0x0100
#define PCI_CMD_MASTER			0x0004
#define PCI_CMD_MEMEN			0x0002
#define PCI_CMD_IOEN			0x0001

#define PCI_STAT_NO_RSV_BITS		0xffff

#define PCI_BUSNUM			0x40
#define PCI_SUBBUSNUM			0x41
#define PCI_DISCOUNT			0x42

#define PCI_PICR1			0xA8
#define PICR1_CF_CBA(value)		((value & 0xff) << 24)
#define PICR1_CF_BREAD_WS(value)	((value & 0x3) << 22)
#define PICR1_PROC_TYPE_603		0x40000
#define PICR1_PROC_TYPE_604		0x60000
#define PICR1_MCP_EN			0x800
#define PICR1_CF_DPARK			0x200
#define PICR1_CF_LOOP_SNOOP		0x10
#define PICR1_CF_L2_COPY_BACK		0x2
#define PICR1_CF_L2_CACHE_MASK		0x3
#define PICR1_CF_APARK			0x8
#define PICR1_ADDRESS_MAP		0x10000
#define PICR1_XIO_MODE			0x80000
#define PICR1_CF_CACHE_1G		0x200000

#define PCI_PICR2			0xAC
#define PICR2_CF_SNOOP_WS(value)	((value & 0x3) << 18)
#define PICR2_CF_FLUSH_L2		0x10000000
#define PICR2_CF_L2_HIT_DELAY(value)	((value & 0x3) << 9)
#define PICR2_CF_APHASE_WS(value)	((value & 0x3) << 2)
#define PICR2_CF_INV_MODE		0x00001000
#define PICR2_CF_MOD_HIGH		0x00020000
#define PICR2_CF_HIT_HIGH		0x00010000
#define PICR2_L2_SIZE_256K		0x00000000
#define PICR2_L2_SIZE_512K		0x00000010
#define PICR2_L2_SIZE_1MB		0x00000020
#define PICR2_L2_EN			0x40000000
#define PICR2_L2_UPDATE_EN		0x80000000
#define PICR2_CF_ADDR_ONLY_DISABLE	0x00004000
#define PICR2_CF_FAST_CASTOUT		0x00000080
#define PICR2_CF_WDATA			0x00000001
#define PICR2_CF_DATA_RAM_PBURST	0x00400000

/*
 * Memory controller
 */
#define MPC106_MCCR1			0xF0
#define MCCR1_TYPE_EDO			0x00020000
#define MCCR1_BK0_9BITS			0x0
#define MCCR1_BK0_10BITS		0x1
#define MCCR1_BK0_11BITS		0x2
#define MCCR1_BK0_12BITS		0x3
#define MCCR1_BK1_9BITS			0x0
#define MCCR1_BK1_10BITS		0x4
#define MCCR1_BK1_11BITS		0x8
#define MCCR1_BK1_12BITS		0xC
#define MCCR1_BK2_9BITS			0x00
#define MCCR1_BK2_10BITS		0x10
#define MCCR1_BK2_11BITS		0x20
#define MCCR1_BK2_12BITS		0x30
#define MCCR1_BK3_9BITS			0x00
#define MCCR1_BK3_10BITS		0x40
#define MCCR1_BK3_11BITS		0x80
#define MCCR1_BK3_12BITS		0xC0
#define MCCR1_MEMGO			0x00080000

#define MPC106_MCCR2			0xF4
#define MPC106_MCCR3			0xF8
#define MPC106_MCCR4			0xFC

#define MPC106_MSAR1			0x80
#define MPC106_EMSAR1			0x88
#define MPC106_EMSAR2			0x8C
#define MPC106_MEAR1			0x90
#define MPC106_EMEAR1			0x98
#define MPC106_EMEAR2			0x9C

#define MPC106_MBER			0xA0
#define MBER_BANK0			0x1
#define MBER_BANK1			0x2
#define MBER_BANK2			0x4
#define MBER_BANK3			0x8

#endif
