Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 6 additions & 0 deletions teeio-validator/include/cxl_ide_lib.h
Original file line number Diff line number Diff line change
Expand Up @@ -69,6 +69,12 @@ void cxl_cfg_rp_txrx_key_valid(
bool valid
);

void cxl_cfg_rp_txrx_transto_insecure_state(
INTEL_KEYP_CXL_ROOT_COMPLEX_KCBAR *kcbar_ptr,
CXL_IDE_STREAM_DIRECTION direction,
bool insecure_state
);

void cxl_cfg_rp_start_trigger(
INTEL_KEYP_CXL_ROOT_COMPLEX_KCBAR *kcbar_ptr,
bool start
Expand Down
4 changes: 3 additions & 1 deletion teeio-validator/include/intel_keyp.h
Original file line number Diff line number Diff line change
Expand Up @@ -230,7 +230,9 @@ typedef union {
uint32_t start_trigger:1;
uint32_t rxkey_valid:1;
uint32_t txkey_valid:1;
uint32_t rsvd:29;
uint32_t txtransto_insecure_state:1;
uint32_t rxtransto_insecure_state:1;
uint32_t rsvd:27;
};
uint32_t raw;
} INTEL_KEYP_CXL_LINK_ENC_CONTROL;
Expand Down
27 changes: 25 additions & 2 deletions teeio-validator/library/cxl_ide_lib/cxl_ide.c
Original file line number Diff line number Diff line change
Expand Up @@ -71,6 +71,8 @@ bool cxl_reset_kcbar_registers(ide_common_test_port_context_t *port_context)

TEEIO_DEBUG((TEEIO_DEBUG_INFO, "cxl_reset_kcbar_registers before link_enc_ctrl=0x%08x\n", enc_ctrl.raw));

enc_ctrl.rxtransto_insecure_state = 0;
enc_ctrl.txtransto_insecure_state = 0;
enc_ctrl.rxkey_valid = 0;
enc_ctrl.txkey_valid = 0;
enc_ctrl.start_trigger = 0;
Expand Down Expand Up @@ -819,6 +821,27 @@ void cxl_cfg_rp_txrx_key_valid(
TEEIO_DEBUG((TEEIO_DEBUG_INFO, "cxl_cfg_rp_txrx_key_valid (direct=%d) after link_enc_control = 0x%08x\n", direction, enc_ctrl.raw));
}

void cxl_cfg_rp_txrx_transto_insecure_state(
INTEL_KEYP_CXL_ROOT_COMPLEX_KCBAR *kcbar_ptr,
CXL_IDE_STREAM_DIRECTION direction,
bool insecure_state
)
{
INTEL_KEYP_CXL_LINK_ENC_CONTROL enc_ctrl = {.raw = mmio_read_reg32(&kcbar_ptr->link_enc_control)};
TEEIO_DEBUG((TEEIO_DEBUG_INFO, "cxl_cfg_rp_txrx_transto_insecure_state (direct=%d) before link_enc_control = 0x%08x\n", direction, enc_ctrl.raw));

if(direction == CXL_IDE_STREAM_DIRECTION_RX) {
enc_ctrl.rxtransto_insecure_state = insecure_state ? 1 : 0;
} else {
enc_ctrl.txtransto_insecure_state = insecure_state ? 1 : 0;
}

mmio_write_reg32(&kcbar_ptr->link_enc_control, enc_ctrl.raw);

enc_ctrl.raw = mmio_read_reg32(&kcbar_ptr->link_enc_control);
TEEIO_DEBUG((TEEIO_DEBUG_INFO, "cxl_cfg_rp_txrx_transto_insecure_state (direct=%d) after link_enc_control = 0x%08x\n", direction, enc_ctrl.raw));
}

void cxl_cfg_rp_start_trigger(
INTEL_KEYP_CXL_ROOT_COMPLEX_KCBAR *kcbar_ptr,
bool start
Expand Down Expand Up @@ -890,8 +913,8 @@ void cxl_dump_kcbar(INTEL_KEYP_CXL_ROOT_COMPLEX_KCBAR *kcbar_ptr)

INTEL_KEYP_CXL_LINK_ENC_CONTROL enc_control = {.raw = mmio_read_reg32(&kcbar_ptr->link_enc_control)};
TEEIO_PRINT(("enc_control : %08x\n", enc_control.raw));
TEEIO_PRINT((" start_trigger=%d, rxkey_valid=%d, txkey_valid=%d\n",
enc_control.start_trigger, enc_control.rxkey_valid, enc_control.txkey_valid));
TEEIO_PRINT((" start_trigger=%d, rxkey_valid=%d, txkey_valid=%d\n, txtransto_insecure_state: %d, rxtransto_insecure_state: %d",
enc_control.start_trigger, enc_control.rxkey_valid, enc_control.txkey_valid, enc_control.txtransto_insecure_state, enc_control.rxtransto_insecure_state));

}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -447,6 +447,10 @@ bool cxl_teardown_ide_stream(void *test_context)

INTEL_KEYP_CXL_ROOT_COMPLEX_KCBAR *kcbar_ptr = (INTEL_KEYP_CXL_ROOT_COMPLEX_KCBAR *)upper_port->mapped_kcbar_addr;

// set RXTRANSTOINSECURESTATE and TXTRANSTOINSECURESTATE on the RootPort side
cxl_cfg_rp_txrx_transto_insecure_state(kcbar_ptr, CXL_IDE_STREAM_DIRECTION_RX, true);
cxl_cfg_rp_txrx_transto_insecure_state(kcbar_ptr, CXL_IDE_STREAM_DIRECTION_TX, true);

// clear LinkEncEnable on the RootPort side
cxl_cfg_rp_linkenc_enable(kcbar_ptr, false);

Expand Down
Loading