-
Notifications
You must be signed in to change notification settings - Fork 252
Expand file tree
/
Copy pathKconfig
More file actions
287 lines (233 loc) · 7.62 KB
/
Copy pathKconfig
File metadata and controls
287 lines (233 loc) · 7.62 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
mainmenu "PebbleOS Configuration"
# Per-SoC symbol defaults; loaded first so they take precedence.
osource "soc/*/Kconfig.defconfig"
rsource "soc/Kconfig"
config RELEASE
bool "Release build"
help
Whether this is a release build. Pass
`-DCONFIG_RELEASE=y` to `./waf configure` to enable. Gates
features like Memfault crash reporting that should only run on
shipping firmware.
config RECOVERY_FW
bool "Recovery firmware (PRF)"
help
Build the recovery firmware variant. Set via prj_prf.conf when
configuring with --variant=prf; do not set manually.
config MFG
bool "Manufacturing firmware"
help
Enable manufacturing-only functionality in the PRF build. PRF
and MFG firmwares are mostly the same, so MFG builds also
define the recovery-firmware symbols.
config PBLBOOT
bool "PBLBOOT bootloader"
help
Build for the PBLBOOT bootloader: prepend the PBLBOOT image
header to the firmware binary and assume a two-slot flash
layout with direct XIP. Disable for boards whose SoC bootloader
consumes a raw image and uses a single firmware slot.
menu "Compiler options"
config LTO
bool "Link-time optimization"
choice
prompt "Optimization level"
default SIZE_OPTIMIZATIONS
config SIZE_OPTIMIZATIONS
bool "Optimize for size (-Os)"
config DEBUG_OPTIMIZATIONS
bool "Optimize for debugging (-Og)"
config NO_OPTIMIZATIONS
bool "No optimizations (-O0)"
help
Previously known as "fat firmware". Requires 1M of onboard
flash.
endchoice
config COMPILER_SAVE_TEMPS
bool "Save compiler temporaries"
help
Save *.i and *.s files during compilation.
config DEBUG_INFO
bool "Debug information"
default y
help
Compile with -g3 debug information.
endmenu
config IS_BIGBOARD
bool "Bigboard revision"
help
Engineering/development PCB revision of a board (`_bb` suffix
in the board name). Gates bigboard-only behaviour that differs
from the shipping board.
# Source the active board's Kconfig and its per-board defaults; kconfig.py
# exports $(BOARD) and $(BOARD_REVISION) from the --board argument.
rsource "boards/$(BOARD)/Kconfig"
osource "boards/$(BOARD)/Kconfig.$(BOARD_REVISION)"
rsource "boards/$(BOARD)/Kconfig.defconfig"
osource "boards/$(BOARD)/Kconfig.defconfig.$(BOARD_REVISION)"
config QEMU_MACHINE
string
depends on QEMU
help
QEMU machine identifier passed to qemu-system-arm via the
`-machine` flag. Set per board in
boards/<board>/Kconfig.defconfig.
choice
prompt "SDK platform"
config PLATFORM_EMERY
bool "Emery"
config PLATFORM_FLINT
bool "Flint"
config PLATFORM_GABBRO
bool "Gabbro"
endchoice
# App RAM sizes for each SDK app execution environment (2x/3x/4x) supported by
# the model. For each environment, SEGMENT is the RAM given to the app itself
# (stack + text + data + bss + heap) and RUNTIME is the RAM reserved for the
# application runtime (AppState). A SEGMENT of 0 means the environment is
# unsupported. SEGMENT must be a multiple of eight bytes, as the process loader
# enforces eight-byte alignment on all segments.
#
# emery and gabbro use a 4 KiB app stack (see APP_STACK_NORMAL_SIZE); their
# segment is sized 2 KiB larger to compensate. All other platforms keep the
# 2 KiB stack and the historical segment sizes.
#
# The per-platform constants below are the source of truth; each environment
# just selects which legacy SDK platform it maps to.
config APP_RAM_APLITE_SEGMENT_SIZE
int
default 25952
config APP_RAM_APLITE_RUNTIME_SIZE
int
default 6820
config APP_RAM_BASALT_SEGMENT_SIZE
int
default 67584
config APP_RAM_BASALT_RUNTIME_SIZE
int
default 30720
config APP_RAM_CHALK_SEGMENT_SIZE
int
default 67584
config APP_RAM_CHALK_RUNTIME_SIZE
int
default 30720
config APP_RAM_FLINT_SEGMENT_SIZE
int
default 67584
config APP_RAM_FLINT_RUNTIME_SIZE
int
default 30720
config APP_RAM_EMERY_SEGMENT_SIZE
int
default 135168
config APP_RAM_EMERY_RUNTIME_SIZE
int
default 63488
config APP_RAM_GABBRO_SEGMENT_SIZE
int
default 135168
config APP_RAM_GABBRO_RUNTIME_SIZE
int
default 96256
config APP_RAM_2X_SEGMENT_SIZE
int
default APP_RAM_APLITE_SEGMENT_SIZE if PLATFORM_EMERY
default APP_RAM_APLITE_SEGMENT_SIZE if PLATFORM_FLINT
default 0
config APP_RAM_2X_RUNTIME_SIZE
int
default APP_RAM_APLITE_RUNTIME_SIZE if PLATFORM_EMERY
default APP_RAM_APLITE_RUNTIME_SIZE if PLATFORM_FLINT
default 0
config APP_RAM_3X_SEGMENT_SIZE
int
default APP_RAM_BASALT_SEGMENT_SIZE if PLATFORM_EMERY
default APP_RAM_APLITE_SEGMENT_SIZE if PLATFORM_FLINT
default APP_RAM_CHALK_SEGMENT_SIZE if PLATFORM_GABBRO
default 0
config APP_RAM_3X_RUNTIME_SIZE
int
default APP_RAM_BASALT_RUNTIME_SIZE if PLATFORM_EMERY
default APP_RAM_APLITE_RUNTIME_SIZE if PLATFORM_FLINT
default APP_RAM_CHALK_RUNTIME_SIZE if PLATFORM_GABBRO
default 0
config APP_RAM_4X_SEGMENT_SIZE
int
default APP_RAM_EMERY_SEGMENT_SIZE if PLATFORM_EMERY
default APP_RAM_FLINT_SEGMENT_SIZE if PLATFORM_FLINT
default APP_RAM_GABBRO_SEGMENT_SIZE if PLATFORM_GABBRO
default 0
config APP_RAM_4X_RUNTIME_SIZE
int
default APP_RAM_EMERY_RUNTIME_SIZE if PLATFORM_EMERY
default APP_RAM_FLINT_RUNTIME_SIZE if PLATFORM_FLINT
default APP_RAM_GABBRO_RUNTIME_SIZE if PLATFORM_GABBRO
default 0
config SRAM_BASE
hex
help
Base address of the SRAM available to PebbleOS (kernel + worker +
app). Defaulted per SoC in soc/*/Kconfig.defconfig.
config SRAM_SIZE
hex
help
Size of the SRAM available to PebbleOS (kernel + worker + app).
Defaulted per SoC in soc/*/Kconfig.defconfig.
config FLASH_BASE
hex
help
Base address of the memory-mapped flash the firmware is linked to
run from. Defaulted per SoC in soc/*/Kconfig.defconfig.
config FLASH_SIZE
hex
help
Total size of the memory-mapped flash the firmware is linked to
run from. Defaulted per SoC in soc/*/Kconfig.defconfig.
config FLASH_OFFSET
hex
help
Offset of the flash area this firmware image is linked to run
from, relative to FLASH_BASE (e.g. past the bootloader, or past
the first slot when linking for the second one). Defaulted per
SoC in soc/*/Kconfig.defconfig.
config FIRMWARE_OFFSET
int
default 0
help
Offset of the firmware image within its flash slot, reserving room
for the image header. Defaulted per SoC in soc/*/Kconfig.defconfig.
config FIRMWARE_SLOT
int "Firmware flash slot to link for"
range 0 1
default 0
help
On boards with multiple firmware slots (PBLBOOT), which slot this
image is linked for. Select with -DCONFIG_FIRMWARE_SLOT=1 at
configure time.
config RECOVERY_FW_AS_FW
bool "Link the recovery firmware into the normal firmware area"
help
Build PRF linked to the normal firmware flash area instead of its
own. Select with -DCONFIG_RECOVERY_FW_AS_FW=y at configure time.
config FW_FLASH_SIZE
hex
help
Flash space available to this firmware image. Defaulted per SoC or
board; a board may shrink it, e.g. when the recovery firmware
shares a flash bank with the normal firmware.
choice
prompt "Screen color depth"
config SCREEN_COLOR_DEPTH_BITS_1
bool "1-bit (monochrome)"
config SCREEN_COLOR_DEPTH_BITS_8
bool "8-bit (palette)"
endchoice
config SCREEN_COLOR_DEPTH_BITS
int
default 1 if SCREEN_COLOR_DEPTH_BITS_1
default 8 if SCREEN_COLOR_DEPTH_BITS_8
rsource "lib/c/Kconfig"
rsource "subsys/Kconfig"
rsource "src/Kconfig"
rsource "third_party/Kconfig"