Skip to content

Commit d3f946b

Browse files
Add target hardware compliance and upstreaming requirements
1 parent 5fc8b39 commit d3f946b

1 file changed

Lines changed: 94 additions & 0 deletions

File tree

‎boards/compliance-requirements.md‎

Lines changed: 94 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,94 @@
1+
# RISE Target Hardware Onboarding & Upstreaming Compliance Policy
2+
3+
## 1. Overview
4+
5+
The RISE Project adheres to a collaborative, upstream-first open-source philosophy. Physical hardware integrated into the **RISE Board Farm** moves through a progressive, phased compliance framework anchored around **Lab Integration & Access Stages**.
6+
7+
This policy provides access to engineering samples while establishing clear operational and upstreaming gates for hardware to progress into shared CI pools and production bare-metal pools. Compliance with these gates and binary blob sunset clauses is strictly enforced; stage progression is independently evaluated and approved by the **RISE Developer Tooling WG** and the **Board Farm Maintainers**.
8+
9+
---
10+
11+
## 2. Phased Onboarding Framework (Lab Integration Stages)
12+
13+
Target boards progress through three distinct Lab Integration Stages. For each stage, the policy outlines a vendor requirement checklist and the corresponding Board Farm support and services provided:
14+
15+
---
16+
17+
### Stage 1: Isolated Bring-up Bench
18+
19+
* **Target Scope:** Initial lab bring-up, prototype staging, and early hardware enablement.
20+
* **Vendor Requirements Checklist:**
21+
* **Hardware & Physical Checklist:**
22+
* [ ] **Physical Hardware:** Supply 1–2 working prototype or engineering sample units to the RISE Board Farm.
23+
* [ ] **Hardware Documentation & Specs:** Provide board schematics, SoC memory maps, block diagrams, jumper configurations, and component datasheets.
24+
* [ ] **Mechanical & Thermal Specs:** Document exact mechanical clearance, dimensional constraints, and thermal/airflow expectations for racked continuous operation.
25+
* [ ] **Power Envelope:** Document peak/instantaneous power consumption under simultaneous all-cores + NPU/GPU stress to ensure safe PDU sizing.
26+
* [ ] **Physical Modifications:** Document any mandatory physical pad soldering or board surgery needed to access remote power/reset circuits or specific I/O connectors.
27+
* [ ] **Network & Console Interfaces:** Dedicated network interface supporting standard DHCP and U-Boot network boot methods (TFTP/PXE). Out-of-band UART interface with documented baud rate and parity settings (standard 3-pin TX/RX/GND).
28+
* [ ] **Out-of-Band Management:** Boards MUST automatically initialize and boot upon power restoration OR expose accessible header pins/jumpers for simple external relay control if front-panel power button presses are required (without necessitating complex hardware modifications).
29+
* **Firmware & Bootloader Checklist:**
30+
* [ ] **Firmware & Bootloader Source:** Provide functional prebuilt binaries, build instructions, and public or private source repositories for OpenSBI and U-Boot capable of reaching a boot prompt.
31+
* [ ] **Remote Flashing & DFU Recovery:** Supply recovery binaries, flashing scripts, and operational mechanisms to reliably trigger DFU/bootrom recovery mode remotely (e.g., via software triggers or debug harnesses, without requiring physical touch or configuration) to facilitate zero-touch firmware updates.
32+
* [ ] **MAC Address Persistence:** Document non-volatile storage mechanisms (e.g., U-Boot `fnv` storage) for preserving deterministic MAC addresses across reflashes.
33+
* [ ] **Prebuilt Bootline Blobs:** Temporary prebuilt core bootline blobs (e.g., OpenSBI, U-Boot) and proprietary co-processor firmware are fully permitted during initial bench bring-up.
34+
* **Linux Kernel Checklist:**
35+
* [ ] **Kernel Enablement:** Out-of-tree vendor kernel forks (e.g., Linux 6.1/6.6 vendor trees) are permitted for early bring-up, but not preferred. Vendors must grant repository access or supply kernel patches/trees to Board Farm maintainers.
36+
* **RISC-V Architecture Checklist:**
37+
* [ ] **ISA & Extensions:** Clearly define and document the supported RISC-V ISA and hardware extensions (e.g., RVA22 with RVV 1.0).
38+
39+
* **Board Farm Support & Services Provided:**
40+
* **Private Lab Staging:** Dedicated host exporter allocation on an isolated, firewalled VLAN (boards can fetch from the internet but cannot communicate with the broader Board Farm).
41+
* **Restricted Access Control:** Interactive SSH access via a secured jump host (bastion). Access is strictly restricted to core maintainers and vendor engineers for early bench bring-up.
42+
* **Remote Operations Tooling:** Automated serial console logging and remote power control (PDU socket control and optional power-button relay bypass). Vendors and core maintainers are empowered with self-serve command execution (via the provided control plane on the jump host) to power-cycle their boards independently.
43+
44+
---
45+
46+
### Stage 2: Pilot Pool
47+
48+
* **Target Scope:** Automated CI runner testing, distribution packager enablement, and kernel regression testing.
49+
* **Vendor Requirements Checklist:**
50+
* **Hardware & Physical Checklist:**
51+
* [ ] **Verification Compliance:** Board variant must successfully pass all Stage 1 verification suites (automated power cycling, automated firmware flashing, and TFTP/PXE netboot verified).
52+
* [ ] **Form Factor & Allocation:** Supply 10+ physical units racked at the RISE Board Farm (custom caddy or standardized motherboard footprint like ATX/ITX) with a 10–15% vendor replacement pool.
53+
* **Firmware & Bootloader Checklist:**
54+
* [ ] **Source Accessibility:** Public source repositories/branches (open source mirrors or vendor public forks for OpenSBI, U-Boot, Buildroot) accessible to maintainers.
55+
* [ ] **Firmware Upstreaming Plan:** Provide a documented upstreaming plan outlining the timelines and targeted mailing list patch series for pushing core bootloader enablement (e.g., OpenSBI, U-Boot) upstream.
56+
* [ ] **Boot Standards:** Must provide a fully compliant **UEFI** boot environment conforming to **EBBR (Embedded Base Boot Requirements)** and **RISC-V BBR** (e.g., U-Boot with `CONFIG_EFI_LOADER=y` or EDK2). This ensures standard, unmodified OS installers boot seamlessly without custom board scripts. *(Note: UEFI Secure Boot is optional).*
57+
* [ ] **Binary Blob Governance:** Supply SHA256 integrity checksum manifests, payload memory maps, and a documented Binary Sunset Plan (with specific timelines agreed upon with Board Farm maintainers) committing to open-sourcing or eliminating prebuilt core bootline blobs (e.g., OpenSBI, U-Boot). Dedicated proprietary co-processor or GPU/NPU firmware are exempt from the sunset plan.
58+
* **Linux Kernel Checklist:**
59+
* [ ] **Linux Upstreaming Plan:** Provide a documented Linux Upstreaming Plan (with specific timelines agreed upon with Board Farm maintainers) outlining active, in-progress, and planned [`lore.kernel.org`](https://lore.kernel.org/linux-riscv/) patch series for device enablement.
60+
* **RISC-V Architecture Checklist:**
61+
* [ ] **ISA Extension Validation:** All documented custom and standard ISA extensions accurately reported and verified under a mainline kernel environment without regression.
62+
63+
* **Board Farm Support & Services Provided:**
64+
* **Distribution Maintainer Access:** Access expanded to targeted Linux distribution packagers:
65+
* Ubuntu 24.04 and Ubuntu 26.04 (targeting RVA23 compliant hardware)
66+
* Debian 13
67+
* Gentoo (active 64-bit RISC-V support)
68+
* RHEL 10 (Developer Preview for RISC-V)
69+
* **CI Runner Integration:** Integration into GitHub Actions self-hosted runner pool (`board-farm-controller`) for automated PR testing.
70+
* **Mainline Regression Testing:** Automated builds of [`torvalds/linux`](https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git) master/rc kernels executed with `kselftest`.
71+
72+
73+
---
74+
75+
### Stage 3: Production Pool
76+
77+
* **Target Scope:** Production bare-metal compute pool for general RISC-V developers and ecosystem maintainers (providing shared community CI execution).
78+
* **Vendor Requirements Checklist:**
79+
* **Hardware & Physical Checklist:**
80+
* [ ] **Out-of-Band Management:** Redfish / OpenBMC out-of-band management interface functional on host exporters.
81+
* **Firmware & Bootloader Checklist:**
82+
* [ ] **UEFI OS Provisioning:** Unwavering UEFI baseline support enabling dynamic remote OS imaging from production Ironic bare-metal servers.
83+
* [ ] **Upstream Submission Progress:** Upstream PRs in final review for OpenSBI ([`riscv-software-src/opensbi`](https://github.com/riscv-software-src/opensbi)) and U-Boot ([`u-boot/u-boot`](https://github.com/u-boot/u-boot)).
84+
* [ ] **Binary Sunset Plan Completion:** Verified completion of the committed Binary Sunset Plan, successfully substituting any previous prebuilt core bootline blobs with open-source alternatives.
85+
* **Linux Kernel Checklist:**
86+
* [ ] **Linux Upstreaming Plan Completion:** Upstream patches merged or in final review for all SoC drivers, clock trees, pin controllers, and board Device Trees targeting the [`linux-riscv`](https://git.kernel.org/pub/scm/linux/kernel/git/riscv/linux.git) maintainer branches and standard [`torvalds/linux`](https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git) releases.
87+
* **RISC-V Architecture Checklist:**
88+
* [ ] **Declared Architecture Compliance:** Full hardware compatibility with the board's explicitly targeted architectural profile (e.g., RVA22/RVA23, ensuring features like Hypervisor `H` or Vector `V` operate reliably for production workloads).
89+
90+
* **Board Farm Support & Services Provided:**
91+
* **OpenStack Bare-Metal Integration:** Full integration into multi-tenant OpenStack Nova / Ironic bare-metal infrastructure with Redfish out-of-band management.
92+
* **Tier-1 CI Integration:** Deployed as the dedicated, high-availability baseline for GitHub Actions runner pools backing major upstream open-source projects (e.g., Linux Kernel, GCC/LLVM, CPython, PyTorch, CNCF, Llama.cpp, and more).
93+
* **Public Developer Pool:** On-demand self-service allocation for ecosystem developers, toolchain maintainers (GCC/LLVM), and language runtime teams (OpenJDK, Rust, Go).
94+
* **Production SLA Support:** Racked in production RISE datacenter infrastructure with best-effort (e.g., 3–5 business days) remote-hands hardware support and automated telemetry monitoring.

0 commit comments

Comments
 (0)