Jasper Lake EDS Vol1

Datasheet

ID Date Version Classification
633935 01/01/2021 Public Content

A newer version of this document is available. Customers should click here to go to the newest version.

Document Table of Contents
DSP

SMBus Slave Interface

The PCH SMBus Slave interface is accessed using the SMBus. The SMBus slave logic will not generate or handle receiving the PEC byte and will only act as a Legacy Alerting Protocol device. The slave interface allows the PCH to decode cycles, and allows an external microcontroller to perform specific actions.

Key features and capabilities include:

  • Supports decode of three types of messages: Byte Write, Byte Read, and Host Notify.
  • Receive Slave Address register: This is the address that the PCH decodes. A default value is provided so that the slave interface can be used without the processor having to program this register.
  • Receive Slave Data register in the SMBus I/O space that includes the data written by the external microcontroller.
  • Registers that the external microcontroller can read to get the state of the PCH.
    • Status bits to indicate that the SMBus slave logic caused an interrupt or SMI# Bit 0 of the Slave Status Register for the Host Notify command
    • Bit 16 of the SMI Status Register for all others

      The external microcontroller should not attempt to access the PCH SMBus slave logic until either:

      • 800 milliseconds after both: RTCRST# is high and PMC_​RSMRST_​N is high, OR
      • The PLTRST# de-asserts

If a master leaves the clock and data bits of the SMBus interface at 1 for 50 µs or more in the middle of a cycle, the PCH slave logic's behavior is undefined. This is interpreted as an unexpected idle and should be avoided when performing management activities to the slave logic.

Format of Slave Write Cycle

The external master performs Byte Write commands to the PCH SMBus Slave I/F. The “Command” field (bits 11:18) indicate which register is being accessed. The Data field (bits 20:27) indicate the value that should be written to that register.

This table has the values associated with the registers.

Slave Write Registers 

Register

Function

0

Command Register. Refer to table below for valid values written to this register.

1–3

Reserved

4

Data Message Byte 0

5

Data Message Byte 1

6–7

Reserved

8

Reserved

9–FFh

Reserved

Note:The external microcontroller is responsible to make sure that it does not update the contents of the data byte registers until they have been read by the system processor. The PCH overwrites the old value with any new value received. A race condition is possible where the new value is being written to the register just at the time it is being read. The PCH will not attempt to cover this race condition (that is, unpredictable results in this case).

Command Types

Command Type

Description

0

Reserved

1

WAKE/SMI#. This command wakes the system if it is not already awake. If system is already awake, an SMI# is generated.

2

Unconditional Powerdown. This command sets the PWRBTNOR_​STS bit, and has the same effect as the Powerbutton Override occurring.

3

HARD RESET WITHOUT CYCLING: This command causes a soft reset of the system (does not include cycling of the power supply). This is equivalent to a write to the CF9h register with Bits 2:1 set to 1, but Bit 3 set to 0.

4

HARD RESET SYSTEM. This command causes a hard reset of the system (including cycling of the power supply). This is equivalent to a write to the CF9h register with Bits 3:1 set to 1.

5

Disable the TCO Messages. This command will disable the PCH from sending Heartbeat and Event messages. Once this command has been executed, Heartbeat and Event message reporting can only be re-enabled by assertion and then de-assertion of the PMC_​RSMRST_​N signal.

6

WD RELOAD: Reload watchdog timer.

7

Reserved

8

SMLINK_​SLV_​SMI. When the PCH detects this command type while in the S0 state, it sets the SMLINK_​SLV_​SMI_​STS bit. This command should only be used if the system is in an S0 state. If the message is received during S3–S5 states, the PCH acknowledges it, but the SMLINK_​SLV_​SMI_​STS bit does not get set.

Note:It is possible that the system transitions out of the S0 state at the same time that the SMLINK_​SLV_​SMI command is received. In this case, the SMLINK_​SLV_​SMI_​STS bit may get set but not serviced before the system goes to sleep. Once the system returns to S0, the SMI associated with this bit would then be generated. Software must be able to handle this scenario.

9–FFh

Reserved.

Format of Read Command

The external master performs Byte Read commands to the PCH SMBus Slave interface. The “Command” field (bits 18:11) indicate which register is being accessed. The Data field (bits 30:37) contain the value that should be read from that register.

Slave Read Cycle Format

Bit

Description

Driven By

Comment

1

Start

External Microcontroller

2–8

Slave Address - 7 bits

External Microcontroller

Must match value in Receive Slave Address register

9

Write

External Microcontroller

Always 0

10

ACK

PCH

11–18

Command code – 8 bits

External Microcontroller

Indicates which register is being accessed. Refer to table below for a list of implemented registers.

19

ACK

PCH

20

Repeated Start

External Microcontroller

21–27

Slave Address - 7 bits

External Microcontroller

Must match value in Receive Slave Address register

28

Read

External Microcontroller

Always 1

29

ACK

PCH

30–37

Data Byte

PCH

Value depends on register being accessed. Refer to table below for a list of implemented registers.

38

NOT ACK

External Microcontroller

39

Stop

