Skip to content

Commit 027c684

Browse files
authored
Merge pull request #443 from wolfSSL/x86_fsp_backport
x86 fsp backport
2 parents 0aa5ce0 + 5dd9fa9 commit 027c684

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

71 files changed

+3048
-670
lines changed
Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
name: X86 FSP QEMU test
2+
3+
on:
4+
pull_request:
5+
branches: [ '*' ]
6+
jobs:
7+
fsp_qemu_test:
8+
runs-on: ubuntu-latest
9+
steps:
10+
- uses: actions/checkout@v2
11+
with:
12+
submodules: true
13+
- name: install req
14+
run: |
15+
sudo apt-get update
16+
sudo apt-get install --no-install-recommends -y -q nasm gcc-multilib qemu-system-x86 swtpm
17+
- name: setup git
18+
run: |
19+
git config --global user.email "[email protected]"
20+
git config --global user.name "Your Name"
21+
- name: run test
22+
run: |
23+
./tools/scripts/x86_fsp/qemu/test_qemu.sh

.gitignore

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -132,6 +132,8 @@ CMakeCache.txt
132132

133133
# Stage 1
134134
stage1/loader_stage1.ld
135+
hal/x86_fsp_tgl_stage1.ld
136+
hal/x86_fsp_qemu_stage1.ld
135137

136138
debug/lauterbach
137139

@@ -177,3 +179,12 @@ IDE/Renesas/e2studio/RZN2L/wolfboot/.secure_azone
177179
IDE/Renesas/e2studio/RZN2L/wolfboot/.secure_xml
178180
IDE/Renesas/e2studio/RZN2L/wolfboot/configuration.xml
179181

182+
183+
tpm_seal_key.key
184+
185+
# FSP downloaded headers
186+
include/x86/fsp/FspUpd.h
187+
include/x86/fsp/FspmUpd.h
188+
include/x86/fsp/FspsUpd.h
189+
include/x86/fsp/FsptUpd.h
190+
include/x86/fsp/MemInfoHob.h

arch.mk

Lines changed: 10 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -671,6 +671,7 @@ endif
671671
ifeq ($(filter $(TARGET),x86_fsp_qemu kontron_vx3060_s2),$(TARGET))
672672
FSP=1
673673
CFLAGS+=-DWOLFBOOT_FSP=1
674+
CFLAGS+=-ffunction-sections -fdata-sections
674675
ifeq ($(TARGET), kontron_vx3060_s2)
675676
FSP_TGL=1
676677
CFLAGS+=-DWOLFBOOT_TGL=1
@@ -697,11 +698,11 @@ ifeq ("${FSP}", "1")
697698
LSCRIPT_IN = ../hal/$(TARGET)_stage1.ld
698699
endif
699700
# using ../wolfboot.map as stage1 is built from stage1 sub-directory
700-
LDFLAGS = --defsym main=`grep main ../wolfboot.map | awk '{print $$1}'` \
701-
--defsym wb_start_bss=`grep _start_bss ../wolfboot.map | awk '{print $$1}'` \
702-
--defsym wb_end_bss=`grep _end_bss ../wolfboot.map | awk '{print $$1}'` \
703-
--defsym _stage2_params=`grep _stage2_params ../wolfboot.map | awk '{print $$1}'`
704-
LDFLAGS += --no-gc-sections --print-gc-sections -T $(LSCRIPT) -m elf_i386 -Map=loader_stage1.map
701+
LDFLAGS = --defsym main=0x`nm ../wolfboot.elf | grep -w main | awk '{print $$1}'` \
702+
--defsym wb_start_bss=0x`nm ../wolfboot.elf | grep -w _start_bss | awk '{print $$1}'` \
703+
--defsym wb_end_bss=0x`nm ../wolfboot.elf | grep -w _end_bss | awk '{print $$1}'` \
704+
--defsym _stage2_params=0x`nm ../wolfboot.elf | grep -w _stage2_params | awk '{print $$1}'`
705+
LDFLAGS += --gc-sections --entry=reset_vector -T $(LSCRIPT) -m elf_i386 -Map=loader_stage1.map
705706
OBJS += src/boot_x86_fsp.o
706707
OBJS += src/boot_x86_fsp_start.o
707708
OBJS += src/fsp_m.o
@@ -713,6 +714,7 @@ ifeq ("${FSP}", "1")
713714
OBJS += src/pci.o
714715
OBJS += hal/x86_uart.o
715716
OBJS += src/string.o
717+
OBJS += src/stage2_params.o
716718
ifeq ($(filter-out $(STAGE1_AUTH),1),)
717719
OBJS += src/libwolfboot.o
718720
OBJS += src/image.o
@@ -729,7 +731,6 @@ ifeq ("${FSP}", "1")
729731
CFLAGS += -fno-stack-protector -m32 -fno-PIC -fno-pie -mno-mmx -mno-sse -DDEBUG_UART
730732
ifeq ($(FSP_TGL), 1)
731733
OBJS+=src/x86/tgl_fsp.o
732-
OBJS+=src/fsp_tgl_s_upd.o
733734
OBJS+=src/ucode0.o
734735
CFLAGS += -DUCODE0_ADDRESS=$(UCODE0_BASE)
735736
endif
@@ -743,7 +744,7 @@ ifeq ("${FSP}", "1")
743744
else
744745
LSCRIPT_IN = hal/$(TARGET).ld.in
745746
endif
746-
LDFLAGS = --no-gc-sections --print-gc-sections -T $(LSCRIPT) -Map=wolfboot.map
747+
LDFLAGS = --gc-sections --entry=main -T $(LSCRIPT) -Map=wolfboot.map
747748
CFLAGS += -fno-stack-protector -fno-PIC -fno-pie -mno-mmx -mno-sse -Os -DDEBUG_UART
748749
OBJS += hal/x86_fsp_tgl.o
749750
OBJS += hal/x86_uart.o
@@ -755,6 +756,8 @@ ifeq ("${FSP}", "1")
755756
OBJS += src/x86/ata.o
756757
OBJS += src/x86/gpt.o
757758
OBJS += src/x86/mptable.o
759+
OBJS += src/stage2_params.o
760+
OBJS += src/x86/exceptions.o
758761
UPDATE_OBJS := src/update_disk.o
759762
ifeq ($(64BIT),1)
760763
LDFLAGS += -m elf_x86_64 --oformat elf64-x86-64

