[linux] porting cvitek asic chips.

1. update cv182x/cv183x configuration file
	2. update cv181x/cv180x configuration file
	3. update clk driver for cvitek
	4. update dma driver for cvitek
	5. update soc driver for cvitek
	6. porting cvitek ion driver from kernel-4.19
	7. compatible with riscv

Change-Id: Icff9fafe0ebe7d6bab824bbadb952e08bdc66c19
This commit is contained in:
wangliang.wang
2023-03-09 14:38:25 +08:00
committed by sam.xiang
parent 4bc998a131
commit 4f810186ab
2062 changed files with 544892 additions and 2134 deletions

View File

@ -0,0 +1,59 @@
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/clock/cvitek,cv180x-clk.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
title: Cvitek CV180X SoC Clock Controller
maintainers:
- Fisher Cheng <fisher.cheng@cvitek.com>
description: |
The Cvitek CV180X SoC clock controller generates and supplies clock to
various peripherals within the SoC.
This binding uses common clock bindings
[1] Documentation/devicetree/bindings/clock/clock-bindings.txt
properties:
compatible:
const: cvitek,cv180x-clk
reg:
maxItems: 1
clocks:
maxItems: 1
'#clock-cells':
const: 1
required:
- compatible
- reg
- clocks
- '#clock-cells'
additionalProperties: false
examples:
# Clock controller node:
- |
clk: clock-controller {
compatible = "cvitek,cv180x-clk";
reg = <0x0 0x03002000 0x0 0x1000>;
clocks = <&osc>;
#clock-cells = <1>;
};
# Example PWM controller node that consumes clock generated by the clock controller:
- |
pwm0: pwm@3060000 {
compatible = "cvitek,cvi-pwm";
reg = <0x0 0x3060000 0x0 0x1000>;
clocks = <&clk CV180X_CLK_PWM>;
#pwm-cells = <1>;
};
...

View File

@ -0,0 +1,59 @@
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/clock/cvitek,cv181x-clk.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
title: Cvitek CV181X SoC Clock Controller
maintainers:
- Fisher Cheng <fisher.cheng@cvitek.com>
description: |
The Cvitek CV181X SoC clock controller generates and supplies clock to
various peripherals within the SoC.
This binding uses common clock bindings
[1] Documentation/devicetree/bindings/clock/clock-bindings.txt
properties:
compatible:
const: cvitek,cv181x-clk
reg:
maxItems: 1
clocks:
maxItems: 1
'#clock-cells':
const: 1
required:
- compatible
- reg
- clocks
- '#clock-cells'
additionalProperties: false
examples:
# Clock controller node:
- |
clk: clock-controller {
compatible = "cvitek,cv181x-clk";
reg = <0x0 0x03002000 0x0 0x1000>;
clocks = <&osc>;
#clock-cells = <1>;
};
# Example PWM controller node that consumes clock generated by the clock controller:
- |
pwm0: pwm@3060000 {
compatible = "cvitek,cvi-pwm";
reg = <0x0 0x3060000 0x0 0x1000>;
clocks = <&clk CV181X_CLK_PWM>;
#pwm-cells = <1>;
};
...

View File

@ -0,0 +1,6 @@
Cvitek base driver
This document describes the binding for the Cvitek base.
Required properties:
- compatible: "cvitek,base"

View File

@ -0,0 +1,5 @@
Cvitek bluetooth pin driver
Required properties:
- compatible: "cvitek,bt-pin"
- power-gpio: bluetooth chip power on gpio

View File

@ -0,0 +1,8 @@
Cvitek cif driver
This document describes the binding for the Cvitek cif.
Required properties:
- compatible: "cvitek,cif"
- reg: cif register regions
- interrupts: cif interrupt number

View File

@ -0,0 +1,8 @@
Cvitek fb driver
This document describes the binding for the Cvitek fb.
Required properties:
- compatible: "cvitek,fb"
- reg: fb register regions
- interrupts: display interrupt number

View File

@ -0,0 +1,8 @@
Cvitek JPEG Driver
This document describes the binding for Cvitek JPEG.
Required properties:
- compatible: "cvitek,jpeg"
- reg: jpu register regions
- interrupts: jpu interrupt number

View File

@ -0,0 +1,7 @@
Cvitek mipi_tx driver
This document describes the binding for the Cvitek vip.
Required properties:
- compatible: "cvitek,mipi_tx"
- reg: mipi_tx register regions

View File

@ -0,0 +1,9 @@
Cvitek PWM controller
Required properties:
- compatible: should be "cvitek,cvi-pwm"
- reg: physical base address and length of the controller's registers
- clocks: lable to the input clock
- #pwm-cells: should be 1. See pwm.txt in this directory for a description of

View File

@ -0,0 +1,8 @@
Cvitek rtc driver
This document describes the binding for the Cvitek rtc.
Required properties:
- compatible: "cvitek,rtc"
- reg: rtc register regions
- interrupts: rtc interrupt number

View File

@ -0,0 +1,8 @@
Cvitek saradc driver
This document describes the binding for the Cvitek saradc.
Required properties:
- compatible: "cvitek,saradc"
- reg: saradc register regions
- interrupts: saradc interrupt number

View File

@ -0,0 +1,19 @@
Cvitek sysDMA remap driver
This document describes the binding for Cvitek sysDMA remap register.
Required properties:
- compatible: "cvitek,sysdma_remap"
- reg: sysDMA remap register regions
- ch-remap: assign device for each sysDMA remap channel.
There are maximum 16 channels can be assigned to remap register.
But be noted that sysDMA can only support 8 channels at one time.
Example:
sysdma_remap {
compatible = "cvitek,sysdma_remap";
reg = <0x0 0x03000154 0x0 0x10>;
ch-remap = <CVI_I2S0_RX CVI_I2S0_TX CVI_I2S1_RX CVI_I2S1_TX
CVI_SPI_NAND CVI_SPI_NAND CVI_I2S3_RX CVI_I2S3_TX>;
};

View File

@ -0,0 +1,8 @@
Bitmain TPU driver
Required properties:
- compatible: "cvitek,tpu"
- reg: TDMA and TIU engine's register regions
- interrupts: TDMA interrupt number
- resets: reset handles for TIU and TDMA
- reset-names: should be "tiu" and "tdma"

View File

@ -0,0 +1,11 @@
Cvitek Video Codec Driver
This document describes the binding for Cvitek Video Codec.
Required properties:
- compatible: should be one of the following
- "cvitek,vcodec"
- "cvitek,cv1822-fpga-vcodec"
- "cvitek,cv1822-fpga-jpeg"
- reg: vcodec register regions
- interrupts: vcodec interrupt number

View File

@ -0,0 +1,8 @@
Cvitek vip driver
This document describes the binding for the Cvitek vip.
Required properties:
- compatible: "cvitek,vip"
- reg: vip register regions
- interrupts: vip interrupt number

View File

@ -0,0 +1,8 @@
Cvitek wiegand driver
This document describes the binding for the Cvitek vip.
Required properties:
- compatible: "cvitek,wiegand"
- reg: wiegand register regions
- interrupts: wiegand interrupt number

View File

@ -0,0 +1,6 @@
sCvitek wifi pin driver
Required properties:
- compatible: "cvitek,wifi-pin"
- power-gpio: Wifi chip power on gpio
- wakeup-gpio: Wifi chip wakeup gpio

View File

@ -0,0 +1,76 @@
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/sound/cvitek,cv182xa.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
title: Cvitek CV181X cv182xa codec driver
maintainers:
- Ethan Chen <ethan.chen@cvitek.com>
description: |
The Cvitek CV181X cv182xa internal audio codec driver.
properties:
compatible:
const: cvitek,cv182xa-adc
const: cvitek,cv182xa-dac
const: cvitek,cv182xaadc
const: cvitek,cv182xadac
reg:
maxItems: 1
clocks:
maxItems: 1
cvi,model:
maxItems: 1
clock-names:
maxItems: 1
required:
- compatible
- reg
- clocks
- clock-names
- cvi,model
additionalProperties: false
examples:
# adc codec node:
- |
adc: adc@0300A100 {
compatible = "cvitek,cv182xaadc";
reg = <0x0 0x0300A100 0x0 0x100>;
clocks = <&i2s_mclk 0>;
clock-names = "i2sclk";
clk_source = <0x04130000>;
};
# dac codec node:
- |
dac: dac@0300A000 {
compatible = "cvitek,cv182xadac";
reg = <0x0 0x0300A000 0x0 0x100>;
clocks = <&i2s_mclk 0>;
clock-names = "i2sclk";
};
# sound_adc node:
- |
sound_adc {
compatible = "cvitek,cv182xa-adc";
cvi,model = "CV182XA";
cvi,card_name = "cv182xa_adc";
};
# sound_dac node:
- |
sound_dac {
compatible = "cvitek,cv182xa-dac";
cvi,model = "CV182XA";
cvi,card_name = "cv182xa_dac";
};

View File

@ -0,0 +1,9 @@
* CVITEK CV180X Thermal Driver
** Required properties:
- compatible : "cvitek,cv180x-thermal"
- reg : Address range of the thermal registers.
- interrupts : Should contain interrupt for thermal system.
- clocks : The clocks for thermal(tempsen).
- clock-names : Should be "clk_tempsen".
- #thermal-sensor-cells : Should be <1>.

View File

@ -0,0 +1,9 @@
* CVITEK CV181X Thermal Driver
** Required properties:
- compatible : "cvitek,cv181x-thermal"
- reg : Address range of the thermal registers.
- interrupts : Should contain interrupt for thermal system.
- clocks : The clocks for thermal(tempsen).
- clock-names : Should be "clk_tempsen".
- #thermal-sensor-cells : Should be <1>.

View File

@ -0,0 +1,59 @@
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/clock/cvitek,cv180x-clk.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
title: Cvitek CV180X SoC Clock Controller
maintainers:
- Fisher Cheng <fisher.cheng@cvitek.com>
description: |
The Cvitek CV180X SoC clock controller generates and supplies clock to
various peripherals within the SoC.
This binding uses common clock bindings
[1] Documentation/devicetree/bindings/clock/clock-bindings.txt
properties:
compatible:
const: cvitek,cv180x-clk
reg:
maxItems: 1
clocks:
maxItems: 1
'#clock-cells':
const: 1
required:
- compatible
- reg
- clocks
- '#clock-cells'
additionalProperties: false
examples:
# Clock controller node:
- |
clk: clock-controller {
compatible = "cvitek,cv180x-clk";
reg = <0x0 0x03002000 0x0 0x1000>;
clocks = <&osc>;
#clock-cells = <1>;
};
# Example PWM controller node that consumes clock generated by the clock controller:
- |
pwm0: pwm@3060000 {
compatible = "cvitek,cvi-pwm";
reg = <0x0 0x3060000 0x0 0x1000>;
clocks = <&clk CV180X_CLK_PWM>;
#pwm-cells = <1>;
};
...

View File

@ -0,0 +1,59 @@
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/clock/cvitek,cv181x-clk.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
title: Cvitek CV181X SoC Clock Controller
maintainers:
- Fisher Cheng <fisher.cheng@cvitek.com>
description: |
The Cvitek CV181X SoC clock controller generates and supplies clock to
various peripherals within the SoC.
This binding uses common clock bindings
[1] Documentation/devicetree/bindings/clock/clock-bindings.txt
properties:
compatible:
const: cvitek,cv181x-clk
reg:
maxItems: 1
clocks:
maxItems: 1
'#clock-cells':
const: 1
required:
- compatible
- reg
- clocks
- '#clock-cells'
additionalProperties: false
examples:
# Clock controller node:
- |
clk: clock-controller {
compatible = "cvitek,cv181x-clk";
reg = <0x0 0x03002000 0x0 0x1000>;
clocks = <&osc>;
#clock-cells = <1>;
};
# Example PWM controller node that consumes clock generated by the clock controller:
- |
pwm0: pwm@3060000 {
compatible = "cvitek,cvi-pwm";
reg = <0x0 0x3060000 0x0 0x1000>;
clocks = <&clk CV181X_CLK_PWM>;
#pwm-cells = <1>;
};
...

View File

@ -0,0 +1,6 @@
Cvitek base driver
This document describes the binding for the Cvitek base.
Required properties:
- compatible: "cvitek,base"

View File

@ -0,0 +1,5 @@
Cvitek bluetooth pin driver
Required properties:
- compatible: "cvitek,bt-pin"
- power-gpio: bluetooth chip power on gpio

View File

@ -0,0 +1,8 @@
Cvitek cif driver
This document describes the binding for the Cvitek cif.
Required properties:
- compatible: "cvitek,cif"
- reg: cif register regions
- interrupts: cif interrupt number

View File

@ -0,0 +1,8 @@
Cvitek fb driver
This document describes the binding for the Cvitek fb.
Required properties:
- compatible: "cvitek,fb"
- reg: fb register regions
- interrupts: display interrupt number

View File

@ -0,0 +1,8 @@
Cvitek JPEG Driver
This document describes the binding for Cvitek JPEG.
Required properties:
- compatible: "cvitek,jpeg"
- reg: jpu register regions
- interrupts: jpu interrupt number

View File

@ -0,0 +1,7 @@
Cvitek mipi_tx driver
This document describes the binding for the Cvitek vip.
Required properties:
- compatible: "cvitek,mipi_tx"
- reg: mipi_tx register regions

View File

@ -0,0 +1,9 @@
Cvitek PWM controller
Required properties:
- compatible: should be "cvitek,cvi-pwm"
- reg: physical base address and length of the controller's registers
- clocks: lable to the input clock
- #pwm-cells: should be 1. See pwm.txt in this directory for a description of

View File

@ -0,0 +1,8 @@
Cvitek rtc driver
This document describes the binding for the Cvitek rtc.
Required properties:
- compatible: "cvitek,rtc"
- reg: rtc register regions
- interrupts: rtc interrupt number

View File

@ -0,0 +1,8 @@
Cvitek saradc driver
This document describes the binding for the Cvitek saradc.
Required properties:
- compatible: "cvitek,saradc"
- reg: saradc register regions
- interrupts: saradc interrupt number

View File

@ -0,0 +1,19 @@
Cvitek sysDMA remap driver
This document describes the binding for Cvitek sysDMA remap register.
Required properties:
- compatible: "cvitek,sysdma_remap"
- reg: sysDMA remap register regions
- ch-remap: assign device for each sysDMA remap channel.
There are maximum 16 channels can be assigned to remap register.
But be noted that sysDMA can only support 8 channels at one time.
Example:
sysdma_remap {
compatible = "cvitek,sysdma_remap";
reg = <0x0 0x03000154 0x0 0x10>;
ch-remap = <CVI_I2S0_RX CVI_I2S0_TX CVI_I2S1_RX CVI_I2S1_TX
CVI_SPI_NAND CVI_SPI_NAND CVI_I2S3_RX CVI_I2S3_TX>;
};

View File

@ -0,0 +1,8 @@
Bitmain TPU driver
Required properties:
- compatible: "cvitek,tpu"
- reg: TDMA and TIU engine's register regions
- interrupts: TDMA interrupt number
- resets: reset handles for TIU and TDMA
- reset-names: should be "tiu" and "tdma"

View File

@ -0,0 +1,11 @@
Cvitek Video Codec Driver
This document describes the binding for Cvitek Video Codec.
Required properties:
- compatible: should be one of the following
- "cvitek,vcodec"
- "cvitek,cv1822-fpga-vcodec"
- "cvitek,cv1822-fpga-jpeg"
- reg: vcodec register regions
- interrupts: vcodec interrupt number

View File

@ -0,0 +1,8 @@
Cvitek vip driver
This document describes the binding for the Cvitek vip.
Required properties:
- compatible: "cvitek,vip"
- reg: vip register regions
- interrupts: vip interrupt number

View File

@ -0,0 +1,8 @@
Cvitek wiegand driver
This document describes the binding for the Cvitek vip.
Required properties:
- compatible: "cvitek,wiegand"
- reg: wiegand register regions
- interrupts: wiegand interrupt number

View File

@ -0,0 +1,6 @@
sCvitek wifi pin driver
Required properties:
- compatible: "cvitek,wifi-pin"
- power-gpio: Wifi chip power on gpio
- wakeup-gpio: Wifi chip wakeup gpio

View File

@ -0,0 +1,76 @@
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/sound/cvitek,cv182xa.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
title: Cvitek CV181X cv182xa codec driver
maintainers:
- Ethan Chen <ethan.chen@cvitek.com>
description: |
The Cvitek CV181X cv182xa internal audio codec driver.
properties:
compatible:
const: cvitek,cv182xa-adc
const: cvitek,cv182xa-dac
const: cvitek,cv182xaadc
const: cvitek,cv182xadac
reg:
maxItems: 1
clocks:
maxItems: 1
cvi,model:
maxItems: 1
clock-names:
maxItems: 1
required:
- compatible
- reg
- clocks
- clock-names
- cvi,model
additionalProperties: false
examples:
# adc codec node:
- |
adc: adc@0300A100 {
compatible = "cvitek,cv182xaadc";
reg = <0x0 0x0300A100 0x0 0x100>;
clocks = <&i2s_mclk 0>;
clock-names = "i2sclk";
clk_source = <0x04130000>;
};
# dac codec node:
- |
dac: dac@0300A000 {
compatible = "cvitek,cv182xadac";
reg = <0x0 0x0300A000 0x0 0x100>;
clocks = <&i2s_mclk 0>;
clock-names = "i2sclk";
};
# sound_adc node:
- |
sound_adc {
compatible = "cvitek,cv182xa-adc";
cvi,model = "CV182XA";
cvi,card_name = "cv182xa_adc";
};
# sound_dac node:
- |
sound_dac {
compatible = "cvitek,cv182xa-dac";
cvi,model = "CV182XA";
cvi,card_name = "cv182xa_dac";
};

View File

@ -0,0 +1,9 @@
* CVITEK CV180X Thermal Driver
** Required properties:
- compatible : "cvitek,cv180x-thermal"
- reg : Address range of the thermal registers.
- interrupts : Should contain interrupt for thermal system.
- clocks : The clocks for thermal(tempsen).
- clock-names : Should be "clk_tempsen".
- #thermal-sensor-cells : Should be <1>.

View File

@ -0,0 +1,9 @@
* CVITEK CV181X Thermal Driver
** Required properties:
- compatible : "cvitek,cv181x-thermal"
- reg : Address range of the thermal registers.
- interrupts : Should contain interrupt for thermal system.
- clocks : The clocks for thermal(tempsen).
- clock-names : Should be "clk_tempsen".
- #thermal-sensor-cells : Should be <1>.

View File

@ -249,6 +249,8 @@ patternProperties:
description: Shenzen Chuangsiqi Technology Co.,Ltd. description: Shenzen Chuangsiqi Technology Co.,Ltd.
"^cubietech,.*": "^cubietech,.*":
description: Cubietech, Ltd. description: Cubietech, Ltd.
"^cvitek,.*":
description: Cvitek Co., Ltd.
"^cypress,.*": "^cypress,.*":
description: Cypress Semiconductor Corporation description: Cypress Semiconductor Corporation
"^cznic,.*": "^cznic,.*":

View File

@ -0,0 +1,5 @@
Copyright (c) 2011-2019, Ulf Magnusson <ulfalizer@gmail.com>
Permission to use, copy, modify, and/or distribute this software for any purpose with or without fee is hereby granted, provided that the above copyright notice and this permission notice appear in all copies.
THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.

View File

@ -0,0 +1,2 @@
# Include the license file in source distributions
include LICENSE.txt

View File

@ -0,0 +1,27 @@
#!/usr/bin/env python3
# Copyright (c) 2018-2019, Ulf Magnusson
# SPDX-License-Identifier: ISC
"""
Writes a configuration file where all symbols are set to their their default
values.
The default output filename is '.config'. A different filename can be passed in
the KCONFIG_CONFIG environment variable.
Usage for the Linux kernel:
$ make [ARCH=<arch>] scriptconfig SCRIPT=Kconfiglib/alldefconfig.py
"""
import kconfiglib
def main():
kconf = kconfiglib.standard_kconfig(__doc__)
kconf.load_allconfig("alldef.config")
print(kconf.write_config())
if __name__ == "__main__":
main()

View File

@ -0,0 +1,46 @@
#!/usr/bin/env python3
# Copyright (c) 2018-2019, Ulf Magnusson
# SPDX-License-Identifier: ISC
"""
Writes a configuration file where as many symbols as possible are set to 'm'.
The default output filename is '.config'. A different filename can be passed
in the KCONFIG_CONFIG environment variable.
Usage for the Linux kernel:
$ make [ARCH=<arch>] scriptconfig SCRIPT=Kconfiglib/allmodconfig.py
"""
import kconfiglib
def main():
kconf = kconfiglib.standard_kconfig(__doc__)
# See allnoconfig.py
kconf.warn = False
for sym in kconf.unique_defined_syms:
if sym.orig_type == kconfiglib.BOOL:
# 'bool' choice symbols get their default value, as determined by
# e.g. 'default's on the choice
if not sym.choice:
# All other bool symbols get set to 'y', like for allyesconfig
sym.set_value(2)
elif sym.orig_type == kconfiglib.TRISTATE:
sym.set_value(1)
for choice in kconf.unique_choices:
choice.set_value(2 if choice.orig_type == kconfiglib.BOOL else 1)
kconf.warn = True
kconf.load_allconfig("allmod.config")
print(kconf.write_config())
if __name__ == "__main__":
main()

View File

@ -0,0 +1,45 @@
#!/usr/bin/env python3
# Copyright (c) 2018-2019, Ulf Magnusson
# SPDX-License-Identifier: ISC
"""
Writes a configuration file where as many symbols as possible are set to 'n'.
The default output filename is '.config'. A different filename can be passed
in the KCONFIG_CONFIG environment variable.
Usage for the Linux kernel:
$ make [ARCH=<arch>] scriptconfig SCRIPT=Kconfiglib/allnoconfig.py
"""
# See examples/allnoconfig_walk.py for another way to implement this script
import kconfiglib
def main():
kconf = kconfiglib.standard_kconfig(__doc__)
# Avoid warnings that would otherwise get printed by Kconfiglib for the
# following:
#
# 1. Assigning a value to a symbol without a prompt, which never has any
# effect
#
# 2. Assigning values invalid for the type (only bool/tristate symbols
# accept 0/1/2, for n/m/y). The assignments will be ignored for other
# symbol types, which is what we want.
kconf.warn = False
for sym in kconf.unique_defined_syms:
sym.set_value(2 if sym.is_allnoconfig_y else 0)
kconf.warn = True
kconf.load_allconfig("allno.config")
print(kconf.write_config())
if __name__ == "__main__":
main()

View File

@ -0,0 +1,56 @@
#!/usr/bin/env python3
# Copyright (c) 2018-2019, Ulf Magnusson
# SPDX-License-Identifier: ISC
"""
Writes a configuration file where as many symbols as possible are set to 'y'.
The default output filename is '.config'. A different filename can be passed
in the KCONFIG_CONFIG environment variable.
Usage for the Linux kernel:
$ make [ARCH=<arch>] scriptconfig SCRIPT=Kconfiglib/allyesconfig.py
"""
import kconfiglib
def main():
kconf = kconfiglib.standard_kconfig(__doc__)
# See allnoconfig.py
kconf.warn = False
# Try to set all symbols to 'y'. Dependencies might truncate the value down
# later, but this will at least give the highest possible value.
#
# Assigning 0/1/2 to non-bool/tristate symbols has no effect (int/hex
# symbols still take a string, because they preserve formatting).
for sym in kconf.unique_defined_syms:
# Set choice symbols to 'm'. This value will be ignored for choices in
# 'y' mode (the "normal" mode), which will instead just get their
# default selection, but will set all symbols in m-mode choices to 'm',
# which is as high as they can go.
#
# Here's a convoluted example of how you might get an m-mode choice
# even during allyesconfig:
#
# choice
# tristate "weird choice"
# depends on m
sym.set_value(1 if sym.choice else 2)
# Set all choices to the highest possible mode
for choice in kconf.unique_choices:
choice.set_value(2)
kconf.warn = True
kconf.load_allconfig("allyes.config")
print(kconf.write_config())
if __name__ == "__main__":
main()

View File

@ -0,0 +1,43 @@
#!/usr/bin/env python3
# Copyright (c) 2019, Ulf Magnusson
# SPDX-License-Identifier: ISC
"""
Reads a specified configuration file, then writes a new configuration file.
This can be used to initialize the configuration from e.g. an arch-specific
configuration file. This input configuration file would usually be a minimal
configuration file, as generated by e.g. savedefconfig.
The default output filename is '.config'. A different filename can be passed in
the KCONFIG_CONFIG environment variable.
"""
import argparse
import kconfiglib
def main():
parser = argparse.ArgumentParser(
formatter_class=argparse.RawDescriptionHelpFormatter,
description=__doc__)
parser.add_argument(
"--kconfig",
default="Kconfig",
help="Top-level Kconfig file (default: Kconfig)")
parser.add_argument(
"config",
metavar="CONFIGURATION",
help="Input configuration file")
args = parser.parse_args()
kconf = kconfiglib.Kconfig(args.kconfig, suppress_traceback=True)
print(kconf.load_config(args.config))
print(kconf.write_config())
if __name__ == "__main__":
main()

View File

@ -0,0 +1,66 @@
# This is tree-walking version of allnoconfig.py, for demonstration purposes.
# Verified by the test suite to generate identical output to 'make allnoconfig'
# for all ARCHes.
#
# Note: A more practical version would use Kconfig.node_iter(). The manual tree
# walking is for demonstration purposes.
#
# Usage for the Linux kernel:
#
# $ make [ARCH=<arch>] scriptconfig SCRIPT=Kconfiglib/examples/allnoconfig_walk.py
import sys
from kconfiglib import Kconfig, Symbol
def do_allnoconfig(node):
global changed
# Walk the tree of menu nodes. You can imagine this as going down/into menu
# entries in the menuconfig interface, setting each to n (or the lowest
# assignable value).
while node:
if isinstance(node.item, Symbol):
sym = node.item
# Is the symbol a non-allnoconfig_y symbol that can be set to a
# lower value than its current value?
if (not sym.is_allnoconfig_y and
sym.assignable and
sym.assignable[0] < sym.tri_value):
# Yup, lower it
sym.set_value(sym.assignable[0])
changed = True
# Recursively lower children
if node.list:
do_allnoconfig(node.list)
node = node.next
# Parse the Kconfig files
kconf = Kconfig(sys.argv[1])
# Do an initial pass to set 'option allnoconfig_y' symbols to y
for sym in kconf.unique_defined_syms:
if sym.is_allnoconfig_y:
sym.set_value(2)
while True:
# Changing later symbols in the configuration can sometimes allow earlier
# symbols to be lowered, e.g. if a later symbol 'select's an earlier
# symbol. To handle such situations, we do additional passes over the tree
# until we're no longer able to change the value of any symbol in a pass.
changed = False
do_allnoconfig(kconf.top_node)
# Did the pass change any symbols?
if not changed:
break
print(kconf.write_config())

View File

@ -0,0 +1,39 @@
# Produces exactly the same output as the following script:
#
# make defconfig
# echo CONFIG_ETHERNET=n >> .config
# make oldconfig
# echo CONFIG_ETHERNET=y >> .config
# yes n | make oldconfig
#
# This came up in https://github.com/ulfalizer/Kconfiglib/issues/15.
#
# Usage:
#
# $ make [ARCH=<arch>] scriptconfig SCRIPT=Kconfiglib/examples/defconfig_oldconfig.py
import sys
import kconfiglib
kconf = kconfiglib.Kconfig(sys.argv[1])
# Mirrors defconfig
kconf.load_config("arch/x86/configs/x86_64_defconfig")
kconf.write_config()
# Mirrors the first oldconfig
kconf.load_config()
kconf.syms["ETHERNET"].set_value(0)
kconf.write_config()
# Mirrors the second oldconfig
kconf.load_config()
kconf.syms["ETHERNET"].set_value(2)
for s in kconf.unique_defined_syms:
if s.user_value is None and 0 in s.assignable:
s.set_value(0)
# Write the final configuration
print(kconf.write_config())

View File

@ -0,0 +1,15 @@
# Prints all (set) environment variables referenced in the Kconfig files
# together with their values, as a list of assignments.
#
# Note: This only works for environment variables referenced via the $(FOO)
# preprocessor syntax. The older $FOO syntax is maintained for backwards
# compatibility.
import os
import sys
import kconfiglib
print(" ".join("{}='{}'".format(var, os.environ[var])
for var in kconfiglib.Kconfig(sys.argv[1]).env_vars))

View File

@ -0,0 +1,24 @@
# Evaluates an expression (e.g. "X86_64 || (X86_32 && X86_LOCAL_APIC)") in the
# context of a configuration. Note that this always yields a tristate value (n,
# m, or y).
#
# Usage:
#
# $ make [ARCH=<arch>] scriptconfig SCRIPT=Kconfiglib/examples/eval_expr.py SCRIPT_ARG=<expr>
import sys
import kconfiglib
if len(sys.argv) < 3:
sys.exit("Pass the expression to evaluate with SCRIPT_ARG=<expression>")
kconf = kconfiglib.Kconfig(sys.argv[1])
expr = sys.argv[2]
# Enable modules so that m doesn't get demoted to n
kconf.modules.set_value(2)
print("the expression '{}' evaluates to {}"
.format(expr, kconf.eval_string(expr)))

View File

@ -0,0 +1,112 @@
# Prints all menu nodes that reference a given symbol any of their properties
# or property conditions, along with their parent menu nodes.
#
# Usage:
#
# $ make [ARCH=<arch>] scriptconfig SCRIPT=Kconfiglib/examples/find_symbol.py SCRIPT_ARG=<name>
#
# Example output for SCRIPT_ARG=X86:
#
# Found 470 locations that reference X86:
#
# ========== Location 1 (init/Kconfig:1108) ==========
#
# config SGETMASK_SYSCALL
# bool
# prompt "sgetmask/ssetmask syscalls support" if EXPERT
# default PARISC || M68K || PPC || MIPS || X86 || SPARC || MICROBLAZE || SUPERH
# help
# sys_sgetmask and sys_ssetmask are obsolete system calls
# no longer supported in libc but still enabled by default in some
# architectures.
#
# If unsure, leave the default option here.
#
# ---------- Parent 1 (init/Kconfig:1077) ----------
#
# menuconfig EXPERT
# bool
# prompt "Configure standard kernel features (expert users)"
# select DEBUG_KERNEL
# help
# This option allows certain base kernel options and settings
# to be disabled or tweaked. This is for specialized
# environments which can tolerate a "non-standard" kernel.
# Only use this if you really know what you are doing.
#
# ---------- Parent 2 (init/Kconfig:39) ----------
#
# menu "General setup"
#
# ========== Location 2 (arch/Kconfig:29) ==========
#
# config OPROFILE_EVENT_MULTIPLEX
# bool
# prompt "OProfile multiplexing support (EXPERIMENTAL)"
# default "n"
# depends on OPROFILE && X86
# help
# The number of hardware counters is limited. The multiplexing
# feature enables OProfile to gather more events than counters
# are provided by the hardware. This is realized by switching
# between events at a user specified time interval.
#
# If unsure, say N.
#
# ---------- Parent 1 (arch/Kconfig:16) ----------
#
# config OPROFILE
# tristate
# prompt "OProfile system profiling"
# select RING_BUFFER
# select RING_BUFFER_ALLOW_SWAP
# depends on PROFILING && HAVE_OPROFILE
# help
# OProfile is a profiling system capable of profiling the
# whole system, include the kernel, kernel modules, libraries,
# and applications.
#
# If unsure, say N.
#
# ---------- Parent 2 (init/Kconfig:39) ----------
#
# menu "General setup"
#
# ... (tons more)
import sys
import kconfiglib
if len(sys.argv) < 3:
sys.exit('Pass symbol name (without "CONFIG_" prefix) with SCRIPT_ARG=<name>')
kconf = kconfiglib.Kconfig(sys.argv[1])
sym_name = sys.argv[2]
if sym_name not in kconf.syms:
print("No symbol {} exists in the configuration".format(sym_name))
sys.exit(0)
referencing = [node for node in kconf.node_iter()
if kconf.syms[sym_name] in node.referenced]
if not referencing:
print("No references to {} found".format(sym_name))
sys.exit(0)
print("Found {} locations that reference {}:\n"
.format(len(referencing), sym_name))
for i, node in enumerate(referencing, 1):
print("========== Location {} ({}:{}) ==========\n\n{}"
.format(i, node.filename, node.linenr, node))
# Print the parents of the menu node too
node = node.parent
parent_i = 1
while node is not kconf.top_node:
print("---------- Parent {} ({}:{}) ----------\n\n{}"
.format(parent_i, node.filename, node.linenr, node))
node = node.parent
parent_i += 1

View File

@ -0,0 +1,64 @@
# Does a case-insensitive search for a regular expression in the help texts of
# symbols and choices and the prompts of menus and comments. Prints the
# matching items together with their locations and the matching text.
#
# Usage:
#
# $ make [ARCH=<arch>] scriptconfig SCRIPT=Kconfiglib/examples/help_grep.py SCRIPT_ARG=<regex>
#
# Shortened example output for SCRIPT_ARG=general:
#
# menu "General setup"
# location: init/Kconfig:39
#
# config SYSVIPC
# bool
# prompt "System V IPC"
# help
# ...
# exchange information. It is generally considered to be a good thing,
# ...
#
# location: init/Kconfig:233
#
# config BSD_PROCESS_ACCT
# bool
# prompt "BSD Process Accounting" if MULTIUSER
# help
# ...
# information. This is generally a good idea, so say Y.
#
# location: init/Kconfig:403
#
# ...
import re
import sys
from kconfiglib import Kconfig, Symbol, Choice, MENU, COMMENT
if len(sys.argv) < 3:
sys.exit("Pass the regex with SCRIPT_ARG=<regex>")
search = re.compile(sys.argv[2], re.IGNORECASE).search
for node in Kconfig(sys.argv[1]).node_iter():
match = False
if isinstance(node.item, (Symbol, Choice)) and \
node.help is not None and search(node.help):
print(node.item)
match = True
elif node.item == MENU and search(node.prompt[0]):
print('menu "{}"'.format(node.prompt[0]))
match = True
elif node.item == COMMENT and search(node.prompt[0]):
print('comment "{}"'.format(node.prompt[0]))
match = True
if match:
print("location: {}:{}\n".format(node.filename, node.linenr))

View File

@ -0,0 +1 @@
../kconfiglib.py

View File

