From 94c9cf0eff7973475e4f6d93cc96c2c86b541b08 Mon Sep 17 00:00:00 2001
From: hathach <thach@tinyusb.org>
Date: Fri, 20 Sep 2019 16:14:35 +0700
Subject: [PATCH] doc update

---
 README.md                                     | 26 +++++++++----------
 docs/boards.md                                |  1 +
 src/portable/st/stm32_fsdev/dcd_stm32_fsdev.c |  5 +---
 3 files changed, 15 insertions(+), 17 deletions(-)

diff --git a/README.md b/README.md
index 0fbfaec37..a811e3b49 100644
--- a/README.md
+++ b/README.md
@@ -21,6 +21,17 @@ TinyUSB is an open-source cross-platform USB Host/Device stack for embedded syst
 └── tools           # Files used internally
 ```
 
+## Supported MCUs
+
+The stack supports the following MCUs
+
+- **Nordic:** nRF52840
+- **NXP:** LPC11Uxx, LPC13xx, LPC175x_6x, LPC177x_8x, LPC18xx, LPC40xx, LPC43xx, LPC51Uxx
+- **MicroChip:** SAMD21, SAMD51 (device only)
+- **ST:** STM32 series: L0, F0, F2, F3, F4, F7, H7 (device only)
+
+[Here is the list of supported Boards](docs/boards.md) that can be used with provided examples.
+
 ## Device Stack
 
 Support multiple device configurations by dynamically changing usb descriptors. Low power functions such as suspend, resume and remote wakeup. Following device classes are supported:
@@ -42,23 +53,12 @@ Support multiple device configurations by dynamically changing usb descriptors.
 
 ## OS Abtraction layer
 
-Currently the following OS are supported with tinyusb out of the box with a simple change of **CFG_TUSB_OS** macro.
+TinyUSB is completely thread-safe by pushing all ISR events into a central queue, then process it later in the non-ISR context. It also uses semphore/mutex to access shared resource such as CDC fifo. Therefore the stack needs to use some of OS's basic APIs. Following OSes are already supported out of the box.
 
-- **No OS**
+- **No OS** : Disabling USB IRQ is used as way to provide mutex
 - **FreeRTOS**
 - **Mynewt** Due to the newt package build system, Mynewt examples are better to be on its [own repo](https://github.com/hathach/mynewt-tinyusb-example) 
 
-## Supported MCUs
-
-The stack supports the following MCUs
-
-- **Nordic:** nRF52840
-- **NXP:** LPC11Uxx, LPC13xx, LPC175x_6x, LPC177x_8x, LPC18xx, LPC40xx, LPC43xx, LPC51Uxx
-- **MicroChip:** SAMD21, SAMD51 (device only)
-- **ST:** STM32F0, STM32F2, STM32F3, STM32F4, STM32F7, STM32H7 (device only)
-
-[Here is the list of supported Boards](docs/boards.md)
-
 ## Compiler & IDE
 
 The stack is developed with GCC compiler, and should be compilable with others. Folder `examples` provide Makefile and Segger Embedded Studio build support. [Here is instruction to build example](examples/readme.md).
diff --git a/docs/boards.md b/docs/boards.md
index fef682f48..b6b48a7f1 100644
--- a/docs/boards.md
+++ b/docs/boards.md
@@ -43,6 +43,7 @@ This code base already had supported for a handful of following boards
 
 - Adafruit Feather STM32F405 
 - [Micro Python PyBoard v1.1](https://store.micropython.org/product/PYBv1.1)
+- [STM32 L035c8 Discovery](https://www.st.com/en/evaluation-tools/32l0538discovery.html)
 - [STM32 F070rb Nucleo](https://www.st.com/en/evaluation-tools/nucleo-f070rb.html)
 - [STM32 F072rb Discovery](https://www.st.com/en/evaluation-tools/32f072bdiscovery.html)
 - [STM32 F207zg Nucleo](https://www.st.com/en/evaluation-tools/nucleo-f207zg.html)
diff --git a/src/portable/st/stm32_fsdev/dcd_stm32_fsdev.c b/src/portable/st/stm32_fsdev/dcd_stm32_fsdev.c
index d83098fd9..9bd4d2362 100644
--- a/src/portable/st/stm32_fsdev/dcd_stm32_fsdev.c
+++ b/src/portable/st/stm32_fsdev/dcd_stm32_fsdev.c
@@ -30,10 +30,7 @@
 
 /**********************************************
  * This driver has been tested with the following MCUs:
- * 
- * 
- * STM32F070RB
- *
+ *  - F070, F072, L053
  *
  * It also should work with minimal changes for any ST MCU with an "USB A"/"PCD"/"HCD" peripheral. This
  *  covers: