Skip to content

feat(config): enable 8250/16550 serial for HV backend#6

Merged
AprilNEA merged 2 commits intomasterfrom
feat/enable-serial-8250
Apr 7, 2026
Merged

feat(config): enable 8250/16550 serial for HV backend#6
AprilNEA merged 2 commits intomasterfrom
feat/enable-serial-8250

Conversation

@AprilNEA
Copy link
Copy Markdown
Member

@AprilNEA AprilNEA commented Apr 7, 2026

Summary

Enable CONFIG_SERIAL_8250 + CONFIG_SERIAL_8250_CONSOLE in the ARM64 kernel config so the same kernel binary works with both Virtualization.framework (VZ) and Hypervisor.framework (HV) backends.

Changes

  • configs/arcbox-arm64.config: Enable 8250/16550 serial alongside PL011
  • CLAUDE.md: Update docs to mention both UART types

Why

The custom HV backend (arcbox-vmm darwin_hv) uses vm-superio's ns16550a UART instead of PL011. Without CONFIG_SERIAL_8250=y, the kernel cannot use earlycon=uart,mmio32,... or console=ttyS0 with the HV backend.

With this change:

  • VZ backend: console=ttyAMA0 earlycon=pl011,... (unchanged)
  • HV backend: console=ttyS0 earlycon=uart,mmio32,... (now works)

Impact

  • Kernel size: ~20KB increase (minimal)
  • Boot time: No measurable impact
  • VZ backend: No change (PL011 still works exactly as before)
  • Both drivers are built-in (CONFIG_MODULES=n)

Test plan

  • Build kernel with updated config
  • Verify VZ backend boot unchanged (console=ttyAMA0)
  • Verify HV backend boot with ns16550a (console=ttyS0)

Enable CONFIG_SERIAL_8250 alongside the existing PL011 so the same
kernel binary works with both VZ and HV backends:

- VZ backend: uses PL011 (earlycon=pl011, console=ttyAMA0)
- HV backend: uses ns16550a via vm-superio (earlycon=uart,mmio32, console=ttyS0)

Both drivers are built-in (CONFIG_MODULES=n) so no initramfs module
loading is needed. Kernel size impact is minimal (~20KB).

Also enable CONFIG_SERIAL_OF_PLATFORM for FDT-based UART discovery.
Copilot AI review requested due to automatic review settings April 7, 2026 09:18
Copy link
Copy Markdown

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR updates the ARM64 kernel configuration so a single ArcBox kernel binary can boot with a working serial console on both macOS Virtualization.framework (PL011) and the custom Hypervisor.framework backend (ns16550a/8250), and updates the developer docs accordingly.

Changes:

  • Enable CONFIG_SERIAL_8250 + CONFIG_SERIAL_8250_CONSOLE (and related UART count settings) in configs/arcbox-arm64.config.
  • Document the dual-UART setup (PL011 for VZ, 8250/16550 for HV) in CLAUDE.md.

Reviewed changes

Copilot reviewed 2 out of 2 changed files in this pull request and generated 1 comment.

File Description
configs/arcbox-arm64.config Enables 8250/16550 serial console support alongside existing PL011 settings for ARM64.
CLAUDE.md Updates documented “key configs” to include the newly-required 8250 serial options for the HV backend.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread CLAUDE.md Outdated
@AprilNEA AprilNEA merged commit 069e110 into master Apr 7, 2026
3 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants