108 lines
5.0 KiB
Markdown
108 lines
5.0 KiB
Markdown
# 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.
|
|
|
|
## 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
|
|
* 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
|