Difference between revisions of "CI20 upstream"

From eLinux.org
Jump to: navigation, search
(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.16
+
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.