Commit Graph

6 Commits

Author SHA1 Message Date
vasilito aa2185152a docs: comprehensive driver infrastructure assessment and cleanup
IMPLEMENTATION-MASTER-PLAN.md:
  - Updated Phase 2 Network Drivers to COMPLETE status
  - Added NETWORKING-IMPROVEMENT-PLAN.md to authority table
  - Comprehensive driver inventory (5 Ethernet, 7 storage, 4 USB, 4 GPU, etc.)
  - Linux 7.1 cross-references for every driver
  - Network stack completion summary (9,212 LoC, all protocols)
  - Updated e1000d/rtl8168d file statuses (was 'Truncated', now 'Complete')
  - Remaining smoltcp-dependent gaps documented

Archived stale docs:
  - C7-STATUS.md → archived/ (KF6/Plasma migration, completed)
  - BUILD-TOOLS-PORTING-PLAN.md → archived/ (superseded)
  - 0.2.5-GRAPHICS-FREEZE-PLAN.md → archived/ (version-specific)
2026-07-07 23:46:41 +03:00
vasilito 33c002d563 USB: cast O_* flags to u8 for NewFdFlags::from_bits_truncate
Cross-compile error: from_bits_truncate requires u8 but
O_STAT/O_RDWR are usize.  Cast with 'as u8'.

Applied to all 4 scheme wrappers: acmd, ftdi, ecmd, usbaudiod.
2026-07-07 21:54:39 +03:00
vasilito 46cd3704b9 USB: fix scheme API — match actual redox-scheme SchemeSync trait
Cross-referenced with wifictl's working scheme registration pattern.

scheme.rs fixes (acmd + ftdi):
- openat: 5→6 params (add &mut self, fcntl_flags: u32)
- read: 4→6 params (add offset: u64, fcntl_flags: u32)
- write: 4→6 params (add offset: u64, fcntl_flags: u32)
- Removed close() method (not in SchemeSync trait)
- OpenResult.flags: usize→NewFdFlags (via from_bits_truncate)
- Removed unused imports

main.rs fixes (acmd):
- Replaced register_async_scheme + handle_scheme_mut with
  wifictl pattern: setrens(0,0) + request.handle_sync() +
  socket.write_response() + RequestKind::Call match
- Socket::next_request returns Option<Request>, handle
  Ok(None)/Err gracefully instead of expect()

Verified: cargo check --offline passes on host.
2026-07-07 21:12:45 +03:00
vasilito dac00073ba USB: canonical scheme pattern — all 4 drivers aligned
ftdi/usbaudiod scheme.rs updated to match acmd/ecmd pattern:
  Explicit match arms in read/write (not map/map_err chains)
  Consistent openat with root dir + device file routing
  Saturating close count
  AudioScheme retains capture/playback path routing

All 4 scheme modules now identical in structure:
  acmd  → /scheme/ttys/usbACM_<N>      (Mutex<bulk_in>, Mutex<bulk_out>)
  ftdi  → /scheme/ttys/usbFTDI_<N>     (same)
  ecmd  → /scheme/net/usbECM_<N>       (same)
  audio → /scheme/audio/usbAudio_<N>   (Mutex<isoch_in>, Mutex<Option<isoch_out>>)
2026-07-07 20:01:37 +03:00
vasilito 9e6851d43c USB: P3 scheme service wrapper — redbear-ftdi registers /scheme/ttys/usbFTDI_<N>
Same pattern as acmd: FtdiScheme with Mutex<XhciEndpHandle>,
SchemeSync impl, Socket::create() + register on Redox,
stdout fallback on host/Linux.
2026-07-07 19:24:46 +03:00
vasilito e28d575668 USB: add redbear-ftdi — FTDI FT232 USB-serial driver
Cross-referenced with Linux 7.1 drivers/usb/serial/ftdi_sio.c (2,876 lines).

Implements the core FTDI protocol:
- Reset (SIO_RESET_SIO + purge RX/TX buffers)
- Baud rate setting (48MHz base clock, 16-bit divisor encoding)
- Flow control (RTS/CTS, DTR/DSR)
- Modem control (DTR/RTS line state)
- Bidirectional bulk I/O: bulk IN → stdout, stdin → bulk OUT (spawned thread)

Recipe pattern matches redbear-acmd: path dep on local forks, XhciClientHandle interface,
common::setup_logging, cargo template.

Wired into redbear-mini.toml (inherited by redbear-full) with probe marker service.
2026-07-07 13:06:20 +03:00