################################################################################
#
# Device chip tree definition file.
#
# Copyright (c) 2013 Frantisek Burian <Bufran@seznam.cz>
# Copyright (C) 2013 Werner Almesberger <wpwrak>
#
# Line description:
#   <pattern> <parent> (<data> ...)
#
#   <pattern>: is the pattern for the chip description to be searched for.
#       The case of the pattern string is ignored.
#       Pattern match symbols:
#            ?  - matches exactly one character
#            *  - matches none or more characters
#            +  - matches single or more characters
#
#   <parent>: is the parent group name, where the search will continue.
#       There are special parents names that controls traversing:
#             "END" - Exit traversal.
#             "+"   - Don't change the parent. Use for split long line to two.
#
#   <data>: space-separated list of preprocessor symbols supplied to the linker.
#       -D option name is automatically prepended to each symbol definition
#
# All lines starting with # symbol are treated as Comments
#
# Recommended tree hierarchy:
#
#   <device name> <family group> <device specific params>
#       +- <family group> <family> <family group specific params>
#           +- <family> <architecture> <device family specific params>
#               +- <architecture> END <architecture specific params>
#
# You can split the long line into two or more by using "+" in the parent field,
# and defining same regex with appropriate parent on the next line. Example:
#
#    device + PARAM1=aaa PARAM2=bbbb PARAM3=ccc PARAM4=dddd PARAM5=eeee
#    device parent PARAM6=ffff PARAM7=gggg PARAM8=hhhh
#    parent END
#
# The order of the lines is important. After the regex match, its parent will
# be used for match on the next line. If two regexp lines matches input, only
# the first will be evaluated, except special group definition "+"
#
# The regex matches entire sym
#
# Example:
#
# --- devices.data file ---
# stm32f05[01]?4* stm32f0 ROM=16K RAM=4K
# stm32f0 stm32 ROM_OFF=0x08000000 RAM_OFF=0x20000000
# stm32 END
#
# --- queried chip name ---
# stm32f051c8t6
#
# --- output of the python script ---
# -DROM=16K -DRAM=4K -DROM_OFF=0x08000000 -DRAM_OFF=0x20000000
#
# The generated linker script file will contain sections rom and ram with
# appropriate initialization code, specified in linker file source linker.ld.S
#

################################################################################
# the STM32 chips

stm32f03[01]?4* stm32f0 ROM=16K RAM=4K
stm32f03[01]?6* stm32f0 ROM=32K RAM=4K
stm32f030?8* stm32f0 ROM=64K RAM=8K
stm32f030?c* stm32f0 ROM=256K RAM=32K
stm32f042?4* stm32f0 ROM=16K RAM=6K
stm32f042?6* stm32f0 ROM=32K RAM=6K
stm32f050?4* stm32f0 ROM=16K RAM=4K
stm32f050?6* stm32f0 ROM=32K RAM=4K
stm32f051?4* stm32f0 ROM=16K RAM=8K
stm32f051?6* stm32f0 ROM=32K RAM=8K
stm32f051?8* stm32f0 ROM=64K RAM=8K
stm32f070?6* stm32f0 ROM=32K RAM=6K
stm32f07[12]?8* stm32f0 ROM=64K RAM=16K
stm32f07[012]?b* stm32f0 ROM=128K RAM=16K
stm32f091?b* stm32f0 ROM=128K RAM=32K
stm32f091?c* stm32f0 ROM=256K RAM=32K

stm32f10[012]?4* stm32f1 ROM=16K RAM=4K
stm32f103?4* stm32f1 ROM=16K RAM=6K
stm32f100?6* stm32f1 ROM=32K RAM=4K
stm32f103?6* stm32f1 ROM=32K RAM=10K
stm32f10[12]?6* stm32f1 ROM=32K RAM=6K
stm32f100?8* stm32f1 ROM=64K RAM=8K
stm32f10[12]?8* stm32f1 ROM=64K RAM=10K
stm32f103?8* stm32f1 ROM=64K RAM=20K
stm32f105?8* stm32f1 ROM=64K RAM=64K
stm32f100?b* stm32f1 ROM=128K RAM=8K
stm32f10[12]?b* stm32f1 ROM=128K RAM=16K
stm32f103?b* stm32f1 ROM=128K RAM=20K
stm32f10[57]?b* stm32f1 ROM=128K RAM=64K
stm32f100?c* stm32f1 ROM=256K RAM=24K
stm32f101?c* stm32f1 ROM=256K RAM=32K
stm32f103?c* stm32f1 ROM=256K RAM=48K
stm32f10[57]?c* stm32f1 ROM=256K RAM=64K
stm32f100?d* stm32f1 ROM=384K RAM=32K
stm32f101?d* stm32f1 ROM=384K RAM=48K
stm32f103?d* stm32f1 ROM=384K RAM=64K
stm32f100?e* stm32f1 ROM=512K RAM=32K
stm32f101?e* stm32f1 ROM=512K RAM=48K
stm32f103?e* stm32f1 ROM=512K RAM=64K
stm32f100?f* stm32f1 ROM=768K RAM=80K
stm32f103?f* stm32f1 ROM=768K RAM=96K
stm32f100?g* stm32f1 ROM=1024K RAM=80K
stm32f103?g* stm32f1 ROM=1024K RAM=96K

