Repository navigation
build_library/oem/ami: Drop bare earlycon on arm64 - #4314
Conversation
Bare earlycon picks the UART address from the ACPI SPCR table, which on Graviton reports 0x80000000 instead of the real UART. When an NVMe BAR is mapped at that address (e.g. t4g with an additional EBS volume), the early 8250 console spins forever and boot hangs. The serial console is still set up by console=ttyS0, so only early boot output is lost. Signed-off-by: Jordi Deu-Pons <jordi@jordeu.net>
There was a problem hiding this comment.
🟢 Approval recommended
The focused configuration change matches the documented failure and preserves the regular serial console.
0 open findings
What changed in this PR
Removes unsafe automatic UART discovery from AWS arm64 boot configuration while retaining normal serial output.
Changes:
- Drops bare
earlyconfrom EC2 arm64 kernel arguments. - Documents the resulting Graviton boot-hang fix.
| File | Description |
|---|---|
build_library/oem/ami/grub.cfg |
Removes bare earlycon on arm64. |
changelog/bugfixes/2026-10-09-ec2-arm64-earlycon.md |
Records the AWS arm64 boot fix. |
🧠 Review effort: Balanced
💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.
|
@jordeu thanks for the PR - here's an AMI image for ARM64 if you want to give it a try: https://bincache.flatcar-linux.net/images/arm64/9999.9.100+aws-earlycon/ |
|
Thanks for building it! I've tested it on t4g.large in eu-west-2, with Ignition config
With the test image, |
|
Backported to 4820 (Alpha), 4790 (Beta), 4757 (Stable). |
Flatcar on arm64 EC2 boots with a bare
earlycon, which takes the UART address from the ACPI SPCR table. On Graviton that address is wrong, and when an NVMe device lands there (t4g with an extra EBS volume) the kernel hangs during early boot. This dropsearlyconand keepsconsole=ttyS0, so the serial console still works; only pre-console early output is lost.Details
earlyconwas added in d30359a together with the ttyAMA0 -> ttyS0 console fix. The console fix stays.earlyconwith an explicit driver/address and are not affected.nvme_core.io_timeoutis unchanged.How to use / testing
Boot an arm64 AMI built from this branch on a t4g instance with an additional EBS volume attached; it should reach userspace and the serial console should still show kernel output. tormath1 offered to build a test image for this.
The change was prepared with the help of an LLM.
Fixes flatcar/Flatcar#2446
CI 🟢 : https://jenkins.flatcar.org/job/container/job/packages_all_arches/825/cldsv/