This is merely a historical archive of years 2008-2021, before the migration to mailman3.
A maintained and still updated list archive can be found at https://lists.osmocom.org/hyperkitty/list/gerrit-log@lists.osmocom.org/.
Kévin Redon gerrit-no-reply at lists.osmocom.orgKévin Redon has uploaded this change for review. ( https://gerrit.osmocom.org/9853 Change subject: ISO7816: change update_fidi to use provided USART, and disable write protection for USART register if required ...................................................................... ISO7816: change update_fidi to use provided USART, and disable write protection for USART register if required Change-Id: I716f4bc3a22800cbce402b146f14ef8b2aab2a98 --- M firmware/libcommon/include/simtrace.h M firmware/libcommon/source/simtrace_iso7816.c 2 files changed, 23 insertions(+), 12 deletions(-) git pull ssh://gerrit.osmocom.org:29418/simtrace2 refs/changes/53/9853/1 diff --git a/firmware/libcommon/include/simtrace.h b/firmware/libcommon/include/simtrace.h index 278d5d2..3dfefe4 100644 --- a/firmware/libcommon/include/simtrace.h +++ b/firmware/libcommon/include/simtrace.h @@ -77,7 +77,11 @@ extern const USBConfigurationDescriptor *configurationDescriptorsArr[]; -void update_fidi(uint8_t fidi); +/*! Update USART baud rate to Fi/Di ratio + * @param[io] usart USART peripheral base address + * @param[in] fidi FiDi value as provided in TA interface byte + */ +void update_fidi(Usart *usart, uint8_t fidi); void ISR_PhoneRST( const Pin *pPin); diff --git a/firmware/libcommon/source/simtrace_iso7816.c b/firmware/libcommon/source/simtrace_iso7816.c index 81ae980..3d843a7 100644 --- a/firmware/libcommon/source/simtrace_iso7816.c +++ b/firmware/libcommon/source/simtrace_iso7816.c @@ -116,20 +116,27 @@ } /* FIDI update functions */ -void update_fidi(uint8_t fidi) +void update_fidi(Usart *usart, uint8_t fidi) { - int rc; + if (NULL==usart) { + return; + } uint8_t fi = fidi >> 4; uint8_t di = fidi & 0xf; + int ratio = compute_fidi_ratio(fi, di); - rc = compute_fidi_ratio(fi, di); - if (rc > 0 && rc < 0x400) { - TRACE_INFO("computed Fi(%u) Di(%u) ratio: %d", fi, di, rc); - /* make sure UART uses new F/D ratio */ - USART_PHONE->US_CR |= US_CR_RXDIS | US_CR_RSTRX; - USART_PHONE->US_FIDI = rc & 0x3ff; - USART_PHONE->US_CR |= US_CR_RXEN | US_CR_STTTO; - } else - TRACE_INFO("computed FiDi ratio %d unsupported", rc); + if (ratio > 0 && ratio < 0x8000) { + /* make sure USART uses new F/D ratio */ + usart->US_CR |= US_CR_RXDIS | US_CR_RSTRX; + /* disable write protection */ + if (usart->US_WPMR) { + usart->US_WPMR = US_WPMR_WPKEY(0x555341); + } + usart->US_FIDI = (ratio & 0x7ff); + usart->US_CR |= US_CR_RXEN | US_CR_STTTO; + TRACE_INFO("updated USART Fi(%u)/Di(%u) ratio(%d): %u\n\r", fi, di, ratio, usart->US_FIDI); + } else { + TRACE_WARNING("computed Fi/Di ratio %d unsupported\n\r", ratio); + } } -- To view, visit https://gerrit.osmocom.org/9853 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: simtrace2 Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: I716f4bc3a22800cbce402b146f14ef8b2aab2a98 Gerrit-Change-Number: 9853 Gerrit-PatchSet: 1 Gerrit-Owner: Kévin Redon <kredon at sysmocom.de> -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.osmocom.org/pipermail/gerrit-log/attachments/20180703/b992a60a/attachment.htm>