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.
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.
- Copy this directory to
UniXNU-<device>and readAGENTS.md. - Set the board name, description, firmware paths, and complete component selection. Add the shared
UniXNURamDiskDxeand filesystem dependencies to the firmware DSC and FDF using the firmware integration guide. - Pin a reviewed SoC commit in
feeds.toml. - Rename
configs/example_defconfiganddts/board.dtsfor the board, then updatekernel.defconfiganddevice_tree.source. Fill the DTS model, compatible values, memory map, CPU selection, and peripherals. - Pin the official firmware archive in
board.toml[firmware.image]and list the extracted inputs and hashes inproprietary-files.txt; extracted firmware lives in no repository. - Set partition geometry and payload inputs from the device's records.
- Match the identity in
porting.tomltoboard.toml. Cover every selected component and dependency, with board-specific ownership paths, findings and completion criteria. - Enable the template CI workflows and require the
Porting recordcheck on the official device branch. - Set
example = false, then runscripts/package.sh --check --os <profile>and fix what it reports. Commit the generatedunixnu.lock; keep local overrides in the ignoredlocal.toml. - Complete the shared repository checklist, build and record results, then follow publication. Add the
unixnuGitHub 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.