diff --git a/docs/platforms/creating_platform.rst b/docs/platforms/creating_platform.rst
index e99ff3c1..42555ffd 100644
--- a/docs/platforms/creating_platform.rst
+++ b/docs/platforms/creating_platform.rst
@@ -40,67 +40,70 @@ Packages
:header-rows: 1
* - Name
- - Alias
- Contents
- * - ``toolchain-gccarmnoneeabi``
- - toolchain
- - `gcc-arm-embedded `_,
- `GDB `_
- * - ``toolchain-atmelavr``
- - toolchain
- - `avr-gcc `_,
- `GDB `_,
- `AVaRICE `_,
- `SimulAVR `_
- * - ``toolchain-timsp430``
- - toolchain
- - `msp-gcc `_,
- `GDB `_
- * - ``tool-avrdude``
- - uploader
- - `AVRDUDE `_
- * - ``tool-bossac``
- - uploader
- - `BOSSA CLI `_
- * - ``tool-micronucleus``
- - uploader
- - `Micronucleus `_
- * - ``tool-mspdebug``
- - uploader
- - `MSPDebug `_
- * - ``tool-lm4flash``
- - uploader
- - `Flash Programmer `_
- * - ``tool-stlink``
- - uploader
- - `STLink `_
- * - ``tool-teensy``
- - uploader
- - `Teensy Loader `_
+
* - ``framework-arduinoavr``
- -
- - `Arduino Wiring-based Framework (AVR Core, 1.6 branch) `_
+ - `Arduino Wiring-based Framework (AVR Core, 1.6) `_
+
+ * - ``framework-arduinomsp430``
+ - `Arduino Wiring-based Framework (MSP430 Core) `_
+
* - ``framework-arduinosam``
- -
- - `Arduino Wiring-based Framework (SAM Core, 1.6 branch) `_
+ - `Arduino Wiring-based Framework (SAM Core, 1.6) `_
+
* - ``framework-arduinoteensy``
- -
- `Arduino Wiring-based Framework `_
- * - ``framework-energiamsp430``
- -
- - `Energia Wiring-based Framework (MSP430 Core) `_
- * - ``framework-energiativa``
- -
- - `Energia Wiring-based Framework (LM4F Core) `_
+
* - ``framework-cmsis``
- -
- `Vendor-independent hardware abstraction layer for the Cortex-M processor series `_
+
+ * - ``framework-energiamsp430``
+ - `Energia Wiring-based Framework (MSP430 Core) `_
+
+ * - ``framework-energiativa``
+ - `Energia Wiring-based Framework (LM4F Core) `_
+
+ * - ``framework-libopencm3``
+ - `libOpenCM3 Framework `_
+
+ * - ``framework-mbed``
+ - `mbed Framework `_
+
* - ``framework-spl``
- -
- `Standard Peripheral Library for STM32 MCUs `_
- * - ``framework-opencm3``
- -
- - `libOpenCM3 Framework `_
+
+ * - ``ldscripts``
+ - `Linker Scripts `_
+
+ * - ``tool-avrdude``
+ - `AVRDUDE `_
+
+ * - ``tool-bossac``
+ - `BOSSA CLI `_
+
+ * - ``tool-lm4flash``
+ - `Flash Programmer `_
+
+ * - ``tool-micronucleus``
+ - `Micronucleus `_
+
+ * - ``tool-mspdebug``
+ - `MSPDebug `_
+
+ * - ``tool-stlink``
+ - `ST-Link `_
+
+ * - ``tool-teensy``
+ - `Teensy Loader `_
+
+ * - ``toolchain-atmelavr``
+ - `avr-gcc `_, `GDB `_, `AVaRICE `_, `SimulAVR `_
+
+ * - ``toolchain-gccarmnoneeabi``
+ - `gcc-arm-embedded `_, `GDB `_
+
+ * - ``toolchain-timsp430``
+ - `msp-gcc `_, `GDB `_
.. _platform_creating_manifest_file:
diff --git a/scripts/docspregen.py b/scripts/docspregen.py
index 86bb60d6..1c07ef65 100644
--- a/scripts/docspregen.py
+++ b/scripts/docspregen.py
@@ -244,7 +244,46 @@ def update_framework_docs():
f.write(generate_framework(name, data))
+def update_create_platform_doc():
+ allpackages = get_packages()
+ lines = []
+ lines.append(""".. _platform_creating_packages:
+
+Packages
+--------
+
+*PlatformIO* has pre-built packages for the most popular operation systems:
+*Mac OS*, *Linux (+ARM)* and *Windows*.
+
+.. list-table::
+ :header-rows: 1
+
+ * - Name
+ - Contents""")
+ for type_, data in sorted(allpackages.iteritems()):
+ contitems = [
+ "`%s <%s>`_" % (name, url)
+ for name, url in allpackages[type_]
+ ]
+ lines.append("""
+ * - ``{type_}``
+ - {contents}""".format(
+ type_=type_,
+ contents=", ".join(contitems)))
+
+ with open(join(util.get_source_dir(), "..", "docs", "platforms",
+ "creating_platform.rst"), "r+") as fp:
+ content = fp.read()
+ fp.seek(0, 0)
+ fp.write(
+ content[:content.index(".. _platform_creating_packages:")] +
+ "\n".join(lines) + "\n\n" +
+ content[content.index(".. _platform_creating_manifest_file:"):]
+ )
+
+
def main():
+ update_create_platform_doc()
update_platform_docs()
update_framework_docs()