--- title: Architecture Overview of the BDYG18Pro Armbian Build System type: curated permalink: main/projects/d0abaf3f-da04-4dd4-a228-bacf68f44e8f/curated/development/architecture-overview-of-the-bdyg18-pro-armbian-build-system stable_id: adb3722a-51e7-4ec5-88cc-a95dc399a7a1 scope: project project_id: d0abaf3f-da04-4dd4-a228-bacf68f44e8f workspace_type: development usage_profile_id: null preference_context: development document_type: architecture revision: 8 source_memory_ids: [] source_checkpoint_ids: [] source_file_ids: [] source_git_commit: 36234e0082845515a053c10ee552ce35a03415f0 source_git_commits: - 36234e0082845515a053c10ee552ce35a03415f0 source_agent_sync_ids: [] model_connection: Sub2API model_name: openai/gpt-oss-120b source_count: 125 source_revisions: memory:11052d10-1adf-4d39-800a-08f9ae708758: '1' memory:7cf6c014-d2fa-4f99-9ed9-c070b108d3c7: '1' memory:bea4a5ba-4685-4869-a02e-f0f1c7f733ea: '1' memory:340af5e9-b3e5-423a-9971-b370992738ce: '1' memory:d5cbbc04-5929-4583-90b4-bd6c8295db25: '1' source_dispositions: processed: 78 unchanged: 0 unsupported: 47 skipped: 0 cited_source_ids: - memory:11052d10-1adf-4d39-800a-08f9ae708758 - memory:7cf6c014-d2fa-4f99-9ed9-c070b108d3c7 - memory:bea4a5ba-4685-4869-a02e-f0f1c7f733ea - memory:340af5e9-b3e5-423a-9971-b370992738ce - memory:d5cbbc04-5929-4583-90b4-bd6c8295db25 job_cited_source_ids: [] conflicts: [] supersedes: [] preferences: [] source_cursor: 0 source_hash: 5fe39ad3a37421f812566dd39f89d4c28fc6078c8d39031dff10eb6eb8d72e00 prompt_version: 2026-08-12.3 schema_version: '3' curation_job_id: 75339546-fef5-4656-8969-ba806e3ea6f0 created_at: '2026-08-08T10:02:33.012303+00:00' updated_at: '2026-08-16T18:45:05.147636+00:00' tags: - hardware - boot - docker - repo --- # Architecture Overview ## 1. Hardware Platform | Component | Specification | |-----------|---------------| | **SoC** | Rockchip RK3568 – quad‑core Cortex‑A55 @ 2 GHz, Mali‑G710 GPU, VPU, RGA, HDMI, PCIe, USB 3.0. | | **Memory** | 8 GB DDR4 HS200 (2.5 V). | | **Storage** | 256 GB eMMC (boot + rootfs) + 32 MB Winbond W25Q256JW SPI‑NOR (blank). | | **Switch** | Realtek RTL8367S 5‑port DSA (GMAC1 active, GMAC0 disabled). | | **Network** | Ethernet MAC‑1 (`end0`), TSO disabled, TCP congestion = **Cubic**. | | **UART console** | `serial@fe660000` → `ttyS2` @ 1 500 000 baud (pins RX/D0, TX/D1). | *Source*: `evidence/dtb/rk3568-bdy-g18-pro.fixed.dts`, `evidence/dtb/rk3568-bdy-g18-pro.orig.dts`. ## 2. Boot Flow 1. **MaskROM** reads SPL from DDR (address 0x08000) after power‑on. 2. **SPL** (Rockchip `rk356x_spl_loader_v1.25.114.bin` preferred) initialises DDR and loads **U‑Boot** (mainline 2026.04) from the SPL payload. 3. **U‑Boot** loads a **FIT** image (`uboot‑fit‑rk3568‑bdy‑g18‑pro.dts`) containing BL31, kernel, and DTB. 4. Kernel `Linux 6.18.40‑current‑rockchip64` boots with DTB `rk3568‑bdy‑g18‑pro.dtb`. All steps are verified by flashing the SPL to SPI‑NOR, reading back SHA‑256, and confirming boot success (see `evidence/selfbuilt-uboot-brideup.txt`). ## 3. Repository Layout & Build Infrastructure | Directory | Purpose | |-----------|---------| | `arm64‑custom/` | Custom board scripts & patches (tracked). | | `evidence/` | Raw logs, screenshots, serial captures (tracked). | | `aidocs/` | Additional documentation (tracked). | | `outputs/armbian-g18pro/` | Final artefacts – compressed image, SHA‑256 manifest, verification report. | | `armbian‑g18pro‑cache` (Docker volume) | Persistent cache (~19 GB) for U‑Boot, kernel, ccache. | *Build orchestrator*: Python script `armbian‑custom/build_g18pro.py` + PowerShell wrapper `build_g18pro.ps1`. Docker image `ghcr.io/armbian/docker-armbian-build:armbian-ubuntu-noble-latest` is used; shallow Git clones (`--depth 1`) minimise download size. ## 4. Runtime System State (as of 16 Aug 2026) - **Kernel**: `6.18.40‑current‑rockchip64` - **U‑Boot**: Mainline v2026.04 on SPI‑NOR; vendor U‑Boot remains on eMMC as fallback. - **Network**: `tso` off, `cubic` congestion, throughput ≈ 30 Mbps. - **Power‑off**: `systemctl poweroff` hangs (requires manual power‑cycle); `syscon‑reboot‑mode` DTB node restores clean reboot. - **Docker cache**: volume present, speeds up incremental builds. *Source*: `abe4221f-b290-4384-ad8f-1f72c360b893`. --- **References** - `c650c1e4-18ee-44ad-af42-b7632fbdcf5c` - `dd496c6d-1619-457d-86a9-da57f5b866d7` - `S-1` - `aa3057ab-54c5-4ffc-ba85-c2f2396ee60c` - `bf88c265-4749-4c50-85bc-4bae25298cd5` - `ff34c6eb-6bba-41e5-9e43-ff80941fa823` - `adb3722a-51e7-4ec5-88cc-a95dc399a7a1` - `abe4221f-b290-4384-ad8f-1f72c360b893`