From 22bd932679cde7acec07561d5cee0e9684c5e18c Mon Sep 17 00:00:00 2001 From: Konstantin Aladyshev Date: Sun, 13 Jun 2021 14:45:51 +0300 Subject: Update Lesson 2 --- Lesson_2/README.md | 21 ++++++++++++++++----- Lesson_2/UefiLessonsPkg/UefiLessonsPkg.dsc | 8 +++----- 2 files changed, 19 insertions(+), 10 deletions(-) (limited to 'Lesson_2') diff --git a/Lesson_2/README.md b/Lesson_2/README.md index 1cd6cc7..c91e47e 100644 --- a/Lesson_2/README.md +++ b/Lesson_2/README.md @@ -19,18 +19,18 @@ Then we need to create platform description file (DSC) for our newly created pac ``` $ vi UefiLessonsPkg/UefiLessonsPkg.dsc [Defines] - PLATFORM_NAME = UefiLessonsPkg + DSC_SPECIFICATION = 0x0001001C PLATFORM_GUID = 3db7270f-ffac-4139-90a4-0ae68f3f8167 PLATFORM_VERSION = 0.01 - DSC_SPECIFICATION = 0x00010006 - OUTPUT_DIRECTORY = Build/UefiLessonsPkg + PLATFORM_NAME = UefiLessonsPkg + SKUID_IDENTIFIER = DEFAULT SUPPORTED_ARCHITECTURES = X64 BUILD_TARGETS = RELEASE - SKUID_IDENTIFIER = DEFAULT [Components] UefiLessonsPkg/SimplestApp/SimplestApp.inf ``` +All the fileds under `Defines` section are mondatory. Full specification for the Platform Description (DSC) File can be found under https://edk2-docs.gitbook.io/edk-ii-dsc-specification/ Let's try to build our SimplestApp module that is now in our own package: @@ -58,11 +58,22 @@ $ grep UefiApplicationEntryPoint -r ./ --include=*.inf | grep LIBRARY_CLASS ./MdePkg/Library/UefiApplicationEntryPoint/UefiApplicationEntryPoint.inf: LIBRARY_CLASS = UefiApplicationEntryPoint|UEFI_APPLICATION ``` -Therefore we need to add this strings to our *.dsc file: +Therefore we need to add these strings to our *.dsc file: ``` [LibraryClasses] UefiApplicationEntryPoint|MdePkg/Library/UefiApplicationEntryPoint/UefiApplicationEntryPoint.inf ``` +Format of the record is +``` +LibraryClassName|Path/To/LibInstanceName.inf +``` +LibraryClass can have several potential realizations (instances), therefore we need to write both `LibraryClassName` and `LibraryInstanceName`. + +In the end this adds this string to the Makefile: +``` +LIBS = $(LIBS) $(LIB_DIR)/$(LibInstanceName) +``` +You can read more about `LibraryClasses` section under https://edk2-docs.gitbook.io/edk-ii-dsc-specification/2_dsc_overview/26_-libraryclasses-_section_processing Let's try to rebuild: ``` diff --git a/Lesson_2/UefiLessonsPkg/UefiLessonsPkg.dsc b/Lesson_2/UefiLessonsPkg/UefiLessonsPkg.dsc index 8c79ffa..61378d6 100644 --- a/Lesson_2/UefiLessonsPkg/UefiLessonsPkg.dsc +++ b/Lesson_2/UefiLessonsPkg/UefiLessonsPkg.dsc @@ -1,13 +1,11 @@ [Defines] - PLATFORM_NAME = UefiLessonsPkg + DSC_SPECIFICATION = 0x0001001C PLATFORM_GUID = 3db7270f-ffac-4139-90a4-0ae68f3f8167 PLATFORM_VERSION = 0.01 - DSC_SPECIFICATION = 0x00010006 - OUTPUT_DIRECTORY = Build/UefiLessonsPkg + PLATFORM_NAME = UefiLessonsPkg + SKUID_IDENTIFIER = DEFAULT SUPPORTED_ARCHITECTURES = X64 BUILD_TARGETS = RELEASE - SKUID_IDENTIFIER = DEFAULT - [LibraryClasses] UefiApplicationEntryPoint|MdePkg/Library/UefiApplicationEntryPoint/UefiApplicationEntryPoint.inf -- cgit v1.2.3-18-g5258