Skip to content

Commit b545979

Browse files
twcook86danielinux
authored andcommitted
address several pr issues
1 parent 8742af6 commit b545979

7 files changed

Lines changed: 56 additions & 36 deletions

File tree

arch.mk

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1236,7 +1236,9 @@ ifeq ($(TARGET),lpc55s69)
12361236
$(MCUXPRESSO_DRIVERS)/drivers/fsl_power.o \
12371237
$(MCUXPRESSO)/drivers/common/fsl_common_arm.o \
12381238
$(MCUXPRESSO)/drivers/iap1/fsl_iap.o \
1239-
$(MCUXPRESSO)/drivers/lpc_gpio/fsl_gpio.o
1239+
$(MCUXPRESSO)/drivers/lpc_gpio/fsl_gpio.o \
1240+
$(MCUXPRESSO)/drivers/rng_1/fsl_rng.o \
1241+
$(WOLFBOOT_LIB_WOLFSSL)/wolfcrypt/src/port/nxp/rng_port.o
12401242
ifeq ($(DEBUG_UART),1)
12411243
OBJS+=\
12421244
$(MCUXPRESSO_DRIVERS)/drivers/fsl_reset.o \
@@ -1248,10 +1250,8 @@ ifeq ($(TARGET),lpc55s69)
12481250
OBJS+=\
12491251
$(MCUXPRESSO)/drivers/casper/fsl_casper.o \
12501252
$(MCUXPRESSO)/drivers/hashcrypt/fsl_hashcrypt.o \
1251-
$(MCUXPRESSO)/drivers/rng_1/fsl_rng.o \
12521253
$(WOLFBOOT_LIB_WOLFSSL)/wolfcrypt/src/port/nxp/casper_port.o \
1253-
$(WOLFBOOT_LIB_WOLFSSL)/wolfcrypt/src/port/nxp/hashcrypt_port.o \
1254-
$(WOLFBOOT_LIB_WOLFSSL)/wolfcrypt/src/port/nxp/rng_port.o
1254+
$(WOLFBOOT_LIB_WOLFSSL)/wolfcrypt/src/port/nxp/hashcrypt_port.o
12551255
else
12561256
CFLAGS+=-DWOLFSSL_NXP_LPC55S69_NO_HWACCEL
12571257
endif

config/examples/lpc55s69-tz.config

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@ FLASH_MULTI_SECTOR_ERASE?=1
3131
WOLFCRYPT_TZ?=1
3232
WOLFCRYPT_TZ_PKCS11?=1
3333

34-
# use 1024-byte sector to accomodate RSA4096 signature
34+
# use 1024-byte sector to accommodate RSA4096 signature
3535
# WOLFBOOT_SECTOR_SIZE?=0x400
3636
WOLFBOOT_SECTOR_SIZE?=0x200
3737

config/examples/lpc55s69.config

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ DUALBANK_SWAP?=0
2929
PKA?=0
3030
FLASH_MULTI_SECTOR_ERASE?=1
3131

32-
# use 1024-byte sector to accomodate RSA4096 signature
32+
# use 1024-byte sector to accommodate RSA4096 signature
3333
# WOLFBOOT_SECTOR_SIZE?=0x400
3434
WOLFBOOT_SECTOR_SIZE?=0x200
3535

hal/lpc55s69.c

Lines changed: 1 addition & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -71,10 +71,8 @@ static void hal_sau_init(void)
7171

7272
static void periph_unsecure(void)
7373
{
74-
#ifndef WOLFSSL_NXP_LPC55S69_NO_HWACCEL
7574
CLOCK_EnableClock(kCLOCK_Rng);
7675
RESET_PeripheralReset(kRNG_RST_SHIFT_RSTn);
77-
#endif
7876
CLOCK_EnableClock(kCLOCK_Iocon);
7977
CLOCK_EnableClock(kCLOCK_Gpio1);
8078
}
@@ -113,12 +111,9 @@ void hal_init(void)
113111
uart_write("lpc55s69 init\n", 14);
114112
# endif
115113

