Attention is currently required from: dexter.
Hello Jenkins Builder,
I'd like you to reexamine a change. Please visit
https://gerrit.osmocom.org/c/pysim/+/42301?usp=email
to look at the new patch set (#3).
The following approvals got outdated and were removed:
Verified-1 by Jenkins Builder
Change subject: pySim/transport: fix GET RESPONSE behaviour
......................................................................
pySim/transport: fix GET RESPONSE behaviour
The current behavior we implement in the method __send_apdu_T0 is
incomplete. Some details discussed in ETSI TS 102 221,
section 7.3.1.1.4, clause 4 seem to be not fully implemented. We
may also end up sending a GET RESPONSE in other APDU cases than
case 4 (the only case that uses the GET RESPONSE command).
Related: OS#6970
Change-Id: I26f0566af0cdd61dcc97f5f502479dc76adc37cc
---
M pySim/transport/__init__.py
1 file changed, 41 insertions(+), 12 deletions(-)
git pull ssh://gerrit.osmocom.org:29418/pysim refs/changes/01/42301/3
--
To view, visit https://gerrit.osmocom.org/c/pysim/+/42301?usp=email
To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings?usp=email
Gerrit-MessageType: newpatchset
Gerrit-Project: pysim
Gerrit-Branch: master
Gerrit-Change-Id: I26f0566af0cdd61dcc97f5f502479dc76adc37cc
Gerrit-Change-Number: 42301
Gerrit-PatchSet: 3
Gerrit-Owner: dexter <pmaier(a)sysmocom.de>
Gerrit-Reviewer: Jenkins Builder
Gerrit-Attention: dexter <pmaier(a)sysmocom.de>
Attention is currently required from: laforge.
Hello Jenkins Builder,
I'd like you to reexamine a change. Please visit
https://gerrit.osmocom.org/c/osmo-asf4-dfu/+/42302?usp=email
to look at the new patch set (#3).
The following approvals got outdated and were removed:
Verified-1 by Jenkins Builder
Change subject: Errata 2.6.10: enable watchdog on boot
......................................................................
Errata 2.6.10: enable watchdog on boot
Previous the code was enabling the watchdog window on boot,
but not the watchdog as the errata specified.
It seems WDT EN and WDT WEN got accidental swapped.
Use the hal defines which also describes the function
of the bits.
Change-Id: I581037724d19fb5abd0c5067f16a5769f9e264a7
---
M usb_flash_main.c
1 file changed, 5 insertions(+), 3 deletions(-)
git pull ssh://gerrit.osmocom.org:29418/osmo-asf4-dfu refs/changes/02/42302/3
--
To view, visit https://gerrit.osmocom.org/c/osmo-asf4-dfu/+/42302?usp=email
To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings?usp=email
Gerrit-MessageType: newpatchset
Gerrit-Project: osmo-asf4-dfu
Gerrit-Branch: master
Gerrit-Change-Id: I581037724d19fb5abd0c5067f16a5769f9e264a7
Gerrit-Change-Number: 42302
Gerrit-PatchSet: 3
Gerrit-Owner: lynxis lazus <lynxis(a)fe80.eu>
Gerrit-Reviewer: Jenkins Builder
Gerrit-CC: laforge <laforge(a)osmocom.org>
Gerrit-Attention: laforge <laforge(a)osmocom.org>
Attention is currently required from: laforge.
lynxis lazus has posted comments on this change by lynxis lazus. ( https://gerrit.osmocom.org/c/osmo-asf4-dfu/+/42302?usp=email )
Change subject: Errata 2.6.10: enable watchdog on boot
......................................................................
Patch Set 2:
(1 comment)
Patchset:
PS1:
> what kind of delay do we have configured until the watchdog triggers? I don't see that in the commen […]
I've updated the comment. The watchdog is started by NVMEM and stopped in the reset vector. It is only there to prevent AHB0 cache line errata.
--
To view, visit https://gerrit.osmocom.org/c/osmo-asf4-dfu/+/42302?usp=email
To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings?usp=email
Gerrit-MessageType: comment
Gerrit-Project: osmo-asf4-dfu
Gerrit-Branch: master
Gerrit-Change-Id: I581037724d19fb5abd0c5067f16a5769f9e264a7
Gerrit-Change-Number: 42302
Gerrit-PatchSet: 2
Gerrit-Owner: lynxis lazus <lynxis(a)fe80.eu>
Gerrit-Reviewer: Jenkins Builder
Gerrit-CC: laforge <laforge(a)osmocom.org>
Gerrit-Attention: laforge <laforge(a)osmocom.org>
Gerrit-Comment-Date: Tue, 10 Mar 2026 10:47:10 +0000
Gerrit-HasComments: Yes
Gerrit-Has-Labels: No
Comment-In-Reply-To: laforge <laforge(a)osmocom.org>
laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-ccid-firmware/+/42192?usp=email )
Change subject: ccid_device: Reject XfrBlock with zero-length data
......................................................................
ccid_device: Reject XfrBlock with zero-length data
While the CCID v1.1 spec seems to declare dwLength == 0 is within
the valid range, it's of course a no-op as we cannot transact a TPDU
that isn't there.
Change-Id: I65df88477e4b1c03dc20a8d41e5cbd1c9f363ba8
Closes: OS#6969
---
M ccid_common/ccid_device.c
1 file changed, 7 insertions(+), 0 deletions(-)
Approvals:
Jenkins Builder: Verified
laforge: Looks good to me, approved
diff --git a/ccid_common/ccid_device.c b/ccid_common/ccid_device.c
index acee696..bf131a9 100644
--- a/ccid_common/ccid_device.c
+++ b/ccid_common/ccid_device.c
@@ -460,6 +460,13 @@
struct msgb *resp;
int rc;
+ if (u->xfr_block.hdr.dwLength == 0) {
+ /* CCID Rev 1.1 permits a zero-length XfrBlock on the protocol level, but what should we do
+ * with a zero-length TPDU? We need to reject it as bError=1 (Bad dwLength) */
+ resp = ccid_gen_data_block(cs, u->xfr_block.hdr.bSeq, CCID_CMD_STATUS_FAILED, 1, 0, 0);
+ goto out;
+ }
+
/* handle this asynchronously */
rc = cs->ci->slot_ops->xfr_block_async(cs, msg, &u->xfr_block);
if (rc <= 0) {
--
To view, visit https://gerrit.osmocom.org/c/osmo-ccid-firmware/+/42192?usp=email
To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings?usp=email
Gerrit-MessageType: merged
Gerrit-Project: osmo-ccid-firmware
Gerrit-Branch: master
Gerrit-Change-Id: I65df88477e4b1c03dc20a8d41e5cbd1c9f363ba8
Gerrit-Change-Number: 42192
Gerrit-PatchSet: 3
Gerrit-Owner: laforge <laforge(a)osmocom.org>
Gerrit-Reviewer: Hoernchen <ewild(a)sysmocom.de>
Gerrit-Reviewer: Jenkins Builder
Gerrit-Reviewer: jolly <andreas(a)eversberg.eu>
Gerrit-Reviewer: laforge <laforge(a)osmocom.org>
Gerrit-Reviewer: lynxis lazus <lynxis(a)fe80.eu>
Gerrit-CC: dexter <pmaier(a)sysmocom.de>
Attention is currently required from: laforge, mschramm, pespin.
Hello Jenkins Builder, laforge, pespin,
I'd like you to reexamine a change. Please visit
https://gerrit.osmocom.org/c/osmo-asf4-dfu/+/42168?usp=email
to look at the new patch set (#3).
The following approvals got outdated and were removed:
Code-Review+1 by laforge, Verified+1 by Jenkins Builder
Change subject: Improve comments on errata 2.6.10
......................................................................
Improve comments on errata 2.6.10
Errata 2.6.10 affects Rev A, D, F: The cache lines
of AHB0 and AHB1 might not reset properly on Power up
resulting in courrupted data in rare cases.
The errata recommends fixing this by:
- for AHB0: start WDT by NVMEM and disable by ARM core.
- for AHB1: disable and re-enable cache line
Change-Id: I3c35f590a4e43d778e70f2f377e0d470c3a652b2
---
M gcc/gcc/startup_same54.c
M hpl/nvmctrl/hpl_nvmctrl.c
M usb_flash_main.c
3 files changed, 12 insertions(+), 3 deletions(-)
git pull ssh://gerrit.osmocom.org:29418/osmo-asf4-dfu refs/changes/68/42168/3
--
To view, visit https://gerrit.osmocom.org/c/osmo-asf4-dfu/+/42168?usp=email
To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings?usp=email
Gerrit-MessageType: newpatchset
Gerrit-Project: osmo-asf4-dfu
Gerrit-Branch: master
Gerrit-Change-Id: I3c35f590a4e43d778e70f2f377e0d470c3a652b2
Gerrit-Change-Number: 42168
Gerrit-PatchSet: 3
Gerrit-Owner: lynxis lazus <lynxis(a)fe80.eu>
Gerrit-Reviewer: Jenkins Builder
Gerrit-Reviewer: laforge <laforge(a)osmocom.org>
Gerrit-Reviewer: pespin <pespin(a)sysmocom.de>
Gerrit-CC: mschramm <mschramm(a)sysmocom.de>
Gerrit-Attention: mschramm <mschramm(a)sysmocom.de>
Gerrit-Attention: laforge <laforge(a)osmocom.org>
Gerrit-Attention: pespin <pespin(a)sysmocom.de>
Attention is currently required from: lynxis lazus.
Hello Jenkins Builder,
I'd like you to reexamine a change. Please visit
https://gerrit.osmocom.org/c/osmo-asf4-dfu/+/42302?usp=email
to look at the new patch set (#2).
The following approvals got outdated and were removed:
Verified+1 by Jenkins Builder
Change subject: Errata 2.6.10: enable watchdog on boot
......................................................................
Errata 2.6.10: enable watchdog on boot
Previous the code was enabling the watchdog window on boot,
but not the watchdog as the errata specified.
It seems WDT EN and WDT WEN got accidental swapped.
Use the hal defines which also describes the function
of the bits.
Change-Id: I581037724d19fb5abd0c5067f16a5769f9e264a7
---
M usb_flash_main.c
1 file changed, 3 insertions(+), 3 deletions(-)
git pull ssh://gerrit.osmocom.org:29418/osmo-asf4-dfu refs/changes/02/42302/2
--
To view, visit https://gerrit.osmocom.org/c/osmo-asf4-dfu/+/42302?usp=email
To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings?usp=email
Gerrit-MessageType: newpatchset
Gerrit-Project: osmo-asf4-dfu
Gerrit-Branch: master
Gerrit-Change-Id: I581037724d19fb5abd0c5067f16a5769f9e264a7
Gerrit-Change-Number: 42302
Gerrit-PatchSet: 2
Gerrit-Owner: lynxis lazus <lynxis(a)fe80.eu>
Gerrit-Reviewer: Jenkins Builder
Gerrit-CC: laforge <laforge(a)osmocom.org>
Gerrit-Attention: lynxis lazus <lynxis(a)fe80.eu>
pespin has submitted this change. ( https://gerrit.osmocom.org/c/osmo-trx/+/42242?usp=email )
Change subject: radio: improve API documentation in RadioDevice
......................................................................
radio: improve API documentation in RadioDevice
Change-Id: I7b41c549d743ad180a1ddcd8c0313e1003860070
---
M Transceiver52M/device/common/radioDevice.h
1 file changed, 161 insertions(+), 38 deletions(-)
Approvals:
fixeria: Looks good to me, approved
Jenkins Builder: Verified
diff --git a/Transceiver52M/device/common/radioDevice.h b/Transceiver52M/device/common/radioDevice.h
index 5c962d1..4ed2883 100644
--- a/Transceiver52M/device/common/radioDevice.h
+++ b/Transceiver52M/device/common/radioDevice.h
@@ -53,105 +53,228 @@
static RadioDevice *make(InterfaceType type, const struct trx_cfg *cfg);
- /** Initialize the USRP */
+ /**
+ * @brief Open the radio device and initialize it with the provided configuration
+ * @return NORMAL == 0 if the radio device was successfully opened and initialized, -1 otherwise
+ */
virtual int open() = 0;
virtual ~RadioDevice() { }
- /** Start the USRP */
+ /**
+ * @brief Start the radio device
+ * @return true if the radio was successfully started, false otherwise
+ */
virtual bool start()=0;
- /** Stop the USRP */
+ /**
+ * @brief Stop the radio device
+ * @return true if the radio device was successfully stopped, false otherwise
+ */
virtual bool stop()=0;
- /** Get the Tx window type */
+ /**
+ * @brief Get the type of the transmit window, which can be one of TX_WINDOW_USRP1, TX_WINDOW_FIXED,
+ * or TX_WINDOW_LMS1.
+ * The transmit window type determines how the radio device handles the timing of transmitted samples.
+ * @return The type of the transmit window used by the radio device
+ */
virtual enum TxWindowType getWindowType()=0;
/**
- Read samples from the radio.
- @param buf preallocated buf to contain read result
- @param len number of samples desired
- @param overrun Set if read buffer has been overrun, e.g. data not being read fast enough
- @param timestamp The timestamp of the first samples to be read
- @param underrun Set if radio does not have data to transmit, e.g. data not being sent fast enough
- @return The number of samples actually read
- */
+ * @brief Read samples from the radio device.
+ * @param bufs preallocated buffers to contain read result
+ * @param len number of samples desired
+ * @param overrun Set if read buffer has been overrun, e.g. data not being read fast enough
+ * @param timestamp The timestamp of the first samples to be read
+ * @param underrun Set if radio device does not have data to transmit, e.g. data not being sent fast enough
+ * @return The number of samples actually read
+ */
virtual int readSamples(std::vector<short *> &bufs, int len, bool *overrun,
TIMESTAMP timestamp = 0xffffffff, bool *underrun = 0) = 0;
+
/**
- Write samples to the radio.
- @param buf Contains the data to be written.
- @param len number of samples to write.
- @param underrun Set if radio does not have data to transmit, e.g. data not being sent fast enough
- @param timestamp The timestamp of the first sample of the data buffer.
- @return The number of samples actually written
- */
+ * @brief Write samples to the radio device.
+ * @param bufs Contains the data to be written.
+ * @param len number of samples to write.
+ * @param underrun Set if radio device does not have data to transmit, e.g. data not being sent fast enough
+ * @param timestamp The timestamp of the first sample of the data buffer.
+ * @return The number of samples actually written
+ */
virtual int writeSamples(std::vector<short *> &bufs, int len, bool *underrun,
TIMESTAMP timestamp) = 0;
- /** Update the alignment between the read and write timestamps */
+ /**
+ * @brief Update the alignment between the read and write timestamps
+ * @param timestamp The timestamp to use for alignment
+ * @return true if the alignment was successfully updated, false otherwise
+ */
virtual bool updateAlignment(TIMESTAMP timestamp)=0;
- /** Set the transmitter frequency */
+ /**
+ * @brief Set the transmitter frequency
+ * @param wFreq The frequency to set
+ * @param chan The channel to set the frequency for
+ * @return true if the transmitter frequency was successfully set, false otherwise
+ */
virtual bool setTxFreq(double wFreq, size_t chan = 0) = 0;
- /** Set the receiver frequency */
+ /**
+ * @brief Set the receiver frequency
+ * @param wFreq The frequency to set
+ * @param chan The channel to set the frequency for
+ * @return true if the receiver frequency was successfully set, false otherwise
+ */
virtual bool setRxFreq(double wFreq, size_t chan = 0) = 0;
- /** Returns the starting write Timestamp*/
+ /**
+ * @brief Get the initial write timestamp, which is the timestamp of the first sample to be transmitted
+ * after starting the device.
+ * @return The initial write timestamp
+ */
virtual TIMESTAMP initialWriteTimestamp(void)=0;
- /** Returns the starting read Timestamp*/
+ /**
+ * @brief Get the initial read timestamp, i.e. the timestamp of the first received sample
+ * after starting the device.
+ * @return The initial read timestamp
+ */
virtual TIMESTAMP initialReadTimestamp(void)=0;
- /** returns the full-scale transmit amplitude **/
+ /**
+ * @brief Returns the full-scale transmit amplitude
+ * Usually is set to half the ADC range multiplied by 1/√2
+ * (i.e. ADC_range/2 * 1/√2 ≈ ADC_range/2 * 0.70710678) to avoid clipping for complex samples I + jQ.
+ * With |I|, |Q| <= 1/√2 the magnitude I^2 + Q^2 <= 1.
+ * @return The full-scale transmit amplitude
+ */
virtual double fullScaleInputValue()=0;
- /** returns the full-scale receive amplitude **/
+ /**
+ * @brief Returns the full-scale receive amplitude
+ * Usually is set to half of ADC range, e.g. 32767 for a 16-bit ADC.
+ * @return The full-scale receive amplitude
+ */
virtual double fullScaleOutputValue()=0;
- /** sets the receive chan gain, returns the gain setting **/
+ /**
+ * @brief Set the receive channel gain
+ * @param dB The gain value in dB
+ * @param chan The channel to set the gain for
+ * @return The actual gain setting after applying the change
+ */
virtual double setRxGain(double dB, size_t chan = 0) = 0;
- /** gets the current receive gain **/
+ /**
+ * @brief Get the current receive channel gain
+ * @param chan The channel to get the gain for
+ * @return The current gain setting
+ */
virtual double getRxGain(size_t chan = 0) = 0;
- /** return maximum Rx Gain **/
+ /**
+ * @brief Get the maximum Rx Gain
+ * @return The maximum Rx Gain
+ */
virtual double maxRxGain(void) = 0;
- /** return minimum Rx Gain **/
+ /**
+ * @brief Get the minimum Rx Gain
+ * @return The minimum Rx Gain
+ */
virtual double minRxGain(void) = 0;
- /** return base RSSI offset to apply for received samples **/
+ /**
+ * @brief Get the RSSI offset for a given channel to apply for received samples
+ * @param chan The channel to get the RSSI offset for
+ * @return The RSSI offset for the given channel
+ */
virtual double rssiOffset(size_t chan) = 0;
- /** returns the Nominal transmit output power of the transceiver in dBm, negative on error **/
+ /**
+ * @brief Get the nominal transmit output power for a given channel
+ * @param chan The channel to get the nominal transmit output power for
+ * @return The nominal transmit output power in dBm, negative on error
+ */
virtual int getNominalTxPower(size_t chan = 0) = 0;
- /** sets the RX path to use, returns true if successful and false otherwise */
+ /**
+ * @brief Sets the RX path to use
+ * @param ant The antenna to set
+ * @param chan The channel to set the antenna for
+ * @return True if successful, false otherwise
+ */
virtual bool setRxAntenna(const std::string &ant, size_t chan = 0) = 0;
- /** return the used RX path */
+ /**
+ * @brief Get the used RX path
+ * @param chan The channel to get the antenna for
+ * @return The current RX path
+ */
virtual std::string getRxAntenna(size_t chan = 0) = 0;
- /** sets the RX path to use, returns true if successful and false otherwise */
+ /**
+ * @brief Sets the TX path to use
+ * @param ant The antenna to set
+ * @param chan The channel to set the antenna for
+ * @return True if successful, false otherwise
+ */
virtual bool setTxAntenna(const std::string &ant, size_t chan = 0) = 0;
- /** return the used RX path */
+ /**
+ * @brief Get the used TX path
+ * @param chan The channel to get the antenna for
+ * @return The current TX path
+ */
virtual std::string getTxAntenna(size_t chan = 0) = 0;
- /** return whether user drives synchronization of Tx/Rx of USRP */
+ /**
+ * @brief Return whether user drives synchronization of Tx/Rx
+ * @return true if user drives synchronization of Tx/Rx, false otherwise
+ */
virtual bool requiresRadioAlign() = 0;
- /** Minimum latency that the device can achieve */
+ /**
+ * @brief Return the minimum latency the radio device can achieve
+ * @return The minimum latency
+ */
virtual GSM::Time minLatency() = 0;
/** Return internal status values */
+
+ /**
+ * @brief Get the transceiver frequency
+ * @param chan The channel to get the frequency for
+ * @return The current transceiver frequency
+ */
virtual double getTxFreq(size_t chan = 0) = 0;
+
+ /**
+ * @brief Get the receiver frequency
+ * @param chan The channel to get the frequency for
+ * @return The current receiver frequency
+ */
virtual double getRxFreq(size_t chan = 0) = 0;
+
+ /**
+ * @brief Return actual sample rate of the radio device
+ * @return The current sample rate
+ */
virtual double getSampleRate()=0;
+ /**
+ * @brief Set the power attenuation for a given channel
+ * @param atten The attenuation value in dB
+ * @param chan The channel to set the attenuation for
+ * @return The actual attenuation setting after applying the change
+ */
virtual double setPowerAttenuation(int atten, size_t chan) = 0;
+
+ /**
+ * @brief Get the power attenuation for a given channel
+ * @param chan The channel to get the attenuation for
+ * @return The current attenuation setting
+ */
virtual double getPowerAttenuation(size_t chan=0) = 0;
protected:
--
To view, visit https://gerrit.osmocom.org/c/osmo-trx/+/42242?usp=email
To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings?usp=email
Gerrit-MessageType: merged
Gerrit-Project: osmo-trx
Gerrit-Branch: master
Gerrit-Change-Id: I7b41c549d743ad180a1ddcd8c0313e1003860070
Gerrit-Change-Number: 42242
Gerrit-PatchSet: 3
Gerrit-Owner: Timur Davydov <dtv.comp(a)gmail.com>
Gerrit-Reviewer: Hoernchen <ewild(a)sysmocom.de>
Gerrit-Reviewer: Jenkins Builder
Gerrit-Reviewer: fixeria <vyanitskiy(a)sysmocom.de>
Gerrit-Reviewer: laforge <laforge(a)osmocom.org>
Gerrit-Reviewer: pespin <pespin(a)sysmocom.de>