18
18
19
19
LOG_MODULE_REGISTER (modem_trace_backend , CONFIG_MODEM_TRACE_BACKEND_LOG_LEVEL );
20
20
21
- #define EXT_FLASH_DEVICE DEVICE_DT_GET(DT_ALIAS(ext_flash))
22
- #define TRACE_OFFSET FLASH_AREA_OFFSET(modem_trace)
23
- #define TRACE_SIZE CONFIG_NRF_MODEM_LIB_TRACE_BACKEND_FLASH_PARTITION_SIZE
21
+ /* Partition offset is implicit in flash_area */
24
22
25
- #define BUF_SIZE CONFIG_NRF_MODEM_LIB_TRACE_BACKEND_FLASH_BUF_SIZE
23
+ #if USE_PARTITION_MANAGER
24
+ #define MODEM_TRACE_PARTITION MODEM_TRACE
25
+ #else
26
+ #define MODEM_TRACE_PARTITION modem_trace
27
+ #endif
26
28
29
+ #define BUF_SIZE CONFIG_NRF_MODEM_LIB_TRACE_BACKEND_FLASH_BUF_SIZE
27
30
#define TRACE_MAGIC_INITIALIZED 0x152ac523
28
31
29
32
static trace_backend_processed_cb trace_processed_callback ;
@@ -155,7 +158,7 @@ static int trace_flash_erase(void)
155
158
156
159
LOG_INF ("Erasing external flash" );
157
160
158
- err = flash_area_erase (modem_trace_area , 0 , TRACE_SIZE );
161
+ err = flash_area_erase (modem_trace_area , 0 , modem_trace_area -> fa_size );
159
162
if (err ) {
160
163
LOG_ERR ("flash_area_erase error: %d" , err );
161
164
}
@@ -176,7 +179,7 @@ int trace_backend_init(trace_backend_processed_cb trace_processed_cb)
176
179
177
180
trace_processed_callback = trace_processed_cb ;
178
181
179
- err = flash_area_open (FIXED_PARTITION_ID (MODEM_TRACE ), & modem_trace_area );
182
+ err = flash_area_open (FIXED_PARTITION_ID (MODEM_TRACE_PARTITION ), & modem_trace_area );
180
183
if (err ) {
181
184
LOG_ERR ("flash_area_open error: %d" , err );
182
185
return - ENODEV ;
@@ -211,7 +214,7 @@ int trace_backend_init(trace_backend_processed_cb trace_processed_cb)
211
214
uint32_t f_sector_cnt = sizeof (trace_flash_sectors ) / sizeof (struct flash_sector );
212
215
213
216
err = flash_area_get_sectors (
214
- FIXED_PARTITION_ID (MODEM_TRACE ), & f_sector_cnt , trace_flash_sectors );
217
+ FIXED_PARTITION_ID (MODEM_TRACE_PARTITION ), & f_sector_cnt , trace_flash_sectors );
215
218
if (err ) {
216
219
LOG_ERR ("flash_area_get_sectors error: %d" , err );
217
220
return err ;
@@ -227,7 +230,7 @@ int trace_backend_init(trace_backend_processed_cb trace_processed_cb)
227
230
LOG_DBG ("Sectors: %d, first sector: %p, sector size: %d" ,
228
231
f_sector_cnt , trace_flash_sectors , trace_flash_sectors [0 ].fs_size );
229
232
230
- err = fcb_init (FIXED_PARTITION_ID (MODEM_TRACE ), & trace_fcb );
233
+ err = fcb_init (FIXED_PARTITION_ID (MODEM_TRACE_PARTITION ), & trace_fcb );
231
234
if (err ) {
232
235
LOG_ERR ("fcb_init error: %d" , err );
233
236
return err ;
@@ -243,7 +246,8 @@ int trace_backend_init(trace_backend_processed_cb trace_processed_cb)
243
246
244
247
size_t trace_backend_data_size (void )
245
248
{
246
- return trace_bytes_unread ;
249
+ /* Ensure we never report more data than the partition can hold */
250
+ return MIN (trace_bytes_unread , modem_trace_area -> fa_size );
247
251
}
248
252
249
253
/* Read from offset
0 commit comments