PCT Configuration for SE Server#

This topic applies only to Linux platforms.

The following section describes only the SE Server PCT configuration parameters that are to be updated when a new IVC queue is to be added.

In PCT, Guest OS specific configuration parameters are part of guest_conf structure. Within the guest_conf structure, SE Server configuration parameters for a particular Guest OS are stored in se_cfg structure for SE Server. The ivc_conf array and ivc_conf_count parameter in se_cfg structure are to be updated when adding a new IVC queue. ivc_conf is an array of struct se_server_ivc_conf, which specifies configuration parameters associated with every IVC queue.

ivc_conf_count is the count of entries in ivc_conf array. If new IVC queues are added or removed from ivc_conf, then ivc_conf_count must be updated accordingly. Currently, the number of IVC queues per VM for SE Server is restricted to 75 (PCT_MAX_NUM_VM_SE_IVCQS) and the overall IVC queue count for SE Server is restricted to 75.

The table below briefly describes each of the configuration parameters in se_server_ivc_conf and the supported values for that parameter.

For Thor#

Field

Description

Supported values

ivc_queue_id

Unique ID of channel for communicating between Guest OS and SE Server.

Valid range is 0-999

engine_id

Engine to be used for processing IVC queue requests.

SE_ENGINE_SHA
SE_ENGINE_AES0
SE_ENGINE_AES1
GCSE1_ENGINE_SHA
GCSE1_ENGINE_AES0
GCSE1_ENGINE_AES1
GCSE2_ENGINE_SHA
GCSE2_ENGINE_AES0
GCSE2_ENGINE_AES1

ivc_queue_service_priority

IVC queue service priority.
For SE Engines, requests are prioritized using high/low priority Host1x channels.
SE_IVCQ_PRIORITY_LOW,
SE_IVCQ_PRIORITY_HIGH

max_buf_size

Maximum supported input buffer size.

1 to (16MB - 1)

gcmdec_buf_size

Unused field

NA

se_sid

Stream ID used for mapping Guest OS buffers that can be read/updated by SE hardware

NA

gpcdma_sid

Unused field

NA

is_for_pl

Flag to indicate if IVC queue is only to be used for Partition Loader to SE Server communication.

0: IVC queue is used by VSE driver
non-zero: IVC queue is used only by PL

mempool_id

Unused field

NA

mempool_size

Unused field

NA

scc_status

Enable/Disable Side Channel Countermeasures for SE Engines.

SE_SCC_EN
SE_SCC_DIS

For Orin#

Field

Description

Supported values

ivc_queue_id

Unique ID of channel for communicating between Guest OS and SE Server.

Valid range is 0-999

engine_id

Engine to be used for processing IVC queue requests.

SE_ENGINE_SHA
SE_ENGINE_AES0
SE_ENGINE_AES1
TSEC_ENGINE

ivc_queue_service_priority

IVC queue service priority.
There are two different priority sets: one for SE engines and the other for TSEC engine.
For SE Engines, requests are prioritized using high/low priority Host1x channels.
For TSEC engine, request are prioritized using high/low priority software queues in TSEC Firmware.
For SE Engines:
SE_IVCQ_PRIORITY_LOW
SE_IVCQ_PRIORITY_HIGH
For TSEC Engine:
TSEC_IVCQ_PRIORITY_LOW
TSEC_IVCQ_PRIORITY_HIGH

max_buf_size

Maximum supported input buffer size.

For SE Engines: 1B to (16MB - 1)
For TSEC Engine: 1B to (64KB - 1)

gcmdec_buf_size

Maximum supported input buffer size for GCM decryption.
For GP-SE Server, GCM decryption can be supported using mempool or GPCDMA.
Whether mempool is used or GPCDMA is used is determined based on whether the input
buffer size is greater than or lesser than the mempool size.
If the input buffer size is greater than the mempool size, then GPCDMA is used; otherwise mempool is used.
0: No GCM decrypt support
1 < gcmdec_buf_size <= 5MB: GCM decryption is supported

se_sid

Stream ID used for mapping Guest OS buffers that can be read/updated by SE/TSEC hardware

1 to 126

gpcdma_sid

Stream ID used for mapping Guest OS buffer(s) that can be read/updated by GPCDMA
for GCM decryption.
Applicable only for SE AES Engines.

1 to 126

is_for_pl

Flag to indicate if IVC queue is only to be used for Partition Loader to SE Server communication.

0: IVC queue is used by VSE driver
non-zero: IVC queue is only used by PL

mempool_id

Unique ID of mempool to share GCM decrypt ciphertext/plaintext between
SE Server and Guest OS.
Unused if GCM decryption is not be supported.
Applicable only for SE AES Engines.

0 to 999

mempool_size

Size of the mempool to share GCM decrypt ciphertext/plaintext between
SE Server and Guest OS.
Mempool size must be less than or equal to gcmdec_buf_size.
Applicable only for SE AES Engines.
0: Mempool usage is not supported.
0 < mempool_size <= 64KB: Mempool usage is supported.

scc_status

Enable/Disable Side Channel Countermeasures for SE Engines.
Applicable only for SE Engines.
SE_SCC_EN
SE_SCC_DIS