@ -0,0 +1,156 @@
# Prints a list of symbols that are referenced in the Kconfig files of some
# architecture but not defined by the Kconfig files of any architecture.
#
# A Kconfig file might be shared between many architectures and legitimately
# reference undefined symbols for some of them, but if no architecture defines
# the symbol, it usually indicates a problem or potential cleanup.
#
# This script could be sped up a lot if needed. See the comment near the
# referencing_nodes() call.
#
# Run with the following command in the kernel root:
#
# $ python(3) Kconfiglib/examples/list_undefined.py
#
# Example output:
#
# Registering defined and undefined symbols for all arches
# Processing mips
# Processing ia64
# Processing metag
# ...
#
# Finding references to each undefined symbol
# Processing mips
# Processing ia64
# Processing metag
# ...
#
# The following globally undefined symbols were found, listed here
# together with the locations of the items that reference them.
# References might come from enclosing menus and ifs.
#
# ARM_ERRATA_753970: arch/arm/mach-mvebu/Kconfig:56, arch/arm/mach-mvebu/Kconfig:39
# SUNXI_CCU_MP: drivers/clk/sunxi-ng/Kconfig:14
# SUNXI_CCU_DIV: drivers/clk/sunxi-ng/Kconfig:14
# AC97: sound/ac97/Kconfig:6
# ...
import os
import subprocess
from kconfiglib import Kconfig
# Referenced inside the Kconfig files
os.environ["KERNELVERSION"] = str(
subprocess.check_output(("make", "kernelversion")).decode("utf-8").rstrip()
)
def all_arch_srcarch_pairs():
"""
Generates all valid (ARCH, SRCARCH) tuples for the kernel, corresponding to
different architectures. SRCARCH holds the arch/ subdirectory.
"""
for srcarch in os.listdir("arch"):
# Each subdirectory of arch/ containing a Kconfig file corresponds to
# an architecture
if os.path.exists(os.path.join("arch", srcarch, "Kconfig")):
yield (srcarch, srcarch)
# Some architectures define additional ARCH settings with ARCH != SRCARCH
# (search for "Additional ARCH settings for" in the top-level Makefile)
yield ("i386", "x86")
yield ("x86_64", "x86")
yield ("sparc32", "sparc")
yield ("sparc64", "sparc")
yield ("sh64", "sh")
yield ("um", "um")
def all_arch_srcarch_kconfigs():
"""
Generates Kconfig instances for all the architectures in the kernel
"""
os.environ["srctree"] = "."
os.environ["HOSTCC"] = "gcc"
os.environ["HOSTCXX"] = "g++"
os.environ["CC"] = "gcc"
os.environ["LD"] = "ld"
for arch, srcarch in all_arch_srcarch_pairs():
print(" Processing " + arch)
os.environ["ARCH"] = arch
os.environ["SRCARCH"] = srcarch
# um (User Mode Linux) uses a different base Kconfig file
yield Kconfig("Kconfig" if arch != "um" else "arch/x86/um/Kconfig",
warn=False)
print("Registering defined and undefined symbols for all arches")
# Sets holding the names of all defined and undefined symbols, for all
# architectures
defined = set()
undefined = set()
for kconf in all_arch_srcarch_kconfigs():
for name, sym in kconf.syms.items():
if sym.nodes:
# If the symbol has a menu node, it is defined
defined.add(name)
else:
# Undefined symbol. We skip some of the uninteresting ones.
# Due to how Kconfig works, integer literals show up as symbols
# (from e.g. 'default 1'). Skip those.
try:
int(name, 0)
continue
except ValueError:
# Interesting undefined symbol
undefined.add(name)
print("\nFinding references to each undefined symbol")
def referencing_nodes(kconf, name):
# Returns a list of all menu nodes that reference a symbol named 'name' in
# any of their properties or property conditions
res = []
for node in kconf.node_iter():
for ref in node.referenced:
if ref.name == name:
res.append(node)
return res
# Maps each globally undefined symbol to the menu nodes that reference it
undef_sym_refs = [(name, set()) for name in undefined - defined]
for kconf in all_arch_srcarch_kconfigs():
for name, refs in undef_sym_refs:
# This means that we search the entire configuration tree for each
# undefined symbol, which is terribly inefficient. We could speed
# things up by tweaking referencing_nodes() to compare each symbol to
# multiple symbols while walking the configuration tree.
for node in referencing_nodes(kconf, name):
refs.add("{}:{}".format(node.filename, node.linenr))
print("\nThe following globally undefined symbols were found, listed here\n"
"together with the locations of the items that reference them.\n"
"References might come from enclosing menus and ifs.\n")
for name, refs in undef_sym_refs:
print(" {}: {}".format(name, ", ".join(refs)))

View File

@ -0,0 +1,341 @@
#!/usr/bin/env python3
# Implements a simple configuration interface on top of Kconfiglib to
# demonstrate concepts for building a menuconfig-like. Emulates how the
# standard menuconfig prints menu entries.
#
# Always displays the entire Kconfig tree to keep things as simple as possible
# (all symbols, choices, menus, and comments).
#
# Usage:
#
# $ python(3) Kconfiglib/examples/menuconfig.py <Kconfig file>
#
# A sample Kconfig is available in Kconfiglib/examples/Kmenuconfig.
#
# Here's a notation guide. The notation matches the one used by menuconfig
# (scripts/kconfig/mconf):
#
# [ ] prompt - Bool
# < > prompt - Tristate
# {M} prompt - Tristate selected to m. Can only be set to m or y.
# -*- prompt - Bool/tristate selected to y, pinning it
# -M- prompt - Tristate selected to m that also has m visibility,
# pinning it to m
# (foo) prompt - String/int/hex symbol with value "foo"
# --> prompt - The selected symbol in a choice in y mode. This
# syntax is unique to this example.
#
# When modules are disabled, the .type attribute of TRISTATE symbols and
# choices automatically changes to BOOL. This trick is used by the C
# implementation as well, and gives the expected behavior without having to do
# anything extra here. The original type is available in .orig_type if needed.
#
# The Kconfiglib/examples/Kmenuconfig example uses named choices to be able to
# refer to choices by name. Named choices are supported in the C tools too, but
# I don't think I've ever seen them used in the wild.
#
# Sample session:
#
# $ python Kconfiglib/examples/menuconfig.py Kconfiglib/examples/Kmenuconfig
#
# ======== Example Kconfig configuration ========
#
# [*] Enable loadable module support (MODULES)
# Bool and tristate symbols
# [*] Bool symbol (BOOL)
# [ ] Dependent bool symbol (BOOL_DEP)
# < > Dependent tristate symbol (TRI_DEP)
# [ ] First prompt (TWO_MENU_NODES)
# < > Tristate symbol (TRI)
# [ ] Second prompt (TWO_MENU_NODES)
# *** These are selected by TRI_DEP ***
# < > Tristate selected by TRI_DEP (SELECTED_BY_TRI_DEP)
# < > Tristate implied by TRI_DEP (IMPLIED_BY_TRI_DEP)
# String, int, and hex symbols
# (foo) String symbol (STRING)
# (747) Int symbol (INT)
# (0xABC) Hex symbol (HEX)
# Various choices
# -*- Bool choice (BOOL_CHOICE)
# --> Bool choice sym 1 (BOOL_CHOICE_SYM_1)
# Bool choice sym 2 (BOOL_CHOICE_SYM_2)
# {M} Tristate choice (TRI_CHOICE)
# < > Tristate choice sym 1 (TRI_CHOICE_SYM_1)
# < > Tristate choice sym 2 (TRI_CHOICE_SYM_2)
# [ ] Optional bool choice (OPT_BOOL_CHOICE)
#
# Enter a symbol/choice name, "load_config", or "write_config" (or press CTRL+D to exit): BOOL
# Value for BOOL (available: n, y): n
#
# ======== Example Kconfig configuration ========
#
# [*] Enable loadable module support (MODULES)
# Bool and tristate symbols
# [ ] Bool symbol (BOOL)
# < > Tristate symbol (TRI)
# [ ] Second prompt (TWO_MENU_NODES)
# *** These are selected by TRI_DEP ***
# < > Tristate selected by TRI_DEP (SELECTED_BY_TRI_DEP)
# < > Tristate implied by TRI_DEP (IMPLIED_BY_TRI_DEP)
# String, int, and hex symbols
# (foo) String symbol (STRING)
# (747) Int symbol (INT)
# (0xABC) Hex symbol (HEX)
# Various choices
# -*- Bool choice (BOOL_CHOICE)
# --> Bool choice sym 1 (BOOL_CHOICE_SYM_1)
# Bool choice sym 2 (BOOL_CHOICE_SYM_2)
# {M} Tristate choice (TRI_CHOICE)
# < > Tristate choice sym 1 (TRI_CHOICE_SYM_1)
# < > Tristate choice sym 2 (TRI_CHOICE_SYM_2)
# [ ] Optional bool choice (OPT_BOOL_CHOICE)
#
# Enter a symbol/choice name, "load_config", or "write_config" (or press CTRL+D to exit): MODULES
# Value for MODULES (available: n, y): n
#
# ======== Example Kconfig configuration ========
#
# [ ] Enable loadable module support (MODULES)
# Bool and tristate symbols
# [ ] Bool symbol (BOOL)
# [ ] Tristate symbol (TRI)
# [ ] Second prompt (TWO_MENU_NODES)
# *** These are selected by TRI_DEP ***
# [ ] Tristate selected by TRI_DEP (SELECTED_BY_TRI_DEP)
# [ ] Tristate implied by TRI_DEP (IMPLIED_BY_TRI_DEP)
# String, int, and hex symbols
# (foo) String symbol (STRING)
# (747) Int symbol (INT)
# (0xABC) Hex symbol (HEX)
# Various choices
# -*- Bool choice (BOOL_CHOICE)
# --> Bool choice sym 1 (BOOL_CHOICE_SYM_1)
# Bool choice sym 2 (BOOL_CHOICE_SYM_2)
# -*- Tristate choice (TRI_CHOICE)
# --> Tristate choice sym 1 (TRI_CHOICE_SYM_1)
# Tristate choice sym 2 (TRI_CHOICE_SYM_2)
# [ ] Optional bool choice (OPT_BOOL_CHOICE)
#
# Enter a symbol/choice name, "load_config", or "write_config" (or press CTRL+D to exit): ^D
from __future__ import print_function
import readline
import sys
from kconfiglib import Kconfig, \
Symbol, MENU, COMMENT, \
BOOL, TRISTATE, STRING, INT, HEX, UNKNOWN, \
expr_value, \
TRI_TO_STR
# Python 2/3 compatibility hack
if sys.version_info[0] < 3:
input = raw_input
def indent_print(s, indent):
print(indent*" " + s)
def value_str(sc):
"""
Returns the value part ("[*]", "<M>", "(foo)" etc.) of a menu entry.
sc: Symbol or Choice.
"""
if sc.type in (STRING, INT, HEX):
return "({})".format(sc.str_value)
# BOOL or TRISTATE
# The choice mode is an upper bound on the visibility of choice symbols, so
# we can check the choice symbols' own visibility to see if the choice is
# in y mode
if isinstance(sc, Symbol) and sc.choice and sc.visibility == 2:
# For choices in y mode, print '-->' next to the selected symbol
return "-->" if sc.choice.selection is sc else " "
tri_val_str = (" ", "M", "*")[sc.tri_value]
if len(sc.assignable) == 1:
# Pinned to a single value
return "-{}-".format(tri_val_str)
if sc.type == BOOL:
return "[{}]".format(tri_val_str)
if sc.type == TRISTATE:
if sc.assignable == (1, 2):
# m and y available
return "{" + tri_val_str + "}" # Gets a bit confusing with .format()
return "<{}>".format(tri_val_str)
def node_str(node):
"""
Returns the complete menu entry text for a menu node, or "" for invisible
menu nodes. Invisible menu nodes are those that lack a prompt or that do
not have a satisfied prompt condition.
Example return value: "[*] Bool symbol (BOOL)"
The symbol name is printed in parentheses to the right of the prompt. This
is so that symbols can easily be referred to in the configuration
interface.
"""
if not node.prompt:
return ""
# Even for menu nodes for symbols and choices, it's wrong to check
# Symbol.visibility / Choice.visibility here. The reason is that a symbol
# (and a choice, in theory) can be defined in multiple locations, giving it
# multiple menu nodes, which do not necessarily all have the same prompt
# visibility. Symbol.visibility / Choice.visibility is calculated as the OR
# of the visibility of all the prompts.
prompt, prompt_cond = node.prompt
if not expr_value(prompt_cond):
return ""
if node.item == MENU:
return " " + prompt
if node.item == COMMENT:
return " *** {} ***".format(prompt)
# Symbol or Choice
sc = node.item
if sc.type == UNKNOWN:
# Skip symbols defined without a type (these are obscure and generate
# a warning)
return ""
# {:3} sets the field width to three. Gives nice alignment for empty string
# values.
res = "{:3} {}".format(value_str(sc), prompt)
# Don't print the name for unnamed choices (the normal kind)
if sc.name is not None:
res += " ({})".format(sc.name)
return res
def print_menuconfig_nodes(node, indent):
"""
Prints a tree with all the menu entries rooted at 'node'. Child menu
entries are indented.
"""
while node:
string = node_str(node)
if string:
indent_print(string, indent)
if node.list:
print_menuconfig_nodes(node.list, indent + 8)
node = node.next
def print_menuconfig(kconf):
"""
Prints all menu entries for the configuration.
"""
# Print the expanded mainmenu text at the top. This is the same as
# kconf.top_node.prompt[0], but with variable references expanded.
print("\n======== {} ========\n".format(kconf.mainmenu_text))
print_menuconfig_nodes(kconf.top_node.list, 0)
print("")
def get_value_from_user(sc):
"""
Prompts the user for a value for the symbol or choice 'sc'. For
bool/tristate symbols and choices, provides a list of all the assignable
values.
"""
if not sc.visibility:
print(sc.name + " is not currently visible")
return False
prompt = "Value for {}".format(sc.name)
if sc.type in (BOOL, TRISTATE):
prompt += " (available: {})" \
.format(", ".join(TRI_TO_STR[val] for val in sc.assignable))
prompt += ": "
val = input(prompt)
# Automatically add a "0x" prefix for hex symbols, like the menuconfig
# interface does. This isn't done when loading .config files, hence why
# set_value() doesn't do it automatically.
if sc.type == HEX and not val.startswith(("0x", "0X")):
val = "0x" + val
# Let Kconfiglib itself print a warning here if the value is invalid. We
# could also disable warnings temporarily with 'kconf.warn = False' and
# print our own warning.
return sc.set_value(val)
if __name__ == "__main__":
if len(sys.argv) != 2:
sys.exit("usage: menuconfig.py <Kconfig file>")
# Load Kconfig configuration files
kconf = Kconfig(sys.argv[1])
# Print the initial configuration tree
print_menuconfig(kconf)
while True:
try:
cmd = input('Enter a symbol/choice name, "load_config", or '
'"write_config" (or press CTRL+D to exit): ').strip()
except EOFError:
print("")
break
if cmd == "load_config":
config_filename = input(".config file to load: ")
try:
# Returns a message telling which file got loaded
print(kconf.load_config(config_filename))
except EnvironmentError as e:
print(e, file=sys.stderr)
print_menuconfig(kconf)
continue
if cmd == "write_config":
config_filename = input("To this file: ")
try:
# Returns a message telling which file got saved
print(kconf.write_config(config_filename))
except EnvironmentError as e:
print(e, file=sys.stderr)
continue
# Assume 'cmd' is the name of a symbol or choice if it isn't one of the
# commands above, prompt the user for a value for it, and print the new
# configuration tree
if cmd in kconf.syms:
if get_value_from_user(kconf.syms[cmd]):
print_menuconfig(kconf)
continue
if cmd in kconf.named_choices:
if get_value_from_user(kconf.named_choices[cmd]):
print_menuconfig(kconf)
continue
print("No symbol/choice named '{}' in the configuration".format(cmd),
file=sys.stderr)

View File

@ -0,0 +1,121 @@
#!/usr/bin/env python3
# This script functions similarly to scripts/kconfig/merge_config.sh from the
# kernel tree, merging multiple configurations fragments to produce a complete
# .config, with unspecified values filled in as for alldefconfig.
#
# The generated .config respects symbol dependencies, and a warning is printed
# if any symbol gets a different value from the assigned value.
#
# For a real-world merging example based on this script, see
# https://github.com/zephyrproject-rtos/zephyr/blob/master/scripts/kconfig/kconfig.py.
#
# Here's a demo:
#
# Kconfig contents:
#
# config FOO
# bool "FOO"
#
# config BAR
# bool "BAR"
#
# config BAZ
# string "BAZ"
#
# config QAZ
# bool "QAZ" if n
#
#
# conf1 contents:
#
# CONFIG_FOO=y
#
#
# conf2 contents:
#
# CONFIG_BAR=y
#
#
# conf3 contents:
#
# # Assigned twice (would generate warning if 'warn_assign_override' was
# # True)
# # CONFIG_FOO is not set
#
# # Ops... this symbol doesn't exist
# CONFIG_OPS=y
#
# CONFIG_BAZ="baz string"
#
#
# conf4 contents:
#
# CONFIG_QAZ=y
#
#
# Running:
#
# $ python(3) merge_config.py Kconfig merged conf1 conf2 conf3 conf4
# Merged configuration 'conf1'
# Merged configuration 'conf2'
# conf3:5: warning: attempt to assign the value 'y' to the undefined symbol OPS
# Merged configuration 'conf3'
# Merged configuration 'conf4'
# Configuration saved to 'merged'
# warning: QAZ (defined at Kconfig:10) was assigned the value 'y' but got the value 'n' -- check dependencies
# $ cat merged
# Generated by Kconfiglib (https://github.com/ulfalizer/Kconfiglib)
# # CONFIG_FOO is not set
# CONFIG_BAR=y
# CONFIG_BAZ="baz string"
from __future__ import print_function
import sys
from kconfiglib import Kconfig, BOOL, TRISTATE, TRI_TO_STR
if len(sys.argv) < 4:
sys.exit("usage: merge_config.py Kconfig merged_config config1 [config2 ...]")
kconf = Kconfig(sys.argv[1], suppress_traceback=True)
# Enable warnings for assignments to undefined symbols
kconf.warn_assign_undef = True
# (This script uses alldefconfig as the base. Other starting states could be
# set up here as well. The approach in examples/allnoconfig_simpler.py could
# provide an allnoconfig starting state for example.)
# Disable warnings generated for multiple assignments to the same symbol within
# a (set of) configuration files. Assigning a symbol multiple times might be
# done intentionally when merging configuration files.
kconf.warn_assign_override = False
kconf.warn_assign_redun = False
# Create a merged configuration by loading the fragments with replace=False.
# load_config() and write_config() returns a message to print.
for config in sys.argv[3:]:
print(kconf.load_config(config, replace=False))
# Write the merged configuration
print(kconf.write_config(sys.argv[2]))
# Print warnings for symbols whose actual value doesn't match the assigned
# value
for sym in kconf.defined_syms:
# Was the symbol assigned to?
if sym.user_value is not None:
# Tristate values are represented as 0, 1, 2. Having them as
# "n", "m", "y" is more convenient here, so convert.
if sym.type in (BOOL, TRISTATE):
user_value = TRI_TO_STR[sym.user_value]
else:
user_value = sym.user_value
if user_value != sym.str_value:
print("warning: {} was assigned the value '{}' but got the "
"value '{}' -- check dependencies".format(
sym.name_and_loc, user_value, sym.str_value),
file=sys.stderr)

View File

@ -0,0 +1,199 @@
# Prints menu entries as a tree with its value in the .config file. This can be
# handy e.g. for diffing between different .config files or versions of Kconfig files.
#
# Usage:
#
# $ make [ARCH=<arch>] scriptconfig SCRIPT=print_config_tree.py [SCRIPT_ARG=<.config>]
#
# If the variable WITH_HELP_DESC is modified to 'True', the help is added
# to the symbols.
#
# Here's a notation guide. The notation matches the one used by menuconfig
# (scripts/kconfig/mconf):
#
# [ ] prompt - Bool
# < > prompt - Tristate
# {M} prompt - Tristate selected to m. Can only be set to m or y.
# -*- prompt - Bool/tristate selected to y, pinning it
# -M- prompt - Tristate selected to m that also has m visibility,
# pinning it to m
# (foo) prompt - String/int/hex symbol with value "foo"
# --> prompt - The selected symbol in a choice in y mode. This
# syntax is unique to this example.
#
# When modules are disabled, the .type attribute of TRISTATE symbols and
# choices automatically changes to BOOL. This trick is used by the C
# implementation as well, and gives the expected behavior without having to do
# anything extra here. The original type is available in .orig_type if needed.
#
# Example output:
#
# $ make scriptconfig SCRIPT=Kconfiglib/examples/print_config_tree.py [SCRIPT_ARG=<.config file>]
#
# ======== Linux/x86 4.9.82 Kernel Configuration ========
#
# [*] 64-bit kernel (64BIT)
# General setup
# () Cross-compiler tool prefix (CROSS_COMPILE)
# [ ] Compile also drivers which will not load (COMPILE_TEST)
# () Local version - append to kernel release (LOCALVERSION)
# [*] Automatically append version information to the version string (LOCALVERSION_AUTO)
# -*- Kernel compression mode
# ...
#
# With the variable WITH_HELP_DESC modified to 'True':
#
# ======== Linux/x86 4.9.82 Kernel Configuration ========
#
# [*] 64-bit kernel - Say yes to build a 64-bit kernel - formerly known as x86_64 Say no to build a 32-bit kernel - formerly known as i386 (64BIT)
# General setup
# () Cross-compiler tool prefix - Same as running 'make CROSS_COMPILE=prefix-' but stored for default make runs in this kernel build directory. You don't need to set this unless you want the configured kernel build directory to select the cross-compiler automatically. (CROSS_COMPILE)
# [ ] Compile also drivers which will not load - Some drivers can be compiled on a different platform than they are intended to be run on. Despite they cannot be loaded there (or even when they load they cannot be used due to missing HW support), developers still, opposing to distributors, might want to build such drivers to compile-test them. If you are a developer and want to build everything available, say Y here. If you are a user/distributor, say N here to exclude useless drivers to be distributed. (COMPILE_TEST)
# ...
import sys
from kconfiglib import Kconfig, \
Symbol, MENU, COMMENT, \
BOOL, TRISTATE, STRING, INT, HEX, UNKNOWN, \
expr_value
# Add help description to output
WITH_HELP_DESC = False
def indent_print(s, indent):
print(indent*" " + s)
def value_str(sc):
"""
Returns the value part ("[*]", "<M>", "(foo)" etc.) of a menu entry.
sc: Symbol or Choice.
"""
if sc.type in (STRING, INT, HEX):
return "({})".format(sc.str_value)
# BOOL or TRISTATE
# The choice mode is an upper bound on the visibility of choice symbols, so
# we can check the choice symbols' own visibility to see if the choice is
# in y mode
if isinstance(sc, Symbol) and sc.choice and sc.visibility == 2:
# For choices in y mode, print '-->' next to the selected symbol
return "-->" if sc.choice.selection is sc else " "
tri_val_str = (" ", "M", "*")[sc.tri_value]
if len(sc.assignable) == 1:
# Pinned to a single value
return "-{}-".format(tri_val_str)
if sc.type == BOOL:
return "[{}]".format(tri_val_str)
if sc.type == TRISTATE:
if sc.assignable == (1, 2):
# m and y available
return "{" + tri_val_str + "}" # Gets a bit confusing with .format()
return "<{}>".format(tri_val_str)
def node_str(node):
"""
Returns the complete menu entry text for a menu node, or "" for invisible
menu nodes. Invisible menu nodes are those that lack a prompt or that do
not have a satisfied prompt condition.
Example return value: "[*] Bool symbol (BOOL)"
The symbol name is printed in parentheses to the right of the prompt.
"""
if not node.prompt:
return ""
# Even for menu nodes for symbols and choices, it's wrong to check
# Symbol.visibility / Choice.visibility here. The reason is that a symbol
# (and a choice, in theory) can be defined in multiple locations, giving it
# multiple menu nodes, which do not necessarily all have the same prompt
# visibility. Symbol.visibility / Choice.visibility is calculated as the OR
# of the visibility of all the prompts.
prompt, prompt_cond = node.prompt
if not expr_value(prompt_cond):
return ""
if node.item == MENU:
return " " + prompt
if node.item == COMMENT:
return " *** {} ***".format(prompt)
# Symbol or Choice
sc = node.item
if sc.type == UNKNOWN:
# Skip symbols defined without a type (these are obscure and generate
# a warning)
return ""
# Add help text
if WITH_HELP_DESC:
prompt += ' - ' + str(node.help).replace('\n', ' ').replace('\r', '')
# {:3} sets the field width to three. Gives nice alignment for empty string
# values.
res = "{:3} {}".format(value_str(sc), prompt)
# Don't print the name for unnamed choices (the normal kind)
if sc.name is not None:
res += " ({})".format(sc.name)
return res
def print_menuconfig_nodes(node, indent):
"""
Prints a tree with all the menu entries rooted at 'node'. Child menu
entries are indented.
"""
while node:
string = node_str(node)
if string:
indent_print(string, indent)
if node.list:
print_menuconfig_nodes(node.list, indent + 8)
node = node.next
def print_menuconfig(kconf):
"""
Prints all menu entries for the configuration.
"""
# Print the expanded mainmenu text at the top. This is the same as
# kconf.top_node.prompt[0], but with variable references expanded.
print("\n======== {} ========\n".format(kconf.mainmenu_text))
print_menuconfig_nodes(kconf.top_node.list, 0)
print("")
if __name__ == "__main__":
# Load Kconfig configuration files
kconf = Kconfig(sys.argv[1])
# Set default .config file or load it from argv
if len(sys.argv) == 2:
config_filename = '.config'
else:
config_filename = sys.argv[2]
kconf.load_config(config_filename)
# Print the configuration tree
print_menuconfig(kconf)

View File

@ -0,0 +1,54 @@
# Loads a Kconfig and a .config and prints a symbol.
#
# Usage:
#
# $ make [ARCH=<arch>] scriptconfig SCRIPT=Kconfiglib/examples/print_sym_info.py SCRIPT_ARG=<name>
#
# Example output for SCRIPT_ARG=MODULES:
#
# menuconfig MODULES
# bool
# prompt "Enable loadable module support"
# option modules
# help
# Kernel modules are small pieces of compiled code which can
# be inserted in the running kernel, rather than being
# permanently built into the kernel. You use the "modprobe"
# tool to add (and sometimes remove) them. If you say Y here,
# many parts of the kernel can be built as modules (by
# answering M instead of Y where indicated): this is most
# useful for infrequently used options which are not required
# for booting. For more information, see the man pages for
# modprobe, lsmod, modinfo, insmod and rmmod.
#
# If you say Y here, you will need to run "make
# modules_install" to put the modules under /lib/modules/
# where modprobe can find them (you may need to be root to do
# this).
#
# If unsure, say Y.
#
# value = n
# visibility = y
# currently assignable values: n, y
# defined at init/Kconfig:1674
import sys
from kconfiglib import Kconfig, TRI_TO_STR
if len(sys.argv) < 3:
sys.exit('Pass symbol name (without "CONFIG_" prefix) with SCRIPT_ARG=<name>')
kconf = Kconfig(sys.argv[1])
sym = kconf.syms[sys.argv[2]]
print(sym)
print("value = " + sym.str_value)
print("visibility = " + TRI_TO_STR[sym.visibility])
print("currently assignable values: " +
", ".join([TRI_TO_STR[v] for v in sym.assignable]))
for node in sym.nodes:
print("defined at {}:{}".format(node.filename, node.linenr))

View File

@ -0,0 +1,75 @@
# Prints the menu tree of the configuration. Dependencies between symbols can
# sometimes implicitly alter the menu structure (see kconfig-language.txt), and
# that's implemented too.
#
# Note: See the Kconfig.node_iter() function as well, which provides a simpler
# interface for walking the menu tree.
#
# Usage:
#
# $ make [ARCH=<arch>] scriptconfig SCRIPT=Kconfiglib/examples/print_tree.py
#
# Example output:
#
# ...
# config HAVE_KERNEL_LZO
# config HAVE_KERNEL_LZ4
# choice
# config KERNEL_GZIP
# config KERNEL_BZIP2
# config KERNEL_LZMA
# config KERNEL_XZ
# config KERNEL_LZO
# config KERNEL_LZ4
# config DEFAULT_HOSTNAME
# config SWAP
# config SYSVIPC
# config SYSVIPC_SYSCTL
# config POSIX_MQUEUE
# config POSIX_MQUEUE_SYSCTL
# config CROSS_MEMORY_ATTACH
# config FHANDLE
# config USELIB
# config AUDIT
# config HAVE_ARCH_AUDITSYSCALL
# config AUDITSYSCALL
# config AUDIT_WATCH
# config AUDIT_TREE
# menu "IRQ subsystem"
# config MAY_HAVE_SPARSE_IRQ
# config GENERIC_IRQ_LEGACY
# config GENERIC_IRQ_PROBE
# ...
import sys
from kconfiglib import Kconfig, Symbol, Choice, MENU, COMMENT
def indent_print(s, indent):
print(indent*" " + s)
def print_items(node, indent):
while node:
if isinstance(node.item, Symbol):
indent_print("config " + node.item.name, indent)
elif isinstance(node.item, Choice):
indent_print("choice", indent)
elif node.item == MENU:
indent_print('menu "{}"'.format(node.prompt[0]), indent)
elif node.item == COMMENT:
indent_print('comment "{}"'.format(node.prompt[0]), indent)
if node.list:
print_items(node.list, indent + 2)
node = node.next
kconf = Kconfig(sys.argv[1])
print_items(kconf.top_node, 0)

View File

@ -0,0 +1,154 @@
#!/usr/bin/env python3
# Copyright (c) 2018-2019, Ulf Magnusson
# SPDX-License-Identifier: ISC
"""
Generates a header file with #defines from the configuration, matching the
format of include/generated/autoconf.h in the Linux kernel.
Optionally, also writes the configuration output as a .config file. See
--config-out.
The --sync-deps, --file-list, and --env-list options generate information that
can be used to avoid needless rebuilds/reconfigurations.
Before writing a header or configuration file, Kconfiglib compares the old
contents of the file against the new contents. If there's no change, the write
is skipped. This avoids updating file metadata like the modification time, and
might save work depending on your build setup.
By default, the configuration is generated from '.config'. A different
configuration file can be passed in the KCONFIG_CONFIG environment variable.
A custom header string can be inserted at the beginning of generated
configuration and header files by setting the KCONFIG_CONFIG_HEADER and
KCONFIG_AUTOHEADER_HEADER environment variables, respectively (this also works
for other scripts). The string is not automatically made a comment (this is by
design, to allow anything to be added), and no trailing newline is added, so
add '/* */', '#', and newlines as appropriate.
See https://www.gnu.org/software/make/manual/make.html#Multi_002dLine for a
handy way to define multi-line variables in makefiles, for use with custom
headers. Remember to export the variable to the environment.
"""
import argparse
import os
import sys
import kconfiglib
DEFAULT_SYNC_DEPS_PATH = "deps/"
def main():
parser = argparse.ArgumentParser(
formatter_class=argparse.RawDescriptionHelpFormatter,
description=__doc__)
parser.add_argument(
"--header-path",
metavar="HEADER_FILE",
help="""
Path to write the generated header file to. If not specified, the path in the
environment variable KCONFIG_AUTOHEADER is used if it is set, and 'config.h'
otherwise.
""")
parser.add_argument(
"--config-out",
metavar="CONFIG_FILE",
help="""
Write the configuration to CONFIG_FILE. This is useful if you include .config
files in Makefiles, as the generated configuration file will be a full .config
file even if .config is outdated. The generated configuration matches what
olddefconfig would produce. If you use sync-deps, you can include
deps/auto.conf instead. --config-out is meant for cases where incremental build
information isn't needed.
""")
parser.add_argument(
"--sync-deps",
metavar="OUTPUT_DIR",
nargs="?",
const=DEFAULT_SYNC_DEPS_PATH,
help="""
Enable generation of symbol dependency information for incremental builds,
optionally specifying the output directory (default: {}). See the docstring of
Kconfig.sync_deps() in Kconfiglib for more information.
""".format(DEFAULT_SYNC_DEPS_PATH))
parser.add_argument(
"--file-list",
metavar="OUTPUT_FILE",
help="""
Write a list of all Kconfig files to OUTPUT_FILE, with one file per line. The
paths are relative to $srctree (or to the current directory if $srctree is
unset). Files appear in the order they're 'source'd.
""")
parser.add_argument(
"--env-list",
metavar="OUTPUT_FILE",
help="""
Write a list of all environment variables referenced in Kconfig files to
OUTPUT_FILE, with one variable per line. Each line has the format NAME=VALUE.
Only environment variables referenced with the preprocessor $(VAR) syntax are
included, and not variables referenced with the older $VAR syntax (which is
only supported for backwards compatibility).
""")
parser.add_argument(
"kconfig",
metavar="KCONFIG",
nargs="?",
default="Kconfig",
help="Top-level Kconfig file (default: Kconfig)")
args = parser.parse_args()
kconf = kconfiglib.Kconfig(args.kconfig, suppress_traceback=True)
kconf.load_config()
if args.header_path is None:
if "KCONFIG_AUTOHEADER" in os.environ:
kconf.write_autoconf()
else:
# Kconfiglib defaults to include/generated/autoconf.h to be
# compatible with the C tools. 'config.h' is used here instead for
# backwards compatibility. It's probably a saner default for tools
# as well.
kconf.write_autoconf("config.h")
else:
kconf.write_autoconf(args.header_path)
if args.config_out is not None:
kconf.write_config(args.config_out, save_old=False)
if args.sync_deps is not None:
kconf.sync_deps(args.sync_deps)
if args.file_list is not None:
with _open_write(args.file_list) as f:
for path in kconf.kconfig_filenames:
f.write(path + "\n")
if args.env_list is not None:
with _open_write(args.env_list) as f:
for env_var in kconf.env_vars:
f.write("{}={}\n".format(env_var, os.environ[env_var]))
def _open_write(path):
# Python 2/3 compatibility. io.open() is available on both, but makes
# write() expect 'unicode' strings on Python 2.
if sys.version_info[0] < 3:
return open(path, "w")
return open(path, "w", encoding="utf-8")
if __name__ == "__main__":
main()

2324
linux_5.10/Kconfiglib/guiconfig.py Executable file

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,76 @@
#!/usr/bin/env python3
# Copyright (c) 2018-2019, Ulf Magnusson
# SPDX-License-Identifier: ISC
"""
Lists all user-modifiable symbols that are not given a value in the
configuration file. Usually, these are new symbols that have been added to the
Kconfig files.
The default configuration filename is '.config'. A different filename can be
passed in the KCONFIG_CONFIG environment variable.
"""
from __future__ import print_function
import argparse
import sys
from kconfiglib import Kconfig, BOOL, TRISTATE, INT, HEX, STRING, TRI_TO_STR
def main():
parser = argparse.ArgumentParser(
formatter_class=argparse.RawDescriptionHelpFormatter,
description=__doc__)
parser.add_argument(
"--show-help", "-l",
action="store_true",
help="Show any help texts as well")
parser.add_argument(
"kconfig",
metavar="KCONFIG",
nargs="?",
default="Kconfig",
help="Top-level Kconfig file (default: Kconfig)")
args = parser.parse_args()
kconf = Kconfig(args.kconfig, suppress_traceback=True)
# Make it possible to filter this message out
print(kconf.load_config(), file=sys.stderr)
for sym in kconf.unique_defined_syms:
# Only show symbols that can be toggled. Choice symbols are a special
# case in that sym.assignable will be (2,) (length 1) for visible
# symbols in choices in y mode, but they can still be toggled by
# selecting some other symbol.
if sym.user_value is None and \
(len(sym.assignable) > 1 or
(sym.visibility and (sym.orig_type in (INT, HEX, STRING) or
sym.choice))):
# Don't reuse the 'config_string' format for bool/tristate symbols,
# to show n-valued symbols as 'CONFIG_FOO=n' instead of
# '# CONFIG_FOO is not set'. This matches the C tools.
if sym.orig_type in (BOOL, TRISTATE):
s = "{}{}={}\n".format(kconf.config_prefix, sym.name,
TRI_TO_STR[sym.tri_value])
else:
s = sym.config_string
print(s, end="")
if args.show_help:
for node in sym.nodes:
if node.help is not None:
# Indent by two spaces. textwrap.indent() is not
# available in Python 2 (it's 3.3+).
print("\n".join(" " + line
for line in node.help.split("\n")))
break
if __name__ == "__main__":
main()

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,246 @@
#!/usr/bin/env python3
# Copyright (c) 2018-2019, Ulf Magnusson
# SPDX-License-Identifier: ISC
"""
Implements oldconfig functionality.
1. Loads existing .config
2. Prompts for the value of all modifiable symbols/choices that
aren't already set in the .config
3. Writes an updated .config
The default input/output filename is '.config'. A different filename can be
passed in the KCONFIG_CONFIG environment variable.
When overwriting a configuration file, the old version is saved to
<filename>.old (e.g. .config.old).
Entering '?' displays the help text of the symbol/choice, if any.
Unlike 'make oldconfig', this script doesn't print menu titles and comments,
but gives Kconfig definition locations. Printing menus and comments would be
pretty easy to add: Look at the parents of each item, and print all menu
prompts and comments unless they have already been printed (assuming you want
to skip "irrelevant" menus).
"""
from __future__ import print_function
import sys
from kconfiglib import Symbol, Choice, BOOL, TRISTATE, HEX, standard_kconfig
# Python 2/3 compatibility hack
if sys.version_info[0] < 3:
input = raw_input
def _main():
# Earlier symbols in Kconfig files might depend on later symbols and become
# visible if their values change. This flag is set to True if the value of
# any symbol changes, in which case we rerun the oldconfig to check for new
# visible symbols.
global conf_changed
kconf = standard_kconfig(__doc__)
print(kconf.load_config())
while True:
conf_changed = False
for node in kconf.node_iter():
oldconfig(node)
if not conf_changed:
break
print(kconf.write_config())
def oldconfig(node):
"""
Prompts the user for a value if node.item is a visible symbol/choice with
no user value.
"""
# See main()
global conf_changed
# Only symbols and choices can be configured
if not isinstance(node.item, (Symbol, Choice)):
return
# Skip symbols and choices that aren't visible
if not node.item.visibility:
return
# Skip symbols and choices that don't have a prompt (at this location)
if not node.prompt:
return
if isinstance(node.item, Symbol):
sym = node.item
# Skip symbols that already have a user value
if sym.user_value is not None:
return
# Skip symbols that can only have a single value, due to selects
if len(sym.assignable) == 1:
return
# Skip symbols in choices in y mode. We ask once for the entire choice
# instead.
if sym.choice and sym.choice.tri_value == 2:
return
# Loop until the user enters a valid value or enters a blank string
# (for the default value)
while True:
val = input("{} ({}) [{}] ".format(
node.prompt[0], _name_and_loc_str(sym),
_default_value_str(sym)))
if val == "?":
_print_help(node)
continue
# Substitute a blank string with the default value the symbol
# would get
if not val:
val = sym.str_value
# Automatically add a "0x" prefix for hex symbols, like the
# menuconfig interface does. This isn't done when loading .config
# files, hence why set_value() doesn't do it automatically.
if sym.type == HEX and not val.startswith(("0x", "0X")):
val = "0x" + val
old_str_val = sym.str_value
# Kconfiglib itself will print a warning here if the value
# is invalid, so we don't need to bother
if sym.set_value(val):
# Valid value input. We're done with this node.
if sym.str_value != old_str_val:
conf_changed = True
return
else:
choice = node.item
# Skip choices that already have a visible user selection...
if choice.user_selection and choice.user_selection.visibility == 2:
# ...unless there are new visible symbols in the choice. (We know
# they have y (2) visibility in that case, because m-visible
# symbols get demoted to n-visibility in y-mode choices, and the
# user-selected symbol had visibility y.)
for sym in choice.syms:
if sym is not choice.user_selection and sym.visibility and \
sym.user_value is None:
# New visible symbols in the choice
break
else:
# No new visible symbols in the choice
return
# Get a list of available selections. The mode of the choice limits
# the visibility of the choice value symbols, so this will indirectly
# skip choices in n and m mode.
options = [sym for sym in choice.syms if sym.visibility == 2]
if not options:
# No y-visible choice value symbols
return
# Loop until the user enters a valid selection or a blank string (for
# the default selection)
while True:
print("{} ({})".format(node.prompt[0], _name_and_loc_str(choice)))
for i, sym in enumerate(options, 1):
print("{} {}. {} ({})".format(
">" if sym is choice.selection else " ",
i,
# Assume people don't define choice symbols with multiple
# prompts. That generates a warning anyway.
sym.nodes[0].prompt[0],
sym.name))
sel_index = input("choice[1-{}]: ".format(len(options)))
if sel_index == "?":
_print_help(node)
continue
# Pick the default selection if the string is blank
if not sel_index:
choice.selection.set_value(2)
break
try:
sel_index = int(sel_index)
except ValueError:
print("Bad index", file=sys.stderr)
continue
if not 1 <= sel_index <= len(options):
print("Bad index", file=sys.stderr)
continue
# Valid selection
if options[sel_index - 1].tri_value != 2:
conf_changed = True
options[sel_index - 1].set_value(2)
break
# Give all of the non-selected visible choice symbols the user value n.
# This makes it so that the choice is no longer considered new once we
# do additional passes, if the reason that it was considered new was
# that it had new visible choice symbols.
#
# Only giving visible choice symbols the user value n means we will
# prompt for the choice again if later user selections make more new
# choice symbols visible, which is correct.
for sym in choice.syms:
if sym is not choice.user_selection and sym.visibility:
sym.set_value(0)
def _name_and_loc_str(sc):
# Helper for printing the name of the symbol/choice 'sc' along with the
# location(s) in the Kconfig files where it is defined. Unnamed choices
# return "choice" instead of the name.
return "{}, defined at {}".format(
sc.name or "choice",
", ".join("{}:{}".format(node.filename, node.linenr)
for node in sc.nodes))
def _print_help(node):
print("\n" + (node.help or "No help text\n"))
def _default_value_str(sym):
# Returns the "m/M/y" string in e.g.
#
# TRISTATE_SYM prompt (TRISTATE_SYM, defined at Kconfig:9) [n/M/y]:
#
# For string/int/hex, returns the default value as-is.
if sym.type in (BOOL, TRISTATE):
return "/".join(("NMY" if sym.tri_value == tri else "nmy")[tri]
for tri in sym.assignable)
# string/int/hex
return sym.str_value
if __name__ == "__main__":
_main()

View File

@ -0,0 +1,28 @@
#!/usr/bin/env python3
# Copyright (c) 2018-2019, Ulf Magnusson
# SPDX-License-Identifier: ISC
"""
Updates an old .config file or creates a new one, by filling in default values
for all new symbols. This is the same as picking the default selection for all
symbols in oldconfig, or entering the menuconfig interface and immediately
saving.
The default input/output filename is '.config'. A different filename can be
passed in the KCONFIG_CONFIG environment variable.
When overwriting a configuration file, the old version is saved to
<filename>.old (e.g. .config.old).
"""
import kconfiglib
def main():
kconf = kconfiglib.standard_kconfig(__doc__)
print(kconf.load_config())
print(kconf.write_config())
if __name__ == "__main__":
main()

View File

@ -0,0 +1,49 @@
#!/usr/bin/env python3
# Copyright (c) 2019, Ulf Magnusson
# SPDX-License-Identifier: ISC
"""
Saves a minimal configuration file that only lists symbols that differ in value
from their defaults. Loading such a configuration file is equivalent to loading
the "full" configuration file.
Minimal configuration files are handy to start from when editing configuration
files by hand.
The default input configuration file is '.config'. A different input filename
can be passed in the KCONFIG_CONFIG environment variable.
Note: Minimal configurations can also be generated from within the menuconfig
interface.
"""
import argparse
import kconfiglib
def main():
parser = argparse.ArgumentParser(
formatter_class=argparse.RawDescriptionHelpFormatter,
description=__doc__)
parser.add_argument(
"--kconfig",
default="Kconfig",
help="Top-level Kconfig file (default: Kconfig)")
parser.add_argument(
"--out",
metavar="MINIMAL_CONFIGURATION",
default="defconfig",
help="Output filename for minimal configuration (default: defconfig)")
args = parser.parse_args()
kconf = kconfiglib.Kconfig(args.kconfig, suppress_traceback=True)
print(kconf.load_config())
print(kconf.write_min_config(args.out))
if __name__ == "__main__":
main()

View File

@ -0,0 +1,92 @@
#!/usr/bin/env python3
# Copyright (c) 2019, Ulf Magnusson
# SPDX-License-Identifier: ISC
"""
Simple utility for setting configuration values from the command line.
Sample usage:
$ setconfig FOO_SUPPORT=y BAR_BITS=8
Note: Symbol names should not be prefixed with 'CONFIG_'.
The exit status on errors is 1.
The default input/output configuration file is '.config'. A different filename
can be passed in the KCONFIG_CONFIG environment variable.
When overwriting a configuration file, the old version is saved to
<filename>.old (e.g. .config.old).
"""
import argparse
import sys
import kconfiglib
def main():
parser = argparse.ArgumentParser(
formatter_class=argparse.RawDescriptionHelpFormatter,
description=__doc__)
parser.add_argument(
"--kconfig",
default="Kconfig",
help="Top-level Kconfig file (default: Kconfig)")
parser.add_argument(
"--no-check-exists",
dest="check_exists",
action="store_false",
help="Ignore assignments to non-existent symbols instead of erroring "
"out")
parser.add_argument(
"--no-check-value",
dest="check_value",
action="store_false",
help="Ignore assignments that didn't \"take\" (where the symbol got a "
"different value, e.g. due to unsatisfied dependencies) instead "
"of erroring out")
parser.add_argument(
"assignments",
metavar="ASSIGNMENT",
nargs="*",
help="A 'NAME=value' assignment")
args = parser.parse_args()
kconf = kconfiglib.Kconfig(args.kconfig, suppress_traceback=True, warn_to_stderr=False)
print(kconf.load_config())
for arg in args.assignments:
if "=" not in arg:
sys.exit("error: no '=' in assignment: '{}'".format(arg))
name, value = arg.split("=", 1)
if name not in kconf.syms:
if not args.check_exists:
continue
sys.exit("error: no symbol '{}' in configuration".format(name))
sym = kconf.syms[name]
if not sym.set_value(value):
sys.exit("error: '{}' is an invalid value for the {} symbol {}"
.format(value, kconfiglib.TYPE_TO_STR[sym.orig_type],
name))
if args.check_value and sym.str_value != value:
sys.exit("error: {} was assigned the value '{}', but got the "
"value '{}'. Check the symbol's dependencies, and make "
"sure that it has a prompt."
.format(name, value, sym.str_value))
print(kconf.write_config())
if __name__ == "__main__":
main()

View File

@ -0,0 +1,7 @@
[bdist_wheel]
# We support both Python 2 and Python 3
universal = 1
[metadata]
# Include the license file in wheels
license_file = LICENSE.txt

View File

@ -0,0 +1,96 @@
import io
import os
import setuptools
setuptools.setup(
name="kconfiglib",
# MAJOR.MINOR.PATCH, per http://semver.org
version="14.1.0",
description="A flexible Python Kconfig implementation",
# Make sure that README.rst decodes on Python 3 in environments that use
# the C locale (which implies ASCII), by explicitly giving the encoding.
#
# io.open() has the 'encoding' parameter on both Python 2 and 3. open()
# doesn't have it on Python 2. This lets us use the same code for both.
long_description=io.open(
os.path.join(os.path.dirname(__file__), "README.rst"),
encoding="utf-8"
).read(),
url="https://github.com/ulfalizer/Kconfiglib",
author='Ulf "Ulfalizer" Magnusson',
author_email="ulfalizer@gmail.com",
keywords="kconfig, kbuild, menuconfig, configuration-management",
license="ISC",
py_modules=(
"kconfiglib",
"menuconfig",
"guiconfig",
"genconfig",
"oldconfig",
"olddefconfig",
"savedefconfig",
"defconfig",
"alldefconfig",
"allnoconfig",
"allmodconfig",
"allyesconfig",
"listnewconfig",
"setconfig",
),
entry_points={
"console_scripts": (
"menuconfig = menuconfig:_main",
"guiconfig = guiconfig:_main",
"genconfig = genconfig:main",
"oldconfig = oldconfig:_main",
"olddefconfig = olddefconfig:main",
"savedefconfig = savedefconfig:main",
"defconfig = defconfig:main",
"alldefconfig = alldefconfig:main",
"allnoconfig = allnoconfig:main",
"allmodconfig = allmodconfig:main",
"allyesconfig = allyesconfig:main",
"listnewconfig = listnewconfig:main",
"setconfig = setconfig:main",
)
},
# Note: windows-curses is not automatically installed on Windows anymore,
# because it made Kconfiglib impossible to install on MSYS2 with pip
# Needs support for unnumbered {} in format() and argparse
python_requires=">=2.7,!=3.0.*,!=3.1.*",
project_urls={
"GitHub repository": "https://github.com/ulfalizer/Kconfiglib",
"Examples": "https://github.com/ulfalizer/Kconfiglib/tree/master/examples",
},
classifiers=[
"Development Status :: 5 - Production/Stable",
"Intended Audience :: Developers",
"Topic :: Software Development :: Build Tools",
"Topic :: System :: Operating System Kernels :: Linux",
"License :: OSI Approved :: ISC License (ISCL)",
"Operating System :: POSIX",
"Operating System :: Microsoft :: Windows",
"Programming Language :: Python :: 2",
"Programming Language :: Python :: 2.7",
"Programming Language :: Python :: 3",
"Programming Language :: Python :: 3.2",
"Programming Language :: Python :: 3.3",
"Programming Language :: Python :: 3.4",
"Programming Language :: Python :: 3.5",
"Programming Language :: Python :: 3.6",
"Programming Language :: Python :: 3.7",
"Programming Language :: Python :: 3.8",
"Programming Language :: Python :: Implementation :: CPython",
"Programming Language :: Python :: Implementation :: PyPy",
]
)

1
linux_5.10/README.md Normal file
View File

@ -0,0 +1 @@
Please follow buildroot tips to startup T-HEAD C9xx CPU's boards: [T-HEAD buildroot](https://github.com/T-head-Semi/buildroot)

View File

@ -2050,3 +2050,4 @@ source "arch/arm/crypto/Kconfig"
endif endif
source "arch/arm/Kconfig.assembler" source "arch/arm/Kconfig.assembler"
source "arch/arm/mach-cvitek/Kconfig"

View File

@ -139,6 +139,7 @@ head-y := arch/arm/kernel/head$(MMUEXT).o
# during boot, and this offset is critical to the functioning of # during boot, and this offset is critical to the functioning of
# kexec-tools. # kexec-tools.
textofs-y := 0x00008000 textofs-y := 0x00008000
textofs-$(CONFIG_ARCH_CVITEK) := 0x00108000
# We don't want the htc bootloader to corrupt kernel during resume # We don't want the htc bootloader to corrupt kernel during resume
textofs-$(CONFIG_PM_H1940) := 0x00108000 textofs-$(CONFIG_PM_H1940) := 0x00108000
# RTD1195 has Boot ROM at start of address space # RTD1195 has Boot ROM at start of address space
@ -227,6 +228,7 @@ machine-$(CONFIG_ARCH_VT8500) += vt8500
machine-$(CONFIG_ARCH_ZX) += zx machine-$(CONFIG_ARCH_ZX) += zx
machine-$(CONFIG_ARCH_ZYNQ) += zynq machine-$(CONFIG_ARCH_ZYNQ) += zynq
machine-$(CONFIG_PLAT_SPEAR) += spear machine-$(CONFIG_PLAT_SPEAR) += spear
machine-$(CONFIG_ARCH_CVITEK) += cvitek
# Platform directory name. This list is sorted alphanumerically # Platform directory name. This list is sorted alphanumerically
# by CONFIG_* macro name. # by CONFIG_* macro name.

View File

@ -1408,3 +1408,4 @@ dtb-$(CONFIG_ARCH_ASPEED) += \
aspeed-bmc-opp-zaius.dtb \ aspeed-bmc-opp-zaius.dtb \
aspeed-bmc-portwell-neptune.dtb \ aspeed-bmc-portwell-neptune.dtb \
aspeed-bmc-quanta-q71l.dtb aspeed-bmc-quanta-q71l.dtb
subdir-y += cvitek

View File

