Files
rpone 76a2e1cb6e fix(examples): the firmware comes from the official archive
The template names the [firmware.image] table (url, SHA-256, MD5, bytes of the
official fastboot archive) and the preflight chain that downloads it, retains
the named inputs, deletes the archive and generates the package binaries; no
extracted firmware lives in a repository.
2026-11-01 22:03:30 +08:00
..

Device template

Follow Port a device from input collection through publication. Complete the driver adaptation checklist before selecting board-dependent components.

This template selects shared SM8550 and iPadOS 17.7.11 support. Complete the hardware inputs before building.

  1. Copy this directory to UniXNU-<device> and read AGENTS.md.
  2. Set the board name, description, firmware paths, and complete component selection. Add the shared UniXNURamDiskDxe and filesystem dependencies to the firmware DSC and FDF using the firmware integration guide.
  3. Pin a reviewed SoC commit in feeds.toml.
  4. Rename configs/example_defconfig and dts/board.dts for the board, then update kernel.defconfig and device_tree.source. Fill the DTS model, compatible values, memory map, CPU selection, and peripherals.
  5. Pin the official firmware archive in board.toml [firmware.image] and list the extracted inputs and hashes in proprietary-files.txt; extracted firmware lives in no repository.
  6. Set partition geometry and payload inputs from the device's records.
  7. Match the identity in porting.toml to board.toml. Cover every selected component and dependency, with board-specific ownership paths, findings and completion criteria.
  8. Enable the template CI workflows and require the Porting record check on the official device branch.
  9. Set example = false, then run scripts/package.sh --check --os <profile> and fix what it reports. Commit the generated unixnu.lock; keep local overrides in the ignored local.toml.
  10. Complete the shared repository checklist, build and record results, then follow publication. Add the unixnu GitHub topic and verify it appears in the repository topics.

The zero memory range and REQUIRED_ values identify inputs to complete. patches/xnu/series lists board patches in application order. package/ contains board packaging. Shared resources come from the selected SoC and component sources.

porting.toml is the shared maintainer and agent record. Publish it with board.toml and the unixnu topic. The central catalog workflow pins the source and generates both language editions twice daily. Put board driver submodules in this device repository. See the record guide and UFS guide.

python3 scripts/porting-record.py check --device ../UniXNU-example

Run this command from UniXNU.

Local builds and boot diagnosis

Copy unixnu.example.toml to unixnu.local.toml in the main checkout and fill in device inputs using the configuration reference. Read boot arguments before changing the command line. Rebuild the payload and boot image after argument changes. Use the green-bar diagnosis for stalls at loader handoff. Record the last confirmed stage and relevant logs.