Skip to content

Commit e66146a

Browse files
committed
Put address defines inside the function
1 parent 5cf13c1 commit e66146a

File tree

1 file changed

+27
-17
lines changed

1 file changed

+27
-17
lines changed

src/rp2_common/pico_bootrom/bootrom.c

Lines changed: 27 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -71,23 +71,6 @@ void __attribute__((noreturn)) rom_reset_usb_boot_extra(int usb_activity_gpio_pi
7171
}
7272

7373
#if !PICO_RP2040
74-
75-
76-
// Generated from adding the following code into the bootrom
77-
// scan_workarea_t* scan_workarea = (scan_workarea_t*)workarea;
78-
// printf("VERSION_DOWNGRADE_ERASE_ADDR %08x\n", &(always->zero_init.version_downgrade_erase_flash_addr));
79-
// printf("TBYB_FLAG_ADDR %08x\n", &(always->zero_init.tbyb_flag_flash_addr));
80-
// printf("IMAGE_DEF_VERIFIED %08x\n", (uint32_t)&(scan_workarea->parsed_block_loops[0].image_def.core.verified) - (uint32_t)scan_workarea);
81-
// printf("IMAGE_DEF_TBYB_FLAGGED %08x\n", (uint32_t)&(scan_workarea->parsed_block_loops[0].image_def.core.tbyb_flagged) - (uint32_t)scan_workarea);
82-
// printf("IMAGE_DEF_BASE %08x\n", (uint32_t)&(scan_workarea->parsed_block_loops[0].image_def.core.enclosing_window.base) - (uint32_t)scan_workarea);
83-
// printf("IMAGE_DEF_REL_BLOCK_OFFSET %08x\n", (uint32_t)&(scan_workarea->parsed_block_loops[0].image_def.core.window_rel_block_offset) - (uint32_t)scan_workarea);
84-
#define VERSION_DOWNGRADE_ERASE_ADDR *(uint32_t*)0x400e0338
85-
#define TBYB_FLAG_ADDR *(uint32_t*)0x400e0348
86-
#define IMAGE_DEF_VERIFIED(scan_workarea) *(uint32_t*)(0x64 + (uint32_t)scan_workarea)
87-
#define IMAGE_DEF_TBYB_FLAGGED(scan_workarea) *(bool*)(0x4c + (uint32_t)scan_workarea)
88-
#define IMAGE_DEF_BASE(scan_workarea) *(uint32_t*)(0x54 + (uint32_t)scan_workarea)
89-
#define IMAGE_DEF_REL_BLOCK_OFFSET(scan_workarea) *(uint32_t*)(0x5c + (uint32_t)scan_workarea)
90-
9174
bool rom_get_boot_random(uint32_t out[4]) {
9275
uint32_t result[5];
9376
rom_get_sys_info_fn func = (rom_get_sys_info_fn) rom_func_lookup_inline(ROM_FUNC_GET_SYS_INFO);
@@ -130,6 +113,33 @@ int rom_add_flash_runtime_partition(uint32_t start_offset, uint32_t size, uint32
130113
}
131114

132115
int rom_pick_ab_update_partition(uint32_t *workarea_base, uint32_t workarea_size, uint partition_a_num) {
116+
#if PICO_RP2350
117+
// Generated from adding the following code into the bootrom
118+
// scan_workarea_t* scan_workarea = (scan_workarea_t*)workarea;
119+
// printf("VERSION_DOWNGRADE_ERASE_ADDR %08x\n", &(always->zero_init.version_downgrade_erase_flash_addr));
120+
// printf("TBYB_FLAG_ADDR %08x\n", &(always->zero_init.tbyb_flag_flash_addr));
121+
// printf("IMAGE_DEF_VERIFIED %08x\n", (uint32_t)&(scan_workarea->parsed_block_loops[0].image_def.core.verified) - (uint32_t)scan_workarea);
122+
// printf("IMAGE_DEF_TBYB_FLAGGED %08x\n", (uint32_t)&(scan_workarea->parsed_block_loops[0].image_def.core.tbyb_flagged) - (uint32_t)scan_workarea);
123+
// printf("IMAGE_DEF_BASE %08x\n", (uint32_t)&(scan_workarea->parsed_block_loops[0].image_def.core.enclosing_window.base) - (uint32_t)scan_workarea);
124+
// printf("IMAGE_DEF_REL_BLOCK_OFFSET %08x\n", (uint32_t)&(scan_workarea->parsed_block_loops[0].image_def.core.window_rel_block_offset) - (uint32_t)scan_workarea);
125+
#define VERSION_DOWNGRADE_ERASE_ADDR *(uint32_t*)0x400e0338
126+
#define TBYB_FLAG_ADDR *(uint32_t*)0x400e0348
127+
#define IMAGE_DEF_VERIFIED(scan_workarea) *(uint32_t*)(0x64 + (uint32_t)scan_workarea)
128+
#define IMAGE_DEF_TBYB_FLAGGED(scan_workarea) *(bool*)(0x4c + (uint32_t)scan_workarea)
129+
#define IMAGE_DEF_BASE(scan_workarea) *(uint32_t*)(0x54 + (uint32_t)scan_workarea)
130+
#define IMAGE_DEF_REL_BLOCK_OFFSET(scan_workarea) *(uint32_t*)(0x5c + (uint32_t)scan_workarea)
131+
#else
132+
// Prevent linting errors
133+
#define VERSION_DOWNGRADE_ERASE_ADDR *(uint32_t*)NULL
134+
#define TBYB_FLAG_ADDR *(uint32_t*)NULL
135+
#define IMAGE_DEF_VERIFIED(scan_workarea) *(uint32_t*)(NULL + (uint32_t)scan_workarea)
136+
#define IMAGE_DEF_TBYB_FLAGGED(scan_workarea) *(bool*)(NULL + (uint32_t)scan_workarea)
137+
#define IMAGE_DEF_BASE(scan_workarea) *(uint32_t*)(NULL + (uint32_t)scan_workarea)
138+
#define IMAGE_DEF_REL_BLOCK_OFFSET(scan_workarea) *(uint32_t*)(NULL + (uint32_t)scan_workarea)
139+
140+
panic_unsupported();
141+
#endif
142+
133143
uint32_t flash_update_base = 0;
134144
bool tbyb_boot = false;
135145
uint32_t saved_erase_addr = 0;

0 commit comments

Comments
 (0)