Project · Symbolics Genera

Road map

The steps from Genera on the laptop's firmware to virtual machines under Genera. Each step shows its state, what is done and what is open, and the status entries that document it.

Done In progress To do
  1. Genera as a UEFI application. Done

    Boots on the laptop using the firmware's drivers, before any driver of our own exists.

    Done: Genera boots unattended from the USB disk to a Lisp Listener on the bare T490s, with the emulator on a processor core of its own, and is typed at on the internal keyboard.

    Status: Implementation begins on formeo · Genera runs on the bare T490s

  2. The runtime takes over. In progress

    Emulator and I/O processor on their own cores; screen, keyboard, disk.

    Done: Genera runs on the runtime's own drivers with the firmware's boot services ended: the USB disk, keyboard and TrackPoint, the screen, the runtime's own memory allocator, timer and watchdog, and the emulator on a processor the runtime starts itself. Settings saved from Genera are in force from the next boot on, and a GRUB entry boots the base configuration, from which a bad setting is reverted. In QEMU, the ACPI power button halts Genera.

    Open: Booting through Limine into the runtime's own memory layout, the I/O processor serving Genera's channels in Rust, the mailbox between the processors, the power button on formeo and the other platform devices, and the IOMMU's domains.

    Status: A USB stack of its own · Genera's disks on the runtime's USB driver · Genera sees the hardware · Milestone: Genera runs on the runtime's own drivers · DHCP and the power button, in QEMU · Settings saved from Genera

  3. Wired network. In progress

    Done: Genera is on the network over the USB Ethernet adapter, on the runtime's own CDC-ECM driver, cabled to a Mac at a link-local address: TELNET, screenshots and the runtime's live log pass through it. In QEMU, Genera leases its address, router and name server by DHCP.

    Open: DHCP on formeo, and the laptop's built-in Intel I219 Ethernet.

    Status: The network on the runtime's own driver · Milestone: Genera runs on the runtime's own drivers · DHCP and the power button, in QEMU

  4. USB. In progress

    On its own processor.

    Done: The runtime's own USB stack drives both of the laptop's USB controllers: xHCI, mass storage at over 100 MB/s, hot-plug, USB Ethernet through CDC-ECM, and USB keyboards and mice.

    Open: Hubs, serial adapters, USB Ethernet through NCM, the xHCI debug capability, and a processor of its own for USB.

    Status: A USB stack of its own · Genera's disks on the runtime's USB driver · USB hot-plug · The network on the runtime's own driver · USB keyboards and mice

  5. Wi-Fi. In progress

    Done: The runtime's driver for the Intel 9560 boots the card's firmware and scans under VFIO on formeo; the WPA2-PSK supplicant and the 802.11 station are tested against a simulated access point.

    Open: Joining a WPA2 network and an open network under VFIO, a day-long run across rekeys, and Wi-Fi in the runtime with Genera's Wi-Fi commands.

    Status: The Wi-Fi card's firmware boots and scans

  6. Power management. To do

    Completes the first milestone.

  7. Service processors and cameras. To do

  8. Accelerated screen. To do

    Native rendering and full color.

  9. A second machine. To do

  10. Code from Genera. To do

    The Lisp subset compiler for the auxiliary processors.

  11. GPU. To do

    The blitter, then 3D.

  12. Sound. To do

  13. Virtual machines. To do

    A web browser in a Genera window.

Power management completes the first milestone: Genera as the whole computer on the ThinkPad T490s, as the mission describes it. The work proceeds in packets of the project plan.