stm32f205?b* stm32f2 ROM=128K RAM=64K
stm32f205?c* stm32f2 ROM=256K RAM=96K
stm32f207?c* stm32f2 ROM=256K RAM=128K
stm32f2[01][57]?e* stm32f2 ROM=512K RAM=128K
stm32f20[57]?f* stm32f2 ROM=768K RAM=128K
stm32f2[01][57]?g* stm32f2 ROM=1024K RAM=128K

stm32f30[12]?6* stm32f3 ROM=32K RAM=16K
stm32f30[12]?8* stm32f3 ROM=64K RAM=16K
stm32f302?b* stm32f3 ROM=128K RAM=32K
stm32f302?c* stm32f3 ROM=256K RAM=40K
stm32f302?d* stm32f3 ROM=384K RAM=64K
stm32f302?e* stm32f3 ROM=512K RAM=64K
stm32f303?6* stm32f3ccm ROM=32K RAM=12K CCM=4K
stm32f303?8* stm32f3ccm ROM=64K RAM=12K CCM=4K
stm32f303?b* stm32f3ccm ROM=128K RAM=32K CCM=8K
stm32f3[01]3?c* stm32f3ccm ROM=256K RAM=40K CCM=8K
stm32f3[01]3?d* stm32f3ccm ROM=384K RAM=64K CCM=16K
stm32f3[01]3?e* stm32f3ccm ROM=512K RAM=64K CCM=16K

stm32f334?3* stm32f3ccm ROM=16K RAM=12K CCM=4K
stm32f334?6* stm32f3ccm ROM=32K RAM=12K CCM=4K
stm32f334?8* stm32f3ccm ROM=64K RAM=12K CCM=4K

stm32f318?8* stm32f3 ROM=64K RAM=16K
stm32f328?8* stm32f3ccm ROM=64K RAM=12K CCM=4K
stm32f358?c* stm32f3ccm ROM=256K RAM=40K CCM=8K
stm32f378?c* stm32f3 ROM=256K RAM=32K
stm32f398?e* stm32f3ccm ROM=512K RAM=64K CCM=16K

stm32f373?8* stm32f3 ROM=64K RAM=16K
stm32f373?b* stm32f3 ROM=128K RAM=24K
stm32f373?c* stm32f3 ROM=256K RAM=32K
stm32f3[78]3?8* stm32f3 ROM=64K RAM=16K
stm32f3[78]3?b* stm32f3 ROM=128K RAM=24K
stm32f3[78]3?c* stm32f3 ROM=256K RAM=32K

stm32f401?b* stm32f4 ROM=128K RAM=64K
stm32f401?c* stm32f4 ROM=256K RAM=64K
stm32f401?d* stm32f4 ROM=384K RAM=96K
stm32f401?e* stm32f4 ROM=512K RAM=96K
stm32f4[01][57]?e* stm32f4ccm ROM=512K RAM=128K CCM=64K
stm32f4[01][57]?g* stm32f4ccm ROM=1024K RAM=128K CCM=64K
stm32f410?8* stm32f4 ROM=64K RAM=32K
stm32f410?b* stm32f4 ROM=128K RAM=32K
stm32f411?c* stm32f4 ROM=256K RAM=128K
stm32f411?e* stm32f4 ROM=512K RAM=128K
stm32f412?e* stm32f4 ROM=512K RAM=256K
stm32f412?g* stm32f4 ROM=1024K RAM=256K
stm32f4[12]3?g* stm32f4ccm ROM=1024K RAM=256K CCM=64K
stm32f4[12]3?h* stm32f4ccm ROM=1536K RAM=256K CCM=64K
stm32f4[23][79]?e* stm32f4ccm ROM=512K RAM=192K CCM=64K
stm32f4[23][79]?g* stm32f4ccm ROM=1024K RAM=192K CCM=64K
stm32f4[23][79]?i* stm32f4ccm ROM=2048K RAM=192K CCM=64K
stm32f446?c* stm32f4 ROM=256K RAM=128K
stm32f446?e* stm32f4 ROM=512K RAM=128K
stm32f4[67]9?e* stm32f4ccm ROM=512K RAM=320K CCM=64K
stm32f4[67]9?g* stm32f4ccm ROM=1024K RAM=320K CCM=64K
stm32f4[67]9?i* stm32f4ccm ROM=2048K RAM=320K CCM=64K

# on F7 CCM is in some datasheets named as DTCM
stm32f7[23][23]?c* stm32f7ccm ROM=256K RAM=192K CCM=64K
stm32f7[23][23]?e* stm32f7ccm ROM=512K RAM=192K CCM=64K
stm32f745?e* stm32f7ccm ROM=512K RAM=256K CCM=64K
stm32f745?g* stm32f7ccm ROM=1024K RAM=256K CCM=64K
stm32f765?g* stm32f7ccm ROM=512K RAM=384K CCM=128K
stm32f765?i* stm32f7ccm ROM=2048K RAM=384K CCM=128K
stm32f7[45]6?e* stm32f7ccm ROM=512K RAM=256K CCM=64K
stm32f7[45]6?g* stm32f7ccm ROM=1024K RAM=256K CCM=64K
stm32f7[67]7?g* stm32f7ccm ROM=1024K RAM=384K CCM=128K
stm32f7[67]7?i* stm32f7ccm ROM=2048K RAM=384K CCM=128K
stm32f769?g* stm32f7ccm ROM=1024K RAM=384K CCM=128K
stm32f7[67][89]?i* stm32f7ccm ROM=2048K RAM=384K CCM=128K
stm32f750* stm32f7ccm ROM=64K RAM=256K CCM=64K
stm32f730* stm32f7ccm ROM=64K RAM=192K CCM=64K