config/examples/kontron_vx3060_s2.config

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
ARCH=x86_64
22
TARGET=kontron_vx3060_s2
33
WOLFBOOT_SMALL_STACK=0
4-
SIGN=ECC256
4+
SIGN=ECC384
55
HASH=SHA256
66
DEBUG=1
77
SPMATH=1
@@ -14,17 +14,15 @@ WOLFBOOT_PARTITION_BOOT_ADDRESS=0xff400000
1414
WOLFBOOT_PARTITION_SWAP_ADDRESS=0x0
1515
WOLFBOOT_PARTITION_UPDATE_ADDRESS=0x0
1616

17-
# 128mb
18-
WOLFBOOT_LOAD_BASE=0x8000000
19-
WOLFBOOT_LOAD_ADDRESS=0x1000000
17+
# 1408mb + 0x200 (For the header)
18+
WOLFBOOT_LOAD_BASE=0x58000200
2019

2120
# required for keytools
2221
WOLFBOOT_SECTOR_SIZE?=0x1000
2322
WOLFBOOT_DATA_ADDRESS=0x1000000
2423

2524

2625
FSP_S_BASE=0xffea0000
27-
FSP_S_UPD_DATA_BASE=0xffd00000
2826
FSP_T_BASE=0xfff59000
2927
FSP_M_BASE=0xfff60000
3028

@@ -59,8 +57,10 @@ MULTIBOOT2=1
5957

6058
FSP_S_LOAD_BASE=0x0FED5F00
6159
STAGE1_AUTH=1
62-
# MEASURED_BOOT=1
63-
# MEASURED_PCR_A=0
64-
# DISK_LOCK=1
65-
# WOLFTPM=1
66-
# WOLFBOOT_TPM_SEAL=1
60+
MEASURED_BOOT=1
61+
MEASURED_PCR_A=0
62+
DISK_LOCK=0
63+
WOLFTPM=1
64+
WOLFBOOT_TPM_SEAL=1
65+
WOLFBOOT_TPM_SEAL_KEY_ID=1
66+
WOLFBOOT_UNIVERSAL_KEYSTORE=1

config/examples/x86_fsp_qemu.config

Lines changed: 7 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
ARCH=x86_64
22
TARGET=x86_fsp_qemu
33
WOLFBOOT_SMALL_STACK=1
4-
SIGN?=ECC384
5-
HASH?=SHA384
4+
SIGN=ECC256
5+
HASH=SHA256
66
DEBUG=1
77
SPMATH=1
88
FORCE_32BIT=1
@@ -16,9 +16,6 @@ WOLFTPM=0
1616
#WOLFBOOT_TPM_POLICY_NV_INDEX?=0x01800201
1717

