Difference between revisions of "CI20 upstream"
(Update for 3.18 for core drivers) |
|||
Line 4: | Line 4: | ||
It will be periodically updated to keep up to speed with the latest. | It will be periodically updated to keep up to speed with the latest. | ||
− | The current branch tracking mainline 3. | + | The current branch tracking mainline 3.18.3 |
https://github.com/MIPS/CI20_linux | https://github.com/MIPS/CI20_linux | ||
Line 16: | Line 16: | ||
! State | ! State | ||
! Path | ! Path | ||
− | ! Notes | + | ! Notes 3.0.8 |
+ | ! Notes 3.16 | ||
+ | ! Notes 3.18 + | ||
|- | |- | ||
| Clocks | | Clocks | ||
| Works | | Works | ||
| drivers/clk/jz47xx | | drivers/clk/jz47xx | ||
+ | | | ||
| Could have common drivers/clk/ingenic for all SoCs with SoC specific binding using common components(?) | | Could have common drivers/clk/ingenic for all SoCs with SoC specific binding using common components(?) | ||
+ | | Uses common clock framework with jz4740. Intended for upstream | ||
|- | |- | ||
| CPUfreq | | CPUfreq | ||
| | | | ||
+ | | | ||
| | | | ||
| 4770 has [https://github.com/gcwnow/linux/commit/58cf5778deb2b72e45cca6b670d8b25809ecdc82], but clock infrastructure is different. Ingenic kernel had [https://github.com/ZubairLK/CI20_linux/blob/75f15b9f845416b349268dc62d1274be11455c13/arch/mips/xburst/soc-4775/common/cpufreq.c] for 4780. Not ported to 3.16 yet. | | 4770 has [https://github.com/gcwnow/linux/commit/58cf5778deb2b72e45cca6b670d8b25809ecdc82], but clock infrastructure is different. Ingenic kernel had [https://github.com/ZubairLK/CI20_linux/blob/75f15b9f845416b349268dc62d1274be11455c13/arch/mips/xburst/soc-4775/common/cpufreq.c] for 4780. Not ported to 3.16 yet. | ||
+ | | | ||
|- | |- | ||
| Device Tree | | Device Tree | ||
| Mostly | | Mostly | ||
| | | | ||
+ | | N/A | ||
| Parsed on boot, but compiled into the kernel. Would be good to allow it to be passed from the bootloader. | | Parsed on boot, but compiled into the kernel. Would be good to allow it to be passed from the bootloader. | ||
+ | | DT for jz4740 as well | ||
|- | |- | ||
| DMA | | DMA | ||
| Mostly | | Mostly | ||
| drivers/dma/dma-jz4780.c | | drivers/dma/dma-jz4780.c | ||
+ | | | ||
| needs combining into dma-jz4740. Works, just missing priority support | | needs combining into dma-jz4740. Works, just missing priority support | ||
+ | | still needs combining | ||
|- | |- | ||
| GPIO | | GPIO | ||
| Works | | Works | ||
| drivers/pinctrl/pinctrl-jz4780.c | | drivers/pinctrl/pinctrl-jz4780.c | ||
+ | | | ||
| should perhaps be in drivers/gpio/ (?) | | should perhaps be in drivers/gpio/ (?) | ||
+ | | | ||
|- | |- | ||
| Hotplug | | Hotplug | ||
| | | | ||
+ | | | ||
+ | | | ||
| | | | ||
| | | | ||
Line 51: | Line 65: | ||
| | | | ||
| drivers/irqchip/irq-jz4780.c | | drivers/irqchip/irq-jz4780.c | ||
+ | | | ||
| Very similar between SoCs (4740 has one bank, 60,70,80 has two banks) | | Very similar between SoCs (4740 has one bank, 60,70,80 has two banks) | ||
+ | | Consolidated work in 3.18 headed upstream | ||
|- | |- | ||
| MXU Context | | MXU Context | ||
| | | | ||
+ | | | ||
+ | | | ||
| | | | ||
| | | | ||
Line 61: | Line 79: | ||
| Mostly | | Mostly | ||
| drivers/pinctrl/pinctrl-jz4780.c | | drivers/pinctrl/pinctrl-jz4780.c | ||
+ | | N/A | ||
| Differs between SoCs. Functional, may need DT binding changes based on feedback from upstream. See also [https://github.com/gcwnow/linux/blob/jz-3.18/drivers/pinctrl/ingenic/pinctrl-jz4770.c pinctrl-jz4770.c]. | | Differs between SoCs. Functional, may need DT binding changes based on feedback from upstream. See also [https://github.com/gcwnow/linux/blob/jz-3.18/drivers/pinctrl/ingenic/pinctrl-jz4770.c pinctrl-jz4770.c]. | ||
+ | | | ||
|- | |- | ||
| Power Controller (LPCR Register) | | Power Controller (LPCR Register) | ||
| | | | ||
+ | | | ||
+ | | | ||
| | | | ||
| | | | ||
Line 71: | Line 93: | ||
| Works | | Works | ||
| | | | ||
+ | | | ||
+ | | | ||
| | | | ||
|- | |- | ||
| RTC | | RTC | ||
| Works | | Works | ||
+ | | drivers/rtc/rtc-jz4740.c | ||
| | | | ||
− | | | + | | Consolidated with jz4740 |
+ | | Consolidated with jz4740 | ||
|- | |- | ||
| SMP | | SMP | ||
| Works | | Works | ||
| | | | ||
+ | | | ||
+ | | Works | ||
| | | | ||
|- | |- | ||
Line 87: | Line 115: | ||
| | | | ||
| | | | ||
+ | | | ||
+ | | Consolidated with jz4740 | ||
|} | |} | ||
Revision as of 03:24, 23 January 2015
This page contains details about the latest kernel branch and any known quirks/special requirements.
It will be periodically updated to keep up to speed with the latest.
The current branch tracking mainline 3.18.3
https://github.com/MIPS/CI20_linux
Status of Linux Kernel Drivers
Core
Name | State | Path | Notes 3.0.8 | Notes 3.16 | Notes 3.18 + |
---|---|---|---|---|---|
Clocks | Works | drivers/clk/jz47xx | Could have common drivers/clk/ingenic for all SoCs with SoC specific binding using common components(?) | Uses common clock framework with jz4740. Intended for upstream | |
CPUfreq | 4770 has [1], but clock infrastructure is different. Ingenic kernel had [2] for 4780. Not ported to 3.16 yet. | ||||
Device Tree | Mostly | N/A | Parsed on boot, but compiled into the kernel. Would be good to allow it to be passed from the bootloader. | DT for jz4740 as well | |
DMA | Mostly | drivers/dma/dma-jz4780.c | needs combining into dma-jz4740. Works, just missing priority support | still needs combining | |
GPIO | Works | drivers/pinctrl/pinctrl-jz4780.c | should perhaps be in drivers/gpio/ (?) | ||
Hotplug | |||||
IRQ Controller | drivers/irqchip/irq-jz4780.c | Very similar between SoCs (4740 has one bank, 60,70,80 has two banks) | Consolidated work in 3.18 headed upstream | ||
MXU Context | |||||
PinCtrl | Mostly | drivers/pinctrl/pinctrl-jz4780.c | N/A | Differs between SoCs. Functional, may need DT binding changes based on feedback from upstream. See also pinctrl-jz4770.c. | |
Power Controller (LPCR Register) | |||||
Power Off & Reset | Works | ||||
RTC | Works | drivers/rtc/rtc-jz4740.c | Consolidated with jz4740 | Consolidated with jz4740 | |
SMP | Works | Works | |||
Watchdog | Works | Consolidated with jz4740 |
Peripheral drivers
Name | State | Path | Notes |
---|---|---|---|
ADC | WIP | Check branches on https://github.com/ZubairLK/CI20_linux | |
Audio (ALSA) | WIP | Check patches on https://groups.google.com/forum/#!forum/mips-creator-ci20-dev | |
Camera | |||
Ethernet | Works | drivers/net/ethernet/davicom/dm9000.c | Requires regulator and reset GPIO support, see [3]. |
GPU | |||
HDMI | WIP | Check patches on https://groups.google.com/forum/#!forum/mips-creator-ci20-dev | |
I2C | Works | drivers/i2c/busses/i2c-jz4780.c | 4740 has HW issue so uses gpio i2c instead. 4770 had [4] but unused so removed (also gave false positives on i2cdetect). |
IPU | 4770 has driver integrated with fbdev driver, see [5]. Plans to move to DRM+KVM but may take time. | ||
IR | Driver upstream | drivers/media/rc/gpio-ir-recv.c | GPIO, so use upstream GPIO driver |
MMC | Works | drivers/mmc/host/jz4740_mmc.c | Various changes needed, see [6]. Should not rename driver. Check whether affected by [7]. |
NAND | Works | ||
PWM | drivers/pwm/pwm-jz4740.c | 4770 uses same driver as 4740. Maybe applicable to 4780 too. See [8]. | |
Regulator | Works | ||
SPI (SSI) | None | SPIO GPIO should work, but a dedicated driver for the SSI hardware in drivers/spi/ would be better. | |
UART | Works | Quirks: see patches [9] [10] need moving to wrapper driver, like 8250_dw and mediatek which can be common between Ingenic SoCs. | |
USB (EHCI) | Works | ||
USB (OHCI) | Works | ||
USB(OTG) | Works | Upstream driver supports only host mode as of 3.15 | |
VPU | Driver aimed at 4770, see [11]. For samples see [12]. May be insecure (allows userland to do its own cache control and access TCSM banks). RemoteProc driver in progress, see [13]. | ||
Wifi | WIP | Check patches on https://groups.google.com/forum/#!forum/mips-creator-ci20-dev | |
BT | WIP | Check branches on https://github.com/ZubairLK/CI20_linux |
List of other possible issues
- /etc/init.d/iw8103 is the startup script for the BT/Wifi firmware in the default rootfs.
If using 3.16, the script can cause the boot to hang. Please move the script out of /etc/init.d
Add "root=/dev/mmcblk0p1 rootwait" to bootargs in uboot if you wish to boot a rootfs from mmc.
|