External Microcontroller

Slave Read Registers Data Values 

Register

Bits

Description

0

7:0

Reserved

1

2:0

System Power State

000 = S0

011 = S3

100 = S4

101 = S5

Others = Reserved

7:3

Reserved

2

3:0

Reserved

7:4

Reserved

3

5:0

Watchdog Timer current value

Note:The Watchdog Timer has 10 bits, but this field is only 6 bits. If the current value is greater than 3Fh, the PCH will always report 3Fh in this field.

7:6

Reserved

4

0

Intruder Detect. Reserved

1

Reserved

2

Reserved

3

1 = SECOND_​TO_​STS bit set. This bit will be set after the second Timeout (SECOND_​TO_​STS bit) of the Watchdog Timer occurs.

6:4

Reserved. Will always be 0, but software should ignore.

7

SMBALERT# Status. Reflects the value of the SMBALERT# pin (when the pin is configured to SMBALERT#). Valid only if SMBALERT_​DISABLE = 0. Value always returns 1 if SMBALERT_​DISABLE = 1.

5

0

FWH bad bit. This bit will be 1 to indicate that the FWH read returned FFh, which indicates that it is probably blank.

1

Battery Low Status. 1 if the BATLOW# pin a low.

2

SYS_​PWROK Failure Status: This bit will be 1 if the SYSPWR_​FLR bit in the GEN_​PMCON_​2 register is set.

3

Reserved

4

Reserved

5

POWER_​OK_​BAD: Indicates the failure core power well ramp during boot/resume. This bit will be active if the SLP_​S3# pin is de-asserted and PCH_​PWROK pin is not asserted.

6

Thermal Trip: This bit will shadow the state of processor Thermal Trip status bit (CTS). Events on signal will not create a event message

7

Reserved: Default value is “X”

Note:Software should not expect a consistent value when this bit is read through SMBUS/SMLink

6

7:0

Contents of the Message 1 register.

7

7:0

Contents of the Message 2 register.

8

7:0

Contents of the WDSTATUS register.

9

7:0

Seconds of the RTC

A

7:0

Minutes of the RTC

B

7:0

Hours of the RTC

C

7:0

“Day of Week” of the RTC

D

7:0

“Day of Month” of the RTC

E

7:0

Month of the RTC

F

7:0

Year of the RTC

10h–FFh

7:0

Reserved

Behavioral Notes

According to SMBus protocol, Read and Write messages always begin with a Start bit—Address—Write bit sequence. When the PCH detects that the address matches the value in the Receive Slave Address register, it will assume that the protocol is always followed and ignore the Write bit (Bit 9) and signal an Acknowledge during bit 10. In other words, if a Start—Address—Read occurs (which is invalid for SMBus Read or Write protocol), and the address matches the PCH’s Slave Address, the PCH will still grab the cycle.

Also according to SMBus protocol, a Read cycle contains a Repeated Start—Address—Read sequence beginning at Bit 20. Once again, if the Address matches the PCH’s Receive Slave Address, it will assume that the protocol is followed, ignore bit 28, and proceed with the Slave Read cycle.

Slave Read of RTC Time Bytes

The PCH SMBus slave interface allows external SMBus master to read the internal RTC’s time byte registers.

The RTC time bytes are internally latched by the PCH’s hardware whenever RTC time is not changing and SMBus is idle. This ensures that the time byte delivered to the slave read is always valid and it does not change when the read is still in progress on the bus. The RTC time will change whenever hardware update is in progress, or there is a software write to the RTC time bytes.

The PCH SMBus slave interface only supports Byte Read operation. The external SMBus master will read the RTC time bytes one after another. It is software’s responsibility to check and manage the possible time rollover when subsequent time bytes are read.

For example, assuming the RTC time is 11 hours: 59 minutes: 59 seconds. When the external SMBus master reads the hour as 11, then proceeds to read the minute, it is possible that the rollover happens between the reads and the minute is read as 0. This results in 11 hours: 0 minute instead of the correct time of 12 hours: 0 minutes. Unless it is certain that rollover will not occur, software is required to detect the possible time rollover by reading multiple times such that the read time bytes can be adjusted accordingly if needed.

Format of Host Notify Command

The PCH tracks and responds to the standard Host Notify command as specified in the System Management Bus (SMBus) Specification, Version 2.0. The host address for this command is fixed to 0001000b. If the PCH already has data for a previously-received host notify command which has not been serviced yet by the host software (as indicated by the HOST_​NOTIFY_​STS bit), then it will NACK following the host address byte of the protocol. This allows the host to communicate non-acceptance to the master and retain the host notify address and data values for the previous cycle until host software completely services the interrupt.

Note:Host software must always clear the HOST_​NOTIFY_​STS bit after completing any necessary reads of the address and data registers.

The following table shows the Host Notify format.

Host Notify Format

Bit

Description

Driven By

Comment

1

Start

External Master

8:2

SMB Host Address – 7 bits

External Master

Always 0001_​000

9

Write

External Master

Always 0

10

ACK (or NACK)

PCH

PCH NACKs if HOST_​NOTIFY_​STS is 1

