b128ce334f
OpenSBI may be compiled as an external library. OpenSBI commit d249d65 (Dec. 11, 2021) needs to be reverted as it causes memcpy / memcmp to end up in the wrong section. That issue has yet no known workaround. OpenSBI may be lauched from the hart0 (e51). It will start the U-Boot and eventually the Linux kernel on harts 1-4. OpenSBI, once initialized properly, will trap and handle illegal instructions (for example, CSR time) and unaligned address accesses among other things. Due to size size limitations for the mpfs eNVM area where the NuttX is located, we actually set up the OpenSBI on its own section which is in the bottom of the DDR memory. Special care must be taken so that the kernel doesn't override the OpenSBI. For example, the Linux device tree may reserve some space from the beginning: opensbi_reserved: opensbi@80000000 { reg = <0x80000000 0x200000>; label = "opensbi-reserved"; }; The resulting nuttx.bin file is very large, but objcopy is used to create the final binary images for the regions (eNVM and DDR) using the nuttx elf file. Co-authored-by: Petro Karashchenko <petro.karashchenko@gmail.com> Signed-off-by: Eero Nurkkala <eero.nurkkala@offcode.fi> |
||
---|---|---|
.. | ||
configs | ||
include | ||
scripts | ||
src | ||
Kconfig |