stm32l01??3* stm32l0 ROM=8K RAM=2K
stm32l0[12]??4* stm32l0 ROM=16K RAM=2K
stm32l03??4* stm32l0 ROM=16K RAM=8K
stm32l0???6* stm32l0 ROM=32K RAM=8K
stm32l0[78]??8* stm32l0 ROM=64K RAM=20K
stm32l0???8* stm32l0 ROM=64K RAM=8K
stm32l0???b* stm32l0 ROM=128K RAM=20K
stm32l0???z* stm32l0 ROM=192K RAM=20K

stm32l100?6* stm32l1eep ROM=32K RAM=4K EEP=2K
stm32l100?8* stm32l1eep ROM=64K RAM=8K EEP=2K
stm32l100?b*_a stm32l1eep ROM=128K RAM=16K EEP=2K
stm32l100?b* stm32l1eep ROM=128K RAM=10K EEP=2K
stm32l100?c* stm32l1eep ROM=256K RAM=16K EEP=4K
stm32l15[12]?6*_a stm32l1eep ROM=32K RAM=16K EEP=4K
stm32l15[12]?6* stm32l1eep ROM=32K RAM=10K EEP=4K
stm32l15[12]?8*_a stm32l1eep ROM=64K RAM=32K EEP=4K
stm32l15[12]?8* stm32l1eep ROM=64K RAM=10K EEP=4K
stm32l15[12]?b*_a stm32l1eep ROM=128K RAM=32K EEP=4K
stm32l15[12]?b* stm32l1eep ROM=128K RAM=16K EEP=4K
stm32l15[12]?c* stm32l1eep ROM=256K RAM=32K EEP=8K
stm32l15[12]?d*_x stm32l1eep ROM=384K RAM=80K EEP=16K
stm32l15[12]?d* stm32l1eep ROM=384K RAM=48K EEP=12K
stm32l15[12]?e* stm32l1eep ROM=512K RAM=80K EEP=16K
stm32l162?c* stm32l1eep ROM=256K RAM=32K EEP=8K
stm32l162?d*_x stm32l1eep ROM=384K RAM=80K EEP=16K
stm32l162?d* stm32l1eep ROM=384K RAM=48K EEP=12K

stm32l41??8* stm32l4 ROM=64K RAM=32K RAM2=8K
stm32l41??b* stm32l4 ROM=128K RAM=32K RAM2=8K
stm32l43??b* stm32l4 ROM=128K RAM=48K RAM2=16K
stm32l4[34]??c* stm32l4 ROM=256K RAM=48K RAM2=16K
stm32l451?c* stm32l4 ROM=256K RAM=128K RAM2=32K
stm32l451?e* stm32l4 ROM=512K RAM=128K RAM2=32K
stm32l471?e* stm32l4 ROM=512K RAM=96K RAM2=32K
stm32l471?g* stm32l4 ROM=1024K RAM=96K RAM2=32K

stm32l452?c* stm32l4 ROM=256K RAM=128K RAM2=32K
stm32l4[56]2?e* stm32l4 ROM=512K RAM=128K RAM2=32K

stm32l47[56]?c* stm32l4 ROM=256K RAM=96K RAM2=32K
stm32l47[56]?e* stm32l4 ROM=512K RAM=96K RAM2=32K
stm32l47[56]?g* stm32l4 ROM=1024K RAM=96K RAM2=32K

stm32l486?g* stm32l4 ROM=1024K RAM=96K RAM2=32K
stm32l496?e* stm32l4 ROM=512K RAM=256K RAM2=64K
stm32l496?g* stm32l4 ROM=1024K RAM=256K RAM2=64K
stm32l4a6?g* stm32l4 ROM=1024K RAM=256K RAM2=64K

stm32ts60 stm32t ROM=32K RAM=10K

stm32w108c8 stm32w ROM=64K RAM=8K
stm32w108?b stm32w ROM=128K RAM=8K
stm32w108cz stm32w ROM=192K RAM=12K
stm32w108cc stm32w ROM=256K RAM=16K

stm32g031?4* stm32g0 ROM=16K RAM=8K
stm32g0[34][01]?6* stm32g0 ROM=32K RAM=8K
stm32g0[56][01]?6* stm32g0 ROM=32K RAM=18K
stm32g0[34][01]?8* stm32g0 ROM=64K RAM=8K
stm32g0[56][01]?8* stm32g0 ROM=64K RAM=18K
stm32g071?8* stm32g0 ROM=64K RAM=36K
stm32g0[78][01]?b* stm32g0 ROM=128K RAM=36K
stm32g0b1?b* stm32g0 ROM=128K RAM=144K
stm32g0[bc]1?c* stm32g0 ROM=256K RAM=144K
stm32g0[bc][01]?e* stm32g0 ROM=512K RAM=144K