17:11

Device Address – 7 bits

External Master

Indicates the address of the master; loaded into the Notify Device Address Register

18

Unused – Always 0

External Master

7-bit-only address; this bit is inserted to complete the byte

19

ACK

PCH

27:20

Data Byte Low – 8 bits

External Master

Loaded into the Notify Data Low Byte Register

28

ACK

PCH

36:29

Data Byte High – 8 bits

External Master

Loaded into the Notify Data High Byte Register

37

ACK

PCH

38

Stop

External Master

Format of Read Command

The external master performs Byte Read commands to the PCH SMBus Slave interface. The “Command” field (bits 18:11) indicate which register is being accessed. The Data field (bits 30:37) contain the value that should be read from that register.

Slave Read Cycle Format

Bit

Description

Driven By

Comment

1

Start

External Microcontroller

2–8

Slave Address - 7 bits

External Microcontroller

Must match value in Receive Slave Address register

9

Write

External Microcontroller

Always 0

10

ACK

PCH

11–18

Command code – 8 bits

External Microcontroller

Indicates which register is being accessed. Refer to table Table: Slave Read Registers Data Values  for a list of implemented registers.

19

ACK

PCH

20

Repeated Start

External Microcontroller

21–27

Slave Address - 7 bits

External Microcontroller

Must match value in Receive Slave Address register

28

Read

External Microcontroller

Always 1

29

ACK

PCH

30–37

Data Byte

PCH

Value depends on register being accessed. Refer to table Table: Slave Read Registers Data Values  for a list of implemented registers.

38

NOT ACK

External Microcontroller

39

Stop

External Microcontroller

Data Values for Slave Read Registers

Register

Bits

Description

0

7:0

Reserved for capabilities indication. Should always return 00h. Future chips may return another value to indicate different capabilities.

1

2:0

System Power State

000 = S0

011 = S3

100 = S4

101 = S5

Others = Reserved

7:3

Reserved

2

3:0

Reserved

7:4

Reserved

3

5:0

Watchdog Timer current value

Note:The Watchdog Timer has 10 bits, but this field is only 6 bits. If the current value is greater than 3Fh, the PCH will always report 3Fh in this field.

7:6

Reserved

4

0

Intruder Detect. 1 = The Intruder Detect (INTRD_​DET) bit is set. This indicates that the system cover has probably been opened.Reserved

1

Temperature Event. 1 = Temperature Event occurred. This bit will be set if the PCH’s THRM# input signal is active. Else this bit will read “0.”

2

DOA Processor Status. This bit will be 1 to indicate that the processor is dead

3

1 = SECOND_​TO_​STS bit set. This bit will be set after the second Timeout (SECOND_​TO_​STS bit) of the Watchdog Timer occurs.

6:4

Reserved. Will always be 0, but software should ignore.

7

SMBALERT# Status. Reflects the value of the GPIO11/SMBALERT# pin (when the pin is configured as SMBALERT#). Valid only if SMBALERT_​DISABLE = 0. Value always return 1 if SMBALERT_​DISABLE = 1. (high = 1, low = 0).

5

0

FWH bad bit. This bit will be 1 to indicate that the FWH read returned FFh, which indicates that it is probably blank.

1

Battery Low Status. 1 if the BATLOW# pin is a 0.

2

SYS_​PWROK Failure Status: This bit will be 1 if the SYSPWR_​FLR bit in the GEN_​PMCON_​2 register is set.

3

Reserved

4

Reserved

5

POWER_​OK_​BAD. Indicates the failure core power well ramp during boot/resume. This bit will be active if the SLP_​S3# pin is de-asserted and PCH_​PWROK pin is not asserted.

6

Thermal Trip. This bit will shadow the state of processor Thermal Trip status bit (CTS). Events on signal will not create a event message

7

Reserved: Default value is “X”

Note:Software should not expect a consistent value when this bit is read through SMBUS/SMLink

6

7:0

Contents of the Message 1 register.

7

7:0

Contents of the Message 2 register.

8

7:0

Contents of the WDSTATUS register.

9

7:0

Seconds of the RTC

A

7:0

Minutes of the RTC

B

7:0

Hours of the RTC

C

7:0

“Day of Week” of the RTC

D

7:0

“Day of Month” of the RTC

E

7:0

Month of the RTC

F

7:0

Year of the RTC

10h–FFh

7:0

Reserved

Enabling SMBus Slave Write and SMBus Host Events

Event

INTREN (Host Control I/O Register, Offset 02h, Bit 0)

SMB_​SMI_​EN (Host Configuration Register, D31:F3:Offset 40h, Bit 1)

Event

Slave Write to Wake/SMI# Command

X

X

Wake generated when asleep. Slave SMI# generated when awake (SMBUS_​SMI_​STS)

Slave Write to SMLINK_​SLAVE_​SMI Command

X

X

Slave SMI# generated when in the S0 state (SMBUS_​SMI_​STS)

Any combination of Host Status Register [4:1] asserted

0

X

None

1

0

Interrupt generated

1

1

Host SMI# generated