MEC170x Data Sheet DS00002206H
MEC170x Data Sheet DS00002206H
Errata
An errata sheet, describing minor operational differences from the data sheet and recommended workarounds, may exist for cur-
rent devices. As device/documentation issues become known to us, we will publish an errata sheet. The errata will specify the
revision of silicon and revision of document to which it applies.
To determine if an errata sheet exists for a particular device, please check with one of the following:
• Microchip’s Worldwide Web site; http://www.microchip.com
• Your local Microchip sales office (see last page)
When contacting a sales office, please specify which device, revision of silicon and data sheet (include -literature number) you are
using.
CPU
LPC Interface
VCC_PWRGD
A20M, KBRST,
nRESET_OUT, SMBus
nRESET_IN, Voltage Monitoring
TACHs (3)
SMI, SCI, SIRQ ADCs (16) (e.g., Thermistors,
Fans or Power Supplies)
General PWMs (11)
Use UPD
I2C (2)
Analog Front End
BC-Link
PS/2 PS/2 Battery SMBus/I2C
Keyboard GPIOs Companion
Mouse Keyboard Pack Device(s)
Chip(s)
CPU
eSPI Interface
VCC_PWRGD
BC-Link
PS/2 PS/2 Battery SMBus/I2C
Keyboard GPIOs Companion
Mouse Keyboard Pack Device(s)
Chip(s)
Note: Not all features shown are available on all devices. Refer to Table 1-1, "MEC170x Feature List by Package"
for a list of the features by device.
Bus Switch
LPC eSPI
Internal
HASH/AES
DMA
Engine
Controller
Mailbox
Memory 8042
DTCM Controller Public Key Crypto Emulation
ARM M4F Engine RAM
Boot ROM
ACPI‐EC I/F
ITCM (x5)
Random
JTAG/SWD
SRAM eFuse
Port‐92
Power,
RC_ID Interrupt
Clocks, UART
(x3) Aggregator
Resets (x2)
SMB/I2C
Watchdog
Controller Port 80
Timer
(x4) (x2)
16‐bit Basic
Quad SPI
Timer EMI
Master
(x4) (x3)
32‐bit Basic
GP‐SPI
Timer Real Time
(x2)
(x2) Clock
Capture/
PWM
Compare
(x11)
Timer
16‐bit
Tach
Timer/Counter
(x3)
(x4)
Hibernation
RPM2PWM
Timer
(x2)
(x2)
PECI RTOS Timer
ADC Week Timer
128 Byte
Trace FIFO
VBAT RAM
Blink/
Breathe LED EEPROM
(x4)
BC‐Link
Master
(x2)
VBAT
Control
Interface
Key Scan
18 x 8
2.1 Description
The Pin Configuration chapter includes Pin List By Pin Name, Signal Description by Signal, Notes for Tables in this
Chapter, Pin Default State Through Power Transitions, and Packages.
Term Definition
# The ‘#’ sign at the end of a signal name indicates an active-low signal
n The lowercase ‘n’ preceding a signal name indicates an active-low signal
PWR Power
Programmable as Input, Output, Open Drain Output, Bi-directional or Bi-directional with Open
Drain Output. Configurable drive strength from 2ma to12ma.
PIO Note: All GPIOs have programmable drive strength options of 2ma, 4ma, 8ma and 12ma.
GPIO pin drive strength is determined by the DRIVE_STRENGTH field in the Pin
Control 2 Register.
In I Type Input Buffer.
O2ma O-2 mA Type Buffer.
PCI PCI pin. These pins meet the PCI 3.3V AC and DC Characteristics. (Note 1)
PECI PECI Input/Output. These pins operate at the processor voltage level (VREF_VTT)
SB-TSI SB-TSI Input/Output. These pins operate at the processor voltage level (VREF_VTT)
Note 1: See the “PCI Local Bus Specification,” Revision 2.1, Section 4.2.2.
2: See the “PCI Local Bus Specification,” Revision 2.1, Section 4.2.2 and 4.2.3.
Note Description
The nEC_SCI pin can be controlled by hardware and EC firmware. The nEC_SCI pin
can drive either the ACPI Run-time GPE Chipset input or the Wake GPE Chipset input.
Note 1 Depending how the nEC_SCI pin is used, other ACPI-related SCI functions may be best
supplied by other general purpose outputs that can be configured as open-drain drivers.
Note 2 These pins require an external weak pull-up resistors of 10k-100k ohms.
A weak pull-up resistor is recommended on the BC-Link data line (100K).
Note 3
The UARTs can be used by the Host or EC. This pin can be VCC protected or not VCC protected under
Note 4 program control by the POWER bit in the Configuration Select Register in Host configuration space (also
accessible by the EC).
The UART_CLK external baud clock input is connected to all the UARTs in the design. Each UART may
Note 10
select either the external UART_CLK baud clock or the internally generated baud clock.
The nEM_INT signal is asserted low if any of the EMI blocks have their nEM_INT signal asserted low.
Note 11
This signal can be routed to nSMI and nPME inputs in the system as required.
The Private SPI Interface may be used for Crisis Recovery. Crisis Recovery offers a way to load a SPI
Flash image from an external SPI Flash device connected via the Keyboard Scan Interface pins. The
Note 12
GPIO045/KSO01 pin requires a weak external pull-up for normal operation. If this pin is not detected as
a high input following a POR the device could enter Crisis Recovery mode in error and fail to boot.
VCI_IN# function works even when configured as GPIO.
Note 13
I2C/SMBus Port pins can be mapped to any SMB-I2C Controller. The number in the I2C/SMBus signal
Note 14
names (I2Cxx_DATA) indicates the port value. E.g. I2C01_DATA represents I2C/SMBus Data Port 1
Note 15 The Voltage Regulator Capacitor (VR_CAP) pin requires an external 1uF capacitor.
The GPTP-OUT always drives at the level of the output buffer regardless of the voltage at the GPTP-IN
pin. If GPTP-OUT buffer is powered by 1.8V the signal out will be 1.8V regardless of the voltage on the
Note 16 GPTP-IN pin. So, if GPTP-IN pin is 3.3V then the output essentially level-shifts the voltage down to 1.8V.
Similarly if GPTP-OUT is 3.3V then the signal will be 3.3V regardless of the voltage on the GPTP-IN pin.
If the GPTP-IN pin is 1.8V the output essentially level-shifts the voltage up to 3.3V.
MEC1701/MEC1703-144 WFBGA-SZ
MEC1701/MEC1703-128 WFBGA-TF
MEC1703-169 WFBGA-XY
MEC1701-169 WFBGA-TN
MEC1703-169 WFBGA-TN
MEC1704-144 WFBGA-SZ
MEC1705-144 WFBGA-SZ
Default
Default
Pin Name State
(if not GPIO)
(if not In)
MEC1701/MEC1703-144 WFBGA-SZ
MEC1701/MEC1703-128 WFBGA-TF
MEC1701-169 WFBGA-TN
MEC1703-169 WFBGA-TN
MEC1703-169 WFBGA-XY
MEC1704-144 WFBGA-SZ
MEC1701/MEC1703-144 WFBGA-SZ
MEC1701/MEC1703-128 WFBGA-TF
MEC1701-169 WFBGA-TN
MEC1703-169 WFBGA-TN
MEC1703-169 WFBGA-XY
MEC1704-144 WFBGA-SZ
MEC1705-144 WFBGA-SZ
Default
Default
Pin Name State
(if not GPIO)
(if not In)
MEC1701/MEC1703-144 WFBGA-SZ
MEC1701/MEC1703-128 WFBGA-TF
MEC1701-169 WFBGA-TN
MEC1703-169 WFBGA-TN
MEC1703-169 WFBGA-XY
MEC1704-144 WFBGA-SZ
MEC1701/MEC1703-144 WFBGA-SZ
MEC1701/MEC1703-128 WFBGA-TF
MEC1701-169 WFBGA-TN
MEC1703-169 WFBGA-TN
MEC1703-169 WFBGA-XY
MEC1704-144 WFBGA-SZ
MEC1705-144 WFBGA-SZ
Default
Default
Pin Name State
(if not GPIO)
(if not In)
M7 M5 M5 M5 N6 M3 R6 GPIO224/GPTP-IN4/SHD_IO1
A13 A13 A10 E9 C13 GPIO225/UART0_RTS#
F2 F2 F2 E3 C2 F1 GPIO226/LED3
M6 L6 L6 L6 N7 M4 P7 GPIO227/SHD_IO2
L8 N8 R11 GPIO230
K7 M7 J8 GPIO231
G8 K8 L10 GPIO233
B1 A1 E4 GPIO234/VCI_IN4#
G13 G10 G10 H14 GPIO240
B8 B8 B8 D6 D9 B10 GPIO241
A10 A10 A10 D5 A9 A12 GPIO242
C8 C8 C8 D8 C9 E9 GPIO243
A11 A11 A11 B8 B10 A13 GPIO244
B11 B11 B11 C8 A10 B12 GPIO245
B10 B10 B10 B9 C10 D10 GPIO246
B9 B9 B9 A8 B9 B11 GPIO254
F12 G11 G11 G11 F10 F12 G11 JTAG_RST# JTAG_RST#
A1 D3 D3 D3 G6 F4 G5 RESETI# RESETI#
E5 E5 E5 E5 E6 F7 D5 VBAT VBAT
B4 C5 C5 C5 B2 B3 B4 VCI_OUT VCI_OUT O2ma-High
D1 F1 F1 F1 E1 E1 D1 VFLT_PLL VFLT_PLL
G1 H1 H1 H1 J1 F1 G1 VR_CAP VR_CAP
G2 G2 G2 G2 H5 G1 J5 VREF_ADC VREF_ADC
E7 F6 F6 F6 E5 H8 B2 VSS1 VSS1
F9 G3 G3 G3 J7 G7 H8 VSS2 VSS2
E8 H5 H5 H5 K6 G6 J7 VSS3 VSS3
H5 K1 K1 K1 L1 H6 M1 VSS_ADC VSS_ADC
VSS_ANALOG VSS_ANA-
E6 B4 B4 B4 C4 F6 A3
LOG
E9 G5 G5 G5 G4 F8 F4 VTR1 VTR1
J8 H8 H8 H8 L12 J8 N13 VTR2 VTR2
J5 H6 H6 H6 J6 H7 P4 VTR3 VTR3
VTR_ANALOG VTR_ANA-
F5 G6 G6 G6 H8 G8 L5
LOG
MEC1701/MEC1703-144 WFBGA-SZ
MEC1701/MEC1703-128 WFBGA-TF
MEC1701-169 WFBGA-TN
MEC1703-169 WFBGA-TN
MEC1703-169 WFBGA-XY
MEC1704-144 WFBGA-SZ
E1 E1 E1 E1 D1 D1 C1 VTR_PLL VTR_PLL
G5 G1 G1 G1 H1 G5 H2 VTR_REG VTR_REG
A4 A3 A3 A3 A3 A2 A4 XTAL1 XTAL1
A2 A1 A1 A1 A1 A4 A2 XTAL2 XTAL2
Note: If the pin needs to default low, a 1M ohm (max) external pull-down is required.
Pins without glitch protection may be susceptible to transitory changes as the power rail is rising.
Note: The power rail must rise monotonically in order for glitch protection to operate.
Note: Pins with over-voltage protection may be pulled up externally to 5V supply. It is recommended to select
strong pull-up resistor values (less than 10k ohms) that keep the pull-up voltage on the pin less than 3.8V
and above 4.5V. If the voltage is 3.8V < x < 4.5V the pad current will be higher (65ua -nominal).
For pins with Over-voltage protection and the VTRx power rail that is supplying the pin is 1.8V, the pin can tolerate an
input voltage of up to 3.6V without causing an error.
An input level that exceeds 105% of the power rail on a pin without Over-voltage protection may cause errors in the logic
and may additionally damage internal circuitry.
MEC1703-128 WFBGA-TF
Under-voltage Prot
Over-voltage Prot
Backdrive Prot
Glitch Prot
Power Pad
Signal
Rail Type
A1 A1 RESETI# VTR1 In X X X
A2 A2 XTAL2 VBAT I_AN
A3 A3 BGPO0 VBAT O2ma X X X
A4 A4 XTAL1 VBAT I_AN
A5 A5 GPIO143/I2C04_SDA/SPI1_MISO/UART0_DTR#/TRACEDAT2 VTR1 PIO X X X
A6 A6 GPIO141/I2C05_SDA/SPI1_CLK/UART0_DCD#/TRACEDAT0 VTR1 PIO X X X
A7 A7 GPIO146/I2C09_SCL/JTAG_TDO VTR1 PIO X X X
A8 A8 GPIO145/I2C09_SDA/JTAG_TDI VTR1 PIO X X X
A9 A9 GPIO045/KSO01 VTR1 PIO X X X
A10 A10 GPIO154/I2C02_SDA/PS2_CLK1B VTR1 PIO X X X X
A11 A11 GPIO153/LED2 VTR1 PIO X X X X
A12 A12 GPIO157/LED1 VTR1 PIO X X X X
A13 A13 GPIO127/A20M/UART0_CTS# VTR1 PIO X X X
B1 B1 GPIO024/GPTP-IN2 VTR1 PIO X X X
B2 B2 GPIO057/VCC_PWRGD VTR1 PIO X X X
B3 B3 GPIO161/VCI_IN2# VBAT PIO X X X
B4 B4 VCI_OUT VBAT O2ma X X
B5 B5 GPIO003/I2C00_SDA/SPI0_CS# VTR1 PIO X X X
B6 B6 GPIO142/I2C05_SCL/SPI1_MOSI/UART0_DSR#/TRACEDAT1 VTR1 PIO X X X
B7 B7 GPIO147/I2C08_SDA/JTAG_CLK VTR1 PIO X X X
B8 B8 GPIO165/32KHZ_IN/CTOUT0/TRACECLK VTR1 PIO X X X
B9 B9 GPIO155/I2C02_SCL/PS2_DAT1B VTR1 PIO X X X X
B10 B10 GPIO010/I2C03_SCL/PS2_DAT0B VTR1 PIO X X X X
B11 B11 GPIO007/I2C03_SDA/PS2_CLK0B VTR1 PIO X X X X
B12 B12 GPIO156/LED0 VTR1 PIO X X X X
B13 B13 GPIO047/BCM1_CLK/KSO03 VTR1 PIO X X X
C1 C1 GPIO221/GPTP-IN3/32KHZ_OUT VTR1 PIO X X X
C2 C2 GPIO022/GPTP-IN0 VTR1 PIO X X X
C12 C12 GPIO124/GPTP-OUT6/PVT_CS#/KSO11 VTR1 PIO X X X
C13 C13 GPIO126/PVT_IO3/KSO13 VTR1 PIO X X X
D1 D1 VFLT_PLL PWR
D2 D2 GPIO000/VCI_IN3# VBAT PIO X X X
D4 D4 GPIO062/(RESETO#) VTR1 PIO X X
D5 D5 GPIO162/VCI_IN1# VBAT PIO X X X
D6 D6 GPIO163/VCI_IN0# VBAT PIO X X X
MEC1703-128 WFBGA-TF
Under-voltage Prot
Over-voltage Prot
Backdrive Prot
Glitch Prot
Power Pad
Signal
Rail Type
MEC1701-128 WFBGA-TF
MEC1703-128 WFBGA-TF
Under-voltage Prot
Over-voltage Prot
Backdrive Prot
Glitch Prot
Power Pad
Signal
Rail Type
GPIO200/ADC00
H2 H2 GPIO200 VTR1 PIO X X
ADC00 I_AN X X
H4 H4 GPIO052/FAN_TACH2/LRESET# VTR2 PIO X X X
H5 H5 VSS_ADC PWR
H9 H9 GPIO017/GPTP-IN5/KSI0 VTR2 PIO X X X
GPIO043/SB-TSI_CLK
H10 H10 GPIO043 VTR1 PIO X X
SB-TSI_CLK PECI X X
GPIO044/VREF_VTT
H12 H12 GPIO044 VTR1 PIO X X
VREF_VTT I_AN X X
H13 H13 GPIO113/PS2_DAT1A/KSO06 VTR2 PIO X X X
GPIO203/ADC03
J1 J1 GPIO203 VTR1 PIO X X
ADC03 I_AN X X
GPIO202/ADC02
J2 J2 GPIO202 VTR1 PIO X X
ADC02 I_AN X X
J4 J4 GPIO011/nSMI VTR3 PIO X X X
J5 J5 VTR3 PWR
J6 J6 GPIO130/I2C10_SDA/TOUT1 VTR2 PIO X X X
J7 J7 GPIO151/ICT4/KSO15 VTR2 PIO X X X
J8 J8 VTR2 PWR
J9 J9 GPIO032/GPTP-OUT0/KSI7 VTR2 PIO X X X
GPIO042/PECI_DAT/SB-TSI_DAT
J10 J10 GPIO042 VTR1 PIO X X
PECI_DAT/SB-TSI_DAT PECI X X
J12 J12 GPIO112/PS2_CLK1A/KSO05 VTR2 PIO X X X
J13 J13 GPIO120/KSO07 VTR2 PIO X X X
GPIO204/ADC04
K1 K1 GPIO204 VTR1 PIO X X
ADC04 I_AN X X
GPIO205/ADC05
K2 K2 GPIO205 VTR1 PIO X X
ADC05 I_AN X X
K4 K4 GPIO100/nEC_SCI VTR3 PIO X X X
MEC1703-128 WFBGA-TF
Under-voltage Prot
Over-voltage Prot
Backdrive Prot
Glitch Prot
Power Pad
Signal
Rail Type
MEC1701-128 WFBGA-TF
MEC1703-128 WFBGA-TF
Under-voltage Prot
Over-voltage Prot
Backdrive Prot
Glitch Prot
Power Pad
Signal
Rail Type
GPIO072/LAD2/ESPI_IO2
N3 N3 GPIO072/ESPI_IO2 VTR3 PIO
LAD2 PCI
GPIO073/LAD3/ESPI_IO3
N4 N4 GPIO073/ESPI_IO3 VTR3 PIO
LAD3 PCI
N5 N5 GPIO223/SHD_IO0 VTR2 PIO X X X
N6 N6 GPIO016/GPTP-IN7/SHD_IO3/ICT3 VTR2 PIO X X X
N7 N7 GPIO056/PWM3/SHD_CLK VTR2 PIO X X X
N8 N8 GPIO055/PWM2/SHD_CS#/(RSMRST#) VTR2 PIO X X X
N9 N9 GPIO021/LPCPD#/KSI2 VTR2 PIO X X X
N10 N10 GPIO152/GPTP-OUT3/KSO16 VTR2 PIO X X X
N11 N11 GPIO031/GPTP-OUT1/KSI6 VTR2 PIO X X X
N12 N12 GPIO132/I2C06_SDA/KSO14 VTR2 PIO X X X
N13 N13 GPIO026/TIN1/KSI3 VTR2 PIO X X X
MEC1701/MEC1703-144-SZ
Under-voltage Prot
Over-voltage Prot
Backdrive Prot
Glitch Prot
Power Pad
Pin Name
Rail Type
MEC1705/MEC1704-144-SZ
MEC1701/MEC1703-144-SZ
Under-voltage Prot
Over-voltage Prot
Backdrive Prot
Glitch Prot
Power Pad
Pin Name
Rail Type
MEC1701/MEC1703-144-SZ
Under-voltage Prot
Over-voltage Prot
Backdrive Prot
Glitch Prot
Power Pad
Pin Name
Rail Type
MEC1705/MEC1704-144-SZ
MEC1701/MEC1703-144-SZ
Under-voltage Prot
Over-voltage Prot
Backdrive Prot
Glitch Prot
Power Pad
Pin Name
Rail Type
GPIO203/ADC03
J1 J1 GPIO203 VTR1 PIO X X
ADC03 I_AN X X
GPIO202/ADC02
J2 J2 GPIO202 VTR1 PIO X X
ADC02 I_AN X X
GPIO201/ADC01
J3 J3 GPIO201 VTR1 PIO X X
ADC01 I_AN X X
J5 J5 GPIO064/LRESET# VTR3 PIO X X X
J6 J6 GPIO011/nSMI VTR3 PIO X X X
J7 J7 GPIO015/PWM7 VTR2 PIO X X X
J8 J8 GPIO017/GPTP-IN5/KSI0 VTR2 PIO X X X
J9 J9 GPIO030/TIN3/KSI5 VTR2 PIO X X X
J11 J11 GPIO113/PS2_DAT1A/KSO06 VTR2 PIO X X X
GPIO042/PECI_DAT/SB-TSI_DAT
J12 J12 GPIO042 VTR1 PIO X X
PECI_DAT/SB-TSI_DAT PECI X X
GPIO043/SB-TSI_CLK
J13 J13 GPIO043 VTR1 PIO X X
SB-TSI_CLK PECI X X
K1 K1 VSS_ADC PWR
GPIO207/ADC07
K2 K2 GPIO207 VTR1 PIO X X
ADC07 I_AN X X
GPIO205/ADC05
K3 K3 GPIO205 VTR1 PIO X X
ADC05 I_AN X X
K11 K11 GPIO027/TIN2/KSI4 VTR2 PIO X X X
K12 K12 GPIO120/KSO07 VTR2 PIO X X X
K13 K13 GPIO112/PS2_CLK1A/KSO05 VTR2 PIO X X X
GPIO206/ADC06
L1 L1 GPIO206 VTR1 PIO X X
ADC06 I_AN X X
L2 L2 GPIO067/CLKRUN# VTR3 PIO X X X
MEC1701/MEC1703-144-SZ
Under-voltage Prot
Over-voltage Prot
Backdrive Prot
Glitch Prot
Power Pad
Pin Name
Rail Type
GPIO070/LAD0/ESPI_IO0
L3 L3 GPIO070/ESPI_IO0 VTR3 PIO
LAD0 PCI
GPIO073/LAD3/ESPI_IO3
L4 L4 GPIO073,ESPI_IO3 VTR3 PIO
LAD3 PCI
GPIO222/SER_IRQ
L5 L5 GPIO222 VTR2 PIO
SER_IRQ PCI
L6 L6 GPIO227/SHD_IO2 VTR2 PIO X X X
L7 L7 GPIO020/KSI1 VTR2 PIO X X X
L8 L8 GPIO052/FAN_TACH2/LRESET# VTR2 PIO X X X
L9 L9 GPIO151/ICT4/KSO15 VTR2 PIO X X X
L10 L10 GPIO032/GPTP-OUT0/KSI7 VTR2 PIO X X X
L11 L11 GPIO140/I2C06_SCL/ICT5 VTR2 PIO X X X
L12 L12 GPIO054/PWM1/GPWM1 VTR2 PIO X X X X
L13 L13 GPIO107/nSMI/KSO04 VTR2 PIO X X X
M1 M1 GPIO066/LFRAME#/ESPI_CS# VTR3 PIO X X X
M2 M2 GPIO065/PCI_CLK/ESPI_CLK VTR3 PIO X X X
GPIO072/LAD2/ESPI_IO2
M3 M3 GPIO072/ESPI_IO2 VTR3 PIO
LAD2 PCI
GPIO063/SER_IRQ/ESPI_ALERT#
M4 M4 GPIO063/ESPI_ALERT# VTR3 PIO
SER_IRQ PCI
M5 M5 GPIO224/GPTP-IN4/SHD_IO1 VTR2 PIO X X X
M6 M6 GPIO223/SHD_IO0 VTR2 PIO X X X
M7 M7 GPIO013/I2C07_SCL/TOUT2 VTR2 PIO X X X
M8 M8 GPIO002/PWM5 VTR2 PIO X X X
M9 M9 GPIO014/PWM6/GPTP-IN6 VTR2 PIO X X X
M10 M10 GPIO040/GPTP-OUT2/KSO00 VTR2 PIO X X X
M11 M11 GPIO031/GPTP-OUT1/KSI6 VTR2 PIO X X X
M12 M12 GPIO025/TIN0/nEM_INT/UART_CLK VTR2 PIO X X X
M13 M13 GPIO053/PWM0/GPWM0 VTR2 PIO X X X X
N1 N1 GPIO061/LPCPD#/ESPI_RESET# VTR3 PIO X X X
MEC1705/MEC1704-144-SZ
MEC1701/MEC1703-144-SZ
Under-voltage Prot
Over-voltage Prot
Backdrive Prot
Glitch Prot
Power Pad
Pin Name
Rail Type
GPIO071/LAD1/ESPI_IO1
N2 N2 GPIO071/ESPI_IO1 VTR3 PIO
LAD1 PCI
N3 N3 GPIO016/GPTP-IN7/SHD_IO3/ICT3 VTR2 PIO X X X
N4 N4 GPIO055/PWM2/SHD_CS#/RSMRST# VTR2 PIO X X X
N5 N5 GPIO056/PWM3/SHD_CLK VTR2 PIO X X X
N6 N6 GPIO012/I2C07_SDA/TOUT3 VTR2 PIO X X X
N7 N7 GPIO131/I2C10_SCL/TOUT0 VTR2 PIO X X X
N8 N8 GPIO130/I2C10_SDA/TOUT1 VTR2 PIO X X X
N9 N9 GPIO021/LPCPD#/KSI2 VTR2 PIO X X X
N10 N10 GPIO152/GPTP-OUT3/KSO16 VTR2 PIO X X X
N11 N11 GPIO132/I2C06_SDA/KSO14 VTR2 PIO X X X
N12 N12 GPIO115/PS2_DAT0A VTR2 PIO X X X
N13 N13 GPIO026/TIN1/KSI3 VTR2 PIO X X X
Under-voltage Prot
Over-voltage Prot
Backdrive Prot
Glitch Prot
Power Pad
Signal
Rail Type
Under-voltage Prot
Over-voltage Prot
Backdrive Prot
Glitch Prot
Power Pad
Signal
Rail Type
MEC1701-169 WFBGA-TN
Under-voltage Prot
Over-voltage Prot
Backdrive Prot
Glitch Prot
Power Pad
Signal
Rail Type
Under-voltage Prot
Over-voltage Prot
Backdrive Prot
Glitch Prot
Power Pad
Signal
Rail Type
MEC1701-169 WFBGA-TN
Under-voltage Prot
Over-voltage Prot
Backdrive Prot
Glitch Prot
Power Pad
Signal
Rail Type
Under-voltage Prot
Over-voltage Prot
Backdrive Prot
Glitch Prot
Power Pad
Signal
Rail Type
GPIO217/ADC15
K5 GPIO217 VTR1 PIO X X
ADC15 I_AN X X
K6 VSS3 PWR
K7 GPIO231 VTR2 PIO X X X
K8 GPIO052/FAN_TACH2/LRESET# VTR2 PIO X X X
K9 GPIO032/GPTP-OUT0/KSI7 VTR2 PIO X X X
K10 GPIO054/PWM1/GPWM1 VTR2 PIO X X X X
K11 GPIO053/PWM0/GPWM0 VTR2 PIO X X X X
K12 GPIO025/TIN0/nEM_INT/UART_CLK VTR2 PIO X X X
K13 GPIO140/I2C06_SCL/ICT5 VTR2 PIO X X X
L1 VSS_ADC PWR
GPIO205/ADC05
L2 GPIO205 VTR1 PIO X X
ADC05 I_AN X X
GPIO207/ADC07
L3 GPIO207 VTR1 PIO X X
ADC07 I_AN X X
L4 GPIO100/nEC_SCI VTR3 PIO X X X
L5 GPIO011/nSMI VTR3 PIO X X X
GPIO222/SER_IRQ
L6 GPIO222 VTR2 PIO
SER_IRQ PCI
L7 GPIO012/I2C07_SDA/TOUT3 VTR2 PIO X X X
L8 GPIO230 VTR2 PIO X X X
L9 GPIO020/KSI1 VTR2 PIO X X X
L10 GPIO132/I2C06_SDA/KSO14 VTR2 PIO X X X
L11 GPIO026/TIN1/KSI3 VTR2 PIO X X X
L12 VTR2 PWR
L13 GPIO115/PS2_DAT0A VTR2 PIO X X X
M1 GPIO061/LPCPD#/ESPI_RESET# VTR3 PIO X X X
GPIO206/ADC06
M2 GPIO206 VTR1 PIO X X
ADC06 I_AN X X
M3 GPIO064/LRESET# VTR3 PIO X X X
MEC1701-169 WFBGA-TN
Under-voltage Prot
Over-voltage Prot
Backdrive Prot
Glitch Prot
Power Pad
Signal
Rail Type
GPIO070/LAD0/ESPI_IO0
M4 GPIO070/ESPI_IO0 VTR3 PIO
LAD0 PCI
M5 GPIO067/CLKRUN# VTR3 PIO X X X
GPIO073/LAD3/ESPI_IO3
M6 GPIO073/ESPI_IO3 VTR3 PIO
LAD3 PCI
M7 GPIO223/SHD_IO0 VTR2 PIO X X X
M8 GPIO055/PWM2/SHD_CS#/(RSMRST#) VTR2 PIO X X X
M9 GPIO021/LPCPD#/KSI2 VTR2 PIO X X X
M10 GPIO014/PWM6/GPTP-IN6 VTR2 PIO X X X
M11 GPIO040/GPTP-OUT2/KSO00 VTR2 PIO X X X
M12 GPIO015/PWM7 VTR2 PIO X X X
M13 GPIO031/GPTP-OUT1/KSI6 VTR2 PIO X X X
N1 GPIO066/LFRAME#/ESPI_CS# VTR3 PIO X X X
N2 GPIO065/PCI_CLK/ESPI_CLK VTR3 PIO X X X
GPIO071/LAD1/ESPI_IO1
N3 GPIO071/ESPI_IO1 VTR3 PIO
LAD1 PCI
GPIO072/LAD2/ESPI_IO2
N4 GPIO072/ESPI_IO2 VTR3 PIO
LAD2 PCI
GPIO063/SER_IRQ/ESPI_ALERT#
N5 GPIO063/ESPI_ALERT# VTR3 PIO
SER_IRQ PCI
N6 GPIO224/GPTP-IN4/SHD_IO1 VTR2 PIO X X X
N7 GPIO227/SHD_IO2 VTR2 PIO X X X
N8 GPIO016/GPTP-IN7/SHD_IO3/ICT3 VTR2 PIO X X X
N9 GPIO056/PWM3/SHD_CLK VTR2 PIO X X X
N10 GPIO131/I2C10_SCL/TOUT0 VTR2 PIO X X X
N11 GPIO001/PWM4 VTR2 PIO X X X
N12 GPIO152/GPTP-OUT3/KSO16 VTR2 PIO X X X
N13 GPIO002/PWM5 VTR2 PIO X X X
Under-voltage Prot
Over-voltage Prot
Backdrive Prot
Glitch Prot
Power Pad
Signal
Rail Type
MEC1703-169 WFBGA-TN
Under-voltage Prot
Over-voltage Prot
Backdrive Prot
Glitch Prot
Power Pad
Signal
Rail Type
Under-voltage Prot
Over-voltage Prot
Backdrive Prot
Glitch Prot
Power Pad
Signal
Rail Type
MEC1703-169 WFBGA-TN
Under-voltage Prot
Over-voltage Prot
Backdrive Prot
Glitch Prot
Power Pad
Signal
Rail Type
GPIO202/ADC02
H4 GPIO202 VTR1 PIO X X
ADC02 I_AN X X
GPIO213/ADC11
H5 GPIO213 VTR1 PIO X X
ADC11 I_AN X X
H6 VSS_ADC PWR
H7 VTR3 PWR
H8 VSS1 PWR
GPIO042/PECI_DAT/SB-TSI_DAT
H9 GPIO042 VTR1 PIO X X
PECI_DAT/SB-TSI_DAT PECI X X
GPIO043/SB-TSI_CLK
H10 GPIO043 VTR1 PIO X X
SB-TSI_CLK PECI X X
GPIO044/VREF_VTT
H11 GPIO044 VTR1 PIO X X
VREF_VTT I_AN X X
GPIO034/RC_ID1/SPI0_CLK
H12 GPIO034/SPI0_CLK VTR1 PIO X X
RC_ID1 I_AN X X
GPIO036/RC_ID2/SPI0_MISO
H13 GPIO036/SPI0_MISO VTR1 PIO X X
RC_ID2 I_AN X X
GPIO203/ADC03
J1 GPIO203 VTR1 PIO X X
ADC03 I_AN X X
GPIO204/ADC04
J2 GPIO204 VTR1 PIO X X
ADC04 I_AN X X
GPIO214/ADC12
J3 GPIO214 VTR1 PIO X X
ADC12 I_AN X X
GPIO205/ADC05
J4 GPIO205 VTR1 PIO X X
ADC05 I_AN X X
Under-voltage Prot
Over-voltage Prot
Backdrive Prot
Glitch Prot
Power Pad
Signal
Rail Type
GPIO215/ADC13
J5 GPIO215 VTR1 PIO X X
ADC13 I_AN X X
GPIO063/SER_IRQ/ESPI_ALERT#
J6 GPIO063/ESPI_ALERT# VTR3 PIO
SER_IRQ PCI
J7 GPIO056/PWM3/SHD_CLK VTR2 PIO X X X
J8 VTR2 PWR
J9 GPIO030/TIN3/KSI5 VTR2 PIO X X X
J10 GPIO107/nSMI/KSO04 VTR2 PIO X X X
J11 GPIO110/PS2_CLK2 VTR2 PIO X X X
J12 GPIO112/PS2_CLK1A/KSO05 VTR2 PIO X X X
J13 GPIO114/PS2_CLK0A/nEC_SCI VTR2 PIO X X X
GPIO207/ADC07
K1 GPIO207 VTR1 PIO X X
ADC07 I_AN X X
GPIO206/ADC06
K2 GPIO206 VTR1 PIO X X
ADC06 I_AN X X
GPIO216/ADC14
K3 GPIO216 VTR1 PIO X X
ADC14 I_AN X X
GPIO217/ADC15
K4 GPIO217 VTR1 PIO X X
ADC15 I_AN X X
K5 GPIO065/PCI_CLK/ESPI_CLK VTR3 PIO X X X
K6 GPIO011/nSMI VTR3 PIO X X X
K7 GPIO223/SHD_IO0 VTR2 PIO X X X
K8 GPIO233 VTR2 PIO X X X
K9 GPIO151/ICT4/KSO15 VTR2 PIO X X X
K10 GPIO054/PWM1/GPWM1 VTR2 PIO X X X X
K11 GPIO120/KSO07 VTR2 PIO X X X
K12 GPIO111/PS2_DAT2 VTR2 PIO X X X
K13 GPIO113/PS2_DAT1A/KSO06 VTR2 PIO X X X
L1 GPIO067/CLKRUN# VTR3 PIO X X X
L2 GPIO064/LRESET# VTR3 PIO X X X
L3 GPIO061/LPCPD#/ESPI_RESET# VTR3 PIO X X X
MEC1703-169 WFBGA-TN
Under-voltage Prot
Over-voltage Prot
Backdrive Prot
Glitch Prot
Power Pad
Signal
Rail Type
Under-voltage Prot
Over-voltage Prot
Backdrive Prot
Glitch Prot
Power Pad
Signal
Rail Type
Under-voltage Prot
Over-voltage Prot
Backdrive Prot
Glitch Prot
Power Pad
Signal
Rail Type
MEC1703-169 WFBGA-XY
Under-voltage Prot
Over-voltage Prot
Backdrive Prot
Glitch Prot
Power Pad
Signal
Rail Type
B2 VSS1 PWR
B3 GPIO174/BGPO5 VBAT PIO X X X
B4 VCI_OUT VBAT O2ma X X
B5 GPIO173/BGPO4 VBAT PIO X X X
B6 GPIO163/VCI_IN0# VBAT PIO X X X
B7 GPIO003/I2C00_SDA/SPI0_CS# VTR1 PIO X X X
B8 GPIO141/I2C05_SDA/SPI1_CLK/UART0_DCD#/TRACEDAT0 VTR1 PIO X X X
B9 GPIO146/I2C09_SCL/JTAG_TDO VTR1 PIO X X X
B10 GPIO241 VTR1 PIO X X X
B11 GPIO254 VTR1 PIO X X X
B12 GPIO245 VTR1 PIO X X X
B13 GPIO154/I2C02_SDA/PS2_CLK1B VTR1 PIO X X X X
B14 GPIO153/LED2 VTR1 PIO X X X X
B15 GPIO156/LED0 VTR1 PIO X X X X
C1 VTR_PLL PWR
C2 GPIO062/(RESETO#) VTR1 PIO X X
C3 GPIO000/VCI_IN3# VBAT PIO X X X
C13 GPIO225/UART0_RTS# VTR1 PIO X X X
C14 GPIO133/PWM9 VTR1 PIO X X X X
C15 GPIO157/LED1 VTR1 PIO X X X X
D1 VFLT_PLL PWR
D2 GPIO022/GPTP-IN0 VTR1 PIO X X X
D5 VBAT PWR
D6 BGPO0 VBAT O2ma X X X
D7 GPIO004/I2C00_SCL/SPI0_MOSI VTR1 PIO X X X
D8 GPIO142/I2C05_SCL/SPI1_MOSI/UART0_DSR#/TRACEDAT1 VTR1 PIO X X X
D9 GPIO147/I2C08_SDA/JTAG_CLK VTR1 PIO X X X
D10 GPIO246 VTR1 PIO X X X
D11 GPIO010/I2C03_SCL/PS2_DAT0B VTR1 PIO X X X X
D14 GPIO125/GPTP-OUT5/PVT_CLK/KSO12 VTR1 PIO X X X
D15 GPIO127/A20M/UART0_CTS# VTR1 PIO X X X
E1 GPIO221/GPTP-IN3/32KHZ_OUT VTR1 PIO X X X
E2 GPIO166 VTR1 PIO X X X
E4 GPIO234/VCI_IN4# VBAT PIO X X X
E5 GPIO161/VCI_IN2# VBAT PIO X X X
E6 GPIO172/BGPO3 VBAT PIO X X X
E7 GPIO005/I2C01_SDA/GPTP-OUT4 VTR1 PIO X X X
Under-voltage Prot
Over-voltage Prot
Backdrive Prot
Glitch Prot
Power Pad
Signal
Rail Type
MEC1703-169 WFBGA-XY
Under-voltage Prot
Over-voltage Prot
Backdrive Prot
Glitch Prot
Power Pad
Signal
Rail Type
Under-voltage Prot
Over-voltage Prot
Backdrive Prot
Glitch Prot
Power Pad
Signal
Rail Type
GPIO201/ADC01
K4 GPIO201 VTR1 PIO X X
ADC01 I_AN X X
K5 GPIO067/CLKRUN# VTR3 PIO X X X
K6 GPIO011/nSMI VTR3 PIO X X X
K10 GPIO151/ICT4/KSO15 VTR2 PIO X X X
K11 GPIO017/GPTP-IN5/KSI0 VTR2 PIO X X X
GPIO044/VREF_VTT
K12 GPIO044 VTR1 PIO X X
VREF_VTT I_AN X X
K14 GPIO114/PS2_CLK0A/nEC_SCI VTR2 PIO X X X
K15 GPIO112/PS2_CLK1A/KSO05 VTR2 PIO X X X
GPIO204/ADC04
L1 GPIO204 VTR1 PIO X X
ADC04 I_AN X X
GPIO214/ADC12
L2 GPIO214 VTR1 PIO X X
ADC12 I_AN X X
GPIO202/ADC02
L4 GPIO202 VTR1 PIO X X
ADC02 I_AN X X
L5 VTR_ANALOG PWR
L6 GPIO100/nEC_SCI VTR3 PIO X X X
GPIO222/SER_IRQ
L7 GPIO222 VTR2 PIO
SER_IRQ PCI
L8 GPIO052/FAN_TACH2/LRESET# VTR2 PIO X X X
L9 GPIO002/PWM5 VTR2 PIO X X X
L10 GPIO233 VTR2 PIO X X X
L11 GPIO040/GPTP-OUT2/KSO00 VTR2 PIO X X X
L12 GPIO111/PS2_DAT2 VTR2 PIO X X X
L14 GPIO113/PS2_DAT1A/KSO06 VTR2 PIO X X X
L15 GPIO110/PS2_CLK2 VTR2 PIO X X X
M1 VSS_ADC PWR
GPIO205/ADC05
M2 GPIO205 VTR1 PIO X X
ADC05 I_AN X X
MEC1703-169 WFBGA-XY
Under-voltage Prot
Over-voltage Prot
Backdrive Prot
Glitch Prot
Power Pad
Signal
Rail Type
Under-voltage Prot
Over-voltage Prot
Backdrive Prot
Glitch Prot
Power Pad
Signal
Rail Type
GATED STATE
This column defines the internal value of an input signal when either its emulated power well is inactive or it is not
selected by the GPIO alternate function MUX. A value of “No Gate” means that the internal signal always follows the
pin even when the emulated power well is inactive.
Note: Gated state is only meaningful to the operation of input signals. A gated state on an output pin defines the
internal behavior of the GPIO MUX and does not imply pin behavior.
Emulated Gated
Signal Notes
Power Rail State
32KHZ_IN VTR Low
32KHZ_OUT VTR Low
48MHZ_OUT VTR Low
A20M VTR Low
ADC00 VTR Low
ADC01 VTR Low
ADC02 VTR Low
ADC03 VTR Low
ADC04 VTR Low
ADC05 VTR Low
ADC06 VTR Low
ADC07 VTR Low
ADC08 VTR Low
ADC09 VTR Low
ADC10 VTR Low
ADC11 VTR Low
ADC12 VTR Low
ADC13 VTR Low
ADC14 VTR Low
ADC15 VTR Low
BCM0_CLK VTR Low
BCM0_DAT VTR Low Note 3
BCM1_CLK VTR Low
BCM1_DAT VTR Low Note 3
BGPO0 VTR Low
BGPO1 VTR Low Note 8
BGPO2 VTR Low Note 8
BGPO3 VTR Low Note 8
BGPO4 VTR Low Note 8
BGPO5 VTR Low Note 8
CLKRUN# VTR High
CTOUT0 VTR Low
CTOUT1 VTR Low
ESPI_ALERT# VTR High
ESPI_CLK VTR Low
ESPI_CS# VTR High
ESPI_IO0 VTR Low
ESPI_IO1 VTR Low
ESPI_IO2 VTR Low
MEC1703-169 WFBGA-XY
MEC1701-169 WFBGA-TN
MEC1703-169 WFBGA-TN
MEC1704-144 WFBGA-SZ
MEC1705-144 WFBGA-SZ
Interface Notes
MEC1701/MEC1703-144 WFBGA-SZ
MEC1701/MEC1703-128 WFBGA-TF
MEC1701-169 WFBGA-TN
MEC1703-169 WFBGA-TN
MEC1703-169 WFBGA-XY
MEC1704-144 WFBGA-SZ
MEC1705-144 WFBGA-SZ
Interface Notes
MEC1701/MEC1703-144 WFBGA-SZ
MEC1701/MEC1703-128 WFBGA-TF
MEC1701-169 WFBGA-TN
MEC1703-169 WFBGA-TN
MEC1703-169 WFBGA-XY
MEC1704-144 WFBGA-SZ
MEC1705-144 WFBGA-SZ
Interface Notes
L12 M13 M13 M13 K11 L12 P14 GPWM0 PWM Output from RPM-based Fan Speed Con-
trol Algorithm, PWM 0
K9 L12 L12 L12 K10 K10 N15 GPWM1 PWM Output from RPM-based Fan Speed Con-
trol Algorithm, PWM 1
G4 F3 F3 F3 G2 G4 H5 GTACH0 Tach Input to RPM-based Fan Speed Control
Algorithm, Tach 0
F1 B1 B1 B1 F3 B1 F2 GTACH1 Tach Input to RPM-based Fan Speed Control
Algorithm, Tach 1
L12 M13 M13 M13 K11 L12 P14 PWM0 Pulse Width Modulator Output 0
K9 L12 L12 L12 K10 K10 N15 PWM1 Pulse Width Modulator Output 1
N8 N4 N4 N4 M8 L7 M8 PWM2 Pulse Width Modulator Output 2
N7 N5 N5 N5 N9 J7 M9 PWM3 Pulse Width Modulator Output 3
N11 M9 R12 PWM4 Pulse Width Modulator Output 4
K8 M8 M8 M8 N13 L8 L9 PWM5 Pulse Width Modulator Output 5
M10 M9 M9 M9 M10 N9 P11 PWM6 Pulse Width Modulator Output 6
K7 J7 J7 J7 M12 L9 J9 PWM7 Pulse Width Modulator Output 7
G12 E13 G11 G12 G15 PWM8 Pulse Width Modulator Output 8
C11 C11 C14 PWM9 Pulse Width Modulator Output 9
E13 E13 D11 E13 G14 PWM10 Pulse Width Modulator Output 10
General Purpose Input/Outputs
D2 B3 B3 B3 C2 D4 C3 GPIO000 General Purpose Input/Output Port
N11 M9 R12 GPIO001 General Purpose Input/Output Port
K8 M8 M8 M8 N13 L8 L9 GPIO002 General Purpose Input/Output Port
B5 F5 F5 F5 C6 G7 B7 GPIO003 General Purpose Input/Output Port
D7 C6 C6 C6 B5 B6 D7 GPIO004 General Purpose Input/Output Port
A5 B4 E7 GPIO005 General Purpose Input/Output Port
B6 A6 A7 GPIO006 General Purpose Input/Output Port
B11 B12 B12 B12 B10 A13 A14 GPIO007 General Purpose Input/Output Port
B10 C10 C10 C10 C10 B11 D11 GPIO010 General Purpose Input/Output Port
J4 J6 J6 J6 L5 K6 K6 GPIO011 General Purpose Input/Output Port
M8 N6 N6 N6 L7 N3 P8 GPIO012 General Purpose Input/Output Port
K5 M7 M7 M7 H7 N4 R8 GPIO013 General Purpose Input/Output Port
M10 M9 M9 M9 M10 N9 P11 GPIO014 General Purpose Input/Output Port
K7 J7 J7 J7 M12 L9 J9 GPIO015 General Purpose Input/Output Port
N6 N3 N3 N3 N8 M5 M7 GPIO016 General Purpose Input/Output Port
MEC1701/MEC1703-144 WFBGA-SZ
MEC1701/MEC1703-128 WFBGA-TF
MEC1701-169 WFBGA-TN
MEC1703-169 WFBGA-TN
MEC1703-169 WFBGA-XY
MEC1704-144 WFBGA-SZ
MEC1705-144 WFBGA-SZ
Interface Notes
MEC1701/MEC1703-144 WFBGA-SZ
MEC1701/MEC1703-128 WFBGA-TF
MEC1701-169 WFBGA-TN
MEC1703-169 WFBGA-TN
MEC1703-169 WFBGA-XY
MEC1704-144 WFBGA-SZ
MEC1705-144 WFBGA-SZ
Interface Notes
MEC1701/MEC1703-144 WFBGA-SZ
MEC1701/MEC1703-128 WFBGA-TF
MEC1701-169 WFBGA-TN
MEC1703-169 WFBGA-TN
MEC1703-169 WFBGA-XY
MEC1704-144 WFBGA-SZ
MEC1705-144 WFBGA-SZ
Interface Notes
MEC1701/MEC1703-144 WFBGA-SZ
MEC1701/MEC1703-128 WFBGA-TF
MEC1701-169 WFBGA-TN
MEC1703-169 WFBGA-TN
MEC1703-169 WFBGA-XY
MEC1704-144 WFBGA-SZ
MEC1705-144 WFBGA-SZ
Interface Notes
MEC1701/MEC1703-144 WFBGA-SZ
MEC1701/MEC1703-128 WFBGA-TF
MEC1701-169 WFBGA-TN
MEC1703-169 WFBGA-TN
MEC1703-169 WFBGA-XY
MEC1704-144 WFBGA-SZ
MEC1705-144 WFBGA-SZ
Interface Notes
MEC1701/MEC1703-144 WFBGA-SZ
MEC1701/MEC1703-128 WFBGA-TF
MEC1701-169 WFBGA-TN
MEC1703-169 WFBGA-TN
MEC1703-169 WFBGA-XY
MEC1704-144 WFBGA-SZ
MEC1705-144 WFBGA-SZ
Interface Notes
MEC1701/MEC1703-144 WFBGA-SZ
MEC1701/MEC1703-128 WFBGA-TF
MEC1701-169 WFBGA-TN
MEC1703-169 WFBGA-TN
MEC1703-169 WFBGA-XY
MEC1704-144 WFBGA-SZ
MEC1705-144 WFBGA-SZ
Interface Notes
H13 J11 J11 J11 J11 K13 L14 KSO06 Keyboard Scan Matrix Output 6
J13 K12 K12 K12 H12 K11 M15 KSO07 Keyboard Scan Matrix Output 7
E12 F12 F12 F12 D13 F10 F12 KSO08 Keyboard Scan Matrix Output 8
E13 E11 E11 E11 D12 D12 F14 KSO09 Keyboard Scan Matrix Output 9
D12 E12 E12 E12 C13 F9 G12 KSO10 Keyboard Scan Matrix Output 10
C12 C11 C11 C11 B13 E11 E12 KSO11 Keyboard Scan Matrix Output 11
D13 D11 D11 D11 B12 C12 D14 KSO12 Keyboard Scan Matrix Output 12
C13 D12 D12 D12 C12 C13 E14 KSO13 Keyboard Scan Matrix Output 13
N12 N11 N11 N11 L10 N12 R14 KSO14 Keyboard Scan Matrix Output 14
J7 L9 L9 L9 H9 K9 K10 KSO15 Keyboard Scan Matrix Output 15
N10 N10 N10 N10 N12 M10 R13 KSO16 Keyboard Scan Matrix Output 16
D10 C13 C13 C13 D10 E10 E11 KSO17 Keyboard Scan Matrix Output 17
LPC Host Interface
A13 D13 D13 D13 A11 B13 D15 A20M Keyboard GATEA20 Output
L2 L2 L2 M5 L1 K5 CLKRUN# PCI Clock Control
F4 D2 D2 D2 G5 F5 H7 KBRST Keyboard CPU Reset
M4 L3 L3 L3 M4 L5 R3 LAD0 LPC Multiplexed command, address and data
bus Bit 0.
N2 N2 N2 N2 N3 M1 R4 LAD1 LPC Multiplexed command, address and data
bus Bit 1.
N3 M3 M3 M3 N4 N1 P5 LAD2 LPC Multiplexed command, address and data
bus Bit 2.
N4 L4 L4 L4 M6 N2 R5 LAD3 LPC Multiplexed command, address and data
bus Bit 3.
M2 M1 M1 M1 N1 L4 P3 LFRAME# Frame signal. Indicates start of new cycle and
termination of broken cycle
N1 N1, N1, N1, M1, L3 M6, LPCPD# LPC Bus Powerdown Signal.
N9 N9 N9 M9 P10
H4 J5, J5, J5, K8, N6 L8, LRESET# LPC Reset. Same as the system PCI reset,
L8 L8 L8 M3 M5 PCIRST#
K4 H7, H7, H7, J10, N2 K14, nEC_SCI Power Management Event
Note 1
H9 H9 H9 L4 L6
L13 M12 M12 M12 K12 L11 H11 nEM_INT EM Interface Interrupt Output
J4 L13, L13, L13, H13, K6 K6, nSMI SMI Output
J6 J6 J6 L5 M14
M3 M2 M2 M2 N2 K5 R2 PCI_CLK LPC Clock
MEC1701/MEC1703-144 WFBGA-SZ
MEC1701/MEC1703-128 WFBGA-TF
MEC1701-169 WFBGA-TN
MEC1703-169 WFBGA-TN
MEC1703-169 WFBGA-XY
MEC1704-144 WFBGA-SZ
MEC1705-144 WFBGA-SZ
Interface Notes
MEC1701/MEC1703-144 WFBGA-SZ
MEC1701/MEC1703-128 WFBGA-TF
MEC1701-169 WFBGA-TN
MEC1703-169 WFBGA-TN
MEC1703-169 WFBGA-XY
MEC1704-144 WFBGA-SZ
MEC1705-144 WFBGA-SZ
Interface Notes
MEC1701/MEC1703-144 WFBGA-SZ
MEC1701/MEC1703-128 WFBGA-TF
MEC1701-169 WFBGA-TN
MEC1703-169 WFBGA-TN
MEC1703-169 WFBGA-XY
MEC1704-144 WFBGA-SZ
MEC1705-144 WFBGA-SZ
Interface Notes
SPI Controllers
D13 D11 D11 D11 B12 C12 D14 PVT_CLK Quad SPI Controller Clock, Private SPI port
C12 C11 C11 C11 B13 E11 E12 PVT_CS# Quad SPI Controller Chip Select, Private SPI port
E12 F12 F12 F12 D13 F10 F12 PVT_IO0 Quad SPI Controller Data 0, Private SPI port
E13 E11 E11 E11 D12 D12 F14 PVT_IO1 Quad SPI Controller Data 1, Private SPI port
D12 E12 E12 E12 C13 F9 G12 PVT_IO2 Quad SPI Controller Data 2, Private SPI port
C13 D12 D12 D12 C12 C13 E14 PVT_IO3 Quad SPI Controller Data 3, Private SPI port
N7 N5 N5 N5 N9 J7 M9 SHD_CLK Quad SPI Controller Clock, Shared SPI port
N8 N4 N4 N4 M8 L7 M8 SHD_CS# Quad SPI Controller Chip Select, Shared SPI
port
N5 M6 M6 M6 M7 K7 R7 SHD_IO0 Quad SPI Controller Data 0, Shared SPI port
M7 M5 M5 M5 N6 M3 R6 SHD_IO1 Quad SPI Controller Data 1, Shared SPI port
M6 L6 L6 L6 N7 M4 P7 SHD_IO2 Quad SPI Controller Data 2, Shared SPI port
N6 N3 N3 N3 N8 M5 M7 SHD_IO3 Quad SPI Controller Data 3, Shared SPI port
H12 H12 H12 E13 H12 H15 SPI0_CLK GP-SPI SPI Clock
B5 F5 F5 F5 C6 D7 B7 SPI0_CS# GP-SPI Chip Select
H13 H13 H13 F12 H13 J12 SPI0_MISO GP-SPI SPI Output
D7 C6 C6 C6 B5 B6 D7 SPI0_MOSI GP-SPI SPI Input
A6 B7 B7 B7 A7 A7 B8 SPI1_CLK GP-SPI SPI Clock
D8 E7 E7 E7 D4 B5 E8 SPI1_CS# GP-SPI Chip Select
B6 F7 F7 F7 F7 A5 D8 SPI1_MOSI GP-SPI SPI Output
A5 A7 A7 A7 A6 B7 A8 SPI1_MISO GP-SPI SPI Input
VBAT-Powered Control Interface
A3 A5 A5 A5 B4 C6 D6 BGPO0 VBAT driven GPO
A4 A4 A4 C5 E6 F6 BGPO1 VBAT driven GPO Note 8
B5 B5 B5 B3 C5 A5 BGPO2 VBAT driven GPO Note 8
B6 B6 B6 F5 D6 E6 BGPO3 VBAT driven GPO Note 8
A2 C3 B5 BGPO4 VBAT driven GPO Note 8
E4 A3 B3 BGPO5 VBAT driven GPO Note 8
D6 E6 E6 E6 F6 C7 B6 VCI_IN0# Input can cause wakeup or interrupt event, active
Note 13
low
D5 A6 A6 A6 A4 C4 A6 VCI_IN1# Input can cause wakeup or interrupt event, active
Note 13
low
B3 C4 C4 C4 C3 D5 E5 VCI_IN2# Input can cause wakeup or interrupt event, active
Note 13
low
MEC1701/MEC1703-144 WFBGA-SZ
MEC1701/MEC1703-128 WFBGA-TF
MEC1701-169 WFBGA-TN
MEC1703-169 WFBGA-TN
MEC1703-169 WFBGA-XY
MEC1704-144 WFBGA-SZ
MEC1705-144 WFBGA-SZ
Interface Notes
Legend Notes
(P) = I/O state is driven by proto- Note A: Pin exhibits "VCC" power domain emulation.
col while power is applied.
Note B: Pin is programmable by the EC and retains its value through a
Z = Tristate
VTR power cycle.
In = Input
Note C: Pin is programmable by the EC and affected by other VBAT
inputs pins.
Note D: Pin exhibits "VTR" power domain emulation.
Note E: Does not include GPIO042, GPIO043, and GPIO062
Legend Notes
(P) = I/O state is driven by proto- Note F: Pin is programmable by the EC and retains its value through a
col while power is applied. VTR power cycle
Z = Tristate
In = Input
Note: For the most current package drawings, see the Microchip Packaging Specification at http://www.micro-
chip.com/packaging.
Note: For the most current package drawings, see the Microchip Packaging Specification at http://www.micro-
chip.com/packaging.
Note: For the most current package drawings, see the Microchip Packaging Specification at http://www.micro-
chip.com/packaging.
Note: For the most current package drawings, see the Microchip Packaging Specification at http://www.micro-
chip.com/packaging.
1RWH )RUWKHPRVWFXUUHQWSDFNDJHGUDZLQJVSOHDVHVHHWKH0LFURFKLS3DFNDJLQJ6SHFLILFDWLRQORFDWHGDW
KWWSZZZPLFURFKLSFRPSDFNDJLQJ
' $
127(
%
$
%
&
'
(
) '$780%
*
+
'$780$ (
-
.
/
0
1
; 3
& 5
;
&
7239,(:
6(('(7$,/$
6+((7
&
6($7,1* $
3/$1(
6,'(9,(:
'
5
3
1 H
0
/
.
-
+ (
*
)
(
'
&
%
$
127(
%277209,(:
0LFURFKLS7HFKQRORJ\'UDZLQJ&5HY$6KHHWRI
0LFURFKLS7HFKQRORJ\,QF
1RWH )RUWKHPRVWFXUUHQWSDFNDJHGUDZLQJVSOHDVHVHHWKH0LFURFKLS3DFNDJLQJ6SHFLILFDWLRQORFDWHGDW
KWWSZZZPLFURFKLSFRPSDFNDJLQJ
&
$
$
;
&
'(7$,/$
8QLWV 0,//,0(7(56
'LPHQVLRQ/LPLWV 0,1 120 0$;
1XPEHURI7HUPLQDOV 1
3LWFK H %6&
2YHUDOO+HLJKW $
6WDQGRII $
0ROG7KLFNQHVV $
2YHUDOO/HQJWK ' %6&
2YHUDOO7HUPLQDO6SDFLQJ ' %6&
2YHUDOO:LGWK ( %6&
2YHUDOO7HUPLQDO6SDFLQJ ( %6&
7HUPLQDO'LDPHWHU E
Notes:
3LQYLVXDOLQGH[IHDWXUHPD\YDU\EXWPXVWEHORFDWHGZLWKLQWKHKDWFKHGDUHD
3DFNDJHLVVDZVLQJXODWHG
'LPHQVLRQLQJDQGWROHUDQFLQJSHU$60(<0
%6&%DVLF'LPHQVLRQ7KHRUHWLFDOO\H[DFWYDOXHVKRZQZLWKRXWWROHUDQFHV
5()5HIHUHQFH'LPHQVLRQXVXDOO\ZLWKRXWWROHUDQFHIRULQIRUPDWLRQSXUSRVHVRQO\
0LFURFKLS7HFKQRORJ\'UDZLQJ&5HY$6KHHWRI
1RWH )RUWKHPRVWFXUUHQWSDFNDJHGUDZLQJVSOHDVHVHHWKH0LFURFKLS3DFNDJLQJ6SHFLILFDWLRQORFDWHGDW
KWWSZZZPLFURFKLSFRPSDFNDJLQJ
$
%
&
' (
(
)
*
+ &
-
.
/
0
1
*
3
5
;
( 6,/.6&5((1
&
5(&200(1'('/$1'3$77(51
8QLWV 0,//,0(7(56
'LPHQVLRQ/LPLWV 0,1 120 0$;
&RQWDFW3LWFK ( %6&
2YHUDOO&RQWDFW3DG6SDFLQJ &
2YHUDOO&RQWDFW3DG6SDFLQJ &
&RQWDFW3DG:LGWK; ;
&RQWDFW3DGWR&RQWDFW3DG *
1RWHV
'LPHQVLRQLQJDQGWROHUDQFLQJSHU$60(<0
%6&%DVLF'LPHQVLRQ7KHRUHWLFDOO\H[DFWYDOXHVKRZQZLWKRXWWROHUDQFHV
)RUEHVWVROGHULQJUHVXOWVWKHUPDOYLDVLIXVHGVKRXOGEHILOOHGRUWHQWHGWRDYRLGVROGHUORVVGXULQJ
UHIORZSURFHVV
0LFURFKLS7HFKQRORJ\'UDZLQJ&5HY$
0LFURFKLS7HFKQRORJ\,QF
3.1 Conventions
Term Definition
Block Used to identify or describe the logic or IP Blocks implemented in the device.
Reserved Reserved registers and bits defined in the following table are read only values that
return 0 when read. Writes to these reserved registers have no effect.
TEST Microchip Reserved locations which should not be modified from their default value.
Changing a TEST register or a TEST field within a register may cause unwanted
results.
b The letter ‘b’ following a number denotes a binary number.
h The letter ‘h’ following a number denotes a hexadecimal number.
Register access notation is in the form “Read / Write”. A Read term without a Write term means that the bit is read-only
and writing has no effect. A Write term without a Read term means that the bit is write-only, and assumes that reading
returns all zeros.
Register Field
Field Description
Type
R Read: A register or bit with this attribute can be read.
W Write: A register or bit with this attribute can be written.
RS Read to Set: This bit is set on read.
RC Read to Clear: Content is cleared after the read. Writes have no effect.
WC Write One to Clear: writing a one clears the value. Writing a zero has no effect.
WZC Write Zero to Clear: writing a zero clears the value. Writing a one has no effect.
WS Write One to Set: writing a one sets the value to 1. Writing a zero has no effect.
WZS Write Zero to Set: writing a zero sets the value to 1. Writing a one has no effect.
Logical
Device Base
Feature Instance
Number Address
(LDN)
Watchdog Timer 4000_0000h
16-bit Basic Timer 0 4000_0C00h
16-bit Basic Timer 1 4000_0C20h
16-bit Basic Timer 2 4000_0C40h
16-bit Basic Timer 3 4000_0C60h
32-bit Basic Timer 0 4000_0C80h
32-bit Basic Timer 1 4000_0CA0h
16-bit Timer-Counter 0 4000_0D00h
16-bit Timer-Counter 1 4000_0D20h
16-bit Timer-Counter 2 4000_0D40h
16-bit Timer-Counter 3 4000_0D60h
Capture-Compare Timers 4000_1000h
RC-ID 0 4000_1400h
RC-ID 1 4000_1480h
RC-ID 2 4000_1500h
DMA Controller 4000_2400h
EEPROM Controller 4000_2C00h
SMB-I2C Controller 0 4000_4000h
SMB-I2C Controller 1 4000_4400h
SMB-I2C Controller 2 4000_4800h
SMB-I2C Controller 3 4000_4C00h
Quad Master SPI 4000_5400h
16-bit PWM 0 4000_5800h
16-bit PWM 1 4000_5810h
16-bit PWM 2 4000_5820h
16-bit PWM 3 4000_5830h
16-bit PWM 4 4000_5840h
16-bit PWM 5 4000_5850h
16-bit PWM 6 4000_5860h
16-bit PWM 7 4000_5870h
16-bit PWM 8 4000_5880h
16-bit PWM 9 4000_5890h
16-bit PWM 10 4000_58A0h
16-bit Tach 0 4000_6000h
16-bit Tach 1 4000_6010h
16-bit Tach 2 4000_6020h
PECI 4000_6400h
RTOS Timer 4000_7400h
ADC 4000_7C00h
Trace FIFO 4000_8C00h
Note 1: The eSPI block occupies two logical devices, Dh and Eh
Note: Interrupt Aggregator bits associated with GPIOs not present in the pinout for a particular device are
Reserved.
Register
Block Instance Register
Address
Watchdog Timer 0 WDT Load Register 40000000h
Watchdog Timer 0 WDT Control Register 40000004h
Watchdog Timer 0 WDT Kick Register 40000008h
Watchdog Timer 0 WDT Count Register 4000000Ch
16-bit Basic Timer 0 Timer Count Register 40000C00h
16-bit Basic Timer 0 Timer Preload Register 40000C04h
16-bit Basic Timer 0 Timer Status Register 40000C08h
16-bit Basic Timer 0 Timer Int Enable Register 40000C0Ch
16-bit Basic Timer 0 Timer Control Register 40000C10h
16-bit Basic Timer 1 Timer Count Register 40000C20h
16-bit Basic Timer 1 Timer Preload Register 40000C24h
16-bit Basic Timer 1 Timer Status Register 40000C28h
16-bit Basic Timer 1 Timer Int Enable Register 40000C2Ch
16-bit Basic Timer 1 Timer Control Register 40000C30h
16-bit Basic Timer 2 Timer Count Register 40000C40h
16-bit Basic Timer 2 Timer Preload Register 40000C44h
16-bit Basic Timer 2 Timer Status Register 40000C48h
16-bit Basic Timer 2 Timer Int Enable Register 40000C4Ch
16-bit Basic Timer 2 Timer Control Register 40000C50h
16-bit Basic Timer 3 Timer Count Register 40000C60h
16-bit Basic Timer 3 Timer Preload Register 40000C64h
16-bit Basic Timer 3 Timer Status Register 40000C68h
16-bit Basic Timer 3 Timer Int Enable Register 40000C6Ch
16-bit Basic Timer 3 Timer Control Register 40000C70h
32-bit Basic Timer 0 Timer Count Register 40000C80h
32-bit Basic Timer 0 Timer Preload Register 40000C84h
32-bit Basic Timer 0 Timer Status Register 40000C88h
32-bit Basic Timer 0 Timer Int Enable Register 40000C8Ch
32-bit Basic Timer 0 Timer Control Register 40000C90h
32-bit Basic Timer 1 Timer Count Register 40000CA0h
32-bit Basic Timer 1 Timer Preload Register 40000CA4h
32-bit Basic Timer 1 Timer Status Register 40000CA8h
32-bit Basic Timer 1 Timer Int Enable Register 40000CACh
32-bit Basic Timer 1 Timer Control Register 40000CB0h
16-bit Counter Timer 0 Timer x Control Register 40000D00h
16-bit Counter Timer 0 Timer x Clock and Event Control Register 40000D04h
16-bit Counter Timer 0 Timer x Reload Register 40000D08h
16-bit Counter Timer 0 Timer x Count Register 40000D0Ch
16-bit Counter Timer 1 Timer x Control Register 40000D20h
16-bit Counter Timer 1 Timer x Clock and Event Control Register 40000D24h
16-bit Counter Timer 1 Timer x Reload Register 40000D28h
4.1 Introduction
The Power, Clocks, and Resets (PCR) chapter identifies all the power supplies, clock sources, and reset inputs to the
chip and defines all the derived power, clock, and reset signals. In addition, this section identifies Power, Clock, and
Reset events that may be used to generate an interrupt event, as well as, the Chip Power Management Features.
4.2 References
No references have been cited for this chapter.
4.3 Interrupts
The Power, Clocks, and Resets logic generates no events
4.4 Power
3.3V nom,
To EC as from AC Source
VTR or Battery Pack
(Schottky Diode)
VBAT ( )
to EC 3.3V max with Possible +
VTR = 0V, 3.0V nom
(Schottky Current Limiter
3.6V max with Coin Cell
Diode) (1K typ.)
VTR = VBAT
Table 4-2 lists the External Voltage References to which the MEC170x provides high impedance interfaces.
Note 1: The MUX_CONTROL field for GPIO044 should be set to GPIO in order to minimize leakage current when
VREF_VTT is not required (e.g., when neither PECI nor AMD-TSI are active).
4.5 Clocks
The following section defines the clocks that are generated and derived.
R = 100 ohms
+3.3V VTR_PLL
C = 22µF C = 0.1µF
(Optional) EC
VFLT_PLL
Note: If the 32KHZ_SOURCE field in the Clock Enable Register selects the crystal oscillator as the source for the
always-on clock source, and the XOSEL field selects a single-ended input for the crystal oscillator, the sys-
tem must ensure that the single-ended input remains on at all times. The Activity Detector will not monitor
the single-ended input to the crystal oscillator.
32 KHz
S ilic o n O s c illa t o r 0
“ A lw a y s - o n ”
0
32 KHz
C r y s t a l O s c illa t o r 1
3 2 K H z C lo c k D o m a in
1
3 2 K H z (X T A L 2 )
0
1
XOSEL
3 2 K H z (3 2 K H Z _ IN )
A c t iv it y
D e te c to r
EXT _32K
Note: Once the internal 32KHz clock domain switches to an external single-ended clock source, the external
source must remain active until VTR power is removed, or internal clocking may not function correctly.
4.6 Resets
WDT WDT_Event
RESET_SYS 1ms
RESET_EC
Delay
CORTEXM4_RESET
PWR_INV2 PWROK
SOFT_SYS_RESET1
RESET_VCC
PWR_INV2
VCC_PWRGD RESET_HOST
LRESET#
Host_Reset_Select
eSPI Controller
PC_Channel_Disable
eSPI_PLTRST#
3
host_slp_rst#
GPIO062 RESETO#
ESPI_RESET# Data Ouput
VTR
PLTRST# Virtual Wire
PLTRST_SRC
RESET_HOST4 BLOCK N Sleep Event
Sleep
Note: PC_Channel_Disable, PLTRST# Control RESET_BLOCK_N
Virtual Wire, and PLTRST_SRC are defined
in eSPI Controller Specification. BLOCK N RESET ENABLE
Note 1: SOFT_SYS_RESET is implemented in bit[8] of the System Reset Register
Note 2: PWR_INV is implemented in bit[0] of the Power Reset Control Register
Note 3: host_slp_rst# is asserted if the Host Sleep Enable bit and Host Reset Enable bit are set and the eSPI Controller is put to sleep
Note 4: RESET_HOST is fed back into the eSPI Controller to reset select registers/bits
The Wake-Only Events and interrupts are responsible for waking up the respective blocks from where the Event or
interrupt becomes active, but will not enable the clock to the processor.
For example, when RSMRST is high and there is a desire to wake from an ESPI cycle, GIRQ22[9] is the correct wake
source to use. When Chip is asleep and there is a ESPI cycle, the falling edge of the CS will cause the chips clock to
turn on the ESPI block, but not the processor itself. Upon conclusion of the ESPI cycle, if no ESPI interrupt was gen-
erated (i.e. most cycles), then the clock to the ESPI block will go off, and the chip will go back to sleep. If the ESPI
cycle creates an interrupt to the processor (i.e. downstream wire or downstream OOB packet for example), then an
processor interrupt will be generated if enabled and the clock will remain on and the processor can service the interrupt
and the processor can put the chip back to sleep when it has completed its work.
Note: The ESPI Reset itself is NOT a wake event. If wake from ESPI reset is required, then the GPIO interrupt
for the ESPI reset pin can be used as a wake event.
4.8 EC Registers
Registers for this block are shown in the following summary table. Addresses for each register are determined by adding
the offset to the Base Address for the Power, Clocks, and Resets Block in the Block Overview and Base Address Table
in Section 3.0, "Device Inventory".
Note: All register addresses are naturally aligned on 32-bit boundaries. Offsets for registers that are smaller than
32 bits are reserved and must not be used for any other purpose.
The bit definitions for the Sleep Enable, Clock Required and Reset Enable Registers are defined in the Sleep Enable
Register Assignments Table in Section 3.0, "Device Inventory".
Offset See Sleep Enable Register Assignments Table in Section 3.0, "Device Inventory"
Reset
Bits Description Type Default
Event
Unassigned bits are reserved. They must be set to ‘1b’ when writ-
ten. When read, unassigned bits return the last value written.
Offset See Sleep Enable Register Assignments Table in Section 3.0, "Device Inventory"
Reset
Bits Description Type Default
Event
Note: If a block is configured such that it is to be reset when it goes to sleep, then registers within the block may
not be writable when the block is asleep.
Offset See Sleep Enable Register Assignments Table in Section 3.0, "Device Inventory"
Reset
Bits Description Type Default
Event
Offset 0h
Reset
Bits Description Type Default
Event
31:4 Reserved R - -
1 Reserved R - -
1=Heavy Sleep
0=Light Sleep
Offset 04h
Reset
Bits Description Type Default
Event
31:8 Reserved R - -
Offset 08h
Reset
Bits Description Type Default
Event
31:10 Reserved R - -
n=Divide by n
0=Clock off
Offset 0Ch
Reset
Bits Description Type Default
Event
31:9 Reserved R - -
8 PLL_LOCK R 0h RESET
Phase Lock Loop Lock Status _SYS
Offset 10h
Reset
Bits Description Type Default
Event
31:12 Reserved R - -
11 ESPI_CLK_ACTIVE R - RESET
This bit monitors the state of the eSPI clock input. This status bit _SYS
detects edges on the clock input but does not validate the fre-
quency.
11 PCICLK_ACTIVE R - RESET
This bit monitors the state of the PCI clock input. This status bit _SYS
detects edges on the clock input but does not validate the fre-
quency.
10 32K_ACTIVE R - RESET
This bit monitors the state of the 32K clock input. This status bit _SYS
detects edges on the clock input but does not validate the fre-
quency.
1=The 32K clock input is present. The internal 32K clock is derived
from the pin and the ring oscillator is synchronized to the exter-
nal 32K clock
0=The 32K clock input is not present. The internal 32K clock is
derived from the ring oscillator
9:8 Reserved R - -
7 JTAG_RST# R 1h RESET
Indicates the status of JTAG_RST# pin. _SYS
The bit will not clear if a write 1 is attempted at the same time that a
RESET_SYS occurs; this way a reset event is never missed.
Note 1: This read-only status bit always reflects the current status of the event and is not affected by any Reset
events.
Offset 10h
Reset
Bits Description Type Default
Event
The bit will not clear if a write of ‘1’b is attempted at the same time
that a VBAT_RST_N occurs, this way a reset event is never
missed.
4 Reserved R - -
3 RESET_HOST_STATUS R - Note 1
Indicates the status of RESET_VCC.
2 VCC_PWRGD_STATUS R xh Note 1
Indicates the status of VCC_PWRGD.
1=VCC_PWRGD asserted
0=VCC_PWRGD not asserted
1:0 Reserved R - -
Note 1: This read-only status bit always reflects the current status of the event and is not affected by any Reset
events.
Offset 14h
Reset
Bits Description Type Default
Event
31:9 Reserved R - -
Offset 14h
Reset
Bits Description Type Default
Event
7:1 Reserved R - -
0 PWR_INV R/ 1h RESET
This bit allows firmware to control when the Host receives an indi- R/W _SYS
cation that the VCC power is valid, by controlling the state of the
PWROK pin. This bit is used by firmware to control the internal
RESET_VCC signal function and the external PWROK pin.
Offset 18h
Reset
Bits Description Type Default
Event
31:9 Reserved R - -
8 SOFT_SYS_RESET W - -
A write of a ‘1’ to this bit will force an assertion of the RESET_SYS
reset signal, resetting the device. A write of a ‘0’ has no effect.
7:0 Reserved R - -
5.1 Introduction
This chapter contains a description of the ARM M4F Embedded Controller (EC).
The EC is built around an ARM® Cortex®-M4F Processor provided by Arm Ltd. (the “ARM M4F IP”). The ARM Cortex®
M4F is a full-featured 32-bit embedded processor, implementing the ARMv7-M THUMB instruction set and FPU instruc-
tion set in hardware.
The ARM M4F IP is configured as a Von Neumann, Byte-Addressable, Little-Endian architecture. It provides a single
unified 32-bit byte-level address, for a total direct addressing space of 4GByte. It has multiple bus interfaces, but these
express priorities of access to the chip-level resources (Instruction Fetch vs. Data RAM vs. others), and they do not
represent separate addressing spaces.
The ARM M4F is configured as follows.
• Little-Endian byte ordering is selected at all times
• Bit Banding is included for efficient bit-level access
• Floating-Point Unit (FPU) is included, to implement the Floating-Point instruction set in hardware
• Debug features are included at “Ex+” level, defined as follows:
- DWT Unit provides 4 Data Watchpoint comparators and Execution Monitoring
- FPB Unit provides HW Breakpointing with 6 Instruction and 2 Literal (Read-Only Data) address comparators.
The FPB comparators are also available for Patching: remapping Instruction and Literal Data addresses.
• Trace features are included at “Full” level, defined as follows:
- DWT for reporting breakpoints and watchpoints
- ITM for profiling and to timestamp and output messages from instrumented firmware builds
- ETM for instruction tracing, and for enhanced reporting of Core and DWT events
- The ARM-defined HTM trace feature is not included
• NVIC Interrupt controller with 8 priority levels and up to 240 individually-vectored interrupt inputs
- A Microchip-defined Interrupt Aggregator function (at chip level) may be used to group multiple interrupts onto
single NVIC inputs
- The ARM-defined WIC feature is not included. The Microchip Interrupt Aggregator function (at chip level)
provides Wake control
• MPU (Memory Protection Unit) is included for memory access control
• Single entry Write Buffer is incorporated
5.2 References
1. ARM Limited: Cortex®-M4 Technical Reference Manual, DDI0439C, 29 June 2010
2. ARM Limited: ARM®v7-M Architecture Reference Manual, DDI0403D, November 2010
3. NOTE: Filename DDI0403D_arm_architecture_v7m_reference_manual_errata_markup_1_0.pdf
4. ARM® Generic Interrupt Controller Architecture version 1.0 Architecture Specification, IHI0048A, September
2008
5. ARM Limited: AMBA® Specification (Rev 2.0), IHI0011A, 13 May 1999
6. ARM Limited: AMBA® 3 AHB-Lite Protocol Specification, IHI0033A, 6 June 2006
7. ARM Limited: AMBA® 3 ATB Protocol Specification, IHI0032A, 19 June 2006
8. ARM Limited: Cortex-M™ System Design Kit Technical Reference Manual, DDI0479B, 16 June 2011
9. ARM Limited: CoreSight™ v1.0 Architecture Specification, IHI0029B, 24 March 2005
10. ARM Limited: CoreSight™ Components Technical Reference Manual, DDI0314H, 10 July 2009
11. ARM Limited: ARM® Debug Interface v5 Architecture Specification, IHI0031A, 8 February 2006
12. ARM Limited: ARM® Debug Interface v5 Architecture Specification ADIv5.1 Supplement, DSA09-PRDC-008772,
17 August 2009
13. ARM Limited: Embedded Trace Macrocell™ (ETMv1.0 to ETMv3.5) Architecture Specification, IHI0014Q, 23
September 2011
14. ARM Limited: CoreSight™ ETM™-M4 Technical Reference Manual, DDI0440C, 29 June 2010
Note: The EC executes most instructions in 1 clock cycle. If an instruction accesses code and data that are in
different RAM blocks, then it takes one clock cycle to access both code and data (done in
parallel). However, if the code and data blocks are in the same RAM block, then it takes two clock cycles
( one clock for code access and one clock for data access) since it must do it sequentially.
FIGURE 5-1: ARM M4F BASED EMBEDDED CONTROLLER I/O BLOCK DIAGRAM
DAP Debug
Debug Access Port Mux
Host
Interrupts
Aggregator
Vectored
Interrupt
Interrupt
Controller
Processor
Core w/ FPU
Grouped
Unconditionally
(Summary)
Grouped Inputs
Interrupts
Clock Chip-Level
Gate Clock
Processor
ICode DCode System Clock
Interface Interface Interface Divider
(AHB-Lite) (AHB-Lite) (AHB-Lite)
Processor Reset
Core Reset (POR)
Memory Memory AMBA 2
Bus Adapt Bus Adapt AHB Adapt
Misc. Sideband
Code Data AHB
Port Port Port
Chip-Level
PMC Block System Bus
(RAM / ROM) (AMBA 2 AHB)
5.6.3 RESETS
The reset interface from the chip level is given below.
5.7 Interrupts
The ARM M4F Based Embedded Controller is equipped with an Interrupt Interface to respond to interrupts. These inputs
go to the IP’s NVIC block after a small amount of hardware processing to ensure their detection at varying clock rates.
See Figure 5-1, "ARM M4F Based Embedded Controller I/O Block Diagram".
As shown in Figure 5-1, an Interrupt Aggregator block may exist at the chip level, to allow multiple related interrupts to
be grouped onto the same NVIC input, and so allowing them to be serviced using the same vector. This may allow the
same interrupt handler to be invoked for a group of related interrupt inputs. It may also be used to expand the total num-
ber of interrupt inputs that can be serviced.
The NMI (Non-Maskable Interrupt) connection is tied off and not used.
5.9 Description
5.9.1 BUS CONNECTIONS
There are three bus connections used from MEC170x EC block, which are directly related to the IP bus ports. See
Figure 5-1, "ARM M4F Based Embedded Controller I/O Block Diagram".
For the mapping of addresses at the chip level, see Section 3.0, "Device Inventory".
Note: Registers with properties such as Write-1-to-Clear (W1C), Read-to-Clear and FIFOs need to be handled
with appropriate care when being used with the bit band alias addressing scheme. Accessing such a reg-
ister through a bit band alias address will cause the hardware to perform a read-modify-write, and if a W1C-
type bit is set, it will get cleared with such an access. For example, using a bit band access to the Interrupt
Aggregator, including the Interrupt Enables and Block Interrupt Status to clear an IRQ will clear all active
IRQs.
Offset 1000_0000h
Reset
Bits Description Type Default
Event
31:5 Reserved R - -
4:0 DELAY R/W 0h RESET_
Writing a value n, from 0h to 31h, to this register will cause the ARM SYS
processor to stall for (n+1) microseconds (that is, from 1µS to 32µS).
Reads will return the last value read immediately. There is no delay.
6.1 References
None.
6.2 SRAM
The MEC170x contains two blocks of SRAM. he two SRAM blocks in the MEC170x total 480KB. Both SRAM blocks can
be used for either program or data accesses. Performance is enhanced when program fetches and data accesses are
to different SRAM blocks, but a program will operate correctly even if both program and data accesses are targeting the
same block simultaneously.
• The first SRAM, which is optimized for code access, is 416KB
• The second SRAM, which is optimized for data access, is 64KB
6.3 ROM
The MEC170x contains a 64KB block of ROM, located at address 00000000h in the ARM address space. The ROM
contains boot code that is executed after the de-assertion of RESET_SYS. The boot code loads an executable code
image into SRAM. The ROM also includes a set of API functions that can be used for cryptographic functions, as well
as loading SRAM with programs or data.
0x43FF_FFFF
32MB
ARM Bit Band
Register Space
0x4200_0000
0x4010_3FFF
Crypto RAM
0x4010_0000
0x400F_FFFF
Host Device
Registers
0x400F_0000
0x4008_FFFF
GPIO Registers
0x4008_0000
0x4000_FFFF
EC Device
Registers
0x4000_0000
480KB model end address 0x221F_FFFF
2MB
256KB, 320KB model end address 0x220F_FFFF ARM Bit Band
Alias RAM Region
0x2200_0000
480KB model end address 0x2000_FFFF
256KB, 320KB model end address 0x2000_7FFF 64KB Alias RAM
0x2000_0000
480KB model end address 0x0012_7FFF
256KB, 320KB model end address 0x0011_FFFF 64KB RAM
0x0011_8000
416KB RAM
256KB model start address 0x000E_0000
320KB model start address 0x000D_0000
480KB model start address 0x000B_0000
0x0000_FFFF
0x0000_0000
7.1 Introduction
The Internal DMA Controller transfers data to/from the source from/to the destination. The firmware is responsible for
setting up each channel. Afterwards either the firmware or the hardware may perform the flow control. The hardware
flow control exists entirely inside the source device. Each transfer may be 1, 2, or 4 bytes in size, so long as the device
supports a transfer of that size. Every device must be on the internal 32-bit address space.
7.2 References
No references have been cited for this chapter.
7.3 Terminology
DMA Interface
Interrupts
7.8 Description
The MEC170x features a 14 channel DMA controller. The DMA controller can autonomously move data from/to any
DMA capable master device to/from any populated memory location. This mechanism allows hardware IP blocks to
transfer large amounts of data into or out of memory without EC intervention.
The DMA has the following characteristics:
• Data is only moved 1 Data Packet at a time
• Data only moves between devices on the accessible via the internal 32-bit address space
• The DMA Controller has 14 DMA Channels
• Each DMA Channel may be configured to communicate with any DMA capable device on the 32-bit internal
address space. Each device has been assigned a device number. See Section 7.4.3, "DMA Interface".
7.8.1 CONFIGURATION
The DMA Controller is enabled via the ACTIVATE bit in DMA Main Control Register register.
Each DMA Channel must also be individually enabled via the CHANNEL_ACTIVATE bit in the DMA Channel N Activate
Register to be operational.
Before starting a DMA transaction on a DMA Channel the host must assign a DMA Master to the channel via HARD-
WARE_FLOW_CONTROL_DEVICE. The host must not configure two different channels to the same DMA Master at
the same time.
Data will be transfered between the DMA Master, starting at the programmed DEVICE_ADDRESS, and the targeted
memory location, starting at the MEMORY_START_ADDRESS. The address for either the DMA Master or the targeted
memory location may remain static or it may increment. To enable the DMA Master to increment its address set the
INCREMENT_DEVICE_ADDRESS bit. To enable the targeted memory location to increment its addresses set the
INCREMENT_MEMORY_ADDRESS. The DMA transfer will continue as long as the target memory address being
accessed is less than the MEMORY_END_ADDRESS. If the DMA Controller detects that the memory location it is
attempting to access on the Target is equal to the MEMORY_END_ADDRESS it will notify the DMA Master that the
transaction is done. Otherwise the Data will be transferred in packets. The size of the packet is determined by the
TRANSFER_SIZE.
7.8.2 OPERATION
The DMA Controller is designed to move data from one memory location to another.
Note: Before initiating a DMA transaction via firmware the hardware flow control must be disabled via the DIS-
ABLE_HARDWARE_FLOW_CONTROL bit.
Data may be moved from the DMA Master to the targeted Memory address or from the targeted Memory Address to the
DMA Master. The direction of the transfer is determined by the TRANSFER_DIRECTION bit.
Once a transaction has been initiated firmware can use the STATUS_DONE bit to determine when the transaction is
completed. This status bit is routed to the interrupt interface. In the same register there are additional status bits that
indicate if the transaction completed successfully or with errors. These bits are OR’d together with the STATUS_DONE
bit to generate the interrupt event. Each status be may be individually enabled/disabled from generating this event.
7.9 EC Registers
The DMA Controller consists of a Main Block and a number of Channels. Table 7-9, "Main Register Summary" lists the
registers in the Main Block and Table 7-10, "Channel Register Summary" lists the registers in each channel. Addresses
for each register are determined by adding the offset to the Base Address for the DMA Controller Block in the Block
Overview and Base Address Table in Section 3.0, "Device Inventory".
Registers are listed separately for the Main Block of the DMA Controller and for a DMA Channel. Each Channel has the
same set of registers. The absolute register address for registers in each channel are defined by adding the Base
Address for the DMA Controller Block, the Offset for the Channel shown in Table 7-8, "DMA Channel Offsets" to the
offsets listed in Table 7-9, "Main Register Summary" or Table 7-10, "Channel Register Summary".
:
Offset 00h
Reset
Bits Description Type Default
Event
7:2 Reserved R - -
1 SOFT_RESET W 0b -
Soft reset the entire module.
Offset 04h
Reset
Bits Description Type Default
Event
31:0 DATA_PACKET R 0000h -
Debug register that has the data that is stored in the Data Packet.
This data is read data from the currently active transfer source.
Offset 00h
Reset
Bits Description Type Default
Event
7:1 Reserved R - -
0 CHANNEL_ACTIVATE R/W 0h RESET
Enable this channel for operation.
The DMA Main Control:Activate must also be enabled for this chan-
nel to be operational.
Offset 04h
Reset
Bits Description Type Default
Event
31:0 MEMORY_START_ADDRESS R/W 0000h RESET
This is the starting address for the Memory device.
The Memory device is defined as the device that is the slave device
in the transfer. With Hardware Flow Control, the Memory device is
the device that is not connected to the Hardware Flow Controlling
device.
7.9.5 DMA CHANNEL N MEMORY END ADDRESS REGISTER
Offset 08h
Reset
Bits Description Type Default
Event
31:0 MEMORY_END_ADDRESS R/W 0000h RESET
This is the ending address for the Memory device.
This will define the limit of the transfer, so long as DMA Channel
Control:Increment Memory Address is Enabled. When the Memory
Start Address is equal to this value, the DMA will terminate the trans-
fer and flag the status DMA Channel Interrupt:Status Done.
Note: If the TRANSFER_SIZE field in the DMA Channel N Con-
trol Register is set to 2 (for 2-byte transfers, this address
must be evenly divisible by 2 or the transfer will not ter-
minate properly. If the TRANSFER_SIZE field is set to 4
(for 4-byte transfers, this address must be evenly divisi-
ble by 4 or the transfer will not terminate properly.
Offset 0Ch
Reset
Bits Description Type Default
Event
31:0 DEVICE_ADDRESS R/W 0000h RESET
This is the Master Device address.
This is used as the address that will access the Device on the DMA.
The Device is defined as the Master of the DMA transfer; as in the
device that is controlling the Hardware Flow Control.
Offset 10h
Reset
Bits Description Type Default
Event
31:26 Reserved R - -
25 TRANSFER_ABORT R/W 0h RESET
This is used to abort the current transfer on this DMA Channel. The
aborted transfer will be forced to terminate immediately.
24 TRANSFER_GO R/W 0h RESET
This is used for the Firmware Flow Control DMA transfer.
The transfer size must be a legal transfer size. Valid sizes are 1, 2
and 4 Bytes.
19 DISABLE_HARDWARE_FLOW_CONTROL R/W 0h RESET
Setting this bit to ‘1’b will Disable Hardware Flow Control. When
disabled, any DMA Master device attempting to communicate to the
DMA over the DMA Flow Control Interface will be ignored.
This should be set before using the DMA channel in Firmware Flow
Control mode.
18 LOCK_CHANNEL R/W 0h RESET
This is used to lock the arbitration of the Channel Arbiter on this
channel once this channel is granted.
Once this is locked, it will remain on the arbiter until it has completed
it transfer (either the Transfer Aborted, Transfer Done or Transfer
Terminated conditions).
Note: This setting may starve other channels if the locked chan-
nel takes an excessive period of time to complete.
17 INCREMENT_DEVICE_ADDRESS R/W 0h RESET
If this bit is ‘1’b, the DEVICE_ADDRESS will be incremented by
TRANSFER_SIZE after every Data Packet transfer
16 INCREMENT_MEMORY_ADDRESS R/W 0h RESET
If this bit is ‘1’b, the MEMORY_START_ADDRESS will be incre-
mented by TRANSFER_SIZE after every Data Packet transfer
Note: If this is not set, the DMA will never terminate the transfer
on its own. It will have to be terminated through the Hard-
ware Flow Control or through a DMA Channel Con-
trol:Transfer Abort.
Reset
Bits Description Type Default
Event
15:9 HARDWARE_FLOW_CONTROL_DEVICE R/W 0h RESET
This is the device that is connected to this channel as its Hardware
Flow Control master.
2 DONE R 0h RESET
This is a status signal. It is only valid while RUN is Enabled. This is
the inverse of the DMA Channel Control:Busy field, except this is
qualified with the DMA Channel Control:Run field.
1=Channel is done
0=Channel is not done or it is OFF
1 REQUEST R 0h RESET
This is a status field.
Offset 14h
Reset
Bits Description Type Default
Event
7:3 Reserved R - -
2 STATUS_DONE R/WC 0h RESET
This is an interrupt source register.
This flags when the DMA Channel has completed a transfer suc-
cessfully on its side.
A completed transfer is defined as when the DMA Channel reaches
its limit; Memory Start Address equals Memory End Address.
A completion due to a Hardware Flow Control Terminate will not
flag this interrupt.
1=Error detected.
7.9.9 DMA CHANNEL N INTERRUPT ENABLE REGISTER
Offset 18h
Reset
Bits Description Type Default
Event
7:3 Reserved R - -
2 STATUS_ENABLE_DONE R/W 0h RESET
This is an interrupt enable for STATUS_DONE.
1=Enable Interrupt
0=Disable Interrupt
1 STATUS_ENABLE_FLOW_CONTROL_ERROR R/W 0h RESET
This is an interrupt enable for STATUS_FLOW_CONTROL.
1=Enable Interrupt
0=Disable Interrupt
Reset
Bits Description Type Default
Event
0 STATUS_ENABLE_BUS_ERROR R/W 0h RESET
This is an interrupt enable for STATUS_BUS_ERROR.
1=Enable Interrupt
0=Disable Interrupt
Offset 20h
Reset
Bits Description Type Default
Event
31:2 Reserved R - -
1=Enable the transfer of CRC-32 for DMA Channel N after the DMA
transaction completes
0=Disable the automatic transfer of the CRC
Offset 24h
Reset
Bits Description Type Default
Event
Offset 28h
Reset
Bits Description Type Default
Event
31:4 Reserved R - -
3 CRC_DATA_READY R 0h RESET
This bit is set to ‘1b’ when the DMA controller is processing the
post-transfer of the CRC data. This bit is cleared to ‘0b’ when the
post-transfer completes.
2 CRC_DATA_DONE R 0h RESET
This bit is set to ‘1b’ when the DMA controller has completed the
post-transfer of the CRC data. This bit is cleared to ‘0b’ when the a
new DMA transfer starts.
1 CRC_RUNNING R 0h RESET
This bit is set to ‘1b’ when the DMA controller starts the post-trans-
fer transmission of the CRC. It is only set when the post-transfer is
enabled by the CRC_POST_TRANSFER_ENABLE field. This bit is
cleared to ‘0b’ when the post-transfer completes.
0 CRC_DONE R 0h RESET
This bit is set to ‘1b’ when the CRC calculation has completed from
either normal or forced termination. It is cleared to ‘0b’ when the
DMA controller starts a new transfer on the channel.
Offset 20h
Reset
Bits Description Type Default
Event
31:1 Reserved R - -
Offset 24h
Reset
Bits Description Type Default
Event
Offset 28h
Reset
Bits Description Type Default
Event
31:2 Reserved R - -
1 FILL_RUNNING R 0h RESET
This bit is ‘1b’ when the Fill operation starts and is cleared to ‘0b’
when the Fill operation completes.
0 FILL_DONE R 0h RESET
This bit is set to ‘1b’ when the Fill operation has completed from
either normal or forced termination. It is cleared to ‘0b’ when the
DMA controller starts a new transfer on the channel.
8.1 Introduction
The EC Interrupt Aggregator works in conjunction with the processor’s interrupt interface to handle hardware interrupts
and exceptions.
Exceptions are synchronous to instructions, are not maskable, and have higher priority than interrupts. All three excep-
tions - reset, memory error, and instruction error - are hardwired directly to the processor. Interrupts are typically asyn-
chronous and are maskable.
Interrupts classified as wake events can be recognized without a running clock, e.g., while the MEC170x is in sleep
state.
This chapter focuses on the EC Interrupt Aggregator. Please refer to embedded controller’s documentation for more
information on interrupt and exception handling.
8.2 References
None
8.3 Terminology
None
8.4 Interface
This block is an IP block designed to be incorporated into a chip. It is designed to be accessed externally via the pin
interface and internally via a registered host interface. The following diagram illustrates the various interfaces to the
block.
EC Interrupt Aggregator
Signal Interface
Signal Interface
Power, Clocks and Reset
8.8 Interrupts
This block aggregates all the interrupts targeted for the embedded controller into the Source Registers defined in Sec-
tion 8.11, "EC Registers". The unmasked bits of each source register are then OR’d together and routed to the embed-
ded controller’s interrupt interface. The name of each Source Register identifies the IRQ number of the interrupt port on
the embedded controller.
8.10 Description
The interrupt generation logic is made of groups of signals, each of which consist of a Status register, a Enable Set reg-
ister, and Enable Clear register and a Result register.
The Status and Enable are latched registers. There is one set of Enable register bits; both the Enable Set and Enable
Clear registers return the same result when read. The Enable Set interface is used to set individual bits in the Enable
register, and the Enable Clear is used to clear individual bits. The Result register is a bit by bit AND function of the
Source and Enable registers. All the bits of the Result register are OR’ed together and AND’ed with the corresponding
bit in the Block Select register to form the interrupt signal that is routed to the ARM interrupt controller.
The Result register bits may also be enabled to the NVIC block via the NVIC_EN bit in the Interrupt Control Register
register. See Chapter 46.0, "EC Subsystem Registers"
Section 8.10.1 shows a representation of the interrupt structure.
NVIC_EN
NVIC
GIRQx Inputs for
..
. blocks
Int source
result
Interrupt
from block SOURCE0
Interrupt
SOURCE1
from block
. . . NVIC
. . .. . Input for
. . .
. GIRQx
Interrupt SOURCEn
from block
Block Enable
Int enable
ENABLE0
.
.
ENABLE1 .
. Bit x
..
.
ENABLEn
..
To Wake
Interface
Note: The four Soft Interrupts that are defined by the RTOS Timer do not have individual NVIC vectors. If the use
of the SWI interrupts is required, then all interrupts in the GIRQ must disable the individual NVIC vectors.
8.11 EC Registers
Registers for this block are shown in the following summary table. Addresses for each register are determined by adding
the offset to the Base Address for of the EC Interrupt Aggregator Block in the Block Overview and Base Address Table
in Section 3.0, "Device Inventory".
Note: If a GPIO listed in the tables does not appear in the pin list of a particular device, then the bits for that GPIO
in the GIRQx Source, GIRQx Enable Clear, GIRQx Enable Set and GIRQx Result are reserved.
Reset
Bits Description Type Default
Event
31 Reserved R - -
Reset
Bits Description Type Default
Event
31 Reserved R - -
Reset
Bits Description Type Default
Event
31 Reserved R - -
Reset
Bits Description Type Default
Event
31 Reserved R 1h -
Offset 200h
Reset
Bits Description Type Default
Event
31:27 Reserved R - -
Reads always return the current value of the enable bits for each of
the GIRQs. The state of the GIRQX_ENABLE bit is determined by
the corresponding GIRQX_ENABLE_SET bit and the GIRQX_EN-
ABLE_CLEAR bit. (0=disabled, 1-enabled)
7:0 Reserved R - -
Offset 204h
Reset
Bits Description Type Default
Event
31:27 Reserved R - -
7:0 Reserved R - -
Offset 208h
Reset
Bits Description Type Default
Event
31:27 Reserved R 0h -
7:0 Reserved R 0h -
9.1 Introduction
The Intel® Low Pin Count (LPC) Interface is the LPC Interface used by the system host to configure the chip and com-
municate with the logical devices implemented in the design through a series of read/write registers. Register access is
accomplished through the LPC transfer cycles defined in Table 9-6, "LPC Cycle Types Supported".
The Logical Devices implemented in the design are identified in Table 9-10, "I/O Base Address Register Default Values".
The Base Address Registers allow any logical device’s runtime registers to be relocated in LPC I/O space. All chip con-
figuration registers for the device are accessed indirectly through the LPC I/O Configuration Port (see Section 9.8.6,
"Configuration Port").
LPC memory cycles may also be used to access the Base Address Registers of certain devices.
9.2 References
• Intel® Low Pin Count (LPC) Interface Specification, v1.1
• PCI Local Bus Specification, Rev. 2.2
• Serial IRQ Specification for PCI Systems Version 6.0.
• PCI Mobile Design Guide Rev 1.0
9.3 Terminology
This table defines specialized terms localized to this feature.
LPC Interface
(Logical Device Ch)
Serial IRQ
Configuration Port
Interface to LAD0
State Machine
Configuration LAD1
Registers
LAD2
LAD3
LFRAME#
LRESET#
LPC Config
Registers LCLK
Interface to Logical
SERIRQ
Device Register LPC Controller
CLKRUN#
LPC Regis-
ters
(Runtime,
EC-Only)
9.5.3 RESETS
Name Description
RESET_SYS Reset signal used to indicate when the main internal power rail is applied.
This reset is also asserted on a Watchdog Timer timeout.
RESET_VCC This signal is used to indicate when the main power rail in the system is
reset. It is asserted when:
• The internal RESET_SYS reset signal is asserted
• The external VCC_PWRGD signal indicates the main system power
rail is unpowered
RESET_HOST This signal is used to indicate when the main power rail in the system is
reset. It is asserted when:
• The RESET_VCC is asserted
• The LPC interface is enabled and the external LRESET# reset signal
is asserted
9.6 Interrupts
This section defines the Interrupt Sources generated from this block.
Source Description
LPC_INTERNAL_ERR The LPC_INTERNAL_ERR event is sourced by bit D0 of the Host Bus
Error Register.
LPC_WAKE This interrupt event is triggered when the Host initiates an LPC
transaction targeting the EC. The EC interrupt handler for this event only
needs to clear the interrupt SOURCE bit and return; if the transaction
results in an action that requires EC processing, that action will trigger
its own interrupt.
9.8 Description
This LPC Controller is compliant with the Intel® Low Pin Count (LPC) Interface Specification, v1.1. The LPC Controller
claims only LPC transactions targeted for one of its peripherals, either via LPC I/O Cycles or LPC Memory Cycles. LPC
transactions may be used to communicate directly with logical devices on the device using Runtime Registers. LPC
transactions can also be used to configure the Host logical devices. The mechanism to configure the chip is described
in Section 9.8.6, "Configuration Port". Once a logical device is configured, it may use Serial Interrupt Requests to notify
the host of an event.
Note: In order to use the LPC bus, software must individually configure the mux control for every GPIO associated
with an LPC bus signal to the LPC function. Pins are not automatically configured for LPC operation when
the LPC Controller is enabled.
Note: All LPC transactions are synchronized to the LCLK and will complete with a maximum of 8 wait states,
unless otherwise noted.
Master Target
If CLKRUN# is sampled “high”, LCLK is stopped or stopping. If CLKRUN# is sampled “low”, LCLK is starting or started
(running).
If the MEC170x needs to send a Serial Interrupt Request to the Host while the LPC bus clock it stopped, it can assert
CLKRUN# in order to start the idle LCLK. The MEC170x will only assert CLKRUN# under the following conditions:
• Serial IRQ support is enabled. This occurs when the SerIRQ Mode bit in the DEVICE Global Configuration Regis-
ter is set to ‘1’.
• The assertion level changes on at least one SERIRQ Host interrupt signal from any enabled Host Logical Device
in the MEC170x.
• The CLKRUN# pin is high (i.e., the LPC clock is stopped or will stop soon).
The LPC Controller does not assert CLKRUN# until the CLKRUN# has been de-asserted for a minimum of two succes-
sive clocks. The Controller holds CLKRUN# low until it detects two rising edges of the clock. After the second clock
edge, the controller disables the open drain driver for the CLKRUN# pin. The following figure illustrates the mechanism
for asserting CLKRUN#. In the figure, “ANY CHANGE” means that there is either a high-to-low or a low-to-high edge on
any of the SERIRQ interrupt signals from any of the internal Host Logical Devices:
LCLK
2 CLKS MIN.
Note: The LPC Controller’s Base Address register is used to define the Base I/O Address of the Configuration
Port.
To access the Runtime registers with I/O cycles, the Host must configure the I/O Base Address Registers, which are
accessible via the Configuration Port. The Configuration Port, Logical Device Ch, is located at the Base I/O Address
programmed in the BAR Configuration register located at offset 60h.
If the I/O transaction matches the BAR of Logical Device Ch, the transaction will be forwarded to the Configuration Port,
otherwise the transaction will be forwarded to the Runtime Registers of the targeted logical device.
Each Logical Device may have up to 256 Contiguous Runtime Registers. The Runtime Registers are located at a
defined offset from the Logical Device’s base address. The host can directly access these registers with a standard LPC
I/O command.
The Logical Device number for the matching device is located in the Frame field of the BAR.
When matching LPC I/O addresses, the LPC Controller ignores address bits that correspond to ‘1b’ bits in the MASK
field.
LPC I/O address matching is illustrated in the following two examples:
Example 1:
The Keyboard Controller (8042 Interface) Base Address Register has 60h in the LPC Address field, the Frame field is
01h, and the MASK field is 04h. Because of the single ‘1b’ bit in MASK, the BAR will match LPC I/O patterns in the form
‘0000_0000_0110_0x00b’, so both 60h and 64h will be matched and claimed by the LPC Controller.
Example 2:
If a standard 16550 UART was located at LPC I/O address 238h, then the UART Receive buffer would appear at
address 238h and the Line Status register at 23Dh. If the BAR for the UART was set to 0238_7047h, then the UART
will be matched at I/O address 238h and the example registers will be claimed by the LPC Controller.
31 23 0
LPC Address
31 23 12 0
0 0 0 0 0 0 0 0 AHB Base
31 23 12 0
AHB Address
Note: The data read from the Configuration Port Data register is undefined when CONFIG MODE is not enabled.
The Configuration Port is composed of an INDEX and DATA Register. The INDEX register is used as an address pointer
to an 8-bit configuration register and the DATA register is used to read or write the data value from the indexed config-
uration register. Once CONFIG MODE is enabled, reading the Configuration Port Data register will return the data value
that is in the indexed Configuration Register.
If no value was written to the INDEX register, reading the Data Register in the Configuration Port will return the value in
Configuration Address location 00h (default).
The Configuration Port registers are defined in Section 9.10, "Runtime Registers".
LCLK
SERIRQ START
LCLK
Stop pulse is two clocks wide for Quiet mode, three clocks wide for Continuous mode.
There may be none, one, or more Idle states during the Stop Frame.
The next SERIRQ cycle’s Start Frame pulse may or may not start immediately after the turn-around clock of the Stop
Frame.
The SIRQ data frame will now support IRQ2 from a logical device; previously SERIRQ Period 3 was reserved for use
by the System Management Interrupt (LSMI#). When using Period 3 for IRQ2, the user should mask off the SMI via the
ESMI Mask Register. Likewise, when using Period 3 for LSMI#, the user should not configure any logical devices as
using IRQ2.
SERIRQ Period 14 is used to transfer IRQ13. Each Logical devices will have IRQ13 as a choice for their primary inter-
rupt.
9.8.7.3 Latency
Latency for IRQ/Data updates over the SERIRQ bus in bridge-less systems with the minimum IRQ/Data Frames of 17
will range up to 96 clocks (3.84S with a 25 MHz LCLK or 2.88s with a 33 MHz LCLK).
Note: If one or more PCI to PCI Bridge is added to a system, the latency for IRQ/Data updates from the secondary
or tertiary buses will be a few clocks longer for synchronous buses, and approximately double for asyn-
chronous buses.
Logical Device
Select Frame Interrupt Source
(Block Instance)
0h 0h Mailbox MBX_Host_SIRQ
1h 0h Mailbox MBX_Host_SMI
0h 1h Keyboard Controller (8042) KIRQ
1h 1h Keyboard Controller (8042) MIRQ
0h 2h ACPI-EC 0 EC_OBE
0h 3h ACPI-EC 1 EC_OBE
0h 4h ACPI-EC 2 EC_OBE
0h 5h ACPI-EC 3 EC_OBE
0h 6h ACPI-EC 4 EC_OBE
0h 9h UART 0 UART
0h Ah UART 1 UART
0h Ch LPC Interface 0 EC_IRQ
0h 10h EM Interface 0 EC-to-Host
Logical Device
Select Frame Interrupt Source
(Block Instance)
1h 10h EM Interface 0 Host Event
0h 11h EM Interface 1 EC-to-Host
1h 11h EM Interface 1 Host Event
0h 12h EM Interface 2 EC-to-Host
1h 12h EM Interface 2 Host Event
0h 14h RTC RTC
LD 00h-Int0 0
LD 00h- Int
LD 00h-Int1 1
LD 3Fh-Int0 0
LD 3Fh- Int
SERIRQi
LD 3Fh-Int1 1 0
Source
1
Select
Offset 30h
Reset
Bits Description Type Default
Event
7:1 Reserved R - -
The Host should not write this bit to ‘0’ over the LPC bus.
Reset
Bits Description Type Default
Event
Note: A SERIRQ interrupt is deactivated by setting the SERIRQ Configuration Register for the SERIRQ channel
to FFh, which is the default reset value.
Note: Software should that insure that no two I/O BARs map the same LPC I/O address. If two I/O BARs do map
to the same address, the LPC_INTERNAL_ERR and BAR_CONFLICT status bits are set when an LPC
access is targeting the address with the BAR conflict.
The format of each BAR is summarized in Section 9.9.3.1, "I/O Base Address Register Format".
Offset See Table 9-10, "I/O Base Address Register Default Values"
Reset
Bits Description Type Default
Event
14 Reserved R - -
Note 1: Bits[31:16] LPC Host Address bit field in the LPC Base Address register at offset 60h must be written
LSB then MSB. This particular register has a shadow that lets the Host come in and write to the lower
byte of the 16-bit address, and the resulting 16-bit LPC Host address field does not update. Writing to
the upper byte triggers a full 16-bit field update
2: The BARs for all Logical Devices except the BAR for the LPC Interface, at offset 60h, are reset on
RESET_HOST. The BAR for the LPC Interface is reset on RESET_SYS.
3: The Mask and Frame fields of all logical devices are read-only except for the ACPI EC0 interface. For
this interface, the Mask field is readable and writable.
Offset See Table 9-10, "I/O Base Address Register Default Values"
Reset
Bits Description Type Default
Event
Note 1: Bits[31:16] LPC Host Address bit field in the LPC Base Address register at offset 60h must be written
LSB then MSB. This particular register has a shadow that lets the Host come in and write to the lower
byte of the 16-bit address, and the resulting 16-bit LPC Host address field does not update. Writing to
the upper byte triggers a full 16-bit field update
2: The BARs for all Logical Devices except the BAR for the LPC Interface, at offset 60h, are reset on
RESET_HOST. The BAR for the LPC Interface is reset on RESET_SYS.
3: The Mask and Frame fields of all logical devices are read-only except for the ACPI EC0 interface. For
this interface, the Mask field is readable and writable.
The following table defines the IO_BAR of each logical device implemented in the design.
9.9.4.1 SRAM Base Address Register Format, LPC Configuration Register Format
Offset See Table 9-11, "SRAM Base Address Register Default Values, LPC Config"
Reset
Bits Description Type Default
Event
31:8 Reserved R - -
6:0 Reserved R - -
Offset See Table 9-12, "SRAM Base Address Register Default Values, EC-Only"
Reset
Bits Description Type Default
Event
31:8 AHB_BASE R/W 0h RESET_
These 24 bits define the base of a region in AHB address space that SYS
will be mapped to the LPC Memory space. Valid AHB addresses are
integer multiples of the memory size. For example, if the memory is
4k bytes than the AHB Base address must be located on a 4k byte
boundary.
The 24 bits in this field are left-shifted by 8 bits to form a 32-bit AHB
address, so all memory blocks begin on a 256-byte boundary.
7 INHIBIT R/W 0h RESET_
Host access to the memory block is inhibited when this bit is 1. The SYS
Host can access the memory region mapped by the fields AHB Base
and Size when this bit is 0.
6:4 Reserved R - -
Reset
Bits Description Type Default
Event
3:0 SIZE R/W 0h RESET_
The number of address bits to pass unchanged when translating an SYS
LPC address to an AHB address. These 4 bits in effect define the
size of the block to be claimed by the LPC bridge, defined as a
power of 2. A value of 0 defines a 20 or a 1-byte region starting at
LPC Host Address. A value of 12 defines a 212 or a 4K-byte region.
Values larger than 12 are undefined.
The following tables define the SRAM BARs implemented in the design.
TABLE 9-11: SRAM BASE ADDRESS REGISTER DEFAULT VALUES, LPC CONFIG
LPC Host
LPC EC Reset Valid
Logical Device Address
Index Offset Default [7]
[63:32]
B0h 3B0h SRAM BAR 0 0h 0h 0h
B8h 3B8h SRAM BAR 1 0h 0h 0h
Offset See Table 9-13, "Memory Base Address Register Default Values"
Reset
Bits Description Type Default
Event
14 Reserved R - -
Note 1: The Mask and Frame fields of all logical devices are read-only except for the ACPI EC0 interface. For
this interface, the Mask field is readable and writable.
Offset See Table 9-13, "Memory Base Address Register Default Values"
Reset
Bits Description Type Default
Event
Note 1: The Mask and Frame fields of all logical devices are read-only except for the ACPI EC0 interface. For
this interface, the Mask field is readable and writable.
The following table defines the Memory BAR of each logical device implemented in the design.
Note: The LPC Runtime registers are only accessible from the LPC interface and are used to access the LPC
Configuration Port. They are not accessible by the EC.
For a description of accessing the Configuration Port see Section 9.8.6, "Configuration Port".
Offset 00h
Reset
Bits Description Type Default
Event
7:0 INDEX R/W 0h RESET_
The INDEX register, which is part of the Configuration Port, is used SYS
as a pointer to a Configuration Register Address.
Offset 01h
Reset
Bits Description Type Default
Event
7:0 DATA R/W 0h RESET_
The DATA register, which is part of the Configuration Port, is used to SYS
read or write data to the register currently being selected by the
INDEX Register.
9.11 EC Registers
Registers for this block are shown in the following summary table. Addresses for each register are determined by adding
the offset to the Base Address for the LPC Interface Block in the Block Overview and Base Address Table in Section
3.0, "Device Inventory".
Note: TEST registers are read/write registers. Modifying these registers may have unwanted results.
Offset 104h
Reset
Bits Description Type Default
Event
31:2 Reserved R - -
1 LRESET_STATUS R 0h RESET_
SYS
This bit reflects the state of the LRESET# input pin. The LRE-
SET_Status is the inverse of the LRESET# pin.
When the LRESET_Status bit is ‘0b’, the LRESET# input pin is de-
asserted (that is, the pin has the value ‘1b’). When the LRESET_Sta-
tus bit is ‘1b’, the LRESET# input pin is asserted (that is, the pin has
the value ‘0b’).
0 TEST R 0h RESET_
SYS
Offset 108h
Reset
Bits Description Type Default
Event
31:8 ERROR_ADDRESS R 0h RESET_
This 24-bit field captures the 24-bit internal address of every LPC SYS
transaction whenever the bit LPC_INTERNAL_ERR in this register is
0. When LPC_INTERNAL_ERR is 1 this register is not updated but
retains its previous value. When bus errors occur this field saves the
address of the first address that caused an error.
5 DMA_ERR R/WC 0h RESET_
This bit is set to 1 whenever EN_INTERNAL_ERR is 1 and an LPC SYS
DMA access causes an internal bus error. Once set, it remains set
until cleared by being written with a 1.
4 CONFIG_ERR R/WC 0h RESET_
This bit is set to 1 whenever EN_INTERNAL_ERR is 1 and an LPC SYS
Configuration access causes an internal bus error. Once set, it
remains set until cleared by being written with a 1.
3 RUNTIME_ERR R/WC 0h RESET_
This bit is set to 1 whenever EN_INTERNAL_ERR is 1 and an LPC SYS
I/O access causes an internal bus error. This error will only occur if a
BAR is misconfigured. Once set, it remains set until cleared by being
written with a 1.
2 BAR_CONFLICT R/WC 0h RESET_
This bit is set to 1 whenever a BAR conflict occurs on an LPC SYS
address. A Bar conflict occurs when more than one BAR matches
the address during of an LPC cycle access. Once this bit is set, it
remains set until cleared by being written with a 1.
1 EN_INTERNAL_ERR R/W 0h RESET_
When this bit is 0, only a BAR conflict, which occurs when two BARs SYS
match the same LPC I/O address, will cause LPC_INTERNAL_ERR
to be set. When this bit is 1, internal bus errors will also cause
LPC_INTERNAL_ERR to be set.
Reset
Bits Description Type Default
Event
0 LPC_INTERNAL_ERR R/WC 0h RESET_
This bit is set whenever a BAR conflict or an internal bus error SYS
occurs as a result of an LPC access. Once set, it remains set until
cleared by being written with a 1. This signal may be used to gener-
ate interrupts.
Offset 10Ch
Reset
Bits Description Type Default
Event
31:1 Reserved R - -
0 EC_IRQ R/W 0h RESET_
If the LPC Logical Device is selected as the source for a Serial Inter- SYS
rupt Request by an Interrupt Configuration register (see Section
9.8.7.7, "SERIRQ Interrupts"), this bit is used as the interrupt source.
Offset 110h
Reset
Bits Description Type Default
Event
31:3 Reserved R - -
2 TEST R/W 1h RESET_
This bit must be set to ‘1b’ whenever this register is written. SYS
Offset 114h
Reset
Bits Description Type Default
Event
31:8 Reserved R - -
7:0 TEST R 0h RESET_
SYS
Offset 118h
Reset
Bits Description Type Default
Event
31:2 Reserved R - -
1 TEST R/W 0h RESET_
SYS
0 TEST R/W 0h RESET_
SYS
Offset 120h
Reset
Bits Description Type Default
Event
63:0 BAR_INHIBIT R/W 0h RESET_
When bit Di of BAR_Inhibit is 1, the BAR for Logical Device i is dis- SYS
abled and its addresses will not be claimed on the LPC bus, inde-
pendent of the value of the Valid bit in the BAR.The association
between bits in BAR_Inhibit and Logical Devices is illustrated in
Table 9-16, "BAR Inhibit Device Map".
Offset 130h
Reset
Bits Description Type Default
Event
15:0 BAR_INIT R/W 002Eh RESET_
This field is loaded into the LPC BAR at offset 60h on SYS
RESET_HOST.
10.1 Introduction
The Intel® Enhanced Serial Peripheral Interface (eSPI) is used by the system host to configure the chip and communi-
cate with the logical devices implemented in the design through a series of read/write registers. It is Intel’s successor to
the Low Pin Count (LPC) bus, used in previous devices to provide System Host access to devices internal to the Embed-
ded Controller.
10.2 References
1. Intel, Enhanced Serial Peripheral Interface (eSPI): Interface Specification (for Client Platforms)
2. Intel, Skylake U and Y Platform Design Guide, Revision 2.0
3. Microchip “eSPI Controller” Specification, DS00000A
10.3 Terminology
This table defines specialized terms localized to this feature.
Term Definition
System Host Refers to the external CPU that communicates with this device via the eSPi Inter-
face.
Logical Devices Logical Devices are System Host-accessible features that are allocated a Base
Address and range in the System Host I/O address space
Runtime Register Runtime Registers are registers that are directly I/O accessible by the System Host
via the eSPI interface.
10.4 Interface
Register Interface
External Interfaces
Internal Interfaces
Pin Interface
Power, Clocks, and Resets
Interrupt Interface
The signal interface pins are connected to the external pin interface. This table maps the block signal names to the exter-
nal pinout names.
10.4.3.1 Power
Name Description
VTR The Enhanced Serial Peripheral Interface (eSPI) block and registers are
powered by VTR. This power rail may be present to the block while
external power to the eSPI pins is not present. Therefore, this block
remains passive on the eSPI bus pins whenever eSPI_RESET# is low.
Name Description
eSPI_CLOCK The eSPI clock provided by the System Host core logic
Note: Max frequency supported is 51MHz.
10.4.3.3 Resets
This section describes all the resets associated with this IP block, including those that are derived from the I/O Interface
as well as the ones that are derived or generated internally.
Name Description
RESET_SYS This is the power-on-reset signal, which is asserted when VTR power is
applied. Asserting this reset signal resets the eSPI IP block, including all
registers, FIFOs, and state machines to their initial POR state.
RESET_eSPI A general reset signal for the eSPI block. This reset is asserted with the
eSPI_RESET# pin is asserted by the System Host core logic.
When this reset is asserted all eSPI Output signals and Input/Output sig-
nals are tri-stated. Any transaction in progress is terminated and all
FIFOs are flushed. All interrupt status flags are reset and all interrupts to
the EC except RESET_eSPI are suppressed.
When this reset is asserted, all eSPI Configuration Registers in the slave
device are set to the default values, as per the Intel eSPI Specification.
Fields in the eSPI Configuration Registers that are set from the eSPI
Capabilities registers (see Section 10.7, "eSPI Register Summary") are
not modified.
RESET_VCC Performs a reset when the system main power rail is turned off.
RESET_HOST Performs a reset when the system main power rail is turned off or when
the system host resets the Host Interface.
eSPI_PLTRST# This is a reset that affects the Peripheral Channel. It is received by the
Slave as a Virtual Wire (PLTRST#).
Note: When the HOST_RST_WARN Virtual Wire edge arrives, an interrupt event is thrown to EC firmware.
Between the HOST_RST_WARN notification and the HOST_RST_ACK response from the EC, the EC
firmware must shut down all eSPI activity under the PLTRST# (S0) domain. Otherwise, intermittent
FATAL_ERROR responses (leading to SERR events in the Chipset) can occur on subsequent assertions
of PLTRST#. This is not an erratum, but rather an inherent feature of eSPI itself. The Virtual Wire hand-
shake HOST_RST_WARN/HOST_RST_ACK exists in order to support a situation unique to eSPI, where
the eSPI bus remains operational while Main powered (S0) resources are shut down. This is unlike the LPC
bus, which would shut itself down entirely. When the HOST_RST_WARN Virtual Wire rises to '1' from the
Host Chipset, it is indicating that a eSPI_PLTRST# (PCI_RESET#) assertion event is pending, and is wait-
ing for the EC’s HOST_RST_ACK Virtual Wire to rise to '1' to complete the handshake.
The steps to be taken by EC firmware are:
1. Stop issuing Bus Mastering requests to System DRAM, and wait until any earlier transfer is complete. That is,
wait as necessary for the BM1_BUSY and BM2_BUSY status bits to be cleared.
2. Stop issuing LTR Messages to the Chipset, and wait until any earlier transfer is complete. That is, wait as nec-
essary for the TRANSMIT_BUSY bit in the LTR Peripheral Status Register to be cleared.
3. Ensure that no further edges on the Virtual Wires RCIN#, SCI# or SMI# will be delivered to the Chipset. An edge
report already in transit needs no special handling, as it will be finished no later than the HOST_RST_ACK step
below.
4. Ensure that no further edges will be delivered on any of the Host IRQ Virtual Wires, by disabling them either at
the source or at the IRQ assignment registers. An edge report already in transit needs no special handling, as
it will be finished no later than the HOST_RST_ACK step below.
5. Ensure that any other housekeeping is performed by Firmware for its own purposes in anticipation of the pending
PLTRST# event.
6. Finally, set the HOST_RST_ACK virtual wire to '1'. The Chipset will respond with SUS_STAT# assertion (as
appropriate) followed by PLTRST# assertion low.
Source Description
ESPI_WAKE_ONLY This signal is asserted when the eSPI interface detects eSPI traffic. If
enabled, it may be used to wake the main clock domain when the chip
is in a sleep state.
Peripheral Channel
OOB Channel
Flash Channel
Source Description
eSPI Global
10.6 Description
The Intel® eSPI Interface is used by the system host to configure the chip and communicate with the logical devices
implemented in the design through a series of read/write registers.
Note: In order to use eSPI, software must individually configure the mux control for every GPIO associated with
an eSPI bus signal to the eSPI function. Pins are not automatically configured for eSPI operation when the
eSPI Controller is enabled.
eSPI
Physical
eSPI Slave Interface
Ch 0 Ch 2 Ch 3
Queue Queue Queue
The Flash Channel permits the EC to access the System SPI Flash through the eSPI interface.
The Out of Band (OOB) Channel enables messaging between the Out-Of-Band Processor in the system chipset and
the EC. This messaging is implemented by tunneling SMBus packets over the eSPI port.
The Peripheral Channel (PC) enables the system Host to read and write locations inside the EC. The PC encapsulates
legacy I/O operation as well as generic memory read and write operations. Like the Flash and the OOB Channels, all
PC accesses are multiplexed over the eSPI port.
The Virtual Wire Channel provides in-band emulation of sideband pin signals between the system Core Logic and the
EC, including the legacy SERIRQ interrupt signal to the system Host.
TABLE 10-7: SRAM BASE ADDRESS REGISTER DEFAULT VALUES, HOST CONFIG
Host LPC Host
EC Reset Size Access
Config Logical Device Address
Offset Default [7:4] [2:1]
Index [79:16]
ACh 3ACh SRAM BAR 0 0h 0h 0h 0h
B6h 3B6h SRAM BAR 1 0h 0h 0h 0h
11.1 Introduction
This chapter defines the mechanism to configure the device. Each logical device or block in the design has their own
set of configuration registers. The Global Configuration Registers are use for chip-level configuration. The chip’s Device
ID and Revision are located in the Global Configuration space and may be used to uniquely identify this chip.
11.2 Terminology
This section documents terms used locally in this chapter. Common terminology that is used in the chip specification is
captured in the Chip-Level Terminology section.
11.3 Interface
This block is designed to be accessed via the Host accessible Configuration Port.
Chip-Level
00h-2Fh Global Configuration Registers
Configuration Port
n ]
0:
s[
ice
ev
alD
gic
Lo
Note: Each logical device has a bank of Configuration registers that are accessible at offsets 30h to FFh via the
Configuration Port. The Logical Device number programmed in offset 07h determines which bank of con-
figuration registers is currently accessible.
11.4.3 RESETS
11.5 Interrupts
This block does not generate any interrupts.
11.7 Description
The Chip Configuration Registers are divided into two groups: Global Configuration Registers and Logical Device Con-
figuration registers. The following descriptions assume that the LPC interface has already been configured to operate
in CONFIG MODE.
• Global Configuration Registers are always accessible via the LPC Configuration Port.
• The Logical Device Configuration registers are only accessible via the LPC Configuration Port when the corre-
sponding Logical Device Number is loaded in the Logical Device Number register. The Logical Device Number
register is a Global Configuration Register.
Note: The data read from the Configuration Port Data register is undefined when CONFIG MODE is not enabled.
The Configuration Port is composed of an INDEX and DATA Register. The INDEX register is used as an address pointer
to an 8-bit configuration register and the DATA register is used to read or write the data value from the indexed config-
uration register. Once CONFIG MODE is enabled, reading the Configuration Port Data register will return the data value
that is in the indexed Configuration Register.
Note: If accessing the Global Configuration Registers, step (a) is not required.
Any write to an undefined or reserved Configuration register is terminated normally on the LPC bus with-
out any modification of state in the MEC170x. Any read to an undefined or reserved Configuration reg-
ister returns FFh
The following sections define the Global Configuration registers and the Logical Configuration registers.
Note: Device ID values are in Table 1-1, "MEC170x Feature List by Package", row 2.
Device ID for Device Revision values are in Table 11-5. Refer to errata sheet for the Device Revision value.
12.1 Introduction
The MEC170x keyboard controller uses the EC to produce a superset of the features provided by the industry-standard
8042 keyboard controller. The 8042 Emulated Keyboard Controller is a Host/EC Message Interface with hardware
assists to emulate 8042 behavior and provide Legacy GATEA20 support.
12.2 References
There are no references for this block.
12.3 Interface
This block is designed to be accessed externally via the pin interface and internally via a registered host interface.
Host Interface
Signal Description
Clock Inputs
Resets
Interrupts
Name Description
VTR This Power Well is used to power the registers and logic in this block.
Name Description
12.6.3 RESETS
Name Description
RESET_VCC This signal is asserted when the main power rail is off or held off by the
PWR_INV bit in the Power Reset Control Register.
RESET_HOST This signal is asserted when the main power rail is off or held off by the
PWR_INV bit in the Power Reset Control Register, and also when the
Host resets the Host-EC link via LRESET# or PLTRST#.
12.7 Interrupts
This section defines the Interrupt Sources generated from this block.
Source Description
KIRQ This interrupt source for the SIRQ logic, representing a Keyboard inter-
rupt, is generated when the PCOBF status bit is ‘1’.
MIRQ This interrupt source for the SIRQ logic, representing a Mouse interrupt,
is generated when the AUXOBF status bit is ‘1’.
Source Description
IBF Interrupt generated by the host writing either data or command to the
data register. This interrupt is asserted when the input buffer becomes
not empty (i.e., when the IBF flag goes to 1).
OBE Interrupt generated by the host reading either data or aux data from the
data register. This interrupt is asserted when the output buffer becomes
empty (i.e., when the OBF flag goes to 0).
12.9 Description
12.9.1 BLOCK DIAGRAM
Host EC
Access HOST_EC Data register
Access
LPC I/O Index =00 R
Write Data W D7 D6 D5 D4 D3 D2 D1 D0
Offset =10Ch
Status Register Write Aux Data
R R
D7 D6 D5 D4 D3 D2 D1 D0
3
PCOBF Register
OBF SET on EC Write to
Offset = 100h or 10Ch R
W
D7 D6 D5 D4 D3 D2 D1 D0
4
Offset 114h
LPC I/O Index 00h
1
This bit is reset by 4
LPCRESET and VTR_POR PCOBFEN = 1 PCOBF is contents of Bit 0, offset = 114h
PCOBFEN = 0 PCBOBF is set on EC Write of offset = 100 h
PCOBF is cleared on Host Read of LPC /IO index = 00h
OBFEN PCOBFEN
OBFEN AUXH
Data
R/W D[0:7] IBF Flag GATEA20 Comments
Byte
Data
R/W D[0:7] IBF Flag GATEA20 Comments
Byte
1 W D1 0 Q Invalid Sequence
1 W XX** 1 Q
1 W FF 1 Q
CMD !=D1
or
DATA
RESET [IBF=1]
S0
CMD = D1
[IBF=0]
CMD = FF
[IBF=0] CMD !=D1
or
CMD !=FF or
DATA CMD !=D1
[IBF=1] [IBF=1]
CMD = D1
[IBF=0] CMD = D1
S2 S1 [IBF=0]
Data
[IBF=0, Latch DIN
nIOW D SET
Q D SET
Q
24MHz
KRESET Gen
CLR Q CLR Q
nIOW
SAEN
64&AEN#
nIOW
SD[7:0] = D1
Data SET
Q
Address
SD[7:0] = FF D CLR Q IBF
IOW#
SD[7:0] = FE
AEN#&60
CPU RESET
ENAB P92
Port 92 Reg (D1)
SETGA20L Reg (Any WR)
D SET
Q
IOW#
AEN#&64 VCC D SET
Q
CLR Q GATEA20
14 s 6 s
Pulse KR ES ET
FE Command
(From KRESET G enerator SAEN CPU_RESET
Speed-up Logic)
ENAB P92
14 s 6 s
Offset 30h
Reset
Bits Description Type Default
Event
7:1 Reserved R - -
Offset 0h
Reset
Bits Description Type Default
Event
Offset 04h
Reset
Bits Description Type Default
Event
Offset 0h
Reset
Bits Description Type Default
Event
Offset 04h
Reset
Bits Description Type Default
Event
7:6 UD2 R 0h RESET_S
User-defined data. Readable and writable by the EC when written YS
by the EC at its EC-only alias.
5 AUXOBF R 0h RESET_S
Auxiliary Output Buffer Full. This bit is set to “1” whenever the EC YS
writes the EC AUX Data Register. This flag is reset to “0” whenever
the EC writes the EC Data Register.
4 UD1 R 0h RESET_S
User-defined data. Readable and writable by the EC when written YS
by the EC at its EC-only alias.
3 C/D R 0h RESET_S
Command Data. This bit specifies whether the input data register YS
contains data or a command (“0” = data, “1” = command). During a
Host command write operation (when the Host writes the
HOST_EC Data / CMD Register at offset 04h), this bit is set to “1”.
During a Host data write operation (when the Host writes the
HOST_EC Data / CMD Register at offset 0h), this bit is set to “0”.
2 UD0 R 0h RESET_
User-defined data. Readable and writable by the EC when written HOST
by the EC at its EC-only alias.
1 IBF R 0h RESET_S
Input Buffer Full. This bit is set to “1” whenever the Host writes data YS
or a command into the HOST_EC Data / CMD Registerr. When this
bit is set, the EC's IBF interrupt is asserted, if enabled. When the
EC reads the HOST_EC Data/CMD Register, this bit is automati-
cally reset and the interrupt is cleared.
Reset
Bits Description Type Default
Event
0 OBF R 0h RESET_S
Output Buffer Full. This bit is set when the EC writes a byte of Data YS
or AUX Data into the EC_HOST Data / AUX Data Register. When
the Host reads the HOST_EC Data / CMD Register, this bit is auto-
matically cleared by hardware and an OBE interrupt is generated.
12.15 EC Registers
Registers for this block are shown in the following summary table. Addresses for each register are determined by adding
the offset to the Base Address for each instance of the 8042 Emulated Keyboard Controller Block in the Block Overview
and Base Address Table in Section 3.0, "Device Inventory".
Offset 100h
Reset
Bits Description Type Default
Event
Offset 100h
Reset
Bits Description Type Default
Event
Offset 104h
Reset
Bits Description Type Default
Event
3 C/D R 0h RESET_
Command Data. This bit specifies whether the input data register SYS
contains data or a command. During a Host command write oper-
ation (when the Host writes the HOST_EC Data / CMD Register at
offset 04h), this bit is set to ‘1’. During a Host data write operation
(when the Host writes the HOST_EC Data / CMD Register at off-
set 0h), this bit is set to ‘0’.
1=Command
0=Data
1 IBF R 0h RESET_
Input Buffer Full. This bit is set to “1” whenever the Host writes data SYS
or a command into the HOST_EC Data / CMD Registerr. When this
bit is set, the EC's IBF interrupt is asserted, if enabled. When the
EC reads the Data/CMD Register, this bit is automatically reset and
the interrupt is cleared.
This bit is not reset on RESET_VCC. To clear this bit, firmware
must read the HOST2EC Data Register in the EC-Only address
space.
0 OBF R 0h RESET_
Output Buffer Full. This bit is set when the EC writes a byte of Data SYS
or AUX Data into the EC_HOST Data / AUX Data Register. When
the Host reads the HOST_EC Data / CMD Register, this bit is auto-
matically cleared by hardware and a OBE interrupt is generated.
This bit is not reset on RESET_VCC. To clear this bit, firmware
must read the HOST2EC Data Register in the EC-Only address
space.
Offset 108h
Reset
Bits Description Type Default
Event
Offset 10Ch
Reset
Bits Description Type Default
Event
Offset 114h
Reset
Bits Description Type Default
Event
7:1 Reserved R - -
Offset 30h
Reset
Bits Description Type Default
Event
7:1 Reserved R - -
The Base Address indicates where the first register can be accessed in a particular address space for a block instance.
Offset 0h
Reset
Bits Description Type Default
Event
7:2 Reserved R - -
12.18 EC Registers
Registers for this block are shown in the following summary table. Addresses for each register are determined by adding
the offset to the Base Address for each instance of the Port92-Legacy Block in the Block Overview and Base Address
Table in Section 3.0, "Device Inventory".
Offset 100h
Reset
Bits Description Type Default
Event
7:1 Reserved R - -
Offset 108h
Reset
Bits Description Type Default
Event
7:0 SETGA20L W - -
See Section 12.11.1, "GATE A20 Speedup" for information on this
register. A write to this register sets GATEA20 in the GATEA20
Control Register.
Offset 10Ch
Reset
Bits Description Type Default
Event
7:0 RSTGA20L W - -
See Section 12.11.1, "GATE A20 Speedup" for information on this
register. A write to this register sets GATEA20 in the GATEA20
Control Register.
13.1 Introduction
The ACPI Embedded Controller Interface (ACPI-ECI) is a Host/EC Message Interface. The ACPI specification defines
the standard hardware and software communications interface between the OS and an embedded controller. This inter-
face allows the OS to support a standard driver that can directly communicate with the embedded controller, allowing
other drivers within the system to communicate with and use the EC resources; for example, Smart Battery and AML
code.
The ACPI Embedded Controller Interface (ACPI-ECI) provides a four byte full duplex data interface which is a superset
of the standard ACPI Embedded Controller Interface (ACPI-ECI) one byte data interface. The ACPI Embedded Control-
ler Interface (ACPI-ECI) defaults to the standard one byte interface.
The MEC170x has two instances of the ACPI Embedded Controller Interface.
1. The EC host in Section 13.12, "Runtime Registers" and Section 13.13, "EC Registers" corresponds to the EC in
the ACPI specification. This interface is referred to elsewhere in this chapter as ACPI_EC.
2. The LPC host in Section 13.12, "Runtime Registers" and Section 13.13, "EC Registers" corresponds to the “Sys-
tem Host Interface to OS” in the ACPI specification. This interface is referred to elsewhere in this chapter as
ACPI_OS.
13.2 References
• Advanced Configuration and Power Interface Specification, Revision 4.0 June 16, 2009, Hewlett-Packard Corpo-
ration Intel Corporation Microsoft Corporation Phoenix Technologies Ltd. Toshiba Corporation
13.3 Terminology
Term Definition
ACPI_EC The EC host corresponding to the ACPI specification interface to the EC.
ACPI_OS The LPC host corresponding to the ACPI specification interface to the
“System Host Interface to OS”.
ACPI_OS terminology is not meant to distinguish the ACPI System Man-
agement from Operating System but merely the hardware path upstream
towards the CPU.
13.4 Interface
This block is designed to be accessed externally and internally via a register interface.
Signal Description
Power, Clocks and Reset
Interrupts
Name Description
VTR The logic and registers implemented in this block reside on this single
power well.
Name Description
RESET_SYS This signal resets all the logic and registers in this interface.
13.8 Interrupts
This section defines the Interrupt Sources generated from this block.
Source Description
EC_OBE This host interrupt is asserted when the OBF bit in the EC STATUS Reg-
ister is cleared to ‘0’.
Source Description
IBF Interrupt generated by the host writing either data or command to the
data register. This interrupt is asserted when the input buffer becomes
not empty (i.e., when the IBF flag goes to 1).
OBE Interrupt generated by the host reading either data or aux data from the
data register. This interrupt is asserted when the output buffer becomes
empty (i.e., when the OBF flag goes to 0).
Note: The usage model from the ACPI specification requires both SMI’s and SCI’s. The ACPI_OS SMI and SCI
interrupts are not implemented in the ACPI Embedded Controller Interface (ACPI-ECI). The SMI_EVT and
SCI_EVT bits in the OS STATUS OS Register are software flags and this block do not initiate SMI or SCI
events.
13.10 Description
The ACPI Embedded Controller Interface (ACPI-ECI) provides an APCI-EC interface that adheres to the ACPI specifi-
cation. The ACPI Embedded Controller Interface (ACPI-ECI) includes two modes of operation: Legacy Mode and Four-
byte Mode.
The ACPI Embedded Controller Interface (ACPI-ECI) defaults to Legacy Mode which provides single byte Full Duplex
operation. Legacy Mode corresponds to the ACPI specification functionality as illustrated in Figure 13-2, "Block Diagram
corresponding to the ACPI specification". The EC interrupts in Figure 13-2 are implemented as OBE and IBF. See Sec-
tion 13.8, "Interrupts".
Legacy Mode
Data
Single Byte
Full Duplex
Data flow in each
direction indipendent
Data
Single
Byte
System Command
EC
Host
Processor
Interface
Interface
to OS
Status
Control Register
Four-byte Mode
Data
0
1
2
3
Full Duplex
Data flow in each
direction indipendent
Data
0
1
2
System
3 EC
Host
Interface Processor
to OS Interface
Command
Status
Control Register
00h ACPI OS Data Register Byte 0 W 108h OS2EC Data EC Byte 0 Register R
Register
00h ACPI OS Data Register Byte 0 R 100h EC2OS Data EC Byte 0 Register W
Register
01h ACPI OS Data Register Byte 1 W 109h OS2EC Data EC Byte 1 Register R
Register
01h ACPI OS Data Register Byte 1 R 101h EC2OS Data EC Byte 1 Register W
Register
02h ACPI OS Data Register Byte 2 W 10Ah OS2EC Data EC Byte 2 Register R
Register
02h ACPI OS Data Register Byte 2 R 102h EC2OS Data EC Byte 2 Register W
Register
03h ACPI OS Data Register Byte 3 W 10Bh OS2EC Data EC Byte 3 Register R
Register
03h ACPI OS Data Register Byte 3 R 103h EC2OS Data EC Byte 3 Register W
Register
Table 13-7, "EC-Only Registers Summary" indicates the aliasing from EC-Only to Runtime registers. The “Host/EC
Access” column distinguishes the aliasing based on access type. See individual register descriptions for more details.
108h OS2EC Data EC Byte 0 Register R 00h ACPI OS Data Register Byte 0 W
Register
109h OS2EC Data EC Byte 1 Register R 01h ACPI OS Data Register Byte 1 W
Register
10Ah OS2EC Data EC Byte 2 Register R 02h ACPI OS Data Register Byte 2 W
Register
10Bh OS2EC Data EC Byte 3 Register R 03h ACPI OS Data Register Byte 3 W
Register
100h EC2OS Data EC Byte 0 Register W 00h ACPI OS Data Register Byte 0 R
Register
101h EC2OS Data EC Byte 1 Register W 01h ACPI OS Data Register Byte 1 R
Register
102h EC2OS Data EC Byte 2 Register W 02h ACPI OS Data Register Byte 2 R
Register
103h EC2OS Data EC Byte 3 Register W 03h ACPI OS Data Register Byte 3 R
Register
Note: The Runtime registers may be accessed by the EC but typically the Host will access the Runtime Registers
and the EC will access just the EC-Only registers.
The registers listed in the Runtime Register Summary table are for a single instance of the ACPI Embedded Controller
Interface (ACPI-ECI). Host access for each register listed in this table is defined as an offset in the Host address space
to the Block’s Base Address, as defined by the instance’s Base Address Register.
The EC address for each register is formed by adding the Base Address for each instance of the ACPI Embedded Con-
troller Interface (ACPI-ECI) shown in the Block Overview and Base Address Table in Section 3.0, "Device Inventory" to
the offset shown in the “Offset” column.
Offset 00h
Reset
Bits Description Type Default
Event
When the FOUR_BYTE_ACCESS bit in the OS Byte Control Register is cleared to ‘0’, the following access rules apply:
1. Writes to the ACPI OS Data Register Byte 0 Register sets the IBF bit in the OS STATUS OS Register.
2. Reads from the ACPI OS Data Register Byte 0 Register clears the OBF bit in the OS STATUS OS Register.
3. All writes to ACPI-OS DATA BYTES[3:1] complete without error but the data are not registered.
4. All reads from ACPI-OS DATA BYTES[3:1] return 00h without error.
5. Access to ACPI-OS DATA BYTES[3:1] has no effect on the IBF and OBF bits in the OS STATUS OS Register.
When the Four Byte Access bit in the OS Byte Control Register is set to ‘1’, the following access rules apply:
1. Writes to the ACPI OS Data Register Byte 3 Register sets the IBF bit in the OS STATUS OS Register.
2. Reads from the ACPI OS Data Register Byte 3 Register clears the OBF bit in the OS STATUS OS Register.
Offset 01h
Reset
Bits Description Type Default
Event
Offset 02h
Reset
Bits Description Type Default
Event
Offset 03h
Reset
Bits Description Type Default
Event
Offset 04h
Reset
Bits Description Type Default
Event
Writes to the this register also set the CMD and IBF bits in the OS
STATUS OS Register
Offset 04h
Reset
Bits Description Type Default
Event
7 UD0B R 0b RESET
User Defined _SYS
Offset 04h
Reset
Bits Description Type Default
Event
6 SMI_EVT R 0b RESET
This bit is set when an SMI event is pending; i.e., the ACPI_EC is _SYS
requesting an SMI query; This bit is cleared when no SMI events
are pending.
This bit is an ACPI_EC-maintained software flag that is set when
the ACPI_EC has detected an internal event that requires system
management interrupt handler attention. The ACPI_EC sets this
bit before generating an SMI.
Note: The usage model from the ACPI specification requires
both SMI’s and SCI’s. The ACPI_OS SMI and SCI
interrupts are not implemented in the ACPI Embedded
Controller Interface (ACPI-ECI). The SMI_EVT and
SCI_EVT bits in the OS STATUS OS Register are soft-
ware flags and this block do not initiate SMI or SCI
events.
5 SCI_EVT R 0b RESET
This bit is set by software when an SCI event is pending; i.e., the _SYS
ACPI_EC is requesting an SCI query; SCI Event flag is clear when
no SCI events are pending.
This bit is an ACPI_EC-maintained software flag that is set when
the embedded controller has detected an internal event that
requires operating system attention. The ACPI_EC sets this bit
before generating an SCI to the OS.
Note: The usage model from the ACPI specification requires
both SMI’s and SCI’s. The ACPI_OS SMI and SCI
interrupts are not implemented in the ACPI Embedded
Controller Interface (ACPI-ECI). The SMI_EVT and
SCI_EVT bits in the OS STATUS OS Register are soft-
ware flags and this block do not initiate SMI or SCI
events.
4 BURST R 0b RESET
The BURST bit is set when the ACPI_EC is in Burst Mode for _SYS
polled command processing; the BURST bit is cleared when the
ACPI_EC is in Normal mode for interrupt-driven command pro-
cessing.
The BURST bit is an ACPI_EC-maintained software flag that indi-
cates the embedded controller has received the Burst Enable
command from the host, has halted normal processing, and is
waiting for a series of commands to be sent from the host. Burst
Mode allows the OS or system management handler to quickly
read and write several bytes of data at a time without the over-
head of SCIs between commands.
The BURST bit is maintained by ACPI_EC software, only.
Offset 04h
Reset
Bits Description Type Default
Event
3 CMD R 0b RESET
This bit is set when the OS2EC Data EC Byte 0 Register contains _SYS
a command byte written into ACPI OS COMMAND Register; this
bit is cleared when the OS2EC DATA BYTES[3:0] contains a data
byte written into the ACPI-OS DATA BYTES[3:0].
2 UD1B R 0b RESET
User Defined _SYS
Offset 04h
Reset
Bits Description Type Default
Event
1 IBF R 0h RESET
The Input Buffer Full bit is set to indicate that a the ACPI_OS has _SYS
written a command or data to the ACPI_EC and that data is ready.
This bit is automatically cleared when data has been read by the
ACPI_EC.
Note: The setting and clearing of this IBF varies depending
on the setting of the following bits: CMD bit in this reg-
ister and FOUR_BYTE_ACCESS bit in the OS Byte
Control Register. Three scenarios follow:
1. The IBF is set when the ACPI_OS writes to the ACPI OS
COMMAND Register. This same write autonomously sets
the CMD bit in this register.
The IBF is cleared if the CMD bit in this register is set and the
ACPI_EC reads from the OS2EC Data EC Byte 0 Register.
Note: When CMD bit in this register is set the FOUR_BYTE_-
ACCESS bit in the OS Byte Control Register has no
impact on the IBF bit behavior.
2. A write by the to the ACPI_OS to the ACPI OS Data Register
Byte 0 Register sets the IBF bit if the FOUR_BYTE_AC-
CESS bit in the OS Byte Control Register is in the cleared to
‘0’ state prior to this write. This same write autonomously
clears the CMD bit in this register.
A read of the OS2EC Data EC Byte 0 Register clears the IBF bit if
the FOUR_BYTE_ACCESS bit in the OS Byte Control Register is
in the cleared to ‘0’ state prior to this read.
3. A write by the to the ACPI_OS to the ACPI OS Data Register
Byte 3 Register sets the IBF bit if the FOUR_BYTE_AC-
CESS bit in the OS Byte Control Register is in the set to ‘1’
state prior to this write. This same write autonomously
clears the CMD bit in this register.
A read of the OS2EC Data EC Byte 3 Register clears the IBF bit if
the FOUR_BYTE_ACCESS bit in the OS Byte Control Register is
in the set to ‘1’ state prior to this read.
Offset 04h
Reset
Bits Description Type Default
Event
0 OBF R 0h RESET
The Output Buffer Full bit is set to indicate that a the ACPI_EC has _SYS
written a data to the ACPI_OS and that data is ready. This bit is
automatically cleared when all the data has been read by the
ACPI_OS.
Note: The setting and clearing of this OBF varies depending
on the setting FOUR_BYTE_ACCESS bit in the OS
Byte Control Register. Two scenarios follow:
1. The OBF bit is set if the Four Byte Access bit in the OS Byte
Control Register is ‘0’ when the ACPI_EC writes to the
EC2OS Data EC Byte 0 Register.
The OBF is cleared if the Four Byte Access bit in the OS Byte
Control Register is cleared to ‘0’ when the ACPI_OS reads from
the ACPI OS Data Register Byte 0 Register.
2. The OBF is set if the Four Byte Access bit in the OS Byte
Control Register is set to ‘1’ when the ACPI_EC writes to the
EC2OS Data EC Byte 3 Register.
The OBF is cleared if the Four Byte Access bit in the OS Byte
Control Register is set to ‘1’ when the ACPI_OS reads from the
ACPI OS Data Register Byte 3 Register.
Offset 05
Reset
Bits Description Type Default
Event
7:1 Reserved R - -
0 FOUR_BYTE_ACCESS R 0b RESET
When this bit is set to ‘1’, the ACPI Embedded Controller Interface _SYS
(ACPI-ECI) accesses four bytes through the ACPI-OS DATA
BYTES[3:0].
When this bit is cleared to ‘0’, the ACPI Embedded Controller Inter-
face (ACPI-ECI) accesses one byte through the ACPI OS Data
Register Byte 0 Register. The corresponds to Legacy Mode
described in Section 13.10, "Description".
This bit effects the behavior of the IBF and OBF bits in the OS STA-
TUS OS Register. See also Section 13.12.1.1, "ACPI-OS DATA
BYTES[3:0]", Section 13.13.1.1, "OS2EC DATA BYTES[3:0]", and
Section 13.13.5.1, "EC2OS DATA BYTES[3:0]" for detailed
description of access rules.
Note: The ACPI_OS access Base Address Register (BAR) should be configured to match the access width
selected by the Four Byte Access bit in the OS Byte Control Register. This BAR in not described in this
chapter.
13.13 EC Registers
Registers for this block are shown in the following summary table. Addresses for each register are determined by adding
the offset to the Base Address for each instance of the ACPI Embedded Controller Interface (ACPI-ECI) Block in the
Block Overview and Base Address Table in Section 3.0, "Device Inventory".
Offset 108h
Reset
Bits Description Type Default
Event
When the FOUR_BYTE_ACCESS bit in the OS Byte Control Register is set to ‘1’, the following access rules apply:
1. Writes to the OS2EC DATA BYTES[3:0] have no effect on the OBF bit in the OS STATUS OS Register.
2. Reads from the OS2EC Data EC Byte 3 Register clears the IBF bit in the OS STATUS OS Register.
Offset 109h
Reset
Bits Description Type Default
Event
Offset 10Ah
Reset
Bits Description Type Default
Event
Offset 10Bh
Reset
Bits Description Type Default
Event
Offset 100h
Reset
Bits Description Type Default
Event
When the FOUR_BYTE_ACCESS bit in the OS Byte Control Register is set to ‘1’, the following access rules apply:
1. Writes to the EC2OS Data EC Byte 3 Register set the OBF bit in the OS STATUS OS Register.
2. Reads from the EC2OS DATA BYTES[3:0] have no effect on the IBF bit in the OS STATUS OS Register.
Offset 101h
Reset
Bits Description Type Default
Event
Offset 102h
Reset
Bits Description Type Default
Event
Offset 103h
Reset
Bits Description Type Default
Event
Offset 104h
Reset
Bits Description Type Default
Event
3 CMD R 0b RESET
See the CMD bit in the OS STATUS OS Register for the bit _SYS
description.
1 IBF R 0h RESET
See the IBF bit in the OS STATUS OS Register for the bit descrip- _SYS
tion.
0 OBF R 0h RESET
See the OBF bit in the OS STATUS OS Register for the bit descrip- _SYS
tion.
Note: The IBF and OBF bits are not de-asserted by hardware when the host is powered off, or the LPC interface
powers down; for example, following system state changes S3->S0, S5->S0, G3-> S0. For further informa-
tion on how these bits are cleared, refer to IBF and OBF bit descriptions in the STATUS OS-Register defi-
nition.
Offset 105h
Reset
Bits Description Type Default
Event
7:1 Reserved R - -
14.1 Introduction
The MEC170x supports ACPI as described in this section. These features comply with the ACPI Specification through
a combination of hardware and EC software.
14.2 References
ACPI Specification, Revision 1.0
14.3 Terminology
None
14.4 Interface
This block is an IP block designed to be incorporated into a chip. It is designed to be accessed externally via the pin
interface and internally via a registered host interface. The following diagram illustrates the various interfaces to the
block.
Host Interface
Signal Description
Clocks
Resets
Interrupts
14.8 Interrupts
This section defines the Interrupt Sources generated from this block.
14.10 Description
This section describes the functions of the ACPI PM1 Block in more detail.
The MEC170x implements the ACPI fixed registers but includes only those bits that apply to the power button sleep
button and RTC alarm events. The ACPI WAK_STS, SLP_TYP, and SLP_EN bits are also supported.
The MEC170x can generate SCI Interrupts to the Host. The functions described in the following sub-sections can gen-
erate a SCI event on the EC_SCI# pin. In the MEC170x, an SCI event is considered the same as an ACPI wakeup or
runtime event.
The SLPBTN_STS bit is set by the Host to enable the generation of an SCI
due to the sleep button event. The status bit is set by the EC when it gener-
ates a sleep button event and is cleared by the Host writing a ‘1’ to this bit
(writing a ‘0’ has no effect); it can also be cleared by the EC. If the enable
bit is set, the EC will generate an SCI power management event.
The RTC_STS bit is set by the Host to enable the generation of an SCI due
to the RTC alarm event. The status bit is set by the EC when the RTC gen-
erates an alarm event and is cleared by the Host writing a ‘1’ to this bit (writ-
ing a ‘0’ has no effect); it can also be cleared by the EC. If the enable bit is
set, the EC will generate an SCI power management event.
Figure 14-2 describes the relationship of PM1 Status and Enable bits to the EC_SCI# pin.
PM1_STS 2 PM1_EN 2
Register Register
PWRBTN_STS
SLPBTN_STS
EC_SCI#
RTC_STS
EC_PM_STS Register
EC_SCI_STS
Offset 00h
Reset
Bits Description Type Default
Event
7:0 Reserved R - -
Offset 01h
Reset
Bits Description Type Default
Event
7 WAK_STS R/WC 00h RESET_
This bit can be set or cleared by the EC. The Host writing a one to (Note 1) SYS
this bit can also clear this bit.
6:4 Reserved R - -
3 PWRBTNOR_STS R/WC 00h RESET_
This bit can be set or cleared by the EC to simulate a Power button (Note 1) SYS
override event status if the power is controlled by the EC. The Host
writing a one to this bit can also clear this bit. The EC must generate
the associated hardware event under software control.
2 RTC_STS R/WC 00h RESET_
This bit can be set or cleared by the EC to simulate a RTC status. (Note 1) SYS
The Host writing a one to this bit can also clear this bit. The EC must
generate the associated SCI interrupt under software control.
1 SLPBTN_STS R/WC 00h RESET_
This bit can be set or cleared by the EC to simulate a Sleep button (Note 1) SYS
status if the sleep state is controlled by the EC. The Host writing a
one to this bit can also clear this bit. The EC must generate the
associated SCI interrupt under software control.
0 PWRBTN_STS R/WC 00h RESET_
This bit can be set or cleared by the EC to simulate a Power button (Note 1) SYS
status if the power is controlled by the EC. The Host writing a one to
this bit can also clear this bit. The EC must generate the associated
SCI interrupt under software control.
Note 1: These bits are set/cleared by the EC directly i.e., writing ‘1’ sets the bit and writing ‘0’ clears it. These bits
can also be cleared by the Host software writing a one to this bit position and by RESET_SYS. Writing a 0
by the Host has no effect.
Offset 02h
Reset
Bits Description Type Default
Event
7:0 Reserved R - -
Offset 03h
Reset
Bits Description Type Default
Event
7:3 Reserved R - -
2 RTC_EN R/W 00h RESET_
This bit can be read or written by the Host. It can be read by the EC. (Note 1) SYS
1 SLPBTN_EN R/W 00h RESET_
This bit can be read or written by the Host. It can be read by the EC. (Note 1) SYS
0 PWRBTN_EN R/W 00h RESET_
This bit can be read or written by the Host. It can be read by the EC. (Note 1) SYS
Note 1: These bits are read-only by the EC.
Offset 04h
Reset
Bits Description Type Default
Event
7:0 Reserved R 0h RESET_
SYS
Offset 05h
Reset
Bits Description Type Default
Event
7:6 Reserved R - -
5 SLP_EN See 00h RESET_
See Table 14-7. Table 14 SYS
-7.
4:2 SLP_TYP R/W 00h RESET_
These bits can be set or cleared by the Host, read by the EC. (Note 1) SYS
1 PWRBTNOR_EN R/W 00h RESET_
This bit can be set or cleared by the Host, read by the EC. (Note 1) SYS
0 Reserved R - -
Note 1: These bits are read-only by the EC.
Offset 06h
Reset
Bits Description Type Default
Event
7:0 Reserved R - -
Offset 07h
Reset
Bits Description Type Default
Event
7:0 Reserved R - -
14.12 EC Registers
Registers for this block are shown in the following summary table. Addresses for each register are determined by adding
the offset to the Base Address for each instance of the ACPI PM1 Block Block in the Block Overview and Base Address
Table in Section 3.0, "Device Inventory".
Note: The Power Management Status, Enable and Control registers in Table 14-8, "Register Summary" are
described in Section 14.11, "Runtime Registers".
Offset 110h
Reset
Bits Description Type Default
Event
7:1 UD R/W 00h RESET_
SYS
0 EC_SCI_STS R/W 00h RESET_
If the EC_SCI_STS bit is “1”, an interrupt is generated on the SYS
EC_SCI# pin.
Note: This register is only accessed by the EC. There is no host access to this register.
15.1 Introduction
The Embedded Memory Interface (EMI) provides a standard run-time mechanism for the system host to communicate
with the Embedded Controller (EC) and other logical components. The Embedded Memory Interface includes 13 byte-
addressable registers in the Host’s address space, as well as 22 bytes of registers that are accessible only by the EC.
The Embedded Memory Interface can be used by the Host to access bytes of memory designated by the EC without
requiring any assistance from the EC. The EC may configure these regions of memory as read-only, write-only, or
read/write capable.
15.2 Interface
This block is designed to be accessed externally and internally via a register interface.
Host Interface
Signal Description
Clock Inputs
Resets
Interrupts
15.5.3 RESETS
TABLE 15-2: RESET SIGNALS
Name Description
RESET_SYS This reset signal resets all the logic and register in this block.
15.6 Interrupts
This section defines the Interrupt Sources generated from this block.
HOST EMI EC
Embedded Memory
Addr Addr
Address
The Embedded Memory Interface (EMI) is composed of a mailbox, a direct memory interface, and an Application ID
register.
The mailbox contains two registers, the HOST-to-EC Mailbox Register and the EC-to-HOST Mailbox Register, that act
as a communication portal between the system host and the embedded controller. When the HOST-to-EC Mailbox Reg-
ister is written an interrupt is generated to the embedded controller. Similarly, when the EC-to-HOST Mailbox Register
is written an interrupt is generated to the system host. The source of the system host interrupt may be read in the Inter-
rupt Source Register. These interrupt events may be individually prevented from generating a Host Event via the Inter-
rupt Mask Register.
The direct memory interface, which is composed of a byte addressable 16-bit EC Address Register and a 32-bit EC
Data Register, permits the Host to read or write a portion of the EC’s internal address space. The embedded controller
may enable up to two regions of the EC’s internal address space to be exposed to the system host. The system host
may access these memory locations without intervention or assistance from the EC.
The Embedded Memory Interface can be configured so that data transfers between the Embedded Memory Interface
data bytes and the 32- bit internal address space may be multiple bytes, while Host I/O is always executed a byte at a
time.
When the Host reads one of the four bytes in the Embedded Memory Interface data register, data from the internal 32-
bit address space, at the address defined by the Embedded Memory Interface address register, is returned to the Host.
This read access will load 1, 2, or 4 bytes into the Data register depending on the configuration of the ACCESS_TYPE
bits. Similarly, writing one of the four bytes in the data register will write the corresponding byte(s) from the data register
into the internal 32-bit address space as indicated by the ACCESS_TYPE bits. This configuration option is done to
ensure that data the EC treats as 16-bit or 32-bit will be consistent in the Host, even though one byte of the data may
change between two or more 8-bit accesses by the Host.
In addition, there is an auto-increment function for the Embedded Memory Interface address register. When enabled,
the Host can read or write blocks of memory in the 32- bit internal address space by repeatedly accessing the Embedded
Memory Interface data register, without requiring Host updates to the Embedded Memory Interface address register.
Finally, the Application ID Register may be used by the host to provide an arbitration mechanism if more than one soft-
ware thread requires access through the EMI interface. See Section 15.8.4, "Embedded Memory Interface Usage" for
more details.
No Host Access
Region_1_Read_Limit
Region_1_Write_Limit
Host Read/Write
Region_1_Base_Address
No Host Access
Region_0_Read_Limit
Region_0_Write_Limit
Host Read/Write
Region_0_Base_Address
No Host Access
0000_0000h
The Base addresses, the Read limits and the Write limits are defined by registers that are in the EC address space and
cannot be accessed by the Host. In each region, the Read limit need not be greater than the Write limit. The regions
can be contiguous or overlapping. For example, if the Region 0 Read limit is set to 0 and the Write limit is set to a positive
number, then the Embedded Memory interface defines a region in the EC memory that the EC can read and write but
is write-only for the host. This might be useful for storage of security data, which the Host might wish to send to the EC
but should not be readable in the event a virus invades the Host.
Each window into the EC memory can be as large as 32k bytes in the 32-bit internal address space.
Note: The protocol used to pass commands back and forth through the Embedded Memory Interface Registers
Interface is left to the System designer. Microchip can provide an application example of working code in
which the host uses the Embedded Memory Interface registers to gain access to all of the EC registers.
Offset 00h
Reset
Bits Description Type Default
Event
7:0 HOST_EC_MBOX R/W 0h RESET_
8-bit mailbox used communicate information from the system host to SYS
the embedded controller. Writing this register generates an event to
notify the embedded controller.
The embedded controller has the option of clearing some or all of the
bits in this register. This is dependent on the protocol layer imple-
mented using the EMI Mailbox. The host must know this protocol to
determine the meaning of the value that will be reported on a read.
Offset 01h
Reset
Bits Description Type Default
Event
7:0 EC_HOST_MBOX R/WC 0h RESET_
8-bit mailbox used communicate information from the embedded SYS
controller to the system host. Writing this register generates an event
to notify the system host.
The system host has the option of clearing some or all of the bits in
this register. This is dependent on the protocol layer implemented
using the EMI Mailbox. The embedded controller must know this pro-
tocol to determine the meaning of the value that will be reported on a
read.
This bit field is aliased to the EC_HOST_MBOX bit field in the EC-to-
HOST Mailbox Register
Offset 02h
Reset
Bits Description Type Default
Event
7:2 EC_ADDRESS_LSB R/W 0h RESET_
This field defines bits[7:2] of EC_Address [15:0]. Bits[1:0] of the SYS
EC_Address are always forced to 00b.
Reset
Bits Description Type Default
Event
1:0 ACCESS_TYPE R/W 0h RESET_
This field defines the type of access that occurs when the EC Data SYS
Register is read or written.
Offset 03h
Reset
Bits Description Type Default
Event
7 REGION R/W 0h RESET_
The field specifies which of two segments in the 32-bit internal SYS
address space is to be accessed by the EC_Address[14:2] to gener-
ate accesses to the memory.
Offset 04h
Reset
Bits Description Type Default
Event
7:0 EC_DATA_BYTE_0 R/W 0h RESET_
This is byte 0 (Least Significant Byte) of the 32-bit EC Data Register. SYS
Offset 05h
Reset
Bits Description Type Default
Event
7:0 EC_DATA_BYTE_1 R/W 0h RESET_
This is byte 1 of the 32-bit EC Data Register. SYS
Offset 06h
Reset
Bits Description Type Default
Event
7:0 EC_DATA_BYTE_2 R/W 0h RESET_
This is byte 2 of the 32-bit EC Data Register. SYS
Offset 07h
Reset
Bits Description Type Default
Event
7:0 EC_DATA_BYTE_3 R/W 0h RESET_
This is byte 3 (Most Significant Byte) of the 32-bit EC Data Register. SYS
Offset 08h
Reset
Bits Description Type Default
Event
7:1 EC_SWI_LSB R/WC 0h RESET_
EC Software Interrupt Least Significant Bits. These bits are software SYS
interrupt bits that may be set by the EC to notify the host of an event.
The meaning of these bits is dependent on the firmware implemen-
tation.
Each bit in this field is cleared when written with a ‘1b’. The ability to
clear the bit can be disabled by the EC if the corresponding bit in the
Host Clear Enable Register is set to ‘0b’. This may be used by firm-
ware for events that cannot be cleared while the event is still active.
Reset
Bits Description Type Default
Event
0 EC_WR R 0h RESET_
EC Mailbox Write. This bit is set when the EC-to-HOST Mailbox SYS
Register has been written by the EC at offset 01h of the EC-Only
registers.
Note: there is no corresponding mask bit in the Interrupt Mask LSB
Register.
Offset 09h
Reset
Bits Description Type Default
Event
7:0 EC_SWI_MSB R/WC 0h RESET_
EC Software Interrupt Most Significant Bits. These bits are software SYS
interrupt bits that may be set by the EC to notify the host of an event.
The meaning of these bits is dependent on the firmware implemen-
tation.
Each bit in this field is cleared when written with a ‘1b’. The ability to
clear the bit can be disabled by the EC. if the corresponding bit in the
Host Clear Enable Register is set to ‘0b’. This may be used by firm-
ware for events that cannot be cleared while the event is still active.
Offset 0Ah
Reset
Bits Description Type Default
Event
7:1 EC_SWI_EN_LSB R/W 0h RESET_
EC Software Interrupt Enable Least Significant Bits. Each bit that is SYS
set to ‘1b’ in this field enables the generation of a Host Event inter-
rupt by the corresponding bit in the EC_SWI field in the Interrupt
Source LSB Register.
0 TEST R/W 0h RESET_
SYS
Offset 0Bh
Reset
Bits Description Type Default
Event
7:0 EC_SWI_EN_MSB R/W 0h RESET_
EC Software Interrupt Enable Most Significant Bits. Each bit that is SYS
set to ‘1b’ in this field enables the generation of a Host Event inter-
rupt by the corresponding bit in the EC_SWI field in the Interrupt
Source MSB Register.
Offset 0Ch
Reset
Bits Description Type Default
Event
7:0 APPLICATION_ID R/W 0h RESET_
When this field is 00h it can be written with any value. When set to a SYS
non-zero value, writing that value will clear this register to 00h.
When set to a non-zero value, writing any value other than the cur-
rent contents will have no effect.
15.10 EC Registers
Registers for this block are shown in the following summary table. Addresses for each register are determined by adding
the offset to the Base Address for each instance of the Embedded Memory Interface (EMI) Block in the Block Overview
and Base Address Table in Section 3.0, "Device Inventory".
Offset 100h
Reset
Bits Description Type Default
Event
7:0 HOST_EC_MBOX R/WC 0h RESET_
8-bit mailbox used communicate information from the system host to SYS
the embedded controller. Writing this register generates an event to
notify the embedded controller.
Offset 01h
Reset
Bits Description Type Default
Event
7:0 EC_HOST_MBOX R/W 0h RESET_
8-bit mailbox used communicate information from the embedded SYS
controller to the system host. Writing this register generates an
event to notify the system host.
The system host has the option of clearing some or all of the bits in
this register. This is dependent on the protocol layer implemented
using the EMI Mailbox. The embedded controller must know this
protocol to determine the meaning of the value that will be reported
on a read.
Offset 104h
Reset
Bits Description Type Default
Event
31:2 MEMORY_BASE_ADDRESS_0 R/W 0h RESET_
This memory base address defines the beginning of region 0 in the SYS
Embedded Controller’s 32-bit internal address space. Memory allo-
cated to region 0 is intended to be shared between the Host and the
EC. The region defined by this base register is used when bit 15 of
the EC Address Register is 0. The access will be to a memory loca-
tion at an offset defined by the EC_Address relative to the beginning
of the region defined by this register. Therefore, a read or write to the
memory that is triggered by the EC Data Register will occur at Mem-
ory_Base_Address_0 + EC_Address.
1:0 Reserved R - -
Offset 108h
Reset
Bits Description Type Default
Event
15 Reserved R - -
14:2 MEMORY_READ_LIMIT_0 R/W 0h RESET_
Whenever a read of any byte in the EC Data Register is attempted, SYS
and bit 15 of EC_Address is 0, the field EC_Address[14:2] in the
EC_Address_Register is compared to this field. As long as EC_Ad-
dress[14:2] is less than this field the EC_Data_Register will be
loaded from the 32-bit internal address space.
1:0 Reserved R - -
Offset 10Ah
Reset
Bits Description Type Default
Event
15 Reserved R - -
14:2 MEMORY_WRITE_LIMIT_0 R/W 0h RESET_
Whenever a write of any byte in EC DATA Register is attempted and SYS
bit 15 of EC_Address is 0, the field EC_ADDRESS_MSB in the
EC_Address Register is compared to this field. As long as EC_Ad-
dress[14:2] is less than Memory_Write_Limit_0[14:2] the addressed
bytes in the EC DATA Register will be written into the internal 32-bit
address space. If EC_Address[14:2] is greater than or equal to the
Memory_Write_Limit_0[14:2] no writes will take place.
1:0 Reserved R - -
Offset 10Ch
Reset
Bits Description Type Default
Event
31:2 MEMORY_BASE_ADDRESS_1 R/W 0h RESET_
This memory base address defines the beginning of region 1 in the SYS
Embedded Controller’s 32-bit internal address space. Memory allo-
cated to region 1 is intended to be shared between the Host and the
EC. The region defined by this base register is used when bit 15 of
the EC Address Register is 1. The access will be to a memory loca-
tion at an offset defined by the EC_Address relative to the beginning
of the region defined by this register. Therefore, a read or write to the
memory that is triggered by the EC Data Register will occur at Mem-
ory_Base_Address_1 + EC_Address.
1:0 Reserved R - -
Offset 110h
Reset
Bits Description Type Default
Event
15 Reserved R - -
14:2 MEMORY_READ_LIMIT_1 R/W 0h RESET_
Whenever a read of any byte in the EC Data Register is attempted, SYS
and bit 15 of EC_ADDRESS is 1, the field EC_ADDRESS in the
EC_Address_Register is compared to this field. As long as EC_AD-
DRESS is less than this value, the EC_Data_Register will be loaded
from the 32-bit internal address space.
1:0 Reserved R - -
Offset 112h
Reset
Bits Description Type Default
Event
15 Reserved R - -
14:2 MEMORY_WRITE_LIMIT_1 R/W 0h RESET_
Whenever a write of any byte in EC DATA Register is attempted and SYS
bit 15 of EC_Address is 1, the field EC_Address[14:2] in the EC_Ad-
dress Register is compared to this field. As long as EC_Ad-
dress[14:2] is less than Memory_Write_Limit_1[14:2] the addressed
bytes in the EC DATA Register will be written into the internal 32-bit
address space. If EC_Address[14:2] is greater than or equal to the
Memory_Write_Limit_1[14:2] no writes will take place.
1:0 Reserved R - -
Offset 114h
Reset
Bits Description Type Default
Event
15:1 EC_SWI_SET R/WS 0h RESET_
EC Software Interrupt Set. This register provides the EC with a SYS
means of updating the Interrupt Source Registers. Writing a bit in
this field with a ‘1b’ sets the corresponding bit in the Interrupt Source
Register to ‘1b’. Writing a bit in this field with a ‘0b’ has no effect.
Reading this field returns the current contents of the Interrupt Source
Register.
0 Reserved R - -
Offset 116h
Reset
Bits Description Type Default
Event
15:1 HOST_CLEAR_ENABLE R/W 0h RESET_
When a bit in this field is ‘0b’, the corresponding bit in the Interrupt SYS
Source Register cannot be cleared by writes to the Interrupt Source
Register. When a bit in this field is ‘1b’, the corresponding bit in the
Interrupt Source Register can be cleared when that register bit is
written with a ‘1b’.
These bits allow the EC to control whether the status bits in the Inter-
rupt Source Register are based on an edge or level event.
0 Reserved R - -
16.1 Overview
The Mailbox provides a standard run-time mechanism for the host to communicate with the Embedded Controller (EC)
16.2 References
No references have been cited for this feature.
16.3 Terminology
There is no terminology defined for this section.
16.4 Interface
This block is designed to be accessed externally via the pin interface and internally via a registered host interface.
Mailbox Interface
Host Interface
Signal Description
Interrupts
16.8 Interrupts
16.10 Description
HOST-to-EC
36 8-bit Mailbox
Host CPU EC
Registers
EC-to-HOST
SMI
SIRQ Mapping
MBX_Host_SIRQ
Mailbox Registers
MBX_Host_SMI
SIRQ
GPIO
Note: The protocol used to pass commands back and forth through the Mailbox Registers Interface is left to the
System designer. Microchip can provide an application example of working code in which the host uses the
Mailbox registers to gain access to all of the EC registers.
Offset 0h
Reset
Bits Description Type Default
Event
7:0 INDEX R/W 0h RESET_
The index into the mailbox registers listed in Table 16-8, "Register VCC
Summary".
16.11.2 MBX_DATA REGISTER
Offset 01h
Reset
Bits Description Type Default
Event
7:0 DATA R/W 0h RESET_
Data port used to access the registers listed in Table 16-8, "Register VCC
Summary".
16.12 EC Registers
Registers for this block are shown in the following summary table. Addresses for each register are determined by adding
the offset shown in the “EC Offset” column to the Base Address for each instance of the Mailbox Interface Block in the
Block Overview and Base Address Table in Section 3.0, "Device Inventory". In addition, the registers can be accessed
through the Host Access Port, at the indexes listed in the following tables as “MBX_INDEX”.
Offset 100h
MBX_ 00h
INDEX
Reset
Bits Description Type Default
Event
7:0 HOST_EC_MBOX Host 0h RESET_
If enabled, an interrupt to the EC marked by the MBX bit in the Inter- Access SYS
rupt Aggregator will be generated whenever the Host writes this reg- Port:
ister. The interrupt is cleared when this register is read by the EC. R/W
Offset 104h
MBX_ 01h
INDEX
Reset
Bits Description Type Default
Event
7:0 EC_HOST_MBOX Host 0h RESET_
An EC write to this register will set bit EC_WR in the SMI Interrupt Access SYS
Source Register to ‘1b’. If enabled, this will generate a Host SMI or a Port:
Host SERIRQ. The SERIRQ is cleared when this register is read by R/WC
the Host.
EC:
This register is cleared when written with FFh. R/W
Offset 108h
MBX_ 02h
INDEX
Reset
Bits Description Type Default
Event
7:1 EC_SWI Host 0h RESET_
EC Software Interrupt. An SERIRQ to the Host is generated when Access SYS
any bit in this register when this bit is set to ‘1b’ and the correspond- Port:
ing bit in the SMI Interrupt Mask Register register is ‘1b’. R/WC
EC:
This field is Read/Write when accessed by the EC at the EC offset. R/W
When written through the Host Access Port, each bit in this field is
cleared when written with a ‘1b’. Writes of ‘0b’ have no effect.
MBX_ 02h
INDEX
Reset
Bits Description Type Default
Event
0 EC_WR Host 0h RESET_
EC Mailbox Write. This bit is set automatically when the EC-to-Host Access SYS
Mailbox Register has been written. An SMI or SERIRQ to the Host is Port:
generated when n this bit is ‘1b’ and the corresponding bit in the SMI R
Interrupt Mask Register register is ‘1b’. EC:
-
This bit is automatically cleared by a read of the EC-to-Host Mailbox
Register through the Host Access Port.
This bit is read-only when read through the Host Access Port. It is
neither readable nor writable directly by the EC when accessed at
the EC offset.
Offset 10Ch
MBX_ 03h
INDEX
Reset
Bits Description Type Default
Event
7:1 EC_SWI_EN R/W 0h RESET_
EC Software Interrupt Enable. If this bit is ‘1b’, the bit EC_WR in the SYS
SMI Interrupt Source Register is enabled for the generation of SER-
IRQ or nSMI events.
0 EC_WR_EN R/W 0h RESET_
EC Mailbox Write.Interrupt Enable. Each bit in this field that is ‘1b’ SYS
enables the generation of SERIRQ interrupts when the correspond-
ing bit in the EC_SWI field in the SMI Interrupt Source Register is
‘1b’.
17.1 Introduction
The 16550 UART (Universal Asynchronous Receiver/Transmitter) is a full-function Serial Port that supports the stan-
dard RS-232 Interface.
17.2 References
• EIA Standard RS-232-C specification
17.3 Interface
This block is designed to be accessed externally via the pin interface and internally via a registered host interface.
UART
Host Interface
Signal Description
Power, Clocks and Reset
Interrupts
17.7 Interrupts
This section defines the Interrupt Sources generated from this block.
Offset 0h (DLAB=0)
Reset
Bits Description Type Default
Event
Offset 0h (DLAB=0)
Reset
Bits Description Type Default
Event
Reset
Bits Description Type Default
Event
Reset
Bits Description Type Default
Event
If CLK_SRC is ‘0’:
• 0=The baud clock is derived from the 1.8432MHz.
• 1=IThe baud clock is derived from the 24MHz.
If CLK_SRC is ‘1’:
• This bit has no effect
Reset
Bits Description Type Default
Event
7:4 Reserved R - -
Offset 02h
Reset
Bits Description Type Default
Event
5:4 Reserved R - -
3 DMA_MODE_SELECT W 0h RESET
Writing to this bit has no effect on the operation of the UART. The
RXRDY and TXRDY pins are not available on this chip.
2 CLEAR_XMIT_FIFO W 0h RESET
Setting this bit to a logic “1” clears all bytes in the XMIT FIFO and
resets its counter logic to “0”. The shift register is not cleared. This
bit is self-clearing.
1 CLEAR_RECv_FIFO W 0h RESET
Setting this bit to a logic “1” clears all bytes in the RCVR FIFO and
resets its counter logic to “0”. The shift register is not cleared. This
bit is self-clearing.
0 EXRF W 0h RESET
Enable XMIT and RECV FIFO. Setting this bit to a logic “1” enables
both the XMIT and RCVR FIFOs. Clearing this bit to a logic “0”
disables both the XMIT and RCVR FIFOs and clears all bytes from
both FIFOs. When changing from FIFO Mode to non-FIFO (16450)
mode, data is automatically cleared from the FIFOs. This bit must
be a 1 when other bits in this register are written to or they will not
be properly programmed.
Offset 02h
Reset
Bits Description Type Default
Event
5:4 Reserved R - -
0 IPEND R 1h RESET
This bit can be used in either a hardwired prioritized or polled envi-
ronment to indicate whether an interrupt is pending. When bit 0 is a
logic ‘0’ an interrupt is pending and the contents of the IIR may be
used as a pointer to the appropriate internal service routine. When
bit 0 is a logic ‘1’ no interrupt is pending.
Offset 03h
Reset
Bits Description Type Default
Event
The receiver will ignore all stop bits beyond the first, regardless of
the number used in transmitting.
0 -- 1
1 5 bits 1.5
6 bits 2
7 bits
8 bits
The Start, Stop and Parity bits are not included in the word length.
Offset 04h
Reset
Bits Description Type Default
Event
7:5 Reserved R - -
Offset 05h
Reset
Bits Description Type Default
Event
7 FIFO_ERROR R 0h RESET
This bit is permanently set to logic “0” in the 450 mode. In the
FIFO mode, this bit is set to a logic “1” when there is at least one
parity error, framing error or break indication in the FIFO. This bit
is cleared when the LSR is read if there are no subsequent
errors in the FIFO.
6 TRANSMIT_ERROR R 0h RESET
Transmitter Empty. Bit 6 is set to a logic “1” whenever the Trans-
mitter Holding Register (THR) and Transmitter Shift Register
(TSR) are both empty. It is reset to logic “0” whenever either the
THR or TSR contains a data character. Bit 6 is a read only bit.
In the FIFO mode this bit is set whenever the THR and TSR are
both empty,
5 TRANSMIT_EMPTY R 0h RESET
Transmitter Holding Register Empty Bit 5 indicates that the
Serial Port is ready to accept a new character for transmission.
In addition, this bit causes the Serial Port to issue an interrupt
when the Transmitter Holding Register interrupt enable is set
high. The THRE bit is set to a logic “1” when a character is trans-
ferred from the Transmitter Holding Register into the Transmitter
Shift Register. The bit is reset to logic “0” whenever the CPU
loads the Transmitter Holding Register. In the FIFO mode this bit
is set when the XMIT FIFO is empty, it is cleared when at least 1
byte is written to the XMIT FIFO. Bit 5 is a read only bit.
4 BREAK_INTERRUPT R 0h RESET
Break Interrupt. Bit 4 is set to a logic “1” whenever the received
data input is held in the Spacing state (logic “0”) for longer than a
full word transmission time (that is, the total time of the start bit +
data bits + parity bits + stop bits). The BI is reset after the CPU
reads the contents of the Line Status Register. In the FIFO mode
this error is associated with the particular character in the FIFO it
applies to. This error is indicated when the associated character
is at the top of the FIFO. When break occurs only one zero char-
acter is loaded into the FIFO. Restarting after a break is
received, requires the serial data (RXD) to be logic “1” for at
least 1/2 bit time.
Bits 1 through 4 are the error conditions that produce a Receiver
Line Status Interrupt BIT 3 whenever any of the corresponding
conditions are detected and the interrupt is enabled
Offset 05h
Reset
Bits Description Type Default
Event
3 FRAME_ERROR R 0h RESET
Framing Error. Bit 3 indicates that the received character did not
have a valid stop bit. Bit 3 is set to a logic “1” whenever the stop
bit following the last data bit or parity bit is detected as a zero bit
(Spacing level). This bit is reset to a logic “0” whenever the Line
Status Register is read. In the FIFO mode this error is associated
with the particular character in the FIFO it applies to. This error is
indicated when the associated character is at the top of the
FIFO. The Serial Port will try to resynchronize after a framing
error. To do this, it assumes that the framing error was due to the
next start bit, so it samples this 'start' bit twice and then takes in
the 'data'.
1 OVERRUN_ERROR R 0h RESET
Overrun Error. Bit 1 indicates that data in the Receiver Buffer
Register was not read before the next character was transferred
into the register, thereby destroying the previous character. In
FIFO mode, an overrun error will occur only when the FIFO is full
and the next character has been completely received in the shift
register, the character in the shift register is overwritten but not
transferred to the FIFO. This bit is set to a logic “1” immediately
upon detection of an overrun condition, and reset whenever the
Line Status Register is read.
0 DATA_READY R 0h RESET
Data Ready. It is set to a logic ‘1’ whenever a complete incoming
character has been received and transferred into the Receiver
Buffer Register or the FIFO. Bit 0 is reset to a logic ‘0’ by reading
all of the data in the Receive Buffer Register or the FIFO.
Offset 06h
Reset
Bits Description Type Default
Event
7 DCD R 0h RESET
This bit is the complement of the Data Carrier Detect (DCD#) input.
If bit 4 of the MCR is set to logic ‘1’, this bit is equivalent to OUT2 in
the MCR.
6 RI R 0h RESET
This bit is the complement of the Ring Indicator (RI#) input. If bit 4
of the MCR is set to logic ‘1’, this bit is equivalent to OUT1 in the
MCR.
5 DSR R 0h RESET
This bit is the complement of the Data Set Ready (DSR#) input. If
bit 4 of the MCR is set to logic ‘1’, this bit is equivalent to DTR# in
the MCR.
4 CTS R 0h RESET
This bit is the complement of the Clear To Send (CTS#) input. If bit
4 of the MCR is set to logic ‘1’, this bit is equivalent to RTS# in the
MCR.
3 DCD R 0h RESET
Delta Data Carrier Detect (DDCD). Bit 3 indicates that the DCD#
input to the chip has changed state.
NOTE: Whenever bit 0, 1, 2, or 3 is set to a logic ‘1’, a MODEM
Status Interrupt is generated.
2 RI R 0h RESET
Trailing Edge of Ring Indicator (TERI). Bit 2 indicates that the RI#
input has changed from logic ‘0’ to logic ‘1’.
1 DSR R 0h RESET
Delta Data Set Ready (DDSR). Bit 1 indicates that the DSR# input
has changed state since the last time the MSR was read.
0 CTS R 0h RESET
Delta Clear To Send (DCTS). Bit 0 indicates that the CTS# input to
the chip has changed state since the last time the MSR was read.
Offset 07h
Reset
Bits Description Type Default
Event
Offset 30h
Reset
Bits Description Type Default
Event
7:1 Reserved R - -
Offset F0h
Reset
Bits Description Type Default
Event
7:3 Reserved R - -
18.1 Overview
The MEC170x GPIO interface provides general purpose input monitoring and output control, as well as managing many
aspects of pin functionality; including, multi-function Pin Multiplexing Control, GPIO Direction control, Pull-up and Pull-
down resistors, asynchronous wakeup and synchronous interrupt detection and Polarity control, as well as control of
pin drive strength and slew rate.
Features of the GPIO interface include:
• Inputs:
- Asynchronous rising and falling edge wakeup detection
- Interrupt High or Low Level
• On Output:
- Push Pull or Open Drain output
• Pull up or pull down resistor control
• Interrupt and wake capability available for all GPIOs
• Programmable pin drive strength and slew rate limiting
• Group- or individual control of GPIO data.
• Multiplexing of all multi-function pins are controlled by the GPIO interface
18.2.3 RESETS
TABLE 18-3: RESET SIGNALS
Name Description
RESET_SYS This reset is asserted when VTR is applied.
VCC_PWRGD This signal, which if present comes directly from a pin, is asserted when
the main system power rail is up.
18.4 Description
2
Interrupt Detection
Mux Control 4
Polarity Interrupt
Detector
GPIO Input
Read Register
Interrupt
Pin Control
Register
Mux
Control bit
xx
GPTP-OUT
MUX
GPTP-IN yy PIN
GPIOm GPIOn
PIN
The Pin Control Register Mux Control fields shown in Figure 18-2 are illustrated as ‘xx’ and ‘yy’ because this figure is
an example, it does not represent the actual GPIO multiplexing configuration. The GPIO Multiplexing tables in this chap-
ter must be used to determine the correct values to use to select between a GPIO and the pass-through.
When Pass-Through Mode is enabled, the GPIOn output is disconnected from the GPIOn pin and the GPIOm pin signal
appears on GPIOn pin. Note that in this case the GPIOm input register still reflects the state of the GPIOm pin.
Note: If a GPIO listed in the tables does not appear in the pin list of a particular device, then the Control Registers
are reserved and should not be written. Similarly, if GPIO does not appear in the pin list then the bit position
for the Input GPIO Register and Output GPIO Register that contains that GPIO is reserved.
18.9 EC Registers
Registers for this block are shown in the following summary table. Addresses for each register are determined by adding
the offset to the Base Address for the GPIO Interface Block in the Block Overview and Base Address Table in Section
3.0, "Device Inventory".
Reset
Bits Description Type Default
Event
31:25 Reserved R - -
24 GPIO_INPUT R x RESET_
Reads of this bit always return the state of GPIO input from the pad, SYS
independent of the Mux selection for the pin or the Direction, except
as follows:
1. POWER_GATING = 11b - Input Disabled
This bit is forced low when the input is disabled
2. POWER_GATING = 10b - Unpowered
This bit is forced high when the pad is unpowered.
3. POWER_GATING = 01b - VCC Main Power Rail
This bit is forced high when VCC_PWRGD is low.
Reset
Bits Description Type Default
Event
23:17 Reserved R - -
16 ALTERNATE_GPIO_DATA R or See RESET_
Reads of this bit always return the last data written to the GPIO out- R/W Section 18.8 SYS
put data register bit; reads do not return the current output value of
the GPIO pin if it is configured as an output.
1=Inverted
0=Non-inverted
10 GPIO_OUTPUT_SELECT R/W See RESET_
This control bit determines which register is used to update the data Section 18.8 SYS
register for GPIO outputs. See Section 18.4, "Description"
1=GPIO output data for this GPIO come from the bit representing this
GPIO in the GPIO Output Register; writes to the ALTER-
NATE_GPIO_DATA field of this register do not affect the GPIO
0=GPIO output data for this GPIO come from the ALTERNATE_GPI-
O_DATA field of this register; writes to the bit representing this
GPIO in the GPIO Output Register do not affect the GPIO
9 GPIO_DIRECTION R/W See RESET_
This bit controls the buffer direction only when the MUX_CONTROL Section 18.8 SYS
field is ‘00’ selecting the pin signal function to be GPIO. When the
MUX_CONTROL field is greater than ‘00’ (i.e., a non-GPIO signal
function is selected) this bit has no affect and the selected signal
function logic directly controls the pin direction.
1=Output
0=Input
Reset
Bits Description Type Default
Event
8 OUTPUT_BUFFER_TYPE R/W See RESET_
Unless explicitly stated otherwise, pins with (I/O/OD) or (O/OD) in Section 18.8 SYS
their buffer type column in the tables in are compliant with the follow-
ing Programmable OD/PP Multiplexing Design Rule: Each compliant
pin has a programmable open drain/push-pull buffer controlled by
the Output Buffer Type bit in the associated Pin Control Register.
The state of this bit controls the mode of the interface buffer for all
selected functions, including the GPIO function.
1=Open Drain
0=Push-Pull
7 EDGE_ENABLE R/W See RESET_
When combined with the field INTERRUPT_DETECTION in this reg- Section 18.8 SYS
ister, determines the interrupt capability of the GPIO input. See
Table 18-6, "Edge Enable and Interrupt Detection Bits Definition" for
details.
11b=VTR Powered Output Only. Input pad is disabled and output will
be tristated when VTR Power Rail is off.
10b=Unpowered. The GPIO pad is turned off completely. Both the
input buffer and output buffer on the pad are disabled. Pull-up
and pull-down resisters are disabled independent of the setting
of the PU/PD field
01b=VCC Main Power Rail (as determined by the VCC_PWRGD
input)
00b=VTR Power Rail
Note: The Under Voltage Support feature requires that this bit
field be set to the 11b option, VTR Powered Output Only,
when pad VTR=3.3V and pin is driving out to 1.8V using
Open Drain Mode.
1:0 PU/PD R/W See RESET_
These bits are used to enable an internal pull-up or pull-down resis- Section 18.8 SYS
tor.
11b=”Keeper Mode”. In this mode a weak latch circuit holds the last
value on a pad when it becomes tri-stated and undriven
10b=Pull Down Enabled
01b=Pull Up Enabled
00b=None
Note: Only edge triggered interrupts can wake up the main clock domain. The GPIO must be enabled for edge-
triggered interrupts and the GPIO interrupt must be enabled in the interrupt aggregator in order to wake
from the Heavy Sleep state.
Reset
Bits Description Type Default
Event
31:6 Reserved R - -
5:4 DRIVE_STRENGTH R/W See RESET_
These bits are used to select the drive strength on the pin. The drive Section 18.8 SYS
strength is the same whether the pin is powered by 3.3V or 1.8V.
11b=12mA
10b=8mA
01b=4mA
00b=2mA
3:1 Reserved R - -
0 SLEW_RATE R/W 0h RESET_
This bit is used to select the slew rate on the pin. SYS
1=fast
0=slow (half frequency)
Note: Bits associated with GPIOs not present in the pinout for a particular device are Reserved.
Offset 300h
Reset
Bits Description Type Default
Event
31 Reserved R - -
Offset 304h
Reset
Bits Description Type Default
Event
31 Reserved R - -
Offset 308h
Reset
Bits Description Type Default
Event
31 Reserved R - -
Offset 308h
Reset
Bits Description Type Default
Event
Offset 30Ch
Reset
Bits Description Type Default
Event
31 Reserved R - -
Offset 310h
Reset
Bits Description Type Default
Event
31 Reserved R - -
Offset 314h
Reset
Bits Description Type Default
Event
31 Reserved R - -
Note: Bits associated with GPIOs not present in the pinout for a particular device are Reserved.
Offset 380h
Reset
Bits Description Type Default
Event
31 Reserved R - -
Offset 384h
Reset
Bits Description Type Default
Event
31:24 Reserved R - -
Offset 388h
Reset
Bits Description Type Default
Event
31 Reserved R - -
Offset 38Ch
Reset
Bits Description Type Default
Event
31:22 Reserved R - -
Offset 38Ch
Reset
Bits Description Type Default
Event
Offset 390h
Reset
Bits Description Type Default
Event
31 Reserved R - -
Offset 394h
Reset
Bits Description Type Default
Event
31 Reserved R - -
Offset 394h
Reset
Bits Description Type Default
Event
19.1 Introduction
The function of the Watchdog Timer is to provide a mechanism to detect if the internal embedded controller has failed.
When enabled, the Watchdog Timer (WDT) circuit will generate a WDT Event if the user program fails to reload the WDT
within a specified length of time known as the WDT Interval.
19.2 References
No references have been cited for this chapter.
19.3 Terminology
There is no terminology defined for this chapter.
19.4 Interface
This block is designed to be accessed internally via a registered host interface or externally via the signal interface.
Host Interface
Clock Inputs
Resets
WDT Event
The registers defined for the Watchdog Timer (WDT) are accessible by the embedded controller as indicated in Section
19.8, "EC Registers". All registers accesses are synchronized to the host clock and complete immediately. Register
reads/writes are not delayed by the 32KHz.
Name Description
VTR The logic and registers implemented in this block reside on this single
power well.
Name Description
32KHz The 32KHz clock input is the clock source to the Watchdog Timer
functional logic, including the counter.
19.6.3 RESETS
19.7 Description
19.8 EC Registers
Registers for this block are shown in the following summary table. Addresses for each register are determined by adding
the offset to the Base Address for each instance of the Watchdog Timer (WDT) Block in the Block Overview and Base
Address Table in Section 3.0, "Device Inventory".
Offset 00h
Reset
Bits Description Type Default
Event
Offset 04h
Reset
Bits Description Type Default
Event
7:5 Reserved R - -
1 TEST R 0b RESET
_SYS
1=block enabled
0=block disabled
Offset 08h
Reset
Bits Description Type Default
Event
Offset 0Ch
Reset
Bits Description Type Default
Event
20.1 Introduction
This timer block offers a simple mechanism for firmware to maintain a time base. This timer may be instantiated as 16
bits or 32 bits. The name of the timer instance indicates the size of the timer.
20.2 Interface
This block is designed to be accessed externally via the pin interface and internally via a registered host interface.
Basic Timer
Host Interface
Signal Description
Clock Inputs
Resets
Interrupts
20.5.3 RESETS
TABLE 20-3: RESET SIGNALS
Name Description
RESET_SYS This reset signal, which is an input to this block, resets all the logic and
registers to their initial default state.
Soft Reset This reset signal, which is created by this block, resets all the logic and
registers to their initial default state. This reset is generated by the block
when the SOFT_RESET bit is set in the Timer Control Register register.
RESET_Timer This reset signal, which is created by this block, is asserted when either
the RESET_SYS or the Soft Reset signal is asserted. The RESET_SYS
and Soft Reset signals are OR’d together to create this signal.
20.6 Interrupts
20.8 Description
Basic Timer
48MHz Pre-Scaler
Host Interface
REGS Timer Logic
This timer block offers a simple mechanism for firmware to maintain a time base in the design. The timer may be enabled
to execute the following features:
• Programmable resolution per LSB of the counter via the Pre-scale bits in the Timer Control Register
• Programmable as either an up or down counter
• One-shot or Continuous Modes
• In one-shot mode the Auto Restart feature stops the counter when it reaches its limit and generates a level event.
• In Continuous Mode the Auto Restart feature restarts that counter from the programmed preload value and gener-
ates a pulse event.
• Counter may be reloaded, halted, or started via the Timer Control register
• Block may be reset by either a Power On Reset (POR) or via a Soft Reset.
20.9 EC Registers
Registers for this block are shown in the following summary table. Addresses for each register are determined by adding
the offset to the Base Address for each instance of the Basic Timer Block in the Block Overview and Base Address Table
in Section 3.0, "Device Inventory".
Offset 00h
Reset
Bits Description Type Default
Event
31:0 COUNTER R/W 0h RESET_
This is the value of the Timer counter. This is updated by Hardware Timer
but may be set by Firmware. If it is set by firmware while the
Hardware Timer is operating, functionality cannot be assured.
When read, it is buffered so single byte reads will be able to catch
the full 4 byte register without it changing.
The size of the Counter is indicated by the instance name (e.g., 16-
bit Basic Timer -> SIZE=16). Bits 0 to (SIZE-1) are r/w counter bits.
Bits 31 down to SIZE are unused and should be set to zero when
writing this register.
Offset 04h
Reset
Bits Description Type Default
Event
31:0 PRE_LOAD R/W 0h RESET_
This is the value of the Timer pre-load for the counter. This is used Timer
by H/W when the counter is to be restarted automatically; this will
become the new value of the counter upon restart.
The size of the Pre-Load value is the same as the size of the
counter. The size of the Counter is indicated by the instance name
(e.g., 16-bit Basic Timer -> SIZE=16). Bits 0 to (SIZE-1) are r/w pre-
load bits. Bits 31 down to SIZE are unused and should be set to zero
when writing this register.
Offset 08h
Reset
Bits Description Type Default
Event
31:0 Reserved R - -
0 EVENT_INTERRUPT R/WC 0h RESET_
This is the interrupt status that fires when the timer reaches its limit. Timer
This may be level or a self clearing signal cycle pulse, based on the
AUTO_RESTART bit in the Timer Control Register. If the timer is set
to automatically restart, it will provide a pulse, otherwise a level is
provided.
Offset 0Ch
Reset
Bits Description Type Default
Event
31:0 Reserved R - -
0 EVENT_INTERRUPT_ENABLE R/W 0h RESET_
This is the interrupt enable for the status EVENT_INTERRUPT bit in Timer
the Timer Status Register
Offset 10h
Reset
Bits Description Type Default
Event
31:16 PRE_SCALE R/W 0h RESET_
This is used to divide down the system clock through clock enables Timer
to lower the power consumption of the block and allow slow timers.
Updating this value during operation may result in erroneous clock
enable pulses until the clock divider restarts.
The number of clocks per clock enable pulse is (Value + 1); a setting
of 0 runs at the full clock speed, while a setting of 1 runs at half
speed.
15:8 Reserved R - -
7 HALT R/W 0h RESET_
This is a halt bit. This will halt the timer as long as it is active. Once Timer
the halt is inactive, the timer will start from where it left off.
Reset
Bits Description Type Default
Event
5 START R/W 0h RESET_
This bit triggers the timer counter. The counter will operate until it Timer
hits its terminating condition. This will clear this bit. It should be
noted that when operating in restart mode, there is no terminating
condition for the counter, so this bit will never clear. Clearing this bit
will halt the timer counter.
1=The counter will automatically restart the count, using the contents
of the Timer Preload Register to load the Timer Count Register
The interrupt will be set in edge mode
0=The counter will simply enter a done state and wait for further con-
trol inputs. The interrupt will be set in level mode.
2 COUNT_UP R/W 0h RESET_
This selects the counter direction. Timer
When the counter in incrementing the counter will saturate and trig-
ger the event when it reaches all F’s. When the counter is decre-
menting the counter will saturate when it reaches 0h.
Reset
Bits Description Type Default
Event
1 Reserved R - -
0 ENABLE R/W 0h RESET_
This enables the block for operation. Timer
21.1 Introduction
The 16-Bit Counter-Timer Interface implements four 16-bit auto-reloading timer/counters. The clock for each
timer/counter is derived from the system clock and can be divided down by a prescaler. Input-Only and Input/Output
timers can also use an external input pin to clock or gate the counter. To aid operation in noisy environments the external
input pin also has a selectable noise filter. If large counts are required, the output of each timer/counter can be internally
connected to the next timer/counter.
21.2 References
No references have been cited for this feature.
21.3 Terminology
21.4 Interface
This block is designed to be accessed externally via the pin interface and internally via a registered host interface.
Host Interface
Signal Description
Power, Clocks and Reset
Interrupts
Name Description
VTR The logic and registers implemented in this block are powered by this
power well.
Name Description
21.7.3 RESETS
Name Description
RESET_SYS This signal resets all the registers and logic in this block to their default
state.
Soft Reset This reset signal, which is created by this block, resets all the logic and
registers to their initial default state. This reset is generated by the block
when the RESET bit is set in the Timer x Control Register.
Reset_Timer This reset signal, which is created by this block, is asserted when either
the RESET_SYS or the Soft Reset signal is asserted. The RESET_SYS
and Soft Reset signals are OR’d together to create this signal.
21.8 Interrupts
This section defines the Interrupt Sources generated from this block.
Source Description
TIMERx This interrupt event fires when a 16-bit timer x overflows or underflows.
21.10 Description
RESET_SYS
MCLK
C/T_x_ClkRequired
C/T_x_SleepEn
CLK_EN
SHUT-OFF
CONTROL
EVENT SEL
MUX
Input MEASUREMENT
Polarity Bit
MODE CONT SIGS
OVERFLOW_IN
REGISTER
CONTROL BITS
SPB_INTF REGS
SPB
The 16-bit Timer consists of a 16-bit counter, clocked by a by a configurable Timer Clock. The Timer can operate in any
of 4 Modes: Timer Mode, Event Mode, One-Shot Mode, and Measurement Mode. The Timer can be used to generate
an interrupt to the EC. Depending on the mode, the Timer can also generate an output signal.
Timer Clock
Timer Value AAFFh AAFEh AAFDh AAFCh 80C6h 80C5h 80C4h 80C3h 80C2h 0001h 0000h AAFFh AAFEh AAFDh
Timer Interrupt
Timer Clock
Timer Value AAFFh AAFEh AAFDh AAFCh 80C6h 80C5h 80C4h 80C3h 80C2h 0001h 0000h FFFFh FFFEh FFFDh
Timer Interrupt
Timer Clock
Timer Value 0xFFFE 0xFFFE 0xFFFD 0xFFFC 0x80 C6 0x80C5 0x80 C4 0 x80 C3 0x80 C2 0x0001 0x0000 0xFFFF 0xFFFE 0xFFFD
TIN
Timer Interrupt
Timer Clock
Timer Value 0xFFFF 0xFFFE 0x0001 0x0000 0xFFFF 0xFFFE 0x80C5 0x80C 4 0x80C3 0x0000 0xFFFF 0x0000 0xFFFF
Timer Enable Bit
TOUTx
Event Input
Timer Value AA00h A9FFh 0001h 0000h AA00h A9FFh 80C5h 80C4h 80C3h 0000 h AA00h A9FFh AA00h AA01h FFFEh FFFFh AA00h
Up/Down Bit
Timer Interrupt
When the timer is enabled timer starts counting from value programmed in Timer
Reload Register. (RLOAD has no effect in this mode)
Count Start Condition Setting the ENABLE bit to 1 starts One-Shot mode.
The timer clock automatically clears the enable bit one timer tick later.
One-Shot mode may be enabled in Event Mode. In Event mode an overflow from the
previous timer is used for timer tick rate.
Count Stop Condition • Timer is reset (RESET = 1)
• Timer underflows
Interrupt Request Genera- When an underflow occurs.
tion Timing
TINx Pin Function One Shot External input
TOUTx Pin Function The TOUTx pin is asserted when the timer starts and de-asserted when the timer stops
Read From Timer Current count value can be read by reading the Timer Count Register
Write to Preload Register After the firmware writes to the Timer Reload Register, asserting the RESET loads the
timer with the new value programmed in the Timer Reload Register. Note: If the firm-
ware does not assert RESET, the timer will automatically load the Timer Reload Regis-
ter value when the timer underflows.
Selectable Functions • Pulse Output Function
The TOUTx pin is asserted when the timer starts and de-asserted when the timer
stops.
Timer Clock
Timer Clock
Timer Enable Bit
cleared by hardware
Event Input
Timer Interrupt
Timer Clock
Timer Value 0xAA00 0xA9FF 0xA9FE 0x0001 0x0000 0xFFFF 0xAA00 0xA9FF 0xA9FE 0x0001 0x0000 0xFFFF
TOUTx
Timer Clock
0x000 0x000 0x000 0x000 0x000 0x000 0x000 0x000 0x000 0x000 0x000 0x000 0x000 0x000 0xFFF 0xFFF 0x000
Timer Value 0 1 2 0 1 2 3 0 1 2 3 0 1 2 E F 0
TIN
Timer Reload 0x000 0x000 0x000 0x000 0x000
0 2 3 1 0
Register
Timer Interrupt
Timer Clock
0x000 0x000 0x000 0x000 0x000 0x000 0x000 0x000 0x000 0x000 0x000 0xFFF 0xFFF 0x000
Timer Value 0 1 2 3 0 1 2 3 4 0 1 E F 0
TIN
Timer Reload 0x000 0x000 0x000 0x000
0
Register 0 3 4
Timer Interrupt
21.11 EC Registers
Registers for this block are shown in the following summary table. Addresses for each register are determined by adding
the offset to the Base Address for each instance of the 16-Bit Counter-Timer Interface Block in the Block Overview and
Base Address Table in Section 3.0, "Device Inventory".
Offset 00h
Reset
Bits Description Type Default
Event
31:13 Reserved R - -
12 TIMERX_CLK_REQ R 0h Reset_
This bit reflects the current state of the timer’s Clock_Required out- Timer
put signal.
11 SLEEP_ENABLE R 0h Reset_
This bit reflects the current state of the timer’s Sleep_Enable input Timer
signal.
1=Normal operation
0=Sleep Mode is requested
Offset 00h
Reset
Bits Description Type Default
Event
1=Active low
0=Active high
9 PD R/W 1h Reset_
Power Down. Timer
Event Mode:
1=The timer counts up
0=The timer counts down
Timer Mode:
1=TINx pin pauses the timer when de-asserted
0=TINx pin has no effect on the timer
Offset 00h
Reset
Bits Description Type Default
Event
3=Measurement Mode
2=One Shot Mode
1=Event Mode
0=Timer Mode
Firmware must poll the RESET bit in order to determine when the
timer is active after reset. The polling time may be any value from 0
ms to 2^(TCLK+1))/48MHz. If it the TCLK value was set to 0111b
then the polling time will be a 5.33us (typ). Worst case polling time
is dependent on accuracy of 48MHz clock source.
Interrupts are blocked only when RESET takes effect and the
ENABLE bit is cleared. If interrupts are not desired, firmware must
mask the interrupt in the interrupt block.
1=Timer reset
0=Normal timer operation
1=Timer is enabled
0=Timer is disabled
Offset 04h
Reset
Bits Description Type Default
Event
31:12 Reserved R - -
Event Mode:
11b=No event selected
10b=Counts rising and falling edges
01b=Counts rising edges
00b=Counts falling edges
One-Shot Mode:
11b=Start counting when the Enable bit is set
10b=Starts counting on a rising or falling edge
01b=Starts counting on a rising edge
00b=Starts counting on a falling edge
Measurement Mode:
11b=No event selected
10b=Measures the time between rising edges and falling edges and
the time between falling edges and rising edges
01b=Measures the time between rising edges
00b=Measures the time between falling edges
4 Reserved R - -
Offset 08h
Reset
Bits Description Type Default
Event
31:16 Reserved R - -
Offset 0Ch
Reset
Bits Description Type Default
Event
31:16 Reserved R - -
22.1 Introduction
The Input Capture and Compare Timers block contains a 32-bit timer running at the main system clock frequency. The
timer is free-running and is associated with six 32-bit capture registers and two compare registers. Each capture register
can record the value of the free-running timer based on a programmable edge of its associated input pin. An interrupt
can be generated for each capture register each time it acquires a new timer value. The timer can also generate an
interrupt when it automatically resets and can additionally generate two more interrupts when the timer matches the
value in either of two 32-bit compare registers.
22.2 References
No references have been cited for this feature.
22.3 Terminology
There is no terminology for this block.
22.4 Interface
This block is designed to be accessed externally via the pin interface and internally via a registered host interface.
Signal Description
Power, Clocks and Reset
Interrupts
ICT0 INPUT External capture trigger signal for Capture Register 0. Identical to
signal FAN_TACH0.
ICT1 INPUT External capture trigger signal for Capture Register 1. Identical to
signal FAN_TACH1.
ICT2 INPUT External capture trigger signal for Capture Register 2. Identical to
signal FAN_TACH2.
Name Description
VTR The logic and registers implemented in this block are powered by this
power well.
Name Description
22.7.3 RESETS
Name Description
RESET_SYS This signal resets all the registers and logic in this block to their default
state.
Source Description
CAPTURE TIMER This interrupt event fires when the 32-bit free running counter overflows
from FFFF_FFFFh to 0000_0000h.
CAPTURE 0 This interrupt event fires when Capture Register 0 acquires a new value.
CAPTURE 1 This interrupt event fires when Capture Register 1 acquires a new value.
CAPTURE 2 This interrupt event fires when Capture Register 2 acquires a new value.
CAPTURE 3 This interrupt event fires when Capture Register 3 acquires a new value.
CAPTURE 4 This interrupt event fires when Capture Register 4 acquires a new value.
CAPTURE 5 This interrupt event fires when Capture Register 5 acquires a new value.
COMPARE 0 This interrupt event fires when the contents of Compare 0 Register
match the contents of the Free Running Counter.
COMPARE 1 This interrupt event fires when the contents of Compare 1 Register
match the contents of the Free Running Counter.
CAPTURE_TIMER
+1
D Compare0
Timer COMPARE 0
System Clock TCLK Scaler CK
=
CTOUT0
T Q
Compare1
COMPARE 1
=
CTOUT1
T Q
D
Capture0
ICT0 Filter Edge EN
CAPTURE 0
D
Capture1
ICT1 Filter Edge EN
CAPTURE 1
D
Capture2
ICT2 Filter Edge EN
CAPTURE 2
D
Capture3
ICT3 Filter Edge EN
CAPTURE 3
D
Capture4
ICT4 Filter Edge EN
CAPTURE 4
D
Capture5
ICT5 Filter Edge EN
CAPTURE 5
22.11 Operation
22.11.1 INPUT CAPTURE
The Input Capture block consists of a free-running 32-bit timer and 2 capture registers. Each of the capture registers is
associated with an input pin as well as an interrupt source bit in the Interrupt Aggregator: The Capture registers store
the current value of the Free Running timer whenever the associated input signal changes, according to the pro-
grammed edge detection. An interrupt is also generated to the EC. The Capture registers are read-only. The registers
are updated every time an edge is detected. If software does not read the register before the next edge, the value is lost.
22.12 EC Registers
Registers for this block are shown in the following summary table. Addresses for each register are determined by adding
the offset to the Base Address for each instance of the Input Capture and Compare Timer Block in the Block Overview
and Base Address Table in Section 3.0, "Device Inventory".
Note: It is not recommended to use Read-Modify-Write operations on this register. May inadvertently cause the
COMPARE_SET and COMPARE_CLEAR bits to be written to ‘1’ in error.
Offset 00h
Reset
Bits Description Type Default
Event
31:26 Reserved R - -
23:18 Reserved R - -
Offset 00h
Reset
Bits Description Type Default
Event
15:10 Reserved R - -
1=Enabled
0=Disabled
1=Enabled
0=Disabled
7 Reserved R - -
3 Reserved R - -
1=Timer reset
0=Normal timer operation
Offset 00h
Reset
Bits Description Type Default
Event
Offset 04h
Reset
Bits Description Type Default
Event
28:27 Reserved R - -
Offset 04h
Reset
Bits Description Type Default
Event
20:19 Reserved R - -
12:11 Reserved R - -
4:3 Reserved R - -
Offset 04h
Reset
Bits Description Type Default
Event
Offset 08h
Reset
Bits Description Type Default
Event
31:16 Reserved R - -
12:11 Reserved R - -
Offset 08h
Reset
Bits Description Type Default
Event
4:3 Reserved R - -
Offset 0Ch
Reset
Bits Description Type Default
Event
Offset 10h
Reset
Bits Description Type Default
Event
Offset 14h
Reset
Bits Description Type Default
Event
Offset 18h
Reset
Bits Description Type Default
Event
Offset 1Ch
Reset
Bits Description Type Default
Event
Offset 20h
Reset
Bits Description Type Default
Event
Offset 24h
Reset
Bits Description Type Default
Event
Offset 28h
Reset
Bits Description Type Default
Event
Offset 2Ch
Reset
Bits Description Type Default
Event
23.1 Introduction
The Hibernation Timer can generate a wake event to the Embedded Controller (EC) when it is in a hibernation mode.
This block supports wake events up to 2 hours in duration. The timer is a 16-bit binary count-down timer that can be
programmed in 30.5µs and 0.125 second increments for period ranges of 30.5µs to 2s or 0.125s to 136.5 minutes,
respectively. Writing a non-zero value to this register starts the counter from that value. A wake-up interrupt is generated
when the count reaches zero.
23.2 References
No references have been cited for this chapter
23.3 Terminology
No terms have been cited for this chapter.
23.4 Interface
This block is an IP block designed to be incorporated into a chip. It is designed to be accessed externally via the pin
interface and internally via a registered host interface. The following diagram illustrates the various interfaces to the
block.
Hibernation Timer
Host Interface
Signal Description
Clock Inputs
Resets
Interrupts
23.8 Interrupts
This section defines the interrupt Interface signals routed to the chip interrupt aggregator.
Each instance of the Hibernation Timer in the MEC170x can be used to generate interrupts and wake-up events when
the timer decrements to zero.
23.10 EC Registers
Registers for this block are shown in the following summary table. Addresses for each register are determined by adding
the offset to the Base Address for each instance of the Hibernation Timer Block in the Block Overview and Base Address
Table in Section 3.0, "Device Inventory".
Offset 00h
Reset
Bits Description Type Default
Event
15:0 HT_PRELOAD R/W 000h RESET_
This register is used to set the Hibernation Timer Preload value. SYS
Writing this register to a non-zero value resets the down counter to
start counting down from this programmed value. Writing this regis-
ter to 0000h disables the hibernation counter. The resolution of this
timer is determined by the CTRL bit in the HTimer Control Register.
Writes to the HTimer Control Register are completed with an EC bus
cycle.
23.10.2 HTIMER CONTROL REGISTER
Offset 04h
Reset
Bits Description Type Default
Event
15:1 Reserved R - -
0 CTRL R 0000h RESET_
1=The Hibernation Timer has a resolution of 0.125s per LSB, which SYS
yields a maximum time in excess of 2 hours.
0=The Hibernation Timer has a resolution of 30.5µs per LSB, which
yields a maximum time of ~2seconds.
23.10.3 HTIMER COUNT REGISTER
Offset 08h
Reset
Bits Description Type Default
Event
15:0 COUNT R 0000h RESET_
The current state of the Hibernation Timer. SYS
24.1 Introduction
The RTOS Timer is a low-power, 32-bit timer designed to operate on the 32kHz oscillator which is available during all
chip sleep states. This allows firmware the option to sleep the processor and wake after a programmed amount of time.
The timer may be used as a one-shot timer or a continuous timer. When the timer transitions to 0 it is capable of gen-
erating a wake-capable interrupt to the embedded controller. This timer may be halted during debug by hardware or via
a software control bit.
24.2 Interface
This block is designed to be accessed externally via the pin interface and internally via a registered host interface.
RTOS Timer
Host Interface
Signal Description
Clock Inputs
Resets
Interrupts
Name Description
HALT RTOS Timer Halt signal. This signal is connected to the same signal that
halts the embedded controller during debug (e.g., JTAG Debugger is
active, break points, etc.).
Name Description
VTR The timer control logic and registers are all implemented on this single
power domain.
Name Description
24.5.3 RESETS
Name Description
RESET_SYS This reset signal, which is an input to this block, resets all the logic and
registers to their initial default state.
24.6 Interrupts
Source Description
RTOS_TIMER RTOS Timer interrupt event. The interrupt is signaled when the timer
counter transitions from 1 to 0 while counting.
24.8 Description
The RTOS Timer is a basic down counter that can operate either as a continuous timer or a one-shot timer. When it is
started, the counter is loaded with a pre-load value and counts towards 0. When the counter counts down from 1 to 0,
it will generate an interrupt. In one-shot mode (the AUTO_RELOAD bit is ‘0’), the timer will then halt; in continuous mode
(the AUTO_RELOAD bit is ‘1’), the counter will automatically be restarted with the pre-load value.
The timer counter can be halted by firmware by setting the FIRMWARE_TIMER_HALT bit to ‘1’. In addition, if enabled,
the timer counter can be halted by the external HALT signal.
24.9 EC Registers
Registers for this block are shown in the following summary table. Addresses for each register are determined by adding
the offset to the Base Address for each instance of the RTOS Timer Block in the Block Overview and Base Address
Table in Section 3.0, "Device Inventory".
Offset 00h
Reset
Bits Description Type Default
Event
Offset 04h
Reset
Bits Description Type Default
Event
Offset 08h
Reset
Bits Description Type Default
Event
31:5 Reserved R - -
Writing a ‘0’ to this bit will halt the counter and clear its contents to
0. The RTOS timer interrupt will not be generated.
Offset 0Ch
Reset
Bits Description Type Default
Event
31:4 Reserved R - -
3 SWI_3 W 0h RESE
Software Interrupt. A write of a ‘1’ to this bit will generate an SWI T_SYS
interrupt to the EC. Writes of a ‘0’ have no effect. Reads return ‘0’.
2 SWI_2 W 0h RESE
Software Interrupt. A write of a ‘1’ to this bit will generate an SWI T_SYS
interrupt to the EC. Writes of a ‘0’ have no effect. Reads return ‘0’.
1 SWI_1 W 0h RESE
Software Interrupt. A write of a ‘1’ to this bit will generate an SWI T_SYS
interrupt to the EC. Writes of a ‘0’ have no effect. Reads return ‘0’.
0 SWI_0 W 0h RESE
Software Interrupt. A write of a ‘1’ to this bit will generate an SWI T_SYS
interrupt to the EC. Writes of a ‘0’ have no effect. Reads return ‘0’.
25.1 Introduction
This block provides the capabilities of an industry-standard 146818B Real-Time Clock module, without CMOS RAM.
Enhancements to this architecture include:
• Industry standard Day of Month Alarm field, allowing for monthly alarms
• Configurable, automatic Daylight Savings adjustment
• Week Alarm for periodic interrupts and wakes based on Day of Week
• System Wake capability on interrupts.
25.2 References
1. Motorola 146818B Data Sheet, available on-line
2. Intel Lynx Point PCH EDS specification
25.3 Terminology
Time and Date Registers:
This is the set of registers that are automatically counted by hardware every 1 second while the block is enabled to run
and to update. These registers are: Seconds, Minutes, Hours, Day of Week, Day of Month, Month, and Year.
25.4 Interface
This block’s connections are entirely internal to the chip.
Host Interface
Signal Description
Clocks
Resets
Interrupts
25.8 Interrupts
25.10 Description
This block provides the capabilities of an industry-standard 146818B Real-Time Clock module, excluding the CMOS
RAM and the SQW output. See the following registers, which represent enhancements to this architecture. These
enhancements are listed below.
See the Date Alarm field of Register D for a Day of Month qualifier for alarms.
See the Week Alarm Register for a Day of Week qualifier for alarms.
See the registers Daylight Savings Forward Register and Daylight Savings Backward Register for setting up hands-off
Daylight Savings adjustments.
See the RTC Control Register for enhanced control over the block’s operations.
Note: This extended register set occupies offsets that have historically been used as CMOS RAM. Code ported
to use this block should be examined to ensure that it does not assume that RAM exists in this block.
Offset 00h
Reset
Bits Description Type Default
Event
7:0 SECONDS R/W 00h RESET
Displays the number of seconds past the current minute, in the range _RTC
0--59. Presentation may be selected as binary or BCD, depending on
the DM bit in Register B. Values written must also use the format
defined by the current setting of the DM bit.
Offset 01h
Reset
Bits Description Type Default
Event
7:0 SECONDS_ALARM R/W 00h RESET
Holds a match value, compared against the Seconds Register to trig- _RTC
ger the Alarm event. Values written to this register must use the for-
mat defined by the current setting of the DM bit in Register B. A value
of 11xxxxxxb written to this register makes it don’t-care (always
matching).
Offset 02h
Reset
Bits Description Type Default
Event
7:0 MINUTES R/W 00h RESET_
Displays the number of minutes past the current hour, in the range 0- RTC
-59. Presentation may be selected as binary or BCD, depending on
the DM bit in Register B. Values written must also use the format
defined by the current setting of the DM bit.
Offset 03h
Reset
Bits Description Type Default
Event
7:0 MINUTES_ALARM R/W 00h RESET
Holds a match value, compared against the Minutes Register to trig- _RTC
ger the Alarm event. Values written to this register must use the for-
mat defined by the current setting of the DM bit in Register B. A value
of 11xxxxxxb written to this register makes it don’t-care (always
matching).
Offset 04h
Reset
Bits Description Type Default
Event
7 HOURS_AM_PM R/W 0b RESET
In 12-hour mode (see bit “24/12” in register B), this bit indicates AM or _RTC
PM.
1=PM
0=AM
6:0 HOURS R/W 00h RESET
Displays the number of the hour, in the range 1--12 for 12-hour mode _RTC
(see bit “24/12” in register B), or in the range 0--23 for 24-hour mode.
Presentation may be selected as binary or BCD, depending on the
DM bit in Register B. Values written must also use the format defined
by the current setting of the DM bit.
Offset 05h
Reset
Bits Description Type Default
Event
7:0 HOURS_ALARM R/W 00h RESET
Holds a match value, compared against the Hours Register to trigger _RTC
the Alarm event. Values written to this register must use the format
defined by the current settings of the DM bit and the 24/12 bit in Reg-
ister B. A value of 11xxxxxxb written to this register makes it don’t-
care (always matching).
Offset 06h
Reset
Bits Description Type Default
Event
7:0 DAY_OF_WEEK R/W 00h RESET
Displays the day of the week, in the range 1 (Sunday) through 7 (Sat- _RTC
urday). Numbers in this range are identical in both binary and BCD
notation, so this register’s format is unaffected by the DM bit.
Offset 07h
Reset
Bits Description Type Default
Event
7:0 DAY_OF_MONTH R/W 00h RESET
Displays the day of the current month, in the range 1--31. Presenta- _RTC
tion may be selected as binary or BCD, depending on the DM bit in
Register B. Values written must also use the format defined by the
current setting of the DM bit.
Offset 08h
Reset
Bits Description Type Default
Event
7:0 MONTH R/W 00h RESET
Displays the month, in the range 1--12. Presentation may be selected _RTC
as binary or BCD, depending on the DM bit in Register B. Values writ-
ten must also use the format defined by the current setting of the DM
bit.
Offset 09h
Reset
Bits Description Type Default
Event
7:0 YEAR R/W 00h RESET
Displays the number of the year in the current century, in the range 0 _RTC
(year 2000) through 99 (year 2099). Presentation may be selected as
binary or BCD, depending on the DM bit in Register B. Values written
must also use the format defined by the current setting of the DM bit.
Offset 0Ah
Reset
Bits Description Type Default
Event
7 UPDATE_IN_PROGRESS R 0b RESET
‘0’ indicates that the Time and Date registers are stable and will not be _RTC
altered by hardware soon. ‘1’ indicates that a hardware update of the
Time and Date registers may be in progress, and those registers
should not be accessed by the host program. This bit is set to ‘1’ at a
point 488us (16 cycles of the 32K clock) before the update occurs, and
is cleared immediately after the update. See also the Update-Ended
Interrupt, which provides more useful status.
6:4 DIVISION_CHAIN_SELECT R/W 000b RESET
This field provides general control for the Time and Date register _RTC
updating logic.
11xb=Halt counting. The next time that 010b is written, updates will
begin 500ms later.
010b=Required setting for normal operation. It is also necessary to set
the Block Enable bit in the RTC Control Register to ‘1’ for counting
to begin
000b=Reserved. This field should be initialized to another value before
Enabling the block in the RTC Control Register
Other values Reserved
3:0 RATE_SELECT R/W 0h RESET
This field selects the rate of the Periodic Interrupt source. See _RTC
Table 25-7
Offset 0Bh
Reset
Bits Description Type Default
Event
7 UPDATE_CYCLE_INHIBIT R/W 0b RESET
In its default state ‘0’, this bit allows hardware updates to the Time _RTC
and Date registers, which occur at 1-second intervals. A ‘1’ written to
this field inhibits updates, allowing these registers to be cleanly writ-
ten to different values. Writing ‘0’ to this bit allows updates to con-
tinue.
6 PERIODIC_INTERRUPT_ENABLE R/W 0b RESET
_RTC
1=Alows the Periodic Interrupt events to be propagated as interrupts
0=Periodic events are not propagates as interrupts
5 ALARM_INTERRUPT_ENABLE R/W 0b RESET
_RTC
1=Alows the Alarm Interrupt events to be propagated as interrupts
0=Alarm events are not propagates as interrupts
4 UPDATE_ENDED_INTERRUPT_ENABLE R/W 0b RESET
_RTC
1=Alows the Update Ended Interrupt events to be propagated as inter-
rupts
0=Update Ended events are not propagates as interrupts
3 Reserved R - -
2 DATA_MODE R/W 0b RESET
_RTC
1=Binary Mode for Dates and Times
0=BCD Mode for Dates and Times
1 HOUR_FORMAT_24_12 R/W 0b RESET
_RTC
1=24-Hour Format for Hours and Hours Alarm registers. 24-Hour for-
mat keeps the AM/PM bit off, with value range 0--23
0=12-Hour Format for Hours and Hours Alarm registers. 12-Hour for-
mat has an AM/PM bit, and value range 1--12
0 DAYLIGHT_SAVINGS_ENABLE R/W 0b RESET
_RTC
1=Enables automatic hardware updating of the hour, using the regis-
ters Daylight Savings Forward and Daylight Savings Backward to
select the yearly date and hour for each update
0=Automatic Daylight Savings updates disabled
Note: The DATA_MODE and HOUR_FORMAT_24_12 bits affect only how values are presented as they are
being read and how they are interpreted as they are being written. They do not affect the internal contents
or interpretations of registers that have already been written, nor do they affect how those registers are
represented or counted internally. This mode bits may be set and cleared dynamically, for whatever I/O
data representation is desired by the host program.
Offset 0Ch
Reset
Bits Description Type Default
Event
7 INTERRUPT_REQUEST_FLAG RC 0b RESET
_RTC
1=Any of bits[6:4] below is active after masking by their respective
Enable bits in Register B.
0=No bits in this register are active
25.11.14 REGISTER D
Offset 0Dh
Reset
Bits Description Type Default
Event
7:6 Reserved R - -
5:0 DATE_ALARM R/W 00h RESET
This field, if set to a non-zero value, will inhibit the Alarm interrupt _RTC
unless this field matches the contents of the Month register also. If
this field contains 00h (default), it represents a don’t-care, allowing
more frequent alarms.
Offset 10h
Reset
Bits Description Type Default
Event
7:4 Reserved R - -
3 ALARM_ENABLE R/W 0b RESET
_RTC
1=Enables the Alarm features
0=Disables the Alarm features
2 VCI_ENABLE R/W 0b RESET
1=Allows Alarm events to activate the RTC ALARM signal to chip _RTC
level VCI circuitry and to the RTC ALARM Interrupt in Interrupt aggre-
gator.
0=Inihibits Alarm events from activating the RTC_ALARM signal to
the Chip level VCI circuitry and to the RTC alarm interrupt in Interrupt
aggregator.
1 SOFT_RESET R/W 0b RESET
A ‘1’ written to this bit position will trigger the RESET_RTC reset, _VBAT
resetting the block and all registers except this one and the Test Reg-
ister. This bit is self-clearing at the end of the reset, one cycle of LPC
Bus Clock later, and so requires no waiting.
0 BLOCK_ENABLE R/W 0b RESET
This bit must be ‘1’ in order for the block to function internally. Regis- _RTC
ters may be initialized first, before setting this bit to ‘1’ to start opera-
tion.
Offset 14h
Reset
Bits Description Type Default
Event
7:0 ALARM_DAY_OF_WEEK R/W FFh RESET
This register, if written to a value in the range 1--7, will inhibit the _RTC
Alarm interrupt unless this field matches the contents of the Day of
Week Register also. If this field is written to any value 11xxxxxxb (like
the default FFh), it represents a don’t-care, allowing more frequent
alarms, and will read back as FFh until another value is written.
Offset 18h
Reset
Bits Description Type Default
Event
31 DST_FORWARD_AM_PM R/W 0b RESET
This bit selects AM vs. PM, to match bit[7] of the Hours Register if 12- _RTC
Hour mode is selected in Register B at the time of writing.
30:24 DST_FORWARD_HOUR R/W 00h RESET
This field holds the matching value for bits[6:0] of the Hours register. _RTC
The written value will be interpreted according to the 24/12 Hour
mode and DM mode settings at the time of writing.
Reset
Bits Description Type Default
Event
23:19 Reserved R - -
18:16 DST_FORWARD_WEEK R/W 0h RESET
This value matches an internally-maintained week number within the _RTC
current month. Valid values for this field are:
This is a 32-bit register, accessible also as individual bytes. When writing as individual bytes, ensure that the DSE bit
(in Register B) is off first, or that the block is disabled or stopped (SET bit), to prevent a time update while this register
may have incompletely-updated contents.
When enabled by the DSE bit in Register B, this register defines an hour and day of the year at which the Hours register
will be automatically incremented by 1 additional hour.
There are no don’t-care fields recognized. All fields must be already initialized to valid settings whenever the DSE bit is
‘1’.
Fields other than Week and Day of Week use the current setting of the DM bit (binary vs. BCD) to interpret the informa-
tion as it is written to them. Their values, as held internally, are not changed by later changes to the DM bit, without
subsequently writing to this register as well.
Note: An Alarm that is set inside the hour after the time specified in this register will not be triggered, because
that one-hour period is skipped. This period includes the exact time (0 minutes: 0 seconds) given by this
register, through the 59 minutes: 59 seconds point afterward.
Offset 1Ch
Reset
Bits Description Type Default
Event
31 DST_BACKWARD_AM_PM R/W 0b RESET
This bit selects AM vs. PM, to match bit[7] of the Hours register if 12- _RTC
Hour mode is selected in Register B at the time of writing.
30:24 DST_BACKWARD_HOUR R/W 00h RESET
This field holds the matching value for bits[6:0] of the Hours register. _RTC
The written value will be interpreted according to the 24/12 Hour
mode and DM mode settings at the time of writing.
23:19 Reserved R - -
Reset
Bits Description Type Default
Event
18:16 DST_BACKWARD_WEEK R/W 0h RESET
This value matches an internally-maintained week number within the _RTC
current month. Valid values for this field are:
This is a 32-bit register, accessible also as individual bytes. When writing as individual bytes, ensure that the DSE bit
(in Register B) is off first, or that the block is disabled or stopped (SET bit), to prevent a time update while this register
may have incompletely-updated contents.
When enabled by the DSE bit in Register B, this register defines an hour and day of the year at which the Hours register
increment will be inhibited from occurring. After triggering, this feature is automatically disabled for long enough to
ensure that it will not retrigger the second time this Hours value appears, and then this feature is re-enabled automati-
cally.
There are no don’t-care fields recognized. All fields must be already initialized to valid settings whenever the DSE bit is
‘1’.
Fields other than Week and Day of Week use the current setting of the DM bit (binary vs. BCD) to interpret the informa-
tion as it is written to them. Their values, as held internally, are not changed by later changes to the DM bit, without
subsequently writing to this register as well.
Note: An Alarm that is set inside the hour before the time specified in this register will be triggered twice, because
that one-hour period is repeated. This period will include the exact time (0 minutes: 0 seconds) given by
this register, through the 59 minutes: 59 seconds point afterward.
26.1 Introduction
The Week Alarm Interface provides two timekeeping functions: a Week Timer and a Sub-Week Timer. Both the Week
Timer and the Sub-Week Timer assert the Power-Up Event Output which automatically powers-up the system from the
G3 state. Features include:
• EC interrupts based on matching a counter value
• Repeating interrupts at 1 second and sub-1 second intervals
• System Wake capability on interrupts, including Wake from Heavy Sleep
26.2 Interface
This block’s connections are entirely internal to the chip.
Week Timer
Host Interface
Signal Description
Clocks
Resets
Interrupts
POWER_UP_EVENT OUTPUT Signal to the VBAT-Powered Control Interface. When this signal is
asserted, the VCI output signal asserts. See Section 26.8, "Power-
Up Events".
Name Description
VBAT This power well sources all of the internal registers and logic in this block.
VTR This power well sources only bus communication. The block continues to
operate internally while this rail is down.
26.5.2 CLOCKS
Name Description
32KHz This 32KHz clock input drives all internal logic, and will be present at all
times that the VBAT well is powered.
26.5.3 RESETS
Name Description
RESET_VBAT This reset signal is used reset all of the registers and logic in this block.
RESET_SYS This reset signal is used to inhibit the bus communication logic, and iso-
lates this block from VTR powered circuitry on-chip. Otherwise it has no
effect on the internal state.
Source Description
WEEK_ALARM_INT This interrupt is signaled to the Interrupt Aggregator when the Week
Alarm Counter Register is greater than or equal to the Week Timer Com-
pare Register. The interrupt signal is always generated by the Week
Timer if the block is enabled; the interrupt is enabled or disabled in the
Interrupt Aggregator.
SUB_WEEK_ALARM_INT This interrupt is signaled to the Interrupt Aggregator when the Sub-Week
Alarm Counter Register decrements from ‘1’ to ‘0’. The interrupt signal is
always generated by the Week Timer if the block is enabled; the interrupt
is enabled or disabled in the Interrupt Aggregator.
26.9 Description
The Week Alarm block provides battery-powered timekeeping functions, derived from a low-power 32KHz clock, that
operate even when the device’s main power is off. The block contains a set of counters that can be used to generate
one-shot and periodic interrupts to the EC for periods ranging from about 30 microseconds to over 8 years. The Week
Alarm can be used in conjunction with the VBAT-Powered Control Interface to power up a sleeping system after a con-
figurable period.
In addition to basic timekeeping, the Week Alarm block can be used to control the battery-powered general purpose
BGPO outputs.
Note 1: The Week Alarm Counter must not be modified by firmware if Sub-Week Alarm Counter is using the Week
Alarm Counter as its clock source (i.e., the SUBWEEK_TICK field is set to any of the values 4, 5, 6 or 7).
The Sub-Week Alarm Counter must be disabled before changing the Week Alarm Counter. For example,
the following sequence may be used:
1.Write 0h to the Sub-Week Alarm Counter Register (disabling the Sub-Week Counter)
2.Write the Week Alarm Counter Register
3.Write a new value to the Sub-Week Alarm Counter Register, restarting the Sub-Week Counter
//Disable interrupts
irqEnableSave = IRQ_ENABLE;
IRQ_ENABLE = 0;
if (0 == cd_value2)
//Enable interrupts
IRQ_ENABLE = irqEnableSave;
26.11 EC Registers
Registers for this block are shown in the following summary table. Addresses for each register are determined by adding
the offset to the Base Address for each instance of the Week Timer Block in the Block Overview and Base Address Table
in Section 3.0, "Device Inventory".
Offset 00h
Reset
Bits Description Type Default
Event
31:7 Reserved R - -
5:1 Reserved R - -
The value in the Counter Register is held when the WT_ENABLE bit
is not asserted (‘0’) and the count is resumed from the last value
when the bit is asserted (‘1’).
The 15-Bit Clock Divider is reset to 00h and the Week Alarm Inter-
face is in its lowest power consumption state when the WT_EN-
ABLE bit is not asserted.
Offset 04h
Reset
Bits Description Type Default
Event
31:28 Reserved R - -
Offset 08h
Reset
Bits Description Type Default
Event
31:28 Reserved R - -
Offset 0Ch
Reset
Bits Description Type Default
Event
31:15 Reserved R - -
Offset 10h
Reset
Bits Description Type Default
Event
31:4 Reserved R - -
Offset 14h
Reset
Bits Description Type Default
Event
31:10 Reserved R - -
5 TEST R/W 0 -
Must always be written with 0.
4:2 Reserved R - -
Offset 14h
Reset
Bits Description Type Default
Event
Offset 18h
Reset
Bits Description Type Default
Event
31:25 Reserved R - -
15:9 Reserved R - -
Offset 1Ch
Reset
Bits Description Type Default
Event
31:10 Reserved R - -
Offset 20h
Reset
Bits Description Type Default
Event
31:6 Reserved R - -
0 Reserved R - -
Note: Because BGPO[9:6] and BGPO0 are not multiplexed with GPIOs, bits 9:6 and 0 are reserved.
Offset 24h
Reset
Bits Description Type Default
Event
31:10 Reserved R - -
27.1 Introduction
This block monitors TACH output signals (or locked rotor signals) from various types of fans, and determines their
speed.
27.2 References
No references have been cited for this feature.
27.3 Terminology
There is no terminology defined for this section.
27.4 Interface
This block is designed to be accessed externally via the pin interface and internally via a registered host interface.
TACH
Host Interface
Signal Description
Power, Clocks and Reset
Interrupts
Name Description
VTR The logic and registers implemented in this block are powered by this
power well.
27.7.2 CLOCK INPUTS
Name Description
100KHz This is the clock input to the tachometer monitor logic. In Mode 1, the
TACH is measured in the number of these clocks. This clock is derived
from the main clock domain.
27.7.3 RESETS
Name Description
RESET_SYS This signal resets all the registers and logic in this block to their default
state.
27.8 Interrupts
This section defines the Interrupt Sources generated from this block.
27.10 Description
The TACH block monitors Tach output signals or locked rotor signals generated by various types of fans. These signals
can be used to determine the speed of the attached fan. This block is designed to monitor fans at fan speeds from 100
RPMs to 30,000 RPMs.
Typically, these are DC brushless fans that generate (with each revolution) a 50% duty cycle, two-period square wave,
as shown in Figure 27-2 below.
one revolution
27.11 EC Registers
Registers for this block are shown in the following summary table. Addresses for each register are determined by adding
the offset to the Base Address for each instance of the TACH Block in the Block Overview and Base Address Table in
Section 3.0, "Device Inventory".
Offset 00h
Reset
Bits Description Type Default
Event
31:16 TACHX_COUNTER R 00h RESET_
This 16-bit field contains the latched value of the internal Tach pulse SYS
counter, which may be configured by the Tach Reading Mode Select
field to operate as a free-running counter or to be gated by the Tach
input signal.
Reset
Bits Description Type Default
Event
10 TACH_READING_MODE_SELECT R/W 0b RESET_
SYS
1=Counter is incremented on the rising edge of the 100KHz input. The
counter is latched into the TACHX_COUNTER field and reset
when the programmed number of edges is detected.
0=Counter is incremented when Tach Input transitions from low-to-
high state (default)
9 Reserved R - -
8 FILTER_ENABLE R/W 0b RESET_
This filter is used to remove high frequency glitches from Tach Input. SYS
When this filter is enabled, Tach input pulses less than two 100KHz
periods wide get filtered.
1=Filter enabled
0=Filter disabled (default)
Offset 04h
Reset
Bits Description Type Default
Event
31:4 Reserved R - -
3 COUNT_READY_STATUS R/WC 0b RESET_
This status bit is asserted when the Tach input changes state and SYS
when the counter value is latched. This bit remains cleared to '0'
when the TACH_READING_MODE_SELECT bit in the TACHx Con-
trol Register is '0'.
When the TACH_READING_MODE_SELECT bit in the TACHx Con-
trol Register is set to '1', this bit is set to ‘1’ when the counter value is
latched by the hardware. It is cleared when written with a ‘1’. If
COUNT_READY_INT_EN in the TACHx Control Register is set to 1,
this status bit will assert the Tach Interrupt signal.
1=Reading ready
0=Reading not ready
2 TOGGLE_STATUS R/WC 0b RESET_
This bit is set when Tach Input changes state. It is cleared when writ- SYS
ten with a ‘1b’. If TACH_INPUT_INT_EN in the TACHx Control Reg-
ister is set to ‘1b’, this status bit will assert the Tach Interrupt signal.
Note:
• Some fans offer a Locked Rotor output pin that generates a level event if a locked rotor is detected. This bit may
be used in combination with the Tach pin status bit to detect a locked rotor signal event from a fan.
• Tach Input may come up as active for Locked Rotor events. This would not cause an interrupt event because the
pin would not toggle. Firmware must read the status events as part of the initialization process, if polling is not
implemented.
Offset 08h
Reset
Bits Description Type Default
Event
31:16 Reserved - - -
15:0 TACH_HIGH_LIMIT R/W FFFFh RESET_
This value is compared with the value in the TACHX_COUNTER SYS
field. If the value in the counter is greater than the value programmed
in this register, the TACH_OUT_OF_LIMIT_STATUS bit will be set.
The TACH_OUT_OF_LIMIT_STATUS status event may be enabled
to generate an interrupt to the embedded controller via the
TACH_OUT_OF_LIMIT_ENABLE bit in the TACHx Control Register.
27.11.4 TACHX LOW LIMIT REGISTER
Offset 0Ch
Reset
Bits Description Type Default
Event
31:16 Reserved R - -
15:0 TACHX_LOW_LIMIT R/W 0000h RESET_
This value is compared with the value in the TACHX_COUNTER field SYS
of the TACHx Control Register. If the value in the counter is less than
the value programmed in this register, the TACH_OUT_OF_LIM-
IT_STATUS bit will be set. The TACH_OUT_OF_LIMIT_STATUS sta-
tus event may be enabled to generate an interrupt to the embedded
controller via the TACH_OUT_OF_LIMIT_ENABLE bit in the TACHx
Control Register
28.1 Introduction
This block generates a PWM output that can be used to control 4-wire fans, blinking LEDs, and other similar devices.
Each PWM can generate an arbitrary duty cycle output at frequencies from less than 0.1 Hz to 24 MHz.
The PWMx Counter ON Time registers and PWMx Counter OFF Time registers determine the operation of the
PWM_OUTPUT signals. See Section 28.11.1, "PWMx Counter ON Time Register" and Section 28.11.2, "PWMx
Counter OFF Time Register" for a description of the PWM_OUTPUT signals.
28.2 References
There are no standards referenced in this chapter.
28.3 Terminology
There is no terminology defined for this section.
28.4 Interface
This block is designed to be accessed externally via the pin interface and internally via a registered host interface.
PWM
Host Interface
Signal Description
Interrupts
Name Description
VTR The logic and registers implemented in this block are powered by this
power well.
28.7.2 CLOCK INPUTS
Name Description
48MHz Clock input for generating high PWM frequencies, such as 15 kHz to 30
kHz.
100KHz This is the clock input for generating low PWM frequencies, such as 10
Hz to 100 Hz.
28.7.3 RESETS
Name Description
RESET_SYS This signal resets all the registers and logic in this block to their default
state.
28.8 Interrupts
The PWM block does not generate any interrupt events.
28.10 Description
The PWM_OUTPUT signal is used to generate a duty cycle of specified frequency. This block can be programmed so
that the PWM signal toggles the PWM_OUTPUT, holds it high, or holds it low. When the PWM is configured to toggle,
the PWM_OUTPUT alternates from high to low at the rate specified in the PWMx Counter ON Time Register and PWMx
Counter OFF Time Register.
The following diagram illustrates how the clock inputs and registers are routed to the PWM Duty Cycle & Frequency
Control logic to generate the PWM output.
PWM BLOCK
Clock Select
CLOCK_HIGH Clock
Pre-
CLOCK_LOW Divider
(15:0) Invert_PWM PWM_ OUTPUT
16-bit down
EC I/F PWM Registers counter
Note: In Figure 28-2, the 48MHz clock is represented as CLOCK_HIGH and the 100KHz clock is represented as
CLOCK_LOW.
The PWM clock source to the PWM Down Counter, used to generate a duty cycle and frequency on the PWM, is deter-
mined through the Clock select[1] and Clock Pre-Divider[6:3] bits in the PWMx Configuration Register register.
The PWMx Counter ON/OFF Time registers determine both the frequency and duty cycle of the signal generated on
PWM_OUTPUT as described below.
The PWM frequency is determined by the selected clock source and the total on and off time programmed in the PWMx
Counter ON Time Register and PWMx Counter OFF Time Register registers. The frequency is the time it takes (at that
clock rate) to count down to 0 from the total on and off time.
The PWM duty cycle is determined by the relative values programmed in the PWMx Counter ON Time Register and
PWMx Counter OFF Time Register registers.
The PWM Frequency Equation and PWM Duty Cycle Equation are shown below.
1 ClockSourceFrequency
PWM Frequency = -------------------------------------------- ------------------------------------------------------------------------------------------------------------------------------------------------------------
PreDivisor + 1 PWMCounterOnTime + 1 + PWMCounterOffTime + 1
In this equation, the ClockSourceFrequency variable is the frequency of the clock source selected by the Clock Select
bit in the PWMx Configuration Register, and PreDivisor is a field in the PWMx Configuration Register. The PWMCoun-
terOnTime, PWMCounterOffTime are registers that are defined in Section 28.11, "EC Registers".
PWMCounterOnTime + 1
PWM Duty Cycle = -------------------------------------------------------------------------------------------------------------------------------------
PWMCounterOnTime + 1 + PWMCounterOffTime + 1
The PWMx Counter ON Time Register and PWMx Counter OFF Time Register registers should be accessed as 16-bit
values.
28.11 EC Registers
Registers for this block are shown in the following summary table. Addresses for each register are determined by adding
the offset to the Base Address for each instance of the PWM Block in the Block Overview and Base Address Table in
Section 3.0, "Device Inventory".
Offset 00h
Reset
Bits Description Type Default
Event
31:16 Reserved R - -
15:0 PWMX_COUNTER_ON_TIME R/W 0000h RESET_
This field determine both the frequency and duty cycle of the PWM SYS
signal. Setting this field to a value of n will cause the On time of the
PWM to be n+1 cycles of the PWM Clock Source.
Offset 04h
Reset
Bits Description Type Default
Event
31:16 Reserved R - -
15:0 PWMX_COUNTER_OFF_TIME R/W FFFFh RESET_
This field determine both the frequency and duty cycle of the PWM SYS
signal. Setting this field to a value of n will cause the Off time of the
PWM to be n+1 cycles of the PWM Clock Source.
When this field is set to zero, the PWM_OUTPUT is held high (Full
On).
Offset 08h
Reset
Bits Description Type Default
Event
31:7 Reserved R - -
6:3 CLOCK_PRE_DIVIDER R/W 0000b RESET_
The Clock source for the 16-bit down counter (see PWMx Counter SYS
ON Time Register and PWMx Counter OFF Time Register) is deter-
mined by bit D1 of this register. The Clock source is then divided by
the value of Pre-Divider+1 and the resulting signal determines the
rate at which the down counter will be decremented. For example, a
Pre-Divider value of 1 divides the input clock by 2 and a value of 2
divides the input clock by 3. A Pre-Divider of 0 will disable the Pre-
Divider option.
2 INVERT R/W 0b RESET_
SYS
1=PWM_OUTPUT ON State is active low
0=PWM_OUTPUT ON State is active high
1 CLOCK_SELECT R/W 0b RESET_
This bit determines the clock source used by the PWM duty cycle SYS
and frequency control logic.
1=CLOCK_LOW
0=CLOCK_HIGH
0 PWM_ENABLE R/W 0b RESET_
When the PWM_ENABLE is set to 0 the internal counters are reset SYS
and the internal state machine is set to the OFF state. In addition,
the PWM_OUTPUT signal is set to the inactive state as determined
by the Invert bit. The PWMx Counter ON Time Register and PWMx
Counter OFF Time Register are not affected by the PWM_ENABLE
bit and may be read and written while the PWM enable bit is 0.
1=Enabled (default)
0=Disabled (gates clocks to save power)
29.1 Overview
The MEC170x includes a PECI Interface to allow the EC to retrieve temperature readings from PECI-compliant
devices. The PECI Interface implements the PHY and Link Layer of a PECI host controller as defined in References[1]
and includes hardware support for the PECI 3.1 command set.
This chapter focuses on MEC170x-specific PECI Interface configuration information such as Power Domains, Clock
Inputs, Resets, Interrupts, and other chip specific information. For a functional description of the MEC170x PECI Inter-
face refer to References [1].
29.2 References
1. PECI Interface Core, Rev. 1.31, Core-Level Architecture Specification, Microchip Confidential, 4/15/11
29.3 Terminology
No terminology has been defined for this chapter.
29.4 Interface
This block is designed to be accessed externally via the pin interface and internally via a registered host interface.
PECI Interface
Host Interface
PECI_DAT
Power, Clocks and Reset
Interrupts
Note: Routing guidelines for the PECI_DAT pin is provided in Intel Platform design guides. Refer to the appropri-
ate Intel document for current information. See Table 29-2.
Name Description
VTR The logic and registers implemented in this block are powered by this
power well.
29.7.2 CLOCK INPUTS
Name Description
48MHz This is the main system clock. (note)
Note: PECI Module Input Clock is an 8MHz clock derived from the 48MHz clock input. An 8MHz clock supports
a maximum Optimal Bit Time of 500 kbps. The Optimal Bit Time is determined by the value programmed
into the Optimal Bit Time registers at offset 20h and 24h.
29.7.3 RESETS
Name Description
RESET_SYS This signal resets all the registers and logic in this block to their default
state.
29.8 Interrupts
This section defines the Interrupt Sources generated from this block.
Source Description
Note: If the PECI interface is not in use, the PECI_DISABLE bit in the PECI Disable Register must be set to ‘1b’
in order to minimize leakage current.
29.11 EC Registers
Registers for this block are shown in the following summary table. Addresses for each register are determined by adding
the offset to the Base Address for each instance of the PECI Interface Block in the Block Overview and Base Address
Table in Section 3.0, "Device Inventory".
30.1 Introduction
This block is designed to convert external analog voltage readings into digital values. It consists of a single successive-
approximation Analog-Digital Converter that can be shared among multiple inputs.
30.2 References
No references have been cited for this chapter
30.3 Terminology
No terminology is defined for this chapter
30.4 Interface
This block is designed to be accessed externally via the pin interface and internally via a registered host interface.
Host Interface
Signal Description
Power, Clocks and Reset
Interrupts
30.8 Interrupts
ADC BLOCK
VREF
Analog Inputs
Latch
Host Interface reading Control 10-bit reading value ADC MUX
Logic
ADC_Single_Int
ADC_Repeat_Int Control
ADC_SLEEP_EN
ADC_CLK_REQ
The MEC170x features a sixteen channel successive approximation Analog to Digital Converter. The ADC architecture
features excellent linearity and converts analog signals to 10 bit words. Conversion takes less than 1.125 microseconds
per 10-bit word. The sixteen channels are implemented with a single high speed ADC fed by a sixteen input analog mul-
tiplexer. The multiplexer cycles through the sixteen voltage channels, starting with the lowest-numbered channel and
proceeding to the highest-number channel, selecting only those channels that are programmed to be active.
The input range on the voltage channels spans from 0V to the voltage reference. With an voltage reference of 3.3V, this
provides resolutions of 3.2mV. The range can easily be extended with the aid of resistor dividers. The accuracy of any
voltage reading depends on the accuracy and stability of the voltage reference input.
The ADC conversion cycle starts either when the START_SINGLE bit in the ADC to set to 1 or when the ADC Repeat
Timer counts down to 0. When the START_SINGLE is set to 1 the conversion cycle converts channels enabled by con-
figuration bits in the ADC Single Register. When the Repeat Timer counts down to 0 the conversion cycle converts chan-
nels enabled by configuration bits in the ADC Repeat Register. When both the START_SINGLE bit and the Repeat
Timer request conversions the START_SINGLE conversion is completed first.
Conversions always start with the lowest-numbered enabled channel and proceed to the highest-numbered enabled
channel.
Note: If software repeatedly sets Start_Single to 1 at a rate faster than the Repeat Timer count down interval, the
conversion cycle defined by the ADC Repeat Register will not be executed.
Note: ADC inputs require at least a 0.1 uF capacitor to filter glitches. See the MEC170x PCB Layout Guide for
ADC filtering recommendations.
30.11 EC Registers
Registers for this block are shown in the following summary table. Addresses for each register are determined by adding
the offset to the Base Address for each instance of the Analog to Digital Converter Block in the Block Overview and
Base Address Table in Section 3.0, "Device Inventory".
Offset 00h
Reset
Bits Description Type Default
Event
31:8 Reserved R - -
7 SINGLE_DONE_STATUS R/WC 0h RESET_
This bit is cleared when it is written with a 1. Writing a 0 to this bit has SYS
no effect.
This bit can be used to generate an EC interrupt.
Reset
Bits Description Type Default
Event
1 START_SINGLE R/W 0h RESET_
SYS
1=The ADC Single Mode is enabled. This setting starts a single con-
version cycle of all ADC channels enabled by bits SINGLE_EN
in the ADC Single Register.
0=The ADC Single Mode is disabled.
Offset 04h
Reset
Bits Description Type Default
Event
31:16 REPEAT_DELAY R/W 0000h RESET_
This field determines the interval between conversion cycles when SYS
START_REPEAT is 1. The delay is in units of 40s. A value of 0
means no delay between conversion cycles, and a value of 0xFFFF
means a delay of 2.6 seconds.
Offset 08h
Reset
Bits Description Type Default
Event
31:16 Reserved R - -
15:0 ADC_CH_STATUS R/WC 00h RESET_
All bits are cleared by being written with a ‘1’. SYS
Note: Do not change the bits in this register in the middle of a conversion cycle to insure proper operation.
Offset 0Ch
Reset
Bits Description Type Default
Event
31:16 Reserved R - -
15:0 SINGLE_EN R/W 0h RESET_
Each bit in this field enables the corresponding ADC channel when a SYS
single cycle of conversions is started when the START_SINGLE bit
in the ADC Control Register is written with a 1.
Offset 10h
Reset
Bits Description Type Default
Event
31:16 Reserved R - -
15:0 RPT_EN R/W 00h RESET_
Each bit in this field enables the corresponding ADC channel for SYS
each pass of the Repeated ADC Conversion that is controlled by bit
START_REPEAT in the ADC Control Register.
Note: The ADC Channel Reading Registers access require single 16, or 32 bit reads; i.e., two 8 bit reads will
not provide data coherency.
31.1 Introduction
The RPM-PWM Interface is a closed-loop RPM based Fan Control Algorithm that monitors a fan’s speed and automat-
ically adjusts the drive to the fan in order to maintain the desired fan speed.
The RPM-PWM Interface functionality consists of a closed-loop “set-and-forget” RPM-based fan controller.
31.2 References
No references have been cited for this chapter
31.3 Terminology
There is no terminology defined for this chapter.
31.4 Interface
This block is designed to be accessed externally via the pin interface and internally via a registered host interface.
The registers in the block are accessed by embedded controller code at the addresses shown in Section 31.9, "EC Reg-
isters".
RPM-PWM Interface
Host Interface
Interrupts
Name Description
VTR This power well sources the registers and logic in this block.
31.5.2 CLOCK INPUTS
Name Description
48MHz This clock signal drives selected logic (e.g., counters).
32KHz This clock signal drives selected logic (e.g., counters).
31.5.3 RESETS
Name Description
RESET_SYS This reset signal resets all of the registers and logic in this block.
31.6 Interrupts
This section defines the Interrupt Sources generated from this block.
Source Description
FAN_FAIL The DRIVE_FAIL & FAN_SPIN bits in the Fan Status Register are logi-
cally ORed and routed to the FAIL_SPIN Interrupt
FAN_STALL The FAN_STALL bit in the Fan Status Register is routed to the
FAN_STALL Interrupt
31.8 Description
This section defines the functionality of the block.
No
TACH
Yes Reading=
Maintain Fan Drive
TACH
Target?
TACH
Yes Reading < No
TACH
Target?
Note: The tachometer measurement works independently of the drive settings. If the device is put into manual
mode and the fan drive is set at a level that is lower than the fan can operate (including zero drive), the
tachometer measurement may signal a Stalled Fan condition and assert an interrupt.
STALLED FAN
If the TACH Reading Register exceeds the user-programmable Valid TACH Count setting, it will flag the fan as stalled
and trigger an interrupt. If the RPM based Fan Control Algorithm is enabled, the algorithm will automatically attempt to
restart the fan until it detects a valid tachometer level or is disabled.
The FAN_STALL Status bit indicates that a stalled fan was detected. This bit is checked conditionally depending on the
mode of operation.
• Whenever the Manual Mode is enabled or whenever the drive value is changed from 00h, the FAN_STALL inter-
rupt will be masked for the duration of the programmed Spin Up Time (see Section 31.9.5, "Fan Spin Up Configu-
ration Register") to allow the fan an opportunity to reach a valid speed without generating unnecessary interrupts.
• In Manual Mode, whenever the TACH Reading Register exceeds the Valid TACH Count Register setting, the
FAN_STALL status bit will be set.
• When the RPM based Fan Control Algorithm, the stalled fan condition is checked whenever the Update Time is
met and the fan drive setting is updated. It is not a continuous check.
Note: When the device is operating in manual mode, the FAN_SPIN status bit may be set if the fan drive is set
at a level that is lower than the fan can operate (excluding zero drive which disables the fan driver). If the
FAN_SPIN interrupt is unmasked, this condition will trigger an errant interrupt.
Figure 31-3, "Spin Up Routine" shows an example of the Spin Up Routine in response to a programmed fan speed
change based on the first condition above.
100%
(optional)
Fan Step
Prev Target
Count = FFh
¼ of Spin Up Time
Update Time
Spin Up Time
Target Count Check TACH Target Count
Changed Reached
Interrupt
Status Bit 1
Interrupt Event 1
.
.
Interrupt
Enable Bit 1 .
. . . Interrupt Signal
..
. .
Interrupt
Status Bit n
.
Interrupt Event n
Interrupt
Enable Bit n
Offset 00h
Reset
Bits Description Type Default
Event
5:0 Reserved R - -
Offset 02h
Reset
Bits Description Type Default
Event
1=The ramp rate control circuitry for the Manual Mode of operation
is enabled. The PWM setting will follow the ramp rate controls
as determined by the Fan Step and Update Time settings. The
maximum PWM step is capped at the Fan Step setting and is
updated based on the Update Time as given by the field
UPDATE.
0=The ramp rate control circuitry for the Manual Mode of operation
is disabled. When the Fan Drive Setting values are changed
and the RPM based Fan Control Algorithm is disabled, the fan
driver will be set to the new setting immediately.
3=200 RPM
2=100 RPM
1=50 RPM
0=0 RPM
Offset 02h
Reset
Bits Description Type Default
Event
8 Reserved R - -
1=The control circuitry is enabled and the Fan Driver output will be
automatically updated to maintain the programmed fan speed
as indicated by the TACH Target Register.
0=The control circuitry is disabled and the fan driver output is deter-
mined by the Fan Driver Setting Register.
Offset 02h
Reset
Bits Description Type Default
Event
7=1600ms
6=1200ms
5=800ms
4=500ms
3=400ms
2=300ms
1=200ms
0=100ms
Note: This ramp rate control applies for all changes to the
active PWM output including when the RPM based Fan
Speed Control Algorithm is disabled.
Offset 04h
Reset
Bits Description Type Default
Event
Offset 05h
Reset
Bits Description Type Default
Event
7:6 Reserved R - -
Gain Factor:
3=8x
2=4x
1=2x
0=1x
Offset 05h
Reset
Bits Description Type Default
Event
Gain Factor:
3=8x
2=4x
1=2x
0=1x
Gain Factor:
3=8x
2=4x
1=2x
0=1x
Offset 06h
Reset
Bits Description Type Default
Event
1=The Spin Up Routine will not drive the PWM to 100%. It will set
the drive at the programmed spin level for the entire duration of
the programmed spin up time
0=The Spin Up Routine will drive the PWM to 100% for 1/4 of the
programmed spin up time before reverting to the programmed
spin level
Offset 06h
Reset
Bits Description Type Default
Event
7=65%
6=60%
5=55%
4=50%
3=45%
2=40%
1=35%
0=30%
3=2 seconds
2=1 second
1=500 ms
0=250 ms
Offset 07h
Reset
Bits Description Type Default
Event
Offset 08h
Reset
Bits Description Type Default
Event
Note: To ensure proper operation, the Fan Minimum Drive register must be set prior to setting the Tach Target
High and Low Byte registers, and then the Tach Target registers can be subsequently updated. At a later
time, if the Fan Minimum Drive register is changed to a value higher than current Fan value, the Tach Target
registers must also be updated.
Note: The automatic invoking of the Spin Up Routine only applies if the Fan Speed Control Algorithm is used. If
the FSC is disabled, then the device will only invoke the Spin Up Routine when the PWM setting changes
from 00h.
If a TACH Target setting is set above the Valid TACH Count setting, that setting will be ignored and the algorithm will
use the current fan drive setting.
These registers only apply if the Fan Speed Control Algorithm is used.
Offset 09h
Reset
Bits Description Type Default
Event
Offset 0Ah
Reset
Bits Description Type Default
Event
2:0 Reserved R - -
Offset 0Ch
Reset
Bits Description Type Default
Event
2:0 Reserved R - -
1 n – 1
RPM = -------------- -------------------------------- f TACH 60
Poles 1
COUNT ----
m
where:
- Poles = number of poles of the fan (typically 2)
- fTACH = the frequency of the tachometer measurement clock
- n = number of edges measured (typically 5 for a 2 pole fan)
- m = the multiplier defined by the RANGE bits
- COUNT = TACH Reading Register value (in decimal)
The following equation shows the simplified translation of the TACH Reading Register count to RPM assuming a 2-pole
fan, measuring 5 edges, with a frequency of 32.768kHz.
3932160 m
RPM = -------------------------------
COUNT
Offset 0Eh
Reset
Bits Description Type Default
Event
2:0 Reserved R - -
Offset 10h
Reset
Bits Description Type Default
Event
7:2 Reserved R - -
3=2.34KHz
2=4.67KHz
1=23.4KHz
0=26.8KHz
Offset 11h
Reset
Bits Description Type Default
Event
7:6 Reserved R - -
4:2 Reserved R - -
1=The Spin up Routine for the Fan could not detect a valid tachom-
eter reading within its maximum time window.
0=The Spin up Routine for the Fan detected a valid tachometer
reading within its maximum time window.
32.1 Overview
The MEC170x includes a 2K x 8bit EEPROM (Electrically Erasable Programmable Read Only Memory).
32.2 References
No references have been cited for this feature.
32.3 Terminology
There is no terminology defined for this section.
32.4 Interface
EEPROM
Host Interface
Signal Description
Interrupts
Name Description
VTR The logic and registers implemented in this block are powered by this
power well.
Name Description
32.7.3 RESETS
Name Description
RESET_SYS This signal resets all the registers and logic in this block to their default
state.
RESET_EEPROM This signal resets most of the registers and logic in this block to their
default state. It is asserted either on a RESET_SYS is asserted, or when
the SOFT_RESET bit in the EEPROM Mode Register is written with a
‘1b’.
32.8 Interrupts
Source Description
Data
HOST In
SPB
EEPROM Registers
Addr strobes
Data
Command
Status EEPROM
State
Config
Machine
Unlock
32.11.1 ENDURANCE
Each 32-byte page can be written up to 1,000,000 times before the page’s ability to retain data is compromised.
int password;
#define SECRET_PASSWORD 0xXXXXXXXX
#define Unlock_register 0x40002C14 // address of key register
password = eeprom_read(0x7FC);
if( password == 0xFFFFFFFF )
{
// EEPROM is unlocked and the key not yet installed
// establish key and force a reboot
eeprom_write(0x7FF, SECRET_PASSWORD);
force_reset();
} else {
// unlock the EEPROM
*Unlock_register = SECRET_PASSWORD;
}
The subroutines force_reset() forces a system reset, using, for example, the watchdog timer. If the EC firmware knows
the right password, it can unblock the EEPROM memory block; if it does not, then the block will remain inaccessible.
The code can run in the Boot Block so that the SECRET_PASSWORD (a constant in the code) cannot be read via JTAG
or over the LPC bus, and thus can only be known to a valid EC firmware block.
7:4 Reserved R
1 WRITE_ENABLE R
In normal use, this bit is always 0. Write enable of the EEPROM fabric is handled
automatically.
0 WRITE_IN_PROGRESS R
Offset 00h
Reset
Bits Description Type Default
Event
31:2 Reserved R - -
1 SOFT_RESET W - RESET
This 8-bit register holds the data to be written into the EEPROM _EE-
memory array during a program cycle, as well as the data returned PROM
from an EEPROM read during a read cycle. It should be set up
before the EEPROM Execute Register is configured.
Offset 04h
Reset
Bits Description Type Default
Event
31:29 Reserved R - -
23:19 Reserved R - -
3=WRITE STATUS
2=READ STATUS
1=WRITE
0=READ
This field only applies to READ and WRITE commands. It does not
apply to READ STATUS and WRITE STATUS commands.
Offset 08h
Reset
Bits Description Type Default
Event
31:9 Reserved R - -
8 TRANSFER_ACTIVE R 0h RESET
A transfer between the EEPROM fabric and the EEPROM Buffer _EE-
Register is in progress PROM
6:3 Reserved R - -
Offset 08h
Reset
Bits Description Type Default
Event
Offset 0Ch
Reset
Bits Description Type Default
Event
31:2 Reserved R - -
1=Enable Interrupt
0=Disable Interrupt
1=Enable Interrupt
0=Disable Interrupt
Offset 10h
Reset
Bits Description Type Default
Event
31 Reserved R - -
Offset 14h
Reset
Bits Description Type Default
Event
31 Reserved R - -
Offset 18h
Reset
Bits Description Type Default
Event
31:2 Reserved R - -
1=The LOCK bit is set to ‘1b’ whenever the JTAG/SWD test inter-
face is activated
0=The JTAG/SWD test interface has no effect on the LOCK bit
Reset
Bits Description Type Default
Event
For READ STATUS and WRITE STATUS commands, only the first
byte (offset 0 in this register) is used.
33.1 Introduction
LEDs are used in computer applications to communicate internal state information to a user through a minimal interface.
Typical applications will cause an LED to blink at different rates to convey different state information. For example, an
LED could be full on, full off, blinking at a rate of once a second, or blinking at a rate of once every four seconds, in order
to communicate four different states.
As an alternative to blinking, an LED can “breathe”, that is, oscillate between a bright state and a dim state in a contin-
uous, or apparently continuous manner. The rate of breathing, or the level of brightness at the extremes of the oscillation
period, can be used to convey state information to the user that may be more informative, or at least more novel, than
traditional blinking.
The blinking/breathing hardware is implemented using a PWM. The PWM can be driven either by the Main system clock
or by a 32.768 KHz clock input. When driven by the Main system clock, the PWM can be used as a standard 8-bit PWM
in order to control a fan. When used to drive blinking or breathing LEDs, the 32.768 KHz clock source is used.
Features:
• Each PWM independently configurable
• Each PWM configurable for LED blinking and breathing output
• Highly configurable breathing rate from 60ms to 1min
• Non-linear brightness curves approximated with 8 piece wise-linear segments
• All LED PWMs can be synchronized
• Each PWM configurable for 8-bit PWM support
• Multiple clock rates
• Configurable Watchdog Timer
33.2 Interface
This block is designed to drive a pin on the pin interface and to be accessed internally via a registered host interface.
Blinking/Breathing PWM
Host Interface
Signal Description
Clock Inputs
Resets
Interrupts
Name Description
VTR Main power. The source of main power for the device is system depen-
dent.
Name Description
32KHz 32.768 KHz clock
48MHz Main system clock
33.5.3 RESETS
Name Description
RESET_SYS Block reset
33.6 Interrupts
Each PWM can generate an interrupt. The interrupt is asserted for one Main system clock period whenever the PWM
WDT times out. The PWM WDT is described in Section 33.8.3.1, "PWM WDT".
Source Description
PWM_WDT PWM watchdog time out
Note: In order for the MEC170x to enter its.Heavy Sleep state, the SLEEP_ENABLE input for all Blinking/Breath-
ing PWM instances must be asserted, even if the PWMs are configured to use the low speed clock.
33.8 Description
33.8.1 BREATHING
If an LED blinks rapidly enough, the eye will interpret the light as reduced brightness, rather than a blinking pattern.
Therefore, if the blinking period is short enough, modifying the duty cycle will set the apparent brightness, rather than a
blinking rate. At a blinking rate of 128Hz or greater, almost all people will perceive a continuous light source rather than
an intermittent pattern.
Because making an LED appear to breathe is an aesthetic effect, the breathing mechanism must be adjustable or cus-
tomers may find the breathing effect unattractive. There are several variables that can affect breathing appearance, as
described below.
Full on
Full off
The breathing range of and LED can range between full on and full off, or in a range that falls within the full-on/full-off
range, as shown in this figure. The ramp time can be different in different applications. For example, if the ramp time
was 1 second, the LED would appear to breathe quickly. A time of 2 seconds would make the LED appear to breathe
more leisurely.
The breathing pattern can be clipped, as shown in the following figure, so that the breathing effect appears to pause at
its maximum and minimum brightnesses:
Full on
Full off
The clipping periods at the two extremes can be adjusted independently, so that for example an LED can appear to
breathe (with a short delay at maximum brightness) followed by a longer “resting” period (with a long delay at minimum
brightness).
Full on
Full off
In this figure, the rise and fall curves are implemented in 4 linear segments and are the rise and fall periods are sym-
metric.
The breathing mode uses the 32.768 KHz clock for its time base.
33.8.2 BLINKING
When configured for blinking, a subset of the hardware used in breathing is used to implement the blinking function. The
PWM (an 8-bit accumulator plus an 8-bit duty cycle register) drives the LED directly. The Duty Cycle register is pro-
grammed directly by the user, and not modified further. The PWM accumulator is configured as a simple 8-bit up counter.
The counter uses the 32.768 KHz clock, and is pre-scaled by the Delay counter, to slow the PWM down from the 128Hz
provided by directly running the PWM on the 32.768 KHz clock.
With the pre-scaler, the blink rate of the LED could be as fast as 128Hz (which, because it is blinking faster than the eye
can distinguish, would appear as a continuous level) to 0.03125Hz (that is, with a period of 7.8ms to 32 seconds). Any
duty cycle from 0% (0h) to 100% (FFh) can be configured, with an 8-bit precision. An LED with a duty cycle value of 0h
will be fully off, while an LED with a duty cycle value of FFh will be fully on.
In Blinking mode the PWM counter is always in 8-bit mode.
Table 33-2, "LED Blink Configuration Examples" shows some example blinking configurations:
The Blinking and General Purpose PWM modes share the hardware used in the breathing mode. The Prescale value
is derived from the LD field of the LED_DELAY register and the Duty Cycle is derived from the MIN field of the LED_LIM-
ITS register.
f clock
f PWM = ------------------------------------------
256 LD + 1
where fPWM is the frequency of the PWM, fclock is the frequency of the input clock (32.768 KHz clock or Main system
clock) and LD is the contents of the LD field.
Note: At a duty cycle value of 00h (in the MIN register), the LED output is fully off. At a duty cycle value of 255h,
the LED output is fully on. Alternatively, In order to force the LED to be fully on, firmware can set the CON-
TROL field of the Configuration register to 3 (always on).
The other registers in the block do not affect the PWM or the LED output in Blinking/PWM mode.
300
250
200
le
c
y
C 150
ty
u
D
100
50
0
0 8 6 4 2 0 8 6 4 2 0 8 6 4 2 0 8 6 4 2 0 8 6 4 2 0 8 6 4 2 0 8 6 4 2
2 5 8 1 4 6 9 2 5 8 0 3 6 9 2 4 7 0 3 6 8 1 4 7 0 2 5 8 1 4 6 9 2 5
3 6 9 3 6 9 2 6 9 2 6 9 2 5 9 2 5 9 2 5 8 2 5 8 2 5 8 1 5 8 1 4 8 1
1 1 1 2 2 2 3 3 3 4 4 4 5 5 5 6 6 6 7 7 7 8 8 8 9 9 9 0 0 0 1
1 1 1 1
Time in ms
300
250
200
le
c
y
C 150
ty
u
D
100
50
0
0 4 8 2 6 0 4 8 2 6 0 4 8 2 6 0 4 8 2 6 0 4 8 2 6 0 4 8 2 6 0 4 8 2 6
6 2 9 5 2 8 4 1 7 4 0 6 3 9 6 2 8 5 1 8 4 0 7 3 0 6 2 9 5 2 8 4 1 7
1 3 4 6 8 9 1 3 4 6 8 9 1 2 4 6 7 9 1 2 4 6 7 9 1 2 4 5 7 9 0 2 4 5
1 1 1 1 1 1 2 2 2 2 2 2 3 3 3 3 3 3 4 4 4 4 4 4 5 5 5 5
Time in ms
33.10 EC Registers
Registers for this block are shown in the following summary table. Addresses for each register are determined by adding
the offset to the Base Address for each instance of the Blinking/Breathing PWM Block in the Block Overview and Base
Address Table in Section 3.0, "Device Inventory".
In the following register definitions, a “PWM period” is defined by time the PWM counter goes from 000h to its maximum
value (FFh in 8-bit mode, FEh in 7-bit mode and FCh in 6-bit mode, as defined by the PSCALE field in register
LED_CFG). The end of a PWM period occurs when the PWM counter wraps from its maximum value to 0.
The registers in this block can be written 32-bits, 16-bits or 8-bits at a time. Writes to LED Configuration Register take
effect immediately. Writes to LED Limits Register are held in a holding register and only take effect only at the end of a
PWM period. The update takes place at the end of every period, even if only one byte of the register was updated. This
means that in blink/PWM mode, software can change the duty cycle with a single 8-bit write to the MIN field in the
LED_LIMIT register. Writes to LED Delay Register, LED Update Stepsize Register and LED Update Interval Register
also go initially into a holding register. The holding registers are copied to the operating registers at the end of a PWM
period only if the Enable Update bit in the LED Configuration Register is set to 1. If LED_CFG is 0, data in the holding
registers is retained but not copied to the operating registers when the PWM period expires. To change an LED breath-
Offset 00h
Reset
Bits Description Type Default
Event
31:16 Reserved R - -
16 SYMMETRY R/W 0b RESET_
SYS
1=The rising and falling ramp times are in Asymmetric mode.
Table 33-7, "Asymmetric Breathing Mode Register Usage" shows
the application of the Stepsize and Interval registers to the four
segments of rising duty cycles and the four segments of falling
duty cycles.
0=The rising and falling ramp times (as shown in Figure 33-2, "Breath-
ing LED Example") are in Symmetric mode. Table 33-6, "Sym-
metric Breathing Mode Register Usage" shows the application of
the Stepsize and Interval registers to the 8 segments of both ris-
ing and falling duty cycles.
15:8 WDT_RELOAD R/W 14h RESET_
The PWM Watchdog Timer counter reload value. On system reset, it SYS
defaults to 14h, which corresponds to a 4 second Watchdog timeout
value.
7 RESET W 0b RESET_
Writes of’1’ to this bit resets the PWM registers to their default val- SYS
ues. This bit is self clearing.
Writes of ‘0’ to this bit have no effect.
6 ENABLE_UPDATE R/WS 0b RESET_
This bit is set to 1 when written with a ‘1’. Writes of ‘0’ have no effect. SYS
Hardware clears this bit to 0 when the breathing configuration regis-
ters are updated at the end of a PWM period. The current state of the
bit is readable any time.
3=Reserved
2=PWM is configured as a 6-bit PWM
1=PWM is configured as a 7-bit PWM
0=PWM is configured as an 8-bit PWM
Reset
Bits Description Type Default
Event
3 SYNCHRONIZE R/W 0b RESET_
When this bit is ‘1’, all counters for all LEDs are reset to their initial SYS
values. When this bit is ‘0’ in the LED Configuration Register for all
LEDs, then all counters for LEDs that are configured to blink or
breathe will increment or decrement, as required.
Offset 04h
Reset
Bits Description Type Default
Event
31:16 Reserved R - -
15:8 MAXIMUM R/W 0h RESET_
In breathing mode, when the current duty cycle is greater than or SYS
equal to this value the breathing apparatus holds the current duty
cycle for the period specified by the field HD in register LED_DELAY,
then starts decrementing the current duty cycle
7:0 MINIMUM R/W 0h RESET_
In breathing mode, when the current duty cycle is less than or equal SYS
to this value the breathing apparatus holds the current duty cycle for
the period specified by the field LD in register LED_DELAY, then
starts incrementing the current duty cycle
In blinking mode, this field defines the duty cycle of the blink function.
Offset 08h
Reset
Bits Description Type Default
Event
31:24 Reserved R - -
23:12 HIGH_DELAY R/W 000h RESET_
In breathing mode, the number of PWM periods to wait before updat- SYS
ing the current duty cycle when the current duty cycle is greater than
or equal to the value MAX in register LED_LIMIT.
In blinking mode, this field defines the prescalar for the PWM clock
Offset 0Ch
Reset
Bits Description Type Default
Event
31:28 UPDATE_STEP7 R/W 0h RESET_
Amount the current duty cycle is adjusted at the end of every PWM SYS
period when the segment index is equal to 111.
27:24 UPDATE_STEP6 R/W 0h RESET_
Amount the current duty cycle is adjusted at the end of every PWM SYS
period when the segment index is equal to 110.
23:20 UPDATE_STEP5 R/W 0h RESET_
Amount the current duty cycle is adjusted at the end of every PWM SYS
period when the segment index is equal to 101
19:16 UPDATE_STEP4 R/W 0h RESET_
Amount the current duty cycle is adjusted at the end of every PWM SYS
period when the segment index is equal to 100.
15:12 UPDATE_STEP3 R/W 0h RESET_
Amount the current duty cycle is adjusted at the end of every PWM SYS
period when the segment index is equal to 011.
11:8 UPDATE_STEP2 R/W 0h RESET_
Amount the current duty cycle is adjusted at the end of every PWM SYS
period when the segment index is equal to 010.
7:4 UPDATE_STEP1 R/W 0h RESET_
Amount the current duty cycle is adjusted at the end of every PWM SYS
period when the segment index is equal to 001.
3:0 UPDATE_STEP0 R/W 0h RESET_
Amount the current duty cycle is adjusted at the end of every PWM SYS
period when the segment index is equal to 000.
Offset 10h
Reset
Bits Description Type Default
Event
31:28 UPDATE_INTERVAL7 R/W 0h RESET_
The number of PWM periods between updates to current duty cycle SYS
when the segment index is equal to 111b.
Reset
Bits Description Type Default
Event
7:4 UPDATE_INTERVAL1 R/W 0h RESET_
The number of PWM periods between updates to current duty cycle SYS
when the segment index is equal to 001b.
Offset 14h
Reset
Bits Description Type Default
Event
31:8 Reserved R - -
7:0 OUTPUT_DELAY R/W 000h RESET_
The delay, in counts of the clock defined in Clock Source (CLKSRC), SYS
in which output transitions are delayed. When this field is 0, there is
no added transition delay.
34.1 Introduction
The Resistor/Capacitor Identification Detection (RC_ID) interface provides a single pin interface which can discriminate
a number of quantized RC constants.
34.2 References
No references have been cited for this feature.
34.3 Terminology
There is no terminology defined for this section.
34.4 Interface
This block is designed to be accessed externally via the pin interface and internally via a registered host interface.
RC Identification Detection
Host Interface
Signal Description
Power, Clocks and Reset
Interrupts
Name Description
VTR The logic and registers implemented in this block are powered by this
power well.
34.7.2 CLOCK INPUTS
Name Description
48MHz The main clock domain, used to generate the time base that measures
the RC delay.
34.7.3 RESETS
Name Description
RESET_SYS This signal resets all the registers and logic in this block to their default
state.
34.8 Interrupts
This section defines the Interrupt Sources generated from this block.
Source Description
RCID This internal signal is generated when the DONE bit in the RC_ID
Control Register is set to ‘1’.
34.10 Description
Note: The RC_ID block only operates on 3.3V. The VTR pin associated with RC_ID signals must be connected
to a 3.3V supply. If the VTR pin is supplied with 1.8V, the RC_ID logic will not function correctly.
The Resistor/Capacitor Identification Detection (RC_ID) interface provides a single pin interface which can discriminate
a number of quantized RC constants. The judicious selection of RC values can provide a low cost means for system
element configuration identification. The RC_ID I/O pin measures the charge/discharge time for an RC circuit connected
to the pin as shown in Figure 34-2.
3.3 VDC
Threshold
detector R
RC_ID input RC_ID
RC_ID Data Glitch
TD_OUT
latch Filter VTH=2.2 VDC
C
START
ENABLE
The RC_ID interface determines the selected RC delay by measuring the rise time on the RC_ID pin that is attached to
the RC circuit, as shown in the above figure. The measurement is performed by first discharging the external capacitor
for a fixed period of time, set by an internal 16-bit counter running at a configurable time base, and then letting the capac-
itor charge again, using the same counter and time base to count how many clock ticks are required until the voltage
on the capacitor exceeds 2.2V. A glitch filter, consisting of three ticks of the 48MHz main oscillator, smooths the thresh-
old detection.
By fixing the capacitor value and varying the resistor value, up to eight discrete values can be determined based on the
final count. Section 34.11, "Time Constants" shows a range of possible R and C values that can be used to create eight
ID values.
Measurement requires five phases:
1. Reset. The two control bits (ENABLE and START) and the three status bits (TC, DONE and CY_ER) in the RC_ID
Control Register are all ‘0’. The RD_IC pin is tri-stated and the block is in its lowest power state. In order to enter
the Reset state, firmware must write the ENABLE, START and CLOCK_SET fields to ‘0’ simultaneously or unpre-
dictable results may occur.
2. Armed. Firmware enables the transition to this state by setting the ENABLE bit to ‘1’ and the CLOCK_SET field
to the desired time base. The START must remain at ‘0’. All three fields must be set with one write to the RC_ID
Control Register. In this state the RC_ID clock is enabled and the 16-bit counter is armed. Firmware must wait a
minimum of 300μS in the Armed phase before starting the Discharged phase.
3. Discharged. Firmware initiates the transition to the Discharged state by setting the ENABLE bit to ‘1’, the START
bit to ‘1’ and the CLOCK_SET field to the desired clock rate, in a single write to the RC_ID Control Register. The
RC_ID pin is discharged while the 16-bit counter counts from 0000h to FFFFh at the configured time base. When
the counter reaches FFFFh the TC status bit is set to ‘1’. If at the end of the Discharged state the RC_ID pin
remains above the 2.2V threshold, the CY_ER bit is set to ‘1’, since the measurement will not be valid.
4. Charged.The RC_ID state machine automatically transitions to this state after the 16-bit counter reaches FFFFh
while in the Discharged state. The 16-bit counter starts counting up from 0000h. The counter stops counting and
its value is copied into the RC_ID Data Register when the voltage on the pin exceeds 2.2V. If the counter reaches
FFFFh and the pin voltage remains below 2.2V, the CY_ER bit is set to ‘1’.
5. Done. After the counter stops counting, either because the pin voltage exceed the 2.2V threshold or the 16-bit
counter reached FFFFh, the state machine transitions to this state. The DONE bit is set to ‘1’ and the RC_ID
interface re-enters its lowest power state. The interface will remain in the Done state until firmware explicitly ini-
tiates the Reset state.
A new measurement must be started by putting the RC_ID Interface into the “Reset” state.
3.3 VDC
RC_ID pin input 2.2 VDC
Threshold Value
TD_OUT
Counter Counter
Increment Increment
Clock
(not to scale)
Offset 00h
Reset
Bits Description Type Default
Event
31:10 Reserved R - -
3=6MHz
2=12MHz
1=24MHz
0=48MHz
When this bit is cleared to ‘0’, the CLOCK_SET and START fields in
this register must also be cleared to ‘0’ in the same register write.
Writes that change this bit from ‘0’ to ‘1’ must also write the ENABLE
bit to ‘1’, and must not change the CLOCK_SET field.
5:3 Reserved R - -
Offset 00h
Reset
Bits Description Type Default
Event
2 CY_ER R 0h RESE
This bit is ‘1’ if an RC_ID measurement encountered an error and T_SY
the reading in the RC_ID Data Register is invalid. This bit is cleared S
to ‘0’ when the RC_ID interface is in the Reset phase. It is set either
if during the Discharged phase the RC_ID pin did not fall below the
2.2V threshold, or if in the Charged phase the RC_ID pin did not rise
above the 2.2V threshold and the 16-bit counter ended its count at
FFFFh.
1 TC R 0h RESE
This bit is cleared to ‘0’ when the RC_ID interface is in the Reset T_SY
phase, and set to ‘1’ when the interface completes the Discharged S
phase of an RC_ID measurement.
0 DONE R 0h RESE
This bit is cleared to ‘0’ when the RC_ID interface is in the Reset T_SY
phase, and set to ‘1’ when the interface completes an RC_ID mea- S
surement.
Offset 04h
Reset
Bits Description Type Default
Event
31:16 Reserved R - -
35.1 Overview
The Keyboard Scan Interface block provides a register interface to the EC to directly scan an external keyboard matrix
of size up to 18x8.
The maximum configuration of the Keyboard Scan Interface is 18 outputs by 8 inputs. For a smaller matrix size, firmware
should configure unused KSO pins as GPIOs or another alternate function, and it should mask out unused KSIs and
associated interrupts.
35.2 References
No references have been cited for this feature.
35.3 Terminology
There is no terminology defined for this section.
35.4 Interface
This block is designed to be accessed externally via the pin interface and internally via a registered host interface.
Host Interface
Signal Description
Power, Clocks and Reset
Interrupts
Name Description
VTR The logic and registers implemented in this block are powered by this
power well.
35.7.2 CLOCK INPUTS
Name Description
48MHz This is the clock source for Keyboard Scan Interface logic.
35.7.3 RESETS
Name Description
RESET_SYS This signal resets all the registers and logic in this block to their default
state.
35.8 Interrupts
This section defines the Interrupt Sources generated from this block.
Source Description
KSC_INT Interrupt request to the Interrupt Aggregator.
KSC_INT_WAKE Wake-up request to the Interrupt Aggregator’s wake-up interface.
KSO
Output
Select KSO[17:0]
Decoder
Register
SPB
EC Bus
I/F
KSI
KSC_INT_WAKE Interrupt
Interface
KSC_INT
KSI Input
and
KSI[7:0]
Status
Registers
During scanning the firmware sequentially drives low one of the rows (KSO[17:0]) and then reads the column data line
(KSI[7:0]). A key press is detected as a zero in the corresponding position in the matrix. Keys that are pressed are
debounced by firmware. Once confirmed, the corresponding keycode is loaded into host data read buffer in the 8042
Host Interface module. Firmware may need to buffer keycodes in memory in case this interface is stalled or the host
requests a Resend.
35.11 EC Registers
Registers for this block are shown in the following summary table. Addresses for each register are determined by adding
the offset to the Base Address for each instance of the Keyboard Scan Interface Block in the Block Overview and Base
Address Table in Section 3.0, "Device Inventory".
Offset 04h
Reset
Bits Description Type Default
Event
31:4 Reserved R - -
Offset 08h
Reset
Bits Description Type Default
Event
31:8 Reserved R - -
Offset 0Ch
Reset
Bits Description Type Default
Event
31:8 Reserved R - -
Writing a ‘1’ to a bit will clear it. Writing a ‘0’ to a bit has no effect.
Offset 10h
Reset
Bits Description Type Default
Event
31:8 Reserved R - -
Offset 14h
32:1 Reserved R - -
36.1 Introduction
This section describes the Power Domain, Resets, Clocks, Interrupts, Registers and the Physical Interface of the
I2C/SMBus interface. For a General Description, Features, Block Diagram, Functional Description, Registers Interface
and other core-specific details, see Ref [1] (note: in this chapter, italicized text typically refers to SMB-I2C Controller core
interface elements as described in Ref [1]).
36.2 References
1. I2C_SMB Controller Core with Network Layer Support (SMB2) - 16MHz I2C Baud Clock“, Revision 3.6, Core-
Level Architecture Specification, Microchip, date TBD
36.3 Terminology
There is no terminology defined for this chapter.
36.4 Interface
This block is designed to be accessed externally via the pin interface and internally via a registered host interface. In
addition, this block is equipped with:
I2C/SMBus Interface
Host Interface
DMA Interface
Signal Description
Interrupts
Note: For a description of the Internal DMA Controller implemented in this design see Section 7.0, "Internal DMA
Controller".
Name Description
VTR This power well sources all of the registers and logic in this block, except
where noted.
36.8.2 CLOCK INPUTS
Name Description
16MHz This is the clock signal drives the SMB-I2C Controller core. The core also
uses this clock to generate the SMB-I2C_CLK on the pin interface. It is
derived from the main system clock
36.8.3 RESETS
Name Description
RESET_SYS This reset signal resets all of the registers and logic in the SMB-I2C Con-
troller core.
36.9 Interrupts
Source Description
SMB-I2C I2C Activity Interrupt Event
SMB-I2C_WAKE This interrupt event is triggered when an SMB/I2C Master initiates a
transaction by issuing a START bit (a high-to-low transition on the SDA
line while the SCL line is high) on the bus currently connected to the
SMB-I2C Controller. The EC interrupt handler for this event only needs to
clear the interrupt SOURCE bit and return; if the transaction results in an
action that requires EC processing, that action will trigger the SMB-I2C
interrupt event.
36.11 Description
36.11.1 SMB-I2C CONTROLLER CORE
The SMB-I2C Controller behavior is defined in the SMB-I2C Controller Core Interface specification (See Ref [1]).
Controller
0 SMB I2C Bus 03
03
Controller
1 SMB I2C Bus 05
05
Controller
2 SMB I2C Bus 07
07
36.12 EC Registers
Registers for this block are shown in the following summary table. Addresses for each register are determined by adding
the offset to the Base Address for each instance of the SMB-I2C Controller Block in the Block Overview and Base
Address Table in Section 3.0, "Device Inventory".
Registers for the SMB-I2C Controllers are listed in Reference[ 1].
37.1 Overview
The General Purpose Serial Peripheral Interface (GP-SPI) may be used to communicate with various peripheral
devices, e.g., EEPROMS, DACs, ADCs, that use a standard Serial Peripheral Interface.
.Characteristics of the GP-SPI Controller include:
• 8-bit serial data transmitted and received simultaneously over two data pins in Full Duplex mode with options to
transmit and receive data serially on one data pin in Half Duplex (Bidirectional) mode.
• An internal programmable clock generator and clock polarity and phase controls allowing communication with var-
ious SPI peripherals with specific clocking requirements.
• SPI cycle completion that can be determined by status polling or interrupts.
• The ability to read data in on both SPDIN and SPDOUT in parallel. This allows this SPI Interface to support dual
data rate read accesses for emerging double rate SPI flashes
• Support of back-to-back reads and writes without clock stretching, provided the host can read and write the data
registers within one byte transaction time.
37.2 References
No references have been cited for this feature.
37.3 Terminology
No terminology for this block.
37.4 Interface
This block is designed to be accessed externally via the pin interface and internally via a registered host interface.
Interrupts
Name Description
VTR The logic and registers implemented in this block are powered by this
power well.
37.7.2 CLOCK INPUTS
Name Description
48MHz This is a clock source for the SPI clock generator.
2MHz This is a clock source for the SPI clock generator. It is derived from the
48MHz clock domain.
37.7.3 RESETS
Name Description
RESET_SYS This signal resets all the registers and logic in this block to their default
state.
37.8 Interrupts
This section defines the Interrupt Sources generated from this block.
37.10 Description
The Serial Peripheral Interface (SPI) block is a master SPI block used to communicate with external SPI devices. The
SPI master is responsible for generating the SPI clock and is designed to operate in Full Duplex, Half Duplex, and Dual
modes of operation. The clock source may be programmed to operated at various clock speeds. The data is transmit-
ted serially via 8-bit transmit and receive shift registers. Communication with SPI peripherals that require transactions
of varying lengths can be achieved with multiple 8-bit cycles.
This block has many configuration options: The data may be transmitted and received either MSbit or LSbit first; The
SPI Clock Polarity may be either active high or active low; Data may be sampled or presented on either the rising of
falling edge of the clock (referred to as the transmit clock phase); and the SPI_CLK SPDOUT frequency may be pro-
grammed to a range of values as illustrated in Table 37-4, "SPI_CLK Frequencies". In addition to these many program-
mable options, this feature has several status bits that may be enabled to notify the host that data is being transmitted
or received.
FIGURE 37-2: SINGLE BYTE SPI TX/RX TRANSACTIONS (FULL DUPLEX MODE)
MCLK
SPDOUT_Direction
TX_DATA BYTE 0
Write TX_Data
Read RX_Data
RX_DATA BYTE 0
SPCLKO
MCLK
SPDOUT_Direction
Write TX_Data
Read RX_Data
SPCLKO
The data may be configured to be transmitted MSB or LSB first. This is configured by the LSBF bit in the SPI Control
Register. The transmit data is shifted out on the edge as selected by the TCLKPH bit in the SPI Clock Control Register.
All received data can be sampled on a rising or falling SPI_CLK edge using the RCLKPH bit in the SPI Clock Control
Register This clock setting must be identical to the clocking requirements of the current SPI slave.
Note: Common peripheral devices require a chip select signal to be asserted during a transaction. Chip selects
for SPI devices may be controlled by MEC170x GPIO pins.
There are three types of transactions that can be implemented for transmitting and receiving the SPI data. They are Full
Duplex, Half Duplex, and Dual Mode. These modes are define in Section 37.10.3, "Types of SPI Transactions".
Note: The Software driver must properly drive the BIOEN bit and store received data depending on the transac-
tion format of the specific slave device.
MCLK
BIOEN
Write TX _Data
Read RX _Data
SPDIN 1
SPDIN 2 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0
SPCLKO
MCLK
BIOEN
Write TX _Data
Read RX _Data
SPDIN 1 7 5 3 1 7 5 3 1 7 5 3 1 7 5 3 1
SPDIN 2 6 4 2 0 6 4 2 0 6 4 2 0 6 4 2 0
SPCLKO
Note: When the SPI core is used for flash commands, like the Dual Read command, the host discards the bytes
received during the command, address, and dummy byte portions of the transaction.
Note: When the SPI interface is in the idle state and data is not being transmitted, the SPI_CLK signal stops in
the inactive state as determined by the configuration bits.
The clock source to the down counter is determined by Bit CLKSRC. Either the main system clock or the 2MHz clock
can be used to decrement the down counter in the clock generator logic.
The SPI_CLK frequency is determined by the following formula:
1
SPI_CLK_FREQ= --- REFERENCE_CLOCK PRELOAD
2
The REFERENCE_CLOCK frequency is selected by CLKSRC in the SPI Clock Control Register and PRELOAD is the
PRELOAD field of the SPI Clock Generator Register. The frequency can be either the 48MHz clock or a 2MHz clock.
When the PRELOAD value is 0, the REFERENCE_CLOCK is always the 48MHz clock and the CLKSRC bit is ignored.
Sample SPI Clock frequencies are shown in the following table:
37.11.1.2 Read/Write
The slave device used in this example is a Fairchild NS25C640 FM25C640 64K Bit Serial EEPROM. The following sub-
sections describe the read and write sequences.
Read
• The SPI block is activated by setting the enable bit in SPIAR - SPI Enable Register
• The SPIMODE bit is de-asserted '0' to enable the SPI interface in Full Duplex mode.
• The CLKPOL, TCLKPH and RCLKPH bits are de-asserted '0' to match the clocking requirements of the slave
device.
• The LSBF bit is de-asserted '0' to indicate that the slave expects data in MSB-first order.
• Assert CS# low using a GPIO pin.
• Write a valid command word (as specified by the slave device) to the SPITD - SPI TX_Data Register with TXFE
asserted '1'. The SPI master automatically clears the TXFE bit indicating the byte has been put in the TX buffer. If
the shift register is empty the TX_DATA byte is loaded into the shift register and the SPI master reasserts the
TXFE bit. Once the data is in the shift register the SPI master begins shifting the data value onto the SPDOUT pin
and drives the SPI_CLK pin. Data on the SPDIN pin is also sampled on each clock.
• Once the TXFE bit is asserted the SPI Master is ready to receive its next byte. Before writing the next TX_DATA
value, software must clear the RXBF status bit by reading the SPIRD - SPI RX_Data Register.
USER’S NOTE: External pull-up or pull-down is required on the SPDIN pin if it is tri-stated by the slave device.
- Once the first SPI cycle is completed, the SPI master takes the pending data in the TX_DATA register
(EEPROM address A15-A8) and loads it into the TX shift register. Loading the shift register automatically
asserts the TXFE bit, begins shifting the dummy data value onto the SPDOUT pin, and drives the SPI_CLK
pin. Data on the SPDIN pin is also sampled on each clock. Note: The particular slave device ignores address
A15-A13.
• Once the TXFE bit is asserted the SPI Master is ready to receive its next byte. Before writing the next TX_DATA
value, software must clear the RXBF status bit by reading the SPIRD - SPI RX_Data Register.
• Next, EEPROM address A7-A0 is written to the TX_DATA register. The SPI master automatically clears the TXFE
bit, but does not begin shifting this data value onto the SPDOUT pin. This byte will remain in the TX_DATA register
until the TX shift register is empty.
• After 8 SPI_CLK pulses from the second transmit byte (Address Byte (MSB) transmitted):
- EEPROM address A15-A8 has been transmitted to the slave completing the second SPI cycle. Once again,
the RXBF bit is asserted '1' and the SPINT interrupt is asserted, if enabled. The data now contained in SPIRD
- SPI RX_Data Register is invalid since the last cycle was initiated solely to transmit address data to the
slave.
- Once the second SPI cycle is completed, the SPI master takes the pending data in the TX_DATA register
(EEPROM address A7-A0) and loads it into the TX shift register. Loading the shift register automatically
asserts the TXFE bit, begins shifting the dummy data value onto the SPDOUT pin, and drives the SPCLK pin.
Data on the SPDIN pin is also sampled on each clock.
• Once the TXFE bit is asserted the SPI Master is ready to receive its next byte. Before writing the next TX_DATA
value, software must clear the RXBF status bit by reading the SPIRD - SPI RX_Data Register.
• Next, a dummy byte is written to the TX_DATA register. The SPI master automatically clears the TXFE bit, but
does not begin shifting this data value onto the SPDOUT pin. This byte will remain in the TX_DATA register until
the TX shift register is empty.
• After 8 SPI_CLK pulses, the third SPI cycle is complete (Address Byte (LSB) transmitted):
- EEPROM address A7-A0 has been transmitted to the slave completing the third SPI cycle. Once again, the
RXBF bit is asserted '1' and the SPINT interrupt is asserted, if enabled. The data now contained in SPIRD -
SPI RX_Data Register is invalid since the last cycle was initiated solely to transmit address data to the slave.
- Once the third SPI cycle is completed, the SPI master takes the pending data in the TX_DATA register
(dummy byte) and loads it into the TX shift register. Loading the shift register automatically asserts the TXFE
bit, begins shifting the dummy data value onto the SPDOUT pin, and drives the SPCLK pin. Data on the
SPDIN pin is also sampled on each clock.
• Once the TXFE bit is asserted the SPI Master is ready to receive its next byte. Before writing the next TX_DATA
value, software must clear the RXBF status bit by reading the SPIRD - SPI RX_Data Register.
• If only one receive byte is required, the host would not write any more value to the TX_DATA register until this
transaction completes. If more than one byte of data is to be received, another dummy byte would be written to the
TX_DATA register (one dummy byte per receive byte is required). The SPI master automatically clears the TXFE
bit when the TX_DATA register is written, but does not begin shifting this data value onto the SPDOUT pin. This
byte will remain in the TX_DATA register until the TX shift register is empty.
• After 8 SPI_CLK pulses, the fourth SPI cycle is complete (First Data Byte received):
- The dummy byte has been transmitted to the slave completing the fourth SPI cycle. Once again, the RXBF bit
is asserted '1' and the SPINT interrupt is asserted, if enabled. Unlike the command and address phases, the
data now contained in SPIRD - SPI RX_Data Register is the 8-bit EEPROM data since the last cycle was ini-
tiated to receive data from the slave.
USER’S NOTE: External pull-up or pull-down is required on the SPDIN pin if it is tri-stated by the slave device.
- Once the first SPI cycle is completed, the SPI master takes the pending data in the TX_DATA register
(EEPROM address A15-A8) and loads it into the TX shift register. Loading the shift register automatically
asserts the TXFE bit, begins shifting the dummy data value onto the SPDOUT pin, and drives the SPI_CLK
pin. Data on the SPDIN pin is also sampled on each clock. Note: The particular slave device ignores address
A15-A13.
• Once the TXFE bit is asserted the SPI Master is ready to receive its next byte. Before writing the next TX_DATA
value, software must clear the RXBF status bit by reading the SPIRD - SPI RX_Data Register.
• Next, EEPROM address A7-A0 is written to the TX_DATA register. The SPI master automatically clears the TXFE
bit, but does not begin shifting this data value onto the SPDOUT pin. This byte will remain in the TX_DATA register
until the TX shift register is empty.
• After 8 SPI_CLK pulses from the second transmit byte (Address Byte (MSB) transmitted):
- EEPROM address A15-A8 has been transmitted to the slave completing the second SPI cycle. Once again,
the RXBF bit is asserted '1' and the SPINT interrupt is asserted, if enabled. The data now contained in SPIRD
- SPI RX_Data Register is invalid since the last cycle was initiated solely to transmit address data to the
slave.
- Once the second SPI cycle is completed, the SPI master takes the pending data in the TX_DATA register
(EEPROM address A7-A0) and loads it into the TX shift register. Loading the shift register automatically
asserts the TXFE bit, begins shifting the dummy data value onto the SPDOUT pin, and drives the SPCLK pin.
Data on the SPDIN pin is also sampled on each clock.
• Once the TXFE bit is asserted the SPI Master is ready to receive its next byte. Before writing the next TX_DATA
value, software must clear the RXBF status bit by reading the SPIRD - SPI RX_Data Register.
• Next, a data byte (D7:D0) is written to the TX_DATA register. The SPI master automatically clears the TXFE bit,
but does not begin shifting this data value onto the SPDOUT pin. This byte will remain in the TX_DATA register
until the TX shift register is empty.
Offset 00h
Reset
Bits Description Type Default
Event
31:1 Reserved R - -
0 ENABLE R/W 0h RESET_
SYS
1=Enabled. The device is fully operational
0=Disabled. Clocks are gated to conserve power and the SPDOUT
and SPI_CLK signals are set to their inactive state
37.12.2 SPI CONTROL REGISTER
Offset 04h
Reset
Bits Description Type Default
Event
31:7 Reserved R - -
6 CE R/W 0h RESET_
SPI Chip Select Enable. SYS
Reset
Bits Description Type Default
Event
1 BIOEN R/W 1h RESET_
Bidirectional Output Enable control. When the SPI is configured for SYS
Half Duplex mode or Dual Mode the SPDOUT pin operates as a bi-
directional signal. The BIOEN bit is used by the internal DIRECTION
bit to control the direction of the SPDOUT buffers. The direction of
the buffer is never changed while a byte is being transmitted.
Offset 08h
Reset
Bits Description Type Default
Event
31:3 Reserved R - -
2 ACTIVE R 0h RESET_
The ACTIVE bit goes high (Active) in the following conditions: SYS
While transmitting data
While receiving data
While a received byte is in the RX_Data buffer
1 RXBF R 0h RESET_
Receive Data Buffer Full status. When this bit is ‘1’ the Rx_Data buf- SYS
fer is full. Reading the SPI RX_Data Register clears this bit. This sig-
nal may be used to generate a SPI_RX interrupt to the EC.
Offset 0Ch
Reset
Bits Description Type Default
Event
31:8 Reserved R - -
7:0 TX_DATA R/W 0h RESET_
A write to this register when the Tx_Data buffer is empty (TXBE in SYS
the SPI Status Register is ‘1’) initiates a SPI transaction. The byte
written to this register will be loaded into the shift register and the
TXBE flag will be asserted. This indicates that the next byte can be
written into the TX_DATA register. This byte will remain in the TX_-
DATA register until the SPI core has finished shifting out the previ-
ous byte. Once the shift register is empty, the hardware will load the
pending byte into the shift register and once again assert the TxBE
bit.
The TX_DATA register must not be written when the TXBE bit is
zero. Writing this register may overwrite the transmit data before it is
loaded into the shift register.
Offset 10h
Reset
Bits Description Type Default
Event
31:8 Reserved R - -
7:0 RX_DATA R/W 0h RESET_
This register is used to read the value returned by the external SPI SYS
device. At the end of a byte transfer the RX_DATA register contains
serial input data (valid or not) from the last transaction and the RXBF
bit is set to one. This status bit indicates that the RX_DATA register
has been loaded with a the serial input data. The RX_DATA register
should not be read before the RXBF bit is set.
The RX_DATA register must be read, clearing the RXBF status bit
before writing the TX_DATA register. The data in the receive shift
register is only loaded into the RX_DATA register when this bit is
cleared. If a data byte is pending in the receive shift register the
value will be loaded immediately into the RX_DATA register and the
RXBF status flag will be asserted. Software should read the RX_-
DATA register twice before starting a new transaction to make sure
the RX_DATA buffer and shift register are both empty.
Offset 14h
Reset
Bits Description Type Default
Event
31:5 Reserved R - -
4 CLKSRC R/W 0h RESET_
Clock Source for the SPI Clock Generator. This bit should not be SYS
changed during a SPI transaction. When the field PRELOAD in the
SPI Clock Generator Register is 0, this bit is ignored and the Clock
Source is always the main system clock (the equivalent of setting
this bit to ‘0’).
1=2MHz
0=48MHz
3 Reserved R - -
2 CLKPOL R/W 0h RESET_
SPI Clock Polarity. SYS
1=The SPI_CLK signal is high when the interface is idle and the first
clock edge is a falling edge
0=The SPI_CLK is low when the interface is idle and the first clock
edge is a rising edge
1 RCLKPH R/W 1h RESET_
Receive Clock Phase, the SPI_CLK edge on which the master will SYS
sample data. The receive clock phase is not affected by the SPI
Clock Polarity.
Offset 18h
Reset
Bits Description Type Default
Event
31:16 Reserved R - -
5:0 PRELOAD R/W 2h RESET_
SPI Clock Generator Preload value. SYS
38.1 Overview
The Quad SPI Master Controller may be used to communicate with various peripheral devices that use a Serial Periph-
eral Interface, such as EEPROMS, DACs and ADCs. The controller can be configured to support advanced SPI Flash
devices with multi-phase access protocols. Data can be transfered in Half Duplex, Single Data Rate, Dual Data Rate
and Quad Data Rate modes. In all modes and all SPI clock speeds, the controller supports back-to-back reads and
writes without clock stretching if internal bandwidth permits.
38.2 References
No references have been cited for this feature.
38.3 Terminology
No terminology for this block.
38.4 Interface
This block is designed to be accessed externally via the pin interface and internally via a registered host interface.
Host Interface
Signal Description
Power, Clocks and Reset
Interrupts
38.7.1 POWER
Name Description
VTR The logic and registers implemented in this block are powered by this
power well.
38.7.2 CLOCKS
Name Description
48MHz This is a clock source for the SPI clock generator.
38.7.3 RESETS
Name Description
RESET_SYS This signal resets all the registers and logic in this block to their default
state.QMSPI Status Register
RESET This reset is generated if either the RESET_SYS is asserted or the
SOFT_RESET is asserted.
38.8 Interrupts
This section defines the Interrupt Sources generated from this block.
Source Description
QMSPI_INT Interrupt generated by the Quad SPI Master Controller. Events that may
cause the interrupt to be asserted are stored in the QMSPI Status Regis-
ter.
Internal
Data Bus
QSPI_IO0
QSPI_IO1
Register
Shift
QSPI_IO2
QSPI_IO3
Clock
QSPI_CK
Generator
State
Machine
QSPI_CS#
Descriptor
Registers
38.11 EC Registers
Registers for this block are shown in the following summary table. Addresses for each register are determined by adding
the offset to the Base Address for each instance of the Quad SPI Master Controller Block in the Block Overview and
Base Address Table in Section 3.0, "Device Inventory".
Offset 00h
Reset
Bits Description Type Default
Event
31:24 Reserved R - -
24:16 CLOCK_DIVIDE R/W 0h RESET
The SPI clock divide in number of system clocks. A value of 1
divides the master clock by 1, a value of 255 divides the master
clock by 255. A value of 0 divides the master clock by 256. See
Table 38-2, "Example SPI Frequencies" for examples.
15:11 Reserved R - -
Reset
Bits Description Type Default
Event
10 CHPA_MISO R/W 0h RESET
If CPOL=1:
1=Data are captured on the rising edge of the SPI clock
0=Data are captured on the falling edge of the SPI clock
If CPOL=0:
1=Data are captured on the falling edge of the SPI clock
0=Data are captured on the rising edge of the SPI clock
Application Notes:
Common SPI Mode configurations:
Common SPI Modes require the CHPA_MISO and CHPA_MOSI
programmed to the same value. E.g.,
- Mode 0: CPOL=0; CHPA_MISO=0; CHPA_MOSI=0
- Mode 3: CPOL=1; CHPA_MISO=1; CHPA_MOSI=1
If CPOL=1:
1=Data changes on the falling edge of the SPI clock
0=Data changes on the rising edge of the SPI clock
If CPOL=0:
1=Data changes on the rising edge of the SPI clock
0=Data changes on the falling edge of the SPI clock
8 CPOL R/W 0h RESET
Polarity of the SPI clock line when there are no transactions in pro-
cess.
Reset
Bits Description Type Default
Event
0 ACTIVATE R/W 0h RESET
Reset
Bits Description Type Default
Event
31:17 TRANSFER_LENGTH R/W 0h RESET
The length of the SPI transfer. The count is in bytes or bits, depend-
ing on the value of TRANSFER_LENGTH_BITS. A value of ‘0’
means an infinite length transfer.
16 DESCRIPTION_BUFFER_ENABLE R/W 0h RESET
This enables the Description Buffers to be used.
Reset
Bits Description Type Default
Event
5:4 TX_DMA_ENABLE R/W 0h RESET
This bit enables DMA support for Transmit Transfer. If enabled, DMA
will be requested to fill the FIFO until either the interface reaches
TRANSFER_LENGTH or the DMA sends a termination request. The
size defined here must match DMA programmed access size.
3=Reserved
2=Quad Mode
1=Dual Mode
0=Single/Duplex Mode
Offset 08h
Reset
Bits Description Type Default
Event
31:3 Reserved R - -
2 CLEAR_DATA_BUFFER W 0h RESET
Writing a ‘1’ to this bit will clear out the Transmit and Receive FIFOs.
Any data stored in the FIFOs is discarded and all count fields are
reset. Writing a ‘0’ to this bit has no effect. This bit is self-clearing.
1 STOP W 0h RESET
Writing a ‘1’ to this bit will stop any transfer in progress at the next
byte boundary. Writing a ‘0’ to this bit has no effect. This bit is self-
clearing.
This bit must not be set to ‘1’ if the field START in this register is set
to ‘1’.
Reset
Bits Description Type Default
Event
0 START W 1h RESET
Writing a ‘1’ to this bit will start the SPI transfer. Writing a ‘0’ to this bit
has no effect. This bit is self-clearing.
This bit must not be set to ‘1’ if the field STOP in this register is set to
‘1’.
Offset 0Ch
Reset
Bits Description Type Default
Event
31:8 Reserved R - -
7 PULLUP_ON_NOT_DRIVEN R/W 0h RESET
1=Enable pull-up resistors on Transmit pins while the pins are not
driven
0=No pull-up resistors enabled ion Transmit pins
6 PULLDOWN_ON_NOT_DRIVEN R/W 0h RESET
1=Enable pull-down resistors on Transmit pins while the pins are not
driven
0=No pull-down resistors enabled ion Transmit pins
5 PULLUP_ON_NOT_SELECTED R/W 1h RESET
1=Enable pull-up resistors on Receive pins while the SPI Chip Select
signal is not asserted
0=No pull-up resistors enabled on Receive pins
4 PULLDOWN_ON_NOT_SELECTED R/W 0h RESET
1=HOLD is driven to 1
0=HOLD is driven to 0
1 WRITE_PROTECT_OUT_ENABLE R/W 0h RESET
Reset
Bits Description Type Default
Event
0 WRITE_PROTECT_OUT_VALUE R/W 1h RESET
This bit sets the value on the WRITE PROTECT SPI Output Port if it
is driven.
Offset 10h
Reset
Bits Description Type Default
Event
31:28 Reserved R - -
27:24 CURRENT_DESCRIPTION_BUFFER R 0h RESET
This field shows the Description Buffer currently active. This field
has no meaning if Description Buffers are not enabled.
23:17 Reserved R - -
16 TRANSFER_ACTIVE R 0h RESET
1=The SPI interface had been stalled due to a flow issue (an attempt
by the interface to write to a full Receive Buffer)
0=No stalls occurred
14 RECEIVE_BUFFER_REQUEST R/WC 0h RESET
This status is asserted if the Receive Buffer reaches a high water
mark established by the RECEIVE_BUFFER_TRIGGER field.
1=The SPI interface had been stalled due to a flow issue (an attempt
by the interface to read from an empty Transmit Buffer)
0=No stalls occurred
Reset
Bits Description Type Default
Event
10 TRANSMIT_BUFFER_REQUEST R/WC 0h RESET
This status is asserted if the Transmit Buffer reaches a high water
mark established by the TRANSMIT_BUFFER_TRIGGER field.
This bit will be set to ‘1’ when the DMA controller asserts the DONE
signal to the SPI controller. This occurs either when the SPI control-
ler has closed the DMA transfer, or the DMA channel has completed
its count. If both Transmit and Receive DMA transfers are active,
then this bit will only assert after both have completed. If
CLOSE_TRANSFER_ENABLE is enabled, DMA_COMPLETE and
TRANSFER_COMPLETE will be asserted simultaneously. This sta-
tus is not inhibited by the description buffers, so it can fire on all valid
description buffers while operating in that mode.
1=DMA completed
0=DMA not completed
Reset
Bits Description Type Default
Event
0 TRANSFER_COMPLETE R/WC 0h RESET
In Manual Mode (neither DMA nor Description Buffers are enabled),
this bit will be set to ‘1’ when the transfer matches TRANS-
FER_LENGTH.
If DMA Mode is enabled, this bit will be set to ‘1’ when DMA_COM-
PLETE is set to ‘1’.
In Description Buffer Mode, this bit will be set to ‘1’ only when the
Last Buffer completes its transfer.
In all cases, this bit will be set to ‘1’ if the STOP bit is set to ‘1’ and
the controller has completed the current 8 bits being copied.
1=Transfer completed
0=Transfer not complete
Offset 14h
Reset
Bits Description Type Default
Event
31:16 RECEIVE_BUFFER_COUNT R 0h RESET
This is a count of the number of bytes currently valid in the Receive
Buffer.
15:0 TRANSMIT_BUFFER_COUNT R 0h RESET
This is a count of the number of bytes currently valid in the Transmit
Buffer.
Offset 18h
Reset
Bits Description Type Default
Event
31:15 Reserved R - -
14 RECEIVE_BUFFER_REQUEST_ENABLE R/W 0h RESET
Reset
Bits Description Type Default
Event
10 TRANSMIT_BUFFER_REQUEST_ENABLE R/W 0h RESET
Offset 1Ch
Reset
Bits Description Type Default
Event
31:16 RECEIVE_BUFFER_TRIGGER R/W 0h RESET
An interrupt is triggered if the RECEIVE_BUFFER_COUNT field is
greater than or equal to this value. A value of ‘0’ disables the inter-
rupt.
15:0 TRANSMIT_BUFFER_TRIGGER R/W 0h RESET
An interrupt is triggered if the TRANSMIT_BUFFER_COUNT field is
less than or equal to this value. A value of ‘0’ disables the interrupt.
Offset 20h
Reset
Bits Description Type Default
Event
31:0 TRANSMIT_BUFFER W 0h RESET
Writes to this register store data to be transmitted from the SPI Mas-
ter to the external SPI Slave. Writes to this block will be written to the
Transmit FIFO. A 1 Byte write fills 1 byte of the FIFO. A Word write
fills 2 Bytes and a Doubleword write fills 4 bytes. The data must
always be aligned to the bottom most byte (so 1 byte write is on bits
[7:0] and Word write is on [15:0]). An overflow condition,TRANS-
MIT_BUFFER_ERROR, if a write to a full FIFO occurs.
Offset 24h
Reset
Bits Description Type Default
Event
31:0 RECEIVE_BUFFER R 0h RESET
Buffer that stores data from the external SPI Slave device to the SPI
Master (this block), which is received over MISO or IO.
Reads from this register will empty the Rx FIFO. A 1 Byte read will
have valid data on bits [7:0] and a Word read will have data on bits
[15:0]. It is possible to request more data than the FIFO has (under-
flow condition), but this will cause an error (Rx Buffer Error).
Offset 30h
Reset
Bits Description Type Default
Event
31:17 TRANSFER_LENGTH R/W 0h RESET
The length of the SPI transfer. The count is in bytes or bits, depend-
ing on the value of TRANSFER_LENGTH_BITS. A value of ‘0’
means an infinite length transfer.
16 DESCRIPTION_BUFFER_LAST R/W 0h RESET
If this bit is ‘1’ then this is the last Description Buffer in the chain.
When the transfer described by this buffer completes the TRANS-
FER_COMPLETE status will be set to ‘1’. If this bit is ‘0’, then this is
not the last buffer in use. When the transfer completes the next buf-
fer will be activated, and no additional status will be asserted.
Reset
Bits Description Type Default
Event
15:12 DESCRIPTION_BUFFER_NEXT_POINTER R/W 0h RESET
This defines the next buffer to be used if Description Buffers are
enabled and this is not the last buffer. This can point to the current
buffer, creating an infinite loop.
11:10 TRANSFER_UNITS R/W 0h RESET
Reset
Bits Description Type Default
Event
3:2 TX_TRANSFER_ENABLE R/W 0h RESET
This field bit selects the transmit function of the SPI interface.
3=Reserved
2=Quad Mode
1=Dual Mode
0=Single/Duplex Mode
39.1 Introduction
PS/2 controllers are directly controlled by the EC. The hardware implementation eliminates the need to bit bang I/O ports
to generate PS/2 traffic, however bit banging is available via the associated GPIO pins.
39.2 References
No references have been cited for this feature.
39.3 Terminology
There is no terminology defined for this section.
39.4 Interface
This block is designed to be accessed externally via the pin interface and internally via a registered host interface.
PS/2 Interface
Host Interface
Signal Description
Interrupts
Note: PS2 ports that are multiplexed onto pins that can be powered by 1.8V are not 5V tolerant, even when the
pins are powered by 3.3V.
Name Description
VTR The logic and registers implemented in this block are powered by this
power well.
39.7.2 CLOCK INPUTS
Name Description
48MHz This is the clock source for PS/2 Interface logic.
2 MHz Clock The PS/2 state machine is clocked using the 2 MHz clock.
39.7.3 RESETS
Name Description
RESET_SYS This signal resets all the registers and logic in this block to their default
state.
39.8 Interrupts
This section defines the Interrupt Sources generated from this block.
Source Description
PS2_x Interrupt request to the Interrupt Aggregator for PS2 controller instance x,
based on PS2 controller activity. Section 39.14.4, "PS2 Status Register"
defines the sources for the interrupt request.
PS2_x_WK Wake-up request to the Interrupt Aggregator’s wake-up interface for PS2
port x.
In order to enable PS2 wakeup interrupts, the pin control registers for the
PS2DAT pin must be programmed to Input, Falling Edge Triggered, non-
inverted polarity detection.
39.10 Description
Each EC PS/2 serial channels use a synchronous serial protocol to communicate with the auxiliary device. Each PS/2
channel has Clock and Data signal lines. The signal lines are bi-directional and employ open drain outputs capable of
sinking 12m, as required by the PS/2 specification. A pull-up resistor, typically 10K, is connected to both lines. This
allows either the EC PS/2 logic or the auxiliary device to drive the lines. Regardless of the drive source, the auxiliary
device always provides the clock for transmit and receive operations. The serial packet is made up of eleven bits, listed
in the order they appear on the data line: start bit, eight data bits (least significant bit first), odd parity, and stop bit. Each
bit cell is from 60S to 100S long.
All PS/2 Serial Channel signals (PS2CLK and PS2DAT) are driven by open drain drivers which can be pulled to VTR or
the main power rail (+3.3V nominal) through 10K-ohm resistors.
EC I/F
PS2_x
Control
interrupt State PS/2
Registers PS2DAT
Machine Channel PS2CLK
2 MHz
39.13.1 RECEIVE
If PS2_T/R is ‘0’ while the PS2 Interface is enabled, the interface is configured to receive data. If while PS2_T/R is ‘0’
RDATA_RDY is ‘0’, the channel’s PS2CLK and PS2DAT will float waiting for the external PS/2 device to signal the start
of a transmission. If RDATA_RDY is ‘1’, the channel’s PS2DAT line will float but its PS2CLK line will be held low, holding
off the peripheral, until the Receive Register is read.
The peripheral initiates a reception by sending a start bit followed by the data bits). After a successful reception, data
are placed in the PS2 Receive Buffer Register, the RDATA_RDY bit in the PS2 Status Register is set and the PS2CLK
line is forced low. Further receive transfers are inhibited until the EC reads the data in the PS2 Receive Buffer Register.
RDATA_RDY is cleared and the PS2CLK line is tri-stated following a read of the PS2 Receive Buffer Register.
The Receive Buffer Register is initialized to FFh after a read or after a Time-out has occurred.
39.13.2 TRANSMIT
If PS2_T/R is ‘1’ while the PS2 Interface is enabled, the interface is configured to transmit data. When the PS2_T/R bit
is written to ‘1’ while the state machine is idle, the channel prepares for a transmission: the interface will drive the PS2-
CLK line low and then float the PS2DAT line, holding this state until a write occurs to the Transmit Register or until the
PS2_T/R bit is cleared. A transmission is started by writing the PS2 Transmit Buffer Register. Writes to the Transmit
Buffer Register are blocked when PS2_EN is ‘0’, PS2_T/R is ‘0’ or when the transmit state machine is active (the
XMIT_IDLE bit in the PS/2 Status Register is ‘0’). The transmission of data will not start if there is valid data in the
Receive Data Register (when the status bit RDATA_RDY is ‘1’). When a transmission is started, the transmission state
machine becomes active (the XMIT_IDLE bit is set to ‘1’ by hardware), the PS2DAT line is driven low and within 80ns
the PS2CLK line floats (externally pulled high by the pull-up resistor).
The transmission terminates either on the 11th clock edge of the transmission or if a Transmit Time-Out error condition
occurs. When the transmission terminates, the PS2_T/R bit is cleared to ‘0’and the state machine becomes idle, setting
XMIT_IDLE to ‘1’.
39.14 EC Registers
Registers for this block are shown in the following summary table. Addresses for each register are determined by adding
the offset to the Base Address for each instance of the PS/2 Interface Block in the Block Overview and Base Address
Table in Section 3.0, "Device Inventory".
Offset 00h
Reset
Bits Description Type Default
Event
31:8 Reserved R - -
Offset 00h
Reset
Bits Description Type Default
Event
31:8 Reserved R - -
Offset 00h
Reset
Bits Description Type Default
Event
31:6 Reserved R - -
0=The PS/2 state machine is disabled. The CLK pin is driven low
and the DATA pin is tri-stated.
1=The PS/2 state machine is enabled, allowing the channel to per-
form automatic reception or transmission, depending on the
state of PS2_T/R.
Changing values in the PS2 CONTROL REGISTER at a rate faster than 2 MHz, may result in unpredictable behavior.
Offset 08h
Reset
Bits Description Type Default
Event
31:8 Reserved R - -
6 RX_BUSY R 0h RESET
Receive Channel Busy. _SYS
When the XMIT_TIMEOUT bit is set, the PS2_T/R bit is held clear,
the PS/2 channel’s CLK line is pulled low for a minimum of 300μs
until the PS/2 Status register is read. The XMIT_TIMEOUT bit is
set on one of three transmit conditions: when the transmitter bit
time (the time between falling edges) exceeds 300μs, when the
transmitter start bit is not received within 25ms from signaling a
transmit start event or if the time from the first bit (start) to the 10th
bit (parity) exceeds 2ms
4 XMIT_IDLE R 0h RESET
Transmitter Idle. _SYS
3 FE R/WC 0h RESET
Framing Error _SYS
When receiving data, the stop bit is clocked in on the falling edge of
the 11th CLK edge. If the channel is configured to expect either a
high or low stop bit and the 11th bit is contrary to the expected stop
polarity, then the FE and REC_TIMEOUT bits are set following the
falling edge of the 11th CLK edge and an interrupt is generated.
Offset 08h
Reset
Bits Description Type Default
Event
2 PE R/WC 0h RESET
Parity Error _SYS
When receiving data, the parity bit is clocked in on the falling edge
of the 10th CLK edge. If the channel is configured to expect either
even or odd parity and the 10th bit is contrary to the expected par-
ity, then the PE and REC_TIMEOUT bits are set following the fall-
ing edge of the 10th CLK edge and an interrupt is generated.
0 RDATA_RDY R 0h RESET
Receive Data Ready _SYS
Under normal operating conditions, this bit is set following the fall-
ing edge of the 11th clock given successful reception of a data byte
from the PS/2 peripheral (i.e., no parity, framing, or receive time-
out errors) and indicates that the received data byte is available to
be read from the Receive Register. This bit may also be set in the
event that the PS2_EN bit is cleared following the 10th CLK edge.
40.1 Overview
This block provides BC-Link connectivity to a slave device. The BC-Link protocol includes a start bit to signal the
beginning of a message and a turnaround (TAR) period for bus transfer between the Master and Companion devices.
40.2 References
No references have been cited for this feature.
40.3 Terminology
There is no terminology defined for this section.
40.4 Interface
This block is designed to be accessed externally via the pin interface and internally via a registered host interface.
BC-Link Master
Interface
Signal Description
Interrupts
The maximum speed at which the BC-Link Master Interface can operate reliably depends on the drive strength of the
BC-Link BCM_CLK and BCM_DAT pins, as well as the nature of the connection to the Companion device (over ribbon
cable or on a PC board). The following table shows the recommended maximum speeds over a PC board as well as a
12 inch ribbon cable for selected drive strengths. The frequency is set with the BC-Link Clock Select Register.
Name Description
VTR The logic and registers implemented in this block are powered by this
power well.
40.7.2 CLOCK INPUTS
Name Description
48MHz This is the clock source for this block.
40.7.3 RESETS
Name Description
RESET_SYS This signal resets all the registers and logic in this block to their default
state.
40.8 Interrupts
This section defines the Interrupt Sources generated from this block.
Source Description
BCM_INT Busy Interrupt request to the Interrupt Aggregator, generated from the status
event BUSYdefined in the BC-Link Status Register.
BCM_INT Err Interrupt request to the Interrupt Aggregator, generated from the status
event defined in the BC-Link Status Register.
Registers
BC_ERR
BC Status / Control
BC_BUSY _CLR
Register
EC IF
BC Address
Register
BC Data
Register
Clock
Divider
Bits
Note: Steps 3 thorough 7 should be completed as a contiguous sequence. If not the interface could be presenting
incorrect data when software thinks it is accessing a valid register read.
40.11 EC Registers
Registers for this block are shown in the following summary table. Addresses for each register are determined by adding
the offset to the Base Address for each instance of the BC-Link Master Block in the Block Overview and Base Address
Table in Section 3.0, "Device Inventory".
Offset 00h
Reset
Bits Description Type Default
Event
31:8 Reserved R - -
3:1 Reserved R - -
0 BUSY R 1h RESET
This bit is asserted to ‘1’ when the BC interface is transferring data _SYS
and on reset. Otherwise it is cleared to ‘0’. When this bit is cleared
by hardware, an interrupt is generated if the BC_BUSY_CL-
R_INT_EN bit is set to ‘1’.
Offset 04h
Reset
Bits Description Type Default
Event
31:8 Reserved R - -
Offset 08h
Reset
Bits Description Type Default
Event
31:8 Reserved R - -
Offset 0Ch
Reset
Bits Description Type Default
Event
31:8 Reserved R - -
41.1 Introduction
The TFDP serially transmits Embedded Controller (EC)-originated diagnostic vectors to an external debug trace system.
41.2 References
No references have been cited for this chapter.
41.3 Terminology
There is no terminology defined for this chapter.
41.4 Interface
This block is designed to be accessed externally via the pin interface and internally via a registered host interface.
Signal Description
Power, Clocks and Reset
Interrupts
Name Description
VTR The logic and registers implemented in this block are powered by this
power well.
41.7.2 CLOCK INPUTS
Name Description
48MHz This is the main system clock.
41.7.3 RESETS
Name Description
RESET_SYS This signal resets all the registers and logic in this block to their default
state.
41.8 Interrupts
There are no interrupts generated from this block.
41.10 Description
The TFDP is a unidirectional (from processor to external world) two-wire serial, byte-oriented debug interface for use
by processor firmware to transmit diagnostic information.
The TFDP consists of the Debug Data Register, Debug Control Register, a Parallel-to-Serial Converter, a Clock/Control
Interface and a two-pin external interface (TFDP Clk, TFDP Data). See Figure 41-2.
WRITE_COMPLETE CLOCK/CONTROL
TFDP_CLK
INTERFACE
MCLK
The firmware executing on the embedded controller writes to the Debug Data Register to initiate a transfer cycle
(Figure 41.11). At first, data from the Debug Data Register is shifted into the LSB. Afterwards, it is transmitted at the rate
of one byte per transfer cycle.
Data is transferred in one direction only from the Debug Data Register to the external interface. The data is shifted out
at the clock edge. The clock edge is selected by the EDGE_SEL bit in the Debug Control Register. After being shifted
out, valid data will be presented at the opposite edge of the TFDP_CLK. For example, when the EDGE_SEL bit is ‘0’
(default), valid data will be presented on the falling edge of the TFDP_CLK. The Setup Time (to the falling edge
of TFDP_CLK) is 10 ns, minimum. The Hold Time is 1 ns, minimum.
When the Serial Debug Port is inactive, the TFDP_CLK and TFDP_DAT outputs are ‘1.’ The EC Bus Clock clock input
is the transfer clock.
MSCLK
MSDAT D0 D1 D2 D3 D4 D5 D6 D7
EC_CLOCK
DIVSEL
Offset 00h
Reset
Bits Description Type Default
Event
Offset 04h
Reset
Bits Description Type Default
Event
7 Reserved R - -
0 EN R/W 0b RESET
Enable. _SYS
1=Clock enabled
0=Clock is disabled (Default)
42.1 Overview
The Port 80 BIOS Debug Port emulates the functionality of a “Port 80” ISA plug-in card. In addition, a timestamp for
the debug data can be optionally added.
Diagnostic data is written by the Host Interface to the Port 80 BIOS Debug Port, which is located in the Host I/O address
space. The Port 80 BIOS Debug Port generates an interrupt to the EC when host data is available. The EC reads
this data along with the timestamp, if enabled.
42.2 References
There are no references for this block.
42.3 Interface
This block is designed to be accessed externally via the pin interface and internally via a registered host interface.
Host Interface
Signal Description
Clock Inputs
Resets
Interrupts
Name Description
VTR This Power Well is used to power the registers and logic in this block.
42.6.2 CLOCK INPUTS
Name Description
48MHz This is the clock source for Port 80 block logic.
42.6.3 RESETS
Name Description
RESET_SYS This signal resets all the registers and logic in this block to their default
state.
42.7 Interrupts
This section defines the Interrupt Sources generated from this block.
Source Description
BDP_INT The Port 80 BIOS Debug Port generates an EC interrupt when the
amount of data in the Port 80 FIFO equals or exceeds the FIFO Thresh-
old defined in the Configuration Register.
The interrupt signal is always generated by the Port 80 block if the block
is enabled; the interrupt is enabled or disabled in the Interrupt Aggregator.
42.9 Description
RESET_SYS
24-bit Timer
48MHz
BDP_INT
FIFO
Host Interface 32-bit x 16 EC Interface
Offset 330h
Reset
Bits Description Type Default
Event
7:1 Reserved R - -
Offset 00h
Reset
Bits Description Type Default
Event
31:8 Reserved R - -
42.12 EC Registers
Registers for this block are shown in the following summary table. Addresses for each register are determined by adding
the offset to the Base Address for each instance of the Port 80 BIOS Debug Port Block in the Block Overview and Base
Address Table in Section 3.0, "Device Inventory".
Offset 100h
Reset
Bits Description Type Default
Event
Offset 104h
Reset
Bits Description Type Default
Event
31:8 Reserved R - -
3=48MHz/64
2=48MHz/32
1=48MHz/16
0=48MHz/8
2 RESET_TIMESTAMP W - RESET
When this field is written with a ‘1’, the 24-bit Timer is reset to ‘0’. _SYS
Writing zero to the Count Register has the same effect.
Writes of a ‘0’ to this field have no effect. Reads always return ‘0’.
1 FLUSH W - RESET
When this field is written with a ‘1’, the FIFO is flushed. _SYS
Writes of a ‘0’ to this field have no effect. Reads always return ‘0’.
0 Reserved R - -
Offset 108h
Reset
Bits Description Type Default
Event
31:2 Reserved R - -
1 OVERRUN R 0h RESET
The OVERRUN bit is ‘1’ when the host writes the Host Data Regis- _SYS
ter when the FIFO is full.
0 NOT_EMPTY R 0h RESET
The NOT EMPTY bit is ‘1’ when there is data in the FIFO. The _SYS
NOT EMPTY bit is ‘0’ when the FIFO is empty.
Offset 10Ch
Reset
Bits Description Type Default
Event
7:0 Reserved R - -
43.2 Interface
This block’s connections are entirely internal to the chip.
Host Interface
Signal Description
Clocks
Resets
Interrupts
Name Description
VBAT This power well sources all of the internal registers and logic in this block.
VTR This power well sources only bus communication. The block continues to
operate internally while this rail is down.
43.5.2 CLOCKS
This block does not require clocks.
43.5.3 RESETS
Name Description
RESET_VBAT This reset signal is used reset all of the registers and logic in this block.
RESET_SYS This reset signal is used to inhibit the bus communication logic, and iso-
lates this block from VTR powered circuitry on-chip. Otherwise it has no
effect on the internal state.
43.6 Interrupts
Source Description
VCI_IN[6:0] These interrupts are routed to the Interrupt Controller They are only
asserted when both VBAT and VTR are powered. Edge detection and
assertion level for the interrupt are configured in the GPIO Pin Control
Registers for the GPIOs that shares pins with VCI_IN# inputs. The inter-
rupts are equivalent to the GPIO interrupts for the GPIOs that share the
pins, but appear on different registers in the Interrupt Aggregator.
VCI_IN0# Logic
VCI_IN1# Logic
VCI_IN2# Logic
VCI_IN3# Logic
0
VCI_IN4# Logic
VCI_IN5# Logic
VCI_IN6# Logic
VCI_OVRD_IN
SYS_SHDN# VCI_OUT
Week Alarm
Latch VCI_FW_CONTRL 1
RTC Alarm
Latch 1
FW_EXT
VTR_PWRGD
VCI_BUFFER_EN IE
VCI_IN _
FILTER_BYPASS
POL
ENB 0
PIN Filter ENB
R Q 1
? ?
S
VCI_IN VCI_IN
POS NEG LS LE VCI_IN #
43.9 EC Registers
Registers for this block are shown in the following summary table. Addresses for each register are determined by adding
the offset to the Base Address for the VBAT-Powered Control Interface Block in the Block Overview and Base Address
Table in Section 3.0, "Device Inventory".
Offset 00h
Reset
Bits Description Type Default
Event
31:18 Reserved R - -
17 RTC_ALRM R 0 RESET
If enabled by RTC_ALRM_LE, this bit is set to ‘1’ if the RTC Alarm _VBAT
signal is asserted. It is reset by writes to RTC_ALRM_LS.
Note 1: The VCI_IN[6:0]# bits default to the state of their respective input pins. The VCI_OUT bit is determined
by the VCI hardware circuit
Offset 00h
Reset
Bits Description Type Default
Event
16 WEEK_ALRM R 0 RESET
If enabled by WEEK_ALRM_LE, this bit is set to ‘1’ if the Week _VBAT
Alarm signal is asserted. It is reset by writes to WEEK_ALRM_LS.
15:13 Reserved R - -
1=Filters disabled
0=Filters enabled (default)
BIOS must set this bit to ‘1’ prior to setting the FW_EXT bit to ‘1’ on
power up, in order to avoid glitches on the VCI_OUT pin.
9 VCI_OUT R See –
This bit provides the current status of the VCI_OUT pin. Note 1
8 Reserved R - –
7 Reserved R - -
Note 1: The VCI_IN[6:0]# bits default to the state of their respective input pins. The VCI_OUT bit is determined
by the VCI hardware circuit
Offset 04h
Reset
Bits Description Type Default
Event
31:18 Reserved R - -
1=Enabled. Assertions of the RTC Alarm are held until the latch is
reset by writing the correspondingLS bit
0=Not Enabled. The RTC Alarm signal is not latched but passed
directly to the VCI_OUT logic
1=Enabled. Assertions of the Week Alarm are held until the latch is
reset by writing the correspondingLS bit
0=Not Enabled. The Week Alarm signal is not latched but passed
directly to the VCI_OUT logic
15:7 Reserved R - -
Offset 08h
Reset
Bits Description Type Default
Event
31:18 Reserved R - -
17 RTC_ALRM_LS W - –
RTC Alarm Latch Reset. When this bit is written with a ‘1’, the RTC
Alarm Event latch is reset
The RTC Alarm input to the latch has priority over the Reset input
Offset 08h
Reset
Bits Description Type Default
Event
16 WEEK_ALRM_LS W - –
Week Alarm Latch Reset. When this bit is written with a ‘1’, the
Week Alarm Event latch is reset
The Week Alarm input to the latch has priority over the Reset input
15:7 Reserved R - -
6:0 LS W – –
Latch Resets. When a Latch Resets bit is written with a ‘1’, the cor-
responding VCI_INi# latch is de-asserted (‘1’).
The VCI_INi# input to the latch has priority over the Latch Reset
input, so firmware cannot reset the latch while the VCI_INi# pin is
asserted. Firmware should sample the state of the pin in the VCI
Register before attempting to reset the latch. As noted in the Latch
Enable Register, the assertion level is determined by the
VCI_IN_POL bit.
Offset 0Ch
Reset
Bits Description Type Default
Event
31:7 Reserved R - -
After changing the input enable for a VCI input, firmware should
reset the input latch and clear any potential interrupt that may have
been triggered by the input, as changing the enable may cause the
internal status to change.
Offset 14h
Reset
Bits Description Type Default
Event
31:7 Reserved R - -
Offset 18h
Reset
Bits Description Type Default
Event
31:7 Reserved R - -
Offset 1Ch
Reset
Bits Description Type Default
Event
31:7 Reserved R - -
Offset 20h
Reset
Bits Description Type Default
Event
31:7 Reserved R - -
After changing the buffer enable for a VCI input, firmware should
reset the input latch and clear any potential interrupt that may have
been triggered by the input, as changing the buffer may cause the
internal status to change.
This register has no effect when VTR is powered. When VTR is on,
the input buffers are enabled only by the IE bit.
44.1 Overview
The VBAT Powered RAM provides a 128 Byte Random Accessed Memory that is operational while the main power rail
is operational, and will retain its values powered by battery power while the main rail is unpowered.
44.2 References
No references have been cited for this feature.
44.3 Terminology
There is no terminology defined for this section.
44.4 Interface
This block is designed to be accessed externally via the pin interface and internally via a registered host interface.
VBAT-Powered RAM
Host Interface
Signal Description
Interrupts
Name Description
VTR The main power well used when the VBAT RAM is accessed by the EC.
VBAT The power well used to retain memory state while the main power rail is
unpowered.
44.7.2 CLOCK INPUTS
No special clocks are required for this block.
44.7.3 RESETS
Name Description
RESET_VBAT This signal resets all the registers and logic in this block to their default
state.
44.8 Interrupts
This block does not generate any interrupts.
44.10 Description
EC Interface
The VBAT Powered RAM provides a 128 Byte Random Accessed Memory that is operational while VTR is powered,
and will retain its values powered by VBAT while VTR is unpowered. The RAM is organized as a 32 words x 32-bit wide
for a total of 128 bytes.
The contents of the VBAT RAM is indeterminate after a RESET_VBAT.
45.1 Introduction
This chapter defines a bank of registers powered by VBAT.
45.2 Interface
This block is designed to be accessed internally by the EC via the register interface.
Name Description
VBAT The VBAT Register Bank are all implemented on this single power
domain.
45.3.2 CLOCK INPUTS
This block does not require any special clock inputs. All register accesses are synchronized to the host clock.
45.3.3 RESETS
Name Description
RESET_VBAT This reset signal, which is an input to this block, resets all the logic and
registers to their initial default state.
45.4 Interrupts
This block does not generate any interrupt events.
45.6 Description
The VBAT Register Bank block is a block implemented for aggregating miscellaneous battery-backed registers required
the host and by the Embedded Controller (EC) Subsystem that are not unique to a block implemented in the EC sub-
system.
45.7 EC Registers
Registers for this block are shown in the following summary table. Addresses for each register are determined by adding
the offset to the Base Address for the VBAT Register Bank Block in the Block Overview and Base Address Table in Sec-
tion 3.0, "Device Inventory".
Address 00h
Reset
Bits Description Type Default
Event
7 VBAT_RST R/WC 1 RESET_
The VBAT_RST bit is set to ‘1’ by hardware when a RESET_VBAT VBAT
is detected. This is the register default value. To clear VBAT RST
EC firmware must write a ‘1’ to this bit; writing a ‘0’ to VBAT RST
has no affect.
6 SYSRESETREQ R/WC - -
This bit is set to ‘1b’ if a RESET_SYS was triggered by an ARM
SYSRESETREQ event.
This bit is cleared to ‘0b’ when written with a ‘1b’; writes of a ‘0b’
have no effect.
5 WDT R/WC 0 RESET_
This bit is set to ‘1b’ if a RESET_SYS was triggered by a Watchdog VBAT
Timer event.
This bit is cleared to ‘0b’ when written with a ‘1b’; writes of a ‘0b’
have no effect.
4 RESETI R/WC 0 RESET_
This bit is set to ‘1b’ if a RESET_SYS was triggered by a low signal VBAT
on the RESETI# input pin.
This bit is cleared to ‘0b’ when written with a ‘1b’; writes of a ‘0b’
have no effect.
3 TEST R/WC 0 RESET_
VBAT
2 SOFT_SYS_RESET Status R/WC 0 RESET_
This bit is set to ‘1b’ if a was triggered by an assertion of the SOFT- VBAT
_SYS_RESET bit in the System Reset Register.
This bit is cleared to ‘0b’ when written with a ‘1b’; writes of a ‘0b’
have no effect.
1 Reserved R 0 RESET_
VBAT
0 Reserved R - -
Address 08h
Reset
Bits Description Type Default
Event
31:3 Reserved R - -
3 XOSEL R/W 0b RESET_
This bit selects between a single-ended clock source for the crystal VBAT
oscillator or an external parallel crystal.
Address 20h
Reset
Bits Description Type Default
Event
31:0 MONOTTONIC_COUNTER R 0b RESET_
Read-only register that increments by 1 every time it is read. It is VBAT
reset to 0 on a VBAT Power On Reset.
Address 24h
Reset
Bits Description Type Default
Event
31:0 COUNTER_HIWORD R/W 0b RESET_
Thirty-two bit read/write register. If software sets this register to an VBAT
incrementing value, based on an external non-volatile store, this
register may be combined with the Monotonic Counter Register to
form a 64-bit monotonic counter.
45.7.5 VWIRE BACKUP REGISTER
Address 28h
Reset
Bits Description Type Default
Event
31:8 Reserved R - -
7:4 M2S_42H_BACKUP R/W 0b RESET_
The Boot ROM firmware will copy this field into the SRC3 to SRC0 VBAT
bits of the Master-to-Slave Virtual Wire Register that corresponds to
Virtual Wire Index 42h on a RESET_SYS. If software always saves
the state of the Index 42h SRC bits on the falling edge of the
SUSWARN# virtual wire, the state of the four SRC bits will be syn-
chronized to the state of the four bits in the core logic.
3:0 M2S_2H_BACKUP R/W 0b RESET_
The Boot ROM firmware will copy this field into the SRC3 to SRC0 VBAT
bits of the Master-to-Slave Virtual Wire Register that corresponds to
Virtual Wire Index 2h on a RESET_SYS. If software always saves
the state of the Index 2h SRC bits on the falling edge of the
SUSWARN# virtual wire, the state of the four SRC bits will be syn-
chronized to the state of the four bits in the core logic.
46.1 Introduction
This chapter defines a bank of registers associated with the EC Subsystem.
46.2 References
None
46.3 Interface
This block is designed to be accessed internally by the EC via the register interface.
Name Description
VTR The logic and registers implemented in this block are powered by this
power well.
46.4.3 RESETS
Name Description
RESET_SYS This signal resets all the registers and logic in this block to their default
state, except WDT Event Count Register.
RESET_SYS_nWDT This signal resets the WDT Event Count Register register. This reset is
not asserted on a WDT Event.
RESET_VTR This reset signal is asserted only on VTR power on.
46.5 Interrupts
This block does not generate any interrupt events.
46.7 Description
The EC Subsystem Registers block is a block implemented for aggregating miscellaneous registers required by the
Embedded Controller (EC) Subsystem that are not unique to a block implemented in the EC subsystem.
Offset 08h
Reset
Bits Description Type Default
Event
31:2 Reserved R - -
1:0 SRAM_SIZE R 0h RESET_
SYS
3=480KB total (Code=416KB; DATA=64KB). Code RAM starts at
address B0000h and extends to 117FFFh. Data RAM starts at
118000h and extends to 127FFFh
Offset 04h
Reset
Bits Description Type Default
Event
31:0 AHB_ERR_ADDR R/WZC 0h RESET_
In priority order: SYS
1. AHB address is registered when an AHB error occurs on the
processors AHB master port and the register value was
already 0. This way only the first address to generate an
exception is captured.
2. The processor can clear this register by writing any 32-bit
value to this register.
46.8.3 AHB ERROR CONTROL REGISTER
Offset 14h
Reset
Bits Description Type Default
Event
7:2 Reserved R - -
1 TEST R/W 0h RESET_
SYS
0 AHB_ERROR_DISABLE R/W 0h RESET_
SYS
1=EC memory exceptions are disabled
0=EC memory exceptions are enabled
Offset 18h
Reset
Bits Description Type Default
Event
31:1 Reserved R - -
0 NVIC_EN R/W 1b RESET_
This bit enables Alternate NVIC IRQ’s Vectors. The Alternate NVIC SYS
Vectors provides each interrupt event with a dedicated (direct) NVIC
vector.
Offset 1Ch
Reset
Bits Description Type Default
Event
31:1 Reserved R - -
0 TRACE_EN R/W 0b RESET_
This bit enables the ARM TRACE debug port (ETM/ITM). The Trace SYS
Debug pins are forced to the TRACE functions.
Offset 20h
Reset
Bits Description Type Default
Event
31:4 Reserved R - -
3 DEBUG_PU_EN R/W 0h RESET_
If this bit is set to ‘1b’ internal pull-up resistors are automatically SYS
enabled on the appropriate debugging port wires whenever the
debug port is enabled (the DEBUG_EN bit in this register is ‘1b’ and
the JTAG_RST# pin is high). The setting of DEBUG_PIN_CFG
determines which pins have pull-ups enabled when the debug port
is enabled.
Reset
Bits Description Type Default
Event
2:1 DEBUG_PIN_CFG R/W 0h RESET_
This field determines which pins are affected by the TRST# debug SYS
enable pin.
3=Reserved
2=The pins associated with the JTAG TCK and TMS switch to the
debug interface when TRST# is de-asserted high. The pins
associated with TDI and TDO remain controlled by the associ-
ated GPIO. This setting should be used when the ARM Serial
Wire Debug (SWD) is required for debugging and the Serial
Wire Viewer is not required
1=The pins associated with the JTAG TCK, TMS and TDO switch to
the debug interface when TRST# is de-asserted high. The pin
associated with TDI remains controlled by the associated GPIO.
This setting should be used when the ARM Serial Wire Debug
(SWD) and Serial Wire Viewer (SWV) are both required for
debugging
0=All four pins associated with JTAG (TCK, TMS, TDI and TDO)
switch to the debug interface when TRST# is de-asserted high.
This setting should be used when the JTAG TAP controller is
required for debugging
0 DEBUG_EN R/W 0b RESET_
This bit enables the JTAG/SWD debug port. SYS
Offset 24h
Reset
Bits Description Type Default
Event
31:5 Reserved R - -
4 PUBLIC_KEY_LOCK R/W / 0b RESET_
This bit controls access to the Public Key region of the eFuse mem- R SYS
ory, bytes 128 to 191.
Reset
Bits Description Type Default
Event
3 USER_OTP_LOCK R/W / 0b RESET_
This bit controls access to the User region of the eFuse memory, R SYS
bytes 192 to 511.
Offset 28h
Reset
Bits Description Type Default
Event
31:4 Reserved R - -
3:0 WDT_EVENT_COUNT R/W 0b RESET_
This field is cleared to 0 on a reset triggered by the main power on SYS_n-
reset, but not on a reset triggered by the Watchdog Timer. WDT
This field needs to be written by application to indicate the number
of times a WDT fired before loading a good EC code image. Note 1
Reset
Bits Description Type Default
Event
Note 1: The recommended procedure is to first clear the VTR WDT STATUS bit, increment the
WDT_EVENT_COUNT, clear the VBAT WDT STATUS bit and then rearm the WDT.
Offset 40h
Reset
Bits Description Type Default
Event
31:1 Reserved R - -
0 PECI_DISABLE R/W 0b RESET_
This bit reduces leakage current through the CPU voltage reference SYS
pin if PECI or SB-TSI are not used.
Offset 64h
Reset
Bits Description Type Default
Event
31:8 Reserved R - –
This bit cannot be cleared once it is set to ‘1’. Writing zero has no
effect.
6:3 Reserved R - –
Offset 64h
Reset
Bits Description Type Default
Event
Note: The Boot ROM reads the VTR_LEVEL1, VTR_LEVEL2, VTR_LEVEL3 values from the SPI Flash Header
and writes the VTR_LEVEL1, VTR_LEVEL2, VTR_LEVEL3 bits. If the SPI Flash load fails, the Boot ROM
clears all VTR_LEVEL1, VTR_LEVEL2, VTR_LEVEL3 bits.
Offset 70h
Reset
Bits Description Type Default
Event
31:4 Reserved R - –
7=375KHz
6=750KHz
5=1.5Mhz
4=3Mhz
3=6Mhz
2=12Mhz
1=24MHz
0=Reserved.
Offset 74h
Reset
Bits Description Type Default
Event
31:1 Reserved R - –
0 JTM_DONE R - RESET
This bit is set to ‘1b’ when the JTAG Master Command Register is _SYS
written. It becomes ‘0b’ when shifting has completed. Software
can poll this bit to determine when a command has completed and
it is therefore safe to remove the data in the JTAG Master TDO
Register and load new data into the JTAG Master TMS Register
and the JTAG Master TDI Register.
Offset 78h
Reset
Bits Description Type Default
Event
Offset 7Ch
Reset
Bits Description Type Default
Event
Offset 80h
Reset
Bits Description Type Default
Event
Offset 84h
Reset
Bits Description Type Default
Event
31:5 Reserved R - –
47.1 Overview
This device includes a set of components that can support a high level of system security. Hardware support is provided
for:
• Authentication, using public key algorithms
• Integrity, using Secure Hash Algorithms (SHA)
• Privacy, using symmetric encryption (Advanced Encryption Standard, AES)
• Entropy, using a true Random Number Generator
47.2 References
• American National Standards Institute, “Public Key Cryptography for the Financial Services Industry: Key Agree-
ment and Key Transport Using Elliptic Curve Cryptography”, X9.63-2011, December 2011
• American National Standards Institute, “Public Key Cryptography for the Financial Servic3es Industry: The Elliptic
Curve Digital Signature Algorithm (ECDSA)”, X9.62-2005, November 2005
• International Standards Organization, “Information Technology - Security techniques - Cryptographic techniques
based on elliptic curves -- Part 2: Digital Signatures”, ISO/IEC 15946-2, December 2002
• National Institute of Standards and Technology, “Secure Hash Standard (SHS)”, FIPS Pub 180-4, March 2012
• National Institute of Standards and Technology, “Digital Signature Standard (DSS)”, FIPS Pub 186-3, June 2009
• National Institute of Standards and Technology, “Advanced Encryption Standard (AES)”, FIPS Pub 197, November
2001
• National Institute of Standards and Technology, “Recommendation for Block Cipher Modes of Operation”, FIPS SP
800-38A, 2001
• RSA Laboratories, “PKCS#1 v2.2: RSA Cryptography Standard”, October 2012
47.3 Terminology
There is no terminology defined for this section.
47.4 Interface
This block is designed to be accessed externally via the pin interface and internally via a registered host interface.
Security Features
Host Interface
Signal Description
Interrupts
Name Description
VTR The main power well used when the VBAT RAM is accessed by the EC.
47.7.2 CLOCK INPUTS
No special clocks are required for this block.
47.7.3 RESETS
Name Description
RESET_SYS This signal resets all the registers and logic in this block to their default
state.
Source Description
Symmetric Encryption
Cryptographic Hashing
HASH HASH
47.10 Description
The security hardware incorporates the following functions:
47.11 Registers
Note: Boundary Scan operates in 4-wire JTAG mode only. This is not supported by 2-wire SWD.
JTAG Boundary Scan includes registers and functionality as defined in IEEE 1149.1 and the MEC170x BSDL file. The
MEC170x Boundary Scan JTAG ID is shown in Table 1-1.
Note: Must wait a minimum of 35ms after a POR to accurately read the Boundary Scan JTAG ID. Reading the
JTAG ID too soon may return a Boundary Scan JTAG ID of 00000000h. This is not a valid ID value.
TAP states
Data presentation
change on rising Shifting occurs on
occurs in middle
edges of TCK , exiting the
of state (pre-shift).
based on TMS corresponding
(not shown). Shift state.
TCK
Shift Register
Captured Value A
Contents
Undefined
TDO Undefined or Floating Captured Value
or Floating
49.1 Introduction
The eFUSE block provides a means of programming and accessing a block of One Time Programmable memory.
49.2 Terminology
None.
49.3 Interface
eFUSE Block
Host Interface
Pin Interface
Power, Clocks and Resets
Interrupt
Name Description
RESET_SYS This reset signal resets all of the registers and logic in this block.
49.7 Description
The eFuse memory consists of four blocks of 1K bits each, for a total of 4K bits. The assignment of the eFuse data is
shown in Section 49.9, "eFuse Memory Map".The eFUSE bits are programmed one bit at a time through a register inter-
face. Addressing bits for writing bits is by a 2-bit block address field and a 10-bit offset within block field. The eFUSE
memory can be read through 8-bit or 16-bit reads of a block of register addresses.
Note: Only 8-bit and 16-bit access to the eFUSE memory is supported. A 32-bit access or larger will just have
the 16-bit read-back value replicated in the other byte lanes.
Note: Any secret customer information stored on chip in either EFUSE or VBAT memory must be encrypted for
best security practices.
Bits[7:3]: Undefined
484-507 USER_ TEST Microchip test functions. These bits should not be modified.
OTP_
LOCK
49.10 EC Registers
Registers for this block are shown in the following summary table. Addresses for each register are determined by adding
the offset to the Base Address for the eFUSE Block Block in the Block Overview and Base Address Table in Section
3.0, "Device Inventory".
Offset 00h
Reset
Bits Description Type Default
Event
15:5 Reserved R - -
4 FSOURCE_EN_READ R/W 1b RESET_
FSOURCE pin enable for reading: SYS
Reset
Bits Description Type Default
Event
3 FSOURCE_EN_PRGM R/W 0b RESET_
FSOURCE pin enable for programming: SYS
1=Block is reset
0=Normal operation
Offset 04h
Reset
Bits Description Type Default
Event
15:6 Reserved R - -
5 IP_OE R/W 0b RESET_
eFUSE output enable. The IP might tri-state at various times, so this SYS
bit isolates the outputs to avoid potential crowbar.
Reset
Bits Description Type Default
Event
2 IP_PRGM_EN) R/W 0b RESET_
eFUSE program enable. Can also be considered the write signal: SYS
1=eFUSE is programming
0=eFUSE is in read mode
1 IP_CS R/W 0b RESET_
eFUSE chip select (CS) pin: SYS
Offset 06h
Reset
Bits Description Type Default
Event
31:12 Reserved R - -
11:10 IP_ADDR_HI R/W 0b RESET_
Manual mode address, selecting a 1K bit block of eFuse data. SYS
9:0 IP_ADDR_LO R/W 0b RESET_
Manual mode address, selecting the bit address within a 1K bit SYS
block.
Offset 0Ch
Reset
Bits Description Type Default
Event
31:16 Reserved R - -
15:0 IP_DATA R/W 0b RESET_
Manual mode data: SYS
This field connects to the eFUSE data output pins.
Offset 10h
Reset
Bits Description Type Default
Event
4095:0 IP_MEM R/W 0 RESET_
eFUSE memory read-back data, used to read eFuse data. Although SYS
these registers can be written, writes only change the read-back
data and do not update the eFuse memory itself.
Note: When powering this device from laboratory or system power supplies, it is important that the Absolute Max-
imum Ratings not be exceeded or device failure can result. Some power supplies exhibit voltage spikes on
their outputs when the AC power is switched on or off. In addition, voltage transients on the AC power line
may appear on the DC output. If this possibility exists, it is suggested that a clamp circuit be used.
Note: The specification for the VTRx supplies are +/- 5%.
Note: All output pins, except pin under test, tied to AC ground.
Limits
Parameter Symbol Unit Notes
MIN TYP MAX
Note 1: All input buffers can be characterized by this capacitance unless otherwise specified.
2: All output buffers can be characterized by this capacitance unless otherwise specified.
3: The PCI buffers are designed to meet the defined PCI Local Bus Specification, Rev. 2.1, electrical require-
ments.
Limits
Parameter Symbol Unit Notes
MIN TYP MAX
Note 1: All input buffers can be characterized by this capacitance unless otherwise specified.
2: All output buffers can be characterized by this capacitance unless otherwise specified.
3: The PCI buffers are designed to meet the defined PCI Local Bus Specification, Rev. 2.1, electrical require-
ments.
PCI Buffers (PCI_ICLK, VIH 0.5VT VTR + V See PCI Local Bus Specification
PCI_IO, PCI_I, PCI_O, R 0.5 Rev. 2.2
PCI_OD)
VIL -0.5 0.3VT V
R
CIN 10 pF
PCI Buffers (PCI_ICLK, VIH 1.5 VTR + V See PCI Local Bus Specification
PCI_IO, PCI_I, PCI_O, 0.5 Rev. 2.2
PCI_OD)
VIL -0.5 0.8 V
Input Low Current ILEAK -10 +10 µA This buffer is not 5V tolerant
This buffer is not backdrive pro-
tected.
Low Output Level VOL 0.25 V 0.5mA < IOL < 1mA
Vref
Crystal Oscillator
XTAL1 (OCLK) The MEC170x crystal oscillator design requires a 32.768 KHz parallel resonant crys-
tal with load caps in the range 4-18pF. Refer to “Application Note PCB Layout Guide
for MEC170x” for more information.
XTAL2 (ICLK)
ADC_VREF
Input Low Current ILEAK -0.05 +0.05 µA This buffer is not 5V tolerant
This buffer is not backdrive pro-
tected.
Three-State Input IIL - - +/- 4 µA VIN: 4.0V < Vin < 5.5V
Leakage Current
for 5V Tolerant Pins - - +/- 66 µA VIN: 3.6V < Vin < 4.0V
Three-State Input IIL - - +/- 4 µA VIN: 4.0V < Vin < 5.5V
Leakage Current
for 5V Tolerant Pins - - +/- 70 µA VIN: 3.6V < Vin < 4.0V
BACKDRIVE PROTECTION
INL Integral Non Linearity, INL -1.5 – +1.5 LSB Guaranteed Mono-
tonic
Max
48 Typical Max (3.45V,
System EC_CLK Comments
VTR VCC MHz (3.3V, (3.45V, 850 C) Units
State Freq (Note 1)
PLL 250 C) 700 C) (Note
3)
Max
48 Typical Max (3.45V,
System EC_CLK Comments
VTR VCC MHz (3.3V, (3.45V, 850 C) Units
State Freq (Note 1)
PLL 250 C) 700 C) (Note
3)
On Off S5 Off Off 0.5 1.9 3.0 mA Heavy Sleep, LPC Clock
Off (Note 2) and No eSPI
Traffic
Note 1: FULL ON is defined as follows: The processor is not sleeping, the Core regulator and the PLL remain pow-
ered, and at least one block is not sleeping.
2: The sleep states are defined in the System Sleep Control Register in the Power, Clocks and Resets Chap-
ter. See Table 4.9.4, "System Sleep Control Register".
3: Applicable to MEC1705 and MEC1704 only
Note: In order to achieve the lowest leakage current when the VREF_VTT power domain is not required, ground
the VREF_VTT pin.
Typical Max
System 48 MHz
VCC VTR (3.0V, (3.0V, Units Comments
State PLL
250 C) 250 C)
Off Off S5 Off 5.0 9.0 uA External 32kHz clock on XTAL2 pin
Typical Max
System 48 MHz
VCC VTR (3.3V, (3.3V, Units Comments
State PLL
250 C) 250 C)
Off Off S5 Off 6.0 10.0 uA External 32kHz clock on XTAL2 pin
tR
VThrshHigh
VThrshLow
VSS
tF tRESET
ResThrsh
VThrshLow
VSS
VBAT
t0
VTR_REG
t1
VR_CAP
Connected to same t2
3.3V rail t0
VTR_ANALOG
t2
VTR_PLL
t3a t3b
VTR1
t4a t4b
VTR2
t5a t5b
VTR3
Note 1: VBAT must rise no later than VTR_ANALOG and VTR_REG. This relationship is ensured by the recom-
mended battery circuit.
2: VR_CAP output is asserted by the regulator when VR_REG is on and stable for at least the minimum
defined time. All other signal timing requirements are relative to VR_CAP assertion.
3: VTR_PLL Must be connected to 3.3V VTR_ANALOG power supply.
4: VTR1 and VTR2 cannot be connected to VTR_REG for 3.3V operation. If VTR1 or VTR2 is powered by
3.3V, they must be connected to the 3.3V VTR_ANALOG supply.
5: The JTAG_STRAP pin is powered by VTR1 and is sampled when the RESET_EC signal goes inactive fol-
lowing POR event. Subsequent EC resets will not sample the JTAG_STRAP pin. VTR1 must be powered
prior to RESET_EC signal going inactive.
6: The SHD_CS# pin, which is powered by VTR2, must be powered before the Boot ROM samples this pin.
7: If booting over eSPI, the EC boot ROM code monitors GPIO227/SHD_IO2, which is a VTR2 signal, to deter-
mine that VTR3 is active. The maximum time is the time after which the code abandons the boot.
8: Software must program 3.3V VTR_LEVEL3 bit in GPIO Bank Power register to 0 for 3.3V operation.
9: Minimum operating threshold values for Power Rails are defined in Table 50-1, “Power Supply Operating
Conditions,” on page 606.
t5
t4
t3
t1
VBAT
t0
VTR _R EG
C o n n e cte d to sa m e
3 .3 V ra il
VT R _AN ALO G
t2
VT R _PLL
VTR 1
VTR 2
VTR 3
10: VTR_ANALOG and VTR_REG may ramp in either order. There is no limit on the time between the ramp of
one rail and the ramp of the other.
11: VBAT must rise no later than VTR_ANALOG and VTR_REG. This relationship is ensured by the recom-
mended battery circuit.
12: VTR_ANALOG and VTR_PLL must be connected to the same 3.3V power source.
13: The JTAG_STRAP pin is powered by VTR1 and is sampled on the assertion of the first RESET_EC event
following a RESET_VTR. Subsequent EC resets will not sample the JTAG_STRAP pin. VTR1 must be pow-
ered prior to the deassertion of RESET_EC.
14: The SHD_CS# pin, which is powered by VTR2, must be powered before the Boot ROM samples this pin.
15: If booting over eSPI, the EC boot ROM code monitors GPIO227/SHD_IO2, which is a VTR2 signal, to deter-
mine that VTR3 is active. The maximum time is the time after which the code abandons the boot.
16: In non-eSPI applications, where VTR3 may be either 1.8V or 3.3V, software must program the GPIO Bank
Power register for VTR3 pins before any of the VTR3 powered pins are used.
17: minimum operating threshold values for Power Rails are defined in Table 50-1, “Power Supply Operating
Conditions,” on page 606.
tF tRESET tR
VTR
0.8V
Limits
Symbol Parameter Units Comments
MIN MAX
Note 1: The RESETI# input pin can tolerate glitches of no more than 50ns.
Period
High
Time
Low
Time
Fall Time Rise Time
tSU
48 MHz PLL 48 MHz PLL
Not Locked Locked
Note 1: The 48MHz PLL is frequency accuracy is computed by adding +/-1% to the accuracy of the 32kHz refer-
ence clock.
2: The Cycle to Cycle Jitter of the 48MHz PLL is +/-200ps based on an ideal 32kHz clock source. The actual
jitter on the 48MHz clock generated is computed by adding the clock jitter of the 32kHz reference clock to
the 48MHz PLL jitter (e.g., 32kHz jitter +/- 200ps).
3: See the PCB Layout guide for design requirements and recommended 32.768 kHz Crystal Oscillators.
4: An external single-ended 32KHz clock is required to have an accuracy of +/- 100 ppm.
5: The external single-ended 32KHz clock source may be connected to either the XTAL2 pin or 32KHZ_IN
pin.
6: PLL is started, either from waking from the Heavy Sleep mode, or after a Power On Reset
- Fall Time - - 1 us
- Rise Time - - 1 us
Note 1: The 48MHz PLL is frequency accuracy is computed by adding +/-1% to the accuracy of the 32kHz refer-
ence clock.
2: The Cycle to Cycle Jitter of the 48MHz PLL is +/-200ps based on an ideal 32kHz clock source. The actual
jitter on the 48MHz clock generated is computed by adding the clock jitter of the 32kHz reference clock to
the 48MHz PLL jitter (e.g., 32kHz jitter +/- 200ps).
3: See the PCB Layout guide for design requirements and recommended 32.768 kHz Crystal Oscillators.
4: An external single-ended 32KHz clock is required to have an accuracy of +/- 100 ppm.
5: The external single-ended 32KHz clock source may be connected to either the XTAL2 pin or 32KHZ_IN
pin.
6: PLL is started, either from waking from the Heavy Sleep mode, or after a Power On Reset
G P IO x x x
Tr T p u ls e Tf T p u ls e
t0 t1
VTR_REG/VTR_ANALOG
VTR3 `
Don’t Care
t5
t4
t0 t1 t2 t3
VTR_REG/VTR_ANALOG
VTR3 ` Care
Don’t
tVPWRGD
VCC_PWRGD
Limits Notes
Symbol Parameter Units
MIN MAX
t1 t4
LCLK t5 t3 t2
LR E S E T# t1
LCLK
t1
Output Delay
t2
t3
Tri-State Output
t1 t2
LCLK
LCLK
LFRAME#
LCLK
LFRAME#
LCLK
t1 t2
SER_IRQ
Data
Note 1: tBR is 1/Baud Rate. The Baud Rate is programmed through the Baud_Rate_Divisor bits located in the
Programmable Baud Rate Generator registers. Some of the baud rates have some percentage of error
because the clock does not divide evenly. This error can be determined from the values in these baud
rate tables.
tBIT Bit time (overall time evident on PECI pin) 0.495 500 µsec Note 1
Bit time driven by an originator 0.495 250 µsec
tH1 High level time for logic 1 0.6 0.8 tBIT Note 2
Note 1: The originator must drive a more restrictive time to allow for quantized sampling errors by a client yet still
attain the minimum time less than 500 µsec. tBIT limits apply equally to tBIT-A and tBIT-M. The MEC170x is
designed to support 2 MHz, or a 500ns bit time. See the PECI 3.1 specification from Intel Corp. for fur-
ther details.
2: The minimum and maximum bit times are relative to tBIT defined in the Timing Negotiation pulse. See the
PECI 3.1 specification from Intel Corp. for further details.
3: “#nodes” is the number of nodes on the PECI bus; host and client nodes are counted as one each.
Extended trace lengths may appear as extra nodes. Refer also to Table 29-2, "PECI Routing Guide-
lines". See the PECI 3.1 specification from Intel Corp. for further details.
t d e la y t a c tiv e
The KBRST pin is the CPU_RESET signal described in Section 12.11.2, "CPU_RESET Hardware Speed-Up"
Value
Parameter Symbol Units Notes
MIN TYP MAX
Note: The TYP value is based on two 48 MHz PLL clocks. The MIN and MAX values are dependent on the accu-
racy of the 48 MHz PLL.
t10
t8 t9
t7
t2 t17
t5 t6
PS2_CLK 1 2 10 11
t11 t14
t1 t4
PS2_DAT s B0 B1 B2 B3 B4 B5 B6 B7 P
PS2_EN
t12
PS2_T/R
t3
t13
XMIT_IDLE
RDATA_RDY
t7
t3
t4
t2 t5 t11
t10
PS2_CLK
t1 t6
PS2_DATA D0 D1 D2 D3 D4 D5 D6 D7 P S
PS2_EN
PS2_T/R
t8 t9
RDATA_RDY
Read Rx Reg
t12
Interrupt
t1
t2 t3
PWMx
t1
t2 t3
FAN_TACHx
t1
t2 t3
LEDx
I2C_SDA
tBUF tLOW
tR tF tHD;STA
I2C_SCL
tHD;STA
tHD;DAT tHIGH tSU;DAT tSU;STA tSU;STO
Approxinatley 48 BC
Clocks
BUSY
BC_ERR
BC_ERR Interrupt
BC_Busy_CLR Interrupt
(Controlled by Hardware)
tC
BC_CLK
Bit Bit
BC_DAT n-1 n
tIH
tIS
Bit Read
tC
BC_CLK
tOH
tOS
Note 1: The (tIH in Table 51-25) BC-Link Master DATA input must be stable before next rising edge of CLK.
2: The BC-Link Clock frequency is limited by the application usage model (see BC-Link Master Section 40.5,
"Signal Description"). The BC-Link Clock frequency is controlled by the BC-Link Clock Select Register.
The timing budget equation is as follows for data from BC-Link slave to master:
Tc > TOD(master-clk) + Tprop(clk) +TOD(slave) + Tprop(slave data) + TIS(master).
Tr Tf
SPI_CLK
Th Tl
Tp
Note: Test conditions are as follows: output load is CL=30pF, pin drive strength setting is 4mA and slew rate set-
ting is slow.
Setup and Hold Times for
Full‐Duplex and Bidrectional Modes
SPI_CLK
(CLKPOL = 0,
TCLKPH = 0,
RCLKPH = 0) T1
SPI_MOSI
T2
SPI_MISO
T3
Note: SPI_IO[3:0] obey the SPI_MOSI and SPI_MISO timing. In the 2-pin SPI Interface implementation, SPI_IO0
pin is the SPI Master-Out/Slave-In (MOSI) pin and the SPI_IO1 pin is the Master-In/Slave-out (MISO) pin.
Note: Test conditions are as follows: output load is CL=30pF, pin drive strength setting is 4mA and slew rate set-
ting is slow
Tr Tf
SPICLK
Th Tl
Tp
Setup and Hold Times for
Full‐Duplex and Bidrectional Modes
SPCLK
(CLKPOL = 0,
TCLKPH = 0,
RCLKPH = 0) T1
SPDOUT
T2
SPDIN
T3
Note: SPI IO[3:0] obey the SPI_MOSI and SPI_MISO timing. In the 2-pin SPI Interface implementation, SPI_IO0
pin is the SPI Master-Out/Slave-In (MOSI) pin and the SPI_IO1 pin is the Master-In/Slave-out (MISO) pin.
Note: Test conditions are as follows: output load is CL=30pF, pin drive strength setting is 4mA and slew rate set-
ting is slow
SPCLK (CLKPOL = 0)
SPCLK (CLKPOL = 1)
SPDOUT
(TCLKPH = 0)
SPDIN
(RCLKPH = 0)
CS (GPIO)
FIRST DATA BIT SAMPLED BY LAST DATA BIT SAMPLED BY
MASTER AND SLAVE MASTER AND SLAVE
In this mode, data is available immediately when a device is selected and is sampled on the first and following odd
SPCLK edges by the master and slave.
FIGURE 51-34: SPI INTERFACE TIMING, FULL DUPLEX MODE (TCLKPH = 1, RCLKPH = 0)
SPCLK (CLKPOL = 0)
SPCLK (CLKPOL = 1)
SPDOUT
(TCLKPH = 1)
SPDIN
(RCLKPH = 0)
CS (GPIO)
FIRST DATA BIT SAMPLED BY LAST DATA BIT SAMPLED BY
SLAVE MASTER
FIRST DATA BIT SAMPLED BY LAST DATA BIT SAMPLED BY
MASTER SLAVE
In this mode, the master requires an initial SPCLK edge before data is available. The data from slave is available imme-
diately when the slave device is selected. The.data is sampled on the first and following odd edges by the master. The
data is sampled on the second and following even SPCLK edges by the slave.
SPCLK (CLKPOL = 0)
SPCLK (CLKPOL = 1)
SPDOUT
(TCLKPH = 0)
SPDIN
(RCLKPH = 1)
CS (GPIO)
FIRST DATA BIT SAMPLED BY LAST DATA BIT SAMPLED BY
MASTER SLAVE
FIRST DATA BIT SAMPLED BY LAST DATA BIT SAMPLED BY
SLAVE MASTER
In this mode, the data from slave is available immediately when the slave device is selected. The slave device requires
an initial SPCLK edge before data is available. The data is sampled on the second and following even SPCLK edges
by the master. The data is sampled on the first and following odd edges by the slave.
FIGURE 51-36: SPI INTERFACE TIMING - FULL DUPLEX MODE (TCLKPH = 1, RCLKPH = 1)
SPCLK (CLKPOL = 0)
SPCLK (CLKPOL = 1)
SPDOUT
(TCLKPH = 1)
SPDIN
(RCLKPH = 1)
CS (GPIO)
FIRST DATA BIT SAMPLED BY LAST DATA BIT SAMPLED BY
MASTER AND SLAVE MASTER AND SLAVE
In this mode, the master and slave require an initial SPCLK edge before data is available. Data is sampled on the second
and following even SPCLK edges by the master and slave.
TFDP Clock
tP
tCLK-L tCLK-H
TFDP Data
2.8V
JTAG_RST#
fclk
JTAG_CLK
JTAG_CLK
tOD tOH
JTAG_TDO
tIS tIH
JTAG_TDI
CUSTOMER SUPPORT
Users of Microchip products can receive assistance through several channels:
• Distributor or Representative
• Local Sales Office
• Field Application Engineer (FAE)
• Technical Support
Customers should contact their distributor, representative or field application engineer (FAE) for support. Local sales
offices are also available to help customers. A listing of sales offices and locations is included in the back of this docu-
ment.
Technical support is available through the web site at: http://microchip.com/support
Note the following details of the code protection feature on Microchip devices:
• Microchip products meet the specifications contained in their particular Microchip Data Sheet.
• Microchip believes that its family of products is secure when used in the intended manner and under normal conditions.
• There are dishonest and possibly illegal methods being used in attempts to breach the code protection features of the Microchip
devices. We believe that these methods require using the Microchip products in a manner outside the operating specifications
contained in Microchip's Data Sheets. Attempts to breach these code protection features, most likely, cannot be accomplished
without violating Microchip's intellectual property rights.
• Microchip is willing to work with any customer who is concerned about the integrity of its code.
• Neither Microchip nor any other semiconductor manufacturer can guarantee the security of its code. Code protection does not
mean that we are guaranteeing the product is "unbreakable." Code protection is constantly evolving. We at Microchip are
committed to continuously improving the code protection features of our products. Attempts to break Microchip's code protection
feature may be a violation of the Digital Millennium Copyright Act. If such acts allow unauthorized access to your software or
other copyrighted work, you may have a right to sue for relief under that Act.
Information contained in this publication is provided for the sole purpose of designing with and using Microchip products. Information regarding device
applications and the like is provided only for your convenience and may be superseded by updates. It is your responsibility to ensure that your application
meets with your specifications.
THIS INFORMATION IS PROVIDED BY MICROCHIP "AS IS". MICROCHIP MAKES NO REPRESENTATIONS OR WARRANTIES OF ANY KIND
WHETHER EXPRESS OR IMPLIED, WRITTEN OR ORAL, STATUTORY OR OTHERWISE, RELATED TO THE INFORMATION INCLUDING BUT
NOT LIMITED TO ANY IMPLIED WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE
OR WARRANTIES RELATED TO ITS CONDITION, QUALITY, OR PERFORMANCE.
IN NO EVENT WILL MICROCHIP BE LIABLE FOR ANY INDIRECT, SPECIAL, PUNITIVE, INCIDENTAL OR CONSEQUENTIAL LOSS, DAMAGE,
COST OR EXPENSE OF ANY KIND WHATSOEVER RELATED TO THE INFORMATION OR ITS USE, HOWEVER CAUSED, EVEN IF MICROCHIP
HAS BEEN ADVISED OF THE POSSIBILITY OR THE DAMAGES ARE FORESEEABLE. TO THE FULLEST EXTENT ALLOWED BY LAW,
MICROCHIP'S TOTAL LIABILITY ON ALL CLAIMS IN ANY WAY RELATED TO THE INFORMATION OR ITS USE WILL NOT EXCEED THE AMOUNT
OF FEES, IF ANY, THAT YOU HAVE PAID DIRECTLY TO MICROCHIP FOR THE INFORMATION. Use of Microchip devices in life support and/or
safety applications is entirely at the buyer's risk, and the buyer agrees to defend, indemnify and hold harmless Microchip from any and all damages,
claims, suits, or expenses resulting from such use. No licenses are conveyed, implicitly or otherwise, under any Microchip intellectual property rights
unless otherwise stated.
Trademarks
The Microchip name and logo, the Microchip logo, Adaptec, AnyRate, AVR, AVR logo, AVR Freaks, BesTime, BitCloud, chipKIT, chipKIT logo,
CryptoMemory, CryptoRF, dsPIC, FlashFlex, flexPWR, HELDO, IGLOO, JukeBlox, KeeLoq, Kleer, LANCheck, LinkMD, maXStylus, maXTouch,
MediaLB, megaAVR, Microsemi, Microsemi logo, MOST, MOST logo, MPLAB, OptoLyzer, PackeTime, PIC, picoPower, PICSTART, PIC32 logo,
PolarFire, Prochip Designer, QTouch, SAM-BA, SenGenuity, SpyNIC, SST, SST Logo, SuperFlash, Symmetricom, SyncServer, Tachyon,
TempTrackr, TimeSource, tinyAVR, UNI/O, Vectron, and XMEGA are registered trademarks of Microchip Technology Incorporated in the U.S.A. and
other countries.
APT, ClockWorks, The Embedded Control Solutions Company, EtherSynch, FlashTec, Hyper Speed Control, HyperLight Load, IntelliMOS, Libero,
motorBench, mTouch, Powermite 3, Precision Edge, ProASIC, ProASIC Plus, ProASIC Plus logo, Quiet-Wire, SmartFusion, SyncWorld, Temux,
TimeCesium, TimeHub, TimePictra, TimeProvider, Vite, WinPath, and ZL are registered trademarks of Microchip Technology Incorporated in the
U.S.A.
Adjacent Key Suppression, AKS, Analog-for-the-Digital Age, Any Capacitor, AnyIn, AnyOut, BlueSky, BodyCom, CodeGuard,
CryptoAuthentication, CryptoAutomotive, CryptoCompanion, CryptoController, dsPICDEM, dsPICDEM.net, Dynamic Average Matching, DAM,
ECAN, EtherGREEN, In-Circuit Serial Programming, ICSP, INICnet, Inter-Chip Connectivity, JitterBlocker, KleerNet, KleerNet logo, memBrain,
Mindi, MiWi, MPASM, MPF, MPLAB Certified logo, MPLIB, MPLINK, MultiTRAK, NetDetach, Omniscient Code Generation, PICDEM, PICDEM.net,
PICkit, PICtail, PowerSmart, PureSilicon, QMatrix, REAL ICE, Ripple Blocker, SAM-ICE, Serial Quad I/O, SMART-I.S., SQI, SuperSwitcher,
SuperSwitcher II, Total Endurance, TSHARC, USBCheck, VariSense, ViewSpan, WiperLock, Wireless DNA, and ZENA are trademarks of
Microchip Technology Incorporated in the U.S.A. and other countries.
ISBN: 9781522467434
For information regarding Microchip’s Quality Management Systems, please visit www.microchip.com/quality.