mirror of https://github.com/wolfSSL/wolfBoot.git
Support for building libwolfboot.a. Library target used to just build a test-lib, but that's not very portable. Added test cases.
parent
b86d7fc308
commit
adc003351b
|
@ -11,7 +11,7 @@ jobs:
|
||||||
runs-on: ubuntu-24.04
|
runs-on: ubuntu-24.04
|
||||||
|
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v2
|
- uses: actions/checkout@v4
|
||||||
with:
|
with:
|
||||||
submodules: true
|
submodules: true
|
||||||
|
|
||||||
|
|
|
@ -7,7 +7,7 @@ jobs:
|
||||||
fsp_qemu_test:
|
fsp_qemu_test:
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v2
|
- uses: actions/checkout@v4
|
||||||
with:
|
with:
|
||||||
submodules: true
|
submodules: true
|
||||||
- name: install req
|
- name: install req
|
||||||
|
|
|
@ -106,6 +106,13 @@ jobs:
|
||||||
config-file: ./config/examples/kinetis-k82f.config
|
config-file: ./config/examples/kinetis-k82f.config
|
||||||
|
|
||||||
library_test:
|
library_test:
|
||||||
|
uses: ./.github/workflows/test-build.yml
|
||||||
|
with:
|
||||||
|
arch: host
|
||||||
|
config-file: ./config/examples/library.config
|
||||||
|
make-args: test-lib
|
||||||
|
|
||||||
|
libwolfboot_test:
|
||||||
uses: ./.github/workflows/test-build.yml
|
uses: ./.github/workflows/test-build.yml
|
||||||
with:
|
with:
|
||||||
arch: host
|
arch: host
|
||||||
|
|
|
@ -11,7 +11,7 @@ jobs:
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
|
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v2
|
- uses: actions/checkout@v4
|
||||||
with:
|
with:
|
||||||
submodules: false
|
submodules: false
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,38 @@
|
||||||
|
name: wolfBoot as Library test
|
||||||
|
|
||||||
|
on:
|
||||||
|
push:
|
||||||
|
branches: [ 'master', 'main', 'release/**' ]
|
||||||
|
pull_request:
|
||||||
|
branches: [ '*' ]
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
test-lib:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
|
||||||
|
steps:
|
||||||
|
- uses: actions/checkout@v4
|
||||||
|
with:
|
||||||
|
submodules: true
|
||||||
|
|
||||||
|
- name: make clean
|
||||||
|
run: |
|
||||||
|
make keysclean && make -C tools/keytools clean && rm -f include/target.h
|
||||||
|
|
||||||
|
- name: Build test-lib
|
||||||
|
run: |
|
||||||
|
cp config/examples/library.config .config
|
||||||
|
make keytools
|
||||||
|
./tools/keytools/keygen --ed25519 -g wolfboot_signing_private_key.der
|
||||||
|
echo "Test" > test.bin
|
||||||
|
./tools/keytools/sign --ed25519 --sha256 test.bin wolfboot_signing_private_key.der 1
|
||||||
|
make test-lib
|
||||||
|
|
||||||
|
- name: Run test-lib
|
||||||
|
run: |
|
||||||
|
./test-lib test_v1_signed.bin 2>&1 | grep "Firmware Valid"
|
||||||
|
|
||||||
|
- name: Run test-lib (expect failure)
|
||||||
|
run: |
|
||||||
|
echo "A" >> test_v1_signed.bin
|
||||||
|
./test-lib test_v1_signed.bin 2>&1 | grep "Failure"
|
|
@ -11,7 +11,7 @@ jobs:
|
||||||
runs-on: ubuntu-22.04
|
runs-on: ubuntu-22.04
|
||||||
|
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v2
|
- uses: actions/checkout@v4
|
||||||
with:
|
with:
|
||||||
submodules: true
|
submodules: true
|
||||||
|
|
||||||
|
|
|
@ -11,7 +11,7 @@ jobs:
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
|
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v2
|
- uses: actions/checkout@v4
|
||||||
with:
|
with:
|
||||||
submodules: true
|
submodules: true
|
||||||
|
|
||||||
|
|
|
@ -7,7 +7,7 @@ jobs:
|
||||||
fsp_qemu_test:
|
fsp_qemu_test:
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v2
|
- uses: actions/checkout@v4
|
||||||
with:
|
with:
|
||||||
submodules: true
|
submodules: true
|
||||||
- name: install req
|
- name: install req
|
||||||
|
|
8
Makefile
8
Makefile
|
@ -126,7 +126,7 @@ endif
|
||||||
|
|
||||||
ifeq ($(TARGET),library)
|
ifeq ($(TARGET),library)
|
||||||
CFLAGS+=-g
|
CFLAGS+=-g
|
||||||
MAIN_TARGET:=test-lib
|
MAIN_TARGET:=libwolfboot.a
|
||||||
endif
|
endif
|
||||||
|
|
||||||
ifeq ($(TARGET),raspi3)
|
ifeq ($(TARGET),raspi3)
|
||||||
|
@ -174,6 +174,9 @@ stage1/loader_stage1.bin: FORCE
|
||||||
test-lib: include/target.h $(OBJS)
|
test-lib: include/target.h $(OBJS)
|
||||||
$(Q)$(CC) $(CFLAGS) -o $@ $(OBJS)
|
$(Q)$(CC) $(CFLAGS) -o $@ $(OBJS)
|
||||||
|
|
||||||
|
libwolfboot.a: $(OBJS)
|
||||||
|
$(Q)$(AR) rcs $@ $(OBJS)
|
||||||
|
|
||||||
wolfboot.efi: wolfboot.elf
|
wolfboot.efi: wolfboot.elf
|
||||||
@echo "\t[BIN] $@"
|
@echo "\t[BIN] $@"
|
||||||
$(Q)$(OBJCOPY) -j .rodata -j .text -j .sdata -j .data \
|
$(Q)$(OBJCOPY) -j .rodata -j .text -j .sdata -j .data \
|
||||||
|
@ -193,7 +196,6 @@ wolfboot.bin: wolfboot.elf
|
||||||
$(Q)$(SIZE) wolfboot.elf
|
$(Q)$(SIZE) wolfboot.elf
|
||||||
@echo
|
@echo
|
||||||
|
|
||||||
|
|
||||||
test-app/image.bin: wolfboot.elf
|
test-app/image.bin: wolfboot.elf
|
||||||
$(Q)$(MAKE) -C test-app WOLFBOOT_ROOT="$(WOLFBOOT_ROOT)"
|
$(Q)$(MAKE) -C test-app WOLFBOOT_ROOT="$(WOLFBOOT_ROOT)"
|
||||||
$(Q)$(SIZE) test-app/image.elf
|
$(Q)$(SIZE) test-app/image.elf
|
||||||
|
@ -454,7 +456,7 @@ secondary: $(SECONDARY_PRIVATE_KEY)
|
||||||
|
|
||||||
src/x86/fsp_s.o: $(FSP_S_BIN)
|
src/x86/fsp_s.o: $(FSP_S_BIN)
|
||||||
$(OBJCOPY) -I binary -O elf64-x86-64 -B i386 --rename-section .data=.fsp_s $^ $@
|
$(OBJCOPY) -I binary -O elf64-x86-64 -B i386 --rename-section .data=.fsp_s $^ $@
|
||||||
|
|
||||||
pico-sdk-info: FORCE
|
pico-sdk-info: FORCE
|
||||||
@echo "To complete the build, check IDE/pico-sdk/rp2350"
|
@echo "To complete the build, check IDE/pico-sdk/rp2350"
|
||||||
|
|
||||||
|
|
3
arch.mk
3
arch.mk
|
@ -410,6 +410,7 @@ ifeq ($(ARCH),RENESAS_RX)
|
||||||
# Must use LD directly (gcc link calls LD with sysroot and is not supported)
|
# Must use LD directly (gcc link calls LD with sysroot and is not supported)
|
||||||
LD=$(CROSS_COMPILE)ld
|
LD=$(CROSS_COMPILE)ld
|
||||||
AS=$(CROSS_COMPILE)gcc
|
AS=$(CROSS_COMPILE)gcc
|
||||||
|
AR=$(CROSS_COMPILE)ar
|
||||||
OBJCOPY?=$(CROSS_COMPILE)objcopy
|
OBJCOPY?=$(CROSS_COMPILE)objcopy
|
||||||
SIZE=$(CROSS_COMPILE)size
|
SIZE=$(CROSS_COMPILE)size
|
||||||
|
|
||||||
|
@ -872,6 +873,7 @@ ifeq ($(TARGET),ti_hercules)
|
||||||
CC=$(CROSS_COMPILE)armcl
|
CC=$(CROSS_COMPILE)armcl
|
||||||
LD=$(CROSS_COMPILE)armcl
|
LD=$(CROSS_COMPILE)armcl
|
||||||
AS=$(CROSS_COMPILE)armasm
|
AS=$(CROSS_COMPILE)armasm
|
||||||
|
AR=$(CROSS_COMPILE)armcl -ar
|
||||||
OBJCOPY=$(CROSS_COMPILE)armobjcopy
|
OBJCOPY=$(CROSS_COMPILE)armobjcopy
|
||||||
SIZE=$(CROSS_COMPILE)armsize
|
SIZE=$(CROSS_COMPILE)armsize
|
||||||
OUTPUT_FLAG=--output_file
|
OUTPUT_FLAG=--output_file
|
||||||
|
@ -972,6 +974,7 @@ ifeq ($(USE_GCC),1)
|
||||||
CC=$(CROSS_COMPILE)gcc
|
CC=$(CROSS_COMPILE)gcc
|
||||||
LD=$(CROSS_COMPILE)gcc
|
LD=$(CROSS_COMPILE)gcc
|
||||||
AS=$(CROSS_COMPILE)gcc
|
AS=$(CROSS_COMPILE)gcc
|
||||||
|
AR=$(CROSS_COMPILE)ar
|
||||||
OBJCOPY?=$(CROSS_COMPILE)objcopy
|
OBJCOPY?=$(CROSS_COMPILE)objcopy
|
||||||
SIZE=$(CROSS_COMPILE)size
|
SIZE=$(CROSS_COMPILE)size
|
||||||
endif
|
endif
|
||||||
|
|
|
@ -81,13 +81,14 @@ void hal_led_on(void)
|
||||||
PORT_PODR(4) &= ~(1 << 0); /* low */
|
PORT_PODR(4) &= ~(1 << 0); /* low */
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
void hal_led_off(void)
|
void hal_led_off(void)
|
||||||
{
|
{
|
||||||
#ifdef TARGET_rx65n
|
#if defined(TARGET_rx65n)
|
||||||
/* RX65N RSK+ LED0 P73 */
|
/* RX65N RSK+ LED0 P73 */
|
||||||
PORT_PDR(7) |= (1 << 3); /* output */
|
PORT_PDR(7) |= (1 << 3); /* output */
|
||||||
PORT_PODR(7) |= (1 << 3); /* high */
|
PORT_PODR(7) |= (1 << 3); /* high */
|
||||||
#else
|
#elif defined(TARGET_rx72n)
|
||||||
/* RX72N Envision USR LED P40 */
|
/* RX72N Envision USR LED P40 */
|
||||||
PORT_PDR(4) |= (1 << 0); /* output */
|
PORT_PDR(4) |= (1 << 0); /* output */
|
||||||
PORT_PODR(4) |= (1 << 0); /* high */
|
PORT_PODR(4) |= (1 << 0); /* high */
|
||||||
|
@ -620,6 +621,7 @@ void RAMFUNCTION hal_flash_lock(void)
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#ifndef TARGET_library
|
||||||
void* hal_get_primary_address(void)
|
void* hal_get_primary_address(void)
|
||||||
{
|
{
|
||||||
return (void*)WOLFBOOT_PARTITION_BOOT_ADDRESS;
|
return (void*)WOLFBOOT_PARTITION_BOOT_ADDRESS;
|
||||||
|
@ -629,3 +631,4 @@ void* hal_get_update_address(void)
|
||||||
{
|
{
|
||||||
return (void*)WOLFBOOT_PARTITION_UPDATE_ADDRESS;
|
return (void*)WOLFBOOT_PARTITION_UPDATE_ADDRESS;
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
|
|
Loading…
Reference in New Issue