2121
2222#include "config.h"
2323
24- volatile uint32_t systick_data [18 ]; // count, R0-R15,RETPSR
25-
2624extern void remap ();
2725extern uint32_t gen_rand_sha ();
2826extern void init_key (uint8_t * key );
@@ -36,7 +34,7 @@ extern uint32_t lut_a_map[1];
3634extern uint32_t lut_b_map [1 ];
3735extern uint32_t rstate_sha [4 ],rstate_lfsr [2 ];
3836
39- void resetrng () {
37+ void __scratch_x ( "aes" ) resetrng () {
4038 uint32_t f0 ,f1 ;
4139 do f0 = get_rand_32 (); while (f0 == 0 ); // make sure we don't initialise the LFSR to zero
4240 f1 = get_rand_32 ();
@@ -52,15 +50,15 @@ void resetrng() {
5250#endif
5351}
5452
55- static void init_lut_map () {
53+ static void __scratch_x ( "aes" ) init_lut_map () {
5654 int i ;
5755 for (i = 0 ;i < 256 ;i ++ ) lut_b [i ]= gen_rand_sha ()& 0xff , lut_a [i ]^=lut_b [i ];
5856 lut_a_map [0 ]= 0 ;
5957 lut_b_map [0 ]= 0 ;
6058 remap ();
6159}
6260
63- static void init_aes () {
61+ static void __scratch_x ( "aes" ) init_aes () {
6462 resetrng ();
6563 gen_lut_sbox ();
6664 init_lut_map ();
@@ -69,7 +67,8 @@ static void init_aes() {
6967#if USE_USB_DPRAM
7068uint8_t * workarea = (uint8_t * )USBCTRL_DPRAM_BASE ;
7169#else
72- static __attribute__((aligned (4 ))) uint8_t workarea [4 * 1024 ];
70+ // static __attribute__((aligned(4))) uint8_t workarea[4 * 1024];
71+ uint8_t * workarea = (uint8_t * )SRAM_SCRATCH_Y_BASE ;
7372#endif
7473
7574int main () {
@@ -128,7 +127,7 @@ int main() {
128127
129128 int rc = rom_chain_image (
130129 workarea ,
131- 4 * 1024 ,
130+ 4 * 1024 - PICO_STACK_SIZE , // Don't use stack in workarea
132131 data_start_addr ,
133132 data_size
134133 );
@@ -137,6 +136,4 @@ int main() {
137136 stdio_init_all ();
138137 printf ("Shouldn't return from ROM call %d\n" , rc );
139138#endif
140-
141- reset_usb_boot (0 , 0 );
142139}
0 commit comments