Skip to content

Commit

Permalink
[spi_dev, dv] Adapt the tpm test for sival
Browse files Browse the repository at this point in the history
Signed-off-by: Douglas Reis <[email protected]>
  • Loading branch information
engdoreis committed Jan 12, 2024
1 parent 42cc38a commit 147d3d7
Show file tree
Hide file tree
Showing 2 changed files with 18 additions and 10 deletions.
2 changes: 2 additions & 0 deletions hw/top_earlgrey/dv/env/seq_lib/chip_sw_spi_device_tpm_vseq.sv
Original file line number Diff line number Diff line change
Expand Up @@ -63,6 +63,8 @@ class chip_sw_spi_device_tpm_vseq extends chip_sw_base_vseq;
end
tpm_txn (.wr(1), .addr(addr), .data_q(data_q), .len(data_q.size()), .rdata_q(rdata_q));

`DV_WAIT(cfg.sw_logger_vif.printed_log == "SYNC: Waiting Read",
"Timedout waiting for read config.")
// Read transaction
tpm_txn (.wr(0), .addr(addr), .len(data_q.size()), .rdata_q(rdata_q));
foreach (rdata_q[i]) begin
Expand Down
26 changes: 16 additions & 10 deletions sw/device/tests/sim_dv/spi_device_tpm_tx_rx_test.c
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,7 @@ static dif_rv_plic_t plic;
typedef enum {
kTpmWriteCommand = 0x0,
kTpmReadCommand = 0x80,
kTpmCommandMask = 0xbf
} tpm_cmd_t;

enum {
Expand Down Expand Up @@ -163,16 +164,18 @@ bool test_main(void) {
&pinmux, kTopEarlgreyPinmuxPeripheralInSpiDeviceTpmCsb,
kTopEarlgreyPinmuxInselIoa7));

dif_pinmux_pad_attr_t out_attr;
dif_pinmux_pad_attr_t in_attr = {
.slew_rate = 0,
.drive_strength = 0,
.flags = kDifPinmuxPadAttrPullResistorEnable |
kDifPinmuxPadAttrPullResistorUp};

CHECK_DIF_OK(dif_pinmux_pad_write_attrs(&pinmux, kTopEarlgreyMuxedPadsIoa7,
kDifPinmuxPadKindMio, in_attr,
&out_attr));
if (kDeviceType == kDeviceSimDV){
dif_pinmux_pad_attr_t out_attr;
dif_pinmux_pad_attr_t in_attr = {
.slew_rate = 0,
.drive_strength = 0,
.flags = kDifPinmuxPadAttrPullResistorEnable |
kDifPinmuxPadAttrPullResistorUp};

CHECK_DIF_OK(dif_pinmux_pad_write_attrs(&pinmux, kTopEarlgreyMuxedPadsIoa7,
kDifPinmuxPadKindMio, in_attr,
&out_attr));
}

CHECK_DIF_OK(
dif_spi_device_tpm_configure(&spi_device, kDifToggleEnabled, kTpmConfig));
Expand Down Expand Up @@ -213,6 +216,8 @@ bool test_main(void) {
// Finished processing the write command
ack_spi_tpm_header_irq(&spi_device);

LOG_INFO("SYNC: Waiting Read");
// Send the written data right back out for reads.
// Wait for read interrupt.
atomic_wait_for_interrupt();
// Send the written data right back out for reads.
Expand All @@ -225,6 +230,7 @@ bool test_main(void) {
ack_spi_tpm_header_irq(&spi_device);

// Make sure the received command matches expectation
read_command &= kTpmCommandMask;
LOG_INFO("Expected 0x%x, received 0x%x",
(kTpmReadCommand | (num_bytes - 1)), read_command);
CHECK((kTpmReadCommand | (num_bytes - 1)) == read_command,
Expand Down

0 comments on commit 147d3d7

Please sign in to comment.