Skip to content

Commit f50f92c

Browse files
jsun26intelwenlingz
authored andcommitted
Makefile: override .config with specified scenario
1. if SCENARIO=$(SCENARIO) is specified in make param, then override the default CONFIG_$(SCENARIO) value in existed .config. This means we don't need to modify the default SCENARIO config in Kconfig file to build the hypervisor; 2. Some board name shortcuts like apl-nuc/kbl-nuc-i7 need to be converted to official board name to make sure overrides working; 3. Previously make sbl-hypervisor did not load the defconfig so the defconfig for boards are lost, this patch fix this issue; 4. remove SCENARIO param when make hypervisor, because SCENARIO could be got from SCENARIO_NAME which parsed from .config; Tracked-On: #3593 Signed-off-by: Victor Sun <victor.sun@intel.com> Reviewed-by: Yin Fengwei <fengwei.yin@intel.com>
1 parent 42b864b commit f50f92c

File tree

3 files changed

+48
-19
lines changed

3 files changed

+48
-19
lines changed

Makefile

Lines changed: 43 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -34,43 +34,70 @@ ifneq ($(BOARD_FILE)$(SCENARIO_FILE),)
3434
BOARD := `sed -n '/board/p' $(BOARD_FILE) |head -1|awk -F'"' '{print $$2}'`
3535
SCENARIO := `sed -n '/scenario/p' $(SCENARIO_FILE) |head -1|awk -F'"' '{print $$4}'`
3636

37+
ifeq ($(BOARD), apl-nuc)
38+
override BOARD := nuc6cayh
39+
else ifeq ($(BOARD), kbl-nuc-i7)
40+
override BOARD := nuc7i7dnb
41+
endif
42+
3743
cfg_src:
3844
@if [ ! -f $(BOARD_FILE) ] ; then \
39-
echo "$(BOARD_FILE) is not exist!"; exit 1; \
45+
echo "Board xml file $(BOARD_FILE) is not exist!"; exit 1; \
4046
fi
4147
@if [ ! -f "$(SCENARIO_FILE)" ]; then \
42-
echo "$(SCENARIO_FILE) is not exist!"; exit 1; \
48+
echo "Scenario xml file $(SCENARIO_FILE) is not exist!"; exit 1; \
4349
fi
4450
@python3 misc/acrn-config/board_config/board_cfg_gen.py --board $(BOARD_FILE) --scenario $(SCENARIO_FILE) || exit $$?
4551
@python3 misc/acrn-config/scenario_config/scenario_cfg_gen.py --board $(BOARD_FILE) --scenario $(SCENARIO_FILE) || exit $$?
4652
@echo "Import hypervisor configurations from Config-xmls, configurations in source code are ignored!"
53+
4754
else
55+
56+
ifeq ($(BOARD), apl-nuc)
57+
override BOARD := nuc6cayh
58+
else ifeq ($(BOARD), kbl-nuc-i7)
59+
override BOARD := nuc7i7dnb
60+
endif
61+
4862
cfg_src:
4963
@echo "Use hypervisor configurations from source code directly."
5064

5165
endif
5266

5367
hypervisor: cfg_src
54-
$(MAKE) -C $(T)/hypervisor HV_OBJDIR=$(HV_OUT) BOARD=$(BOARD) FIRMWARE=$(FIRMWARE) SCENARIO=$(SCENARIO) RELEASE=$(RELEASE) clean
55-
$(MAKE) -C $(T)/hypervisor HV_OBJDIR=$(HV_OUT) BOARD=$(BOARD) FIRMWARE=$(FIRMWARE) SCENARIO=$(SCENARIO) RELEASE=$(RELEASE)
68+
$(MAKE) -C $(T)/hypervisor HV_OBJDIR=$(HV_OUT) BOARD=$(BOARD) FIRMWARE=$(FIRMWARE) RELEASE=$(RELEASE) clean
69+
$(MAKE) -C $(T)/hypervisor HV_OBJDIR=$(HV_OUT) BOARD=$(BOARD) FIRMWARE=$(FIRMWARE) RELEASE=$(RELEASE) defconfig
70+
@if [ "$(SCENARIO)" ]; then \
71+
echo "CONFIG_$(shell echo $(SCENARIO) | tr a-z A-Z)=y" >> $(HV_OUT)/.config; \
72+
fi
73+
@if [ -f "$(SCENARIO_FILE)" ]; then \
74+
echo "CONFIG_ENFORCE_VALIDATED_ACPI_INFO=y" >> $(HV_OUT)/.config; \
75+
fi
76+
$(MAKE) -C $(T)/hypervisor HV_OBJDIR=$(HV_OUT) BOARD=$(BOARD) FIRMWARE=$(FIRMWARE) RELEASE=$(RELEASE) oldconfig
77+
$(MAKE) -C $(T)/hypervisor HV_OBJDIR=$(HV_OUT) BOARD=$(BOARD) FIRMWARE=$(FIRMWARE) RELEASE=$(RELEASE)
5678
ifeq ($(FIRMWARE),uefi)
5779
echo "building hypervisor as EFI executable..."
5880
$(MAKE) -C $(T)/misc/efi-stub HV_OBJDIR=$(HV_OUT) SCENARIO=$(SCENARIO) EFI_OBJDIR=$(EFI_OUT)
5981
endif
6082

