OPAL_XSCOM_READ

#define OPAL_XSCOM_READ                              65

int xscom_read(uint32_t partid, uint64_t pcb_addr, uint64_t *val);

This low level call will read XSCOM values directly.

They should only be used by low level manufacturing/debug tools. “Normal” host OS kernel code should not know about XSCOM.

This is also needed by HBRT/opal-prd.

Returns

OPAL_SUCCESS

Success!

OPAL_HARDWARE

if operation failed

OPAL_WRONG_STATE

if CPU is asleep

OPAL_XSCOM_BUSY

Alias for OPAL_BUSY.

OPAL_XSCOM_CHIPLET_OFF

Alias for OPAL_WRONG_STATE

OPAL_XSCOM_PARTIAL_GOOD

XSCOM Partial Good

OPAL_XSCOM_ADDR_ERROR

XSCOM Address Error

OPAL_XSCOM_CLOCK_ERROR

XSCOM Clock Error

OPAL_XSCOM_PARITY_ERROR

XSCOM Parity Error

OPAL_XSCOM_TIMEOUT

XSCOM Timeout

OPAL_XSCOM_CTR_OFFLINED

XSCOM Controller Offlined due to too many errors.

OPAL_XSCOM_WRITE

#define OPAL_XSCOM_WRITE                     66

int xscom_write(uint32_t partid, uint64_t pcb_addr, uint64_t val);

This low level call will write an XSCOM value directly.

They should only be used by low level manufacturing/debug tools. “Normal” host OS kernel code should not know about XSCOM.

This is also needed by HBRT/opal-prd.

Returns

OPAL_SUCCESS

Success!

OPAL_HARDWARE

if operation failed

OPAL_WRONG_STATE

if CPU is asleep

OPAL_XSCOM_BUSY

Alias for OPAL_BUSY.

OPAL_XSCOM_CHIPLET_OFF

Alias for OPAL_WRONG_STATE

OPAL_XSCOM_PARTIAL_GOOD

XSCOM Partial Good

OPAL_XSCOM_ADDR_ERROR

XSCOM Address Error

OPAL_XSCOM_CLOCK_ERROR

XSCOM Clock Error

OPAL_XSCOM_PARITY_ERROR

XSCOM Parity Error

OPAL_XSCOM_TIMEOUT

XSCOM Timeout

OPAL_XSCOM_CTR_OFFLINED

XSCOM Controller Offlined due to too many errors.