Code Monkey home page Code Monkey logo

siliconfastos's Introduction

SiliconFastOS: An Operating System for Silicon Validation

Introduction

SiliconFastOS is an operating system for OS-based silicon validation, which is small, fast, flexible in configuration, and has rich cmdlines. SiliconFastOS can improve your development efficiency in silicon validation, ensuring the delivery of high-quality silicon.

SiliconFastOS contains a small build system, you just need to add a small number of configurations, so you can build a specific silicon validation platform easily.

SiliconFastOS supports OpenAnolis kernel and Upstream kernel, and we use it as the silicon validation operating system in the development of ARMv9 server chip.

What is OS for silicon validation

Pre-silicon software validation is becoming the standard in the computing platform development lifecycle in the semiconductor industry. Enabling the software stack in pre-silicon has a huge impact on the quality of the software stack, reducing the number of hardware-software integration issues in post-silicon and improving the time-to-market for end-to-end compute platforms.

As hardware manufacturers are adding more new features, including new instruction sets, new memory technology, accelerators, I/O technology, hardware-based security features, hardware-based diagnostics, and telemetry technologies, to their CPUs or processors to meet the compute demand and improve efficiency. Operating systems for software and applications need to take advantage of these new hardware-enabled enhancements and enable them in the OS.

During pre-silicon validation, the developer needs to test for BIOS/UEFI, firmware, device drivers, operating system boot and diagnostics tools, sometimes even need to optimize the entire software stack for a specific middleware framework, workload, and application. All these processes need to run an operating system on virtual platforms (often FPGA-based hardware emulators).

There are more information in Why SiliconFastOS

Feature

Silicon validation framework and test toolsets

  • Bee framework: silicon validation framework. See detail in Beetest
  • Munit: asynchronous kernel unit test framework. See detail in Munit
  • Acpi tool set(Developing): powerful acpi analysis tool

More commands and flexible configuration

  • More commands and more command options than busybox and easy to install:

    SiliconFastOS uses command-line tools provided by open-source packages, avoiding the problem of using busybox commands that are not rich enough.

  • Customize the userspace toolset as needed to control the size of the rootfs:

    SiliconFastOS uses kbuild to configure userspace tools, and developers can not only select the packages built into SiliconFastOS but even individual commands.

  • Default config to build your SiliconFastOS quickly:

    SiliconFastOS provides some default configurations in config/ to help developers build SiliconFastOS quickly. It contains the smallest collection of command-line tools needed for silicon validation.

OS boot time speedup

  • Use SystemV instead of Systemd and simplify SystemV boot scripts to reduce OS boot time.

  • Minimizes necessary command support:

    Silicon validation requires rich command-line tool support, but too many command-line tools will make the rootfs too large. SiliconFastOS has a minimal set of command-line tools for silicon validation to balance command-line tools with file size.

  • Minimal kernel driver support(Developing):

    SiliconFastOS removes some kernel modules that will not be used during the silicon validation and reserves key drivers such as ACPI, Smmu, PCIe, etc to reduce kernel boot time.

  • PCIe init delay(Developing):

    Initialize PCIe driver after Linux Shell terminal starts instead of in the kernel. Reduces the time required for waiting for the kernel to boot.

  • Minimize share library:

    The size of the shared lib libraries also accounts for a large portion of the rootfs, and SiliconFastOS provides only the lib libraries required by its command-line tools. This is used to control the size of the rootfs.

More tools for chip test and validation (Planning)

  • Performance benchmark
  • Debug and trace tool

Quick Start

You can use 'make menuconfig' to config your SiliconFastOS, then use 'make' to build.

You will get a new directory named result in root directory, ./result has three subdirectory

result/
├── qemu
├── rootfs
└── src

./src storage the source code. ./rootfs storage a rootfs used by SiliconFastOS. ./qemu storage a rootfs image and a kernel image, you can run start_qemu.sh to run SiliconFastOS with qemu, then you can see

SiliconFastOS can build and install Bee automatically, you just need to choose bee in menuconfig, if you want to build Bee individually, please see there

Support Arch

ARM

make defconfig;make

RISCV Cross Compile

make riscv64_defconfig;make CROSS_COMPILE=riscv64-unknown-linux-gnu- ARCH=riscv

Licensing

GPL-2.0 license

Developer Manual

  1. Bee framework document
  2. Munit framework document
  3. How to contribute

Version control guidelines

The version number of the project is in the form of x.x.x, where x is a number.

Roadmap

We will introduce some features for kernel boot speed up and more silicon validation tools in SiliconFastOS 1.0.0.

Then, we plan to support silicon validation for RISC-V server chip in SiliconFastOS 2.0.0. If you are also a developer for OS-based silicon validation, we are glad you contact us and develop SiliconFastOS together.

Maintainer

Contributor

Golden Rule

Please keep it small and beautiful :)

siliconfastos's People

Contributors

alibaba-oss avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.