116-
# ifndef WOLFSSL_NXP_LPC55S69_NO_HWACCEL
114+
# ifdef WOLFSSL_NXP_LPC55S69_WITH_HWACCEL
117115
CLOCK_EnableClock(kCLOCK_HashCrypt);
118116
wc_hashcrypt_init();
119-
# endif
120-
121-
# ifndef WOLFSSL_NXP_LPC55S69_NO_HWACCEL
122117
CLOCK_EnableClock(kCLOCK_Casper);
123118
wc_casper_init();
124119
# endif
@@ -229,13 +224,11 @@ int RAMFUNCTION hal_flash_erase(uint32_t address, int len)
229224
#ifdef WOLFCRYPT_SECURE_MODE
230225
void hal_trng_init(void)
231226
{
232-
#ifndef WOLFSSL_NXP_LPC55S69_NO_HWACCEL
233227
# ifdef __WOLFBOOT
234228
CLOCK_EnableClock(kCLOCK_Rng);
235229
RESET_PeripheralReset(kRNG_RST_SHIFT_RSTn);
236230
# endif
237231
RNG_Init(RNG);
238-
#endif
239232
}
240233

241234
void hal_trng_fini(void)
@@ -244,10 +237,8 @@ void hal_trng_fini(void)
244237

245238
int hal_trng_get_entropy(unsigned char *out, unsigned int len)
246239
{
247-
#ifndef WOLFSSL_NXP_LPC55S69_NO_HWACCEL
248240
if (RNG_GetRandomData(RNG, out, len) == kStatus_Success)
249241
return 0;
250-
#endif
251242

252243
return -1;
253244
}

include/user_settings.h

Lines changed: 8 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -493,9 +493,15 @@ extern int tolower(int c);
493493
#define NO_AES_CBC
494494
#else
495495
#if defined(WOLFCRYPT_TEST) || defined(WOLFCRYPT_BENCHMARK)
496-
#ifdef WOLFSSL_NXP_LPC55S69
496+
#if defined(WOLFSSL_NXP_LPC55S69_WITH_HWACCEL) \
497+
|| defined(WOLFSSL_NXP_LPC55S69_NO_HWACCEL)
497498
/* use actual rng hardware for seed, HASHDRBG for generation */
498499
#define HAVE_HASHDRBG
500+
#define HAVE_AES_ECB
501+
#define WOLFSSL_AES_OFB
502+
#define WOLFSSL_AES_CFB
503+
#define WOLFSSL_AES_COUNTER
504+
#define WOLFSSL_STATIC_MEMORY_TEST_SZ (30 * 1024)
499505
#else
500506
/* Use custom RNG for tests/benchmarks (saves ~7KB vs HASHDRBG).
501507
* WARNING: my_rng_seed_gen is NOT cryptographically secure.
@@ -508,14 +514,6 @@ extern int tolower(int c);
508514

509515
#define HAVE_AESGCM
510516
#define GCM_TABLE
511-
512-
#if defined(WOLFSSL_NXP_LPC55S69) || defined(WOLFSSL_NXP_LPC55S69_NO_HWACCEL)
513-
#define HAVE_AES_ECB
514-
#define WOLFSSL_AES_OFB
515-
#define WOLFSSL_AES_CFB
516-
#define WOLFSSL_AES_COUNTER
517-
#define WOLFSSL_STATIC_MEMORY_TEST_SZ (30 * 1024)
518-
#endif
519517
#else
520518
#define HAVE_HASHDRBG
521519
#define WOLFSSL_AES_CFB
@@ -588,7 +586,7 @@ extern int tolower(int c);
588586

589587
/* wolfCrypt Test/Benchmark Configuration */
590588
#ifdef WOLFCRYPT_TEST
591-
#ifdef WOLFSSL_NXP_LPC55S69
589+
#ifdef WOLFSSL_NXP_LPC55S69_WITH_HWACCEL
592590
/* lpc55s69 hashcrypt hw does not support interleaving */
593591
#define NO_WOLFSSL_SHA256_INTERLEAVE
594592
#endif

test-app/Makefile

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -182,7 +182,7 @@ ifeq ($(WOLFCRYPT_SUPPORT),1)
182182
# Add SP C math (all architectures)
183183
APP_OBJS+=$(WOLFBOOT_LIB_WOLFSSL)/wolfcrypt/src/sp_c32.o
184184

185-
# Add RSA support (needed by test suite)
185+
# Add RSA support
186186
APP_OBJS+=$(WOLFBOOT_LIB_WOLFSSL)/wolfcrypt/src/rsa.o
187187

