xref: /rk3399_rockchip-uboot/arch/x86/include/asm/arch-ivybridge/sandybridge.h (revision b70e742d16d7c95d607fa5caf8b6471c259016a4)
18e0df066SSimon Glass /*
28e0df066SSimon Glass  * Copyright (c) 2014 Google, Inc
38e0df066SSimon Glass  *
48e0df066SSimon Glass  * From Coreboot file of the same name
58e0df066SSimon Glass  *
68e0df066SSimon Glass  * Copyright (C) 2007-2008 coresystems GmbH
78e0df066SSimon Glass  * Copyright (C) 2011 Google Inc.
88e0df066SSimon Glass  *
98e0df066SSimon Glass  * SPDX-License-Identifier:	GPL-2.0
108e0df066SSimon Glass  */
118e0df066SSimon Glass 
128e0df066SSimon Glass #ifndef _ACH_ASM_SANDYBRIDGE_H
138e0df066SSimon Glass #define _ACH_ASM_SANDYBRIDGE_H
148e0df066SSimon Glass 
158e0df066SSimon Glass /* Chipset types */
168e0df066SSimon Glass #define SANDYBRIDGE_MOBILE	0
178e0df066SSimon Glass #define SANDYBRIDGE_DESKTOP	1
188e0df066SSimon Glass #define SANDYBRIDGE_SERVER	2
198e0df066SSimon Glass 
208e0df066SSimon Glass /* Device ID for SandyBridge and IvyBridge */
218e0df066SSimon Glass #define BASE_REV_SNB	0x00
228e0df066SSimon Glass #define BASE_REV_IVB	0x50
238e0df066SSimon Glass #define BASE_REV_MASK	0x50
248e0df066SSimon Glass 
258e0df066SSimon Glass /* SandyBridge CPU stepping */
268e0df066SSimon Glass #define SNB_STEP_D0	(BASE_REV_SNB + 5) /* Also J0 */
278e0df066SSimon Glass #define SNB_STEP_D1	(BASE_REV_SNB + 6)
288e0df066SSimon Glass #define SNB_STEP_D2	(BASE_REV_SNB + 7) /* Also J1/Q0 */
298e0df066SSimon Glass 
308e0df066SSimon Glass /* IvyBridge CPU stepping */
318e0df066SSimon Glass #define IVB_STEP_A0	(BASE_REV_IVB + 0)
328e0df066SSimon Glass #define IVB_STEP_B0	(BASE_REV_IVB + 2)
338e0df066SSimon Glass #define IVB_STEP_C0	(BASE_REV_IVB + 4)
348e0df066SSimon Glass #define IVB_STEP_K0	(BASE_REV_IVB + 5)
358e0df066SSimon Glass #define IVB_STEP_D0	(BASE_REV_IVB + 6)
368e0df066SSimon Glass 
378e0df066SSimon Glass /* Intel Enhanced Debug region must be 4MB */
388e0df066SSimon Glass #define IED_SIZE	0x400000
398e0df066SSimon Glass 
408e0df066SSimon Glass /* Northbridge BARs */
418e0df066SSimon Glass #define DEFAULT_DMIBAR		0xfed18000	/* 4 KB */
428e0df066SSimon Glass #define DEFAULT_EPBAR		0xfed19000	/* 4 KB */
438e0df066SSimon Glass #define DEFAULT_RCBABASE	0xfed1c000
448e0df066SSimon Glass /* 4 KB per PCIe device */
452d934e57SSimon Glass #define DEFAULT_PCIEXBAR	CONFIG_PCIE_ECAM_BASE
468e0df066SSimon Glass 
478e0df066SSimon Glass /* Device 0:0.0 PCI configuration space (Host Bridge) */
488e0df066SSimon Glass #define EPBAR		0x40
498e0df066SSimon Glass #define MCHBAR		0x48
508e0df066SSimon Glass #define PCIEXBAR	0x60
518e0df066SSimon Glass #define DMIBAR		0x68
528e0df066SSimon Glass #define X60BAR		0x60
538e0df066SSimon Glass 
548e0df066SSimon Glass #define GGC		0x50			/* GMCH Graphics Control */
558e0df066SSimon Glass 
568e0df066SSimon Glass #define DEVEN		0x54			/* Device Enable */
578e0df066SSimon Glass #define  DEVEN_PEG60	(1 << 13)
588e0df066SSimon Glass #define  DEVEN_IGD	(1 << 4)
598e0df066SSimon Glass #define  DEVEN_PEG10	(1 << 3)
608e0df066SSimon Glass #define  DEVEN_PEG11	(1 << 2)
618e0df066SSimon Glass #define  DEVEN_PEG12	(1 << 1)
628e0df066SSimon Glass #define  DEVEN_HOST	(1 << 0)
638e0df066SSimon Glass 
648e0df066SSimon Glass #define PAM0		0x80
658e0df066SSimon Glass #define PAM1		0x81
668e0df066SSimon Glass #define PAM2		0x82
678e0df066SSimon Glass #define PAM3		0x83
688e0df066SSimon Glass #define PAM4		0x84
698e0df066SSimon Glass #define PAM5		0x85
708e0df066SSimon Glass #define PAM6		0x86
718e0df066SSimon Glass 
728e0df066SSimon Glass #define LAC		0x87	/* Legacy Access Control */
738e0df066SSimon Glass #define SMRAM		0x88	/* System Management RAM Control */
748e0df066SSimon Glass #define  D_OPEN		(1 << 6)
758e0df066SSimon Glass #define  D_CLS		(1 << 5)
768e0df066SSimon Glass #define  D_LCK		(1 << 4)
778e0df066SSimon Glass #define  G_SMRAME	(1 << 3)
788e0df066SSimon Glass #define  C_BASE_SEG	((0 << 2) | (1 << 1) | (0 << 0))
798e0df066SSimon Glass 
808e0df066SSimon Glass #define TOM		0xa0
818e0df066SSimon Glass #define TOUUD		0xa8	/* Top of Upper Usable DRAM */
828e0df066SSimon Glass #define TSEG		0xb8	/* TSEG base */
838e0df066SSimon Glass #define TOLUD		0xbc	/* Top of Low Used Memory */
848e0df066SSimon Glass 
858e0df066SSimon Glass #define SKPAD		0xdc	/* Scratchpad Data */
868e0df066SSimon Glass 
878e0df066SSimon Glass /* Device 0:1.0 PCI configuration space (PCI Express) */
888e0df066SSimon Glass #define BCTRL1		0x3e	/* 16bit */
898e0df066SSimon Glass 
908e0df066SSimon Glass /* Device 0:2.0 PCI configuration space (Graphics Device) */
918e0df066SSimon Glass 
928e0df066SSimon Glass #define MSAC		0x62	/* Multi Size Aperture Control */
938e0df066SSimon Glass #define SWSCI		0xe8	/* SWSCI  enable */
948e0df066SSimon Glass #define ASLS		0xfc	/* OpRegion Base */
958e0df066SSimon Glass 
968e0df066SSimon Glass /*
978e0df066SSimon Glass  * MCHBAR
988e0df066SSimon Glass  */
998e0df066SSimon Glass #define SSKPD		0x5d14	/* 16bit (scratchpad) */
1008e0df066SSimon Glass #define BIOS_RESET_CPL	0x5da8	/* 8bit */
1018e0df066SSimon Glass 
10224774278SSimon Glass /*
10324774278SSimon Glass  * DMIBAR
10424774278SSimon Glass  */
10524774278SSimon Glass 
10624774278SSimon Glass #define DMIBAR_REG(x)	(DEFAULT_DMIBAR + x)
10724774278SSimon Glass 
108*1605b100SSimon Glass /**
109*1605b100SSimon Glass  * bridge_silicon_revision() - Get the Northbridge revision
110*1605b100SSimon Glass  *
111*1605b100SSimon Glass  * @dev:	Northbridge device
112*1605b100SSimon Glass  * @return revision ID (bits 3:0) and bridge ID (bits 7:4)
113*1605b100SSimon Glass  */
114*1605b100SSimon Glass int bridge_silicon_revision(struct udevice *dev);
11524774278SSimon Glass 
1168e0df066SSimon Glass #endif
117