blob: b6806317f2280cc3eb19bec122c73c4596a23048 [file] [log] [blame]
zbao7d94cf92012-07-02 14:19:14 +08001/* $NoKeywords:$ */
2/**
3 * @file
4 *
5 * Config Fch LPC controller
6 *
7 * Init LPC Controller features.
8 *
9 * @xrefitem bom "File Content Label" "Release Content"
10 * @e project: AGESA
11 * @e sub-project: FCH
12 * @e \$Revision: 63425 $ @e \$Date: 2011-12-22 11:24:10 -0600 (Thu, 22 Dec 2011) $
13 *
14 */
15/*
16*****************************************************************************
17*
Siyuan Wang641f00c2013-06-08 11:50:55 +080018 * Copyright (c) 2008 - 2012, Advanced Micro Devices, Inc.
19 * All rights reserved.
20 *
21 * Redistribution and use in source and binary forms, with or without
22 * modification, are permitted provided that the following conditions are met:
23 * * Redistributions of source code must retain the above copyright
24 * notice, this list of conditions and the following disclaimer.
25 * * Redistributions in binary form must reproduce the above copyright
26 * notice, this list of conditions and the following disclaimer in the
27 * documentation and/or other materials provided with the distribution.
28 * * Neither the name of Advanced Micro Devices, Inc. nor the names of
29 * its contributors may be used to endorse or promote products derived
30 * from this software without specific prior written permission.
31 *
32 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
33 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
34 * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
35 * DISCLAIMED. IN NO EVENT SHALL ADVANCED MICRO DEVICES, INC. BE LIABLE FOR ANY
36 * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
37 * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
38 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
39 * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
40 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
41 * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
zbao7d94cf92012-07-02 14:19:14 +080042****************************************************************************
43*/
44#include "FchPlatform.h"
45#include "Filecode.h"
46#define FILECODE PROC_FCH_SPI_FAMILY_HUDSON2_HUDSON2LPCENVSERVICE_FILECODE
47
48/**
49 * FchInitHudson2EnvLpcPciTable - PCI device registers initial
50 * during early POST.
51 *
52 */
53REG8_MASK FchInitHudson2EnvLpcPciTable[] =
54{
55 //
56 // LPC Device (Bus 0, Dev 20, Func 3)
57 //
58 {0x00, LPC_BUS_DEV_FUN, 0},
59 {FCH_LPC_REG40, (UINT8)~BIT2, BIT2}, /// Enabling LPC DMA Function 0x40[2]=1b 0x78[0]=0b
60 {FCH_LPC_REG48, 0x00, BIT0 + BIT1 + BIT2},
61 {0x78 , 0xFC, 00}, /// Enabling LPC DMA Function 0x40[2]=1b 0x78[0]=0b / Disables MSI capability
62 {FCH_LPC_REGBB, (UINT8)~BIT0, (BIT0 + BIT3 + BIT4 + BIT5)}, /// Enabled SPI Prefetch from HOST.
63 {0xFF, 0xFF, 0xFF},
64};
65
66/**
67 * FchInitEnvLpcProgram - Config LPC controller before PCI
68 * emulation
69 *
70 *
71 *
72 * @param[in] FchDataPtr Fch configuration structure pointer.
73 *
74 */
75VOID
76FchInitEnvLpcProgram (
77 IN VOID *FchDataPtr
78 )
79{
80 FCH_DATA_BLOCK *LocalCfgPtr;
81 AMD_CONFIG_PARAMS *StdHeader;
82 LocalCfgPtr = (FCH_DATA_BLOCK *) FchDataPtr;
83 StdHeader = LocalCfgPtr->StdHeader;
84
Patrick Georgi6b688f52021-02-12 13:49:11 +010085 ProgramPciByteTable ((REG8_MASK*) (&FchInitHudson2EnvLpcPciTable[0]),
86 ARRAY_SIZE(FchInitHudson2EnvLpcPciTable), StdHeader);
zbao7d94cf92012-07-02 14:19:14 +080087
88 //
89 // Disable LPC A-Link Cycle Bypass
90 //
91 RwMem (ACPI_MMIO_BASE + MISC_BASE + FCH_MISC_REG50 + 2, AccessWidth8, 0xF7, BIT3);
92}
93