96Boards Compliance is designed to ensure a level of hardware and software functionality and quality for the 96Boards Community Board program.
96Boards Compliance is designed to ensure a level of hardware and software functionality and quality for the 96Boards Community Board program. The following Compliance topics are covered in this document:
Compliance is tested against the following:
- 96Boards Consumer Edition Specification,
- 96Boards Enterprise Edition Specification and 96Boards TV Platform Specification,
- 96Boards IoT Edition Specification
- 96Boards SoM Specification (Compute)
- 96Boards SoM Specification (Wireless)
- The requirements specified in the below
It is recommended that all documentation required under the 96Boards program for the board and SoC be freely available from the 96Boards website. Any documentation that cannot be provided from the 96Boards website shall be available from a vendor or other public website that can be linked to from the 96Boards website.
- Board schematics shall be available under CC BY 4.0 licence on the 96Boards.org site
- It is not required that board layout or manufacturing data documents be made available. This is a board vendor decision.
- A Board reference manual shall be available on the 96Boards.org site
- This shall include information on hardware and software interfaces to enable the maker community and developers of bootloaders, kernels and OS distributions.
- An SoC technical reference manual shall be available
- This shall include sufficient information for developers to be able to create board drivers and software interfaces for the supported SoC features.
96Boards recognizes the present industry reality that it is generally not possible to provide all software on a community board as open source code. A goal of the 96Boards program is to encourage vendors and the community to move towards making more software fully open source.
For any software provided in binary form:
- The vendor or SoC provider shall provide a binary distribution license to Linaro/96Boards to allow those binaries to be redistributed from the 96Boards websites.
- The vendor or SoC provider shall provide a binary distribution license allowing the board manufacturer to ship all necessary binaries.
- It is acceptable to require the end user to accept an EULA prior to first use of the board.
3. Hardware Compliance
The 96Boards program requires board vendors to publish full schematics. However, due to the cost of high performance board development, vendors are not required to provide full manufacturing information. Nevertheless, we encourage vendors to consider providing full open source hardware solutions, including full board manufacturing information. Hardware compliance testing shall include (but is not limited to):
- Review of schematics
- Verification of conformance to physical footprint and component dimensions
- Conformance to 96Boards specification minimum required hardware feature set
- Conformance to 96Boards expansion bus functionality
- Low speed connector
- High speed connector
The 96Boards program has requirements summarized below for a 96Boards branded product supported on the 96Boards.org website. We encourage and want vendors to go further and benefit from more complete open source support. Specifically we would like to see:
- Full upstream support for 96Boards products BSP software
- Product quality reference open source software for 96Boards products
- Full open source stack from bootloader to distribution
- Minimal or, even better, no binary blobs
Software compliance testing shall include (but is not limited to):
- Review of supplied software build and functionality
- Build of supplied software from documentation and source code
Software Compliance Requirements
- All open source software used shall comply with its respective open source license(s)
- A software method shall be supplied to allow the board to be recovered from a “bricked” condition.
A 96Boards product shall support at least one of the following kernels:
- An unmodified kernel.org mainline, stable or longterm (latest two releases) kernel. Note: Upstream mainline support is a 96Boards program goal
- A Linaro-supported kernel with additional published patches against a kernel.org mainline, stable or longterm (latest two releases) kernel
- A Linaro-supported kernel with additional published patches against an AOSP release kernel (latest two letter releases) or the latest AOSP current kernel
- A vendor-supported kernel using any of the above kernel versions