Files
UniXNU/examples/device

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. List firmware sources and hashes in proprietary-files.txt.
  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 workflow and require its Porting record check on the official device branch.
  9. Set example = false, select the defconfig, fetch, and inspect status --json. 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. The site renders it from the device commit pinned in UniXNU's devices.toml. Publish that pin with the English and Chinese device pages. 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.