Skip to content

Commit 2af2e79

Browse files
twcook86danielinux
authored andcommitted
Initial support for lpc55s69
1 parent f123c4f commit 2af2e79

8 files changed

Lines changed: 577 additions & 1 deletion

File tree

arch.mk

Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1183,6 +1183,42 @@ ifeq ($(TARGET),lpc)
11831183
endif
11841184
endif
11851185

1186+
ifeq ($(TARGET),lpc55s69)
1187+
ifneq ($(TZEN),1)
1188+
LSCRIPT_IN=hal/$(TARGET)-ns.ld
1189+
endif
1190+
CFLAGS+=\
1191+
-I$(MCUXPRESSO_PROJECT_TEMPLATE) \
1192+
-I$(MCUXPRESSO_DRIVERS) \
1193+
-I$(MCUXPRESSO_DRIVERS)/drivers \
1194+
-I$(MCUXPRESSO_DRIVERS)/../periph \
1195+
-I$(MCUXPRESSO)/drivers \
1196+
-I$(MCUXPRESSO)/drivers/common \
1197+
-I$(MCUXPRESSO)/drivers/flexcomm \
1198+
-I$(MCUXPRESSO)/drivers/flexcomm/usart \
1199+
-I$(MCUXPRESSO)/drivers/iap1 \
1200+
-I$(MCUXPRESSO)/drivers/lpc_gpio \
1201+
-I$(MCUXPRESSO)/drivers/lpc_iocon \
1202+
-I$(MCUXPRESSO_CMSIS)/Include \
1203+
-I$(MCUXPRESSO_CMSIS)/Core/Include
1204+
CFLAGS+=-DCPU_$(MCUXPRESSO_CPU)
1205+
CFLAGS+=-mcpu=cortex-m33 -DCORTEX_M33 -U__ARM_FEATURE_DSP
1206+
LDFLAGS+=-mcpu=cortex-m33
1207+
OBJS+=\
1208+
$(MCUXPRESSO_PROJECT_TEMPLATE)/clock_config.o \
1209+
$(MCUXPRESSO_DRIVERS)/drivers/fsl_clock.o \
1210+
$(MCUXPRESSO_DRIVERS)/drivers/fsl_power.o \
1211+
$(MCUXPRESSO)/drivers/common/fsl_common_arm.o \
1212+
$(MCUXPRESSO)/drivers/iap1/fsl_iap.o \
1213+
$(MCUXPRESSO)/drivers/lpc_gpio/fsl_gpio.o
1214+
ifeq ($(DEBUG_UART),1)
1215+
OBJS+=\
1216+
$(MCUXPRESSO_DRIVERS)/drivers/fsl_reset.o \
1217+
$(MCUXPRESSO)/drivers/flexcomm/fsl_flexcomm.o \
1218+
$(MCUXPRESSO)/drivers/flexcomm/usart/fsl_usart.o
1219+
endif
1220+
endif
1221+
11861222
ifeq ($(TARGET),psoc6)
11871223
CORTEX_M0=1
11881224
OBJS+=\

