CI20 upstream
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 3.0.8 | Notes 3.16 | Notes 3.18+ |
---|---|---|---|---|---|
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 | Works. Uses jz4740 drivers with patches. | ||
Camera | |||||
Ethernet | Works | drivers/net/ethernet/davicom/dm9000.c | Requires regulator and reset GPIO support, see [3]. | Patch upstreamed. | |
GPU | External Kernel Module | Works | WIP. Requires major overhaul as kernel layer changed significantly from 3.0.8 to 3.18 for jz4780. The way clocks, regulators enabled. The way registers handled etc.. LCD and HDMI drivers changed completely. | ||
HDMI | WIP | Resolution requires kernel recompile | Check patches on https://groups.google.com/forum/#!forum/mips-creator-ci20-dev | Resolution requires xorg/bootargs. Needs work for consolidation with upstream. | |
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). | Works | |
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]. | Works. Consolidation work needed before upstream. jz4740 has diverged. DMA driver differences block. | |
NAND | Works | Works. Reworked driver | Works. Reworked driver | ||
PWM | drivers/pwm/pwm-jz4740.c | 4770 uses same driver as 4740. Maybe applicable to 4780 too. See [8]. | |||
Regulator | Works | Works. Based on i2c driver. | Works. Based on i2c driver. | ||
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. | Works | ||
USB (EHCI) | Works | Buggy. | |||
USB (OHCI) | Works | Buggy. | |||
USB(DWC) | Works | Upstream driver supports only host mode as of 3.15 | Uses upstream driver. Sometimes gives overcurrent errors on dmesg | ||
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 | Works. Uses some hacks to keep regulators on to enable the chip. Uses upstreamed driver and mmc/dma. | ||
BT | WIP | Almost works. Uses some hacks to keep regulators on to enable the chip. Scans ok. File transfer presents a few issues. Possible not entirely kernels fault and bluez etc. |
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/3.18, the script can cause the boot to hang unless the BT device is responding. Please move the script out of /etc/init.d or make sure the kernel is correct.
This is an issue with broadcoms patchram utility. It keeps trying. (Perhaps its some arguments passed to the script?)
Add "root=/dev/mmcblk0p1 rootwait" to bootargs in uboot if you wish to boot a rootfs from mmc.
|