{"id":25950132,"url":"https://github.com/rustsbi/standalone","last_synced_at":"2025-06-17T16:32:54.783Z","repository":{"id":109621986,"uuid":"465995765","full_name":"rustsbi/standalone","owner":"rustsbi","description":"Rapid prototyping and selection package for pure-Rust RISC-V firmware, with RustSBI + UEFI or RustSBI + LinuxBoot","archived":false,"fork":false,"pushed_at":"2024-10-18T10:05:11.000Z","size":171,"stargazers_count":27,"open_issues_count":0,"forks_count":5,"subscribers_count":4,"default_branch":"main","last_synced_at":"2025-04-07T03:51:27.592Z","etag":null,"topics":["risc-v","rustsbi","sbi"],"latest_commit_sha":null,"homepage":"","language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/rustsbi.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2022-03-04T05:34:56.000Z","updated_at":"2025-02-16T18:43:56.000Z","dependencies_parsed_at":null,"dependency_job_id":"a71d7df8-de6a-44ed-aa5b-b6b80cd8eab8","html_url":"https://github.com/rustsbi/standalone","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/rustsbi/standalone","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rustsbi%2Fstandalone","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rustsbi%2Fstandalone/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rustsbi%2Fstandalone/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rustsbi%2Fstandalone/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/rustsbi","download_url":"https://codeload.github.com/rustsbi/standalone/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rustsbi%2Fstandalone/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":260398639,"owners_count":23003010,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["risc-v","rustsbi","sbi"],"created_at":"2025-03-04T12:52:55.214Z","updated_at":"2025-06-17T16:32:49.769Z","avatar_url":"https://github.com/rustsbi.png","language":"Rust","funding_links":[],"categories":[],"sub_categories":[],"readme":"# rustsbi/standalone\n\nRustSBI Standalone is the main module of the RustSBI Prototyping System.\nIt targets to provide product grade SBI binary packages\nto allow SoC development fast and effective.\nOther than an environment with fine grained control to features, this project\naims to get your product working in an afternoon.\n\n## Download binary\n\nYou will find download link here: TODO. You may either download the Universal\nPackage, or find your mother board to download a dedicated one.\n\nTo download your package into target motherboard, you may find help here: TODO.\nIt includes detailed description of how to run and debug SBI binary on those\nmotherboards.\n\nIf you are considering to link this project with following bootloading steps,\nyou may need to build this project. See next section to find out how to achieve this.\n\n## Build this project\n\nThis project use the Rust programming language and Cargo package manager.\nIf you are new to Rust, you should prepare a Rust environment first before working on.\n\n### Install Rust and Cargo\n\nTo build Rust projects you need to have Rust compiler installed.\nInstall them using Rustup [here](https://rustup.rs),\nor install Rustc and Cargo package using tools provided by your system distribution.\n\nTo check if you have Rust installed and configured, use:\n\n```shell\nrustc -V \u0026\u0026 cargo -V\n```\n\nClone this repository before further steps:\n\n```shell\ngit clone git@github.com:rustsbi/standalone.git\ncd standalone\n```\n\n### Build Universal support package \n\nUse following command:\n\n```shell\ncargo make\n```\n\nIn this command you are not targeting any mainboards, so a universal binary\nis built. After completed, you will find your SBI binary in `target` directory.\n\n### Build package for dedicated board\n\nUse this command:\n\n```shell\ncargo make --board \u003cBOARD\u003e [--jump \u003cADDRESS\u003e]\n```\n\nYou need to provide board name only, vendor name is not used here.\nYou will find your SBI binary in `target` directory.\n\nThe SBI binary will jump to certain address after initialized. Board code would\nprovide default jump address, or you may use `--jump` to override it using\nhex or decimal address.\n\n### Link external packages and build\n\nUse this command:\n\n```shell\ncargo make [--board \u003cBOARD\u003e] --next \u003cPACKAGE\u003e\n```\n\nYou may provide path to package as static linked library, like `.o` on Unix.\nBuild your custom library first, and this command will link it to this project.\nIf the command does not provide `--board`, it will build a universal package.\nSince the following bootloading steps would be highly relevant to platforms,\nproviding `--board` will allow further optimizations and trims on RustSBI layer.\n\n## Project scope\n\nThis project will include extensions, features and open source drivers\ntargeted to SBI services. Although named 'Prototyping', this solution still\naims at production grade thus *does not only focus on prototypes*.\nThe name 'Prototyping' is to compared with discrete bootloaders or\nRustSBI implementation crates, which would be complete bootloading projects\nwho allow to get vendor specific modules and finer grained control of features.\n\nRustSBI Standalone can be used as bootloading environment or one bootloading\nstep of the complete environment.\nIn this case, the target of RustSBI Standalone is to provide binary distribution as:\n\n- Universal binary package. We fix in *common* drivers useful in SBI environment\n  to get it work on any platforms with those drivers. We limit build target to\n  RV32IM/RV64IM to ensure more RISC-V devices are capable to run this package;\n- Platform specific jump package. We include drivers for a specific platform\n  to allow loading following bootloading steps in a fixed address. This will\n  allow binary concatenation with following bootloading steps or kernels;\n- Package with externally linked steps. We use a library for following steps,\n  link it to RustSBI/standalone to provide a bootable package.\n\nTo build hypervisors, emulators or bootloading environment projects in Rust,\nyou may consult `rustsbi` crate other than this project. The `rustsbi` crate\nacts as a dependency to save time on SBI structures and constants if you are\nworking on such a project.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frustsbi%2Fstandalone","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Frustsbi%2Fstandalone","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frustsbi%2Fstandalone/lists"}