h1. CCIX
CCIX project is designed to enable:
* CCIX firmware development
* OS boot on CCIX based system
* OS and hypervisor development on CCIX based system
* Provide platform, a QEMU based model, for CCIX
development.
h1. Rationale
* As CCIX standard has just been defined and prototype hardware is not widely available. In order to build the software ecosystem for CCIX, we need to make an emulated CCIX system available and provide reference firmware for the industry
* An open source project will help to align various implementations with the industry standard and avoid fragmentation.
* The open emulated platform also provides software developer a place to develop OS/hypervisor, drivers and applications using the new features provided by CCIX
* The three core members of Linaro are also the key members in CCIX standard group. Redhat’s Jon Master is chairman of the CCIX software working group. Qualcomm contributed the RAS specification for CCIX. Huawei has been working on firmware specification for CCIX for a year now. Finally, ARM has contributed the PRL specification, and is organizing CCIX software guide.
h1. Scope
* This project is not targeted to do full scale of hardware emulation but enough to develop firmware and boot the OS
* The architecture of this project is based on software QEMU + EDK2
LEG-381 https://projects.linaro.org/browse/LEG-381 will be used as our base starting point (SBSA QEMU Machine)
* The initial scope will only support simple usage model such HA(home agent) + RA (Request agent) and HA+SA (Slave agent)
* Script tool need to be developed in order to build and configure otherCCIX systems
DIAGRAM MISSING
h1. Goals/Objectives
The project shall be completed in two phases, the first phase will focus on hardware emulation and firmware implementation and the second phase will be OS framework and driver optimization
Phase 1
* QEMU needs to support the CCIX DVSEC specification to emulate CCIX device interfaces such that CCIX devices can be found, configured and initialized.
* Firmware in EDK2 need to be implemented to provide standard UEFI protocols, data structures defined in CCIX firmware specification for the host system
* Firmware need to implement the whole power on process including discovery, configuration and initialization as defined in CCIX firmware specification
* Firmware need to provide memory map interface through UEFI covering the extended CCIX memory map
* Firmware will also need to implement ACPI tables and services according to the firmware standard
* The emulated CCIX need to be bootable to current OS without modification
Phase 2
* RAS and power management features can be partially implemented without verification
* OS boot loader and kernel may need to be optimized according to ACPI standards
* Driver development will be required to support RAS and power management features
* VM should also be enable
h1. Reference Implementation
* CCIX will utilized the current enterprise QEMU project (LEG-381) and the ERP project.
* QEMU for CCIX should be a component for enterprise QEMU
* CCIX firmware will be implemented on top of the ERP firmware with the enterprise QEMU as a platform
h1. Target Hardware Platforms
* QEMU platform
* Real hardware platform will be decided when it is available in Phase 2
h1. Deliverables
* CCIX QEMU
* CCIX firmware
* Script tool
* OS generic driver
h1. Validation Plan
Same as ERP project
h1. Resourcing
* It is expected one Linaro engineer will coordinate and lead the project with the help from sponsor steering committee member
* 3+ member engineers will be provided by member companies
h1. High-level Timeline
One year project for Phase one
h1. High-level Risks and Mitigation Plans - <optional>
- Only high-level risks which need to be taken into consideration when approving a Lead Project should be noted here. Detailed risks and issues are tracked during project delivery
|| Risk || Mitigation ||
| Engineering resource need to have a few months to be ready |Member companies assign part time people to help |
h1. Reference
http://www.wiki.xilinx.com/QEMU