6183
sbl-hypervisor:
62-
@mkdir -p $(HV_OUT)-sbl/apl-mrb $(HV_OUT)-sbl/apl-up2
63-
$(MAKE) -C $(T)/hypervisor HV_OBJDIR=$(HV_OUT)-sbl/apl-mrb BOARD=apl-mrb FIRMWARE=sbl SCENARIO=sdc RELEASE=$(RELEASE) clean
64-
$(MAKE) -C $(T)/hypervisor HV_OBJDIR=$(HV_OUT)-sbl/apl-mrb BOARD=apl-mrb FIRMWARE=sbl SCENARIO=sdc RELEASE=$(RELEASE)
65-
$(MAKE) -C $(T)/hypervisor HV_OBJDIR=$(HV_OUT)-sbl/apl-up2 BOARD=apl-up2 FIRMWARE=sbl SCENARIO=sdc RELEASE=$(RELEASE) clean
66-
$(MAKE) -C $(T)/hypervisor HV_OBJDIR=$(HV_OUT)-sbl/apl-up2 BOARD=apl-up2 FIRMWARE=sbl SCENARIO=sdc RELEASE=$(RELEASE)
67-
68-
$(MAKE) -C $(T)/hypervisor HV_OBJDIR=$(HV_OUT)-isd BOARD=kbl-nuc-i7 FIRMWARE=uefi SCENARIO=industry RELEASE=$(RELEASE) clean
69-
@mkdir -p $(HV_OUT)-isd
70-
@echo "CONFIG_INDUSTRY=y" > $(HV_OUT)-isd/.config
71-
@echo 'CONFIG_BOARD="nuc7i7dnb"' >> $(HV_OUT)-isd/.config
72-
$(MAKE) -C $(T)/hypervisor HV_OBJDIR=$(HV_OUT)-isd BOARD=kbl-nuc-i7 FIRMWARE=uefi SCENARIO=industry RELEASE=$(RELEASE) oldconfig
73-
$(MAKE) -C $(T)/hypervisor HV_OBJDIR=$(HV_OUT)-isd BOARD=kbl-nuc-i7 FIRMWARE=uefi SCENARIO=industry RELEASE=$(RELEASE)
84+
$(MAKE) -C $(T)/hypervisor HV_OBJDIR=$(HV_OUT)-sbl/apl-mrb BOARD=apl-mrb FIRMWARE=sbl RELEASE=$(RELEASE) clean
85+
$(MAKE) -C $(T)/hypervisor HV_OBJDIR=$(HV_OUT)-sbl/apl-mrb BOARD=apl-mrb FIRMWARE=sbl RELEASE=$(RELEASE) defconfig
86+
@echo "CONFIG_SDC=y" >> $(HV_OUT)-sbl/.config
87+
$(MAKE) -C $(T)/hypervisor HV_OBJDIR=$(HV_OUT)-sbl/apl-mrb BOARD=apl-mrb FIRMWARE=sbl RELEASE=$(RELEASE) oldconfig
88+
$(MAKE) -C $(T)/hypervisor HV_OBJDIR=$(HV_OUT)-sbl/apl-mrb BOARD=apl-mrb FIRMWARE=sbl RELEASE=$(RELEASE)
89+
90+
$(MAKE) -C $(T)/hypervisor HV_OBJDIR=$(HV_OUT)-sbl/apl-up2 BOARD=apl-up2 FIRMWARE=sbl RELEASE=$(RELEASE) clean
91+
$(MAKE) -C $(T)/hypervisor HV_OBJDIR=$(HV_OUT)-sbl/apl-up2 BOARD=apl-up2 FIRMWARE=sbl RELEASE=$(RELEASE) defconfig
92+
@echo "CONFIG_SDC=y" >> $(HV_OUT)-sbl/.config
93+
$(MAKE) -C $(T)/hypervisor HV_OBJDIR=$(HV_OUT)-sbl/apl-up2 BOARD=apl-up2 FIRMWARE=sbl RELEASE=$(RELEASE) oldconfig
94+
$(MAKE) -C $(T)/hypervisor HV_OBJDIR=$(HV_OUT)-sbl/apl-up2 BOARD=apl-up2 FIRMWARE=sbl RELEASE=$(RELEASE)
95+
96+
$(MAKE) -C $(T)/hypervisor HV_OBJDIR=$(HV_OUT)-isd BOARD=kbl-nuc-i7 FIRMWARE=uefi RELEASE=$(RELEASE) clean
97+
$(MAKE) -C $(T)/hypervisor HV_OBJDIR=$(HV_OUT)-isd BOARD=kbl-nuc-i7 FIRMWARE=uefi RELEASE=$(RELEASE) defconfig
98+
@echo "CONFIG_INDUSTRY=y" >> $(HV_OUT)-isd/.config
99+
$(MAKE) -C $(T)/hypervisor HV_OBJDIR=$(HV_OUT)-isd BOARD=kbl-nuc-i7 FIRMWARE=uefi RELEASE=$(RELEASE) oldconfig
100+
$(MAKE) -C $(T)/hypervisor HV_OBJDIR=$(HV_OUT)-isd BOARD=kbl-nuc-i7 FIRMWARE=uefi RELEASE=$(RELEASE)
74101

