Skip to content

Commit 9bc9e90

Browse files
committed
boards generator: updates:
* simplified mapping description: only flash and spiffs sizes * flash description - almost no more magic len or addresses * some ldscripts are renamed due to autogenerated names * + 2M / no spiffs * + 2M / 512K spiffs
1 parent c33ef89 commit 9bc9e90

25 files changed

+528
-182
lines changed

boards.txt

+316-102
Large diffs are not rendered by default.

tools/boards.txt.py

+92-40
Original file line numberDiff line numberDiff line change
@@ -1079,22 +1079,46 @@ def all_debug ():
10791079
################################################################
10801080
# flash size
10811081

1082-
def flash_size (size_bytes, display, optname, ld, desc, max_upload_size, spiffs_start = 0, spiffs_size = 0, spiffs_blocksize = 0):
1083-
menu = '.menu.FlashSize.' + optname
1082+
def flash_map (flashsize_kb, spiffs_kb = 0):
1083+
1084+
# mapping:
1085+
# | flash | reserved | empty | spiffs | eeprom | rf
1086+
1087+
eeprom_size_kb = 4
1088+
rf_size_kb = 16
1089+
reserved = 4112
1090+
spiffs_end = (flashsize_kb - rf_size_kb - eeprom_size_kb) * 1024
1091+
rfcal_addr = (flashsize_kb - rf_size_kb) * 1024
1092+
if flashsize_kb <= 1024:
1093+
max_upload_size = (flashsize_kb - (spiffs_kb + rf_size_kb + eeprom_size_kb)) * 1024 - reserved
1094+
spiffs_start = spiffs_end - spiffs_kb * 1024
1095+
spiffs_blocksize = 4096
1096+
else:
1097+
max_upload_size = 1024 * 1024 - reserved
1098+
spiffs_start = (flashsize_kb - spiffs_kb) * 1024
1099+
spiffs_blocksize = 8192
1100+
1101+
strsize = str(flashsize_kb / 1024) + 'M' if (flashsize_kb >= 1024) else str(flashsize_kb) + 'K'
1102+
strspiffs = str(spiffs_kb / 1024) + 'M' if (spiffs_kb >= 1024) else str(spiffs_kb) + 'K'
1103+
strspiffs_strip = str(spiffs_kb / 1024) + 'M' if (spiffs_kb >= 1024) else str(spiffs_kb) if (spiffs_kb > 0) else ''
1104+
1105+
ld = 'eagle.flash.' + strsize.lower() + strspiffs_strip.lower() + '.ld'
1106+
menu = '.menu.FlashSize.' + strsize + strspiffs_strip
10841107
menub = menu + '.build.'
1108+
desc = 'no' if (spiffs_kb == 0) else strspiffs
10851109
d = collections.OrderedDict([
1086-
( menu, display + ' (' + desc + ')' ),
1087-
( menub + 'flash_size', display ),
1088-
( menub + 'flash_size_bytes', "0x%X" % size_bytes ),
1110+
( menu, strsize + ' (' + desc + ' SPIFFS)' ),
1111+
( menub + 'flash_size', strsize ),
1112+
( menub + 'flash_size_bytes', "0x%X" % (flashsize_kb * 1024)),
10891113
( menub + 'flash_ld', ld ),
10901114
( menub + 'spiffs_pagesize', '256' ),
10911115
( menu + '.upload.maximum_size', "%i" % max_upload_size ),
1092-
( menub + 'rfcal_addr', "0x%X" % (size_bytes - 0x4000))
1116+
( menub + 'rfcal_addr', "0x%X" % rfcal_addr)
10931117
])
1094-
if spiffs_size > 0:
1118+
if spiffs_kb > 0:
10951119
d.update(collections.OrderedDict([
10961120
( menub + 'spiffs_start', "0x%05X" % spiffs_start ),
1097-
( menub + 'spiffs_end', "0x%05X" % (spiffs_start + spiffs_size) ),
1121+
( menub + 'spiffs_end', "0x%05X" % spiffs_end ),
10981122
( menub + 'spiffs_blocksize', "%i" % spiffs_blocksize ),
10991123
]))
11001124

