summaryrefslogtreecommitdiff
path: root/Platform/AMD/AgesaModulePkg/Include/FchRegistersCommon.h
blob: 96856b642afe521698fcd29e758d5ca8d4162a5e (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
/** @file

  Copyright (C) 2008-2025 Advanced Micro Devices, Inc. All rights reserved.<BR>

  SPDX-License-Identifier: BSD-2-Clause-Patent

**/

#ifndef FCH_REGISTER_COMMON_H_
#define FCH_REGISTER_COMMON_H_

// Misc
#define R_FCH_ACPI_PM1_STATUS  0x00
#define R_FCH_ACPI_PM1_ENABLE  0x02
#define R_FCH_ACPI_PM_CONTROL  0x04

#define FCH_LPC_BUS   0
#define FCH_LPC_DEV   20
#define FCH_LPC_FUNC  3

#define ACPI_MMIO_BASE  0xFED80000ul
#define SMI_BASE        0x200           // DWORD
#define IOMUX_BASE      0xD00           // BYTE
#define MISC_BASE       0xE00
#define PMIO_BASE       0x300           // DWORD

//
//  FCH LPC Device  0x780E
//  Device 20 (0x14) Func 3
//
#define FCH_LPC_REG48  0x48             // IO/Mem Port Decode Enable Register 5- RW
#define FCH_LPC_REG74  0x74             // Alternative Wide IO Range Enable- W/R
#define FCH_LPC_REG7C  0x7C             // TPM (trusted plant form module) reg- W/R
#define FCH_LPC_REGA0  0x0A0            // SPI base address
#define FCH_LPC_REGB8  0x0B8

//
//  FCH MMIO Base (SMI)
//    offset : 0x200
//
#define FCH_SMI_REG80  0x80                   // SmiStatus0
#define FCH_SMI_REG84  0x84                   // SmiStatus1
#define FCH_SMI_REG88  0x88                   // SmiStatus2
#define FCH_SMI_REG8C  0x8C                   // SmiStatus3
#define FCH_SMI_REG90  0x90                   // SmiStatus4
#define FCH_SMI_REG98  0x98                   // SmiTrig
#define FCH_SMI_REGA0  0xA0
#define FCH_SMI_REGB0  0xB0
#define FCH_SMI_REGC4  0xC4

//
//  FCH MMIO Base (PMIO)
//    offset : 0x300
//
#define FCH_PMIOA_REG60  0x60                 // AcpiPm1EvtBlk
#define FCH_PMIOA_REG64  0x64                 // AcpiPmTmrBlk

//
//
#define FCH_MISC_REG80  0x80
// FCH SPI
//

#define FCH_SPI_BASE_ADDRESS  0xFEC10000

#define FCH_SPI_MMIO_REG00                0x00
#define FCH_SPI_FIFO_PTR_CRL              0x00100000l //
#define FCH_SPI_BUSY                      0x80000000l //
#define FCH_SPI_MMIO_REG1D                0x1D        //
#define FCH_SPI_MMIO_REG20                0x20
#define FCH_SPI_MMIO_REG22                0x22        //
#define FCH_SPI_MMIO_REG30                0x30        //
#define FCH_SPI_R2VAL24                   0x00000001l //
#define FCH_SPI_R2VAL25                   0x00000002l //
#define FCH_SPI_R2MSK24                   0x00000004l //
#define FCH_SPI_R2MSK25                   0x00000008l //
#define FCH_SPI_MMIO_REG45_CMDCODE        0x45        //
#define FCH_SPI_MMIO_REG47_CMDTRIGGER     0x47        //
#define FCH_SPI_MMIO_REG48_TXBYTECOUNT    0x48        //
#define FCH_SPI_MMIO_REG48_TX_BYTE_COUNT  FCH_SPI_MMIO_REG48_TXBYTECOUNT
#define FCH_SPI_MMIO_REG4B_RXBYTECOUNT    0x4B       //
#define FCH_SPI_MMIO_REG4B_RX_BYTE_COUNT  FCH_SPI_MMIO_REG4B_RXBYTECOUNT
#define FCH_SPI_MMIO_REG4C_SPISTATUS      0x4C       //
#define FCH_SPI_MMIO_REG5C_Addr32_Ctrl3   0x5C       //
#define FCH_SPI_MMIO_REG5C_ADDR32_CTRL3   FCH_SPI_MMIO_REG5C_Addr32_Ctrl3
#define FCH_SPI_SPIROM_PAGE_MASK          0xFF       //
#define FCH_SPI_MMIO_REG80_FIFO           0x80       //

/// AL2AHB Legacy UART I/O Enable Register (AL2AHBxFEDC0020)
#define FCH_AL2AHBx20_LEGACY_UART_IO_ENABLE  0xFEDC0020ul

#endif /* FCH_REGISTER_COMMON_H_ */