The following steps should be followed to enable a board for Stage I.
Copy the EDK II packages locally to the workspace.
Select an appropriate silicon initialization solution such as Intel® FSP.
Review the requirements for the silicon initialization solution.
Gather the silicon initialization requirements for the given board.
Customize the silicon initialization solution to configure the system to the board-specific requirements.
For Intel® FSP, this includes setting minimal policy configuration.
For other silicon solutions, similar parameter customization may be needed if the silicon solution is not written for a particular system design.
Determine other firmware and software components required for the system to function properly.
For an Intel platform, this may include firmware images such as the appropriate microcode patch, EC firmware image, power management controller firmware, and others.
Additional third-party add-in components such as specific UEFI drivers may also be required.
Determine board-specific information required to fetch code and show debug output.
This includes details such as the NVRAM layout and strap information.
Copy a reference GenerationOpenBoardPkg/BoardXXX and update the board interfaces in Required Functions.
Add serial port initialization code in
PlatformHookSerialPortInitialize () at BoardPkg/Library/BasePlatformHookLib.
This is SIO related code.
Add Board detection code in
If the project only supports one board, this function can return directly.
Add Board pre-memory debug initialization code in
BoardDebugInit (), BoardPkg/BoardInitLib/PeiBoardXXXInitPreMemoryLib.c.
This is for debug channel related initialization.
Audit BoardPkg/Stage1.dsc, ensure all PCDs in the Configuration section are correct for your board.
gMinPlatformPkgTokenSpaceGuid.PcdBootStage = 1
Follow "Debug Lib Selection" to enable serial debug capability.
Audit all other PCD settings in the board DSC file to verify the values are correct for your board.
Verify the flash layout is compliant with this specification.
Verify the required binaries will be included in the image produced in the build.
Verify the code execution path for Stage I will only perform the actions required to achieve debug output.
Boot the system, collect the debug log, and verify the test point results defined in the Test Point section are correct.