Back to Eliza

Android hardware contract

packages/chip/docs/arch/android-contract.md

2.0.12.4 KB
Original Source

Android hardware contract

The e1 chip does not boot Android. It establishes the minimal hardware contracts that will later back Linux drivers and AOSP HALs.

The central software-visible contract is sw/platform/e1_platform_contract.json. Android, Linux, and Buildroot scaffolding must consume that contract or generated artifacts from it instead of copying register addresses into unchecked placeholders.

The Linux-capable CPU SoC variant of the e1 chip is described by the e1_chip_cpu_variant section of that contract. The authoritative artifacts derived from it live under sw/platform/generated/:

ArtifactAuthoritative for
sw/platform/generated/e1_platform.vhRTL decode / Verilog headers
sw/platform/generated/e1-platform.dtsiLinux kernel DTS includes
sw/platform/generated/e1_platform.hU-Boot, OpenSBI, bare-metal firmware
sw/platform/generated/e1_platform_hal.jsonAOSP HAL configs

These four files are produced by scripts/gen_platform_artifacts.py (make platform-artifacts) and MUST NOT be edited by hand. CI runs make platform-contract-check, which fails on stale artifacts and on any handwritten DTS that references a contract device compatible at the wrong base address.

QEMU/Renode bring-up uses a separate qemu-virt software reference target. Passing on qemu-virt proves boot scaffolding and userspace plumbing only; it does not prove the e1-chip package debug/MMIO ABI.

Android needE1 chip representationFull SoC direction
Boot identityBoot ROM contract versionROM, fuses/OTP abstraction, boot policy
TimersTimer compare IRQCLINT/ACLINT plus Linux clocksource
InterruptsDedicated IRQ pinsPLIC/IMSIC routing
DisplayFramebuffer and vsync registersDRM/KMS driver and simple HWC path
NPUCommand/status/result registersLinux char/DRM accel driver plus runtime/HAL
StorageDMA-style command patternSD/eMMC controller first
GPIO/sensorsGPIO and I2C-oriented placeholderGPIO, I2C sensor hub, input events

The first AOSP target should live under sw/aosp-device/device/eliza/eliza_ai_soc and boot on QEMU/Renode before RTL simulation is expected to run Android-scale workloads. make aosp-bsp-check intentionally fails until that target contains real BoardConfig, init, manifest, SELinux, HAL plumbing tied back to the central contract, and checked-in external build/boot evidence.