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