From eae3cfe617fcddb144f7fa7b2872548283713671 Mon Sep 17 00:00:00 2001 From: Andrey Tolstoy Date: Tue, 1 Dec 2020 01:45:53 +0700 Subject: [PATCH] bump module version for 2.0.0 (2008) --- CHANGELOG.md | 142 ++++++++++++++++++++++++ build/release.sh | 2 +- build/version.mk | 4 +- modules/shared/system_module_version.mk | 2 +- system/inc/system_version.h | 4 +- system/system-versions.md | 1 + 6 files changed, 150 insertions(+), 5 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 4e31fa1761..39ecf0a503 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,145 @@ +## 2.0.0 + +### BREAKING CHANGES + +- Mesh support removed. 2.x+ DeviceOS releases no longer have Mesh capabilities [#2068](https://github.com/particle-iot/device-os/pull/2068) +- Xenon platform support removed. 2.x+ DeviceOS releases no longer support Xenons [#2068](https://github.com/particle-iot/device-os/pull/2068) +- Minimum ARM GCC version required increased to 9.2.1 [#2123](https://github.com/particle-iot/device-os/pull/2123) +- `SPISettings` class is always available even if compiling without Arduino compatibility [#2138](https://github.com/particle-iot/device-os/pull/2138) +- Add deprecation notices for some of the renamed HAL APIs (with appropriate replacements) [#2148](https://github.com/particle-iot/device-os/pull/2148) + +### DEPRECATION + +- [Cellular] Mark `CellularSignal::rssi` and `CellularSignal::qual` as deprecated [#2182](https://github.com/particle-iot/device-os/pull/2182) + +### FEATURES + +- [Cellular] Read IMSI when multi-IMSI SIM performs the switch [#2174](https://github.com/particle-iot/device-os/pull/2174) [#2179](https://github.com/particle-iot/device-os/pull/2179) +- Allow UDP server public key to be set in DCT programmatically [#2178](https://github.com/particle-iot/device-os/pull/2178) +- [Gen 2] Wake-up by analog value [#2172](https://github.com/particle-iot/device-os/pull/2172) +- [Gen 2] Wake-up by USART [#2173](https://github.com/particle-iot/device-os/pull/2173) +- [Gen 3] Add `ftruncate()` and `truncate()` APIs [#2195](https://github.com/particle-iot/device-os/pull/2195) +- Expose functions to fetch serial / mobile secret from OTP-area [#2190](https://github.com/particle-iot/device-os/pull/2190) +- [Electron] Wake-up by cellular [#2186](https://github.com/particle-iot/device-os/pull/2186) +- [Gen 3] Wake up from STOP/ULP/Hibernate modes by analog pin [#2163](https://github.com/particle-iot/device-os/pull/2163) +- [Gen 3] Wake up from STOP/ULP modes by WiFi/Cellular and UART [#2162](https://github.com/particle-iot/device-os/pull/2162) +- [Gen 3] `pinSetDriveStrength()` API [#2157](https://github.com/particle-iot/device-os/pull/2157) +- Add `os_queue_peek()` and make sure that queues and semaphores can be accessed from ISRs [#2156](https://github.com/particle-iot/device-os/pull/2156) [#2074](https://github.com/particle-iot/device-os/pull/2074) +- [Gen 3 / Cellular] Proactively attempt to recover from a number of failed cellular registration states [#2150](https://github.com/particle-iot/device-os/pull/2150) +- [Gen 3 / Cellular] Reset cellular modem if failing to establish PPP session for over 5 minutes [#2150](https://github.com/particle-iot/device-os/pull/2150) +- [Gen 2] Blocking UDP socket reads with a timeout [#2150](https://github.com/particle-iot/device-os/pull/2150) +- Power-loss resistant bootloader updates through MBR [#2151](https://github.com/particle-iot/device-os/pull/2151) +- Ultra low power sleep mode [#2149](https://github.com/particle-iot/device-os/pull/2149) [#2133](https://github.com/particle-iot/device-os/pull/2133) [#2132](https://github.com/particle-iot/device-os/pull/2132) [#2129](https://github.com/particle-iot/device-os/pull/2129) [#2130](https://github.com/particle-iot/device-os/pull/2130) [#2125](https://github.com/particle-iot/device-os/pull/2125) [#2136](https://github.com/particle-iot/device-os/pull/2136) +- Additional APN settings based on ICCIDs [#2144](https://github.com/particle-iot/device-os/pull/2144) +- NTP-based internet test [#2118](https://github.com/particle-iot/device-os/pull/2118) +- [Gen 3] Warm bootup of cellular modems and cellular connectivity resumption [#2102](https://github.com/particle-iot/device-os/pull/2102) [#2146](https://github.com/particle-iot/device-os/pull/2146) +- Support for compressed / combined binaries in OTA updates [#2097](https://github.com/particle-iot/device-os/pull/2097) +- ARM GCC 9 support [#2103](https://github.com/particle-iot/device-os/pull/2103) +- Device-initiated describe messages [#2024](https://github.com/particle-iot/device-os/pull/2024) +- Notify the cloud about planned disconnections [#1899](https://github.com/particle-iot/device-os/pull/1899) + +### ENHANCEMENTS + +- [Gen 3] Enable Network Diagnostics/Vitals [#2230](https://github.com/particle-iot/device-os/pull/2230) +- Remove warning for publish and subscribe scope deprecation [#2209](https://github.com/particle-iot/device-os/pull/2209) +- Export some common standard C library functions through dynalib [#2225](https://github.com/particle-iot/device-os/pull/2225) +- [Electron] Monitor cellular modem for brown-outs and resets/crashes and perform reinitialization when required [#2219](https://github.com/particle-iot/device-os/pull/2219) +- Clear OTA slots after updating firmware modules to improve reliability of OTA updates [#2176](https://github.com/particle-iot/device-os/pull/2176) +- [Cellular] Replace `AT+COPS=2` with `AT+CFUN=0` or `AT+CFUN=4` to prevent longer registration times [#2177](https://github.com/particle-iot/device-os/pull/2177) +- [Cellular] IMSI-based operator lookup, operator-specific enhancements [#2185](https://github.com/particle-iot/device-os/pull/2185) +- [Electron] Recovery mechanics for cases when the modem becomes unresponsive [#2198](https://github.com/particle-iot/device-os/pull/2198) +- Add `printf` attributes to appopriate wiring functions to generate `-Wformat` warnings [#2201](https://github.com/particle-iot/device-os/pull/2201) +- Change `Time::now()` return type to 32-bit `time32_t` to reduce potential issues with `printf` formatting of 64-bit `time_t` [#2201](https://github.com/particle-iot/device-os/pull/2201) +- [Gen 3] Workaround when unable to obtain DNS servers from remote PPP peer [#2165](https://github.com/particle-iot/device-os/pull/2165) +- System power manager blocks access to FuelGauge for 500ms in its own thread, instead of system when waking up from STOP/ULP sleep mode [#2159](https://github.com/particle-iot/device-os/pull/2159) +- [wiring] Pin operations are not dependent on wiring C++ peripheral object initialization (e.g. `SPI`, `Wire` etc) [#2157](https://github.com/particle-iot/device-os/pull/2157) +- [Gen 3] Default SPI pin drive strength changed to high [#2157](https://github.com/particle-iot/device-os/pull/2157) +- [Gen 3] Restore original `BASEPRI` when exiting FreeRTOS critical section [#2150](https://github.com/particle-iot/device-os/pull/2150) +- [Gen 3 / Cellular] Do not use packet buffers from pool in TX path [#2150](https://github.com/particle-iot/device-os/pull/2150) +- [Gen 3 / Cellular] Reliable data mode entry when attempting to establish PPP connection [#2150](https://github.com/particle-iot/device-os/pull/2150) +- [Gen 3] Changes the implementation of Nordic SDK critical sections to use `BASEPRI` [#2101](https://github.com/particle-iot/device-os/pull/2101) +- Allow resetting the device and disconnecting from the cloud via low-level USB vendor requests [#2142](https://github.com/particle-iot/device-os/pull/2142) +- [Cellular] When resuming cellular connection, do not run `COPS=0` again to avoid triggering PLMN reselection [#2139](https://github.com/particle-iot/device-os/pull/2139) +- Reduce runtime RAM usage by sharing newlib `_impure_ptr` between modules [#2126](https://github.com/particle-iot/device-os/pull/2126) +- [Electron] Use `snprintf()` instead of `sprintf()` [#2122](https://github.com/particle-iot/device-os/pull/2122) +- [Gen 3] System thread wakeup on cloud data [#2113](https://github.com/particle-iot/device-os/pull/2113) +- [Argon] Hide unsupported WiFi wiring APIs [#2120](https://github.com/particle-iot/device-os/pull/2120) +- [B5 SoM / Tracker] Disable 2G fallback for BG96-based devices [#2112](https://github.com/particle-iot/device-os/pull/2112) +- [wiring] Changes default I2C timeouts when communicating with FuelGauge and PMIC to more manageable values [#2096](https://github.com/particle-iot/device-os/pull/2096) +- [wiring] Propagate low-level I2C errors in `FuelGauge` methods [#2094](https://github.com/particle-iot/device-os/pull/2094) +- [Gen 3] Network stack enhancements [#2079](https://github.com/particle-iot/device-os/pull/2079) +- Send describe messages as confirmable CoAP messages [#2024](https://github.com/particle-iot/device-os/pull/2024) +- [Argon] OTA adjustments [#2045](https://github.com/particle-iot/device-os/pull/2045) +- Remove support for unused control requests [#2064](https://github.com/particle-iot/device-os/pull/2064) +- RTC HAL refactoring to increase time-keeping precision [#2123](https://github.com/particle-iot/device-os/pull/2123) +- Y2k38 `time_t` size change adjustments [#2123](https://github.com/particle-iot/device-os/pull/2123) +- [wiring] Refactor wiring `Time` class to use reentrant versions of libc time functions [#2123](https://github.com/particle-iot/device-os/pull/2123) + +### BUGFIXES + +- [Gen 2] Fix an issue in Sleep 2.0 API with STOP and ULP sleep modes potentially blocking user application on wake-up [#2238](https://github.com/particle-iot/device-os/pull/2238) +- [Electron] Fix a regression in `+C*REG` URC parsing [#2239](https://github.com/particle-iot/device-os/pull/2239) +- [Gen 3] Fix a potential crash when using sleep with multiple pins specified as wake-up sources together with BLE [#2227](https://github.com/particle-iot/device-os/pull/2227) +- [Electron] 2G Electrons with uBlox G350 should use `AT+CPWROFF` exclusively for powering off the modem [#2229](https://github.com/particle-iot/device-os/pull/2229) +- [Cellular] Set `INPUT_PULLUP` pin mode for FuelGauge and PMIC interrupt pins [#2207](https://github.com/particle-iot/device-os/pull/2207) +- Disconnect from the cloud before going into sleep [#2206](https://github.com/particle-iot/device-os/pull/2206) +- Use `always_inline` attribute for deprecated HAL API [#2204](https://github.com/particle-iot/device-os/pull/2204) +- [Gen 3] Set SPI `MOSI` drive strength as high by default [#2214](https://github.com/particle-iot/device-os/pull/2214) [nrf5_sdk#12](https://github.com/particle-iot/nrf5_sdk/pull/12) +- [Gen 3] Fix LED behavior in case of network loss before cloud connection is established [#2210](https://github.com/particle-iot/device-os/pull/2210) +- [Gen 3 / Cellular] Allow Software Default MNO profile to be used when chosen by SIM ICCID-based selection [#2211](https://github.com/particle-iot/device-os/pull/2211) +- [Cellular] Allow Software Default MNO profile to be used with certain version of SARA R410 modem firmware, where MNO profile 100 is not supported [#2213](https://github.com/particle-iot/device-os/pull/2213) +- [Boron / B SoM] Workaround for SARA R410 PPP ConfReq behavior [#2208](https://github.com/particle-iot/device-os/pull/2208) [lwip#8](https://github.com/particle-iot/lwip/pull/8) +- Fix `CellularSignal` deprecation messages [#2221](https://github.com/particle-iot/device-os/pull/2221) +- [Cellular] Fix PMIC reducing current on warm boot and causing modem brownouts [#2215](https://github.com/particle-iot/device-os/pull/2215) +- [Electron] Workaround for modem HAL relying on system networking code to re-attempt initialization [#2218](https://github.com/particle-iot/device-os/pull/2218) +- [Electron] Fix modem log timestamps starting with a high number on boot [#2169](https://github.com/particle-iot/device-os/pull/2169) +- [Cellular] Make sure 2G fallback stays disabled on Quectel BG96-based platforms [#2175](https://github.com/particle-iot/device-os/pull/2175) +- [Gen 3] Fix USART wake-up source configuration in Ultra Low Power mode, causing immediate sleep mode exit [#2180](https://github.com/particle-iot/device-os/pull/2180) +- [Gen 3] Fix tone generation behavior with zero duration (infinite) [#2183](https://github.com/particle-iot/device-os/pull/2183) +- Exclude printable objects from `Print` overload taking integral and unsigned integer convertible types [#2181](https://github.com/particle-iot/device-os/pull/2181) +- [Boron / B SoM] Fix warm bootup on uBlox SARA R4-based devices [#2188](https://github.com/particle-iot/device-os/pull/2188) +- [Gen 2] Support repeated-START between WRITE and READ operations in I2C Slave mode [#2184](https://github.com/particle-iot/device-os/pull/2184) [#2193](https://github.com/particle-iot/device-os/pull/2193) +- Fastpin functions should not depend on the object initialization order [#2194](https://github.com/particle-iot/device-os/pull/2194) +- [Electron] Fix modem power leakage when the modem is in an unknown state when going into a sleep mode [#2197](https://github.com/particle-iot/device-os/pull/2197) +- [BLE] Fix issue with `.serviceUUID()` not returning UUID when there is an array [#2202](https://github.com/particle-iot/device-os/pull/2202) +- [Gen 3] Default SPI pin drive strength changed to high [7f2e8a711bd14abd1e094679f1cc6d26742cb6c9](https://github.com/particle-iot/device-os/commit/7f2e8a711bd14abd1e094679f1cc6d26742cb6c9) +- [wiring] `Servo` object should deinit its pin when destructed [#2150](https://github.com/particle-iot/device-os/pull/2150) +- Fix an issue with `loop()` not being executed in `SEMI_AUTOMATIC` modem when network interfaces are down [#2150](https://github.com/particle-iot/device-os/pull/2150) +- [Gen 3] Fix cycle counter synchronization when processing RTC overflow events [#2150](https://github.com/particle-iot/device-os/pull/2150) +- [Electron] Increase default AT command timeouts [#2150](https://github.com/particle-iot/device-os/pull/2150) +- [Gen 3] Move PWM-capable pins from the PWM peripheral shared with RGB pins when possible [#2150](https://github.com/particle-iot/device-os/pull/2150) +- [Gen 3 / Cellular] Call into LwIP PPP code to indicate `PPP_IP` protocol is finished [#2150](https://github.com/particle-iot/device-os/pull/2150) +- [Gen 3] Fix BLE event processing while in STOP/ULP sleep mode [#2155](https://github.com/particle-iot/device-os/pull/2155) +- [Gen 3] `Cellular.command()` should check NCP state before attempting to execute command [#2110](https://github.com/particle-iot/device-os/pull/2110) [#2153](https://github.com/particle-iot/device-os/pull/2153) +- [Gen 2] Fix RTC thread-safety issues when accessing RTC peripheral [#2154](https://github.com/particle-iot/device-os/pull/2154) +- Workaround for Gen 3 devices not connecting to the cloud in non-automatic threaded mode [#2152](https://github.com/particle-iot/device-os/pull/2152) +- Enable PMIC buck converter on boot by default [#2147](https://github.com/particle-iot/device-os/pull/2147) +- [Gen 3] Reliably turn off the cellular modem when going into sleep mode to reduce current consumption [#2110](https://github.com/particle-iot/device-os/pull/2110) +- [Gen 3] Fixes the behavior when the USB host puts the device into suspended state [#2101](https://github.com/particle-iot/device-os/pull/2101) +- [Gen 3] Fixes potential deadlock in SPI HAL [#2101](https://github.com/particle-iot/device-os/pull/2101) [#2091](https://github.com/particle-iot/device-os/pull/2091) +- [Gen 3] Filter out non-vendor requests in USB control request handler [#2101](https://github.com/particle-iot/device-os/pull/2101) +- [Gen 3] SOF-based USB Serial port state detection [#2101](https://github.com/particle-iot/device-os/pull/2101) +- [Gen 3] Fixes an issue with devices not waking up by RTC from STOP sleep mode [#2134](https://github.com/particle-iot/device-os/pull/2134) +- [Gen 3] Fix `rename()` filesystem call [#2141](https://github.com/particle-iot/device-os/pull/2141) +- [Gen 3] Treat failure to open data channel as critical error [#2139](https://github.com/particle-iot/device-os/pull/2139) +- [Photon] Fix WPA Enterprise X509 certificate parsing [#2126](https://github.com/particle-iot/device-os/commit/428940879f5fd1d5a3bdd658260ee45a9f7aca90) +- Use newlib-nano headers when compiling [#2126](https://github.com/particle-iot/device-os/pull/2126) +- [Gen 2] Reset the device after applying an update while in listening mode [#2127](https://github.com/particle-iot/device-os/pull/2127) +- [Electron] Process `CEREG: 0` URCs on R4-based devices to detect loss of cellular connectivity [#2119](https://github.com/particle-iot/device-os/pull/2119) +- [Cellular] Fixes the issue that FuelGauge doesn't work as expected after being woken up [#2116](https://github.com/particle-iot/device-os/pull/2116) +- [Electron] Fixes buffer overrun in modem hal [#2115](https://github.com/particle-iot/device-os/pull/2115) +- [WiFi] `WiFiCredentials::setSecurity()` should be taking wiring security type (e.g. `WPA2` instead of `WLAN_SEC_WPA2`) [#2098](https://github.com/particle-iot/device-os/pull/2098) +- [Boron] Fixes SARA R4 power on sequence where the default attempt should be made with runtime baudrate [#2107](https://github.com/particle-iot/device-os/pull/2107) +- [Gen 2] Fixes an issue with I2C bus pins driven low if building with JTAG/SWD enabled [#2080](https://github.com/particle-iot/device-os/pull/2080) +- [Boron] Fixes an issue with SARA R4 modems on LTE Borons becoming unresponsive when sending substantial amount of network data continuously [#2100](https://github.com/particle-iot/device-os/pull/2100) +- Fix session resumption in `AUTOMATIC` system mode [#2024](https://github.com/particle-iot/device-os/pull/2024) + +### INTERNAL + +- Run on-device tests under the DeviceOS test runner [#2140](https://github.com/particle-iot/device-os/pull/2140) [#2150](https://github.com/particle-iot/device-os/pull/2150) +- Remove old deprecated platforms [#2150](https://github.com/particle-iot/device-os/pull/2150) +- Addresses multiple issues in on-device no-fixture tests [#2150](https://github.com/particle-iot/device-os/pull/2150) + ## 2.0.0-rc.4 ### ENHANCEMENTS diff --git a/build/release.sh b/build/release.sh index 50ede9845c..58e3986ad0 100755 --- a/build/release.sh +++ b/build/release.sh @@ -1,7 +1,7 @@ #!/bin/bash set -o errexit -o pipefail -o noclobber -o nounset -VERSION="2.0.0-rc.4" +VERSION="2.0.0" function display_help () { diff --git a/build/version.mk b/build/version.mk index 1e126a88b2..162b207a80 100755 --- a/build/version.mk +++ b/build/version.mk @@ -1,7 +1,7 @@ -VERSION_STRING = 2.0.0-rc.4 +VERSION_STRING = 2.0.0 # PRODUCT_FIRMWARE_VERSION reported by default # FIXME: Unclear if this is used, PRODUCT_FIRMWARE_VERSION defaults to 65535 every release -VERSION = 2007 +VERSION = 2008 CFLAGS += -DSYSTEM_VERSION_STRING=$(VERSION_STRING) diff --git a/modules/shared/system_module_version.mk b/modules/shared/system_module_version.mk index b34b509826..6c1525b4b9 100644 --- a/modules/shared/system_module_version.mk +++ b/modules/shared/system_module_version.mk @@ -1,6 +1,6 @@ # Skip to next 100 every v0.x.0 release (e.g. 108 for v0.6.2 to 200 for v0.7.0-rc.1) # Bump by 1 for every prerelease or release with the same v0.x.* base. -COMMON_MODULE_VERSION ?= 2007 +COMMON_MODULE_VERSION ?= 2008 SYSTEM_PART1_MODULE_VERSION ?= $(COMMON_MODULE_VERSION) SYSTEM_PART2_MODULE_VERSION ?= $(COMMON_MODULE_VERSION) SYSTEM_PART3_MODULE_VERSION ?= $(COMMON_MODULE_VERSION) diff --git a/system/inc/system_version.h b/system/inc/system_version.h index a0f85fb630..9000dca622 100644 --- a/system/inc/system_version.h +++ b/system/inc/system_version.h @@ -163,7 +163,8 @@ extern "C" { #define SYSTEM_VERSION_v200RC2 SYSTEM_VERSION_RC(2, 0, 0, 2) #define SYSTEM_VERSION_v200RC3 SYSTEM_VERSION_RC(2, 0, 0, 3) #define SYSTEM_VERSION_v200RC4 SYSTEM_VERSION_RC(2, 0, 0, 4) -#define SYSTEM_VERSION SYSTEM_VERSION_v200RC4 +#define SYSTEM_VERSION_v200 SYSTEM_VERSION_DEFAULT(2, 0, 0) +#define SYSTEM_VERSION SYSTEM_VERSION_v200 /** * Previously we would set the least significant byte to 0 for the final release, but to make @@ -291,6 +292,7 @@ extern "C" { #define SYSTEM_VERSION_200RC2 #define SYSTEM_VERSION_200RC3 #define SYSTEM_VERSION_200RC4 +#define SYSTEM_VERSION_200 typedef struct __attribute__((packed)) SystemVersionInfo { diff --git a/system/system-versions.md b/system/system-versions.md index a22065e8fb..17e770e234 100644 --- a/system/system-versions.md +++ b/system/system-versions.md @@ -129,6 +129,7 @@ | 1003 | 2005 | 2.0.0-rc.2 | Photon, P1, Electron, Argon, Boron, B SoM, B5 SoM | | 1003 | 2006 | 2.0.0-rc.3 | Photon, P1, Electron, Argon, Boron, B SoM, B5 SoM, Tracker | | 1003 | 2007 | 2.0.0-rc.4 | Photon, P1, Electron, Argon, Boron, B SoM, B5 SoM, Tracker | +| 1003 | 2008 | 2.0.0 | Photon, P1, Electron, Argon, Boron, B SoM, B5 SoM, Tracker | [1] For 0.8.0-rc.1, The v101 bootloader was also released in the Github releases as v200. Thus the next released bootloader in the 0.8.x line should be v201. As of 4/5/2018: 22 device had v200 bootloaders.