stm32g4?1?6* stm32g4ccm ROM=32K RAM=22K CCM=10K
stm32g4?1?8* stm32g4ccm ROM=64K RAM=22K CCM=10K
stm32g4?1?b* stm32g4ccm ROM=128K RAM=22K CCM=10K
stm32g4?1?c* stm32g4ccm ROM=256K RAM=96K CCM=16K
stm32g4?1?e* stm32g4ccm ROM=512K RAM=96K CCM=16K
stm32g4?[34]?b* stm32g4ccm ROM=128K RAM=96K CCM=32K
stm32g4?[34]?c* stm32g4ccm ROM=256K RAM=96K CCM=32K
stm32g4?[34]?e* stm32g4ccm ROM=512K RAM=96K CCM=32K

# For STM32H7 CCM is called D-TCM
stm32h72[35]?e* stm32h7xxxe RAM=128K RAM2=16K RAM3=16K RAM5=16K CCM=128K
stm32h72[35]?g* stm32h7xxxg RAM=128K RAM2=16K RAM3=16K RAM5=16K CCM=128K
stm32h730?b* stm32h7xxxb RAM=128K RAM2=16K RAM3=16K RAM5=16K CCM=128K
stm32h73[35]?g* stm32h7xxxg RAM=128K RAM2=16K RAM3=16K RAM5=16K CCM=128K
stm32h742?i* stm32h7xxxi RAM=384K RAM2=32K RAM3=16K RAM5=64K CCM=128K
stm32h742?g* stm32h74xxg RAM=384K RAM2=32K RAM3=16K RAM5=64K CCM=128K
stm32h74[357]?i* stm32h7xxxi RAM=512K RAM2=128K RAM3=128K RAM4=32K RAM5=64K CCM=128K
stm32h74[357]?g* stm32h74xxg RAM=512K RAM2=128K RAM3=128K RAM4=32K RAM5=64K CCM=128K
stm32h75[357]?i* stm32h7xxxi RAM=512K RAM2=128K RAM3=128K RAM4=32K RAM5=64K CCM=128K
stm32h750?b* stm32h7xxxb RAM=512K RAM2=128K RAM3=128K RAM4=32K RAM5=64K CCM=128K

################################################################################
# the SAM3 chips

sam3a4* sam3a ROM=256K RAM=32K RAM1=32K
sam3a8* sam3a ROM=512K RAM=64K RAM1=32K

sam3n00* sam3n ROM=16K RAM=4K
sam3n0* sam3n ROM=32K RAM=8K
sam3n1* sam3n ROM=64K RAM=8K
sam3n2* sam3n ROM=128K RAM=16K
sam3n4* sam3n ROM=256K RAM=24K

sam3s1* sam3s ROM=64K RAM=16K
sam3s2* sam3s ROM=128K RAM=32K
sam3s4* sam3s ROM=256K RAM=48K
sam3s8* sam3s ROM=512K RAM=64K
sam3sd8* sam3s ROM=512K RAM=64K

sam3u1* sam3u ROM=64K RAM=8K RAM1=8K
sam3u2* sam3u ROM=128K RAM=16K RAM1=16K
sam3u4* sam3u ROM=265K RAM=32K RAM1=16K

sam3x4c* sam3x ROM=256K RAM=32K RAM1=32K
sam3x4e* sam3xnfc ROM=256K RAM=32K RAM1=32K
sam3x8c* sam3x ROM=512K RAM=64K RAM1=32K
sam3x8e* sam3xnfc ROM=512K RAM=64K RAM1=32K

samd09?13* samd ROM=8K RAM=4K
samd09?14* samd ROM=16K RAM=4K

samd10?13* samd ROM=8K RAM=4K
samd1[01]?14* samd ROM=16K RAM=4K

samd2[01]?14* samd ROM=16K RAM=2K
samd2[01]?15* samd ROM=32K RAM=4K
samd2[01]?16* samd ROM=64K RAM=8K
samd2[01]?17* samd ROM=128K RAM=16K
samd2[01]?18* samd ROM=256K RAM=32K

################################################################################
# the SAM4 chips

sam4l?8* sam4l ROM=512K RAM=64K RAM1=4K
sam4l?4* sam4l ROM=256K RAM=32K RAM1=4K
sam4l?2* sam4l ROM=128K RAM=32K RAM1=4K

################################################################################
# the lpc chips

lpc1311* lpc13 ROM=8K RAM=4K
lpc1313* lpc13 ROM=32K RAM=8K
lpc1342* lpc13 ROM=16K RAM=4K
lpc1343* lpc13 ROM=32K RAM=8K
lpc1315* lpc13u ROM=32K RAM=8K
lpc1316* lpc13u ROM=48K RAM=8K
lpc1317* lpc13u ROM=64K RAM=8K RAM1=2K
lpc1345* lpc13u ROM=32K RAM=8K USBRAM=2K
lpc1346* lpc13u ROM=48K RAM=8K USBRAM=2K
lpc1346* lpc13u ROM=64K RAM=8K USBRAM=2K RAM1=2K