188188
ifneq ($(NO_ASM),1)
@@ -728,16 +728,16 @@ ifeq ($(TARGET),lpc55s69)
728728
$(MCUXPRESSO)/drivers/flexcomm/fsl_flexcomm.o \
729729
$(MCUXPRESSO)/drivers/flexcomm/usart/fsl_usart.o \
730730
$(MCUXPRESSO)/drivers/iap1/fsl_iap.o \
731-
$(MCUXPRESSO)/drivers/lpc_gpio/fsl_gpio.o
731+
$(MCUXPRESSO)/drivers/lpc_gpio/fsl_gpio.o \
732+
$(MCUXPRESSO)/drivers/rng_1/fsl_rng.o \
733+
$(WOLFBOOT_LIB_WOLFSSL)/wolfcrypt/src/port/nxp/rng_port.o
732734
ifeq ($(PKA),1)
733-
CFLAGS+=-DWOLFSSL_NXP_LPC55S69
735+
CFLAGS+=-DWOLFSSL_NXP_LPC55S69_WITH_HWACCEL
734736
APP_OBJS+=\
735737
$(MCUXPRESSO)/drivers/casper/fsl_casper.o \
736738
$(MCUXPRESSO)/drivers/hashcrypt/fsl_hashcrypt.o \
737-
$(MCUXPRESSO)/drivers/rng_1/fsl_rng.o \
738739
$(WOLFBOOT_LIB_WOLFSSL)/wolfcrypt/src/port/nxp/casper_port.o \
739-
$(WOLFBOOT_LIB_WOLFSSL)/wolfcrypt/src/port/nxp/hashcrypt_port.o \
740-
$(WOLFBOOT_LIB_WOLFSSL)/wolfcrypt/src/port/nxp/rng_port.o
740+
$(WOLFBOOT_LIB_WOLFSSL)/wolfcrypt/src/port/nxp/hashcrypt_port.o
741741
else
742742
CFLAGS+=-DWOLFSSL_NXP_LPC55S69_NO_HWACCEL
743743
endif

test-app/app_lpc55s69.c

Lines changed: 35 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -55,11 +55,12 @@ void SysTick_Handler(void)
5555
SysTick_time_ms++;
5656
}
5757

58+
#ifdef WOLFCRYPT_BENCHMARK
5859
static void systick_init(void)
5960
{
6061
SysTick_Config(CLOCK_GetCoreSysClkFreq() / 1000U); /* 1 ms period */
6162
}
62-
63+
#endif
6364

6465
#define IOCON_PIO_FUNC0 0x00u /*!<@brief Selects pin function 0 */
6566
#define IOCON_PIO_MODE_PULLUP 0x20u /*!<@brief Selects pull-up function */
@@ -134,7 +135,7 @@ void main(void)
134135

135136
hal_init();
136137
leds_init();
137-
#ifndef TZEN
138+
#ifdef WOLFCRYPT_BENCHMARK
138139
systick_init();
139140
__enable_irq();
140141
#endif
@@ -206,6 +207,16 @@ void main(void)
206207
}
207208
}
208209

210+
#ifndef ENOMEM
211+
#define ENOMEM 12
212+
#endif
213+
#ifndef EBADF
214+
#define EBADF 9
215+
#endif
216+
#ifndef EINVAL
217+
#define EINVAL 22
218+
#endif
219+
int errno;
209220

210221
#include "sys/stat.h"
211222
int WEAKFUNCTION _getpid(void)
@@ -268,8 +279,28 @@ int WEAKFUNCTION _fstat(int file, struct stat *st)
268279
return 0;
269280
}
270281

282+
/* Heap management */
283+
extern char _end; /* Defined by linker */
284+
extern char _Min_Heap_Size; /* Linker symbol: address is the value */
285+
271286
void WEAKFUNCTION *_sbrk(int incr)
272287
{
273-
(void)incr;
274-
return 0;
288+
static char *heap_end = 0;
289+
char *prev_heap_end;
290+
char *heap_limit;
291+
292+
if (heap_end == 0) {
293+
heap_end = &_end;
294+
}
295+
prev_heap_end = heap_end;
296+
297+
heap_limit = &_end + (uintptr_t)&_Min_Heap_Size;
298+
299+
if (heap_end + incr > heap_limit) {
300+
errno = ENOMEM;
301+
return (void *)-1;
302+
}
303+
304+
heap_end += incr;
305+
return prev_heap_end;
275306
}

0 commit comments

Comments
 (0)