Skip to content

Commit 5f23f9f

Browse files
dgarskedanielinux
authored andcommitted
Fix issue with debug flash layout and improve hal_prepare_boot to restore more hardware settings
1 parent d2ba667 commit 5f23f9f

2 files changed

Lines changed: 41 additions & 11 deletions

File tree

config/examples/vorago_va416x0.config

Lines changed: 14 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -52,19 +52,19 @@ WOLFBOOT_PARTITION_BOOT_ADDRESS?=0x9800
5252
WOLFBOOT_PARTITION_UPDATE_ADDRESS?=0x24800
5353
WOLFBOOT_PARTITION_SWAP_ADDRESS?=0x3F800
5454

55-
# ML-DSA 5: 36KB boot, 104KB partitions, 12KB swap
55+
# ML-DSA 5: 36KB boot, 96KB partitions, 12KB swap
5656
#WOLFBOOT_SECTOR_SIZE?=0x3000
57-
#WOLFBOOT_PARTITION_SIZE?=0x1A000
57+
#WOLFBOOT_PARTITION_SIZE?=0x18000
5858
#WOLFBOOT_PARTITION_BOOT_ADDRESS?=0x9000
59-
#WOLFBOOT_PARTITION_UPDATE_ADDRESS?=0x23000
60-
#WOLFBOOT_PARTITION_SWAP_ADDRESS?=0x3D000
59+
#WOLFBOOT_PARTITION_UPDATE_ADDRESS?=0x21000
60+
#WOLFBOOT_PARTITION_SWAP_ADDRESS?=0x39000
6161

62-
# Debug: 64KB boot, 95KB partitions, 2KB swap
62+
# Debug: 64KB boot, 94KB partitions, 2KB swap
6363
#WOLFBOOT_SECTOR_SIZE?=0x800
64-
#WOLFBOOT_PARTITION_SIZE?=0x18000
65-
#WOLFBOOT_PARTITION_BOOT_ADDRESS?=0xFC00
66-
#WOLFBOOT_PARTITION_UPDATE_ADDRESS?=0x27C00
67-
#WOLFBOOT_PARTITION_SWAP_ADDRESS?=0x3FC00
64+
#WOLFBOOT_PARTITION_SIZE?=0x17800
65+
#WOLFBOOT_PARTITION_BOOT_ADDRESS?=0x10000
66+
#WOLFBOOT_PARTITION_UPDATE_ADDRESS?=0x27800
67+
#WOLFBOOT_PARTITION_SWAP_ADDRESS?=0x3F000
6868

6969
# Vorago SDK common drivers directory
7070
VORAGO_SDK_DIR?=$(PWD)/../VA416xx_SDK/
@@ -76,4 +76,8 @@ USE_HAL_SPI_FRAM=1
7676
#CFLAGS_EXTRA+=-DWOLFBOOT_EDAC_ROM_SCRUB=125
7777

7878
# Leave clock at 100MHz (to restore clock to heart beat oscillator use =1)
79-
WOLFBOOT_RESTORE_CLOCK?=0
79+
WOLFBOOT_RESTORE_CLOCK?=1
80+
81+
# Optional debugging
82+
#CFLAGS_EXTRA+=-DDEBUG_EXT_FLASH
83+
#CFLAGS_EXTRA+=-DTEST_EXT_FLASH

hal/va416x0.c

Lines changed: 27 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -426,7 +426,6 @@ static int test_ext_flash(void)
426426
int ret;
427427
uint32_t i;
428428
uint8_t pageData[WOLFBOOT_SECTOR_SIZE];
429-
uint32_t wait = 0;
430429

431430
#ifndef READONLY
432431
/* Erase sector */
@@ -547,11 +546,38 @@ void hal_prepare_boot(void)
547546
{
548547
#ifdef DEBUG_UART
549548
uart_flush();
549+
550+
/* Disable UART to give app a clean state */
551+
DEBUG_UART_BASE->IRQ_ENB = 0;
552+
DEBUG_UART_BASE->ENABLE = 0;
553+
#if defined(DEBUG_UART_NUM) && DEBUG_UART_NUM == 1
554+
NVIC_DisableIRQ(UART1_RX_IRQn);
555+
NVIC_ClearPendingIRQ(UART1_RX_IRQn);
556+
#elif defined(DEBUG_UART_NUM) && DEBUG_UART_NUM == 2
557+
NVIC_DisableIRQ(UART2_RX_IRQn);
558+
NVIC_ClearPendingIRQ(UART2_RX_IRQn);
559+
#else /* default: UART0 */
560+
NVIC_DisableIRQ(UART0_RX_IRQn);
561+
NVIC_ClearPendingIRQ(UART0_RX_IRQn);
562+
#endif
550563
#endif
551564

552565
#ifdef WOLFBOOT_RESTORE_CLOCK
553566
/* Restore clock to heart-beat oscillator */
554567
(void)HAL_Clkgen_Init(CLK_CFG_HBO);
555568
SystemCoreClockUpdate();
556569
#endif
570+
571+
/* Disable SysTick - enabled by Vorago SDK HAL_Init() */
572+
SysTick->CTRL = 0;
573+
SCB->ICSR = SCB_ICSR_PENDSTCLR_Msk;
574+
575+
/* Disable EDAC interrupts - enabled by ConfigEdac() */
576+
NVIC_DisableIRQ(EDAC_MBE_IRQn);
577+
NVIC_DisableIRQ(EDAC_SBE_IRQn);
578+
NVIC_ClearPendingIRQ(EDAC_MBE_IRQn);
579+
NVIC_ClearPendingIRQ(EDAC_SBE_IRQn);
580+
581+
/* Disable system config IRQs */
582+
VOR_SYSCONFIG->IRQ_ENB = 0;
557583
}

0 commit comments

Comments
 (0)