--- title: Key Decisions, Root‑Cause Analyses and Implemented Solutions type: curated permalink: main/projects/d0abaf3f-da04-4dd4-a228-bacf68f44e8f/curated/key-decisions-root-cause-analyses-and-implemented-solutions stable_id: aa3057ab-54c5-4ffc-ba85-c2f2396ee60c scope: project project_id: d0abaf3f-da04-4dd4-a228-bacf68f44e8f workspace_type: development usage_profile_id: null preference_context: development document_type: decisions revision: 1 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: git-restore source_count: 125 source_revisions: memory:bea4a5ba-4685-4869-a02e-f0f1c7f733ea: '1' memory:340af5e9-b3e5-423a-9971-b370992738ce: '1' memory:b70c1a22-6834-4e59-936c-1945b04273b7: '1' source_dispositions: processed: 78 unchanged: 0 unsupported: 47 skipped: 0 cited_source_ids: - memory:bea4a5ba-4685-4869-a02e-f0f1c7f733ea - memory:340af5e9-b3e5-423a-9971-b370992738ce - memory:b70c1a22-6834-4e59-936c-1945b04273b7 - git:tools/rkdevtool/revision.txt - git:tools/loader/WHICH-LOADER.txt 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: null created_at: '2026-08-08T10:02:17.345816+00:00' updated_at: '2026-09-23T15:03:38.470590+00:00' tags: - decisions restored_from_commit: 6a6a895eafcca6052e81a14fca103a42635dd1c2 --- # Key Decisions & Resolutions | # | Decision | Reason / Outcome | |---|----------|-------------------| | 1 | Add `syscon‑reboot‑mode` DTB node **and** enable it. | Guarantees clean reboots; fixes power‑off hang. | | 2 | Remove `emergency‑reboot.shutdown` hook (later kept only as hard‑reset fallback). | Hook proved redundant after DTB node works; kept as safety net. | | 3 | Disable hardware TSO (`snps,tso` removed from DTB). | Prevents TX storms, improves throughput (29.6 Mbps). | | 4 | Switch TCP congestion to **Cubic** via sysctl. | Improves network performance. | | 5 | Disable GMAC0 (watchdog storms). | Stops spurious watchdog messages. | | 6 | Enforce SPI‑NOR safety: target verification, SHA‑256 check, mandatory `flash_erase`. | Prevents accidental NOR overwrite (Failure A on 2026‑07‑25). | | 7 | Strip proxy vars inside Docker; optional `G18PRO_PROXY`. | Avoids Docker‑proxy leakage. | | 8 | Force LF line endings (`.gitattributes`), disable `core.autocrlf`. | Prevents CRLF corruption in containers. | | 9 | Compress images with `xz` and record SHA‑256. | Reproducibility & size savings. | |10| Vaultwarden‑first credential handling – repo stores only entry names. | Secrets never in VCS. | |11| AI / Git integration disabled by default. | Keeps build deterministic. | |12| Use shallow Git clones, pin `RKBIN_GIT_COMMIT=ce50c0d1`. | Faster, reproducible builds. | |13| Documentation language = Chinese; Windows primary host. | Consistency for team. | |14| Default Docker cache volume retained between builds. | Speeds up incremental builds. | |15| Preference for shallow clones, pinned DDR/BL31 blobs, LF line endings, KISS/YAGNI. | Overall development philosophy. | **Source IDs**: `aa3057ab-54c5-4ffc-ba85-c2f2396ee60c`, `ff34c6eb-6bba-41e5-9e43-ff80941fa823`, `105b328f-4bda-4641-90a7-7282ef156316`, `bf88c265-4749-4c50-85bc-4bae25298cd5`