config/examples/lpc55s69.config

Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,40 @@
1+
ARCH?=ARM
2+
TZEN?=0
3+
TARGET?=lpc55s69
4+
SIGN?=ECC384
5+
HASH?=SHA384
6+
MCUXSDK?=1
7+
MCUXPRESSO?=$(PWD)/../NXP/mcuxpresso-sdk/mcuxsdk
8+
MCUXPRESSO_CMSIS?=$(PWD)/../NXP/CMSIS_5/CMSIS
9+
MCUXPRESSO_CPU?=LPC55S69JBD100_cm33_core0
10+
MCUXPRESSO_DRIVERS?=$(MCUXPRESSO)/devices/LPC/LPC5500/LPC55S69
11+
MCUXPRESSO_PROJECT_TEMPLATE?=$(MCUXPRESSO)/examples/_boards/lpcxpresso55s69/project_template
12+
DEBUG?=0
13+
DEBUG_UART?=1
14+
VTOR?=1
15+
CORTEX_M0?=0
16+
CORTEX_M33?=1
17+
NO_ASM?=0
18+
NO_MPU=1
19+
EXT_FLASH?=0
20+
SPI_FLASH?=0
21+
ALLOW_DOWNGRADE?=0
22+
NVM_FLASH_WRITEONCE?=1
23+
NO_ARM_ASM=1
24+
WOLFBOOT_VERSION?=0
25+
V?=0
26+
SPMATH?=1
27+
RAM_CODE?=1
28+
DUALBANK_SWAP?=0
29+
PKA?=1
30+
FLASH_MULTI_SECTOR_ERASE?=1
31+
32+
# 512-byte pages erasable/writeable
33+
WOLFBOOT_SECTOR_SIZE?=0x200
34+
35+
# Default configuration
36+
# 32KB boot, 48KB partitions, 512 swap
37+
WOLFBOOT_PARTITION_SIZE?=0xB000
38+
WOLFBOOT_PARTITION_BOOT_ADDRESS?=0xA000
39+
WOLFBOOT_PARTITION_UPDATE_ADDRESS?=0x15000
40+
WOLFBOOT_PARTITION_SWAP_ADDRESS?=0x20000

docs/Targets.md

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@ This README describes configuration of supported targets.
2121
* [NXP iMX-RT](#nxp-imx-rt)
2222
* [NXP Kinetis](#nxp-kinetis)
2323
* [NXP LPC54xxx](#nxp-lpc54xxx)
24+
* [NXP LPC55S69](#lpc55s69)
2425
* [NXP LS1028A](#nxp-ls1028a)
2526
* [NXP MCXA153](#nxp-mcxa153)
2627
* [NXP MCXW716](#nxp-mcxw716)
@@ -1948,7 +1949,7 @@ Example configurations for this target are provided in:
19481949

19491950
1. Download `aarch64-none-elf-` toolchain.
19501951

1951-
2. Copy the example `nxp-ls1028a.cofig` file to root directory and rename to `.config`
1952+
2. Copy the example `nxp-ls1028a.config` file to root directory and rename to `.config`
19521953

19531954
3. Build keytools and wolfboot
19541955

hal/lpc55s69-ns.ld

Lines changed: 55 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,55 @@
1+
MEMORY
2+
{
3+
FLASH (rx) : ORIGIN = 0x00000000, LENGTH = @WOLFBOOT_PARTITION_BOOT_ADDRESS@
4+
RAM (rwx) : ORIGIN = 0x20000000, LENGTH = 256K
5+
}
6+
7+
SECTIONS
8+
{
9+
.text :
10+
{
11+
_start_text = .;
12+
KEEP(*(.isr_vector))
13+
. = 0x200;
14+
*(.keystore*)
15+
*(.text*)
16+
*(.rodata*)
17+
*(.init*)
18+
*(.fini*)
19+
. = ALIGN(4);
20+
_end_text = .;
21+
} > FLASH
22+
23+
.edidx :
24+
{
25+
. = ALIGN(4);
26+
*(.ARM.exidx*)
27+
} > FLASH
28+
29+
_stored_data = .;
30+
31+
.data : AT (_stored_data)
32+
{
33+
_start_data = .;
34+
KEEP(*(.data*))
35+
. = ALIGN(4);
36+
KEEP(*(.ramcode))
37+
. = ALIGN(4);
38+
_end_data = .;
39+
} > RAM
40+
41+
.bss (NOLOAD) :
42+
{
43+
_start_bss = .;
44+
__bss_start__ = .;
45+
*(.bss*)
46+
*(COMMON)
47+
. = ALIGN(4);
48+
_end_bss = .;
49+
__bss_end__ = .;
50+
_end = .;
51+
} > RAM
52+
. = ALIGN(4);
53+
}
54+
55+
END_STACK = ORIGIN(RAM) + LENGTH(RAM);

0 commit comments

Comments
 (0)