Two distinct landings today: sigil-video adds lcars_window_chrome — a full LCARS WM title bar for Lumen window decorations — and sigil-drivers closes out the Bluetooth driver set with Realtek and Broadcom support. GPU-first throughout. All x86 PASS. (sigil-video 5b3db4c, sigil-drivers 3e45315, 3a21b52)
lcars_window_chrome (5b3db4c)
lcars_window_chrome(fb, pitch, fbw, fbh, wx, wy, ww, bh) draws a full LCARS WM title bar for any Lumen window. The bar is divided into three zones:
lcars_hbar with pill_w = 3×bh. The signature LCARS rounded cap in orange — the visual anchor of every LCARS panel.accent_w = bh. The characteristic LCARS right-side accent block — tan/beige, same height as the bar.The GPU path calls gpu_submit rect-fill for each zone (requires CAP_ACCEL; silicon-pending). The software-2D fallback uses lcars_fill_rect + lcars_hbar — identical output, no GPU required, so Pi3 gets full LCARS chrome. lcars_window_chrome feeds directly into Lumen WM draggable-resize and fullscreen chrome work.
Test: window at (10,10), ww=140, bh=12.
pill=ok pill_end=ok title=ok title_mid=ok accent=ok accent_end=ok content=ok
LCARS-WCHROME-PASS
btrtl — Realtek Bluetooth (3e45315)
Covers RTL8723A/B/D, RTL8761A/B, RTL8821A, RTL8822B/C, RTL8852A/B/C USB BT adapters.
Firmware protocol
- ROM version read:
HCI_RTL_ROM_VER(opcode0xFC6D= 64621) — reads therom_versionbyte to select the correct firmware file for the chip variant. - Firmware download:
HCI_RTL_DOWNLOAD_FW(opcode0xFC20= 64544) — firmware is sent in 252-byte chunks. Each chunk:[opcode LE16][plen=1+dlen][index][data…] - Index encoding: not-last fragment =
frag_counter; last fragment =frag_counter + 128(RTL_LAST_FLAG=0x80). Counter wraps0..0x7E→1. - Boot:
HCI_Resetafter download boots the new firmware image.
x86 runverify PASS: opcode bytes (0xFC6D→lo=109/hi=252), write_chunk index (not-last=0, last=1+128=129), 400B payload → 2 chunks.
btbcm — Broadcom Bluetooth (3a21b52)
Covers BCM2045A, BCM20702A0, BCM43142A0 USB BT adapters.
Firmware protocol
- Version read:
HCI_BCM_READ_VER(opcode 64513) — reads chip version to select firmware. - Minidriver:
DOWNLOAD_MINIDRIVER(opcode 64558) — puts the chip into firmware replay mode. - HCI record replay: the full BCM firmware blob is sent as raw HCI records verbatim. Each record is
[opcode LE16][plen][data…], replayed bybtbcm_replay_record.btbcm_replay_fwcounts records as it walks the blob. - Launch + reset:
HCI_BCM_LAUNCH_RAM(opcode 64590) boots the loaded firmware, thenHCI_Resetbrings the controller to operational state.
State machine: 0=reset → 1=minidriver → 2=fw-load → 3=operational
x86 runverify PASS: opcode bytes (0xFC01/2E/4C/4E LE), 2-record replay (11B blob → 2 chunks).
BT driver comparison
The three Bluetooth drivers share the same CLS_BT capability class but use distinct firmware protocols suited to each vendor's chip architecture:
| Driver | Hardware | Firmware protocol | Seam |
|---|---|---|---|
btintel |
AX200/201/210 | SECURE_SEND 63B fragments | CLS_BT |
btrtl |
RTL8761B/RTL8852 | RTL chunk 252B + last-flag | CLS_BT |
btbcm |
BCM20702/BCM43142 | HCI record replay | CLS_BT |
With btintel already shipped, btrtl and btbcm complete the USB Bluetooth driver surface. Any of the three adapters now enumerates, downloads firmware, and registers under CLS_BT for use by the audio and input stacks.