lpc1751* lpc175x ROM=32K RAM=8K
lpc1752* lpc175x ROM=64K RAM=16K
lpc1754* lpc175x ROM=128K RAM=16K RAM1=16K
lpc1756* lpc175x ROM=256K RAM=16K RAM1=16K
lpc1758* lpc175x ROM=512K RAM=32K RAM1=16K RAM2=16K
lpc1759* lpc175x ROM=512K RAM=32K RAM1=16K RAM2=16K
lpc1763* lpc176x ROM=256K RAM=32K RAM1=16K RAM2=16K
lpc1764* lpc176x ROM=128K RAM=16K RAM1=16K
lpc1765* lpc176x ROM=256K RAM=32K RAM1=16K RAM2=16K
lpc1766* lpc176x ROM=256K RAM=32K RAM1=16K RAM2=16K
lpc1767* lpc176x ROM=512K RAM=32K RAM1=16K RAM2=16K
lpc1768* lpc176x ROM=512K RAM=32K RAM1=16K RAM2=16K
lpc1769* lpc176x ROM=512K RAM=32K RAM1=16K RAM2=16K
lpc1774* lpc177x ROM=128K RAM=32K RAM1=8K
lpc1776* lpc177x ROM=256K RAM=64K RAM1=16K
lpc1777* lpc177x ROM=512K RAM=64K RAM1=16K RAM2=16K
lpc1778* lpc177x ROM=512K RAM=64K RAM1=16K RAM2=16K
lpc1785* lpc178x ROM=256K RAM=64K RAM1=16K
lpc1786* lpc178x ROM=256K RAM=64K RAM1=16K
lpc1787* lpc178x ROM=512K RAM=64K RAM1=16K RAM2=16K
lpc1788* lpc178x ROM=512K RAM=64K RAM1=16K RAM2=16K

lpc4370* lpc43xx RAM=128K RAM1=72K RAM2=32K RAM3=16K
lpc4350* lpc43xx RAM=128K RAM1=72K RAM2=32K RAM3=16K
lpc4330* lpc43xx RAM=128K RAM1=72K RAM2=32K RAM3=16K
lpc4320* lpc43xx RAM=96K RAM1=40K RAM2=32K RAM3=16K
lpc4310* lpc43xx RAM=96K RAM1=40K RAM2=16K
lpc43S70* lpc43xx RAM=128K RAM1=72K RAM2=32K RAM3=16K
lpc43S50* lpc43xx RAM=128K RAM1=72K RAM2=32K RAM3=16K
lpc43S30* lpc43xx RAM=128K RAM1=72K RAM2=32K RAM3=16K
lpc43S20* lpc43xx RAM=96K RAM1=40K RAM2=32K RAM3=16K
lpc43S10* lpc43xx RAM=96K RAM1=40K RAM2=16K
lpc4367* lpc43xx ROM=512K ROM1=512K RAM=32K RAM1=40K RAM2=32K RAM3=16K
lpc4357* lpc43xx ROM=512K ROM1=512K RAM=32K RAM1=40K RAM2=32K RAM3=16K
lpc4355* lpc43xx ROM=384K ROM1=384K RAM=32K RAM1=40K RAM2=32K RAM3=16K
lpc4353* lpc43xx ROM=256K ROM1=256K RAM=32K RAM1=40K RAM2=32K RAM3=16K
lpc4352* lpc43xx ROM=512K RAM=32K RAM1=40K RAM2=32K RAM3=16K
lpc4350* lpc43xx RAM=32K RAM1=40K RAM2=32K RAM3=16K
lpc4337* lpc43xx ROM=512K ROM1=512K RAM=32K RAM1=40K RAM2=32K RAM3=16K
lpc4335* lpc43xx ROM=384K ROM1=384K RAM=32K RAM1=40K RAM2=32K RAM3=16K
lpc4333* lpc43xx ROM=256K ROM1=256K RAM=32K RAM1=40K RAM2=32K RAM3=16K
lpc4332* lpc43xx ROM=512K RAM=32K RAM1=40K RAM2=32K RAM3=16K
lpc4330* lpc43xx RAM=32K RAM1=40K RAM2=32K RAM3=16K
lpc4327* lpc43xx ROM=512K ROM1=512K RAM=32K RAM1=40K RAM2=32K RAM3=16K
lpc4325* lpc43xx ROM=384K ROM1=384K RAM=32K RAM1=40K RAM2=32K RAM3=16K
lpc4323* lpc43xx ROM=256K ROM1=256K RAM=32K RAM1=40K RAM2=16K
lpc4322* lpc43xx ROM=512K RAM=32K RAM1=40K RAM2=16K
lpc4317* lpc43xx ROM=512K ROM1=512K RAM=32K RAM1=40K RAM2=32K RAM3=16K
lpc4315* lpc43xx ROM=384K ROM1=384K RAM=32K RAM1=40K RAM2=32K RAM3=16K
lpc4313* lpc43xx ROM=256K ROM1=256K RAM=32K RAM1=40K RAM2=16K
lpc4312* lpc43xx ROM=512K RAM=32K RAM1=40K RAM2=16K
lpc43S67* lpc43xx ROM=512K ROM1=512K RAM=32K RAM1=40K RAM2=32K RAM3=16K
lpc43S57* lpc43xx RAM=32K RAM1=40K RAM2=32K RAM3=16K
lpc43S37* lpc43xx RAM=32K RAM1=40K RAM2=32K RAM3=16K

################################################################################
# the efm32 chips