@@ -1103,7 +1127,6 @@ def flash_size (size_bytes, display, optname, ld, desc, max_upload_size, spiffs_
11031127

11041128
checkdir()
11051129

1106-
lddir = "tools/sdk/ld/"
11071130
ldbackupdir = lddir + "backup/"
11081131
if not os.path.isdir(ldbackupdir):
11091132
os.mkdir(ldbackupdir)
@@ -1112,24 +1135,24 @@ def flash_size (size_bytes, display, optname, ld, desc, max_upload_size, spiffs_
11121135
realstdout = sys.stdout
11131136
sys.stdout = open(lddir + ld, 'w')
11141137

1115-
if spiffs_size == 0:
1138+
if spiffs_kb == 0:
11161139
page = 0
11171140
block = 0
1118-
elif spiffs_size < 0x80000:
1141+
elif spiffs_kb < 0x80000 / 1024:
11191142
page = 0x100
11201143
block = 0x1000
11211144
else:
11221145
page = 0x100
11231146
block = 0x2000
11241147

1125-
print("/* Flash Split for %s chips */" % display)
1148+
print("/* Flash Split for %s chips */" % strsize)
11261149
print("/* sketch %dKB */" % (max_upload_size / 1024))
1127-
if spiffs_size > 0:
1150+
if spiffs_kb > 0:
11281151
empty_size = spiffs_start - max_upload_size - 4096
11291152
if empty_size > 1024:
11301153
print("/* empty %dKB */" % (empty_size / 1024))
1131-
print("/* spiffs %dKB */" % (spiffs_size / 1024))
1132-
print("/* eeprom 20KB */")
1154+
print("/* spiffs %dKB */" % spiffs_kb)
1155+
print("/* eeprom %dKB rfcal %dKB */" % (eeprom_size_kb, rf_size_kb))
11331156
print("")
11341157
print("MEMORY")
11351158
print("{")
@@ -1139,10 +1162,11 @@ def flash_size (size_bytes, display, optname, ld, desc, max_upload_size, spiffs_
11391162
print(" irom0_0_seg : org = 0x40201010, len = 0x%x" % max_upload_size)
11401163
print("}")
11411164
print("")
1142-
print("PROVIDE ( _SPIFFS_start = 0x%08X );" % (0x40200000 + spiffs_start))
1143-
print("PROVIDE ( _SPIFFS_end = 0x%08X );" % (0x40200000 + spiffs_start + spiffs_size))
1144-
print("PROVIDE ( _SPIFFS_page = 0x%X );" % page)
1145-
print("PROVIDE ( _SPIFFS_block = 0x%X );" % block)
1165+
if spiffs_kb > 0:
1166+
print("PROVIDE ( _SPIFFS_start = 0x%08X );" % (0x40200000 + spiffs_start))
1167+
print("PROVIDE ( _SPIFFS_end = 0x%08X );" % (0x40200000 + spiffs_end))
1168+
print("PROVIDE ( _SPIFFS_page = 0x%X );" % page)
1169+
print("PROVIDE ( _SPIFFS_block = 0x%X );" % block)
11461170
print("")
11471171
print('INCLUDE "eagle.app.v6.common.ld"')
11481172

@@ -1152,25 +1176,49 @@ def flash_size (size_bytes, display, optname, ld, desc, max_upload_size, spiffs_
11521176

11531177
return d
11541178

1155-
def all_flash_size ():
1156-
f512 = flash_size(0x80000, '512K', '512K0', 'eagle.flash.512k0.ld', 'no SPIFFS', 499696, 0x7B000)
1157-
f512.update(flash_size(0x80000, '512K', '512K32', 'eagle.flash.512k32.ld', '32K SPIFFS', 466928, 0x73000, 0x8000, 4096))
1158-
f512.update(flash_size(0x80000, '512K', '512K64', 'eagle.flash.512k64.ld', '64K SPIFFS', 434160, 0x6B000, 0x10000, 4096))
1159-
f512.update(flash_size(0x80000, '512K', '512K128', 'eagle.flash.512k128.ld', '128K SPIFFS', 368624, 0x5B000, 0x20000, 4096))
1160-
f1m = flash_size(0x100000, '1M', '1M0', 'eagle.flash.1m0.ld', 'no SPIFFS', 1023984, 0xFB000)
1161-
f1m.update( flash_size(0x100000, '1M', '1M64', 'eagle.flash.1m64.ld', '64K SPIFFS', 958448, 0xEB000, 0x10000, 4096))
1162-
f1m.update( flash_size(0x100000, '1M', '1M128', 'eagle.flash.1m128.ld', '128K SPIFFS', 892912, 0xDB000, 0x20000, 4096))
1163-
f1m.update( flash_size(0x100000, '1M', '1M144', 'eagle.flash.1m144.ld', '144K SPIFFS', 876528, 0xD7000, 0x24000, 4096))
1164-
f1m.update( flash_size(0x100000, '1M', '1M160', 'eagle.flash.1m160.ld', '160K SPIFFS', 860144, 0xD3000, 0x28000, 4096))
1165-
f1m.update( flash_size(0x100000, '1M', '1M192', 'eagle.flash.1m192.ld', '192K SPIFFS', 827376, 0xCB000, 0x30000, 4096))
1166-
f1m.update( flash_size(0x100000, '1M', '1M256', 'eagle.flash.1m256.ld', '256K SPIFFS', 761840, 0xBB000, 0x40000, 4096))
1167-
f1m.update( flash_size(0x100000, '1M', '1M512', 'eagle.flash.1m512.ld', '512K SPIFFS', 499696, 0x7B000, 0x80000, 8192))
1168-
f2m = flash_size(0x200000, '2M', '2M', 'eagle.flash.2m.ld', '1M SPIFFS', 1044464, 0x100000, 0xFB000, 8192)
1169-
f4m = flash_size(0x400000, '4M', '4M1M', 'eagle.flash.4m1m.ld', '1M SPIFFS', 1044464, 0x300000, 0xFB000, 8192)
1170-
f4m.update( flash_size(0x400000, '4M', '4M2M', 'eagle.flash.4m2m.ld', '2M SPIFFS', 1044464, 0x200000, 0x1FB000, 8192))
1171-
f4m.update( flash_size(0x400000, '4M', '4M3M', 'eagle.flash.4m.ld', '3M SPIFFS', 1044464, 0x100000, 0x2FB000, 8192))
1172-
f8m = flash_size(0x800000, '8M', '8M7M', 'eagle.flash.8m.ld', '7M SPIFFS', 1044464, 0x100000, 0x6FB000, 8192)
1173-
f16m = flash_size(0x1000000, '16M', '16M15M', 'eagle.flash.16m.ld', '15M SPIFFS', 1044464, 0x100000, 0xEFB000, 8192)
1179+
def all_flash_map ():
1180+
1181+
f512 = collections.OrderedDict([])
1182+
f1m = collections.OrderedDict([])
1183+
f2m = collections.OrderedDict([])
1184+
f4m = collections.OrderedDict([])
1185+
f8m = collections.OrderedDict([])
1186+
f16m = collections.OrderedDict([])
1187+
1188+
# flash(KB) spiffs(KB)
1189+
1190+
f512.update(flash_map( 512))
1191+
f512.update(flash_map( 512, 32 ))
1192+
f512.update(flash_map( 512, 64 ))
1193+
f512.update(flash_map( 512, 128 ))
1194+
1195+
f1m.update( flash_map( 1024))
1196+
f1m.update( flash_map( 1024, 64 ))
1197+
f1m.update( flash_map( 1024, 128 ))
1198+
f1m.update( flash_map( 1024, 144 ))
1199+
f1m.update( flash_map( 1024, 160 ))
1200+
f1m.update( flash_map( 1024, 192 ))
1201+
f1m.update( flash_map( 1024, 256 ))
1202+
f1m.update( flash_map( 1024, 512 ))
1203+
1204+
f2m.update( flash_map( 2*1024))
1205+
f2m.update( flash_map( 2*1024, 512 ))
1206+
f2m.update( flash_map( 2*1024, 1024 ))
1207+
1208+
f4m.update( flash_map( 4*1024))
1209+
f4m.update( flash_map( 4*1024, 1024 ))
1210+
f4m.update( flash_map( 4*1024, 2*1024 ))
1211+
f4m.update( flash_map( 4*1024, 3*1024 ))
1212+
1213+
f8m.update( flash_map( 8*1024, 6*1024 ))
1214+
f8m.update( flash_map( 8*1024, 7*1024 ))
1215+
1216+
f16m.update(flash_map( 16*1024, 14*1024 ))
1217+
f16m.update(flash_map( 16*1024, 15*1024 ))
1218+
1219+
if ldgen:
1220+
print("generated: ldscripts (in %s)" % lddir)
1221+
11741222
return {
11751223
'512K': f512,
11761224
'1M': f1m,
@@ -1212,7 +1260,7 @@ def all_boards ():
12121260
realstdout = sys.stdout
12131261
sys.stdout = open("boards.txt", 'w')
12141262

1215-
macros.update(all_flash_size())
1263+
macros.update(all_flash_map())
12161264
macros.update(all_debug())
12171265
macros.update(led(led_default, led_max))
12181266

@@ -1280,6 +1328,7 @@ def all_boards ():
12801328
if boardsgen:
12811329
sys.stdout.close()
12821330
sys.stdout = realstdout
1331+
print("generated: boards.txt")
12831332

12841333
################################################################
12851334

@@ -1311,6 +1360,7 @@ def package ():
13111360
if packagegen:
13121361
with open(pkgfname, 'w') as package_file:
13131362
package_file.write(newfilestr)
1363+
print("updated: %s" % pkgfname)
13141364
else:
13151365
sys.stdout.write(newfilestr)
13161366

@@ -1352,6 +1402,7 @@ def doc ():
13521402
if docgen:
13531403
sys.stdout.close()
13541404
sys.stdout = realstdout
1405+
print("generated: doc/boards.rst")
13551406

13561407
################################################################
13571408
# help / usage
@@ -1421,6 +1472,7 @@ def usage (name,ret):
14211472
docshow = False
14221473
docgen = False
14231474
customspeeds = []
1475+
lddir = "tools/sdk/ld/"
14241476

14251477
#### vvvv cmdline parsing starts
14261478

@@ -1520,7 +1572,7 @@ def usage (name,ret):
15201572
did = False
15211573

15221574
if ldshow:
1523-
all_flash_size()
1575+
all_flash_map()
15241576
did = True
15251577

15261578
if boardsshow:

tools/sdk/ld/eagle.flash.16m14m.ld

+20
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
/* Flash Split for 16M chips */
2+
/* sketch 1019KB */
3+
/* empty 1024KB */
4+
/* spiffs 14336KB */
5+
/* eeprom 4KB rfcal 16KB */
6+
7+
MEMORY
8+
{
9+
dport0_0_seg : org = 0x3FF00000, len = 0x10
10+
dram0_0_seg : org = 0x3FFE8000, len = 0x14000
11+
iram1_0_seg : org = 0x40100000, len = 0x8000
12+
irom0_0_seg : org = 0x40201010, len = 0xfeff0
13+
}
14+
15+
PROVIDE ( _SPIFFS_start = 0x40400000 );
16+
PROVIDE ( _SPIFFS_end = 0x411FB000 );
17+
PROVIDE ( _SPIFFS_page = 0x100 );
18+
PROVIDE ( _SPIFFS_block = 0x2000 );
19+
20+
INCLUDE "eagle.app.v6.common.ld"

tools/sdk/ld/eagle.flash.16m.ld renamed to tools/sdk/ld/eagle.flash.16m15m.ld

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
/* Flash Split for 16M chips */
22
/* sketch 1019KB */
3-
/* spiffs 15340KB */
4-
/* eeprom 20KB */
3+
/* spiffs 15360KB */
4+
/* eeprom 4KB rfcal 16KB */
55

66
MEMORY
77
{
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
/* Flash Split for 1M chips */
22
/* sketch 999KB */
3-
/* eeprom 20KB */
3+
/* eeprom 4KB rfcal 16KB */
44

55
MEMORY
66
{
@@ -10,9 +10,5 @@ MEMORY
1010
irom0_0_seg : org = 0x40201010, len = 0xf9ff0
1111
}
1212

13-
PROVIDE ( _SPIFFS_start = 0x402FB000 );
14-
PROVIDE ( _SPIFFS_end = 0x402FB000 );
15-
PROVIDE ( _SPIFFS_page = 0x0 );
16-
PROVIDE ( _SPIFFS_block = 0x0 );
1713

1814
INCLUDE "eagle.app.v6.common.ld"

tools/sdk/ld/eagle.flash.1m128.ld

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
/* Flash Split for 1M chips */
22
/* sketch 871KB */
33
/* spiffs 128KB */
4-
/* eeprom 20KB */
4+
/* eeprom 4KB rfcal 16KB */
55

66
MEMORY
77
{

tools/sdk/ld/eagle.flash.1m144.ld

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
/* Flash Split for 1M chips */
22
/* sketch 855KB */
33
/* spiffs 144KB */
4-
/* eeprom 20KB */
4+
/* eeprom 4KB rfcal 16KB */
55

66
MEMORY
77
{

tools/sdk/ld/eagle.flash.1m160.ld

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
/* Flash Split for 1M chips */
22
/* sketch 839KB */
33
/* spiffs 160KB */
4-
/* eeprom 20KB */
4+
/* eeprom 4KB rfcal 16KB */
55

66
MEMORY
77
{

tools/sdk/ld/eagle.flash.1m192.ld

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
/* Flash Split for 1M chips */
22
/* sketch 807KB */
33
/* spiffs 192KB */
4-
/* eeprom 20KB */
4+
/* eeprom 4KB rfcal 16KB */
55

66
MEMORY
77
{

tools/sdk/ld/eagle.flash.1m256.ld

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
/* Flash Split for 1M chips */
22
/* sketch 743KB */
33
/* spiffs 256KB */
4-
/* eeprom 20KB */
4+
/* eeprom 4KB rfcal 16KB */
55

66
MEMORY
77
{

tools/sdk/ld/eagle.flash.1m512.ld

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
/* Flash Split for 1M chips */
22
/* sketch 487KB */
33
/* spiffs 512KB */
4-
/* eeprom 20KB */
4+
/* eeprom 4KB rfcal 16KB */
55

66
MEMORY
77
{

tools/sdk/ld/eagle.flash.1m64.ld

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
/* Flash Split for 1M chips */
22
/* sketch 935KB */
33
/* spiffs 64KB */
4-
/* eeprom 20KB */
4+
/* eeprom 4KB rfcal 16KB */
55

66
MEMORY
77
{

tools/sdk/ld/eagle.flash.2m.ld

+1-6
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
/* Flash Split for 2M chips */
22
/* sketch 1019KB */
3-
/* spiffs 1004KB */
4-
/* eeprom 20KB */
3+
/* eeprom 4KB rfcal 16KB */
54

65
MEMORY
76
{
@@ -11,9 +10,5 @@ MEMORY
1110
irom0_0_seg : org = 0x40201010, len = 0xfeff0
1211
}
1312

14-
PROVIDE ( _SPIFFS_start = 0x40300000 );
15-
PROVIDE ( _SPIFFS_end = 0x403FB000 );
16-
PROVIDE ( _SPIFFS_page = 0x100 );
17-
PROVIDE ( _SPIFFS_block = 0x2000 );
1813

1914
INCLUDE "eagle.app.v6.common.ld"

tools/sdk/ld/eagle.flash.2m1m.ld

+19
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
/* Flash Split for 2M chips */
2+
/* sketch 1019KB */
3+
/* spiffs 1024KB */
4+
/* eeprom 4KB rfcal 16KB */
5+
6+
MEMORY
7+
{
8+
dport0_0_seg : org = 0x3FF00000, len = 0x10
9+
dram0_0_seg : org = 0x3FFE8000, len = 0x14000
10+
iram1_0_seg : org = 0x40100000, len = 0x8000
11+
irom0_0_seg : org = 0x40201010, len = 0xfeff0
12+
}
13+
14+
PROVIDE ( _SPIFFS_start = 0x40300000 );
15+
PROVIDE ( _SPIFFS_end = 0x403FB000 );
16+
PROVIDE ( _SPIFFS_page = 0x100 );
17+
PROVIDE ( _SPIFFS_block = 0x2000 );
18+
19+
INCLUDE "eagle.app.v6.common.ld"

0 commit comments

Comments
 (0)