Skip to content

openSIL/openSIL

 
 

Repository files navigation

AMD openSIL: Proof-of-Concept (POC)

About the project:

The AMD open Silicon Initialization Library (openSIL) is a collection of C libraries which can be integrated into an x86 host firmware, by directly compiling source or by linking with static libraries.

AMD openSIL consists of three statically linked libraries; xSIM (x86 Silicon Initialization Libraries), xPRF (x86 Platform Reference Library), and xUSL (x86 Utilities & Services Library). These libraries can be statically linked to a host firmware during compile/link time.

Source for the libraries resides under xSIM, xPRF, and xUSL.

Formal documentation is in final review and will be uploaded to the GitHub project page when available.
The AMD blog "Empowering The Industry with Open System Firmware - AMD openSIL" provides a starting point to grasp the openSIL design goals.

AMD openSIL open-source projected roadmap:

Evaluation Only Phases (no support for production implementations):

  1. Phase I - Internal POCs (Complete).
  2. Phase II - AMD openSIL POC open-sourced for evaluation on AMD 4th Gen EPYC™ based CRB. (Complete)
  3. Phase III - AMD openSIL POC open-sourced, for evaluation on AMD 5th Gen EPYC™ based CRB. (Complete)

Production Phase:

  1. Phase IV: - AMD openSIL POR with UEFI Host FW trending 2026.

Getting Started:

  1. Clone Repository:

    1. Establish your GitHub user account and your SSH keys (details are beyond this doc)
    2. Open a command/terminal window
    3. Run git to obtain the project: > git clone git@github.com:openSIL/openSIL.git

  2. Establish the project environment variables.

    • You will find a shell/cmd file (SetSilEnv) in the 'util' directory for this purpose.

  3. Configure your project

    • This release of the AMD openSIL libraries supports 5th Generation EPYC™ Processors (codenamed Turin); on the Galena and Purico CRBs only

    • The openSIL project uses the python version of the Kconfig tool for this purpose. (See GitHub Kconfiglib).

    • Run the interactive configuration UI: > python %PYTHONPATH%\menuconfig.py Kconfig

  4. Configure toolchains

    • The project supports both the GNU/GCC toolchain and the Microsoft Visual C toolchain. Generally it is recommended to use the latest versions of these toolchains.
      Specific versions being used today (September 2024) are:
    • GCC - 13.2.0
    • MSVC v19.40.33812 (Visual Studio 2022)
    • NASM 2.15.05 (Must be at least 2.15.05)
    • MESON 1.5.1 (Must be at least 1.1.0)
  5. Build openSIL Libraries:

    • openSIL library build is performed using 'Meson build', an open source python tool (see GitHub). Several targets allow a focused build for xUSL, xSIM, xPRF or openSIL(xUSL + xSIM + XPRF) static libraries. See the Meson_Build_Notes file under the Documentation folder.
    • The project can be built for 32bit and/or 64bit compilation and static libraries.
  6. Integrate with Host Firmware:

    • AMD has a separate repository ("opensil-uefi-interface" ) for helping customers integrate openSIL with previous UEFI-AGESA installations. Please contact your AMD representative.
    • AMD is also adding openSIL support into the coreboot.org repositories.
  7. Test Host Firmware on reference platform

    • All AMD openSIL testing has been performed on AMD reference platforms (Galena and Purico CRBs).
    • Present list of supported reference platforms is shown in the following table.
Market
Segment
AMD Processor
Family Model
Firmware Reference
Platform Name
Server F1AM00 UEFI Galena
Server F1AM00 UEFI Purico

Forthcoming items:

  • Formal documentation to be published to this repository.
  • Continuous integration (CI) tools will be implemented as a pre-requisite to merging pull requests.

License:

The MIT License (MIT): https://opensource.org/license/mit/

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published