|
@@ -0,0 +1,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.
|