1818
# 4gb - 8mb
19-
WOLFBOOT_PARTITION_BOOT_ADDRESS=0xff800000
20-
WOLFBOOT_PARTITION_SWAP_ADDRESS=0x0
21-
WOLFBOOT_PARTITION_UPDATE_ADDRESS=0x0
2219
WOLFBOOT_LOAD_BASE=0x2000000
2320
WOLFBOOT_LOAD_ADDRESS=0x1000000
2421

@@ -30,13 +27,15 @@ FSP_M_BASE=0xffe30000
3027
FSP_S_BASE=0xffed6000
3128
FSP_T_BASE=0xfffe0000
3229
FSP_S_LOAD_BASE=0x0FED5F00
33-
WOLFBOOT_ORIGIN=0xfffa0000
34-
LINUX_PAYLOAD=1
30+
WOLFBOOT_ORIGIN=0xfff80000
3531

36-
BOOTLOADER_PARTITION_SIZE=0xa0000
32+
BOOTLOADER_PARTITION_SIZE=0xe0000
3733
BIOS_REGION_SIZE=0x800000
3834
MACHINE_OBJ=src/x86/qemu_fsp.o
3935
FSP_T_BIN=./src/x86/fsp_t.bin
4036
FSP_M_BIN=./src/x86/fsp_m.bin
4137
FSP_S_BIN=./src/x86/fsp_s.bin
4238
STAGE1_AUTH=1
39+
64BIT=1
40+
ELF=1
41+
MULTIBOOT2=1
Original file line numberDiff line numberDiff line change
@@ -1,30 +1,21 @@
11
ARCH=x86_64
22
TARGET=x86_fsp_qemu
33
WOLFBOOT_SMALL_STACK=0
4-
SIGN?=ECC256
5-
HASH?=SHA256
4+
SIGN=ECC384
5+
HASH=SHA256
66
DEBUG=1
77
SPMATH=1
88
FORCE_32BIT=1
99
ENCRYPTION=0
1010
WOLFBOOT_NO_PARTITIONS=1
11-
WOLFTPM=1
1211

13-
# Measured boot
14-
MEASURED_BOOT=1
15-
MEASURED_PCR_A=0
16-
WOLFBOOT_TPM_SEAL=1
17-
DISK_LOCK=1
1812

1913
# TPM Keystore options
2014
#WOLFBOOT_TPM_KEYSTORE?=1
2115
#WOLFBOOT_TPM_KEYSTORE_NV_BASE?=0x01800200
2216
#WOLFBOOT_TPM_POLICY_NV_INDEX?=0x01800201
2317

2418
# 4gb - 8mb
25-
WOLFBOOT_PARTITION_BOOT_ADDRESS=0xff800000
26-
WOLFBOOT_PARTITION_SWAP_ADDRESS=0x0
27-
WOLFBOOT_PARTITION_UPDATE_ADDRESS=0x0
2819
WOLFBOOT_LOAD_BASE=0x2000000
2920
WOLFBOOT_LOAD_ADDRESS=0x1000000
3021

@@ -36,13 +27,22 @@ FSP_M_BASE=0xffe30000
3627
FSP_S_BASE=0xffed6000
3728
FSP_T_BASE=0xfffe0000
3829
FSP_S_LOAD_BASE=0x0FED5F00
39-
WOLFBOOT_ORIGIN=0xfff90000
40-
LINUX_PAYLOAD=1
30+
WOLFBOOT_ORIGIN=0xfff80000
4131

42-
BOOTLOADER_PARTITION_SIZE=0xb0000
32+
BOOTLOADER_PARTITION_SIZE=0xe0000
4333
BIOS_REGION_SIZE=0x800000
4434
MACHINE_OBJ=src/x86/qemu_fsp.o
4535
FSP_T_BIN=./src/x86/fsp_t.bin
4636
FSP_M_BIN=./src/x86/fsp_m.bin
4737
FSP_S_BIN=./src/x86/fsp_s.bin
38+
4839
STAGE1_AUTH=1
40+
64BIT=1
41+
ELF=1
42+
MULTIBOOT2=1
43+
MEASURED_BOOT=1
44+
MEASURED_PCR_A=0
45+
WOLFBOOT_TPM_SEAL=1
46+
WOLFBOOT_TPM_SEAL_KEY_ID=1
47+
DISK_LOCK=1
48+
WOLFBOOT_UNIVERSAL_KEYSTORE=1

config/examples/x86_fsp_qemu_stage1_auth.config

Lines changed: 0 additions & 42 deletions
This file was deleted.

config/examples/x86_fsp_qemu_tpm_keystore.config

Lines changed: 0 additions & 40 deletions
This file was deleted.

0 commit comments

Comments
 (0)