From 90fd18da87f58feb0fc389a65caa95f308b4817a Mon Sep 17 00:00:00 2001 From: Nathaniel Graff Date: Fri, 1 Feb 2019 10:23:47 -0800 Subject: Copy the contents of the README into the User Guide Signed-off-by: Nathaniel Graff --- doc/sphinx/contents.rst | 109 ++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 109 insertions(+) create mode 100644 doc/sphinx/contents.rst (limited to 'doc/sphinx/contents.rst') diff --git a/doc/sphinx/contents.rst b/doc/sphinx/contents.rst new file mode 100644 index 0000000..b207a56 --- /dev/null +++ b/doc/sphinx/contents.rst @@ -0,0 +1,109 @@ +Contents of the SDK +=================== + +Supported Targets +----------------- + +Freedom E SDK comes packaged with the following board support packages under the +``bsp/`` directory. + +- `SiFive HiFive 1 `_ + + - sifive-hifive1 + +- `SiFive Freedom E310 Arty `_ + + - freedom-e310-arty + +- SiFive CoreIP + + - coreip-e31 + - coreip-s51 + +- SiFive CoreIP Arty FPGA Evaluation targets + + - coreip-e31-arty + - coreip-s51-arty + +The board support files for the Freedom Metal library are located entirely +within a single target directory in ``bsp//``. For example, the HiFive 1 +board support files for Freedom Metal are entirely within ``bsp/sifive-hifive1/`` +and consist of the following: + +* ``design.dts`` + + - The DeviceTree description of the target. This file is used to parameterize + the Freedom Metal library to the target device. It is included as reference + so that users of Freedom Metal are aware of what features and peripherals + are available on the target. + +* ``mee.h`` + + - The Freedom Metal machine header which is used internally to Freedom Metal + to instantiate structures to support the target device. + +* ``mee.lds`` + + - The linker script for the target device. + +* ``openocd.cfg`` (for development board and FPGA targets) + + - Used to configure OpenOCD for flashing and debugging the target device. + +* ``settings.mk`` + + - Used to set ``-march`` and ``-mabi`` arguments to the RISC-V GNU Toolchain. + +Freedom Metal +------------- + +`Freedom Metal `_ +(`Documentation `_) +is a library developed by SiFive for writing portable software for all of SiFive's +RISC-V IP, RISC-V FPGA evaluation images, and development boards. Programs written +against the Freedom Metal API are intended to build and run for all SiFive RISC-V +targets. This makes Freedom Metal suitable for writing portable tests, bare metal +application programming, and as a hardware abstraction layer for porting +operating systems to RISC-V. + +Freedom E SDK is a consumer of the Freedom Metal library. Freedom Metal allows the +SDK examples to be portable to all supported SiFive targets. + +Example Programs +---------------- + +The example programs can be found under the ``software/`` directory. + +- hello + + - Prints "Hello, World!" to stdout, if a serial device is present on the target. + +- return-pass + + - Returns status code 0 indicating program success. + +- return-fail + + - Returns status code 1 indicating program failure. + +- example-itim + + - Demonstrates how to statically link application code into the Instruction + Tightly Integrated Memory (ITIM) if an ITIM is present on the target. + +- software-interrupt + + - Demonstrates how to register a handler for and trigger a software interrupt + +- timer-interrupt + + - Demonstrates how to register a handler for and trigger a timer interrupt + +- local-interrupt + + - Demonstrates how to register a handler for and trigger a local interrupt + +- example-pmp + + - Demonstrates how to configure a Physical Memory Protection (PMP) region + -- cgit v1.2.1-18-gbd029