@ -0,0 +1,5 @@
dtb-$(CONFIG_ARCH_CVITEK) += $(foreach dts,$(patsubst %.dts,%.dtb,$(wildcard ${srctree}/${src}/*.dts)),$(notdir ${dts}))
always := $(dtb-y)
subdir-y := $(dts-dirs)
clean-files := *.dtb

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,233 @@
CONFIG_SYSVIPC=y
CONFIG_POSIX_MQUEUE=y
CONFIG_FHANDLE=y
CONFIG_NO_HZ_IDLE=y
CONFIG_HIGH_RES_TIMERS=y
CONFIG_TASKSTATS=y
CONFIG_SCHED_AUTOGROUP=y
CONFIG_PROFILING=y
CONFIG_MODULES=y
CONFIG_MODULE_UNLOAD=y
CONFIG_MODULE_FORCE_LOAD=y
CONFIG_MODULE_FORCE_UNLOAD=y
CONFIG_BLK_DEV_BSGLIB=y
CONFIG_ARCH_CVITEK=y
CONFIG_ARCH_CVITEK_CHIP="cv182x"
CONFIG_ARCH_CV182X=y
CONFIG_ARCH_CV182X_FPGA=y
# CONFIG_SMP is not set
CONFIG_TRANSPARENT_HUGEPAGE=y
CONFIG_COMPAT=y
CONFIG_NET=y
CONFIG_PACKET=y
CONFIG_PACKET_DIAG=y
CONFIG_UNIX=y
CONFIG_INET=y
CONFIG_IP_MULTICAST=y
CONFIG_IP_PNP=y
CONFIG_NET_SCHED=y
CONFIG_DEVTMPFS=y
CONFIG_DEVTMPFS_MOUNT=y
CONFIG_BLK_DEV_SD=y
CONFIG_CHR_DEV_SG=y
CONFIG_CVITEK_PINCTRL_CV1835=y
# Network drivers
CONFIG_NETDEVICES=y
CONFIG_ETHERNET=y
CONFIG_NET_VENDOR_STMICRO=y
CONFIG_STMMAC_ETH=y
CONFIG_STMMAC_PLATFORM=y
CONFIG_DWMAC_CVITEK=y
CONFIG_SMSC_PHY=y
# CONFIG_FIXED_PHY is not set
CONFIG_VLAN_8021Q=y
CONFIG_MACVLAN=y
CONFIG_SERIAL_8250=y
CONFIG_SERIAL_8250_CONSOLE=y
CONFIG_SERIAL_8250_DW=y
CONFIG_HW_RANDOM=y
CONFIG_RTC_CLASS=y
CONFIG_EXT4_FS=y
CONFIG_TMPFS=y
CONFIG_NFS_FS=y
CONFIG_ROOT_NFS=y
CONFIG_DEBUG_KERNEL=y
CONFIG_DEBUG_INFO=y
CONFIG_PRINTK_TIME=y
CONFIG_BLK_DEV_INITRD=y
CONFIG_SQUASHFS=y
CONFIG_SQUASHFS_LZ4=y
CONFIG_SQUASHFS_LZO=y
CONFIG_SQUASHFS_XZ=y
CONFIG_SQUASHFS_ZLIB=y
CONFIG_ENABLE_DEFAULT_TRACERS=y
CONFIG_GPIOLIB=y
CONFIG_GPIO_SYSFS=y
CONFIG_GPIO_DWAPB=y
CONFIG_MMC=y
CONFIG_MMC_BLOCK=y
CONFIG_MMC_BLOCK_MINORS=8
CONFIG_MMC_SDHCI=y
CONFIG_MMC_SDHCI_PLTFM=y
CONFIG_MMC_SDHCI_CVI=y
CONFIG_MTD=y
CONFIG_MTD_NAND=y
CONFIG_MTD_NAND_IDS=y
CONFIG_MTD_NAND_PLATFORM=y
CONFIG_MTD_NAND_HPNFC=y
CONFIG_MTD_NAND_HPNFC_DT=y
CONFIG_MTD_NAND_CVSNFC=y
CONFIG_MTD_NAND_CVSNFC_DT=y
CONFIG_MTD_CMDLINE_PARTS=y
CONFIG_CMA=y
CONFIG_DMA_CMA=y
CONFIG_USB=y
CONFIG_USB_GADGET=y
CONFIG_U_SERIAL_CONSOLE=y
CONFIG_USB_CONFIGFS=m
CONFIG_USB_CONFIGFS_SERIAL=y
CONFIG_USB_CONFIGFS_ACM=y
CONFIG_USB_CONFIGFS_MASS_STORAGE=y
CONFIG_USB_CONFIGFS_RNDIS=y
CONFIG_USB_CONFIGFS_EEM=y
CONFIG_USB_CONFIGFS_ECM=y
CONFIG_USB_CONFIGFS_F_UVC=y
CONFIG_USB_CONFIGFS_F_UAC1=y
# CONFIG_USB_CONFIGFS_F_LB_SS is not set
# CONFIG_USB_CONFIGFS_F_FS is not set
# CONFIG_USB_G_SERIAL is not set
# CONFIG_USB_CONFIGFS_BCM is not set
CONFIG_USB_CONFIGFS_CVG=y
# usb otg
CONFIG_USB_OTG=y
CONFIG_USB_OTG_FSM=y
CONFIG_USB_DWC2=m
CONFIG_USB_DWC2_DUAL_ROLE=m
# usb host storage
CONFIG_SCSI=y
CONFIG_USB_STORAGE=y
#CONFIG_USB_STORAGE_DEBUG=y
CONFIG_USB_STORAGE_REALTEK=y
CONFIG_USB_STORAGE_DATAFAB=y
CONFIG_USB_STORAGE_FREECOM=y
CONFIG_USB_STORAGE_ISD200=y
CONFIG_USB_STORAGE_USBAT=y
CONFIG_USB_STORAGE_SDDR09=y
CONFIG_USB_STORAGE_SDDR55=y
CONFIG_USB_STORAGE_JUMPSHOT=y
CONFIG_USB_STORAGE_ALAUDA=y
CONFIG_USB_STORAGE_ONETOUCH=y
CONFIG_USB_STORAGE_KARMA=y
CONFIG_USB_STORAGE_CYPRESS_ATACB=y
CONFIG_USB_STORAGE_ENE_UB6250=y
CONFIG_USB_UAS=y
CONFIG_BLK_DEV_LOOP=y
CONFIG_STAGING=y
CONFIG_ANDROID=y
CONFIG_ION=y
CONFIG_ION_CARVEOUT_HEAP=y
CONFIG_EFIVAR_FS=n
CONFIG_CRYPTO_HW=n
CONFIG_CRYPTO_ECHAINIV=n
# CONFIG_VPP_ENB is not set
CONFIG_I2C=y
CONFIG_I2C_CHARDEV=y
CONFIG_I2C_DESIGNWARE_CORE=y
CONFIG_I2C_DESIGNWARE_PLATFORM=y
CONFIG_KEXEC=y
CONFIG_CRASH_DUMP=y
CONFIG_MAGIC_SYSRQ=y
CONFIG_FAT_FS=y
CONFIG_MSDOS_FS=y
CONFIG_VFAT_FS=y
CONFIG_FAT_DEFAULT_CODEPAGE=437
CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1"
CONFIG_NLS=y
CONFIG_NLS_DEFAULT="iso8859-1"
CONFIG_NLS_CODEPAGE_437=y
CONFIG_NLS_CODEPAGE_850=y
CONFIG_NLS_ISO8859_1=y
CONFIG_NLS_ISO8859_2=y
CONFIG_NLS_ISO8859_3=y
CONFIG_NLS_UTF8=y
CONFIG_CVITEK_NPU=y
CONFIG_RESET_CONTROLLER=y
CONFIG_RESET_CVITEK=y
CONFIG_DMADEVICES=y
CONFIG_DMA_ENGINE=y
CONFIG_DMA_OF=y
CONFIG_DW_DMAC_CVITEK=y
# audio driver
#CONFIG_SOUND=y
#CONFIG_SND=y
#CONFIG_SND_SOC=y
#CONFIG_SND_SOC_ADAU1372=y
#CONFIG_SND_SOC_ADAU_UTILS=y
#CONFIG_SND_SOC_ADAU1372_I2C=y
#CONFIG_SND_CV1835_I2S=y
#CONFIG_SND_SOC_CV1835_ADAU1372=y
# CONFIG_SND_SOC_ADAU1372_SPI is not set
#CONFIG_SND_SOC_CV1835_CONCURRENT_I2S=y
#CONFIG_CV1835_I2S_SUBSYS=y
#CONFIG_SND_SOC_CV1835_USE_AUDIO_PLL=y
#CONFIG_SND_SOC_CV1835_CV1835PDM=y
#CONFIG_SND_SOC_CV1835PDM=y
#CONFIG_SND_SOC_CV1835_CV1835ADC=y
#CONFIG_SND_SOC_CV1835ADC=y
#CONFIG_SND_SOC_CV1835_CV1835DAC=y
#CONFIG_SND_SOC_CV1835DAC=y
CONFIG_MODVERSIONS=y
CONFIG_ION_CARVEOUT_HEAP=y
CONFIG_PWM=y
CONFIG_PWM_CVITEK=m
CONFIG_CONSOLE_POLL=y
CONFIG_HAVE_ARCH_KGDB=y
CONFIG_KGDB=y
CONFIG_KGDB_SERIAL_CONSOLE=y
CONFIG_DYNAMIC_DEBUG=y
CONFIG_HW_PERF_EVENTS=y
CONFIG_TEE=y
CONFIG_OPTEE=y
CONFIG_WATCHDOG=y
CONFIG_DW_WATCHDOG=m
#
# SPI drivers
#
# CONFIG_SPI is not set
# CONFIG_SPI_MASTER is not set
# CONFIG_SPI_DESIGNWARE is not set
# CONFIG_SPI_DW_MMIO is not set
# CONFIG_SPI_SPIDEV is not set
#
# VIDEO
#
# media/v4l2 support
CONFIG_I2C_MUX=y
CONFIG_MEDIA_CONTROLLER=y
CONFIG_MEDIA_SUPPORT=y
CONFIG_MEDIA_CAMERA_SUPPORT=y
CONFIG_VIDEO_DEV=y
CONFIG_VIDEO_V4L2=y
CONFIG_V4L2_MEM2MEM_DEV=y
CONFIG_V4L_PLATFORM_DRIVERS=y
CONFIG_SOC_CAMERA=y
CONFIG_VIDEO_V4L2_SUBDEV_API=y
CONFIG_MEDIA_USB_SUPPORT=y
CONFIG_V4L_MEM2MEM_DRIVERS=y
CONFIG_VIDEO_CVITEK=m
CONFIG_VIDEO_CVITEK_CIF=m
CONFIG_VIDEO_CVITEK_SNS_I2C=m
CONFIG_VIDEO_CVITEK_MIPI_TX=m
#
# Frame buffer Devices
CONFIG_FB=y
CONFIG_FB_CVITEK=m

View File

@ -0,0 +1,228 @@
CONFIG_SYSVIPC=y
CONFIG_POSIX_MQUEUE=y
CONFIG_FHANDLE=y
CONFIG_NO_HZ_IDLE=y
CONFIG_HIGH_RES_TIMERS=y
CONFIG_TASKSTATS=y
CONFIG_SCHED_AUTOGROUP=y
CONFIG_PROFILING=y
CONFIG_MODULES=y
CONFIG_MODULE_UNLOAD=y
CONFIG_MODULE_FORCE_LOAD=y
CONFIG_MODULE_FORCE_UNLOAD=y
CONFIG_BLK_DEV_BSGLIB=y
CONFIG_ARCH_CVITEK=y
CONFIG_ARCH_CVITEK_CHIP="cv182x"
CONFIG_ARCH_CV182X=y
CONFIG_ARCH_CV182X_PALLADIUM=y
# CONFIG_SMP is not set
CONFIG_TRANSPARENT_HUGEPAGE=y
CONFIG_COMPAT=y
CONFIG_NET=y
CONFIG_PACKET=y
CONFIG_PACKET_DIAG=y
CONFIG_UNIX=y
CONFIG_INET=y
CONFIG_IP_MULTICAST=y
CONFIG_IP_PNP=y
CONFIG_NET_SCHED=y
CONFIG_DEVTMPFS=y
CONFIG_DEVTMPFS_MOUNT=y
CONFIG_BLK_DEV_SD=y
CONFIG_CHR_DEV_SG=y
CONFIG_CVITEK_PINCTRL_CV1835=y
# Network drivers
# CONFIG_NETDEVICES is not set
# CONFIG_ETHERNET is not set
# CONFIG_NET_VENDOR_STMICRO is not set
# CONFIG_STMMAC_ETH is not set
# CONFIG_STMMAC_PLATFORM is not set
# CONFIG_DWMAC_CVITEK is not set
# CONFIG_SMSC_PHY is not set
# CONFIG_FIXED_PHY is not set
# CONFIG_IPV6=n
# CONFIG_VLAN_8021Q is not set
# CONFIG_MACVLAN is not set
CONFIG_SERIAL_8250=y
CONFIG_SERIAL_8250_CONSOLE=y
CONFIG_SERIAL_8250_DW=y
CONFIG_HW_RANDOM=y
CONFIG_RTC_CLASS=y
CONFIG_EXT4_FS=y
CONFIG_TMPFS=y
CONFIG_NFS_FS=y
CONFIG_ROOT_NFS=y
CONFIG_DEBUG_KERNEL=y
CONFIG_DEBUG_INFO=y
CONFIG_PRINTK_TIME=y
CONFIG_BLK_DEV_INITRD=y
CONFIG_SQUASHFS=y
CONFIG_SQUASHFS_LZ4=y
CONFIG_SQUASHFS_LZO=y
CONFIG_SQUASHFS_XZ=y
CONFIG_SQUASHFS_ZLIB=y
CONFIG_ENABLE_DEFAULT_TRACERS=y
CONFIG_GPIOLIB=y
CONFIG_GPIO_SYSFS=y
CONFIG_GPIO_DWAPB=y
CONFIG_MMC=y
CONFIG_MMC_BLOCK=y
CONFIG_MMC_BLOCK_MINORS=8
CONFIG_MMC_SDHCI=y
CONFIG_MMC_SDHCI_PLTFM=y
CONFIG_MMC_SDHCI_CVI=y
CONFIG_MTD=y
CONFIG_MTD_NAND=y
CONFIG_MTD_NAND_IDS=y
CONFIG_MTD_NAND_PLATFORM=y
CONFIG_MTD_NAND_HPNFC=y
CONFIG_MTD_NAND_HPNFC_DT=y
CONFIG_MTD_NAND_CVSNFC=y
CONFIG_MTD_NAND_CVSNFC_DT=y
CONFIG_MTD_CMDLINE_PARTS=y
CONFIG_CMA=y
CONFIG_DMA_CMA=y
CONFIG_USB=y
CONFIG_USB_GADGET=y
CONFIG_U_SERIAL_CONSOLE=y
CONFIG_USB_CONFIGFS=m
CONFIG_USB_CONFIGFS_SERIAL=y
CONFIG_USB_CONFIGFS_ACM=y
CONFIG_USB_CONFIGFS_MASS_STORAGE=y
# CONFIG_USB_CONFIGFS_F_LB_SS is not set
# CONFIG_USB_CONFIGFS_F_FS is not set
# CONFIG_USB_G_SERIAL is not set
# usb otg
CONFIG_USB_OTG=y
CONFIG_USB_OTG_FSM=y
CONFIG_USB_DWC2=y
CONFIG_USB_DWC2_DUAL_ROLE=y
# usb host storage
CONFIG_SCSI=y
CONFIG_USB_STORAGE=y
#CONFIG_USB_STORAGE_DEBUG=y
CONFIG_USB_STORAGE_REALTEK=y
CONFIG_USB_STORAGE_DATAFAB=y
CONFIG_USB_STORAGE_FREECOM=y
CONFIG_USB_STORAGE_ISD200=y
CONFIG_USB_STORAGE_USBAT=y
CONFIG_USB_STORAGE_SDDR09=y
CONFIG_USB_STORAGE_SDDR55=y
CONFIG_USB_STORAGE_JUMPSHOT=y
CONFIG_USB_STORAGE_ALAUDA=y
CONFIG_USB_STORAGE_ONETOUCH=y
CONFIG_USB_STORAGE_KARMA=y
CONFIG_USB_STORAGE_CYPRESS_ATACB=y
CONFIG_USB_STORAGE_ENE_UB6250=y
CONFIG_USB_UAS=y
CONFIG_BLK_DEV_LOOP=y
CONFIG_STAGING=y
CONFIG_ANDROID=y
CONFIG_ION=y
CONFIG_ION_CARVEOUT_HEAP=y
CONFIG_EFIVAR_FS=n
CONFIG_CRYPTO_HW=n
CONFIG_CRYPTO_ECHAINIV=n
# CONFIG_VPP_ENB is not set
#CONFIG_I2C=y
#CONFIG_I2C_CHARDEV=y
#CONFIG_I2C_DESIGNWARE_CORE=y
#CONFIG_I2C_DESIGNWARE_PLATFORM=y
CONFIG_KEXEC=y
CONFIG_CRASH_DUMP=y
CONFIG_MAGIC_SYSRQ=y
CONFIG_FAT_FS=y
CONFIG_MSDOS_FS=y
CONFIG_VFAT_FS=y
CONFIG_FAT_DEFAULT_CODEPAGE=437
CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1"
CONFIG_NLS=y
CONFIG_NLS_DEFAULT="iso8859-1"
CONFIG_NLS_CODEPAGE_437=y
CONFIG_NLS_CODEPAGE_850=y
CONFIG_NLS_ISO8859_1=y
CONFIG_NLS_ISO8859_2=y
CONFIG_NLS_ISO8859_3=y
CONFIG_NLS_UTF8=y
CONFIG_CVITEK_NPU=y
CONFIG_RESET_CONTROLLER=y
CONFIG_RESET_CVITEK=y
CONFIG_DMADEVICES=y
CONFIG_DMA_ENGINE=y
CONFIG_DMA_OF=y
CONFIG_DW_DMAC_CVITEK=y
# audio driver
#CONFIG_SOUND=y
#CONFIG_SND=y
#CONFIG_SND_SOC=y
#CONFIG_SND_SOC_ADAU1372=y
#CONFIG_SND_SOC_ADAU_UTILS=y
#CONFIG_SND_SOC_ADAU1372_I2C=y
#CONFIG_SND_CV1835_I2S=y
#CONFIG_SND_SOC_CV1835_ADAU1372=y
# CONFIG_SND_SOC_ADAU1372_SPI is not set
#CONFIG_SND_SOC_CV1835_CONCURRENT_I2S=y
#CONFIG_CV1835_I2S_SUBSYS=y
#CONFIG_SND_SOC_CV1835_USE_AUDIO_PLL=y
#CONFIG_SND_SOC_CV1835_CV1835PDM=y
#CONFIG_SND_SOC_CV1835PDM=y
#CONFIG_SND_SOC_CV1835_CV1835ADC=y
#CONFIG_SND_SOC_CV1835ADC=y
#CONFIG_SND_SOC_CV1835_CV1835DAC=y
#CONFIG_SND_SOC_CV1835DAC=y
CONFIG_MODVERSIONS=y
CONFIG_ION_CARVEOUT_HEAP=y
CONFIG_PWM=y
CONFIG_PWM_CVITEK=m
CONFIG_CONSOLE_POLL=y
CONFIG_HAVE_ARCH_KGDB=y
CONFIG_KGDB=y
CONFIG_KGDB_SERIAL_CONSOLE=y
CONFIG_DYNAMIC_DEBUG=y
CONFIG_HW_PERF_EVENTS=y
CONFIG_TEE=y
CONFIG_OPTEE=y
CONFIG_WATCHDOG=y
CONFIG_DW_WATCHDOG=m
#
# SPI drivers
#
# CONFIG_SPI is not set
# CONFIG_SPI_MASTER is not set
# CONFIG_SPI_DESIGNWARE is not set
# CONFIG_SPI_DW_MMIO is not set
# CONFIG_SPI_SPIDEV is not set
#
# VIDEO
#
# media/v4l2 support
#CONFIG_I2C_MUX=y
#CONFIG_MEDIA_CONTROLLER=y
#CONFIG_MEDIA_SUPPORT=y
#CONFIG_MEDIA_CAMERA_SUPPORT=y
#CONFIG_VIDEO_DEV=y
#CONFIG_VIDEO_V4L2=y
#CONFIG_V4L2_MEM2MEM_DEV=y
#CONFIG_V4L_PLATFORM_DRIVERS=y
#CONFIG_SOC_CAMERA=y
#CONFIG_VIDEO_V4L2_SUBDEV_API=y
#CONFIG_MEDIA_USB_SUPPORT=y
#CONFIG_V4L_MEM2MEM_DRIVERS=y
#CONFIG_VIDEO_CVITEK=m
#CONFIG_VIDEO_CVITEK_CIF=m
#CONFIG_VIDEO_CVITEK_SNS_I2C=m
#CONFIG_VIDEO_CVITEK_MIPI_TX=m
#
# Frame buffer Devices
#CONFIG_FB=y
#CONFIG_FB_CVITEK=m

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,392 @@
#
# PLATFORM
#
CONFIG_SYSVIPC=y
CONFIG_POSIX_MQUEUE=y
CONFIG_FHANDLE=y
CONFIG_NO_HZ_IDLE=y
CONFIG_HIGH_RES_TIMERS=y
CONFIG_TASKSTATS=y
CONFIG_SCHED_AUTOGROUP=y
CONFIG_PROFILING=y
CONFIG_MODULES=y
CONFIG_MODULE_UNLOAD=y
CONFIG_MODULE_FORCE_LOAD=y
CONFIG_MODULE_FORCE_UNLOAD=y
CONFIG_BLK_DEV_BSGLIB=y
CONFIG_ARCH_CVITEK=y
CONFIG_ARCH_CVITEK_CHIP="cv183x"
CONFIG_ARCH_CV183X=y
CONFIG_ARCH_CV183X_ASIC=y
CONFIG_SMP=y
CONFIG_TRANSPARENT_HUGEPAGE=y
CONFIG_COMPAT=y
CONFIG_NET=y
CONFIG_PACKET=y
CONFIG_PACKET_DIAG=y
CONFIG_UNIX=y
CONFIG_INET=y
CONFIG_IP_MULTICAST=y
CONFIG_IP_PNP=y
CONFIG_NET_SCHED=y
CONFIG_DEVTMPFS=y
CONFIG_DEVTMPFS_MOUNT=y
CONFIG_BLK_DEV_SD=y
CONFIG_CHR_DEV_SG=y
CONFIG_CVITEK_PINCTRL_CV1835=y
CONFIG_PREEMPT=y
#
# NETWORK
#
CONFIG_NETDEVICES=y
CONFIG_ETHERNET=y
CONFIG_NET_VENDOR_STMICRO=y
CONFIG_STMMAC_ETH=y
CONFIG_STMMAC_PLATFORM=y
CONFIG_DWMAC_CVITEK=y
# CONFIG_NET_VENDOR_CVITEK is not set
CONFIG_REALTEK_PHY=y
CONFIG_SMSC_PHY=y
CONFIG_CVITEK_PHY=y
CONFIG_CVITEK_PHY_UAPS=y
# CONFIG_FIXED_PHY is not set
CONFIG_VLAN_8021Q=y
CONFIG_MACVLAN=y
CONFIG_BRIDGE=y
#
# FILE SYSTEM
#
CONFIG_HW_RANDOM=y
CONFIG_RTC_CLASS=y
CONFIG_EXT4_FS=y
CONFIG_EXT4_ENCRYPTION=y
CONFIG_EXT4_FS_ENCRYPTION=y
CONFIG_TMPFS=y
CONFIG_NFS_FS=y
CONFIG_ROOT_NFS=y
CONFIG_PRINTK_TIME=y
CONFIG_BLK_DEV_INITRD=y
CONFIG_SQUASHFS=y
CONFIG_SQUASHFS_LZ4=y
CONFIG_SQUASHFS_LZO=y
CONFIG_SQUASHFS_XZ=y
CONFIG_SQUASHFS_ZLIB=y
CONFIG_ENABLE_DEFAULT_TRACERS=y
CONFIG_FAT_FS=y
CONFIG_MSDOS_FS=y
CONFIG_VFAT_FS=y
CONFIG_FAT_DEFAULT_CODEPAGE=437
CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1"
CONFIG_PSTORE=y
CONFIG_PSTORE_ZLIB_COMPRESS=y
CONFIG_PSTORE_CONSOLE=y
CONFIG_PSTORE_PMSG=y
CONFIG_PSTORE_FTRACE=y
CONFIG_PSTORE_RAM=y
#
# STORAGE : SD/EMMC/NAND/NOR
#
CONFIG_MMC=y
CONFIG_MMC_BLOCK=y
CONFIG_MMC_BLOCK_MINORS=8
CONFIG_MMC_SDHCI=y
CONFIG_MMC_SDHCI_PLTFM=y
CONFIG_MMC_SDHCI_CVI=y
CONFIG_MTD=y
CONFIG_MTD_CHAR=y
CONFIG_MTD_BLOCK=y
CONFIG_MTD_NAND=y
CONFIG_MTD_NAND_IDS=y
CONFIG_MTD_NAND_PLATFORM=y
CONFIG_MTD_NAND_CVSNFC=y
CONFIG_MTD_NAND_CVSNFC_DT=y
CONFIG_MTD_CMDLINE_PARTS=y
CONFIG_MTD_TEST=m
CONFIG_MTD_UBI=y
CONFIG_UBIFS_FS=y
CONFIG_MTD_UBI_BLOCK=y
CONFIG_SPI=y
CONFIG_MTD_SPI_NOR=y
CONFIG_SPI_CVI_SPIF=y
CONFIG_JFFS2_FS=y
CONFIG_JFFS2_FS_WBUF_VERIFY=y
CONFIG_JFFS2_SUMMARY=y
CONFIG_JFFS2_FS_XATTR=y
CONFIG_JFFS2_COMPRESSION_OPTIONS=y
CONFIG_JFFS2_LZO=y
CONFIG_JFFS2_RUBIN=y
#
# USB
#
CONFIG_CMA=y
CONFIG_DMA_CMA=y
CONFIG_USB=y
CONFIG_USB_CVITEK_GADGET=m
CONFIG_USB_GADGET=y
CONFIG_U_SERIAL_CONSOLE=y
CONFIG_USB_CONFIGFS=m
CONFIG_USB_CONFIGFS_SERIAL=y
CONFIG_USB_CONFIGFS_ACM=y
CONFIG_USB_CONFIGFS_MASS_STORAGE=y
CONFIG_USB_CONFIGFS_RNDIS=y
CONFIG_USB_CONFIGFS_EEM=y
CONFIG_USB_CONFIGFS_ECM=y
CONFIG_USB_CONFIGFS_F_UVC=y
CONFIG_USB_CONFIGFS_F_UAC1=y
# CONFIG_USB_CONFIGFS_F_LB_SS is not set
# CONFIG_USB_CONFIGFS_F_FS is not set
# CONFIG_USB_G_SERIAL is not set
# CONFIG_USB_CONFIGFS_BCM is not set
CONFIG_USB_CONFIGFS_CVG=y
# usb otg
CONFIG_USB_OTG=y
CONFIG_USB_OTG_FSM=y
CONFIG_USB_CVITEK_DRD=m
# usb host storage
CONFIG_USB_XHCI_HCD=y
CONFIG_USB_XHCI_PLATFORM=y
CONFIG_SCSI=y
CONFIG_USB_STORAGE=y
#CONFIG_USB_STORAGE_DEBUG=y
CONFIG_USB_STORAGE_REALTEK=y
CONFIG_USB_STORAGE_DATAFAB=y
CONFIG_USB_STORAGE_FREECOM=y
CONFIG_USB_STORAGE_ISD200=y
CONFIG_USB_STORAGE_USBAT=y
CONFIG_USB_STORAGE_SDDR09=y
CONFIG_USB_STORAGE_SDDR55=y
CONFIG_USB_STORAGE_JUMPSHOT=y
CONFIG_USB_STORAGE_ALAUDA=y
CONFIG_USB_STORAGE_ONETOUCH=y
CONFIG_USB_STORAGE_KARMA=y
CONFIG_USB_STORAGE_CYPRESS_ATACB=y
CONFIG_USB_STORAGE_ENE_UB6250=y
CONFIG_USB_UAS=y
CONFIG_BLK_DEV_LOOP=y
CONFIG_EFIVAR_FS=n
CONFIG_CRYPTO_HW=n
CONFIG_CRYPTO_ECHAINIV=n
CONFIG_KEXEC=y
CONFIG_CRASH_DUMP=y
CONFIG_MAGIC_SYSRQ=y
CONFIG_NLS=y
CONFIG_NLS_DEFAULT="iso8859-1"
CONFIG_NLS_CODEPAGE_437=y
CONFIG_NLS_CODEPAGE_850=y
CONFIG_NLS_ISO8859_1=y
CONFIG_NLS_ISO8859_2=y
CONFIG_NLS_ISO8859_3=y
CONFIG_NLS_UTF8=y
CONFIG_CVITEK_NPU=y
CONFIG_RESET_CONTROLLER=y
CONFIG_RESET_CVITEK=y
CONFIG_DMADEVICES=y
CONFIG_DMA_ENGINE=y
CONFIG_DMA_OF=y
CONFIG_DW_DMAC_CVITEK=y
#
# AUDIO
#
CONFIG_SOUND=y
CONFIG_SND=y
CONFIG_SND_SOC=y
CONFIG_SND_CV1835_I2S=y
CONFIG_CV1835_I2S_SUBSYS=y
#CONFIG_SND_SOC_CV1835_CONCURRENT_I2S=y
CONFIG_SND_SOC_CV1835_USE_AUDIO_PLL=y
#
# AUDIO - ADAU1372 CODEC
#
#CONFIG_SND_SOC_ADAU1372=y
#CONFIG_SND_SOC_ADAU_UTILS=y
#CONFIG_SND_SOC_ADAU1372_I2C=y
#CONFIG_SND_SOC_CV1835_ADAU1372=y
#
# AUDIO - PDM
#
#CONFIG_SND_SOC_CV1835_CV1835PDM=y
#CONFIG_SND_SOC_CV1835PDM=y
#
# AUDIO - INTERNAL ADC AND DAC
#
CONFIG_SND_SOC_CV1835_CV1835ADC=y
CONFIG_SND_SOC_CV1835ADC=y
CONFIG_SND_SOC_CV1835_CV1835DAC=y
CONFIG_SND_SOC_CV1835DAC=y
#
# SPI drivers
#
# CONFIG_SPI_MASTER is not set
# CONFIG_SPI_DESIGNWARE is not set
# CONFIG_SPI_DW_MMIO is not set
# CONFIG_SPI_SPIDEV is not set
#
# VIDEO
#
# media/v4l2 support
CONFIG_I2C_MUX=y
CONFIG_MEDIA_CONTROLLER=y
CONFIG_MEDIA_SUPPORT=y
CONFIG_MEDIA_CAMERA_SUPPORT=y
CONFIG_VIDEO_DEV=y
CONFIG_VIDEO_V4L2=y
CONFIG_V4L2_MEM2MEM_DEV=y
CONFIG_V4L_PLATFORM_DRIVERS=y
CONFIG_SOC_CAMERA=y
CONFIG_VIDEO_V4L2_SUBDEV_API=y
CONFIG_MEDIA_USB_SUPPORT=y
CONFIG_V4L_MEM2MEM_DRIVERS=y
CONFIG_VIDEO_CVITEK=m
CONFIG_VIDEO_CVITEK_CIF=m
CONFIG_VIDEO_CVITEK_SNS_I2C=m
CONFIG_VIDEO_CVITEK_MIPI_TX=m
#
# Frame buffer Devices
#
CONFIG_FB=y
CONFIG_FB_CVITEK=m
#
# PM Suspend
#
CONFIG_PM_DEBUG=y
CONFIG_PM_TEST_SUSPEND=y
CONFIG_PM_ADVANCED_DEBUG=y
#
# PERIPHERAL
#
CONFIG_PWM=y
CONFIG_PWM_CVITEK=m
CONFIG_WATCHDOG=y
CONFIG_DW_WATCHDOG=m
CONFIG_I2C=y
CONFIG_I2C_CHARDEV=y
CONFIG_I2C_DESIGNWARE_CORE=y
CONFIG_I2C_DESIGNWARE_PLATFORM=y
CONFIG_SERIAL_8250=y
CONFIG_SERIAL_8250_CONSOLE=y
CONFIG_SERIAL_8250_DW=y
CONFIG_SERIAL_8250_NR_UARTS=5
CONFIG_SERIAL_8250_RUNTIME_UARTS=5
CONFIG_GPIOLIB=y
CONFIG_GPIO_SYSFS=y
CONFIG_GPIO_DWAPB=y
CONFIG_INPUT_EVDEV=y
#
# SYSTEM
#
CONFIG_TEE=y
CONFIG_OPTEE=y
CONFIG_STAGING=y
CONFIG_ANDROID=y
CONFIG_ION=y
CONFIG_ION_CARVEOUT_HEAP=y
CONFIG_ION_SYSTEM_HEAP=y
CONFIG_ION_CMA_HEAP=y
#
# KGDB/ FTRACE
#
CONFIG_HAVE_ARCH_KGDB=y
CONFIG_KGDB=y
CONFIG_KGDB_SERIAL_CONSOLE=y
CONFIG_TRACING=y
CONFIG_EVENT_TRACING=y
CONFIG_TRACING_SUPPORT=y
CONFIG_CONTEXT_SWITCH_TRACER=y
CONFIG_GENERIC_TRACER=y
CONFIG_NOP_TRACER=y
CONFIG_HAVE_FUNCTION_TRACER=y
CONFIG_HAVE_FUNCTION_GRAPH_TRACER=y
CONFIG_HAVE_DYNAMIC_FTRACE=y
CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
CONFIG_HAVE_SYSCALL_TRACEPOINTS=y
CONFIG_HAVE_C_RECORDMCOUNT=y
CONFIG_TRACER_MAX_TRACE=y
CONFIG_TRACE_CLOCK=y
CONFIG_FTRACE=y
CONFIG_FUNCTION_TRACER=y
CONFIG_FUNCTION_GRAPH_TRACER=y
CONFIG_IRQSOFF_TRACER=y
CONFIG_SCHED_TRACER=y
CONFIG_HWLAT_TRACER=y
CONFIG_FTRACE_SYSCALLS=y
CONFIG_TRACER_SNAPSHOT=y
CONFIG_TRACER_SNAPSHOT_PER_CPU_SWAP=y
CONFIG_BRANCH_PROFILE_NONE=y
CONFIG_STACK_TRACER=y
CONFIG_BLK_DEV_IO_TRACE=y
CONFIG_DYNAMIC_FTRACE=y
CONFIG_FUNCTION_PROFILER=y
CONFIG_FTRACE_MCOUNT_RECORD=y
#
# Debug
#
CONFIG_DYNAMIC_DEBUG=y
CONFIG_DEBUG_KERNEL=y
CONFIG_DEBUG_INFO=y
CONFIG_DEBUG_STACKOVERFLOW=y
CONFIG_DEBUG_STACK_USAGE=y
CONFIG_SLUB_DEBUG=y
CONFIG_DEBUG_SPINLOCK=y
CONFIG_DEBUG_MUTEXES=y
CONFIG_DEBUG_ATOMIC_SLEEP=y
CONFIG_DEBUG_LIST=y
CONFIG_SCHEDSTATS=y
CONFIG_SCHED_STACK_END_CHECK=y
CONFIG_FRAME_POINTER=y
#
# WiFi
#
CONFIG_WLAN=y
CONFIG_CFG80211=y
CONFIG_CFG80211_DEFAULT_PS=y
CONFIG_CFG80211_CRDA_SUPPORT=y
CONFIG_CFG80211_WEXT=y
CONFIG_MAC80211=y
CONFIG_MAC80211_HAS_RC=y
CONFIG_MAC80211_RC_MINSTREL=y
CONFIG_MAC80211_RC_MINSTREL_HT=y
CONFIG_MAC80211_RC_DEFAULT_MINSTREL=y
CONFIG_MAC80211_RC_DEFAULT="minstrel_ht"
#
# Clock framework
#
CONFIG_COMMON_CLK=y
CONFIG_COMMON_CLK_CVITEK=y
#
# Thermal
#
CONFIG_THERMAL=y
CONFIG_THERMAL_WRITABLE_TRIPS=y
CONFIG_THERMAL_EMULATION=y
CONFIG_CV1835_THERMAL=y
#
# OTHERS
#
CONFIG_HW_PERF_EVENTS=y
CONFIG_RCU_CPU_STALL_TIMEOUT=21
CONFIG_RING_BUFFER=y
CONFIG_RING_BUFFER_ALLOW_SWAP=y
CONFIG_CONSOLE_POLL=y
CONFIG_CV1835_SYSDMA_REMAP=y
CONFIG_OVERLAY_FS=y

View File

@ -0,0 +1,392 @@
#
# PLATFORM
#
CONFIG_SYSVIPC=y
CONFIG_POSIX_MQUEUE=y
CONFIG_FHANDLE=y
CONFIG_NO_HZ_IDLE=y
CONFIG_HIGH_RES_TIMERS=y
CONFIG_TASKSTATS=y
CONFIG_SCHED_AUTOGROUP=y
CONFIG_PROFILING=y
CONFIG_MODULES=y
CONFIG_MODULE_UNLOAD=y
CONFIG_MODULE_FORCE_LOAD=y
CONFIG_MODULE_FORCE_UNLOAD=y
CONFIG_BLK_DEV_BSGLIB=y
CONFIG_ARCH_CVITEK=y
CONFIG_ARCH_CVITEK_CHIP="cv183x"
CONFIG_ARCH_CV183X=y
CONFIG_ARCH_CV183X_ASIC=y
CONFIG_SMP=y
CONFIG_TRANSPARENT_HUGEPAGE=y
CONFIG_COMPAT=y
CONFIG_NET=y
CONFIG_PACKET=y
CONFIG_PACKET_DIAG=y
CONFIG_UNIX=y
CONFIG_INET=y
CONFIG_IP_MULTICAST=y
CONFIG_IP_PNP=y
CONFIG_NET_SCHED=y
CONFIG_DEVTMPFS=y
CONFIG_DEVTMPFS_MOUNT=y
CONFIG_BLK_DEV_SD=y
CONFIG_CHR_DEV_SG=y
CONFIG_CVITEK_PINCTRL_CV1835=y
CONFIG_PREEMPT=y
#
# NETWORK
#
CONFIG_NETDEVICES=y
CONFIG_ETHERNET=y
CONFIG_NET_VENDOR_STMICRO=y
CONFIG_STMMAC_ETH=y
CONFIG_STMMAC_PLATFORM=y
CONFIG_DWMAC_CVITEK=y
# CONFIG_NET_VENDOR_CVITEK is not set
CONFIG_REALTEK_PHY=y
CONFIG_SMSC_PHY=y
CONFIG_CVITEK_PHY=y
CONFIG_CVITEK_PHY_UAPS=y
# CONFIG_FIXED_PHY is not set
CONFIG_VLAN_8021Q=y
CONFIG_MACVLAN=y
CONFIG_BRIDGE=y
#
# FILE SYSTEM
#
CONFIG_HW_RANDOM=y
CONFIG_RTC_CLASS=y
CONFIG_EXT4_FS=y
CONFIG_EXT4_ENCRYPTION=y
CONFIG_EXT4_FS_ENCRYPTION=y
CONFIG_TMPFS=y
CONFIG_NFS_FS=y
CONFIG_ROOT_NFS=y
CONFIG_PRINTK_TIME=y
CONFIG_BLK_DEV_INITRD=y
CONFIG_SQUASHFS=y
CONFIG_SQUASHFS_LZ4=y
CONFIG_SQUASHFS_LZO=y
CONFIG_SQUASHFS_XZ=y
CONFIG_SQUASHFS_ZLIB=y
CONFIG_ENABLE_DEFAULT_TRACERS=y
CONFIG_FAT_FS=y
CONFIG_MSDOS_FS=y
CONFIG_VFAT_FS=y
CONFIG_FAT_DEFAULT_CODEPAGE=437
CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1"
CONFIG_PSTORE=y
CONFIG_PSTORE_ZLIB_COMPRESS=y
CONFIG_PSTORE_CONSOLE=y
CONFIG_PSTORE_PMSG=y
CONFIG_PSTORE_FTRACE=y
CONFIG_PSTORE_RAM=y
#
# STORAGE : SD/EMMC/NAND/NOR
#
CONFIG_MMC=y
CONFIG_MMC_BLOCK=y
CONFIG_MMC_BLOCK_MINORS=8
CONFIG_MMC_SDHCI=y
CONFIG_MMC_SDHCI_PLTFM=y
CONFIG_MMC_SDHCI_CVI=y
CONFIG_MTD=y
CONFIG_MTD_CHAR=y
CONFIG_MTD_BLOCK=y
CONFIG_MTD_NAND=y
CONFIG_MTD_NAND_IDS=y
CONFIG_MTD_NAND_PLATFORM=y
CONFIG_MTD_NAND_CVSNFC=y
CONFIG_MTD_NAND_CVSNFC_DT=y
CONFIG_MTD_CMDLINE_PARTS=y
CONFIG_MTD_TEST=m
CONFIG_MTD_UBI=y
CONFIG_UBIFS_FS=y
CONFIG_MTD_UBI_BLOCK=y
CONFIG_SPI=y
CONFIG_MTD_SPI_NOR=y
CONFIG_SPI_CVI_SPIF=y
CONFIG_JFFS2_FS=y
CONFIG_JFFS2_FS_WBUF_VERIFY=y
CONFIG_JFFS2_SUMMARY=y
CONFIG_JFFS2_FS_XATTR=y
CONFIG_JFFS2_COMPRESSION_OPTIONS=y
CONFIG_JFFS2_LZO=y
CONFIG_JFFS2_RUBIN=y
#
# USB
#
CONFIG_CMA=y
CONFIG_DMA_CMA=y
CONFIG_USB=y
CONFIG_USB_CVITEK_GADGET=m
CONFIG_USB_GADGET=y
CONFIG_U_SERIAL_CONSOLE=y
CONFIG_USB_CONFIGFS=m
CONFIG_USB_CONFIGFS_SERIAL=y
CONFIG_USB_CONFIGFS_ACM=y
CONFIG_USB_CONFIGFS_MASS_STORAGE=y
CONFIG_USB_CONFIGFS_RNDIS=y
CONFIG_USB_CONFIGFS_EEM=y
CONFIG_USB_CONFIGFS_ECM=y
CONFIG_USB_CONFIGFS_F_UVC=y
CONFIG_USB_CONFIGFS_F_UAC1=y
# CONFIG_USB_CONFIGFS_F_LB_SS is not set
# CONFIG_USB_CONFIGFS_F_FS is not set
# CONFIG_USB_G_SERIAL is not set
# CONFIG_USB_CONFIGFS_BCM is not set
CONFIG_USB_CONFIGFS_CVG=y
# usb otg
CONFIG_USB_OTG=y
CONFIG_USB_OTG_FSM=y
CONFIG_USB_CVITEK_DRD=m
# usb host storage
CONFIG_USB_XHCI_HCD=y
CONFIG_USB_XHCI_PLATFORM=y
CONFIG_SCSI=y
CONFIG_USB_STORAGE=y
#CONFIG_USB_STORAGE_DEBUG=y
CONFIG_USB_STORAGE_REALTEK=y
CONFIG_USB_STORAGE_DATAFAB=y
CONFIG_USB_STORAGE_FREECOM=y
CONFIG_USB_STORAGE_ISD200=y
CONFIG_USB_STORAGE_USBAT=y
CONFIG_USB_STORAGE_SDDR09=y
CONFIG_USB_STORAGE_SDDR55=y
CONFIG_USB_STORAGE_JUMPSHOT=y
CONFIG_USB_STORAGE_ALAUDA=y
CONFIG_USB_STORAGE_ONETOUCH=y
CONFIG_USB_STORAGE_KARMA=y
CONFIG_USB_STORAGE_CYPRESS_ATACB=y
CONFIG_USB_STORAGE_ENE_UB6250=y
CONFIG_USB_UAS=y
CONFIG_BLK_DEV_LOOP=y
CONFIG_EFIVAR_FS=n
CONFIG_CRYPTO_HW=n
CONFIG_CRYPTO_ECHAINIV=n
CONFIG_KEXEC=y
CONFIG_CRASH_DUMP=y
CONFIG_MAGIC_SYSRQ=y
CONFIG_NLS=y
CONFIG_NLS_DEFAULT="iso8859-1"
CONFIG_NLS_CODEPAGE_437=y
CONFIG_NLS_CODEPAGE_850=y
CONFIG_NLS_ISO8859_1=y
CONFIG_NLS_ISO8859_2=y
CONFIG_NLS_ISO8859_3=y
CONFIG_NLS_UTF8=y
CONFIG_CVITEK_NPU=y
CONFIG_RESET_CONTROLLER=y
CONFIG_RESET_CVITEK=y
CONFIG_DMADEVICES=y
CONFIG_DMA_ENGINE=y
CONFIG_DMA_OF=y
CONFIG_DW_DMAC_CVITEK=y
#
# AUDIO
#
CONFIG_SOUND=y
CONFIG_SND=y
CONFIG_SND_SOC=y
CONFIG_SND_CV1835_I2S=y
CONFIG_CV1835_I2S_SUBSYS=y
#CONFIG_SND_SOC_CV1835_CONCURRENT_I2S=y
CONFIG_SND_SOC_CV1835_USE_AUDIO_PLL=y
#
# AUDIO - ADAU1372 CODEC
#
#CONFIG_SND_SOC_ADAU1372=y
#CONFIG_SND_SOC_ADAU_UTILS=y
#CONFIG_SND_SOC_ADAU1372_I2C=y
#CONFIG_SND_SOC_CV1835_ADAU1372=y
#
# AUDIO - PDM
#
#CONFIG_SND_SOC_CV1835_CV1835PDM=y
#CONFIG_SND_SOC_CV1835PDM=y
#
# AUDIO - INTERNAL ADC AND DAC
#
CONFIG_SND_SOC_CV1835_CV1835ADC=y
CONFIG_SND_SOC_CV1835ADC=y
CONFIG_SND_SOC_CV1835_CV1835DAC=y
CONFIG_SND_SOC_CV1835DAC=y
#
# SPI drivers
#
# CONFIG_SPI_MASTER is not set
# CONFIG_SPI_DESIGNWARE is not set
# CONFIG_SPI_DW_MMIO is not set
# CONFIG_SPI_SPIDEV is not set
#
# VIDEO
#
# media/v4l2 support
CONFIG_I2C_MUX=y
CONFIG_MEDIA_CONTROLLER=y
CONFIG_MEDIA_SUPPORT=y
CONFIG_MEDIA_CAMERA_SUPPORT=y
CONFIG_VIDEO_DEV=y
CONFIG_VIDEO_V4L2=y
CONFIG_V4L2_MEM2MEM_DEV=y
CONFIG_V4L_PLATFORM_DRIVERS=y
CONFIG_SOC_CAMERA=y
CONFIG_VIDEO_V4L2_SUBDEV_API=y
CONFIG_MEDIA_USB_SUPPORT=y
CONFIG_V4L_MEM2MEM_DRIVERS=y
CONFIG_VIDEO_CVITEK=m
CONFIG_VIDEO_CVITEK_CIF=m
CONFIG_VIDEO_CVITEK_SNS_I2C=m
CONFIG_VIDEO_CVITEK_MIPI_TX=m
#
# Frame buffer Devices
#
CONFIG_FB=y
CONFIG_FB_CVITEK=m
#
# PM Suspend
#
CONFIG_PM_DEBUG=y
CONFIG_PM_TEST_SUSPEND=y
CONFIG_PM_ADVANCED_DEBUG=y
#
# PERIPHERAL
#
CONFIG_PWM=y
CONFIG_PWM_CVITEK=m
CONFIG_WATCHDOG=y
CONFIG_DW_WATCHDOG=m
CONFIG_I2C=y
CONFIG_I2C_CHARDEV=y
CONFIG_I2C_DESIGNWARE_CORE=y
CONFIG_I2C_DESIGNWARE_PLATFORM=y
CONFIG_SERIAL_8250=y
CONFIG_SERIAL_8250_CONSOLE=y
CONFIG_SERIAL_8250_DW=y
CONFIG_SERIAL_8250_NR_UARTS=5
CONFIG_SERIAL_8250_RUNTIME_UARTS=5
CONFIG_GPIOLIB=y
CONFIG_GPIO_SYSFS=y
CONFIG_GPIO_DWAPB=y
CONFIG_INPUT_EVDEV=y
#
# SYSTEM
#
CONFIG_TEE=y
CONFIG_OPTEE=y
CONFIG_STAGING=y
CONFIG_ANDROID=y
CONFIG_ION=y
CONFIG_ION_CARVEOUT_HEAP=y
CONFIG_ION_SYSTEM_HEAP=y
CONFIG_ION_CMA_HEAP=y
#
# KGDB/ FTRACE
#
CONFIG_HAVE_ARCH_KGDB=y
CONFIG_KGDB=y
CONFIG_KGDB_SERIAL_CONSOLE=y
CONFIG_TRACING=y
CONFIG_EVENT_TRACING=y
CONFIG_TRACING_SUPPORT=y
CONFIG_CONTEXT_SWITCH_TRACER=y
CONFIG_GENERIC_TRACER=y
CONFIG_NOP_TRACER=y
CONFIG_HAVE_FUNCTION_TRACER=y
CONFIG_HAVE_FUNCTION_GRAPH_TRACER=y
CONFIG_HAVE_DYNAMIC_FTRACE=y
CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
CONFIG_HAVE_SYSCALL_TRACEPOINTS=y
CONFIG_HAVE_C_RECORDMCOUNT=y
CONFIG_TRACER_MAX_TRACE=y
CONFIG_TRACE_CLOCK=y
CONFIG_FTRACE=y
CONFIG_FUNCTION_TRACER=y
CONFIG_FUNCTION_GRAPH_TRACER=y
CONFIG_IRQSOFF_TRACER=y
CONFIG_SCHED_TRACER=y
CONFIG_HWLAT_TRACER=y
CONFIG_FTRACE_SYSCALLS=y
CONFIG_TRACER_SNAPSHOT=y
CONFIG_TRACER_SNAPSHOT_PER_CPU_SWAP=y
CONFIG_BRANCH_PROFILE_NONE=y
CONFIG_STACK_TRACER=y
CONFIG_BLK_DEV_IO_TRACE=y
CONFIG_DYNAMIC_FTRACE=y
CONFIG_FUNCTION_PROFILER=y
CONFIG_FTRACE_MCOUNT_RECORD=y
#
# Debug
#
CONFIG_DYNAMIC_DEBUG=y
CONFIG_DEBUG_KERNEL=y
CONFIG_DEBUG_INFO=y
CONFIG_DEBUG_STACKOVERFLOW=y
CONFIG_DEBUG_STACK_USAGE=y
CONFIG_SLUB_DEBUG=y
CONFIG_DEBUG_SPINLOCK=y
CONFIG_DEBUG_MUTEXES=y
CONFIG_DEBUG_ATOMIC_SLEEP=y
CONFIG_DEBUG_LIST=y
CONFIG_SCHEDSTATS=y
CONFIG_SCHED_STACK_END_CHECK=y
CONFIG_FRAME_POINTER=y
#
# WiFi
#
CONFIG_WLAN=y
CONFIG_CFG80211=y
CONFIG_CFG80211_DEFAULT_PS=y
CONFIG_CFG80211_CRDA_SUPPORT=y
CONFIG_CFG80211_WEXT=y
CONFIG_MAC80211=y
CONFIG_MAC80211_HAS_RC=y
CONFIG_MAC80211_RC_MINSTREL=y
CONFIG_MAC80211_RC_MINSTREL_HT=y
CONFIG_MAC80211_RC_DEFAULT_MINSTREL=y
CONFIG_MAC80211_RC_DEFAULT="minstrel_ht"
#
# Clock framework
#
CONFIG_COMMON_CLK=y
CONFIG_COMMON_CLK_CVITEK=y
#
# Thermal
#
CONFIG_THERMAL=y
CONFIG_THERMAL_WRITABLE_TRIPS=y
CONFIG_THERMAL_EMULATION=y
CONFIG_CV1835_THERMAL=y
#
# OTHERS
#
CONFIG_HW_PERF_EVENTS=y
CONFIG_RCU_CPU_STALL_TIMEOUT=21
CONFIG_RING_BUFFER=y
CONFIG_RING_BUFFER_ALLOW_SWAP=y
CONFIG_CONSOLE_POLL=y
CONFIG_CV1835_SYSDMA_REMAP=y
CONFIG_OVERLAY_FS=y

View File

@ -0,0 +1,395 @@
#
# PLATFORM
#
CONFIG_SYSVIPC=y
CONFIG_POSIX_MQUEUE=y
CONFIG_FHANDLE=y
CONFIG_NO_HZ_IDLE=y
CONFIG_HIGH_RES_TIMERS=y
CONFIG_TASKSTATS=y
CONFIG_SCHED_AUTOGROUP=y
CONFIG_PROFILING=y
CONFIG_MODULES=y
CONFIG_MODULE_UNLOAD=y
CONFIG_MODULE_FORCE_LOAD=y
CONFIG_MODULE_FORCE_UNLOAD=y
CONFIG_BLK_DEV_BSGLIB=y
CONFIG_ARCH_CVITEK=y
CONFIG_ARCH_CVITEK_CHIP="cv183x"
CONFIG_ARCH_CV183X=y
CONFIG_ARCH_CV183X_ASIC=y
CONFIG_SMP=y
CONFIG_TRANSPARENT_HUGEPAGE=y
CONFIG_COMPAT=y
CONFIG_NET=y
CONFIG_PACKET=y
CONFIG_PACKET_DIAG=y
CONFIG_UNIX=y
CONFIG_INET=y
CONFIG_IP_MULTICAST=y
CONFIG_IP_PNP=y
CONFIG_NET_SCHED=y
CONFIG_DEVTMPFS=y
CONFIG_DEVTMPFS_MOUNT=y
CONFIG_BLK_DEV_SD=y
CONFIG_CHR_DEV_SG=y
CONFIG_CVITEK_PINCTRL_CV1835=y
CONFIG_PREEMPT=y
#
# NETWORK
#
CONFIG_NETDEVICES=y
CONFIG_ETHERNET=y
CONFIG_NET_VENDOR_STMICRO=y
CONFIG_STMMAC_ETH=y
CONFIG_STMMAC_PLATFORM=y
CONFIG_DWMAC_CVITEK=y
# CONFIG_NET_VENDOR_CVITEK is not set
CONFIG_REALTEK_PHY=y
CONFIG_SMSC_PHY=y
CONFIG_CVITEK_PHY=y
CONFIG_CVITEK_PHY_UAPS=y
# CONFIG_FIXED_PHY is not set
CONFIG_VLAN_8021Q=y
CONFIG_MACVLAN=y
CONFIG_BRIDGE=y
#
# FILE SYSTEM
#
CONFIG_HW_RANDOM=y
CONFIG_RTC_CLASS=y
CONFIG_EXT4_FS=y
CONFIG_EXT4_ENCRYPTION=y
CONFIG_EXT4_FS_ENCRYPTION=y
CONFIG_TMPFS=y
CONFIG_NFS_FS=y
CONFIG_ROOT_NFS=y
CONFIG_PRINTK_TIME=y
CONFIG_BLK_DEV_INITRD=y
CONFIG_SQUASHFS=y
CONFIG_SQUASHFS_LZ4=y
CONFIG_SQUASHFS_LZO=y
CONFIG_SQUASHFS_XZ=y
CONFIG_SQUASHFS_ZLIB=y
CONFIG_ENABLE_DEFAULT_TRACERS=y
CONFIG_FAT_FS=y
CONFIG_MSDOS_FS=y
CONFIG_VFAT_FS=y
CONFIG_FAT_DEFAULT_CODEPAGE=437
CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1"
CONFIG_PSTORE=y
CONFIG_PSTORE_ZLIB_COMPRESS=y
CONFIG_PSTORE_CONSOLE=y
CONFIG_PSTORE_PMSG=y
CONFIG_PSTORE_FTRACE=y
CONFIG_PSTORE_RAM=y
#
# STORAGE : SD/EMMC/NAND/NOR
#
CONFIG_MMC=y
CONFIG_MMC_BLOCK=y
CONFIG_MMC_BLOCK_MINORS=8
CONFIG_MMC_SDHCI=y
CONFIG_MMC_SDHCI_PLTFM=y
CONFIG_MMC_SDHCI_CVI=y
CONFIG_MTD=y
CONFIG_MTD_CHAR=y
CONFIG_MTD_BLOCK=y
CONFIG_MTD_NAND=y
CONFIG_MTD_NAND_IDS=y
CONFIG_MTD_NAND_PLATFORM=y
CONFIG_MTD_NAND_CVSNFC=y
CONFIG_MTD_NAND_CVSNFC_DT=y
CONFIG_MTD_CMDLINE_PARTS=y
CONFIG_MTD_TEST=m
CONFIG_MTD_UBI=y
CONFIG_UBIFS_FS=y
CONFIG_MTD_UBI_BLOCK=y
CONFIG_SPI=y
CONFIG_MTD_SPI_NOR=y
CONFIG_SPI_CVI_SPIF=y
CONFIG_JFFS2_FS=y
CONFIG_JFFS2_FS_WBUF_VERIFY=y
CONFIG_JFFS2_SUMMARY=y
CONFIG_JFFS2_FS_XATTR=y
CONFIG_JFFS2_COMPRESSION_OPTIONS=y
CONFIG_JFFS2_LZO=y
CONFIG_JFFS2_RUBIN=y
#
# USB
#
CONFIG_CMA=y
CONFIG_DMA_CMA=y
CONFIG_USB=y
CONFIG_USB_CVITEK_GADGET=m
CONFIG_USB_GADGET=y
CONFIG_U_SERIAL_CONSOLE=y
CONFIG_USB_CONFIGFS=m
CONFIG_USB_CONFIGFS_SERIAL=y
CONFIG_USB_CONFIGFS_ACM=y
CONFIG_USB_CONFIGFS_MASS_STORAGE=y
CONFIG_USB_CONFIGFS_RNDIS=y
CONFIG_USB_CONFIGFS_EEM=y
CONFIG_USB_CONFIGFS_ECM=y
CONFIG_USB_CONFIGFS_F_UVC=y
CONFIG_USB_CONFIGFS_F_UAC1=y
# CONFIG_USB_CONFIGFS_F_LB_SS is not set
# CONFIG_USB_CONFIGFS_F_FS is not set
# CONFIG_USB_G_SERIAL is not set
# CONFIG_USB_CONFIGFS_BCM is not set
CONFIG_USB_CONFIGFS_CVG=y
# usb otg
CONFIG_USB_OTG=y
CONFIG_USB_OTG_FSM=y
CONFIG_USB_CVITEK_DRD=m
# usb host storage
CONFIG_USB_XHCI_HCD=y
CONFIG_USB_XHCI_PLATFORM=y
CONFIG_SCSI=y
CONFIG_USB_STORAGE=y
#CONFIG_USB_STORAGE_DEBUG=y
CONFIG_USB_STORAGE_REALTEK=y
CONFIG_USB_STORAGE_DATAFAB=y
CONFIG_USB_STORAGE_FREECOM=y
CONFIG_USB_STORAGE_ISD200=y
CONFIG_USB_STORAGE_USBAT=y
CONFIG_USB_STORAGE_SDDR09=y
CONFIG_USB_STORAGE_SDDR55=y
CONFIG_USB_STORAGE_JUMPSHOT=y
CONFIG_USB_STORAGE_ALAUDA=y
CONFIG_USB_STORAGE_ONETOUCH=y
CONFIG_USB_STORAGE_KARMA=y
CONFIG_USB_STORAGE_CYPRESS_ATACB=y
CONFIG_USB_STORAGE_ENE_UB6250=y
CONFIG_USB_UAS=y
CONFIG_BLK_DEV_LOOP=y
CONFIG_EFIVAR_FS=n
CONFIG_CRYPTO_HW=n
CONFIG_CRYPTO_ECHAINIV=n
CONFIG_KEXEC=y
CONFIG_CRASH_DUMP=y
CONFIG_MAGIC_SYSRQ=y
CONFIG_NLS=y
CONFIG_NLS_DEFAULT="iso8859-1"
CONFIG_NLS_CODEPAGE_437=y
CONFIG_NLS_CODEPAGE_850=y
CONFIG_NLS_ISO8859_1=y
CONFIG_NLS_ISO8859_2=y
CONFIG_NLS_ISO8859_3=y
CONFIG_NLS_UTF8=y
CONFIG_CVITEK_NPU=y
CONFIG_RESET_CONTROLLER=y
CONFIG_RESET_CVITEK=y
CONFIG_DMADEVICES=y
CONFIG_DMA_ENGINE=y
CONFIG_DMA_OF=y
CONFIG_DW_DMAC_CVITEK=y
#
# AUDIO
#
CONFIG_SOUND=y
CONFIG_SND=y
CONFIG_SND_SOC=y
CONFIG_SND_CV1835_I2S=y
CONFIG_CV1835_I2S_SUBSYS=y
#CONFIG_SND_SOC_CV1835_CONCURRENT_I2S=y
CONFIG_SND_SOC_CV1835_USE_AUDIO_PLL=y
#
# AUDIO - ADAU1372 CODEC
#
#CONFIG_SND_SOC_ADAU1372=y
#CONFIG_SND_SOC_ADAU_UTILS=y
#CONFIG_SND_SOC_ADAU1372_I2C=y
#CONFIG_SND_SOC_CV1835_ADAU1372=y
#
# AUDIO - PDM
#
#CONFIG_SND_SOC_CV1835_CV1835PDM=y
#CONFIG_SND_SOC_CV1835PDM=y
#
# AUDIO - INTERNAL ADC AND DAC
#
CONFIG_SND_SOC_CV1835_CV1835ADC=y
CONFIG_SND_SOC_CV1835ADC=y
CONFIG_SND_SOC_CV1835_CV1835DAC=y
CONFIG_SND_SOC_CV1835DAC=y
#
# SPI drivers
#
# CONFIG_SPI_MASTER is not set
# CONFIG_SPI_DESIGNWARE is not set
# CONFIG_SPI_DW_MMIO is not set
# CONFIG_SPI_SPIDEV is not set
#
# VIDEO
#
# media/v4l2 support
CONFIG_I2C_MUX=y
CONFIG_MEDIA_CONTROLLER=y
CONFIG_MEDIA_SUPPORT=y
CONFIG_MEDIA_CAMERA_SUPPORT=y
CONFIG_VIDEO_DEV=y
CONFIG_VIDEO_V4L2=y
CONFIG_V4L2_MEM2MEM_DEV=y
CONFIG_V4L_PLATFORM_DRIVERS=y
CONFIG_SOC_CAMERA=y
CONFIG_VIDEO_V4L2_SUBDEV_API=y
CONFIG_MEDIA_USB_SUPPORT=y
CONFIG_V4L_MEM2MEM_DRIVERS=y
CONFIG_VIDEO_CVITEK=m
CONFIG_VIDEO_CVITEK_CIF=m
CONFIG_VIDEO_CVITEK_SNS_I2C=m
CONFIG_VIDEO_CVITEK_MIPI_TX=m
#
# Frame buffer Devices
#
CONFIG_FB=y
CONFIG_FB_CVITEK=m
#
# PM Suspend
#
CONFIG_PM_DEBUG=y
CONFIG_PM_TEST_SUSPEND=y
CONFIG_PM_ADVANCED_DEBUG=y
#
# PERIPHERAL
#
CONFIG_PWM=y
CONFIG_PWM_CVITEK=m
CONFIG_WATCHDOG=y
CONFIG_DW_WATCHDOG=m
CONFIG_I2C=y
CONFIG_I2C_CHARDEV=y
CONFIG_I2C_DESIGNWARE_CORE=y
CONFIG_I2C_DESIGNWARE_PLATFORM=y
CONFIG_SERIAL_8250=y
CONFIG_SERIAL_8250_CONSOLE=y
CONFIG_SERIAL_8250_DW=y
CONFIG_SERIAL_8250_NR_UARTS=5
CONFIG_SERIAL_8250_RUNTIME_UARTS=5
CONFIG_GPIOLIB=y
CONFIG_GPIO_SYSFS=y
CONFIG_GPIO_DWAPB=y
CONFIG_INPUT_EVDEV=y
#
# SYSTEM
#
CONFIG_TEE=y
CONFIG_OPTEE=y
CONFIG_STAGING=y
CONFIG_ANDROID=y
CONFIG_ION=y
CONFIG_ION_CARVEOUT_HEAP=y
CONFIG_ION_SYSTEM_HEAP=y
CONFIG_ION_CMA_HEAP=y
#
# KGDB/ FTRACE
#
CONFIG_HAVE_ARCH_KGDB=y
CONFIG_KGDB=y
CONFIG_KGDB_SERIAL_CONSOLE=y
CONFIG_TRACING=y
CONFIG_EVENT_TRACING=y
CONFIG_TRACING_SUPPORT=y
CONFIG_CONTEXT_SWITCH_TRACER=y
CONFIG_GENERIC_TRACER=y
CONFIG_NOP_TRACER=y
CONFIG_HAVE_FUNCTION_TRACER=y
CONFIG_HAVE_FUNCTION_GRAPH_TRACER=y
CONFIG_HAVE_DYNAMIC_FTRACE=y
CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
CONFIG_HAVE_SYSCALL_TRACEPOINTS=y
CONFIG_HAVE_C_RECORDMCOUNT=y
CONFIG_TRACER_MAX_TRACE=y
CONFIG_TRACE_CLOCK=y
CONFIG_FTRACE=y
CONFIG_FUNCTION_TRACER=y
CONFIG_FUNCTION_GRAPH_TRACER=y
CONFIG_IRQSOFF_TRACER=y
CONFIG_SCHED_TRACER=y
CONFIG_HWLAT_TRACER=y
CONFIG_FTRACE_SYSCALLS=y
CONFIG_TRACER_SNAPSHOT=y
CONFIG_TRACER_SNAPSHOT_PER_CPU_SWAP=y
CONFIG_BRANCH_PROFILE_NONE=y
CONFIG_STACK_TRACER=y
CONFIG_BLK_DEV_IO_TRACE=y
CONFIG_DYNAMIC_FTRACE=y
CONFIG_FUNCTION_PROFILER=y
CONFIG_FTRACE_MCOUNT_RECORD=y
#
# Debug
#
CONFIG_DYNAMIC_DEBUG=y
CONFIG_DEBUG_KERNEL=y
CONFIG_DEBUG_INFO=y
CONFIG_DEBUG_STACKOVERFLOW=y
CONFIG_DEBUG_STACK_USAGE=y
CONFIG_SLUB_DEBUG=y
CONFIG_DEBUG_SPINLOCK=y
CONFIG_DEBUG_MUTEXES=y
CONFIG_DEBUG_ATOMIC_SLEEP=y
CONFIG_DEBUG_LIST=y
CONFIG_SCHEDSTATS=y
CONFIG_SCHED_STACK_END_CHECK=y
CONFIG_FRAME_POINTER=y
#
# WiFi
#
CONFIG_WLAN=y
CONFIG_CFG80211=y
CONFIG_CFG80211_DEFAULT_PS=y
CONFIG_CFG80211_CRDA_SUPPORT=y
CONFIG_CFG80211_WEXT=y
CONFIG_MAC80211=y
CONFIG_MAC80211_HAS_RC=y
CONFIG_MAC80211_RC_MINSTREL=y
CONFIG_MAC80211_RC_MINSTREL_HT=y
CONFIG_MAC80211_RC_DEFAULT_MINSTREL=y
CONFIG_MAC80211_RC_DEFAULT="minstrel_ht"
#
# Clock framework
#
CONFIG_COMMON_CLK=y
CONFIG_COMMON_CLK_CVITEK=y
#
# Thermal
#
CONFIG_THERMAL=y
CONFIG_THERMAL_WRITABLE_TRIPS=y
CONFIG_THERMAL_EMULATION=y
CONFIG_CV1835_THERMAL=y
#
# OTHERS
#
CONFIG_HW_PERF_EVENTS=y
CONFIG_RCU_CPU_STALL_TIMEOUT=21
CONFIG_RING_BUFFER=y
CONFIG_RING_BUFFER_ALLOW_SWAP=y
CONFIG_CONSOLE_POLL=y
CONFIG_CV1835_SYSDMA_REMAP=y
CONFIG_OVERLAY_FS=y
CONFIG_HAVE_KERNEL_LZMA=y
CONFIG_KERNEL_LZMA=y

View File

@ -0,0 +1,371 @@
#
# PLATFORM
#
CONFIG_SYSVIPC=y
CONFIG_POSIX_MQUEUE=y
CONFIG_FHANDLE=y
CONFIG_NO_HZ_IDLE=y
CONFIG_HIGH_RES_TIMERS=y
CONFIG_TASKSTATS=y
CONFIG_SCHED_AUTOGROUP=y
CONFIG_PROFILING=y
CONFIG_MODULES=y
CONFIG_MODULE_UNLOAD=y
CONFIG_MODULE_FORCE_LOAD=y
CONFIG_MODULE_FORCE_UNLOAD=y
CONFIG_BLK_DEV_BSGLIB=y
CONFIG_ARCH_CVITEK=y
CONFIG_ARCH_CVITEK_CHIP="cv183x"
CONFIG_ARCH_CV183X=y
CONFIG_ARCH_CV183X_ASIC=y
CONFIG_SMP=y
CONFIG_TRANSPARENT_HUGEPAGE=y
CONFIG_COMPAT=y
CONFIG_NET=y
CONFIG_PACKET=y
CONFIG_PACKET_DIAG=y
CONFIG_UNIX=y
CONFIG_INET=y
CONFIG_IP_MULTICAST=y
CONFIG_IP_PNP=y
CONFIG_NET_SCHED=y
CONFIG_DEVTMPFS=y
CONFIG_DEVTMPFS_MOUNT=y
CONFIG_BLK_DEV_SD=y
CONFIG_CHR_DEV_SG=y
CONFIG_CVITEK_PINCTRL_CV1835=y
CONFIG_PREEMPT=y
#
# NETWORK
#
CONFIG_NETDEVICES=y
CONFIG_ETHERNET=y
CONFIG_NET_VENDOR_STMICRO=y
CONFIG_STMMAC_ETH=y
CONFIG_STMMAC_PLATFORM=y
CONFIG_DWMAC_CVITEK=y
# CONFIG_NET_VENDOR_CVITEK is not set
CONFIG_REALTEK_PHY=y
CONFIG_SMSC_PHY=y
CONFIG_CVITEK_PHY=y
CONFIG_CVITEK_PHY_UAPS=y
# CONFIG_FIXED_PHY is not set
CONFIG_VLAN_8021Q=y
CONFIG_MACVLAN=y
CONFIG_BRIDGE=y
#
# FILE SYSTEM
#
CONFIG_HW_RANDOM=y
CONFIG_RTC_CLASS=y
CONFIG_EXT4_FS=y
CONFIG_TMPFS=y
CONFIG_NFS_FS=y
CONFIG_ROOT_NFS=y
CONFIG_PRINTK_TIME=y
CONFIG_BLK_DEV_INITRD=y
CONFIG_SQUASHFS=y
CONFIG_SQUASHFS_LZ4=y
CONFIG_SQUASHFS_LZO=y
CONFIG_SQUASHFS_XZ=y
CONFIG_SQUASHFS_ZLIB=y
CONFIG_ENABLE_DEFAULT_TRACERS=y
CONFIG_FAT_FS=y
CONFIG_MSDOS_FS=y
CONFIG_VFAT_FS=y
CONFIG_FAT_DEFAULT_CODEPAGE=437
CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1"
#
# STORAGE : SD/EMMC/NAND
#
CONFIG_MMC=y
CONFIG_MMC_BLOCK=y
CONFIG_MMC_BLOCK_MINORS=8
CONFIG_MMC_SDHCI=y
CONFIG_MMC_SDHCI_PLTFM=y
CONFIG_MMC_SDHCI_CVI=y
CONFIG_MTD=y
CONFIG_MTD_CHAR=y
CONFIG_MTD_BLOCK=y
CONFIG_MTD_NAND=y
CONFIG_MTD_NAND_IDS=y
CONFIG_MTD_NAND_PLATFORM=y
CONFIG_MTD_NAND_CVSNFC=y
CONFIG_MTD_NAND_CVSNFC_DT=y
CONFIG_MTD_CMDLINE_PARTS=y
CONFIG_MTD_TEST=m
CONFIG_MTD_UBI=y
CONFIG_UBIFS_FS=y
CONFIG_MTD_UBI_BLOCK=y
#
# USB
#
CONFIG_CMA=y
CONFIG_DMA_CMA=y
CONFIG_USB=y
CONFIG_USB_CVITEK_GADGET=m
CONFIG_USB_GADGET=y
CONFIG_U_SERIAL_CONSOLE=y
CONFIG_USB_CONFIGFS=m
CONFIG_USB_CONFIGFS_SERIAL=y
CONFIG_USB_CONFIGFS_ACM=y
CONFIG_USB_CONFIGFS_MASS_STORAGE=y
CONFIG_USB_CONFIGFS_RNDIS=y
CONFIG_USB_CONFIGFS_EEM=y
CONFIG_USB_CONFIGFS_ECM=y
# CONFIG_USB_CONFIGFS_F_LB_SS is not set
# CONFIG_USB_CONFIGFS_F_FS is not set
# CONFIG_USB_G_SERIAL is not set
# CONFIG_USB_CONFIGFS_BCM is not set
CONFIG_USB_CONFIGFS_CVG=y
# usb otg
CONFIG_USB_OTG=y
CONFIG_USB_OTG_FSM=y
CONFIG_USB_CVITEK_DRD=m
# usb host storage
CONFIG_USB_XHCI_HCD=y
CONFIG_USB_XHCI_PLATFORM=y
CONFIG_SCSI=y
CONFIG_USB_STORAGE=y
#CONFIG_USB_STORAGE_DEBUG=y
CONFIG_USB_STORAGE_REALTEK=y
CONFIG_USB_STORAGE_DATAFAB=y
CONFIG_USB_STORAGE_FREECOM=y
CONFIG_USB_STORAGE_ISD200=y
CONFIG_USB_STORAGE_USBAT=y
CONFIG_USB_STORAGE_SDDR09=y
CONFIG_USB_STORAGE_SDDR55=y
CONFIG_USB_STORAGE_JUMPSHOT=y
CONFIG_USB_STORAGE_ALAUDA=y
CONFIG_USB_STORAGE_ONETOUCH=y
CONFIG_USB_STORAGE_KARMA=y
CONFIG_USB_STORAGE_CYPRESS_ATACB=y
CONFIG_USB_STORAGE_ENE_UB6250=y
CONFIG_USB_UAS=y
CONFIG_BLK_DEV_LOOP=y
CONFIG_EFIVAR_FS=n
CONFIG_CRYPTO_HW=n
CONFIG_CRYPTO_ECHAINIV=n
CONFIG_KEXEC=y
CONFIG_CRASH_DUMP=y
CONFIG_MAGIC_SYSRQ=y
CONFIG_NLS=y
CONFIG_NLS_DEFAULT="iso8859-1"
CONFIG_NLS_CODEPAGE_437=y
CONFIG_NLS_CODEPAGE_850=y
CONFIG_NLS_ISO8859_1=y
CONFIG_NLS_ISO8859_2=y
CONFIG_NLS_ISO8859_3=y
CONFIG_NLS_UTF8=y
CONFIG_CVITEK_NPU=y
CONFIG_RESET_CONTROLLER=y
CONFIG_RESET_CVITEK=y
CONFIG_DMADEVICES=y
CONFIG_DMA_ENGINE=y
CONFIG_DMA_OF=y
CONFIG_DW_DMAC_CVITEK=y
#
# AUDIO
#
CONFIG_SOUND=y
CONFIG_SND=y
CONFIG_SND_SOC=y
CONFIG_SND_CV1835_I2S=y
CONFIG_CV1835_I2S_SUBSYS=y
#CONFIG_SND_SOC_CV1835_CONCURRENT_I2S=y
CONFIG_SND_SOC_CV1835_USE_AUDIO_PLL=y
#
# AUDIO - ADAU1372 CODEC
#
#CONFIG_SND_SOC_ADAU1372=y
#CONFIG_SND_SOC_ADAU_UTILS=y
#CONFIG_SND_SOC_ADAU1372_I2C=y
#CONFIG_SND_SOC_CV1835_ADAU1372=y
#
# AUDIO - PDM
#
#CONFIG_SND_SOC_CV1835_CV1835PDM=y
#CONFIG_SND_SOC_CV1835PDM=y
#
# AUDIO - INTERNAL ADC AND DAC
#
CONFIG_SND_SOC_CV1835_CV1835ADC=y
CONFIG_SND_SOC_CV1835ADC=y
CONFIG_SND_SOC_CV1835_CV1835DAC=y
CONFIG_SND_SOC_CV1835DAC=y
#
# SPI drivers
#
# CONFIG_SPI is not set
# CONFIG_SPI_MASTER is not set
# CONFIG_SPI_DESIGNWARE is not set
# CONFIG_SPI_DW_MMIO is not set
# CONFIG_SPI_SPIDEV is not set
#
# VIDEO
#
# media/v4l2 support
CONFIG_I2C_MUX=y
CONFIG_MEDIA_CONTROLLER=y
CONFIG_MEDIA_SUPPORT=y
CONFIG_MEDIA_CAMERA_SUPPORT=y
CONFIG_VIDEO_DEV=y
CONFIG_VIDEO_V4L2=y
CONFIG_V4L2_MEM2MEM_DEV=y
CONFIG_V4L_PLATFORM_DRIVERS=y
CONFIG_SOC_CAMERA=y
CONFIG_VIDEO_V4L2_SUBDEV_API=y
CONFIG_MEDIA_USB_SUPPORT=y
CONFIG_V4L_MEM2MEM_DRIVERS=y
CONFIG_VIDEO_CVITEK=m
CONFIG_VIDEO_CVITEK_CIF=m
CONFIG_VIDEO_CVITEK_SNS_I2C=m
CONFIG_VIDEO_CVITEK_MIPI_TX=m
#
# Frame buffer Devices
#
CONFIG_FB=y
CONFIG_FB_CVITEK=m
#
# PM Suspend
#
CONFIG_PM_DEBUG=y
CONFIG_PM_TEST_SUSPEND=y
CONFIG_PM_ADVANCED_DEBUG=y
#
# PERIPHERAL
#
CONFIG_PWM=y
CONFIG_PWM_CVITEK=m
CONFIG_WATCHDOG=y
CONFIG_DW_WATCHDOG=m
CONFIG_I2C=y
CONFIG_I2C_CHARDEV=y
CONFIG_I2C_DESIGNWARE_CORE=y
CONFIG_I2C_DESIGNWARE_PLATFORM=y
CONFIG_SERIAL_8250=y
CONFIG_SERIAL_8250_CONSOLE=y
CONFIG_SERIAL_8250_DW=y
CONFIG_GPIOLIB=y
CONFIG_GPIO_SYSFS=y
CONFIG_GPIO_DWAPB=y
#
# SYSTEM
#
CONFIG_TEE=y
CONFIG_OPTEE=y
CONFIG_STAGING=y
CONFIG_ANDROID=y
CONFIG_ION=y
CONFIG_ION_CARVEOUT_HEAP=y
CONFIG_ION_SYSTEM_HEAP=y
CONFIG_ION_CMA_HEAP=y
#
# KGDB/ FTRACE
#
CONFIG_HAVE_ARCH_KGDB=y
CONFIG_KGDB=y
CONFIG_KGDB_SERIAL_CONSOLE=y
CONFIG_TRACING=y
CONFIG_EVENT_TRACING=y
CONFIG_TRACING_SUPPORT=y
CONFIG_CONTEXT_SWITCH_TRACER=y
CONFIG_GENERIC_TRACER=y
CONFIG_NOP_TRACER=y
CONFIG_HAVE_FUNCTION_TRACER=y
CONFIG_HAVE_FUNCTION_GRAPH_TRACER=y
CONFIG_HAVE_DYNAMIC_FTRACE=y
CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
CONFIG_HAVE_SYSCALL_TRACEPOINTS=y
CONFIG_HAVE_C_RECORDMCOUNT=y
CONFIG_TRACER_MAX_TRACE=y
CONFIG_TRACE_CLOCK=y
CONFIG_FTRACE=y
CONFIG_FUNCTION_TRACER=y
CONFIG_FUNCTION_GRAPH_TRACER=y
CONFIG_IRQSOFF_TRACER=y
CONFIG_SCHED_TRACER=y
CONFIG_HWLAT_TRACER=y
CONFIG_FTRACE_SYSCALLS=y
CONFIG_TRACER_SNAPSHOT=y
CONFIG_TRACER_SNAPSHOT_PER_CPU_SWAP=y
CONFIG_BRANCH_PROFILE_NONE=y
CONFIG_STACK_TRACER=y
CONFIG_BLK_DEV_IO_TRACE=y
CONFIG_DYNAMIC_FTRACE=y
CONFIG_FUNCTION_PROFILER=y
CONFIG_FTRACE_MCOUNT_RECORD=y
#
# Debug
#
CONFIG_DYNAMIC_DEBUG=y
CONFIG_DEBUG_KERNEL=y
CONFIG_DEBUG_INFO=y
CONFIG_DEBUG_STACKOVERFLOW=y
CONFIG_DEBUG_STACK_USAGE=y
CONFIG_SLUB_DEBUG=y
CONFIG_DEBUG_SPINLOCK=y
CONFIG_DEBUG_MUTEXES=y
CONFIG_DEBUG_ATOMIC_SLEEP=y
CONFIG_DEBUG_LIST=y
CONFIG_SCHEDSTATS=y
CONFIG_SCHED_STACK_END_CHECK=y
CONFIG_FRAME_POINTER=y
#
# WiFi
#
CONFIG_WLAN=y
CONFIG_CFG80211=y
CONFIG_WLAN_VENDOR_REALTEK=y
CONFIG_RTL8188FU=m
#CONFIG_RTL8189FS=m is not set
CONFIG_CFG80211_DEFAULT_PS=y
CONFIG_CFG80211_CRDA_SUPPORT=y
CONFIG_CFG80211_WEXT=y
CONFIG_MAC80211=y
CONFIG_MAC80211_HAS_RC=y
CONFIG_MAC80211_RC_MINSTREL=y
CONFIG_MAC80211_RC_MINSTREL_HT=y
CONFIG_MAC80211_RC_DEFAULT_MINSTREL=y
CONFIG_MAC80211_RC_DEFAULT="minstrel_ht"
#
# Clock framework
#
CONFIG_COMMON_CLK=y
CONFIG_COMMON_CLK_CVITEK=y
#
# Thermal
#
CONFIG_THERMAL=y
CONFIG_THERMAL_WRITABLE_TRIPS=y
CONFIG_THERMAL_EMULATION=y
CONFIG_CV1835_THERMAL=y
#
# OTHERS
#
CONFIG_HW_PERF_EVENTS=y
CONFIG_RCU_CPU_STALL_TIMEOUT=21
CONFIG_RING_BUFFER=y
CONFIG_RING_BUFFER_ALLOW_SWAP=y
CONFIG_CONSOLE_POLL=y
CONFIG_CV1835_SYSDMA_REMAP=y

View File

@ -0,0 +1,371 @@
#
# PLATFORM
#
CONFIG_SYSVIPC=y
CONFIG_POSIX_MQUEUE=y
CONFIG_FHANDLE=y
CONFIG_NO_HZ_IDLE=y
CONFIG_HIGH_RES_TIMERS=y
CONFIG_TASKSTATS=y
CONFIG_SCHED_AUTOGROUP=y
CONFIG_PROFILING=y
CONFIG_MODULES=y
CONFIG_MODULE_UNLOAD=y
CONFIG_MODULE_FORCE_LOAD=y
CONFIG_MODULE_FORCE_UNLOAD=y
CONFIG_BLK_DEV_BSGLIB=y
CONFIG_ARCH_CVITEK=y
CONFIG_ARCH_CVITEK_CHIP="cv183x"
CONFIG_ARCH_CV183X=y
CONFIG_ARCH_CV183X_ASIC=y
CONFIG_SMP=y
CONFIG_TRANSPARENT_HUGEPAGE=y
CONFIG_COMPAT=y
CONFIG_NET=y
CONFIG_PACKET=y
CONFIG_PACKET_DIAG=y
CONFIG_UNIX=y
CONFIG_INET=y
CONFIG_IP_MULTICAST=y
CONFIG_IP_PNP=y
CONFIG_NET_SCHED=y
CONFIG_DEVTMPFS=y
CONFIG_DEVTMPFS_MOUNT=y
CONFIG_BLK_DEV_SD=y
CONFIG_CHR_DEV_SG=y
CONFIG_CVITEK_PINCTRL_CV1835=y
CONFIG_PREEMPT=y
#
# NETWORK
#
CONFIG_NETDEVICES=y
CONFIG_ETHERNET=y
CONFIG_NET_VENDOR_STMICRO=y
CONFIG_STMMAC_ETH=y
CONFIG_STMMAC_PLATFORM=y
CONFIG_DWMAC_CVITEK=y
# CONFIG_NET_VENDOR_CVITEK is not set
CONFIG_REALTEK_PHY=y
CONFIG_SMSC_PHY=y
CONFIG_CVITEK_PHY=y
CONFIG_CVITEK_PHY_UAPS=y
# CONFIG_FIXED_PHY is not set
CONFIG_VLAN_8021Q=y
CONFIG_MACVLAN=y
CONFIG_BRIDGE=y
#
# FILE SYSTEM
#
CONFIG_HW_RANDOM=y
CONFIG_RTC_CLASS=y
CONFIG_EXT4_FS=y
CONFIG_TMPFS=y
CONFIG_NFS_FS=y
CONFIG_ROOT_NFS=y
CONFIG_PRINTK_TIME=y
CONFIG_BLK_DEV_INITRD=y
CONFIG_SQUASHFS=y
CONFIG_SQUASHFS_LZ4=y
CONFIG_SQUASHFS_LZO=y
CONFIG_SQUASHFS_XZ=y
CONFIG_SQUASHFS_ZLIB=y
CONFIG_ENABLE_DEFAULT_TRACERS=y
CONFIG_FAT_FS=y
CONFIG_MSDOS_FS=y
CONFIG_VFAT_FS=y
CONFIG_FAT_DEFAULT_CODEPAGE=437
CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1"
#
# STORAGE : SD/EMMC/NAND
#
CONFIG_MMC=y
CONFIG_MMC_BLOCK=y
CONFIG_MMC_BLOCK_MINORS=8
CONFIG_MMC_SDHCI=y
CONFIG_MMC_SDHCI_PLTFM=y
CONFIG_MMC_SDHCI_CVI=y
CONFIG_MTD=y
CONFIG_MTD_CHAR=y
CONFIG_MTD_BLOCK=y
CONFIG_MTD_NAND=y
CONFIG_MTD_NAND_IDS=y
CONFIG_MTD_NAND_PLATFORM=y
CONFIG_MTD_NAND_CVSNFC=y
CONFIG_MTD_NAND_CVSNFC_DT=y
CONFIG_MTD_CMDLINE_PARTS=y
CONFIG_MTD_TEST=m
CONFIG_MTD_UBI=y
CONFIG_UBIFS_FS=y
CONFIG_MTD_UBI_BLOCK=y
#
# USB
#
CONFIG_CMA=y
CONFIG_DMA_CMA=y
CONFIG_USB=y
CONFIG_USB_CVITEK_GADGET=m
CONFIG_USB_GADGET=y
CONFIG_U_SERIAL_CONSOLE=y
CONFIG_USB_CONFIGFS=m
CONFIG_USB_CONFIGFS_SERIAL=y
CONFIG_USB_CONFIGFS_ACM=y
CONFIG_USB_CONFIGFS_MASS_STORAGE=y
CONFIG_USB_CONFIGFS_RNDIS=y
CONFIG_USB_CONFIGFS_EEM=y
CONFIG_USB_CONFIGFS_ECM=y
# CONFIG_USB_CONFIGFS_F_LB_SS is not set
# CONFIG_USB_CONFIGFS_F_FS is not set
# CONFIG_USB_G_SERIAL is not set
# CONFIG_USB_CONFIGFS_BCM is not set
CONFIG_USB_CONFIGFS_CVG=y
# usb otg
CONFIG_USB_OTG=y
CONFIG_USB_OTG_FSM=y
CONFIG_USB_CVITEK_DRD=m
# usb host storage
CONFIG_USB_XHCI_HCD=y
CONFIG_USB_XHCI_PLATFORM=y
CONFIG_SCSI=y
CONFIG_USB_STORAGE=y
#CONFIG_USB_STORAGE_DEBUG=y
CONFIG_USB_STORAGE_REALTEK=y
CONFIG_USB_STORAGE_DATAFAB=y
CONFIG_USB_STORAGE_FREECOM=y
CONFIG_USB_STORAGE_ISD200=y
CONFIG_USB_STORAGE_USBAT=y
CONFIG_USB_STORAGE_SDDR09=y
CONFIG_USB_STORAGE_SDDR55=y
CONFIG_USB_STORAGE_JUMPSHOT=y
CONFIG_USB_STORAGE_ALAUDA=y
CONFIG_USB_STORAGE_ONETOUCH=y
CONFIG_USB_STORAGE_KARMA=y
CONFIG_USB_STORAGE_CYPRESS_ATACB=y
CONFIG_USB_STORAGE_ENE_UB6250=y
CONFIG_USB_UAS=y
CONFIG_BLK_DEV_LOOP=y
CONFIG_EFIVAR_FS=n
CONFIG_CRYPTO_HW=n
CONFIG_CRYPTO_ECHAINIV=n
CONFIG_KEXEC=y
CONFIG_CRASH_DUMP=y
CONFIG_MAGIC_SYSRQ=y
CONFIG_NLS=y
CONFIG_NLS_DEFAULT="iso8859-1"
CONFIG_NLS_CODEPAGE_437=y
CONFIG_NLS_CODEPAGE_850=y
CONFIG_NLS_ISO8859_1=y
CONFIG_NLS_ISO8859_2=y
CONFIG_NLS_ISO8859_3=y
CONFIG_NLS_UTF8=y
CONFIG_CVITEK_NPU=y
CONFIG_RESET_CONTROLLER=y
CONFIG_RESET_CVITEK=y
CONFIG_DMADEVICES=y
CONFIG_DMA_ENGINE=y
CONFIG_DMA_OF=y
CONFIG_DW_DMAC_CVITEK=y
#
# AUDIO
#
CONFIG_SOUND=y
CONFIG_SND=y
CONFIG_SND_SOC=y
CONFIG_SND_CV1835_I2S=y
CONFIG_CV1835_I2S_SUBSYS=y
#CONFIG_SND_SOC_CV1835_CONCURRENT_I2S=y
CONFIG_SND_SOC_CV1835_USE_AUDIO_PLL=y
#
# AUDIO - ADAU1372 CODEC
#
#CONFIG_SND_SOC_ADAU1372=y
#CONFIG_SND_SOC_ADAU_UTILS=y
#CONFIG_SND_SOC_ADAU1372_I2C=y
#CONFIG_SND_SOC_CV1835_ADAU1372=y
#
# AUDIO - PDM
#
#CONFIG_SND_SOC_CV1835_CV1835PDM=y
#CONFIG_SND_SOC_CV1835PDM=y
#
# AUDIO - INTERNAL ADC AND DAC
#
CONFIG_SND_SOC_CV1835_CV1835ADC=y
CONFIG_SND_SOC_CV1835ADC=y
CONFIG_SND_SOC_CV1835_CV1835DAC=y
CONFIG_SND_SOC_CV1835DAC=y
#
# SPI drivers
#
# CONFIG_SPI is not set
# CONFIG_SPI_MASTER is not set
# CONFIG_SPI_DESIGNWARE is not set
# CONFIG_SPI_DW_MMIO is not set
# CONFIG_SPI_SPIDEV is not set
#
# VIDEO
#
# media/v4l2 support
CONFIG_I2C_MUX=y
CONFIG_MEDIA_CONTROLLER=y
CONFIG_MEDIA_SUPPORT=y
CONFIG_MEDIA_CAMERA_SUPPORT=y
CONFIG_VIDEO_DEV=y
CONFIG_VIDEO_V4L2=y
CONFIG_V4L2_MEM2MEM_DEV=y
CONFIG_V4L_PLATFORM_DRIVERS=y
CONFIG_SOC_CAMERA=y
CONFIG_VIDEO_V4L2_SUBDEV_API=y
CONFIG_MEDIA_USB_SUPPORT=y
CONFIG_V4L_MEM2MEM_DRIVERS=y
CONFIG_VIDEO_CVITEK=m
CONFIG_VIDEO_CVITEK_CIF=m
CONFIG_VIDEO_CVITEK_SNS_I2C=m
# CONFIG_VIDEO_CVITEK_MIPI_TX=m
#
# Frame buffer Devices
#
CONFIG_FB=y
CONFIG_FB_CVITEK=m
#
# PM Suspend
#
CONFIG_PM_DEBUG=y
CONFIG_PM_TEST_SUSPEND=y
CONFIG_PM_ADVANCED_DEBUG=y
#
# PERIPHERAL
#
CONFIG_PWM=y
CONFIG_PWM_CVITEK=m
CONFIG_WATCHDOG=y
CONFIG_DW_WATCHDOG=m
CONFIG_I2C=y
CONFIG_I2C_CHARDEV=y
CONFIG_I2C_DESIGNWARE_CORE=y
CONFIG_I2C_DESIGNWARE_PLATFORM=y
CONFIG_SERIAL_8250=y
CONFIG_SERIAL_8250_CONSOLE=y
CONFIG_SERIAL_8250_DW=y
CONFIG_SERIAL_8250_NR_UARTS=5
CONFIG_SERIAL_8250_RUNTIME_UARTS=5
CONFIG_GPIOLIB=y
CONFIG_GPIO_SYSFS=y
CONFIG_GPIO_DWAPB=y
#
# SYSTEM
#
CONFIG_TEE=y
CONFIG_OPTEE=y
CONFIG_STAGING=y
CONFIG_ANDROID=y
CONFIG_ION=y
CONFIG_ION_CARVEOUT_HEAP=y
CONFIG_ION_SYSTEM_HEAP=y
CONFIG_ION_CMA_HEAP=y
#
# KGDB/ FTRACE
#
CONFIG_HAVE_ARCH_KGDB=y
CONFIG_KGDB=y
CONFIG_KGDB_SERIAL_CONSOLE=y
CONFIG_TRACING=y
CONFIG_EVENT_TRACING=y
CONFIG_TRACING_SUPPORT=y
CONFIG_CONTEXT_SWITCH_TRACER=y
CONFIG_GENERIC_TRACER=y
CONFIG_NOP_TRACER=y
CONFIG_HAVE_FUNCTION_TRACER=y
CONFIG_HAVE_FUNCTION_GRAPH_TRACER=y
CONFIG_HAVE_DYNAMIC_FTRACE=y
CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
CONFIG_HAVE_SYSCALL_TRACEPOINTS=y
CONFIG_HAVE_C_RECORDMCOUNT=y
CONFIG_TRACER_MAX_TRACE=y
CONFIG_TRACE_CLOCK=y
CONFIG_FTRACE=y
CONFIG_FUNCTION_TRACER=y
CONFIG_FUNCTION_GRAPH_TRACER=y
CONFIG_IRQSOFF_TRACER=y
CONFIG_SCHED_TRACER=y
CONFIG_HWLAT_TRACER=y
CONFIG_FTRACE_SYSCALLS=y
CONFIG_TRACER_SNAPSHOT=y
CONFIG_TRACER_SNAPSHOT_PER_CPU_SWAP=y
CONFIG_BRANCH_PROFILE_NONE=y
CONFIG_STACK_TRACER=y
CONFIG_BLK_DEV_IO_TRACE=y
CONFIG_DYNAMIC_FTRACE=y
CONFIG_FUNCTION_PROFILER=y
CONFIG_FTRACE_MCOUNT_RECORD=y
#
# Debug
#
CONFIG_DYNAMIC_DEBUG=y
CONFIG_DEBUG_KERNEL=y
CONFIG_DEBUG_INFO=y
CONFIG_DEBUG_STACKOVERFLOW=y
CONFIG_DEBUG_STACK_USAGE=y
CONFIG_SLUB_DEBUG=y
CONFIG_DEBUG_SPINLOCK=y
CONFIG_DEBUG_MUTEXES=y
CONFIG_DEBUG_ATOMIC_SLEEP=y
CONFIG_DEBUG_LIST=y
CONFIG_SCHEDSTATS=y
CONFIG_SCHED_STACK_END_CHECK=y
CONFIG_FRAME_POINTER=y
#
# WiFi
#
CONFIG_WLAN=y
CONFIG_CFG80211=y
CONFIG_CFG80211_DEFAULT_PS=y
CONFIG_CFG80211_CRDA_SUPPORT=y
CONFIG_CFG80211_WEXT=y
CONFIG_MAC80211=y
CONFIG_MAC80211_HAS_RC=y
CONFIG_MAC80211_RC_MINSTREL=y
CONFIG_MAC80211_RC_MINSTREL_HT=y
CONFIG_MAC80211_RC_DEFAULT_MINSTREL=y
CONFIG_MAC80211_RC_DEFAULT="minstrel_ht"
#
# Clock framework
#
CONFIG_COMMON_CLK=y
CONFIG_COMMON_CLK_CVITEK=y
#
# Thermal
#
CONFIG_THERMAL=y
CONFIG_THERMAL_WRITABLE_TRIPS=y
CONFIG_THERMAL_EMULATION=y
CONFIG_CV1835_THERMAL=y
#
# OTHERS
#
CONFIG_HW_PERF_EVENTS=y
CONFIG_RCU_CPU_STALL_TIMEOUT=21
CONFIG_RING_BUFFER=y
CONFIG_RING_BUFFER_ALLOW_SWAP=y
CONFIG_CONSOLE_POLL=y
CONFIG_CV1835_SYSDMA_REMAP=y
CONFIG_OVERLAY_FS=y

View File

@ -0,0 +1,401 @@
#
# PLATFORM
#
CONFIG_SYSVIPC=y
CONFIG_POSIX_MQUEUE=y
CONFIG_FHANDLE=y
CONFIG_NO_HZ_IDLE=y
CONFIG_HIGH_RES_TIMERS=y
CONFIG_TASKSTATS=y
CONFIG_SCHED_AUTOGROUP=y
CONFIG_PROFILING=y
CONFIG_MODULES=y
CONFIG_MODULE_UNLOAD=y
CONFIG_MODULE_FORCE_LOAD=y
CONFIG_MODULE_FORCE_UNLOAD=y
CONFIG_BLK_DEV_BSGLIB=y
CONFIG_ARCH_CVITEK=y
CONFIG_ARCH_CVITEK_CHIP="cv183x"
CONFIG_ARCH_CV183X=y
CONFIG_ARCH_CV183X_ASIC=y
CONFIG_SMP=y
CONFIG_TRANSPARENT_HUGEPAGE=y
CONFIG_COMPAT=y
CONFIG_NET=y
CONFIG_PACKET=y
CONFIG_PACKET_DIAG=y
CONFIG_UNIX=y
CONFIG_INET=y
CONFIG_IP_MULTICAST=y
CONFIG_IP_PNP=y
CONFIG_NET_SCHED=y
CONFIG_DEVTMPFS=y
CONFIG_DEVTMPFS_MOUNT=y
CONFIG_BLK_DEV_SD=y
CONFIG_CHR_DEV_SG=y
CONFIG_CVITEK_PINCTRL_CV1835=y
CONFIG_PREEMPT=y
#
# NETWORK
#
CONFIG_NETDEVICES=y
CONFIG_ETHERNET=y
CONFIG_NET_VENDOR_STMICRO=y
CONFIG_STMMAC_ETH=y
CONFIG_STMMAC_PLATFORM=y
CONFIG_DWMAC_CVITEK=y
# CONFIG_NET_VENDOR_CVITEK is not set
CONFIG_REALTEK_PHY=y
CONFIG_SMSC_PHY=y
CONFIG_CVITEK_PHY=y
CONFIG_CVITEK_PHY_UAPS=y
# CONFIG_FIXED_PHY is not set
CONFIG_VLAN_8021Q=y
CONFIG_MACVLAN=y
CONFIG_BRIDGE=y
#
# FILE SYSTEM
#
CONFIG_HW_RANDOM=y
CONFIG_RTC_CLASS=y
CONFIG_EXT4_FS=y
CONFIG_EXT4_ENCRYPTION=y
CONFIG_EXT4_FS_ENCRYPTION=y
CONFIG_TMPFS=y
CONFIG_NFS_FS=y
CONFIG_ROOT_NFS=y
CONFIG_PRINTK_TIME=y
CONFIG_BLK_DEV_INITRD=y
CONFIG_SQUASHFS=y
CONFIG_SQUASHFS_LZ4=y
CONFIG_SQUASHFS_LZO=y
CONFIG_SQUASHFS_XZ=y
CONFIG_SQUASHFS_ZLIB=y
CONFIG_ENABLE_DEFAULT_TRACERS=y
CONFIG_FAT_FS=y
CONFIG_MSDOS_FS=y
CONFIG_VFAT_FS=y
CONFIG_FAT_DEFAULT_CODEPAGE=437
CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1"
CONFIG_PSTORE=y
CONFIG_PSTORE_ZLIB_COMPRESS=y
CONFIG_PSTORE_CONSOLE=y
CONFIG_PSTORE_PMSG=y
CONFIG_PSTORE_FTRACE=y
CONFIG_PSTORE_RAM=y
#
# STORAGE : SD/EMMC/NAND/NOR
#
CONFIG_MMC=y
CONFIG_MMC_BLOCK=y
CONFIG_MMC_BLOCK_MINORS=8
CONFIG_MMC_SDHCI=y
CONFIG_MMC_SDHCI_PLTFM=y
CONFIG_MMC_SDHCI_CVI=y
CONFIG_MTD=y
CONFIG_MTD_CHAR=y
CONFIG_MTD_BLOCK=y
CONFIG_MTD_NAND=y
CONFIG_MTD_NAND_IDS=y
CONFIG_MTD_NAND_PLATFORM=y
CONFIG_MTD_NAND_CVSNFC=y
CONFIG_MTD_NAND_CVSNFC_DT=y
CONFIG_MTD_CMDLINE_PARTS=y
CONFIG_MTD_TEST=m
CONFIG_MTD_UBI=y
CONFIG_UBIFS_FS=y
CONFIG_MTD_UBI_BLOCK=y
CONFIG_SPI=y
CONFIG_MTD_SPI_NOR=y
CONFIG_SPI_CVI_SPIF=y
CONFIG_JFFS2_FS=y
CONFIG_JFFS2_FS_WBUF_VERIFY=y
CONFIG_JFFS2_SUMMARY=y
CONFIG_JFFS2_FS_XATTR=y
CONFIG_JFFS2_COMPRESSION_OPTIONS=y
CONFIG_JFFS2_LZO=y
CONFIG_JFFS2_RUBIN=y
#
# USB
#
CONFIG_CMA=y
CONFIG_DMA_CMA=y
CONFIG_USB=y
CONFIG_USB_CVITEK_GADGET=m
CONFIG_USB_GADGET=y
CONFIG_U_SERIAL_CONSOLE=y
CONFIG_USB_CONFIGFS=m
CONFIG_USB_CONFIGFS_SERIAL=y
CONFIG_USB_CONFIGFS_ACM=y
CONFIG_USB_CONFIGFS_MASS_STORAGE=y
CONFIG_USB_CONFIGFS_RNDIS=y
CONFIG_USB_CONFIGFS_EEM=y
CONFIG_USB_CONFIGFS_ECM=y
CONFIG_USB_CONFIGFS_F_UVC=y
CONFIG_USB_CONFIGFS_F_UAC1=y
# CONFIG_USB_CONFIGFS_F_LB_SS is not set
# CONFIG_USB_CONFIGFS_F_FS is not set
# CONFIG_USB_G_SERIAL is not set
# CONFIG_USB_CONFIGFS_BCM is not set
CONFIG_USB_CONFIGFS_CVG=y
# usb otg
CONFIG_USB_OTG=y
CONFIG_USB_OTG_FSM=y
CONFIG_USB_CVITEK_DRD=m
# usb host storage
CONFIG_USB_XHCI_HCD=y
CONFIG_USB_XHCI_PLATFORM=y
CONFIG_SCSI=y
CONFIG_USB_STORAGE=y
#CONFIG_USB_STORAGE_DEBUG=y
CONFIG_USB_STORAGE_REALTEK=y
CONFIG_USB_STORAGE_DATAFAB=y
CONFIG_USB_STORAGE_FREECOM=y
CONFIG_USB_STORAGE_ISD200=y
CONFIG_USB_STORAGE_USBAT=y
CONFIG_USB_STORAGE_SDDR09=y
CONFIG_USB_STORAGE_SDDR55=y
CONFIG_USB_STORAGE_JUMPSHOT=y
CONFIG_USB_STORAGE_ALAUDA=y
CONFIG_USB_STORAGE_ONETOUCH=y
CONFIG_USB_STORAGE_KARMA=y
CONFIG_USB_STORAGE_CYPRESS_ATACB=y
CONFIG_USB_STORAGE_ENE_UB6250=y
CONFIG_USB_UAS=y
CONFIG_BLK_DEV_LOOP=y
CONFIG_EFIVAR_FS=n
CONFIG_CRYPTO_HW=n
CONFIG_CRYPTO_ECHAINIV=n
CONFIG_KEXEC=y
CONFIG_CRASH_DUMP=y
CONFIG_MAGIC_SYSRQ=y
CONFIG_NLS=y
CONFIG_NLS_DEFAULT="iso8859-1"
CONFIG_NLS_CODEPAGE_437=y
CONFIG_NLS_CODEPAGE_850=y
CONFIG_NLS_ISO8859_1=y
CONFIG_NLS_ISO8859_2=y
CONFIG_NLS_ISO8859_3=y
CONFIG_NLS_UTF8=y
CONFIG_CVITEK_NPU=y
CONFIG_RESET_CONTROLLER=y
CONFIG_RESET_CVITEK=y
CONFIG_DMADEVICES=y
CONFIG_DMA_ENGINE=y
CONFIG_DMA_OF=y
CONFIG_DW_DMAC_CVITEK=y
#
# AUDIO
#
CONFIG_SOUND=y
CONFIG_SND=y
CONFIG_SND_SOC=y
CONFIG_SND_CV1835_I2S=y
CONFIG_CV1835_I2S_SUBSYS=y
#CONFIG_SND_SOC_CV1835_CONCURRENT_I2S=y
CONFIG_SND_SOC_CV1835_USE_AUDIO_PLL=y
#
# AUDIO - ADAU1372 CODEC
#
#CONFIG_SND_SOC_ADAU1372=y
#CONFIG_SND_SOC_ADAU_UTILS=y
#CONFIG_SND_SOC_ADAU1372_I2C=y
#CONFIG_SND_SOC_CV1835_ADAU1372=y
#
# AUDIO - PDM
#
#CONFIG_SND_SOC_CV1835_CV1835PDM=y
#CONFIG_SND_SOC_CV1835PDM=y
#
# AUDIO - INTERNAL ADC AND DAC
#
CONFIG_SND_SOC_CV1835_CV1835ADC=y
CONFIG_SND_SOC_CV1835ADC=y
CONFIG_SND_SOC_CV1835_CV1835DAC=y
CONFIG_SND_SOC_CV1835DAC=y
#
# SPI drivers
#
CONFIG_SPI_MASTER=y
CONFIG_SPI_DESIGNWARE=y
CONFIG_SPI_DW_MMIO=y
CONFIG_SPI_SPIDEV=y
CONFIG_SPI_NO_USED_FB=y
#
# VIDEO
#
# media/v4l2 support
CONFIG_I2C_MUX=y
CONFIG_MEDIA_CONTROLLER=y
CONFIG_MEDIA_SUPPORT=y
CONFIG_MEDIA_CAMERA_SUPPORT=y
CONFIG_VIDEO_DEV=y
CONFIG_VIDEO_V4L2=y
CONFIG_V4L2_MEM2MEM_DEV=y
CONFIG_V4L_PLATFORM_DRIVERS=y
CONFIG_SOC_CAMERA=y
CONFIG_VIDEO_V4L2_SUBDEV_API=y
CONFIG_MEDIA_USB_SUPPORT=y
CONFIG_V4L_MEM2MEM_DRIVERS=y
CONFIG_VIDEO_CVITEK=m
CONFIG_VIDEO_CVITEK_CIF=m
CONFIG_VIDEO_CVITEK_SNS_I2C=m
CONFIG_VIDEO_CVITEK_MIPI_TX=m
#
# Frame buffer Devices
#
CONFIG_FB=y
CONFIG_FB_CVITEK=m
#
# PM Suspend
#
CONFIG_PM_DEBUG=y
CONFIG_PM_TEST_SUSPEND=y
CONFIG_PM_ADVANCED_DEBUG=y
#
# PERIPHERAL
#
CONFIG_PWM=y
CONFIG_PWM_CVITEK=m
CONFIG_WATCHDOG=y
CONFIG_DW_WATCHDOG=m
CONFIG_I2C=y
CONFIG_I2C_CHARDEV=y
CONFIG_I2C_DESIGNWARE_CORE=y
CONFIG_I2C_DESIGNWARE_PLATFORM=y
CONFIG_SERIAL_8250=y
CONFIG_SERIAL_8250_CONSOLE=y
CONFIG_SERIAL_8250_DW=y
CONFIG_SERIAL_8250_NR_UARTS=5
CONFIG_SERIAL_8250_RUNTIME_UARTS=5
CONFIG_GPIOLIB=y
CONFIG_GPIO_SYSFS=y
CONFIG_GPIO_DWAPB=y
CONFIG_INPUT_EVDEV=y
CONFIG_INPUT_TOUCHSCREEN=y
CONFIG_KEYBOARD_GPIO=y
#
# SYSTEM
#
CONFIG_TEE=y
CONFIG_OPTEE=y
CONFIG_STAGING=y
CONFIG_ANDROID=y
CONFIG_ION=y
CONFIG_ION_CARVEOUT_HEAP=y
CONFIG_ION_SYSTEM_HEAP=y
CONFIG_ION_CMA_HEAP=y
#
# KGDB/ FTRACE
#
CONFIG_HAVE_ARCH_KGDB=y
CONFIG_KGDB=y
CONFIG_KGDB_SERIAL_CONSOLE=y
CONFIG_TRACING=y
CONFIG_EVENT_TRACING=y
CONFIG_TRACING_SUPPORT=y
CONFIG_CONTEXT_SWITCH_TRACER=y
CONFIG_GENERIC_TRACER=y
CONFIG_NOP_TRACER=y
CONFIG_HAVE_FUNCTION_TRACER=y
CONFIG_HAVE_FUNCTION_GRAPH_TRACER=y
CONFIG_HAVE_DYNAMIC_FTRACE=y
CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
CONFIG_HAVE_SYSCALL_TRACEPOINTS=y
CONFIG_HAVE_C_RECORDMCOUNT=y
CONFIG_TRACER_MAX_TRACE=y
CONFIG_TRACE_CLOCK=y
CONFIG_FTRACE=y
CONFIG_FUNCTION_TRACER=y
CONFIG_FUNCTION_GRAPH_TRACER=y
CONFIG_IRQSOFF_TRACER=y
CONFIG_SCHED_TRACER=y
CONFIG_HWLAT_TRACER=y
CONFIG_FTRACE_SYSCALLS=y
CONFIG_TRACER_SNAPSHOT=y
CONFIG_TRACER_SNAPSHOT_PER_CPU_SWAP=y
CONFIG_BRANCH_PROFILE_NONE=y
CONFIG_STACK_TRACER=y
CONFIG_BLK_DEV_IO_TRACE=y
CONFIG_DYNAMIC_FTRACE=y
CONFIG_FUNCTION_PROFILER=y
CONFIG_FTRACE_MCOUNT_RECORD=y
CONFIG_DYNAMIC_DEBUG=y
CONFIG_DEBUG_KERNEL=y
CONFIG_DEBUG_INFO=y
#
# Debug
#
CONFIG_DYNAMIC_DEBUG=y
CONFIG_DEBUG_KERNEL=y
CONFIG_DEBUG_INFO=y
CONFIG_DEBUG_STACKOVERFLOW=y
CONFIG_DEBUG_STACK_USAGE=y
CONFIG_SLUB_DEBUG=y
CONFIG_DEBUG_SPINLOCK=y
CONFIG_DEBUG_MUTEXES=y
CONFIG_DEBUG_ATOMIC_SLEEP=y
CONFIG_DEBUG_LIST=y
CONFIG_SCHEDSTATS=y
CONFIG_SCHED_STACK_END_CHECK=y
CONFIG_FRAME_POINTER=y
#
# WiFi
#
CONFIG_WLAN=y
CONFIG_CFG80211=y
CONFIG_CFG80211_DEFAULT_PS=y
CONFIG_CFG80211_CRDA_SUPPORT=y
CONFIG_CFG80211_WEXT=y
CONFIG_MAC80211=y
CONFIG_MAC80211_HAS_RC=y
CONFIG_MAC80211_RC_MINSTREL=y
CONFIG_MAC80211_RC_MINSTREL_HT=y
CONFIG_MAC80211_RC_DEFAULT_MINSTREL=y
CONFIG_MAC80211_RC_DEFAULT="minstrel_ht"
#
# Clock framework
#
CONFIG_COMMON_CLK=y
CONFIG_COMMON_CLK_CVITEK=y
#
# Thermal
#
CONFIG_THERMAL=y
CONFIG_THERMAL_WRITABLE_TRIPS=y
CONFIG_THERMAL_EMULATION=y
CONFIG_CV1835_THERMAL=y
#
# OTHERS
#
CONFIG_HW_PERF_EVENTS=y
CONFIG_RCU_CPU_STALL_TIMEOUT=21
CONFIG_RING_BUFFER=y
CONFIG_RING_BUFFER_ALLOW_SWAP=y
CONFIG_CONSOLE_POLL=y
CONFIG_CV1835_SYSDMA_REMAP=y
CONFIG_OVERLAY_FS=y
CONFIG_RTC_DRV_PCF85063=y
CONFIG_TOUCHSCREEN_BL6391_BF=m

View File

@ -0,0 +1,375 @@
#
# PLATFORM
#
CONFIG_SYSVIPC=y
CONFIG_POSIX_MQUEUE=y
CONFIG_FHANDLE=y
CONFIG_NO_HZ_IDLE=y
CONFIG_HIGH_RES_TIMERS=y
CONFIG_TASKSTATS=y
CONFIG_SCHED_AUTOGROUP=y
CONFIG_PROFILING=y
CONFIG_MODULES=y
CONFIG_MODULE_UNLOAD=y
CONFIG_MODULE_FORCE_LOAD=y
CONFIG_MODULE_FORCE_UNLOAD=y
CONFIG_BLK_DEV_BSGLIB=y
CONFIG_ARCH_CVITEK=y
CONFIG_ARCH_CVITEK_CHIP="cv183x"
CONFIG_ARCH_CV183X=y
CONFIG_ARCH_CV183X_ASIC=y
CONFIG_SMP=y
CONFIG_TRANSPARENT_HUGEPAGE=y
CONFIG_COMPAT=y
CONFIG_NET=y
CONFIG_PACKET=y
CONFIG_PACKET_DIAG=y
CONFIG_UNIX=y
CONFIG_INET=y
CONFIG_IP_MULTICAST=y
CONFIG_IP_PNP=y
CONFIG_NET_SCHED=y
CONFIG_DEVTMPFS=y
CONFIG_DEVTMPFS_MOUNT=y
CONFIG_BLK_DEV_SD=y
CONFIG_CHR_DEV_SG=y
CONFIG_CVITEK_PINCTRL_CV1835=y
CONFIG_PREEMPT=y
#
# NETWORK
#
CONFIG_NETDEVICES=y
CONFIG_ETHERNET=y
CONFIG_NET_VENDOR_STMICRO=y
CONFIG_STMMAC_ETH=y
CONFIG_STMMAC_PLATFORM=y
CONFIG_DWMAC_CVITEK=y
# CONFIG_NET_VENDOR_CVITEK is not set
CONFIG_REALTEK_PHY=y
CONFIG_SMSC_PHY=y
CONFIG_CVITEK_PHY=y
CONFIG_CVITEK_PHY_UAPS=y
# CONFIG_FIXED_PHY is not set
CONFIG_VLAN_8021Q=y
CONFIG_MACVLAN=y
CONFIG_BRIDGE=y
#
# FILE SYSTEM
#
CONFIG_HW_RANDOM=y
CONFIG_RTC_CLASS=y
CONFIG_EXT4_FS=y
CONFIG_TMPFS=y
CONFIG_NFS_FS=y
CONFIG_ROOT_NFS=y
CONFIG_PRINTK_TIME=y
CONFIG_BLK_DEV_INITRD=y
CONFIG_SQUASHFS=y
CONFIG_SQUASHFS_LZ4=y
CONFIG_SQUASHFS_LZO=y
CONFIG_SQUASHFS_XZ=y
CONFIG_SQUASHFS_ZLIB=y
CONFIG_ENABLE_DEFAULT_TRACERS=y
CONFIG_FAT_FS=y
CONFIG_MSDOS_FS=y
CONFIG_VFAT_FS=y
CONFIG_FAT_DEFAULT_CODEPAGE=437
CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1"
#
# STORAGE : SD/EMMC/NAND
#
CONFIG_MMC=y
CONFIG_MMC_BLOCK=y
CONFIG_MMC_BLOCK_MINORS=8
CONFIG_MMC_SDHCI=y
CONFIG_MMC_SDHCI_PLTFM=y
CONFIG_MMC_SDHCI_CVI=y
CONFIG_MTD=y
CONFIG_MTD_CHAR=y
CONFIG_MTD_BLOCK=y
CONFIG_MTD_NAND=y
CONFIG_MTD_NAND_IDS=y
CONFIG_MTD_NAND_PLATFORM=y
CONFIG_MTD_NAND_CVSNFC=y
CONFIG_MTD_NAND_CVSNFC_DT=y
CONFIG_MTD_CMDLINE_PARTS=y
CONFIG_MTD_TEST=m
CONFIG_MTD_UBI=y
CONFIG_UBIFS_FS=y
CONFIG_MTD_UBI_BLOCK=y
#
# USB
#
CONFIG_CMA=y
CONFIG_DMA_CMA=y
CONFIG_USB=y
CONFIG_USB_CVITEK_GADGET=m
CONFIG_USB_GADGET=y
CONFIG_U_SERIAL_CONSOLE=y
CONFIG_USB_CONFIGFS=m
CONFIG_USB_CONFIGFS_SERIAL=y
CONFIG_USB_CONFIGFS_ACM=y
CONFIG_USB_CONFIGFS_MASS_STORAGE=y
CONFIG_USB_CONFIGFS_RNDIS=y
CONFIG_USB_CONFIGFS_EEM=y
CONFIG_USB_CONFIGFS_ECM=y
# CONFIG_USB_CONFIGFS_F_LB_SS is not set
# CONFIG_USB_CONFIGFS_F_FS is not set
# CONFIG_USB_G_SERIAL is not set
# CONFIG_USB_CONFIGFS_BCM is not set
CONFIG_USB_CONFIGFS_CVG=y
# usb otg
CONFIG_USB_OTG=y
CONFIG_USB_OTG_FSM=y
CONFIG_USB_CVITEK_DRD=m
# usb host storage
CONFIG_USB_XHCI_HCD=y
CONFIG_USB_XHCI_PLATFORM=y
CONFIG_SCSI=y
CONFIG_USB_STORAGE=y
#CONFIG_USB_STORAGE_DEBUG=y
CONFIG_USB_STORAGE_REALTEK=y
CONFIG_USB_STORAGE_DATAFAB=y
CONFIG_USB_STORAGE_FREECOM=y
CONFIG_USB_STORAGE_ISD200=y
CONFIG_USB_STORAGE_USBAT=y
CONFIG_USB_STORAGE_SDDR09=y
CONFIG_USB_STORAGE_SDDR55=y
CONFIG_USB_STORAGE_JUMPSHOT=y
CONFIG_USB_STORAGE_ALAUDA=y
CONFIG_USB_STORAGE_ONETOUCH=y
CONFIG_USB_STORAGE_KARMA=y
CONFIG_USB_STORAGE_CYPRESS_ATACB=y
CONFIG_USB_STORAGE_ENE_UB6250=y
CONFIG_USB_UAS=y
CONFIG_BLK_DEV_LOOP=y
CONFIG_EFIVAR_FS=n
CONFIG_CRYPTO_HW=n
CONFIG_CRYPTO_ECHAINIV=n
CONFIG_KEXEC=y
CONFIG_CRASH_DUMP=y
CONFIG_MAGIC_SYSRQ=y
CONFIG_NLS=y
CONFIG_NLS_DEFAULT="iso8859-1"
CONFIG_NLS_CODEPAGE_437=y
CONFIG_NLS_CODEPAGE_850=y
CONFIG_NLS_ISO8859_1=y
CONFIG_NLS_ISO8859_2=y
CONFIG_NLS_ISO8859_3=y
CONFIG_NLS_UTF8=y
CONFIG_CVITEK_NPU=y
CONFIG_RESET_CONTROLLER=y
CONFIG_RESET_CVITEK=y
CONFIG_DMADEVICES=y
CONFIG_DMA_ENGINE=y
CONFIG_DMA_OF=y
CONFIG_DW_DMAC_CVITEK=y
#
# AUDIO
#
CONFIG_SOUND=y
CONFIG_SND=y
CONFIG_SND_SOC=y
CONFIG_SND_CV1835_I2S=y
CONFIG_CV1835_I2S_SUBSYS=y
#CONFIG_SND_SOC_CV1835_CONCURRENT_I2S=y
CONFIG_SND_SOC_CV1835_USE_AUDIO_PLL=y
#
# AUDIO - ADAU1372 CODEC
#
#CONFIG_SND_SOC_ADAU1372=y
#CONFIG_SND_SOC_ADAU_UTILS=y
#CONFIG_SND_SOC_ADAU1372_I2C=y
#CONFIG_SND_SOC_CV1835_ADAU1372=y
#
# AUDIO - PDM
#
#CONFIG_SND_SOC_CV1835_CV1835PDM=y
#CONFIG_SND_SOC_CV1835PDM=y
#
# AUDIO - INTERNAL ADC AND DAC
#
CONFIG_SND_SOC_CV1835_CV1835ADC=y
CONFIG_SND_SOC_CV1835ADC=y
CONFIG_SND_SOC_CV1835_CV1835DAC=y
CONFIG_SND_SOC_CV1835DAC=y
#
# SPI drivers
#
# CONFIG_SPI is not set
# CONFIG_SPI_MASTER is not set
# CONFIG_SPI_DESIGNWARE is not set
# CONFIG_SPI_DW_MMIO is not set
# CONFIG_SPI_SPIDEV is not set
#
# VIDEO
#
# media/v4l2 support
CONFIG_I2C_MUX=y
CONFIG_MEDIA_CONTROLLER=y
CONFIG_MEDIA_SUPPORT=y
CONFIG_MEDIA_CAMERA_SUPPORT=y
CONFIG_VIDEO_DEV=y
CONFIG_VIDEO_V4L2=y
CONFIG_V4L2_MEM2MEM_DEV=y
CONFIG_V4L_PLATFORM_DRIVERS=y
CONFIG_SOC_CAMERA=y
CONFIG_VIDEO_V4L2_SUBDEV_API=y
CONFIG_MEDIA_USB_SUPPORT=y
CONFIG_V4L_MEM2MEM_DRIVERS=y
CONFIG_VIDEO_CVITEK=m
CONFIG_VIDEO_CVITEK_CIF=m
CONFIG_VIDEO_CVITEK_SNS_I2C=m
CONFIG_VIDEO_CVITEK_MIPI_TX=m
#
# Frame buffer Devices
#
CONFIG_FB=y
CONFIG_FB_CVITEK=m
#
# PM Suspend
#
CONFIG_PM_DEBUG=y
CONFIG_PM_TEST_SUSPEND=y
CONFIG_PM_ADVANCED_DEBUG=y
#
# PERIPHERAL
#
CONFIG_PWM=y
CONFIG_PWM_CVITEK=m
CONFIG_WATCHDOG=y
CONFIG_DW_WATCHDOG=m
CONFIG_I2C=y
CONFIG_I2C_CHARDEV=y
CONFIG_I2C_DESIGNWARE_CORE=y
CONFIG_I2C_DESIGNWARE_PLATFORM=y
CONFIG_SERIAL_8250=y
CONFIG_SERIAL_8250_CONSOLE=y
CONFIG_SERIAL_8250_DW=y
CONFIG_SERIAL_8250_NR_UARTS=5
CONFIG_SERIAL_8250_RUNTIME_UARTS=5
CONFIG_GPIOLIB=y
CONFIG_GPIO_SYSFS=y
CONFIG_GPIO_DWAPB=y
#
# SYSTEM
#
CONFIG_TEE=y
CONFIG_OPTEE=y
CONFIG_STAGING=y
CONFIG_ANDROID=y
CONFIG_ION=y
CONFIG_ION_CARVEOUT_HEAP=y
CONFIG_ION_SYSTEM_HEAP=y
CONFIG_ION_CMA_HEAP=y
#
# KGDB/ FTRACE
#
CONFIG_HAVE_ARCH_KGDB=y
CONFIG_KGDB=y
CONFIG_KGDB_SERIAL_CONSOLE=y
CONFIG_TRACING=y
CONFIG_EVENT_TRACING=y
CONFIG_TRACING_SUPPORT=y
CONFIG_CONTEXT_SWITCH_TRACER=y
CONFIG_GENERIC_TRACER=y
CONFIG_NOP_TRACER=y
CONFIG_HAVE_FUNCTION_TRACER=y
CONFIG_HAVE_FUNCTION_GRAPH_TRACER=y
CONFIG_HAVE_DYNAMIC_FTRACE=y
CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
CONFIG_HAVE_SYSCALL_TRACEPOINTS=y
CONFIG_HAVE_C_RECORDMCOUNT=y
CONFIG_TRACER_MAX_TRACE=y
CONFIG_TRACE_CLOCK=y
CONFIG_FTRACE=y
CONFIG_FUNCTION_TRACER=y
CONFIG_FUNCTION_GRAPH_TRACER=y
CONFIG_IRQSOFF_TRACER=y
CONFIG_SCHED_TRACER=y
CONFIG_HWLAT_TRACER=y
CONFIG_FTRACE_SYSCALLS=y
CONFIG_TRACER_SNAPSHOT=y
CONFIG_TRACER_SNAPSHOT_PER_CPU_SWAP=y
CONFIG_BRANCH_PROFILE_NONE=y
CONFIG_STACK_TRACER=y
CONFIG_BLK_DEV_IO_TRACE=y
CONFIG_DYNAMIC_FTRACE=y
CONFIG_FUNCTION_PROFILER=y
CONFIG_FTRACE_MCOUNT_RECORD=y
CONFIG_DYNAMIC_DEBUG=y
CONFIG_DEBUG_KERNEL=y
CONFIG_DEBUG_INFO=y
#
# Debug
#
CONFIG_DYNAMIC_DEBUG=y
CONFIG_DEBUG_KERNEL=y
CONFIG_DEBUG_INFO=y
CONFIG_DEBUG_STACKOVERFLOW=y
CONFIG_DEBUG_STACK_USAGE=y
CONFIG_SLUB_DEBUG=y
CONFIG_DEBUG_SPINLOCK=y
CONFIG_DEBUG_MUTEXES=y
CONFIG_DEBUG_ATOMIC_SLEEP=y
CONFIG_DEBUG_LIST=y
CONFIG_SCHEDSTATS=y
CONFIG_SCHED_STACK_END_CHECK=y
CONFIG_FRAME_POINTER=y
#
# WiFi
#
CONFIG_WLAN=y
CONFIG_CFG80211=y
CONFIG_CFG80211_DEFAULT_PS=y
CONFIG_CFG80211_CRDA_SUPPORT=y
CONFIG_CFG80211_WEXT=y
CONFIG_MAC80211=y
CONFIG_MAC80211_HAS_RC=y
CONFIG_MAC80211_RC_MINSTREL=y
CONFIG_MAC80211_RC_MINSTREL_HT=y
CONFIG_MAC80211_RC_DEFAULT_MINSTREL=y
CONFIG_MAC80211_RC_DEFAULT="minstrel_ht"
#
# Clock framework
#
CONFIG_COMMON_CLK=y
CONFIG_COMMON_CLK_CVITEK=y
CONFIG_COMMON_CLK_CV1832_TPU_500M=y
#
# Thermal
#
CONFIG_THERMAL=y
CONFIG_THERMAL_WRITABLE_TRIPS=y
CONFIG_THERMAL_EMULATION=y
CONFIG_CV1835_THERMAL=y
#
# OTHERS
#
CONFIG_HW_PERF_EVENTS=y
CONFIG_RCU_CPU_STALL_TIMEOUT=21
CONFIG_RING_BUFFER=y
CONFIG_RING_BUFFER_ALLOW_SWAP=y
CONFIG_CONSOLE_POLL=y
CONFIG_CV1835_SYSDMA_REMAP=y
CONFIG_OVERLAY_FS=y

View File

@ -0,0 +1,226 @@
CONFIG_SYSVIPC=y
CONFIG_POSIX_MQUEUE=y
CONFIG_FHANDLE=y
CONFIG_NO_HZ_IDLE=y
CONFIG_HIGH_RES_TIMERS=y
CONFIG_TASKSTATS=y
CONFIG_SCHED_AUTOGROUP=y
CONFIG_PROFILING=y
CONFIG_MODULES=y
CONFIG_MODULE_UNLOAD=y
CONFIG_MODULE_FORCE_LOAD=y
CONFIG_MODULE_FORCE_UNLOAD=y
CONFIG_BLK_DEV_BSGLIB=y
CONFIG_ARCH_CVITEK=y
CONFIG_ARCH_CVITEK_CHIP="cv183x"
CONFIG_ARCH_CV183X=y
CONFIG_ARCH_CV183X_FPGA=y
# CONFIG_SMP is not set
CONFIG_TRANSPARENT_HUGEPAGE=y
CONFIG_COMPAT=y
CONFIG_NET=y
CONFIG_PACKET=y
CONFIG_PACKET_DIAG=y
CONFIG_UNIX=y
CONFIG_INET=y
CONFIG_IP_MULTICAST=y
CONFIG_IP_PNP=y
CONFIG_NET_SCHED=y
CONFIG_DEVTMPFS=y
CONFIG_DEVTMPFS_MOUNT=y
CONFIG_BLK_DEV_SD=y
CONFIG_CHR_DEV_SG=y
CONFIG_CVITEK_PINCTRL_CV1835=y
# Network drivers
CONFIG_NETDEVICES=y
CONFIG_ETHERNET=y
CONFIG_NET_VENDOR_STMICRO=y
CONFIG_STMMAC_ETH=y
CONFIG_STMMAC_PLATFORM=y
CONFIG_DWMAC_CVITEK=y
CONFIG_REALTEK_PHY=y
CONFIG_SMSC_PHY=y
# CONFIG_FIXED_PHY is not set
CONFIG_VLAN_8021Q=y
CONFIG_MACVLAN=y
CONFIG_SERIAL_8250=y
CONFIG_SERIAL_8250_CONSOLE=y
CONFIG_SERIAL_8250_DW=y
CONFIG_HW_RANDOM=y
CONFIG_RTC_CLASS=y
CONFIG_EXT4_FS=y
CONFIG_TMPFS=y
CONFIG_NFS_FS=y
CONFIG_ROOT_NFS=y
CONFIG_DEBUG_KERNEL=y
CONFIG_DEBUG_INFO=y
CONFIG_PRINTK_TIME=y
CONFIG_BLK_DEV_INITRD=y
CONFIG_SQUASHFS=y
CONFIG_SQUASHFS_LZ4=y
CONFIG_SQUASHFS_LZO=y
CONFIG_SQUASHFS_XZ=y
CONFIG_SQUASHFS_ZLIB=y
CONFIG_ENABLE_DEFAULT_TRACERS=y
CONFIG_GPIOLIB=y
CONFIG_GPIO_SYSFS=y
CONFIG_GPIO_DWAPB=y
CONFIG_MMC=y
CONFIG_MMC_BLOCK=y
CONFIG_MMC_BLOCK_MINORS=8
CONFIG_MMC_SDHCI=y
CONFIG_MMC_SDHCI_PLTFM=y
CONFIG_MMC_SDHCI_CVI=y
CONFIG_MTD=y
CONFIG_MTD_NAND=y
CONFIG_MTD_NAND_IDS=y
CONFIG_MTD_NAND_PLATFORM=y
CONFIG_MTD_NAND_HPNFC=y
CONFIG_MTD_NAND_HPNFC_DT=y
CONFIG_MTD_NAND_CVSNFC=y
CONFIG_MTD_NAND_CVSNFC_DT=y
CONFIG_MTD_CMDLINE_PARTS=y
CONFIG_CMA=y
CONFIG_DMA_CMA=y
CONFIG_USB=y
CONFIG_USB_CVITEK_GADGET=m
CONFIG_USB_GADGET=y
CONFIG_U_SERIAL_CONSOLE=y
CONFIG_USB_CONFIGFS=m
CONFIG_USB_CONFIGFS_SERIAL=y
CONFIG_USB_CONFIGFS_ACM=y
CONFIG_USB_CONFIGFS_MASS_STORAGE=y
# CONFIG_USB_CONFIGFS_F_LB_SS is not set
# CONFIG_USB_CONFIGFS_F_FS is not set
# CONFIG_USB_G_SERIAL is not set
# CONFIG_USB_CONFIGFS_BCM is not set
# usb otg
CONFIG_USB_OTG=y
CONFIG_USB_OTG_FSM=y
CONFIG_USB_CVITEK_DRD=m
# usb host storage
CONFIG_USB_XHCI_HCD=y
CONFIG_USB_XHCI_PLATFORM=y
CONFIG_SCSI=y
CONFIG_USB_STORAGE=y
#CONFIG_USB_STORAGE_DEBUG=y
CONFIG_USB_STORAGE_REALTEK=y
CONFIG_USB_STORAGE_DATAFAB=y
CONFIG_USB_STORAGE_FREECOM=y
CONFIG_USB_STORAGE_ISD200=y
CONFIG_USB_STORAGE_USBAT=y
CONFIG_USB_STORAGE_SDDR09=y
CONFIG_USB_STORAGE_SDDR55=y
CONFIG_USB_STORAGE_JUMPSHOT=y
CONFIG_USB_STORAGE_ALAUDA=y
CONFIG_USB_STORAGE_ONETOUCH=y
CONFIG_USB_STORAGE_KARMA=y
CONFIG_USB_STORAGE_CYPRESS_ATACB=y
CONFIG_USB_STORAGE_ENE_UB6250=y
CONFIG_USB_UAS=y
CONFIG_BLK_DEV_LOOP=y
CONFIG_STAGING=y
CONFIG_ANDROID=y
CONFIG_ION=y
CONFIG_ION_CARVEOUT_HEAP=y
CONFIG_EFIVAR_FS=n
CONFIG_CRYPTO_HW=n
CONFIG_CRYPTO_ECHAINIV=n
# CONFIG_VPP_ENB is not set
CONFIG_I2C=y
CONFIG_I2C_CHARDEV=y
CONFIG_I2C_DESIGNWARE_CORE=y
CONFIG_I2C_DESIGNWARE_PLATFORM=y
CONFIG_KEXEC=y
CONFIG_CRASH_DUMP=y
CONFIG_MAGIC_SYSRQ=y
CONFIG_FAT_FS=y
CONFIG_MSDOS_FS=y
CONFIG_VFAT_FS=y
CONFIG_FAT_DEFAULT_CODEPAGE=437
CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1"
CONFIG_NLS=y
CONFIG_NLS_DEFAULT="iso8859-1"
CONFIG_NLS_CODEPAGE_437=y
CONFIG_NLS_CODEPAGE_850=y
CONFIG_NLS_ISO8859_1=y
CONFIG_NLS_ISO8859_2=y
CONFIG_NLS_ISO8859_3=y
CONFIG_NLS_UTF8=y
CONFIG_CVITEK_NPU=y
CONFIG_RESET_CONTROLLER=y
CONFIG_RESET_CVITEK=y
CONFIG_DMADEVICES=y
CONFIG_DMA_ENGINE=y
CONFIG_DMA_OF=y
CONFIG_DW_DMAC_CVITEK=y
# audio driver
#CONFIG_SOUND=y
#CONFIG_SND=y
#CONFIG_SND_SOC=y
#CONFIG_SND_SOC_ADAU1372=y
#CONFIG_SND_SOC_ADAU_UTILS=y
#CONFIG_SND_SOC_ADAU1372_I2C=y
#CONFIG_SND_CV1835_I2S=y
#CONFIG_SND_SOC_CV1835_ADAU1372=y
# CONFIG_SND_SOC_ADAU1372_SPI is not set
#CONFIG_SND_SOC_CV1835_CONCURRENT_I2S=y
#CONFIG_CV1835_I2S_SUBSYS=y
#CONFIG_SND_SOC_CV1835_USE_AUDIO_PLL=y
#CONFIG_SND_SOC_CV1835_CV1835PDM=y
#CONFIG_SND_SOC_CV1835PDM=y
#CONFIG_SND_SOC_CV1835_CV1835ADC=y
#CONFIG_SND_SOC_CV1835ADC=y
#CONFIG_SND_SOC_CV1835_CV1835DAC=y
#CONFIG_SND_SOC_CV1835DAC=y
CONFIG_ION_CARVEOUT_HEAP=y
CONFIG_PWM=y
CONFIG_PWM_CVITEK=m
CONFIG_CONSOLE_POLL=y
CONFIG_HAVE_ARCH_KGDB=y
CONFIG_KGDB=y
CONFIG_KGDB_SERIAL_CONSOLE=y
CONFIG_DYNAMIC_DEBUG=y
CONFIG_HW_PERF_EVENTS=y
CONFIG_TEE=y
CONFIG_OPTEE=y
CONFIG_WATCHDOG=y
CONFIG_DW_WATCHDOG=m
#
# SPI drivers
#
# CONFIG_SPI is not set
# CONFIG_SPI_MASTER is not set
# CONFIG_SPI_DESIGNWARE is not set
# CONFIG_SPI_DW_MMIO is not set
# CONFIG_SPI_SPIDEV is not set
# media/v4l2 support
CONFIG_I2C_MUX=y
CONFIG_MEDIA_CONTROLLER=y
CONFIG_MEDIA_SUPPORT=y
CONFIG_MEDIA_CAMERA_SUPPORT=y
CONFIG_VIDEO_DEV=y
CONFIG_VIDEO_V4L2=y
CONFIG_V4L2_MEM2MEM_DEV=y
CONFIG_V4L_PLATFORM_DRIVERS=y
CONFIG_SOC_CAMERA=y
CONFIG_VIDEO_V4L2_SUBDEV_API=y
CONFIG_MEDIA_USB_SUPPORT=y
CONFIG_V4L_MEM2MEM_DRIVERS=y
CONFIG_VIDEO_CVITEK=m
CONFIG_VIDEO_CVITEK_CIF=m
CONFIG_VIDEO_CVITEK_SNS_I2C=m
CONFIG_VIDEO_CVITEK_MIPI_TX=m
# Frame buffer Devices
CONFIG_FB=y
CONFIG_FB_CVITEK=m

View File

@ -0,0 +1,108 @@
CONFIG_SYSVIPC=y
CONFIG_POSIX_MQUEUE=y
CONFIG_FHANDLE=y
CONFIG_NO_HZ_IDLE=y
CONFIG_HIGH_RES_TIMERS=y
CONFIG_TASKSTATS=y
CONFIG_SCHED_AUTOGROUP=y
CONFIG_PROFILING=y
CONFIG_MODULES=y
CONFIG_MODULE_UNLOAD=y
CONFIG_BLK_DEV_BSGLIB=y
CONFIG_ARCH_CVITEK=y
CONFIG_ARCH_CVITEK_CHIP="cv183x"
CONFIG_ARCH_CV183X=y
CONFIG_ARCH_CV183X_PALLADIUM=y
CONFIG_SMP=y
CONFIG_TRANSPARENT_HUGEPAGE=y
CONFIG_COMPAT=y
CONFIG_NET=y
CONFIG_PACKET=y
CONFIG_PACKET_DIAG=y
CONFIG_UNIX=y
CONFIG_INET=y
CONFIG_IP_MULTICAST=y
CONFIG_IP_PNP=y
CONFIG_NET_SCHED=y
CONFIG_DEVTMPFS=y
CONFIG_DEVTMPFS_MOUNT=y
CONFIG_BLK_DEV_SD=y
CONFIG_CHR_DEV_SG=y
# Network drivers
#CONFIG_NETDEVICES=y
#CONFIG_ETHERNET=y
#CONFIG_NET_VENDOR_STMICRO=y
#CONFIG_STMMAC_ETH=y
#CONFIG_STMMAC_PLATFORM=y
#CONFIG_DWMAC_CVITEK=y
# CONFIG_NET_VENDOR_CVITEK is not set
# CONFIG_BROADCOM_PHY=y
# CONFIG_MARVELL_PHY=y
#CONFIG_REALTEK_PHY=y
#CONFIG_SMSC_PHY=y
#CONFIG_FIXED_PHY=y
# CONFIG_VLAN_8021Q is not set
# CONFIG_MACVLAN is not set
CONFIG_SERIAL_8250=y
CONFIG_SERIAL_8250_CONSOLE=y
CONFIG_SERIAL_8250_DW=y
CONFIG_HW_RANDOM=y
CONFIG_RTC_CLASS=y
CONFIG_EXT4_FS=y
CONFIG_TMPFS=y
CONFIG_NFS_FS=y
CONFIG_ROOT_NFS=y
CONFIG_DEBUG_KERNEL=y
CONFIG_DEBUG_INFO=y
CONFIG_PRINTK_TIME=y
CONFIG_BLK_DEV_INITRD=y
CONFIG_ENABLE_DEFAULT_TRACERS=y
CONFIG_GPIOLIB=y
CONFIG_GPIO_SYSFS=y
CONFIG_GPIO_DWAPB=y
#CONFIG_MMC=y
#CONFIG_MMC_BLOCK=y
#CONFIG_MMC_BLOCK_MINORS=8
#CONFIG_MMC_SDHCI=y
#CONFIG_MMC_SDHCI_PLTFM=y
#CONFIG_MMC_SDHCI_BM=y
CONFIG_CMA=y
CONFIG_DMA_CMA=y
CONFIG_STAGING=y
CONFIG_ANDROID=y
CONFIG_ION=y
CONFIG_EFIVAR_FS=n
CONFIG_CRYPTO_HW=n
CONFIG_CRYPTO_ECHAINIV=n
# CONFIG_VPP_ENB is not set
CONFIG_I2C=y
CONFIG_I2C_CHARDEV=y
CONFIG_I2C_DESIGNWARE_CORE=y
CONFIG_I2C_DESIGNWARE_PLATFORM=y
CONFIG_KEXEC=y
CONFIG_CRASH_DUMP=y
CONFIG_MAGIC_SYSRQ=y
CONFIG_FAT_FS=y
CONFIG_MSDOS_FS=y
CONFIG_VFAT_FS=y
CONFIG_FAT_DEFAULT_CODEPAGE=437
CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1"
#CONFIG_NLS=y
#CONFIG_NLS_DEFAULT="iso8859-1"
#CONFIG_NLS_CODEPAGE_437=y
#CONFIG_NLS_CODEPAGE_850=y
#CONFIG_NLS_ISO8859_1=y
#CONFIG_NLS_ISO8859_2=y
#CONFIG_NLS_ISO8859_3=y
#CONFIG_NLS_UTF8=y
#CONFIG_CVITEK_NPU=y
CONFIG_RESET_CONTROLLER=y
CONFIG_RESET_CVITEK=y
CONFIG_DYNAMIC_DEBUG=y
CONFIG_HW_PERF_EVENTS=y
CONFIG_ION_CARVEOUT_HEAP=y
CONFIG_PWM=y
CONFIG_PWM_CVITEK=y

View File

@ -0,0 +1,392 @@
#
# PLATFORM
#
CONFIG_SYSVIPC=y
CONFIG_POSIX_MQUEUE=y
CONFIG_FHANDLE=y
CONFIG_NO_HZ_IDLE=y
CONFIG_HIGH_RES_TIMERS=y
CONFIG_TASKSTATS=y
CONFIG_SCHED_AUTOGROUP=y
CONFIG_PROFILING=y
CONFIG_MODULES=y
CONFIG_MODULE_UNLOAD=y
CONFIG_MODULE_FORCE_LOAD=y
CONFIG_MODULE_FORCE_UNLOAD=y
CONFIG_BLK_DEV_BSGLIB=y
CONFIG_ARCH_CVITEK=y
CONFIG_ARCH_CVITEK_CHIP="cv183x"
CONFIG_ARCH_CV183X=y
CONFIG_ARCH_CV183X_ASIC=y
CONFIG_SMP=y
CONFIG_TRANSPARENT_HUGEPAGE=y
CONFIG_COMPAT=y
CONFIG_NET=y
CONFIG_PACKET=y
CONFIG_PACKET_DIAG=y
CONFIG_UNIX=y
CONFIG_INET=y
CONFIG_IP_MULTICAST=y
CONFIG_IP_PNP=y
CONFIG_NET_SCHED=y
CONFIG_DEVTMPFS=y
CONFIG_DEVTMPFS_MOUNT=y
CONFIG_BLK_DEV_SD=y
CONFIG_CHR_DEV_SG=y
CONFIG_CVITEK_PINCTRL_CV1835=y
CONFIG_PREEMPT=y
#
# NETWORK
#
CONFIG_NETDEVICES=y
CONFIG_ETHERNET=y
CONFIG_NET_VENDOR_STMICRO=y
CONFIG_STMMAC_ETH=y
CONFIG_STMMAC_PLATFORM=y
CONFIG_DWMAC_CVITEK=y
# CONFIG_NET_VENDOR_CVITEK is not set
CONFIG_REALTEK_PHY=y
CONFIG_SMSC_PHY=y
CONFIG_CVITEK_PHY=y
CONFIG_CVITEK_PHY_UAPS=y
# CONFIG_FIXED_PHY is not set
CONFIG_VLAN_8021Q=y
CONFIG_MACVLAN=y
CONFIG_BRIDGE=y
#
# FILE SYSTEM
#
CONFIG_HW_RANDOM=y
CONFIG_RTC_CLASS=y
CONFIG_EXT4_FS=y
CONFIG_EXT4_ENCRYPTION=y
CONFIG_EXT4_FS_ENCRYPTION=y
CONFIG_TMPFS=y
CONFIG_NFS_FS=y
CONFIG_ROOT_NFS=y
CONFIG_PRINTK_TIME=y
CONFIG_BLK_DEV_INITRD=y
CONFIG_SQUASHFS=y
CONFIG_SQUASHFS_LZ4=y
CONFIG_SQUASHFS_LZO=y
CONFIG_SQUASHFS_XZ=y
CONFIG_SQUASHFS_ZLIB=y
CONFIG_ENABLE_DEFAULT_TRACERS=y
CONFIG_FAT_FS=y
CONFIG_MSDOS_FS=y
CONFIG_VFAT_FS=y
CONFIG_FAT_DEFAULT_CODEPAGE=437
CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1"
CONFIG_PSTORE=y
CONFIG_PSTORE_ZLIB_COMPRESS=y
CONFIG_PSTORE_CONSOLE=y
CONFIG_PSTORE_PMSG=y
CONFIG_PSTORE_FTRACE=y
CONFIG_PSTORE_RAM=y
#
# STORAGE : SD/EMMC/NAND/NOR
#
CONFIG_MMC=y
CONFIG_MMC_BLOCK=y
CONFIG_MMC_BLOCK_MINORS=8
CONFIG_MMC_SDHCI=y
CONFIG_MMC_SDHCI_PLTFM=y
CONFIG_MMC_SDHCI_CVI=y
CONFIG_MTD=y
CONFIG_MTD_CHAR=y
CONFIG_MTD_BLOCK=y
CONFIG_MTD_NAND=y
CONFIG_MTD_NAND_IDS=y
CONFIG_MTD_NAND_PLATFORM=y
CONFIG_MTD_NAND_CVSNFC=y
CONFIG_MTD_NAND_CVSNFC_DT=y
CONFIG_MTD_CMDLINE_PARTS=y
CONFIG_MTD_TEST=m
CONFIG_MTD_UBI=y
CONFIG_UBIFS_FS=y
CONFIG_MTD_UBI_BLOCK=y
CONFIG_SPI=y
CONFIG_MTD_SPI_NOR=y
CONFIG_SPI_CVI_SPIF=y
CONFIG_JFFS2_FS=y
CONFIG_JFFS2_FS_WBUF_VERIFY=y
CONFIG_JFFS2_SUMMARY=y
CONFIG_JFFS2_FS_XATTR=y
CONFIG_JFFS2_COMPRESSION_OPTIONS=y
CONFIG_JFFS2_LZO=y
CONFIG_JFFS2_RUBIN=y
#
# USB
#
CONFIG_CMA=y
CONFIG_DMA_CMA=y
CONFIG_USB=y
CONFIG_USB_CVITEK_GADGET=m
CONFIG_USB_GADGET=y
CONFIG_U_SERIAL_CONSOLE=y
CONFIG_USB_CONFIGFS=m
CONFIG_USB_CONFIGFS_SERIAL=y
CONFIG_USB_CONFIGFS_ACM=y
CONFIG_USB_CONFIGFS_MASS_STORAGE=y
CONFIG_USB_CONFIGFS_RNDIS=y
CONFIG_USB_CONFIGFS_EEM=y
CONFIG_USB_CONFIGFS_ECM=y
CONFIG_USB_CONFIGFS_F_UVC=y
CONFIG_USB_CONFIGFS_F_UAC1=y
# CONFIG_USB_CONFIGFS_F_LB_SS is not set
# CONFIG_USB_CONFIGFS_F_FS is not set
# CONFIG_USB_G_SERIAL is not set
# CONFIG_USB_CONFIGFS_BCM is not set
CONFIG_USB_CONFIGFS_CVG=y
# usb otg
CONFIG_USB_OTG=y
CONFIG_USB_OTG_FSM=y
CONFIG_USB_CVITEK_DRD=m
# usb host storage
CONFIG_USB_XHCI_HCD=y
CONFIG_USB_XHCI_PLATFORM=y
CONFIG_SCSI=y
CONFIG_USB_STORAGE=y
#CONFIG_USB_STORAGE_DEBUG=y
CONFIG_USB_STORAGE_REALTEK=y
CONFIG_USB_STORAGE_DATAFAB=y
CONFIG_USB_STORAGE_FREECOM=y
CONFIG_USB_STORAGE_ISD200=y
CONFIG_USB_STORAGE_USBAT=y
CONFIG_USB_STORAGE_SDDR09=y
CONFIG_USB_STORAGE_SDDR55=y
CONFIG_USB_STORAGE_JUMPSHOT=y
CONFIG_USB_STORAGE_ALAUDA=y
CONFIG_USB_STORAGE_ONETOUCH=y
CONFIG_USB_STORAGE_KARMA=y
CONFIG_USB_STORAGE_CYPRESS_ATACB=y
CONFIG_USB_STORAGE_ENE_UB6250=y
CONFIG_USB_UAS=y
CONFIG_BLK_DEV_LOOP=y
CONFIG_EFIVAR_FS=n
CONFIG_CRYPTO_HW=n
CONFIG_CRYPTO_ECHAINIV=n
CONFIG_KEXEC=y
CONFIG_CRASH_DUMP=y
CONFIG_MAGIC_SYSRQ=y
CONFIG_NLS=y
CONFIG_NLS_DEFAULT="iso8859-1"
CONFIG_NLS_CODEPAGE_437=y
CONFIG_NLS_CODEPAGE_850=y
CONFIG_NLS_ISO8859_1=y
CONFIG_NLS_ISO8859_2=y
CONFIG_NLS_ISO8859_3=y
CONFIG_NLS_UTF8=y
CONFIG_CVITEK_NPU=y
CONFIG_RESET_CONTROLLER=y
CONFIG_RESET_CVITEK=y
CONFIG_DMADEVICES=y
CONFIG_DMA_ENGINE=y
CONFIG_DMA_OF=y
CONFIG_DW_DMAC_CVITEK=y
#
# AUDIO
#
CONFIG_SOUND=y
CONFIG_SND=y
CONFIG_SND_SOC=y
CONFIG_SND_CV1835_I2S=y
CONFIG_CV1835_I2S_SUBSYS=y
#CONFIG_SND_SOC_CV1835_CONCURRENT_I2S=y
CONFIG_SND_SOC_CV1835_USE_AUDIO_PLL=y
#
# AUDIO - ADAU1372 CODEC
#
#CONFIG_SND_SOC_ADAU1372=y
#CONFIG_SND_SOC_ADAU_UTILS=y
#CONFIG_SND_SOC_ADAU1372_I2C=y
#CONFIG_SND_SOC_CV1835_ADAU1372=y
#
# AUDIO - PDM
#
#CONFIG_SND_SOC_CV1835_CV1835PDM=y
#CONFIG_SND_SOC_CV1835PDM=y
#
# AUDIO - INTERNAL ADC AND DAC
#
CONFIG_SND_SOC_CV1835_CV1835ADC=y
CONFIG_SND_SOC_CV1835ADC=y
CONFIG_SND_SOC_CV1835_CV1835DAC=y
CONFIG_SND_SOC_CV1835DAC=y
#
# SPI drivers
#
# CONFIG_SPI_MASTER is not set
# CONFIG_SPI_DESIGNWARE is not set
# CONFIG_SPI_DW_MMIO is not set
# CONFIG_SPI_SPIDEV is not set
#
# VIDEO
#
# media/v4l2 support
CONFIG_I2C_MUX=y
CONFIG_MEDIA_CONTROLLER=y
CONFIG_MEDIA_SUPPORT=y
CONFIG_MEDIA_CAMERA_SUPPORT=y
CONFIG_VIDEO_DEV=y
CONFIG_VIDEO_V4L2=y
CONFIG_V4L2_MEM2MEM_DEV=y
CONFIG_V4L_PLATFORM_DRIVERS=y
CONFIG_SOC_CAMERA=y
CONFIG_VIDEO_V4L2_SUBDEV_API=y
CONFIG_MEDIA_USB_SUPPORT=y
CONFIG_V4L_MEM2MEM_DRIVERS=y
CONFIG_VIDEO_CVITEK=m
CONFIG_VIDEO_CVITEK_CIF=m
CONFIG_VIDEO_CVITEK_SNS_I2C=m
CONFIG_VIDEO_CVITEK_MIPI_TX=m
#
# Frame buffer Devices
#
CONFIG_FB=y
CONFIG_FB_CVITEK=m
#
# PM Suspend
#
CONFIG_PM_DEBUG=y
CONFIG_PM_TEST_SUSPEND=y
CONFIG_PM_ADVANCED_DEBUG=y
#
# PERIPHERAL
#
CONFIG_PWM=y
CONFIG_PWM_CVITEK=m
CONFIG_WATCHDOG=y
CONFIG_DW_WATCHDOG=m
CONFIG_I2C=y
CONFIG_I2C_CHARDEV=y
CONFIG_I2C_DESIGNWARE_CORE=y
CONFIG_I2C_DESIGNWARE_PLATFORM=y
CONFIG_SERIAL_8250=y
CONFIG_SERIAL_8250_CONSOLE=y
CONFIG_SERIAL_8250_DW=y
CONFIG_SERIAL_8250_NR_UARTS=5
CONFIG_SERIAL_8250_RUNTIME_UARTS=5
CONFIG_GPIOLIB=y
CONFIG_GPIO_SYSFS=y
CONFIG_GPIO_DWAPB=y
CONFIG_INPUT_EVDEV=y
#
# SYSTEM
#
CONFIG_TEE=y
CONFIG_OPTEE=y
CONFIG_STAGING=y
CONFIG_ANDROID=y
CONFIG_ION=y
CONFIG_ION_CARVEOUT_HEAP=y
CONFIG_ION_SYSTEM_HEAP=y
CONFIG_ION_CMA_HEAP=y
#
# KGDB/ FTRACE
#
CONFIG_HAVE_ARCH_KGDB=y
CONFIG_KGDB=y
CONFIG_KGDB_SERIAL_CONSOLE=y
CONFIG_TRACING=y
CONFIG_EVENT_TRACING=y
CONFIG_TRACING_SUPPORT=y
CONFIG_CONTEXT_SWITCH_TRACER=y
CONFIG_GENERIC_TRACER=y
CONFIG_NOP_TRACER=y
CONFIG_HAVE_FUNCTION_TRACER=y
CONFIG_HAVE_FUNCTION_GRAPH_TRACER=y
CONFIG_HAVE_DYNAMIC_FTRACE=y
CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
CONFIG_HAVE_SYSCALL_TRACEPOINTS=y
CONFIG_HAVE_C_RECORDMCOUNT=y
CONFIG_TRACER_MAX_TRACE=y
CONFIG_TRACE_CLOCK=y
CONFIG_FTRACE=y
CONFIG_FUNCTION_TRACER=y
CONFIG_FUNCTION_GRAPH_TRACER=y
CONFIG_IRQSOFF_TRACER=y
CONFIG_SCHED_TRACER=y
CONFIG_HWLAT_TRACER=y
CONFIG_FTRACE_SYSCALLS=y
CONFIG_TRACER_SNAPSHOT=y
CONFIG_TRACER_SNAPSHOT_PER_CPU_SWAP=y
CONFIG_BRANCH_PROFILE_NONE=y
CONFIG_STACK_TRACER=y
CONFIG_BLK_DEV_IO_TRACE=y
CONFIG_DYNAMIC_FTRACE=y
CONFIG_FUNCTION_PROFILER=y
CONFIG_FTRACE_MCOUNT_RECORD=y
#
# Debug
#
CONFIG_DYNAMIC_DEBUG=y
CONFIG_DEBUG_KERNEL=y
CONFIG_DEBUG_INFO=y
CONFIG_DEBUG_STACKOVERFLOW=y
CONFIG_DEBUG_STACK_USAGE=y
CONFIG_SLUB_DEBUG=y
CONFIG_DEBUG_SPINLOCK=y
CONFIG_DEBUG_MUTEXES=y
CONFIG_DEBUG_ATOMIC_SLEEP=y
CONFIG_DEBUG_LIST=y
CONFIG_SCHEDSTATS=y
CONFIG_SCHED_STACK_END_CHECK=y
CONFIG_FRAME_POINTER=y
#
# WiFi
#
CONFIG_WLAN=y
CONFIG_CFG80211=y
CONFIG_CFG80211_DEFAULT_PS=y
CONFIG_CFG80211_CRDA_SUPPORT=y
CONFIG_CFG80211_WEXT=y
CONFIG_MAC80211=y
CONFIG_MAC80211_HAS_RC=y
CONFIG_MAC80211_RC_MINSTREL=y
CONFIG_MAC80211_RC_MINSTREL_HT=y
CONFIG_MAC80211_RC_DEFAULT_MINSTREL=y
CONFIG_MAC80211_RC_DEFAULT="minstrel_ht"
#
# Clock framework
#
CONFIG_COMMON_CLK=y
CONFIG_COMMON_CLK_CVITEK=y
#
# Thermal
#
CONFIG_THERMAL=y
CONFIG_THERMAL_WRITABLE_TRIPS=y
CONFIG_THERMAL_EMULATION=y
CONFIG_CV1835_THERMAL=y
#
# OTHERS
#
CONFIG_HW_PERF_EVENTS=y
CONFIG_RCU_CPU_STALL_TIMEOUT=21
CONFIG_RING_BUFFER=y
CONFIG_RING_BUFFER_ALLOW_SWAP=y
CONFIG_CONSOLE_POLL=y
CONFIG_CV1835_SYSDMA_REMAP=y
CONFIG_OVERLAY_FS=y

View File

@ -0,0 +1,393 @@
#
# PLATFORM
#
CONFIG_SYSVIPC=y
CONFIG_POSIX_MQUEUE=y
CONFIG_FHANDLE=y
CONFIG_NO_HZ_IDLE=y
CONFIG_HIGH_RES_TIMERS=y
CONFIG_TASKSTATS=y
CONFIG_SCHED_AUTOGROUP=y
CONFIG_PROFILING=y
CONFIG_MODULES=y
CONFIG_MODULE_UNLOAD=y
CONFIG_MODULE_FORCE_LOAD=y
CONFIG_MODULE_FORCE_UNLOAD=y
CONFIG_BLK_DEV_BSGLIB=y
CONFIG_ARCH_CVITEK=y
CONFIG_ARCH_CVITEK_CHIP="cv952x"
CONFIG_ARCH_CV952X=y
CONFIG_ARCH_CV952X_ASIC=y
CONFIG_SMP=y
CONFIG_TRANSPARENT_HUGEPAGE=y
CONFIG_COMPAT=y
CONFIG_NET=y
CONFIG_PACKET=y
CONFIG_PACKET_DIAG=y
CONFIG_UNIX=y
CONFIG_INET=y
CONFIG_IP_MULTICAST=y
CONFIG_IP_PNP=y
CONFIG_NET_SCHED=y
CONFIG_DEVTMPFS=y
CONFIG_DEVTMPFS_MOUNT=y
CONFIG_BLK_DEV_SD=y
CONFIG_CHR_DEV_SG=y
CONFIG_CVITEK_PINCTRL_CV1835=y
CONFIG_PREEMPT=y
#
# NETWORK
#
CONFIG_NETDEVICES=y
CONFIG_ETHERNET=y
CONFIG_NET_VENDOR_STMICRO=y
CONFIG_STMMAC_ETH=y
CONFIG_STMMAC_PLATFORM=y
CONFIG_DWMAC_CVITEK=y
# CONFIG_NET_VENDOR_CVITEK is not set
CONFIG_REALTEK_PHY=y
CONFIG_SMSC_PHY=y
CONFIG_CVITEK_PHY=y
CONFIG_CVITEK_PHY_UAPS=y
# CONFIG_FIXED_PHY is not set
CONFIG_VLAN_8021Q=y
CONFIG_MACVLAN=y
CONFIG_BRIDGE=y
#
# FILE SYSTEM
#
CONFIG_HW_RANDOM=y
CONFIG_RTC_CLASS=y
CONFIG_EXT4_FS=y
CONFIG_EXT4_ENCRYPTION=y
CONFIG_EXT4_FS_ENCRYPTION=y
CONFIG_TMPFS=y
CONFIG_NFS_FS=y
CONFIG_ROOT_NFS=y
CONFIG_PRINTK_TIME=y
CONFIG_BLK_DEV_INITRD=y
CONFIG_SQUASHFS=y
CONFIG_SQUASHFS_LZ4=y
CONFIG_SQUASHFS_LZO=y
CONFIG_SQUASHFS_XZ=y
CONFIG_SQUASHFS_ZLIB=y
CONFIG_ENABLE_DEFAULT_TRACERS=y
CONFIG_FAT_FS=y
CONFIG_MSDOS_FS=y
CONFIG_VFAT_FS=y
CONFIG_FAT_DEFAULT_CODEPAGE=437
CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1"
CONFIG_PSTORE=y
CONFIG_PSTORE_ZLIB_COMPRESS=y
CONFIG_PSTORE_CONSOLE=y
CONFIG_PSTORE_PMSG=y
CONFIG_PSTORE_FTRACE=y
CONFIG_PSTORE_RAM=y
#
# STORAGE : SD/EMMC/NAND/NOR
#
CONFIG_MMC=y
CONFIG_MMC_BLOCK=y
CONFIG_MMC_BLOCK_MINORS=8
CONFIG_MMC_SDHCI=y
CONFIG_MMC_SDHCI_PLTFM=y
CONFIG_MMC_SDHCI_CVI=y
CONFIG_MTD=y
CONFIG_MTD_CHAR=y
CONFIG_MTD_BLOCK=y
CONFIG_MTD_NAND=y
CONFIG_MTD_NAND_IDS=y
CONFIG_MTD_NAND_PLATFORM=y
CONFIG_MTD_NAND_CVSNFC=y
CONFIG_MTD_NAND_CVSNFC_DT=y
CONFIG_MTD_CMDLINE_PARTS=y
CONFIG_MTD_TEST=m
CONFIG_MTD_UBI=y
CONFIG_UBIFS_FS=y
CONFIG_MTD_UBI_BLOCK=y
CONFIG_SPI=y
CONFIG_MTD_SPI_NOR=y
CONFIG_SPI_CVI_SPIF=y
CONFIG_JFFS2_FS=y
CONFIG_JFFS2_FS_WBUF_VERIFY=y
CONFIG_JFFS2_SUMMARY=y
CONFIG_JFFS2_FS_XATTR=y
CONFIG_JFFS2_COMPRESSION_OPTIONS=y
CONFIG_JFFS2_LZO=y
CONFIG_JFFS2_RUBIN=y
#
# USB
#
CONFIG_CMA=y
CONFIG_DMA_CMA=y
CONFIG_USB=y
CONFIG_USB_CVITEK_GADGET=m
CONFIG_USB_GADGET=y
CONFIG_U_SERIAL_CONSOLE=y
CONFIG_USB_CONFIGFS=m
CONFIG_USB_CONFIGFS_SERIAL=y
CONFIG_USB_CONFIGFS_ACM=y
CONFIG_USB_CONFIGFS_MASS_STORAGE=y
CONFIG_USB_CONFIGFS_RNDIS=y
CONFIG_USB_CONFIGFS_EEM=y
CONFIG_USB_CONFIGFS_ECM=y
CONFIG_USB_CONFIGFS_F_UVC=y
CONFIG_USB_CONFIGFS_F_UAC1=y
# CONFIG_USB_CONFIGFS_F_LB_SS is not set
# CONFIG_USB_CONFIGFS_F_FS is not set
# CONFIG_USB_G_SERIAL is not set
# CONFIG_USB_CONFIGFS_BCM is not set
CONFIG_USB_CONFIGFS_CVG=y
# usb otg
CONFIG_USB_OTG=y
CONFIG_USB_OTG_FSM=y
CONFIG_USB_CVITEK_DRD=m
# usb host storage
CONFIG_USB_XHCI_HCD=y
CONFIG_USB_XHCI_PLATFORM=y
CONFIG_SCSI=y
CONFIG_USB_STORAGE=y
#CONFIG_USB_STORAGE_DEBUG=y
CONFIG_USB_STORAGE_REALTEK=y
CONFIG_USB_STORAGE_DATAFAB=y
CONFIG_USB_STORAGE_FREECOM=y
CONFIG_USB_STORAGE_ISD200=y
CONFIG_USB_STORAGE_USBAT=y
CONFIG_USB_STORAGE_SDDR09=y
CONFIG_USB_STORAGE_SDDR55=y
CONFIG_USB_STORAGE_JUMPSHOT=y
CONFIG_USB_STORAGE_ALAUDA=y
CONFIG_USB_STORAGE_ONETOUCH=y
CONFIG_USB_STORAGE_KARMA=y
CONFIG_USB_STORAGE_CYPRESS_ATACB=y
CONFIG_USB_STORAGE_ENE_UB6250=y
CONFIG_USB_UAS=y
CONFIG_BLK_DEV_LOOP=y
CONFIG_EFIVAR_FS=n
CONFIG_CRYPTO_HW=n
CONFIG_CRYPTO_ECHAINIV=n
CONFIG_KEXEC=y
CONFIG_CRASH_DUMP=y
CONFIG_MAGIC_SYSRQ=y
CONFIG_NLS=y
CONFIG_NLS_DEFAULT="iso8859-1"
CONFIG_NLS_CODEPAGE_437=y
CONFIG_NLS_CODEPAGE_850=y
CONFIG_NLS_ISO8859_1=y
CONFIG_NLS_ISO8859_2=y
CONFIG_NLS_ISO8859_3=y
CONFIG_NLS_UTF8=y
CONFIG_CVITEK_NPU=y
CONFIG_RESET_CONTROLLER=y
CONFIG_RESET_CVITEK=y
CONFIG_DMADEVICES=y
CONFIG_DMA_ENGINE=y
CONFIG_DMA_OF=y
CONFIG_DW_DMAC_CVITEK=y
#
# AUDIO
#
CONFIG_SOUND=y
CONFIG_SND=y
CONFIG_SND_SOC=y
CONFIG_SND_CV1835_I2S=y
CONFIG_CV1835_I2S_SUBSYS=y
#CONFIG_SND_SOC_CV1835_CONCURRENT_I2S=y
CONFIG_SND_SOC_CV1835_USE_AUDIO_PLL=y
#
# AUDIO - ADAU1372 CODEC
#
#CONFIG_SND_SOC_ADAU1372=y
#CONFIG_SND_SOC_ADAU_UTILS=y
#CONFIG_SND_SOC_ADAU1372_I2C=y
#CONFIG_SND_SOC_CV1835_ADAU1372=y
#
# AUDIO - PDM
#
#CONFIG_SND_SOC_CV1835_CV1835PDM=y
#CONFIG_SND_SOC_CV1835PDM=y
#
# AUDIO - INTERNAL ADC AND DAC
#
CONFIG_SND_SOC_CV1835_CV1835ADC=y
CONFIG_SND_SOC_CV1835ADC=y
CONFIG_SND_SOC_CV1835_CV1835DAC=y
CONFIG_SND_SOC_CV1835DAC=y
#
# SPI drivers
#
# CONFIG_SPI_MASTER is not set
# CONFIG_SPI_DESIGNWARE is not set
# CONFIG_SPI_DW_MMIO is not set
# CONFIG_SPI_SPIDEV is not set
#
# VIDEO
#
# media/v4l2 support
CONFIG_I2C_MUX=y
CONFIG_MEDIA_CONTROLLER=y
CONFIG_MEDIA_SUPPORT=y
CONFIG_MEDIA_CAMERA_SUPPORT=y
CONFIG_VIDEO_DEV=y
CONFIG_VIDEO_V4L2=y
CONFIG_V4L2_MEM2MEM_DEV=y
CONFIG_V4L_PLATFORM_DRIVERS=y
CONFIG_SOC_CAMERA=y
CONFIG_VIDEO_V4L2_SUBDEV_API=y
CONFIG_MEDIA_USB_SUPPORT=y
CONFIG_V4L_MEM2MEM_DRIVERS=y
CONFIG_VIDEO_CVITEK=m
CONFIG_VIDEO_CVITEK_CIF=m
CONFIG_VIDEO_CVITEK_SNS_I2C=m
CONFIG_VIDEO_CVITEK_MIPI_TX=m
#
# Frame buffer Devices
#
CONFIG_FB=y
CONFIG_FB_CVITEK=m
#
# PM Suspend
#
CONFIG_PM_DEBUG=y
CONFIG_PM_TEST_SUSPEND=y
CONFIG_PM_ADVANCED_DEBUG=y
#
# PERIPHERAL
#
CONFIG_PWM=y
CONFIG_PWM_CVITEK=m
CONFIG_WATCHDOG=y
CONFIG_DW_WATCHDOG=m
CONFIG_I2C=y
CONFIG_I2C_CHARDEV=y
CONFIG_I2C_DESIGNWARE_CORE=y
CONFIG_I2C_DESIGNWARE_PLATFORM=y
CONFIG_SERIAL_8250=y
CONFIG_SERIAL_8250_CONSOLE=y
CONFIG_SERIAL_8250_DW=y
CONFIG_SERIAL_8250_NR_UARTS=5
CONFIG_SERIAL_8250_RUNTIME_UARTS=5
CONFIG_GPIOLIB=y
CONFIG_GPIO_SYSFS=y
CONFIG_GPIO_DWAPB=y
CONFIG_INPUT_EVDEV=y
#
# SYSTEM
#
CONFIG_TEE=y
CONFIG_OPTEE=y
CONFIG_STAGING=y
CONFIG_ANDROID=y
CONFIG_ION=y
CONFIG_ION_CARVEOUT_HEAP=y
CONFIG_ION_SYSTEM_HEAP=y
CONFIG_ION_CMA_HEAP=y
#
# KGDB/ FTRACE
#
CONFIG_HAVE_ARCH_KGDB=y
CONFIG_KGDB=y
CONFIG_KGDB_SERIAL_CONSOLE=y
CONFIG_TRACING=y
CONFIG_EVENT_TRACING=y
CONFIG_TRACING_SUPPORT=y
CONFIG_CONTEXT_SWITCH_TRACER=y
CONFIG_GENERIC_TRACER=y
CONFIG_NOP_TRACER=y
CONFIG_HAVE_FUNCTION_TRACER=y
CONFIG_HAVE_FUNCTION_GRAPH_TRACER=y
CONFIG_HAVE_DYNAMIC_FTRACE=y
CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
CONFIG_HAVE_SYSCALL_TRACEPOINTS=y
CONFIG_HAVE_C_RECORDMCOUNT=y
CONFIG_TRACER_MAX_TRACE=y
CONFIG_TRACE_CLOCK=y
CONFIG_FTRACE=y
CONFIG_FUNCTION_TRACER=y
CONFIG_FUNCTION_GRAPH_TRACER=y
CONFIG_IRQSOFF_TRACER=y
CONFIG_SCHED_TRACER=y
CONFIG_HWLAT_TRACER=y
CONFIG_FTRACE_SYSCALLS=y
CONFIG_TRACER_SNAPSHOT=y
CONFIG_TRACER_SNAPSHOT_PER_CPU_SWAP=y
CONFIG_BRANCH_PROFILE_NONE=y
CONFIG_STACK_TRACER=y
CONFIG_BLK_DEV_IO_TRACE=y
CONFIG_DYNAMIC_FTRACE=y
CONFIG_FUNCTION_PROFILER=y
CONFIG_FTRACE_MCOUNT_RECORD=y
#
# Debug
#
CONFIG_DYNAMIC_DEBUG=y
CONFIG_DEBUG_KERNEL=y
CONFIG_DEBUG_INFO=y
CONFIG_DEBUG_STACKOVERFLOW=y
CONFIG_DEBUG_STACK_USAGE=y
CONFIG_SLUB_DEBUG=y
CONFIG_DEBUG_SPINLOCK=y
CONFIG_DEBUG_MUTEXES=y
CONFIG_DEBUG_ATOMIC_SLEEP=y
CONFIG_DEBUG_LIST=y
CONFIG_SCHEDSTATS=y
CONFIG_SCHED_STACK_END_CHECK=y
CONFIG_FRAME_POINTER=y
#
# WiFi
#
CONFIG_WLAN=y
CONFIG_CFG80211=y
CONFIG_CFG80211_DEFAULT_PS=y
CONFIG_CFG80211_CRDA_SUPPORT=y
CONFIG_CFG80211_WEXT=y
CONFIG_MAC80211=y
CONFIG_MAC80211_HAS_RC=y
CONFIG_MAC80211_RC_MINSTREL=y
CONFIG_MAC80211_RC_MINSTREL_HT=y
CONFIG_MAC80211_RC_DEFAULT_MINSTREL=y
CONFIG_MAC80211_RC_DEFAULT="minstrel_ht"
#
# Clock framework
#
CONFIG_COMMON_CLK=y
CONFIG_COMMON_CLK_CVITEK=y
#
# Thermal
#
CONFIG_THERMAL=y
CONFIG_THERMAL_WRITABLE_TRIPS=y
CONFIG_THERMAL_EMULATION=y
CONFIG_CV1835_THERMAL=y
#
# OTHERS
#
CONFIG_HW_PERF_EVENTS=y
CONFIG_RCU_CPU_STALL_TIMEOUT=21
CONFIG_RING_BUFFER=y
CONFIG_RING_BUFFER_ALLOW_SWAP=y
CONFIG_CONSOLE_POLL=y
CONFIG_CV1835_SYSDMA_REMAP=y
CONFIG_OVERLAY_FS=y
CONFIG_RTC_DRV_PCF8563=y

View File

@ -157,6 +157,8 @@ extern void __cpuc_flush_dcache_area(void *, size_t);
* visible to the CPU. * visible to the CPU.
*/ */
extern void dmac_flush_range(const void *, const void *); extern void dmac_flush_range(const void *, const void *);
extern void __dma_map_area(const void *addr, size_t size, int dir);
extern void __dma_unmap_area(const void *addr, size_t size, int dir);
#endif #endif

View File

@ -156,6 +156,11 @@ static inline void nop_dma_unmap_area(const void *s, size_t l, int f) { }
#define __cpuc_flush_dcache_area __glue(_CACHE,_flush_kern_dcache_area) #define __cpuc_flush_dcache_area __glue(_CACHE,_flush_kern_dcache_area)
#define dmac_flush_range __glue(_CACHE,_dma_flush_range) #define dmac_flush_range __glue(_CACHE,_dma_flush_range)
#define dmac_map_area __glue(_CACHE, _dma_map_area)
#define dmac_unmap_area __glue(_CACHE, _dma_unmap_area)
#define __dma_map_area dmac_map_area
#define __dma_unmap_area dmac_unmap_area
#endif #endif
#endif #endif

View File

@ -0,0 +1,198 @@
config ARCH_CVITEK
bool "Cvitek SoC Family"
select ION_CVITEK
select SCHED_CVITEK
help
This enables support for Cvitek SoC family.
if ARCH_CVITEK
choice
prompt "Select the chip of SoC"
default ARCH_CV1835
help
Select the chip for SoC
config ARCH_CV1835
bool "Cvitek CV1835 SoC"
select PINCTRL
select PINCTRL_BM
select PINMUX
select PINCONF
select GENERIC_PINCONF
help
This enables support for Cvitek's CV1835
config ARCH_CV182X
bool "Cvitek CV182X SoC"
select PINCTRL
select PINCTRL_BM
select PINMUX
select PINCONF
select GENERIC_PINCONF
select ARM_GIC
select ARM_AMBA
select ARM_GIC_V3
help
This enables support for Cvitek's CV1822
config ARCH_CV181X
bool "Cvitek CV181X SoC"
select PINCTRL
select PINCTRL_BM
select PINMUX
select PINCONF
select GENERIC_PINCONF
select ARM_GIC
select ARM_AMBA
select ARM_GIC_V3
help
This enables support for Cvitek's CV181X
endchoice
if ARCH_CV1835
choice
prompt "Select the platform of SoC"
default ARCH_CV1835_FPGA
help
Select the platform of SoC
config ARCH_CV1835_PALLADIUM
bool "Cvitek CV1835 SoC - Palladium"
help
This enables support for Cvitek's CV1835 SoC on Palladium platform
config ARCH_CV1835_FPGA
bool "Cvitek CV1835 SoC - FPGA"
help
This enables support for Cvitek's CV1835 SoC on FPGA platform
config ARCH_CV1835_ASIC
bool "Cvitek CV1835 SoC- ASIC"
help
This enables support for Cvitek's CV1835 SoC ASIC
endchoice
endif # end ARCH_CV1835
if ARCH_CV1822
choice
prompt "Select the platform of SoC"
default ARCH_CV1822_FPGA
help
Select the platform of SoC
config ARCH_CV1822_PALLADIUM
bool "Cvitek CV1822 SoC - Palladium"
help
This enables support for Cvitek's CV1822 SoC on Palladium platform
config ARCH_CV1822_FPGA
bool "Cvitek CV1822 SoC - FPGA"
help
This enables support for Cvitek's CV1822 SoC on FPGA platform
config ARCH_CV1822_ASIC
bool "Cvitek CV1822 SoC- ASIC"
help
This enables support for Cvitek's CV1822 SoC ASIC
endchoice
endif # end ARCH_CV1822
if ARCH_CV182X
config ARCH_CVITEK_CHIP
string "cv182x"
help
This enables support for Cvitek CV182X series
choice
prompt "Select the platform of SoC"
default ARCH_CV182X_FPGA
help
Select the platform of SoC
config ARCH_CV182X_PALLADIUM
bool "Cvitek CV182X SoC - Palladium"
help
This enables support for Cvitek's CV182X SoC on Palladium platform
config ARCH_CV182X_FPGA
bool "Cvitek CV182X SoC - FPGA"
help
This enables support for Cvitek's CV182X SoC on FPGA platform
config ARCH_CV182X_ASIC
bool "Cvitek CV182X SoC- ASIC"
help
This enables support for Cvitek's CV182X SoC ASIC
endchoice
endif # end ARCH_CV182X
if ARCH_CV183X
config ARCH_CVITEK_CHIP
string "cv183x"
help
This enables support for Cvitek CV183X series
choice
prompt "Select the platform of SoC"
default ARCH_CV183X_ASIC
help
Select the platform of SoC
config ARCH_CV183X_PALLADIUM
bool "Cvitek CV183X SoC - Palladium"
help
This enables support for Cvitek's CV183X SoC on Palladium platform
config ARCH_CV183X_FPGA
bool "Cvitek CV183X SoC - FPGA"
help
This enables support for Cvitek's CV183X SoC on FPGA platform
config ARCH_CV183X_ASIC
bool "Cvitek CV183X SoC- ASIC"
help
This enables support for Cvitek's CV183X SoC ASIC
endchoice
endif # end ARCH_CV183X
if ARCH_CV181X
config ARCH_CVITEK_CHIP
string "cv181x"
help
This enables support for Cvitek CV181X series
choice
prompt "Select the platform of SoC"
default ARCH_CV181X_FPGA
help
Select the platform of SoC
FPGA
PALLADIUM
ASIC
config ARCH_CV181X_PALLADIUM
bool "Cvitek CV181X SoC - Palladium"
help
This enables support for Cvitek's CV181X SoC on Palladium platform
config ARCH_CV181X_FPGA
bool "Cvitek CV182X SoC - FPGA"
help
This enables support for Cvitek's CV181X SoC on FPGA platform
config ARCH_CV181X_ASIC
bool "Cvitek CV181X SoC- ASIC"
help
This enables support for Cvitek's CV181X SoC ASIC
endchoice
endif # end ARCH_CV181X
endif # end ARCH_CVITEK

View File

@ -0,0 +1 @@
obj-y := cvitek.o

View File

@ -0,0 +1,40 @@
// SPDX-License-Identifier: GPL-2.0
/* cvitek.c - cvitek machine
*
* Copyright (c) 2019 Cvitek Ltd.
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*/
#include <asm/mach/arch.h>
#include <asm/mach/map.h>
#include <asm/system_info.h>
#define CVI_PLAT_GP_REG_BASE 0x3000080
#define CVI_PLAT_GP_REG3 0xc
static void __init cv182x_init_late(void)
{
void __iomem *plat_info = ioremap(CVI_PLAT_GP_REG_BASE, SZ_4K);
system_rev = __raw_readw(plat_info + CVI_PLAT_GP_REG3);
iounmap(plat_info);
}
static const char *const cv182x_compat[] __initconst = {
"cvitek,cv182x",
NULL,
};
DT_MACHINE_START(cv182x, "Cvitek cv182x (Flattened Device Tree)")
.dt_compat = cv182x_compat,
.init_late = cv182x_init_late,
MACHINE_END

View File

@ -13,6 +13,7 @@
#include <asm/errno.h> #include <asm/errno.h>
#include <asm/unwind.h> #include <asm/unwind.h>
#include <asm/hardware/cache-b15-rac.h> #include <asm/hardware/cache-b15-rac.h>
#include <asm-generic/export.h>
#include "proc-macros.S" #include "proc-macros.S"
@ -444,6 +445,7 @@ ENTRY(v7_dma_map_area)
beq v7_dma_inv_range beq v7_dma_inv_range
b v7_dma_clean_range b v7_dma_clean_range
ENDPROC(v7_dma_map_area) ENDPROC(v7_dma_map_area)
EXPORT_SYMBOL(v7_dma_map_area)
/* /*
* dma_unmap_area(start, size, dir) * dma_unmap_area(start, size, dir)

View File

@ -326,4 +326,184 @@ config ARCH_ZYNQMP
help help
This enables support for Xilinx ZynqMP Family This enables support for Xilinx ZynqMP Family
config ARCH_CVITEK
bool "Cvitek SoC Family"
select ION_CVITEK
select SCHED_CVIOPTIMIZE
help
This enables support for Cvitek SoC family.
if ARCH_CVITEK
choice
prompt "Select the chip of SoC"
default ARCH_CV183X
help
Select the chip for SoC
config ARCH_CV183X
bool "Cvitek CV183X SoC"
select PINCTRL
select PINCTRL_BM
select PINMUX
select PINCONF
select GENERIC_PINCONF
help
This enables support for Cvitek's CV183X
config ARCH_CV182X
bool "Cvitek CV182X SoC"
select PINCTRL
select PINCTRL_BM
select PINMUX
select PINCONF
select GENERIC_PINCONF
help
This enables support for Cvitek's CV182X
config ARCH_CV181X
bool "Cvitek CV181X SoC"
select PINCTRL
select PINCTRL_BM
select PINMUX
select PINCONF
select GENERIC_PINCONF
help
This enables support for Cvitek's CV181X
config ARCH_CV952X
bool "Cvitek CV952X SoC"
select PINCTRL
select PINCTRL_BM
select PINMUX
select PINCONF
select GENERIC_PINCONF
help
This enables support for Cvitek's CV952X
endchoice
endif # end ARCH_CVITEK
if ARCH_CV182X
config ARCH_CVITEK_CHIP
string "cv182x"
help
This enables support for Cvitek CV182X series
choice
prompt "Select the platform of SoC"
default ARCH_CV182X_FPGA
help
Select the platform of SoC
config ARCH_CV182X_PALLADIUM
bool "Cvitek CV182X SoC - Palladium"
help
This enables support for Cvitek's CV182X SoC on Palladium platform
config ARCH_CV182X_FPGA
bool "Cvitek CV182X SoC - FPGA"
help
This enables support for Cvitek's CV182X SoC on FPGA platform
config ARCH_CV182X_ASIC
bool "Cvitek CV182X SoC- ASIC"
help
This enables support for Cvitek's CV182X SoC ASIC
endchoice
endif # end ARCH_CV182X
if ARCH_CV183X
config ARCH_CVITEK_CHIP
string "cv183x"
help
This enables support for Cvitek CV183X series
choice
prompt "Select the platform of SoC"
default ARCH_CV183X_ASIC
help
Select the platform of SoC
config ARCH_CV183X_PALLADIUM
bool "Cvitek CV183X SoC - Palladium"
help
This enables support for Cvitek's CV183X SoC on Palladium platform
config ARCH_CV183X_FPGA
bool "Cvitek CV183X SoC - FPGA"
help
This enables support for Cvitek's CV183X SoC on FPGA platform
config ARCH_CV183X_ASIC
bool "Cvitek CV183X SoC- ASIC"
help
This enables support for Cvitek's CV183X SoC ASIC
endchoice
endif # end ARCH_CV183X
if ARCH_CV181X
config ARCH_CVITEK_CHIP
string "cv181x"
help
This enables support for Cvitek CV181X series
choice
prompt "Select the platform of SoC"
default ARCH_CV181X_FPGA
help
Select the platform of SoC
FPGA
PALLADIUM
ASIC
config ARCH_CV181X_PALLADIUM
bool "Cvitek CV181X SoC - Palladium"
help
This enables support for Cvitek's CV181X SoC on Palladium platform
config ARCH_CV181X_FPGA
bool "Cvitek CV182X SoC - FPGA"
help
This enables support for Cvitek's CV181X SoC on FPGA platform
config ARCH_CV181X_ASIC
bool "Cvitek CV181X SoC- ASIC"
help
This enables support for Cvitek's CV181X SoC ASIC
endchoice
endif # end ARCH_CV181X
if ARCH_CV952X
config ARCH_CVITEK_CHIP
string "cv952x"
help
This enables support for Cvitek CV952X series
choice
prompt "Select the platform of SoC"
default ARCH_CV952X_ASIC
help
Select the platform of SoC
config ARCH_CV952X_PALLADIUM
bool "Cvitek CV952X SoC - Palladium"
help
This enables support for Cvitek's CV952X SoC on Palladium platform
config ARCH_CV952X_FPGA
bool "Cvitek CV952X SoC - FPGA"
help
This enables support for Cvitek's CV952X SoC on FPGA platform
config ARCH_CV952X_ASIC
bool "Cvitek CV952X SoC- ASIC"
help
This enables support for Cvitek's CV952X SoC ASIC
endchoice
endif # end ARCH_CV952X
endmenu endmenu

View File

@ -30,3 +30,4 @@ subdir-y += ti
subdir-y += toshiba subdir-y += toshiba
subdir-y += xilinx subdir-y += xilinx
subdir-y += zte subdir-y += zte
subdir-y += cvitek

Some files were not shown because too many files have changed in this diff Show More