5.0 KiB
5.0 KiB
Hardware
Minimum viable product
- CPU: any x86_64
- Storage: NVMe
- Graphics: VGA
- PnP: PS/2 keyboard
- My laptop keyboard is represented as a PS/2 keyboard, so this is actual hardware!
Very important
- PnP: Clock
- Sound: Intel HD Audio
- Network:
- QEMU: VirtIO network
- Physical:
- Qualcomm Atheros QCA6174 802.11ac
- USB wireless adapter
- I have a few of these. This would require USB support first obviously.
- RTL8153 Ethernet via Thunderbolt 3 dock
- Probably not a viable option because it'd require supporting my dock.
Important
- PnP: PS/2 mouse
- USB:
- Controllers: xHCI
- Devices: HID, audio
- Graphics: Intel HD Graphics 630
- Not supported by QEMU.
Less important
- USB devices: storage, bluetooth, hub
- Bluetooth devices: keyboard, mouse
- Thunderbolt 3: controller, bridge, NHI (what is this?)
- Not supported by QEMU.
Unimportant
- CPU security mitigations (as listed by lscpu)
- Graphics: AMD Polaris 22 XL [Radeon RX Vega M GL]
- Not supported by QEMU.
- Not very important thanks to Intel HD graphics. I don't expect to be doing a lot of gaming!
- Graphics: VirtIO GPU
- Necessary to get better than VGA graphics on QEMU (I think?)
- Possibly easier than supporting real graphics cards?
- If this is true, maybe it'd be worth implementing first?
- Power management: ACPI
- USB devices:
- billboard
- To my understanding this is just an error reporting mechanism.
- MIDI over USB
- Not very useful without a good synthesizer (might be a fun toy anyway)
- Maybe not supported by QEMU?
- wacom
- Not very useful without a good drawing program
- webcam
- It's something I'd use in theory, at least.
- billboard
Very unimportant
Hardware I don't even have, but is very common and makes it on the wishlist at least.
- Storage: ACPI, SCSI & UAS, eSATA, ATAPI
- ACPI especially. Most drives aren't SSD drives!
- USB controllers: OHCI, UHCI, EHCI
- Probably not too difficult. I wouldn't be surprised if they end up getting implemented while working my way up to xHCI anyway.
- A computer with literally no USB 2.0 ports like mine is still pretty niche, probably!
- Network: USB ethernet & wireless adapters
- Good because any computer can use them.
Don't care
Hardware I do have, but don't care about supporting for the foreseeable future.
- SD card reader
- Fingerprint reader
- Intel ME
Needs research
- USB device family: billboard
- lsusb reports at least one but I don't know what it does
- USB:
- Microchip Technology, Inc. (formerly SMSC) USB5537B
- (totally empty): Pretty sure this is my USB drive. Don't know why it's shwoing up empty.
- Thunderbolt 3:
- I'm guessing I need to support all of these for my thunderbolt 3 dock to work, but I don't actually know what does what, specifically.
- I'm pretty sure I don't need this for the ports to work as USB 3 ports. (And if it does, I'm fucked!!)
- PCI bridge: Intel Corporation JHL6540 Thunderbolt 3 Bridge (C step) [Alpine Ridge 4C 2016] (rev 02)
- System peripheral: Intel Corporation JHL6540 Thunderbolt 3 NHI (C step) [Alpine Ridge 4C 2016] (rev 02)
- PCI bridge: Intel Corporation DSL6540 Thunderbolt 3 Bridge [Alpine Ridge 4C 2015]
- USB controller: Intel Corporation JHL6540 Thunderbolt 3 USB Controller (C step) [Alpine Ridge 4C 2016] (rev 02)
- Does this need a different, non-xHCI driver?
- Apparently power-related:
- I'm not sure what drivers for these would actually do. Am I supposed to read out data from them, or control them in some way, or..?
- I think I can probably get away with ignoring these for now.
- Signal processing controller: Intel Corporation Xeon E3-1200 v5/E3-1500 v5/6th Gen Core Processor Thermal Subsystem
- Signal processing controller: Intel Corporation 100 Series/C230 Series Chipset Family Thermal Subsystem
- Memory controller: Intel Corporation 100 Series/C230 Series Chipset Family Power Management Controller
- Apparently input-related:
- Signal processing controller: Intel Corporation 100 Series/C230 Series Chipset Family Serial IO I2C Controller
- I think this has to do with the touch screen and touch pad (I have 2 controllers shown)
- Might actually be worth implementing if it means freeing up a USB port until I get thunderbolt 3 working
- MIght actually be worth implementing if it means I can defer implementing USB entirely
- Signal processing controller: Intel Corporation 100 Series/C230 Series Chipset Family Serial IO I2C Controller
- Don't know:
- SMBus: Intel Corporation 100 Series/C230 Series Chipset Family SMBus
- A bus controller obviously, but I don't know what uses this bus that I need to support.
- Non-VGA unclassified device: Intel Corporation 100 Series/C230 Series Chipset Family Integrated Sensor Hub
- kernel.org says this is some kind of co-processor but I don't know if it's just optional to save power or if it's necessary to support some hardware, and for that matter, what hardware it's actually applicable to
- SMBus: Intel Corporation 100 Series/C230 Series Chipset Family SMBus