Browse Source

lib: notes on two-stage bootloader

luojia65 2 years ago
parent
commit
4f6eb139bd
1 changed files with 9 additions and 1 deletions
  1. 9 1
      src/lib.rs

+ 9 - 1
src/lib.rs

@@ -116,7 +116,7 @@
 //!
 //! # Implement RustSBI on machine environment
 //!
-//! Board, SoC vendors, machine environment emulators and research projects may need RustSBI
+//! Boards, SoC vendors, machine environment emulators and research projects may need RustSBI
 //! adapted to specific environments.
 //! RustSBI project supports these demands either by discrete package or the Prototyping System.
 //! Developers may choose the Prototyping System for fast developing time,
@@ -335,6 +335,14 @@
 //! Now RustSBI would run on machine environment, you may start a kernel or use SBI test suite
 //! to check if it is properly implemented.
 //!
+//! Some platforms would provide system memory under different grades in speed and size to reduce product cost.
+//! Those platforms would typically provide two parts of code memory, first one being relatively not fast
+//! but instantly available after chip start, while the second one typically requires memory training
+//! and is larger in size. The former one would include built-in SRAM memory, and the later would include
+//! external SRAM or DDR memory. On those platforms, a first stage bootloader is typically needed to
+//! train memory for later stage. In such situation, RustSBI implementation should be linked or concated
+//! to the second stage bootloader, and the first stage could be a standalone binary package bundled with the it.
+//!
 //! ## Discrete RustSBI package by singleton based interface
 //!
 //! *Note: Using singleton based RustSBI interface is discouraged in newer designs, for it requires