# Zero Gecko
efm32zg???f4 efm32zg ROM=4K RAM=2K
efm32zg???f8 efm32zg ROM=8K RAM=2K
efm32zg???f16 efm32zg ROM=16K RAM=4K
efm32zg???f32 efm32zg ROM=32K RAM=4K

# Happy Gecko
efm32hg[12]??f32 efm32hg ROM=32K RAM=4K
efm32hg3??f32 efm32hg ROM=32K RAM=8K
efm32hg???f64 efm32hg ROM=64K RAM=8K

# Tiny Gecko
efm32tg108f4 efm32tg ROM=4K RAM=1K
efm32tg110f4 efm32tg ROM=4K RAM=2K
efm32tg???f8 efm32tg ROM=8K RAM=2K
efm32tg???f16 efm32tg ROM=16K RAM=4K
efm32tg???f32 efm32tg ROM=32K RAM=4K

# Gecko
efm32g200f16 efm32g ROM=16K RAM=8K
efm32g???f32 efm32g ROM=32K RAM=8K
efm32g???f64 efm32g ROM=64K RAM=16K
efm32g???f128 efm32g ROM=128K RAM=16K

# Large Gecko
efm32lg???f64 efm32lg ROM=64K RAM=32K
efm32lg???f128 efm32lg ROM=128K RAM=32K
efm32lg???f256 efm32lg ROM=256K RAM=32K

# Giant Gecko
efm32gg???f512 efm32gg ROM=512K RAM=128K
efm32gg???f1024 efm32gg ROM=1024K RAM=128K

# Wonder Gecko
efm32wg???f64 efm32gg ROM=64K RAM=32K
efm32wg???f128 efm32gg ROM=128K RAM=32K
efm32wg???f256 efm32gg ROM=256K RAM=32K

################################################################################
# the TI cortex M3 chips

lm3s101 lm3sandstorm ROM=8K RAM=2K
lm3s102 lm3sandstorm ROM=8K RAM=2K

lm3s300 lm3sandstorm ROM=16K RAM=4K
lm3s301 lm3sandstorm ROM=16K RAM=2K
lm3s308 lm3sandstorm ROM=16K RAM=4K
lm3s310 lm3sandstorm ROM=16K RAM=4K
lm3s315 lm3sandstorm ROM=16K RAM=4K
lm3s316 lm3sandstorm ROM=16K RAM=4K
lm3s317 lm3sandstorm ROM=16K RAM=4K
lm3s328 lm3sandstorm ROM=16K RAM=4K
lm3s600 lm3sandstorm ROM=32K RAM=8K
lm3s601 lm3sandstorm ROM=32K RAM=8K
lm3s608 lm3sandstorm ROM=32K RAM=8K
lm3s610 lm3sandstorm ROM=32K RAM=8K
lm3s611 lm3sandstorm ROM=32K RAM=8K
lm3s612 lm3sandstorm ROM=32K RAM=8K
lm3s613 lm3sandstorm ROM=32K RAM=8K
lm3s615 lm3sandstorm ROM=32K RAM=8K
lm3s617 lm3sandstorm ROM=32K RAM=8K
lm3s618 lm3sandstorm ROM=32K RAM=8K
lm3s628 lm3sandstorm ROM=32K RAM=8K
lm3s800 lm3sandstorm ROM=64K RAM=8K
lm3s801 lm3sandstorm ROM=64K RAM=8K
lm3s808 lm3sandstorm ROM=64K RAM=8K
lm3s811 lm3sandstorm ROM=64K RAM=8K
lm3s812 lm3sandstorm ROM=64K RAM=8K
lm3s815 lm3sandstorm ROM=64K RAM=8K
lm3s817 lm3sandstorm ROM=64K RAM=8K
lm3s818 lm3sandstorm ROM=64K RAM=8K
lm3s828 lm3sandstorm ROM=64K RAM=8K

lm3s1110 lm3fury ROM=64K RAM=16K
lm3s1133 lm3fury ROM=64K RAM=16K
lm3s1138 lm3fury ROM=64K RAM=16K
lm3s1150 lm3fury ROM=64K RAM=16K
lm3s1162 lm3fury ROM=64K RAM=16K
lm3s1165 lm3fury ROM=64K RAM=16K
lm3s1332 lm3fury ROM=96K RAM=16K
lm3s1435 lm3fury ROM=96K RAM=32K
lm3s1439 lm3fury ROM=96K RAM=32K
lm3s1512 lm3fury ROM=96K RAM=64K
lm3s1538 lm3fury ROM=96K RAM=64K
lm3s1601 lm3fury ROM=128K RAM=32K
lm3s1607 lm3fury ROM=128K RAM=32K
lm3s1608 lm3fury ROM=128K RAM=32K
lm3s1620 lm3fury ROM=128K RAM=32K
lm3s3748 lm3fury ROM=128K RAM=64K
lm3s6965 lm3fury ROM=256K RAM=64K
lm3s8962 lm3fury ROM=256K RAM=64K

################################################################################
# TI cortex M4 chips

lm4f???b2* lm4f ROM=32K RAM=12K
lm4f???c4* lm4f ROM=64K RAM=24K
lm4f???e5* lm4f ROM=128K RAM=32K
lm4f???h5* lm4f ROM=256K RAM=32K

