forked from torvalds/linux
-
Notifications
You must be signed in to change notification settings - Fork 16
Driver and platform support
Wolfvak edited this page May 14, 2021
·
6 revisions
This page has the status for driver bringup for 3DS Linux and is a good place to start with for people who want to contribute. The priority is determined as follows: high - required for a usable environment, med - required to be livable on it, low - not needed but would be nice to have, extra - not needed at all but bonus points for anyone who gets it working.
Name | Status | Priority | Links | Notes |
---|---|---|---|---|
MPCore | 100% | High | TRM | Supported by Linux |
GIC | 100% | High | Supported by Linux | |
SMP | 100% | High | Description | Supports all CPUs, dual core on old3DS and quad core on new3DS models |
Extra FCRAM | 100% | High | Only for new3DS | |
CPU reclocking | 0% | High | Issue | Only for new3DS |
Power management | ~5% | Med | Registers | Some drivers support power management already but most don't, and we need platform-specific sleep modes |
ARM9 | 50% | High | arm9linuxfw | Fully supported from Linux through VirtIO, it just needs a better firmware on the ARM9 side |
PL-330 | 90% | High | Supported by Linux, needs more support on new3DS |
Name | Status | Priority | Links | Notes |
---|---|---|---|---|
SPI | 100% | High | Registers | Doesn't support the autopolled modes since Linux has no concept of such thing |
I2C | 100% | High | Registers | |
GPIO | 100% | High | Registers | Needs very special handling for interrupts |
SDHC | ~80% | Med | Reference | There's a basic implementation but it doesn't support the 32bit FIFO |
Wireless | 0% | Med | Wifiboot | Needs more research into the AR6002 and how it can be brought back into the mainline kernel (it was removed when the ath6kl driver was moved off staging?) |
GPU | 0% | Med | Baremetal implementation | Includes the display controller, command processor and DMA transfer unit |
Backlight | 0% | Med | Registers | |
CSND | 0% | Med | Baremetal implementation | Needs codec first, and this is only a simple multichannel output pipe |
DSP | 0% | Extra | Info Registers | Same as the DSP in the DSi, there hasn't been much RE done on it yet? |
Camera | 0% | Extra | Not much info out there | |
Y2R | 0% | Extra | Color conversion hardware? Used by the camera | |
MVD | 0% | Extra | H264 hardware acceleration chip, only on new3DS | |
MIC | 0% | Low | Registers | Microphone capture |
Name | Status | Priority | Links | Notes |
---|---|---|---|---|
spi-nor | 75% | Low | It's a regular chip that should be supported by the spi-nor driver but it has a custom ID that's not recognized | |
touch | 100% | Med | Touschreen/circlepad controller in CODEC | |
codec | 0% | Med | Baremetal implementation | Sound controller in CODEC |
Name | Status | Priority | Links | Notes |
---|---|---|---|---|
IRQ Chip | 100% | High | Info | |
Fuel gauge | 100% | Med | Info | Supports retrieving the battery voltage, temperature, capacity and the status of the AC charger (connected or not) |
RTC | 100% | Med | Info | Supports both reading and writing the raw time |
Accelerometer | 100% | Low | Info | The LIS331DLH is already supported in Linux but the 3DS exposes a different interface to it |
Gyroscope | 50% | Low | ITG-3200 ITG-1010 | The kernel fully supports the ITG-3200, but it needs a new driver for the ITG-1010 |
Infrared | 90% | Low | Info | The SC16IS750 is already supported and seems to work in Linux, but the IR LED itself is never lit up when transferring data, needs more research |
LEDs | 90% | Low | Info | Only supports controlling the notification LED, the rest are not that important? |
Regulators | 95% | High | Info | Supports toggling regulators on and off but it waits for a fixed amount of time rather than for an interrupt |
???
("inspired" by https://wiki.henkaku.xyz/vita/Linux_Driver_Status)