aboutsummaryrefslogtreecommitdiff
path: root/docs/platform_guide.md
blob: 51e5b25f4057a64c59917e3d46af209c22a9b7c6 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
OpenSBI Platform Support Guideline
==================================

The OpenSBI platform support is a set of platform specific hooks provided
in the form of a *struct sbi_platform* instance. It is required by:

1. *libplatsbi.a* - A platform specific OpenSBI static library, that is,
   libsbi.a plus a *struct sbi_platform* instance installed at
   *<install_directory>/platform/<platform_subdir>/lib/libplatsbi.a*
2. *firmwares* - Platform specific bootable firmware binaries installed at
   *<install_directory>/platform/<platform_subdir>/bin*

A complete doxygen-style documentation of *struct sbi_platform* and related
APIs is available in sbi/sbi_platform.h.

Adding a new platform support
-----------------------------

The support of a new platform named *<xyz>* can be added as follows:

1. Create a directory named *<xyz>* under *platform/* directory
2. Create a platform configuration file named *config.mk* under
   *platform/<xyz>/* directory. This configuration file will provide
   compiler flags, select common drivers, and select firmware options
3. Create *platform/<xyz>/objects.mk* file for listing the platform
   specific object files to be compiled
4. Create *platform/<xyz>/platform.c* file providing a *struct sbi_platform*
   instance

A template platform support code is available under the *platform/template*.
Copying this directory as new directory named *<xyz>* under *platform/*
directory will create all the files mentioned above.