tm4c123?c3* tm4c123x ROM=32K RAM=12K
tm4c123?d5* tm4c123x ROM=64K RAM=24K
tm4c123?e6* tm4c123x ROM=128K RAM=32K
tm4c123?h6* tm4c123x ROM=256K RAM=32K

tm4c129?k* tm4c129x ROM=512K RAM=256K
tm4c129?n* tm4c129x ROM=1024K RAM=256K

################################################################################
# the TI cortex R4F chips

rm46l852* rm46l ROM=1280K RAM=192K

################################################################################
# NXP/Freescale Vybrid VF6xx parts. (Cortex A5+M4 pair)

vf610 vf6xx RAM=256K RAM1=256K RAM_OFF=0x1f000000 RAM1_OFF=0x3f040000

################################################################################
# SWM050 chips

swm050* END ROM=8K RAM=1K ROM_OFF=0x00000000 RAM_OFF=0x20000000 CPU=cortex-m0 FPU=soft

################################################################################
# Qorvo PAC55xx Cortex-M4 based chips

pac5523 pac55xx ROM=128K RAM=32K
pac5524 pac55xx ROM=128K RAM=32K
pac5527 pac55xx ROM=128K RAM=32K
pac5532 pac55xx ROM=128K RAM=32K
pac5556 pac55xx ROM=128K RAM=32K

################################################################################
# nRF51xx Cortex-M0 based chips

nrf51822aa nrf51sf ROM=256K RAM=16K
nrf51822ab nrf51sf ROM=128K RAM=16K
nrf51822ac nrf51sf ROM=256K RAM=32K

################################################################################
# nRF52xx Cortex-M4 based chips
nrf52805* nrf52sf ROM=192k RAM=24K
nrf52810* nrf52sf ROM=192k RAM=24K
nrf52811* nrf52sf ROM=192k RAM=24K
nrf52820* nrf52sf ROM=256k RAM=32K

nrf52832qfaa nrf52fp ROM=512K RAM=64K
nrf52832qfab nrf52fp ROM=256K RAM=32K
nrf52832ciaa nrf52fp ROM=512K RAM=64K

nrf52833* nrf52fp ROM=512K RAM=128K
nrf52840* nrf52fp ROM=1024K RAM=256K

################################################################################
################################################################################
################################################################################
# the STM32 family groups

stm32f3ccm stm32f3 CCM_OFF=0x10000000
stm32f4ccm stm32f4 CCM_OFF=0x10000000
stm32f7ccm stm32f7 CCM_OFF=0x20000000
stm32g4ccm stm32g4 CCM_OFF=0x10000000
stm32l1eep stm32l1 EEP_OFF=0x08080000

stm32h7xxxb stm32h7 ROM=128K
stm32h7xxxe stm32h7 ROM=512K
# stm32h72xxxg and stm32h73xxxg
stm32h7xxxg stm32h7 ROM=1M
stm32h74xxg stm32h7 ROM=512K ROM2=512K
stm32h7xxxi stm32h7 ROM=1M ROM2=1M

################################################################################
# the SAM3 family groups
sam3xnfc sam3x NFCRAM=4K NFCRAM_OFF=0x20100000

################################################################################
# the lpc family groups

lpc13 lpc13xx
lpc13u lpc13xx USBRAM_OFF=0x20004000

lpc17[56]x lpc17xx RAM1_OFF=0x2007C000 RAM2_OFF=0x20080000
lpc17[78]x lpc17xx RAM1_OFF=0x20000000 RAM2_OFF=0x20004000

lpc43xx_m0 lpc43xx CPU=cortex-m0 FPU=soft
lpc43xx_m4 lpc43xx CPU=cortex-m4 FPU=hard-fp4-sp-d16

################################################################################
################################################################################
################################################################################
# the STM32 families

stm32f0 END ROM_OFF=0x08000000 RAM_OFF=0x20000000 CPU=cortex-m0 FPU=soft
stm32f1 END ROM_OFF=0x08000000 RAM_OFF=0x20000000 CPU=cortex-m3 FPU=soft
stm32f2 END ROM_OFF=0x08000000 RAM_OFF=0x20000000 CPU=cortex-m3 FPU=soft
stm32f3 END ROM_OFF=0x08000000 RAM_OFF=0x20000000 CPU=cortex-m4 FPU=hard-fpv4-sp-d16
stm32f4 END ROM_OFF=0x08000000 RAM_OFF=0x20000000 CPU=cortex-m4 FPU=hard-fpv4-sp-d16
#stm32f7 is supported on GCC-arm-embedded 4.8 2014q4
stm32f7 END ROM_OFF=0x08000000 RAM_OFF=0x20010000 CPU=cortex-m7 FPU=hard-fpv5-sp-d16
stm32l0 END ROM_OFF=0x08000000 RAM_OFF=0x20000000 CPU=cortex-m0plus FPU=soft
stm32l1 END ROM_OFF=0x08000000 RAM_OFF=0x20000000 CPU=cortex-m3 FPU=soft
stm32l4 END ROM_OFF=0x08000000 RAM_OFF=0x20000000 RAM2_OFF=0x10000000 RAM3_OFF=0x20040000 CPU=cortex-m4 FPU=hard-fpv4-sp-d16
stm32g0 END ROM_OFF=0x08000000 RAM_OFF=0x20000000 CPU=cortex-m0plus FPU=soft
stm32g4 END ROM_OFF=0x08000000 RAM_OFF=0x20000000 CPU=cortex-m4 FPU=hard-fpv4-sp-d16
stm32h7 END ROM_OFF=0x08000000 ROM2_OFF=0x08100000 RAM_OFF=0x24000000 RAM2_OFF=0x30000000 RAM3_OFF=0x30020000 RAM4_OFF=0x30040000 RAM5_OFF=0x38000000 CCM_OFF=0x20000000 CPU=cortex-m7 FPU=hard-fpv5-d16
stm32w END ROM_OFF=0x08000000 RAM_OFF=0x20000000 CPU=cortex-m3 FPU=soft
stm32t END ROM_OFF=0x08000000 RAM_OFF=0x20000000 CPU=cortex-m3 FPU=soft

