aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorHarald Welte <laforge@osmocom.org>2020-02-22 21:53:50 +0100
committerHarald Welte <laforge@osmocom.org>2020-02-22 22:13:24 +0100
commit02712376dfbadd81bd89b639a60fbcd1d300e4b8 (patch)
treec32e44bb4cb5e4ed8bf4975ab7163c600e067469
parentbaa62777c845c3466fae5d80729e6b2bd754eea8 (diff)
simtrace2_api: Add osmo_st2_cardem_request_config()
In Change-Id I7cdd3f9171dbed45de0089defe29d2b59044bd84 we introduced firmware support for SIMTRACE_MSGT_BD_CEMU_CONFIG. The respective host part was so far only implemented in osmo-remsim-client-st2, but not in libosmo-simtrace2. Let's fix that. Change-Id: Ia4822d360a271d2ce9725f761cb95de58663ac3b
-rw-r--r--host/include/osmocom/simtrace2/simtrace2_api.h1
-rw-r--r--host/lib/simtrace2_api.c15
2 files changed, 16 insertions, 0 deletions
diff --git a/host/include/osmocom/simtrace2/simtrace2_api.h b/host/include/osmocom/simtrace2/simtrace2_api.h
index d31fb85..012b96c 100644
--- a/host/include/osmocom/simtrace2/simtrace2_api.h
+++ b/host/include/osmocom/simtrace2/simtrace2_api.h
@@ -48,6 +48,7 @@ int osmo_st2_cardem_request_pb_and_tx(struct osmo_st2_cardem_inst *ci, uint8_t p
int osmo_st2_cardem_request_sw_tx(struct osmo_st2_cardem_inst *ci, const uint8_t *sw);
int osmo_st2_cardem_request_set_atr(struct osmo_st2_cardem_inst *ci, const uint8_t *atr,
unsigned int atr_len);
+int osmo_st2_cardem_request_config(struct osmo_st2_cardem_inst *ci, uint32_t features);
int osmo_st2_modem_reset_pulse(struct osmo_st2_slot *slot, uint16_t duration_ms);
diff --git a/host/lib/simtrace2_api.c b/host/lib/simtrace2_api.c
index b2b2829..b3e4e38 100644
--- a/host/lib/simtrace2_api.c
+++ b/host/lib/simtrace2_api.c
@@ -204,6 +204,21 @@ int osmo_st2_cardem_request_set_atr(struct osmo_st2_cardem_inst *ci, const uint8
return osmo_st2_slot_tx_msg(ci->slot, msg, SIMTRACE_MSGC_CARDEM, SIMTRACE_MSGT_DT_CEMU_SET_ATR);
}
+int osmo_st2_cardem_request_config(struct osmo_st2_cardem_inst *ci, uint32_t features)
+{
+ struct msgb *msg = st_msgb_alloc();
+ struct cardemu_usb_msg_config *cfg;
+
+ cfg = (struct cardemu_usb_msg_config *) msgb_put(msg, sizeof(*cfg));
+
+ printf("<= %s(%08x)\n", __func__, features);
+
+ memset(cfg, 0, sizeof(*cfg));
+ cfg->features = features;
+
+ return osmo_st2_slot_tx_msg(ci->slot, msg, SIMTRACE_MSGC_CARDEM, SIMTRACE_MSGT_BD_CEMU_CONFIG);
+}
+
/***********************************************************************
* Modem Control protocol
***********************************************************************/