75102
ifeq ($(FIRMWARE),uefi)
76103
echo "building hypervisor as EFI executable..."

hypervisor/Makefile

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -359,11 +359,11 @@ endif
359359
all: pre_build $(HV_OBJDIR)/$(HV_FILE).32.out $(HV_OBJDIR)/$(HV_FILE).bin
360360

361361
install: $(HV_OBJDIR)/$(HV_FILE).32.out
362-
install -D $(HV_OBJDIR)/$(HV_FILE).32.out $(DESTDIR)/usr/lib/acrn/$(HV_FILE).$(BOARD).$(FIRMWARE).$(SCENARIO).32.out
362+
install -D $(HV_OBJDIR)/$(HV_FILE).32.out $(DESTDIR)/usr/lib/acrn/$(HV_FILE).$(BOARD).$(FIRMWARE).$(SCENARIO_NAME).32.out
363363

364364
install-debug: $(HV_OBJDIR)/$(HV_FILE).map $(HV_OBJDIR)/$(HV_FILE).out
365-
install -D $(HV_OBJDIR)/$(HV_FILE).out $(DESTDIR)/usr/lib/acrn/$(HV_FILE).$(BOARD).$(FIRMWARE).$(SCENARIO).out
366-
install -D $(HV_OBJDIR)/$(HV_FILE).map $(DESTDIR)/usr/lib/acrn/$(HV_FILE).$(BOARD).$(FIRMWARE).$(SCENARIO).map
365+
install -D $(HV_OBJDIR)/$(HV_FILE).out $(DESTDIR)/usr/lib/acrn/$(HV_FILE).$(BOARD).$(FIRMWARE).$(SCENARIO_NAME).out
366+
install -D $(HV_OBJDIR)/$(HV_FILE).map $(DESTDIR)/usr/lib/acrn/$(HV_FILE).$(BOARD).$(FIRMWARE).$(SCENARIO_NAME).map
367367

368368
.PHONY: pre_build
369369
pre_build: $(PRE_BUILD_OBJS)

misc/efi-stub/Makefile

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,8 @@ C_SRCS = boot.c pe.c malloc.c
3636
ACRN_OBJS := $(patsubst %.c,$(EFI_OBJDIR)/%.o,$(C_SRCS))
3737
INCLUDE_PATH += $(HV_OBJDIR)/include
3838

39+
SCENARIO ?= sdc
40+
3941
OBJCOPY=objcopy
4042

4143
HOST = $(shell $(CC) -dumpmachine | sed "s/\(-\).*$$//")

0 commit comments

Comments
 (0)