################################################################################
# the SAM3 families

sam3a END ROM_OFF=0x00080000 RAM_OFF=0x20000000 RAM1_OFF=0x20080000 CPU=cortex-m3 FPU=soft
sam3n END ROM_OFF=0x00400000 RAM_OFF=0x20000000 CPU=cortex-m3 FPU=soft
sam3s END ROM_OFF=0x00400000 RAM_OFF=0x20000000 CPU=cortex-m3 FPU=soft
sam3u END ROM_OFF=0x00080000 RAM_OFF=0x20000000 RAM1_OFF=0x20080000 NFCRAM=4K NFCRAM_OFF=0x20100000 CPU=cortex-m3 FPU=soft
sam3x END ROM_OFF=0x00080000 RAM_OFF=0x20000000 RAM1_OFF=0x20080000 CPU=cortex-m3 FPU=soft
samd END ROM_OFF=0x00000000 RAM_OFF=0x20000000 CPU=cortex-m0plus FPU=soft

################################################################################
# the SAM4 families
sam4l END ROM_OFF=0x00000000 RAM_OFF=0x20000000 RAM1_OFF=0x21000000

################################################################################
# the lpc families

lpc13xx END ROM_OFF=0x00000000 RAM_OFF=0x10000000 RAM1_OFF=0x20000000 CPU=cortex-m3 FPU=soft
lpc17xx END ROM_OFF=0x00000000 RAM_OFF=0x10000000 CPU=cortex-m3 FPU=soft
lpc43xx + ROM_OFF=0x1A000000 ROM1_OFF=0x1B000000 RAM_OFF=0x10000000 RAM1_OFF=0x10080000
lpc43xx + RAM2_OFF=0x20000000 RAM3_OFF=0x20008000
lpc43xx END CPU=cortex-m4 FPU=hard-fpv4-sp-d16

################################################################################
# the efm32 Gecko families

efm32zg END ROM_OFF=0x00000000 RAM_OFF=0x20000000 RAM1_OFF=0x10000000 CPU=cortex-m0plus FPU=soft
efm32hg END ROM_OFF=0x00000000 RAM_OFF=0x20000000 RAM1_OFF=0x10000000 CPU=cortex-m0plus FPU=soft
efm32tg END ROM_OFF=0x00000000 RAM_OFF=0x20000000 RAM1_OFF=0x10000000 CPU=cortex-m3 FPU=soft
efm32g END ROM_OFF=0x00000000 RAM_OFF=0x20000000 RAM1_OFF=0x10000000 CPU=cortex-m3 FPU=soft
efm32lg END ROM_OFF=0x00000000 RAM_OFF=0x20000000 RAM1_OFF=0x10000000 CPU=cortex-m3 FPU=soft
efm32gg END ROM_OFF=0x00000000 RAM_OFF=0x20000000 RAM1_OFF=0x10000000 CPU=cortex-m3 FPU=soft
efm32wg END ROM_OFF=0x00000000 RAM_OFF=0x20000000 RAM1_OFF=0x10000000 CPU=cortex-m4 FPU=hard-fpv4-sp-d16

################################################################################
# Cortex LM3 and LM4 families

lm3fury lm3s
lm3sandstorm lm3s
lm3s END ROM_OFF=0x00000000 RAM_OFF=0x20000000 CPU=cortex-m3 FPU=soft
tm4c123x lm4f
tm4c129x lm4f
lm4f END ROM_OFF=0x00000000 RAM_OFF=0x20000000 CPU=cortex-m4 FPU=hard-fpv4-sp-d16


################################################################################
# Cortex R4F families

rm46l END ROM_OFF=0x00000000 RAM_OFF=0x08000000 RAM1_OFF=0x08400000

################################################################################
# VF6xx families

vf6xx END CPU=cortex-m4 FPU=hard-fpv4-sp-d16

################################################################################
# PAC55xx families

pac55xx END ROM_OFF=0x00000000 RAM_OFF=0x20000000 CPU=cortex-m4 FPU=hard-fpv4-sp-d16

################################################################################
# nRF51xx families
#
nrf51sf nrf51 FPU=soft

nrf51 END ROM_OFF=0x00000000 RAM_OFF=0x20000000 CPU=cortex-m0

################################################################################
# nRF52xx families
#
nrf52sf nrf52 FPU=soft
nrf52fp nrf52 FPU=hard-fpv4-sp-d16

nrf52 END ROM_OFF=0x00000000 RAM_OFF=0x20000000 CPU=cortex-m4
