Jump to content

Allwinner V3 camera kernel start stuck


Wic

Recommended Posts

Trying to run mainline kernel on allwiner V3. U-boot: compiled and successfuly runs with some patches. 

After starting u-boot, I'm loading dtb and kernel into memory and trying to boot the kernel, but nothing happens.

I need any help to solve a this issue.

 

Скрытый текст
diff --git a/arch/arm/dts/Makefile b/arch/arm/dts/Makefile
index 43951a7731..af7d16076a 100644
--- a/arch/arm/dts/Makefile
+++ b/arch/arm/dts/Makefile
@@ -693,6 +693,7 @@ dtb-$(CONFIG_MACH_SUN8I_V3S) += \
 	sun8i-s3-elimo-initium.dtb \
 	sun8i-s3-pinecube.dtb \
 	sun8i-v3-sl631-imx179.dtb \
+	sun8i-v3-dv8000-imx179.dtb \
 	sun8i-v3s-licheepi-zero.dtb
 dtb-$(CONFIG_MACH_SUN50I_H5) += \
 	sun50i-h5-bananapi-m2-plus.dtb \
diff --git a/arch/arm/dts/sun8i-v3s.dtsi b/arch/arm/dts/sun8i-v3s.dtsi
index db194c606f..c5098668af 100644
--- a/arch/arm/dts/sun8i-v3s.dtsi
+++ b/arch/arm/dts/sun8i-v3s.dtsi
@@ -71,7 +71,7 @@
 		#address-cells = <1>;
 		#size-cells = <0>;
 
-		cpu@0 {
+		cpu0: cpu@0 {
 			compatible = "arm,cortex-a7";
 			device_type = "cpu";
 			reg = <0>;
diff --git a/arch/arm/include/asm/arch-sunxi/gpio.h b/arch/arm/include/asm/arch-sunxi/gpio.h
index 437e86479c..b6297d50c4 100644
--- a/arch/arm/include/asm/arch-sunxi/gpio.h
+++ b/arch/arm/include/asm/arch-sunxi/gpio.h
@@ -149,6 +149,7 @@ enum sunxi_gpio_number {
 #define SUN8I_A33_GPB_UART0	3
 #define SUN8I_A83T_GPB_UART0	2
 #define SUN8I_V3S_GPB_UART0	3
+#define SUN8I_V3S_GPG_UART1	2
 #define SUN50I_GPB_UART0	4
 
 #define SUNXI_GPC_NAND		2
diff --git a/arch/arm/mach-sunxi/board.c b/arch/arm/mach-sunxi/board.c
index 86233637bf..9cb11579ec 100644
--- a/arch/arm/mach-sunxi/board.c
+++ b/arch/arm/mach-sunxi/board.c
@@ -143,6 +143,10 @@ static int gpio_init(void)
 	sunxi_gpio_set_cfgpin(SUNXI_GPB(8), SUN8I_V3S_GPB_UART0);
 	sunxi_gpio_set_cfgpin(SUNXI_GPB(9), SUN8I_V3S_GPB_UART0);
 	sunxi_gpio_set_pull(SUNXI_GPB(9), SUNXI_GPIO_PULL_UP);
+#elif CONFIG_CONS_INDEX == 2 && defined(CONFIG_MACH_SUN8I_V3S)
+	sunxi_gpio_set_cfgpin(SUNXI_GPG(6), SUN8I_V3S_GPG_UART1);
+	sunxi_gpio_set_cfgpin(SUNXI_GPG(7), SUN8I_V3S_GPG_UART1);
+	sunxi_gpio_set_pull(SUNXI_GPG(7), SUNXI_GPIO_PULL_UP);
 #elif CONFIG_CONS_INDEX == 1 && defined(CONFIG_MACH_SUN9I)
 	sunxi_gpio_set_cfgpin(SUNXI_GPH(12), SUN9I_GPH_UART0);
 	sunxi_gpio_set_cfgpin(SUNXI_GPH(13), SUN9I_GPH_UART0);

 

sun8i_v3_dv8000_imx179_defconfig:

Скрытый текст

CONFIG_ARM=y
CONFIG_ARCH_SUNXI=y
CONFIG_DEFAULT_DEVICE_TREE="sun8i-v3-dv8000-imx179"
CONFIG_SPL=y
CONFIG_MACH_SUN8I_V3S=y
CONFIG_SUNXI_DRAM_DDR3=y
CONFIG_SUNXI_DRAM_DDR3_1333=y
CONFIG_DRAM_ODT_EN=y
CONFIG_DRAM_CLK=648
CONFIG_CMD_BOOTMENU=y

CONFIG_CONS_INDEX=2

 

sun8i-v3-dv8000-imx179.dts

Скрытый текст

// SPDX-License-Identifier: (GPL-2.0+ OR X11)
#include "sun8i-v3-sl631.dtsi"

/ {
    model = "DV8000 Action Camera with IMX179";
    compatible = "allwinner,dv8000-imx179", "allwinner,dv8000",
             "allwinner,sun8i-v3";

    aliases {
        serial0 = &uart0;
    };

    cpu0_opp_table: opp-table-cpu {
        compatible = "operating-points-v2";
        opp-shared;

        opp-120000000 {
            opp-hz = /bits/ 64 <120000000>;
            opp-microvolt = <1040000>;
            clock-latency-ns = <244144>; /* 8 32k periods */
        };

        opp-240000000 {
            opp-hz = /bits/ 64 <240000000>;
            opp-microvolt = <1040000>;
            clock-latency-ns = <244144>; /* 8 32k periods */
        };

        opp-312000000 {
            opp-hz = /bits/ 64 <312000000>;
            opp-microvolt = <1040000>;
            clock-latency-ns = <244144>; /* 8 32k periods */
        };

        opp-408000000 {
            opp-hz = /bits/ 64 <408000000>;
            opp-microvolt = <1040000>;
            clock-latency-ns = <244144>; /* 8 32k periods */
        };

        opp-480000000 {
            opp-hz = /bits/ 64 <480000000>;
            opp-microvolt = <1040000>;
            clock-latency-ns = <244144>; /* 8 32k periods */
        };

        opp-504000000 {
            opp-hz = /bits/ 64 <504000000>;
            opp-microvolt = <1040000>;
            clock-latency-ns = <244144>; /* 8 32k periods */
        };

        opp-600000000 {
            opp-hz = /bits/ 64 <600000000>;
            opp-microvolt = <1040000>;
            clock-latency-ns = <244144>; /* 8 32k periods */
        };

        opp-648000000 {
            opp-hz = /bits/ 64 <648000000>;
            opp-microvolt = <1040000>;
            clock-latency-ns = <244144>; /* 8 32k periods */
        };

        opp-720000000 {
            opp-hz = /bits/ 64 <720000000>;
            opp-microvolt = <1100000>;
            clock-latency-ns = <244144>; /* 8 32k periods */
        };

        opp-816000000 {
            opp-hz = /bits/ 64 <816000000>;
            opp-microvolt = <1100000>;
            clock-latency-ns = <244144>; /* 8 32k periods */
        };

        opp-912000000 {
            opp-hz = /bits/ 64 <912000000>;
            opp-microvolt = <1200000>;
            clock-latency-ns = <244144>; /* 8 32k periods */
        };

        opp-1008000000 {
            opp-hz = /bits/ 64 <1008000000>;
            opp-microvolt = <1200000>;
            clock-latency-ns = <244144>; /* 8 32k periods */
        };
    };
};

&cpu0 {
    clock-names = "cpu";
    operating-points-v2 = <&cpu0_opp_table>;
    cpu-supply = <&reg_dcdc3>;
};

&reg_dcdc2 {
    regulator-min-microvolt = <1040000>;
    regulator-max-microvolt = <1220000>;
};
 

 

Run log

Скрытый текст

U-Boot SPL 2023.01-rc2 (Dec 08 2022 - 13:37:53 +0000)
DRAM: 256 MiB
Trying to boot from MMC1


U-Boot 2023.01-rc2 (Dec 08 2022 - 13:37:53 +0000) Allwinner Technology

CPU:   Allwinner V3s (SUN8I 1681)
Model: DV8000 Action Camera with IMX179
DRAM:  256 MiB
Core:  35 devices, 14 uclasses, devicetree: separate
WDT:   Not starting watchdog@1c20ca0
MMC:   mmc@1c0f000: 0
Loading Environment from FAT... Unable to read "uboot.env" from mmc0:1... 
In:    serial@1c28400
Out:   serial@1c28400
Err:   serial@1c28400
Net:   No ethernet found.
Hit any key to stop autoboot:  2 0 

=> load mmc 0:1 0x41B00000 sun8i-v3-dv8000-imx179.dtb
17512 bytes read in 3 ms (5.6 MiB/s)
=> load mmc 0:1 $kernel_addr_r zImage
7864832 bytes read in 406 ms (18.5 MiB/s)
=> setenv bootargs console=${console} root=a9ec8e12-0934-4d8a-8cd0-1c8ed5535b48 earlyprintk=serial,ttyS0,115200
=> bootz $kernel_addr_r - 0x41B00000     
Kernel image @ 0x41000000 [ 0x000000 - 0x780200 ]
## Flattened Device Tree blob at 41b00000
   Booting using the fdt blob at 0x41b00000
Working FDT set to 41b00000
   Loading Device Tree to 42df8000, end 42dff467 ... OK
Working FDT set to 42df8000

Starting kernel ...

 

zImage - kernel from Armbian_22.11.0-trunk_Pinecube_kinetic_edge_6.0.10_minimal.img

i've tried kernels from armbian/debian/archarm without success.

I've tried to run kernel compiled with CONFIG_DEBUG_LL=y and CONFIG_DEBUG_SUNXI_UART1=y, but nothing changes. 

Скрытый текст

U-Boot SPL 2023.01-rc2 (Dec 08 2022 - 13:37:53 +0000)
DRAM: 256 MiB
Trying to boot from MMC1


U-Boot 2023.01-rc2 (Dec 08 2022 - 13:37:53 +0000) Allwinner Technology

CPU:   Allwinner V3s (SUN8I 1681)
Model: DV8000 Action Camera with IMX179
DRAM:  256 MiB
Core:  35 devices, 14 uclasses, devicetree: separate
WDT:   Not starting watchdog@1c20ca0
MMC:   mmc@1c0f000: 0
Loading Environment from FAT... Unable to read "uboot.env" from mmc0:1... 
In:    serial@1c28400
Out:   serial@1c28400
Err:   serial@1c28400
Net:   No ethernet found.
Hit any key to stop autoboot:  2 1 0 
=> load mmc 0:1 0x41B00000 sun8i-v3-dv8000-imx179.dtb
17512 bytes read in 2 ms (8.4 MiB/s)
=> load mmc 0:1 $kernel_addr_r zImage
8603912 bytes read in 445 ms (18.4 MiB/s)
=> setenv bootargs console=${console} root=a9ec8e12-0934-4d8a-8cd0-1c8ed5535b48 earlyprintk=serial,ttyS0,115200
=> bootz $kernel_addr_r - 0x41B00000
Kernel image @ 0x41000000 [ 0x000000 - 0x834908 ]
## Flattened Device Tree blob at 41b00000
   Booting using the fdt blob at 0x41b00000
Working FDT set to 41b00000
   Loading Device Tree to 42df8000, end 42dff467 ... OK
Working FDT set to 42df8000

Starting kernel ...

 

Device info. Also I can upload nor-flash backup, if someone needs it.

nor-flash android start log

Скрытый текст

U-Boot 2011.09-rc1-dirty (Nov 02 2020 - 21:57:11) Allwinner Technology

[      0.101]version: 1.1.0
[      0.103]uboot commit : 2bee0c86579f3360f742b7466afe6cac5d21e326
 
ready
set power on vol to default
vbus pc exist, limit to pc
no key input
dram_para_set start
dram_para_set end
sunxi spinor is initing...OK
In:    Out:   Err:   
read boot or recovery all
[    0.000000] Booting Linux on physical CPU 0
[    0.000000] Linux version 3.4.39 (boss@boss-MS-7A70) (gcc version 4.6.3 20120201 (prerelease) (crosstool-NG linaro-1.13.1-2012.02-20120222 - Linaro GCC 2012.02) ) #331 Sat Apr 24 16:56:21 CST 2021
[    0.000000] CPU: ARMv7 Processor [410fc075] revision 5 (ARMv7), cr=10c5387d
[    0.000000] CPU: PIPT / VIPT nonaliasing data cache, VIPT aliasing instruction cache
[    0.000000] Machine: sun8i
[    0.000000] Ignoring unrecognised tag 0x00000000
[    0.000000] Initialized persistent memory from 41d20800-41d307ff
[    0.000000] Memory policy: ECC disabled, Data cache writeback
[    0.000000] On node 0 totalpages: 65536
[    0.000000] free_area_init_node: node 0, pgdat c04b782c, node_mem_map c0552000
[    0.000000]   Normal zone: 512 pages used for memmap
[    0.000000]   Normal zone: 0 pages reserved
[    0.000000]   Normal zone: 65024 pages, LIFO batch:15
[    0.000000] script_init enter!
[    0.000000] script_init exit!
[    0.000000] pcpu-alloc: s0 r0 d32768 u32768 alloc=1*32768
[    0.000000] pcpu-alloc: [0] 0 
[    0.000000] Built 1 zonelists in Zone order, mobility grouping on.  Total pages: 65024
[    0.000000] Kernel command line: console=ttyS0,115200 root=/dev/nor1 init=/init loglevel=8 partitions=boot@spinorp0:system@spinorp1:cfg@spinorp2:boot_logo@spinorp3:shutdown_logo@spinorp4:env@spinorp5:private@spinorp6:UDISK@spinorp7 mac_addr= uid=8882f574-3e53-45 kmemleak=on boot_type=3 fb_base=0x41b00000 config_size=38092
[    0.000000] PID hash table entries: 1024 (order: 0, 4096 bytes)
[    0.000000] Dentry cache hash table entries: 32768 (order: 5, 131072 bytes)
[    0.000000] Inode-cache hash table entries: 16384 (order: 4, 65536 bytes)
[    0.000000] Memory: 256MB = 256MB total
[    0.000000] Memory: 161848k/161848k available, 100296k reserved, 0K highmem
[    0.000000] Virtual kernel memory layout:
[    0.000000]     vector  : 0xffff0000 - 0xffff1000   (   4 kB)
[    0.000000]     fixmap  : 0xfff00000 - 0xfffe0000   ( 896 kB)
[    0.000000]     vmalloc : 0xd0800000 - 0xff000000   ( 744 MB)
[    0.000000]     lowmem  : 0xc0000000 - 0xd0000000   ( 256 MB)
[    0.000000]     modules : 0xbf000000 - 0xc0000000   (  16 MB)
[    0.000000]       .text : 0xc0008000 - 0xc0453000   (4396 kB)
[    0.000000]       .init : 0xc0453000 - 0xc0476000   ( 140 kB)
[    0.000000]       .data : 0xc0476000 - 0xc04b7f40   ( 264 kB)
[    0.000000]        .bss : 0xc04b7f64 - 0xc05510d8   ( 613 kB)
[    0.000000] NR_IRQS:544
[    0.000000] 524 ahb1 set parent pll_periph0d2
[    0.000000] Architected local timer running at 24.00MHz.
[    0.000000] Switching to timer-based delay loop
[    0.000000] sched_clock: 32 bits at 24MHz, resolution 41ns, wraps every 178956ms
[    0.000000] Console: colour dummy device 80x30
[    0.000125] Calibrating delay loop (skipped), value calculated using timer frequency.. 4800.00 BogoMIPS (lpj=24000000)
[    0.000144] pid_max: default: 32768 minimum: 301
[    0.000266] Mount-cache hash table entries: 512
[    0.000691] CPU: Testing write buffer coherency: ok
[    0.000883] Setting up static identity map for 0x40344cc8 - 0x40344cfc
[    0.001406] devtmpfs: initialized
[    0.002819] VFP support v0.3: implementor 41 architecture 2 part 30 variant 7 rev 5
[    0.002943] pinctrl core: initialized pinctrl subsystem
[    0.003292] NET: Registered protocol family 16
[    0.003578] DMA: preallocated 128 KiB pool for atomic coherent allocations
[    0.003615] script_sysfs_init success
[    0.003642] sunxi_dump_init success
[    0.004289] gpiochip_add: registered GPIOs 0 to 223 on device: sunxi-pinctrl
[    0.005373] sunxi-pinctrl sunxi-pinctrl: initialized sunXi PIO driver
[    0.005648] gpiochip_add: registered GPIOs 1024 to 1031 on device: axp-pinctrl
[    0.006338] persistent_ram: uncorrectable error in header
[    0.006351] persistent_ram: no valid data in buffer (sig = 0xeea7ffe7)
[    0.011459] console [ram-1] enabled
[    0.011766] [sunxi-module]: [sunxi-module.0] probe success
[    0.011996] axp driver uning configuration failed(839)
[    0.012073] axp driver uning configuration failed(845)
[    0.012204] axp driver uning configuration failed(851)
[    0.012277] axp driver uning configuration failed(858)
[    0.012508] script config pll_isp to 480 Mhz
[    0.012600] Not Found clk pll_video in script 
[    0.012678] script config pll_ve to 480 Mhz
[    0.012818] Not Found clk pll_periph0 in script 
[    0.012891] Not Found clk pll_de in script 
[    0.013019] sunxi_default_clk_init
[    0.013089] try to set pll6ahb1 to 200000000
[    0.013162] Error not get clk pll6ahb1
[    0.013295] Error not get clk pll6ahb1try to set ahb1 to 200000000
[    0.013441] try to set apb1 to 100000000
[    0.013716] ===fe3o4==== sunxi_root_procfs_attach ret:0
[    0.016468] bio: create slab <bio-0> at 0
[    0.016754] pwm module init!
[    0.017073] get pwm0 gpio list fail!
[    0.018198] usbcore: registered new interface driver usbfs
[    0.018334] usbcore: registered new interface driver hub
[    0.018557] usbcore: registered new device driver usb
[    0.018747] twi_chan_cfg()341 - [twi0] has no twi_speed!
[    0.018882] twi_chan_cfg()352 - [twi0] has no twi_regulator.
[    0.018958] twi_chan_cfg()341 - [twi1] has no twi_speed!
[    0.019090] twi_chan_cfg()352 - [twi1] has no twi_regulator.
[    0.020124] axp20_board 0-0034: AXP (CHIP ID: 0x41) detected
[    0.020867] Linux video capture interface: v2.00
[    0.021215] gpiochip_add: gpios 1024..1028 (axp_pin) failed to register
[    0.021215] axp pinctrl used,skip
[    0.021215] Advanced Linux Sound Architecture Driver Version 1.0.25.
[    0.021218] cfg80211: Calling CRDA to update world regulatory domain
[    0.021651] Switching to clocksource arch_sys_counter
[    0.025059] NET: Registered protocol family 2
[    0.025410] IP route cache hash table entries: 2048 (order: 1, 8192 bytes)
[    0.025858] TCP established hash table entries: 8192 (order: 4, 65536 bytes)
[    0.026116] TCP bind hash table entries: 8192 (order: 3, 32768 bytes)
[    0.026308] TCP: Hash tables configured (established 8192 bind 8192)
[    0.026382] TCP: reno registered
[    0.026456] UDP hash table entries: 256 (order: 0, 4096 bytes)
[    0.026596] UDP-Lite hash table entries: 256 (order: 0, 4096 bytes)
[    0.026956] NET: Registered protocol family 1
[    0.027196] Unpacking initramfs...
[    0.040986] Freeing initrd memory: 224K
[    0.041289] sunxi_reg_init enter
[    0.042720] squashfs: version 4.0 (2009/01/31) Phillip Lougher
[    0.042839] jffs2: version 2.2. (NAND) (SUMMARY)  © 2001-2006 Red Hat, Inc.
[    0.043131] msgmni has been set to 316
[    0.043949] io scheduler noop registered
[    0.044089] io scheduler deadline registered
[    0.044219] io scheduler cfq registered (default)
[    0.044294] [DISP]disp_module_init
[    0.044732] cmdline,disp=
[    0.045259] disp_init_rotation_sw
[    0.045353] @@@rot-degree=1, scn_size[320,240]
[    0.045523] disp_rot_sw_set_manager,1246
[    0.054691] rot_degree =1, w=320, h=240
[    0.069899] [DISP] disp_sys_gpio_set_value,line:374:OSAL_GPIO_DevWRITE_ONEPIN_DATA, hdl is NULL
[    0.070526] [DISP]disp_module_init finish
[    0.070793] sw_uart_get_devinfo()1503 - uart1 has no uart_regulator.
[    0.071228] uart1: ttyS0 at MMIO 0x1c28400 (irq = 33) is a SUNXI
[    0.071370] sw_uart_pm()890 - uart1 clk is already enable
[    0.071452] sw_console_setup()1233 - console setup baud 115200 parity n bits 8, flow n
[    0.263854] console [ttyS0] enabled
[    0.815647] sunxi_spi_chan_cfg()1376 - [spi-0] has no spi_regulator.
[    0.823269] spi spi0: master is unqueued, this is deprecated
[    0.829816] NorFlash ID:  12018-4d01
[    0.833892] m25p80 spi0.0: s25fl129p1 (16384 Kbytes)
[    0.842285] @@@[debug_jaosn]: Invalid partitions count: 4 9
[    0.848901] Creating 8 MTD partitions on "(null)":
[    0.854386] 0x000000000000-0x000000040000 : "uboot"
[    0.860503] 0x000000040000-0x0000002c0000 : "boot"
[    0.866395] 0x0000002c0000-0x000000740000 : "system"
[    0.872530] 0x000000740000-0x000000790000 : "cfg"
[    0.878306] 0x000000790000-0x0000007a0000 : "boot_logo"
[    0.884745] 0x0000007a0000-0x0000007b0000 : "shutdown_logo"
[    0.891510] 0x0000007b0000-0x0000007c0000 : "env"
[    0.897327] 0x0000007c0000-0x0000007d0000 : "private"
[    0.903753] file system registered
[    0.908447] android_usb gadget: Mass Storage Function, version: 2009/09/11
[    0.916253] android_usb gadget: Number of LUNs=1
[    0.921461] [fangjianjun]:this is for lcd_panel_ili9335_inittest +++++++++++++
[    0.929607]  lun0: LUN: removable file: (no medium)
[    0.935415] android_usb gadget: android_usb ready
[    0.940753] sunxikbd_script_init: key para not found, used default para. 
[    0.949492] sunxi-rtc sunxi-rtc: rtc core: registered sunxi-rtc as rtc0
[    0.957050] sunxi cedar version 0.1 
[    0.961129] [cedar]: install start!!!
[    0.965470] [cedar]: install end!!!
[    0.975828] pmu_pekoff_time = 6000
[    0.979673] pmu_pekoff_en = 1
[    0.983100] pmu_peklong_time = 1500
[    0.987030] pmu_pekon_time = 1000
[    0.990773] pmu_pwrok_time = 64
[    0.994374] pmu_pwrnoe_time = 2000
[    0.998204] pmu_hot_shutdown = 1
[    1.002695] POWER20_PEK_SET:2234-->0x9d
[    1.007431] POWER20_PEK_SET:2245-->0x9d
[    1.012227] POWER20_PEK_SET:2254-->0x9d
[    1.016957] POWER20_PEK_SET:2265-->0x9d
[    1.027271] POWER20_PEK_SET:2277-->0x9d
[    1.032074] POWER20_HOTOVER_CTL:2286-->0x2d
[    1.044177] step1 : gsensor_fetch_sysconfig_para
[    1.049434] step2 : gsensor_fetch_sysconfig_para
[    1.054656] step3 : gsensor_fetch_sysconfig_para
[    1.059840] step4 : mir3da_init
[    1.063578] i2c-core: driver [da380] using legacy suspend method
[    1.070328] i2c-core: driver [da380] using legacy resume method
[    1.077026]  richard mir3da_detect: mir3da_detect:bus[0] addr[0x27]
[    1.084055]  richard mir3da_detect: mir3da_detect:bus[1] addr[0x27]
[    1.096329] sunxi_i2c_do_xfer()997 - [i2c1] incomplete xfer (status: 0x20, dev addr: 0x27)
[    1.110808] sunxi_i2c_do_xfer()997 - [i2c1] incomplete xfer (status: 0x20, dev addr: 0x27)
[    1.125226] sunxi_i2c_do_xfer()997 - [i2c1] incomplete xfer (status: 0x20, dev addr: 0x27)
[    1.134524] [MIR3DA] Can't find Mir3da gsensor!!
[    1.139712] sunxi_wdt_init_module: sunxi WatchDog Timer Driver v1.0
[    1.146945] sunxi_wdt_probe: devm_ioremap return wdt_reg 0xf1c20ca0, res->start 0x01c20ca0, res->end 0x01c20cbf
[    1.158224] sunxi_wdt_probe: initialized (g_timeout=16s, g_nowayout=0)
[    1.165816] wdt_enable, write reg 0xf1c20cb8 val 0x00000000
[    1.172130] wdt_set_tmout, write 0x000000b0 to mode reg 0xf1c20cb8, actual timeout 16 sec
[    1.181469] [cpu_freq] ERR:get cpu extremity frequency from sysconfig failed, use max_freq
[    1.190928] [mmc]: SD/MMC/SDIO Host Controller Driver(v1.114 2015-6-2 10:21) Compiled in Oct 27 2020 at 22:32:33
[    1.202386] [mmc]: get mmc0's sdc_power failed
[    1.207452] [mmc]: get mmc1's sdc_power failed
[    1.212461] [mmc]: MMC host used card: 0x3, boot card: 0x0, io_card 2
[    1.221105] [mmc]: sdc0 set ios: clk 0Hz bm OD pm OFF vdd 3.3V width 1 timing LEGACY(SDR12) dt B
[    1.234097] [mmc]: sdc1 set ios: clk 0Hz bm OD pm OFF vdd 3.3V width 1 timing LEGACY(SDR12) dt B
[    1.246869] no led_3, ignore it!
[    1.250534] no led_4, ignore it!
[    1.254233] no led_5, ignore it!
[    1.257871] no led_6, ignore it!
[    1.261519] no led_7, ignore it!
[    1.265384] Registered led device: led_0
[    1.269872] Registered led device: led_1
[    1.274698] Registered led device: led_2
[    1.279367] usbcore: registered new interface driver usbhid
[    1.285634] usbhid: USB HID core driver
[    1.290379] ashmem: initialized
[    1.294062] logger: created 256K log 'log_main'
[    1.299217] logger: created 32K log 'log_events'
[    1.304572] logger: created 32K log 'log_radio'
[    1.309744] logger: created 32K log 'log_system'
[    1.316011] [audiocodec] mic1_mic3_used type err! 
[    1.323250] asoc: sndcodec <-> sunxi-codec mapping ok
[    1.332417] asoc: snddaudio <-> pri_dai mapping ok
[    1.338849] TCP: cubic registered
[    1.342645] Initializing XFRM netlink socket
[    1.347569] NET: Registered protocol family 10
[    1.353302] IPv6 over IPv4 tunneling driver
[    1.358551] NET: Registered protocol family 17
[    1.363764] ThumbEE CPU extension supported.
[    1.368636] Registering SWP/SWPB emulation handler
[    1.385625] [HDMI]ep952_module_init begin
[    1.390237] [ep952] hdmi_power: axp20_ldo4
[    1.394900] [DISP_I2C] hdmi_i2c_detect, get right i2c adapter, id=1
[    1.402059] [DISP_I2C] hdmi_i2c_probe
[    1.406443] ep952_thread:235
[    1.631934] sunxi-rtc sunxi-rtc: setting system clock to 1970-01-01 00:00:03 UTC (3)
[    1.641913] [rf_pm]: Did not config module_power0 in sys_config
[    1.648564] [rf_pm]: Did not config module_power1 in sys_config
[    1.655342] [rf_pm]: Did not config module_power2 in sys_config
[    1.661996] [rf_pm]: Did not config module_power3 in sys_config
[    1.668696] [rf_pm]: mod has no chip_en gpio
[    1.673504] [rf_pm]: regulator on.
[    1.677442] [rf_pm]: Get ap 32k clk out failed!
[    1.682769] [wifi_pm]: wifi gpio init is OK !!
[    1.687853] ALSA device list:
[    1.691292]   #0: audiocodec
[    1.694546]   #1: snddaudio
[    1.698041] Freeing init memory: 140K
[    1.703701] init: skipping insecure file '/default.prop'
[    1.709818] init: skipping insecure file '/init.rc'
[    1.715785] init: /init.rc: 144: invalid option 'root'
[    1.721752] init: skipping insecure file '/init.sun8i.rc'
[    1.728010] init: /init.sun8i.rc: 72: invalid option 'root'
[    1.734440] init: skipping insecure file 'init.sun8i.usb.rc'
[    1.741333] init: command 'loglevel' r=0
[    1.745851] init: command 'export' r=0
[    1.751238] init: skipping insecure file '/ueventd.rc'
[    1.757196] init: skipping insecure file '/ueventd.sun8i.rc'
[    1.763777] init: command 'export' r=0
[    1.768015] init: command 'export' r=0
[    1.780216] init: command 'export' r=0
[    1.784466] init: command 'export' r=0
[    1.800255] init: command 'export' r=0
[    1.804506] init: command 'export' r=0
[    1.808836] init: command 'symlink' r=0
[    1.820234] init: command 'symlink' r=0
[    1.824628] init: command 'symlink' r=0
[    1.829074] init: command 'mkdir' r=0
[    1.840397] init: command 'mkdir' r=0
[    1.844582] init: command 'mkdir' r=0
[    1.848877] init: command 'mkdir' r=-2
[    1.853169] init: processing action 0xff5d28 (init)
[    1.858715] init: command 'export' r=0
[    1.862995] init: command 'export' r=0
[    1.867224] init: command 'export' r=0
[    1.871529] init: command 'export' r=0
[    1.875783] init: command 'export' r=0
[    1.880020] init: processing action 0xff41b8 (early-fs)
[    1.885997] init: command 'mkdir' r=0
[    1.890195] init: command 'mkdir' r=0
[    1.894347] init: command 'mkdir' r=0
[    1.898581] init: processing action 0xff7130 (console_init)
[    1.905068] init: command 'console_init' r=0
[    1.909889] init: processing action 0xff4538 (fs)
[    1.915345] init: command 'wait' r=0
[    1.919854] init: command 'setupfs' r=1
[    1.924346] init: out of loopback devices source = /dev/block/mtdblock2
[    1.931808] init: out of loopback devices target = /system
[    1.938075] init: out of loopback devices system = squashfs
[    1.944341] init: out of loopback devices options = (null)
[    1.953480] init: command 'mount' r=0
[    1.957681] init: command 'wait' r=0
[    1.961771] init: out of loopback devices source = /dev/block/mtdblock3
[    1.969234] init: out of loopback devices target = /data
[    1.975275] init: out of loopback devices system = jffs2
[    1.981307] init: out of loopback devices options = (null)
[    2.009152] init: command 'mount' r=0
[    2.013468] init: out of loopback devices source = none
[    2.019336] init: out of loopback devices target = /sys/kernel/debug/
[    2.026655] init: out of loopback devices system = debugfs
[    2.032834] init: out of loopback devices options = (null)
[    2.039162] init: command 'mount' r=0
[    2.043355] init: processing action 0xff4640 (post-fs)
[    2.049143] init: out of loopback devices source = rootfs
[    2.055632] init: out of loopback devices target = /
[    2.061404] init: out of loopback devices system = rootfs
[    2.067656] init: out of loopback devices options = (null)
[    2.073927] init: command 'mount' r=0
[    2.078155] init: processing action 0xff46a0 (post-fs-data)
[    2.084704] init: command 'chown' r=0
[    2.089043] init: command 'chmod' r=0
[    2.094867] init: command 'chmod' r=-2
[    2.104893] init: command 'mkdir' r=0
[    2.109055] init: command 'restorecon' r=0
[    2.119915] init: command 'mkdir' r=0
[    2.130616] init: command 'mkdir' r=0
[    2.140261] init: command 'mkdir' r=0
[    2.153062] init: command 'mkdir' r=0
[    2.157389] init: command 'chown' r=0
[    2.167856] init: command 'mkdir' r=0
[    2.172541] init: processing action 0xff5a98 (post-fs-data)
[    2.182070] init: skipping insecure file '/system/vendor/modules/videobuf-core.ko'
[    2.213450] init: command 'insmod' r=0
[    2.217798] init: skipping insecure file '/system/vendor/modules/videobuf-dma-contig.ko'
[    2.233063] init: command 'insmod' r=0
[    2.237399] init: skipping insecure file '/system/vendor/modules/cci.ko'
[    2.246570] [VFE]cci probe start cci_sel = 0!
[    2.251591] [VFE]cci probe end cci_sel = 0!
[    2.256390] [VFE]cci_init end
[    2.259957] init: command 'insmod' r=0
[    2.264328] init: skipping insecure file '/system/vendor/modules/vfe_os.ko'
[    2.273033] init: command 'insmod' r=0
[    2.277366] init: skipping insecure file '/system/vendor/modules/vfe_subdev.ko'
[    2.286943] init: command 'insmod' r=0
[    2.291338] init: skipping insecure file '/system/vendor/modules/cov8865.ko'
[    2.320251] init: command 'insmod' r=0
[    2.324599] init: skipping insecure file '/system/vendor/modules/vfe_v4l2.ko'
[    2.472443] [VFE]Welcome to Video Front End driver
[    2.478179] [VFE]pdev->id = 0
[    2.481638] [VFE]dev->mipi_sel = 0
[    2.485531] [VFE]dev->vip_sel = 0
[    2.489266] [VFE]dev->isp_sel = 0
[    2.493512] [VFE][boss] iovdd  =  1800000   i = 0 
[    2.498958] [VFE][boss] avdd  =  2700000   i = 0 
[    2.510031] [VFE_WARN]vfe vpu clock is null
[    2.521198] [ISP] isp platform_id = 6!
[    2.525621] [VFE]vfe_init end
[    2.529357] init: command 'insmod' r=0
[    2.538684] [VFE]probe_work_handle start!
[    2.543280] [VFE]..........................vfe clk open!.......................
[    2.551858] init: processing action 0xff7178 (property_service_init)
[    2.559752] [VFE]v4l2 subdev register input_num = 0
[    2.566453] init: skipping insecure file '/system/build.prop'
[    2.573104] axp20_ldo3: Failed to create debugfs directory
[    2.579267] [VFE]vfe sensor detect start! input_num = 0
[    2.585204] [VFE_WARN]NOT found this item:  cov8865, you can add this sensor in the sensor_list_t!
[    2.595239] [VFE]Sub device register "cov8865" i2c_addr = 0x6c start!
[    2.602521] [VFE]v4l2_device_register_subdev return 0
[    2.608196] [VFE]registered sensor subdev is OK!
[    2.613444] [VFE]Check sensor!
[    2.638123] [VFE]mclk on
[    2.649391] init: Created socket '/dev/socket/property_service' with mode '666', user '0', group '0'
[    2.659840] init: command 'property_service_init' r=0
[    2.666417] init: processing action 0xff71c0 (signal_init)
[    2.672716] init: command 'signal_init' r=0
[    2.677438] init: processing action 0xff7208 (check_startup)
[    2.683965] init: command 'check_startup' r=0
[    2.688935] init: processing action 0xff48b0 (boot)
[    2.694742] sensor_detect 88, 25
[    2.698399] [VFE]mclk off
[    2.701689] init: command 'ifup' r=0
[    2.705958] init: command 'hostname' r=0
[    2.710533] init: command 'domainname' r=0
[    2.715160] init: command 'setrlimit' r=0
[    2.719867] init: command 'chown' r=0
[    2.724181] init: starting 'servicemanager'
[    2.729282] init: starting 'vold'
[    2.737581] init: starting 'startupSound'
[    2.744931] init: Created socket '/dev/socket/vold' with mode '660', user '0', group '1009'
[    2.756986] init: command 'class_start' r=0
[    2.765419] init: cannot find '/system/bin/debuggerd', disabling 'debuggerd'
[    2.779262] init: starting 'media'
[    2.785959] init: starting 'sdv'
[    2.794102] init: command 'class_start' r=0
[    2.800148] [VFE]Sub device register "cov8865" is OK!
[    2.811491] init: processing action 0xff5ba8 (boot)
[    2.817242] [VFE]Check open /system/etc/hawkview/cov8865/isp_test_param.ini failed!
[    2.817251] Match isp cfg  start!
[    2.829684] [VFE_WARN]NOT found this item:  cov8865, you can add this ISP Config in the isp_cfg_array!
[    2.845107] [VFE]read ini start
[    2.848764] [VFE]Fetch ini file form "/system/etc/hawkview/cov8865/isp_test_param.ini"
[    2.858307] init: command 'setprop' r=0
[    2.862782] init: command 'setprop' r=0
[    2.867145] init: command 'setprop' r=0
[    2.872920] [vfe_warn]open file failed!
[    2.877699] [VFE_WARN]read ini info fail
[    2.882235] init: processing action 0xff7250 (queue_property_triggers)
[    2.889742] init: command 'queue_property_triggers' r=0
[    2.896053] [VFE]V4L2 device registered as video0
[    2.901434] [VFE]..........................vfe clk close!.......................
[    2.909777] [VFE]probe_work_handle end!
[    2.914277] init: processing action 0xff4b90 (property:ro.debuggable=1)
[    2.922733] init: starting 'console'
[    2.929038] init: command 'start' r=0
[    2.936580] init: processing action 0xff6af0 (property:sys.usb.config=mass_storage,adb)
[    2.946572] android_usb: already disabled
[    2.951814] init: command 'write' r=0
[    2.956790] init: command 'write' r=0
[    2.961897] init: command 'write' r=0
[    2.967168] init: command 'write' r=0
[    2.972286] init: command 'write' r=0
[    2.977278] init: command 'setprop' r=0
root@camdroid:/ # [    5.246134] ?newcdr????: main entry
[    5.250492] ?newcdr????: [Firmware Version: boss@dv8000_sdv 2021-04-24 23:22:10]
[    5.270908] ?newcdr????: ===no need to check battery capacity ===
[    6.070431] init: waitpid returned pid 58, status = 00000000
[    6.077120] init: process 'startupSound', pid 58 exited
[    6.333098] [DISP] ready enter pm_runtime_get_sync, device0
[    6.456292] [VFE]vfe_open
[    6.459281] [VFE]..........................vfe clk open!.......................
[    6.468536] [VFE]vfe_open ok
[    6.471953] [VFE_WARN]NOT found this item:  cov8865, you can add this sensor in the sensor_list_t!
[    6.482219] [VFE_WARN]Not find this sensor info, Set vfe core clk = 500000000, after Set vfe core clk = 480000000 
[    6.513564] [VFE]mclk on
[    6.553184] sensor_detect 88, 25
[    6.561806] [VFE_WARN]value: -1, min: 0, max: 128
[    6.561815]  
[    6.569197] [VFE_WARN]value: -1, min: 0, max: 255
[    6.569205]  
[    6.577909] [VFE]V4L2_MBUS_CSI2,4 lane,bus1 channel,rx 1 channel
[    6.755364] [COV8865]s_fmt = 3019, width = 1280, height = 720
[    6.761836] [COV8865]s_fmt end
[    6.765338] [VFE]width_input = 1632, height_input = 918, width = 1280, height = 720
[    6.773982] [VFE]dev->buf_byte_size = 1622016, double_ch_flag = 1
[    6.780885] [VFE]Init isp ini configs from isp_cfg.
[    6.847774] [VFE]put 1 frame into one buf to output!
[    6.853612] [VFE]buffer_setup, buffer count=10, size=1626112
[    6.891842] ?newcdr????: startPreview finished
[    6.935228] [VFE]capture video mode!
[    6.939897] [VFE]capture video first frame done!
[    7.070168] [VFE]V4L2_MBUS_CSI2,4 lane,bus1 channel,rx 1 channel
[    7.234913] [COV8865]s_fmt = 3019, width = 1280, height = 720
[    7.241377] [COV8865]s_fmt end
[    7.244859] [VFE]width_input = 1280, height_input = 720, width = 1280, height = 720
[    7.253515] [VFE]dev->buf_byte_size = 2097152, double_ch_flag = 1
[    7.260412] [VFE]Init isp ini configs from isp_cfg.
[    7.327304] [VFE]put 2 frame into one buf to output!
[    7.333124] [VFE]buffer_setup, buffer count=10, size=4198400
[    7.416940] [VFE]capture video mode!
[    7.426982] [VFE]capture video first frame done!
[    7.446595] [VFE]V4L2_MBUS_CSI2,4 lane,bus1 channel,rx 1 channel
[    7.540260] [COV8865]s_fmt = 3019, width = 2688, height = 1520
[    7.546881] [COV8865]s_fmt end
[    7.550372] [VFE]width_input = 3264, height_input = 1836, width = 2688, height = 1520
[    7.559206] [VFE]dev->buf_byte_size = 6844416, double_ch_flag = 1
[    7.566044] [VFE]Init isp ini configs from isp_cfg.
[    7.633079] [VFE]put 1 frame into one buf to output!
[    7.638704] [VFE]buffer_setup, buffer count=5, size=6848512
[    7.739729] [VFE]capture video mode!
[    7.773051] [VFE]capture video first frame done!
[    8.497011] init: processing action 0xff6af0 (property:sys.usb.config=mass_storage,adb)
[    8.497161] init: command 'write' r=0
[    8.497260] init: command 'write' r=0
[    8.497317] init: command 'write' r=0
[    8.497383] init: command 'write' r=0
[    8.497434] init: command 'write' r=0
[    8.497493] init: command 'setprop' r=0
[    8.864836] [xradio_plat]: wifi_sdc_id=1
[    8.869369] [xradio_plat]: wl_reg_on=34
[    8.873817] [xradio_plat]: wl_host_wake=32
[    8.878430] [xradio_plat]: wifi_power not config.
[    8.883741] [xradio_plat]: xr_wl_power_vol not config.
[    8.889563] [xradio_plat]: wifi_power_ext1 not config.
[    8.895340] [xradio_plat]: xr_wl_power_vol1 not config.
[    8.901264] [xradio_plat]: wifi_power_ext2 not config.
[    8.907031] [VFE_WARN] Nobody is waiting on this video buffer,buf = 0xc99e7c40
[    8.915196] [xradio_plat]: xr_wl_power_vol2 not config.
[    8.921069] [xradio_plat]: xradio_lpo_use_apclk not config.
[    8.963172] ======== XRADIO WIFI OPEN ========
[    8.968264] [XRADIO] Driver Label:XR_V02.07  Oct 27 2020 22:32:43
[    8.979087] [XRADIO] Allocated hw_priv @ c9a62ea0
[    9.039489] [VFE_WARN] Nobody is waiting on this video buffer,buf = 0xc99e77c0
[    9.166979] [XRADIO] Detect SDIO card 1
[    9.181389] [mmc]: sdc1 set ios: clk 0Hz bm PP pm UP vdd 3.3V width 1 timing LEGACY(SDR12) dt B
[    9.193087] [mmc]: sdc1 power_supply is null
[    9.213652] [mmc]: sdc1 set ios: clk 400000Hz bm PP pm ON vdd 3.3V width 1 timing LEGACY(SDR12) dt B
[    9.244568] [mmc]: sdc1 set ios: clk 400000Hz bm PP pm ON vdd 3.3V width 1 timing LEGACY(SDR12) dt B
[    9.257543] [mmc]: sdc1 set ios: clk 400000Hz bm PP pm ON vdd 3.3V width 1 timing LEGACY(SDR12) dt B
[    9.269360] *******************Try sdio*******************
[    9.282284] [mmc]: sdc1 set ios: clk 400000Hz bm PP pm ON vdd 3.3V width 1 timing LEGACY(SDR12) dt B
[    9.301614] [mmc]: sdc1 set ios: clk 400000Hz bm PP pm ON vdd 3.3V width 1 timing SD-HS(SDR25) dt B
[    9.315674] [mmc]: sdc1 set ios: clk 50000000Hz bm PP pm ON vdd 3.3V width 1 timing SD-HS(SDR25) dt B
[    9.326470] [mmc]: sdc1 set ios: clk 50000000Hz bm PP pm ON vdd 3.3V width 4 timing SD-HS(SDR25) dt B
[    9.337565] mmc1: new high speed SDIO card at address 0001
[    9.346469] [SBUS] XRadio Device:sdio clk=50000000
[    9.357141] [XRADIO] XRADIO_HW_REV 1.0 detected.
[    9.367078] *******************sdio init ok*******************
[    9.560717] [XRADIO] Bootloader complete
[    9.644876] [XRADIO] Firmware completed.
[    9.659904] [WSM] Firmware Label:XR_C01.08.52.06 Nov  7 2016 17:43:41
[    9.667398] [XRADIO] Firmware Startup Done.
[    9.715709] ieee80211 phy0: Selected rate control algorithm 'minstrel_ht'
[    9.814403] wdt_set_tmout, write 0x00000080 to mode reg 0xf1c20cb8, actual timeout 10 sec
[    9.823673] wdt_enable, write reg 0xf1c20cb8 val 0x00000081
[    9.830606] init: cannot find '/system/bin/debuggerd', disabling 'debuggerd'
[    9.850447] init: starting 'adbd'
[    9.854415] wdt_enable, write reg 0xf1c20cb8 val 0x00000080
[    9.863562] init: starting 'standby'
[    9.868139] init: Created socket '/dev/socket/adbd' with mode '660', user '1000', group '1000'
[    9.880007] wdt_set_tmout, write 0x00000080 to mode reg 0xf1c20cb8, actual timeout 10 sec
[    9.897906] adb_open
[    9.900700] ep_matches, wrn: endpoint already claimed, ep(0xc04a4524, 0xca235980, ep1in-bulk)
[    9.914840] wdt_set_tmout, write 0x00000070 to mode reg 0xf1c20cb8, actual timeout 8 sec
[    9.924045] wdt_enable, write reg 0xf1c20cb8 val 0x00000071
[    9.930513] adb_bind_config
[    9.933690] ep_matches, wrn: endpoint already claimed, ep(0xc04a4524, 0xca235980, ep1in-bulk)
[    9.943366] ep_matches, wrn: endpoint already claimed, ep(0xc04a4570, 0xca235980, ep1out-bulk)
[    9.953077] ep_matches, wrn: endpoint already claimed, ep(0xc04a4524, 0xca235980, ep1in-bulk)
[    9.962680] ep_matches, wrn: endpoint already claimed, ep(0xc04a4570, 0xca235980, ep1out-bulk)
[    9.972315] ep_matches, wrn: endpoint already claimed, ep(0xc04a45bc, 0xca24fc00, ep2in-bulk)
[    9.981909] [VFE_WARN] Nobody is waiting on this video buffer,buf = 0xc99e76c0
[   21.080296] set usbcur 0 mA
[   21.083701] set usbvol 4000 mV
[   38.670857] LCD_panel_exit: enter sleep
[   38.980330] [DISP] disp_sys_gpio_set_value,line:374:OSAL_GPIO_DevWRITE_ONEPIN_DATA, hdl is NULL

 

script.fel

Скрытый текст
[product]
version = "100"
machine = "pqdv8000-sdv"

[platform]
eraseflag = 0
debug_mode = 0

[target]
boot_clock = 1008
storage_type = -1

[boot_spi_board0]
boot_spi_speed_hz = 0x2625a00
speed_mod = 0

[power_sply]
dcdc2_vol = 1220
dcdc3_vol = 3300
aldo2_vol = 2500
aldo3_vol = 3000
ldo1_vol = 3300
ldo2_vol = 3000
ldo4_vol = 0

[card_boot]
logical_start = 40960
sprite_gpio0 = port:PB10<1><default><default><0>

[gpio_flashing]
used = 1
flashing_delay = 50
flashing_times = 7
flashing_gpio0 = port:PB10<1><default><default><1>

[card0_boot_para]
card_ctrl = 0
card_high_speed = 1
card_line = 4
sdc_d1 = port:PF0<2><1><default><default>
sdc_d0 = port:PF1<2><1><default><default>
sdc_clk = port:PF2<2><1><default><default>
sdc_cmd = port:PF3<2><1><default><default>
sdc_d3 = port:PF4<2><1><default><default>
sdc_d2 = port:PF5<2><1><default><default>

[card2_boot_para]
card_ctrl = 2
card_high_speed = 1
card_line = 8
sdc_cmd = port:PC1<2><1><default><default>
sdc_clk = port:PC0<2><1><default><default>
sdc_d0 = port:PC3<2><1><default><default>
sdc_d1 = port:PC4<2><1><default><default>
sdc_d2 = port:PC5<2><1><default><default>
sdc_d3 = port:PC6<2><1><default><default>
sdc_d4 = port:PC7<2><1><default><default>
sdc_d5 = port:PC8<2><1><default><default>
sdc_d6 = port:PC9<2><1><default><default>
sdc_d7 = port:PC10<2><1><default><default>
sdc_2xmode = 1
sdc_ddrmode = 1

[twi_para]
twi_port = 0
twi_scl = port:PB7<2><default><default><default>
twi_sda = port:PB6<2><default><default><default>

[uart_para]
uart_debug_port = 1
uart_debug_tx = port:PG6<2><1><default><default>
uart_debug_rx = port:PG7<2><1><default><default>

[jtag_para]
jtag_enable = 0
jtag_ck = port:PB11<2><default><default><default>
jtag_do = port:PB12<2><default><default><default>
jtag_di = port:PB13<2><default><default><default>

[clock]
pll3 = 297
pll4 = 300
pll6 = 600
pll8 = 360
pll9 = 480
pll10 = 297
pll_ve = 480
pll_isp = 480

[pm_para]
standby_mode = 1

[dram_para]
dram_clk = 648
dram_type = 3
dram_zq = 14779
dram_odt_en = 1
dram_para1 = 0x10e20000
dram_para2 = 0
dram_mr0 = 6208
dram_mr1 = 4
dram_mr2 = 24
dram_mr3 = 4
dram_tpr0 = 0x832087
dram_tpr1 = 0x1c24085
dram_tpr2 = 0x2a01d
dram_tpr3 = 0
dram_tpr4 = 0
dram_tpr5 = 0
dram_tpr6 = 0
dram_tpr7 = 0
dram_tpr8 = 0
dram_tpr9 = 0
dram_tpr10 = 3
dram_tpr11 = 0x240000
dram_tpr12 = 120
dram_tpr13 = 0x1000000

[pm_para]
standby_mode = 0

[wakeup_src_para]
cpu_en = 0
cpu_freq = 48
pll_ratio = 273
dram_selfresh_en = 1
dram_freq = 36
wakeup_src_wl = port:PL7<4><default><default><0>
wakeup_src_bt = port:PL9<4><default><default><0>
bb_wake_ap = port:PL2<4><default><default><0>

[twi0]
twi_used = 1
twi_scl = port:PB6<2><default><default><default>
twi_sda = port:PB7<2><default><default><default>

[twi1]
twi_used = 1
twi_scl = port:PB8<2><default><default><default>
twi_sda = port:PB9<2><default><default><default>

[uart0]
uart_used = 0
uart_port = 0
uart_type = 2
uart_tx = port:PF2<3><1><default><default>
uart_rx = port:PF4<3><1><default><default>

[uart1]
uart_used = 1
uart_type = 2
uart_port = 0
uart_tx = port:PG6<2><1><default><default>
uart_rx = port:PG7<2><1><default><default>

[uart2]
uart_used = 0
uart_type = 2
uart_port = 2
uart_tx = port:PB0<2><1><default><default>
uart_rx = port:PB1<2><1><default><default>

[spi0]
spi_used = 1
spi_cs_bitmap = 1
spi_mosi = port:PC3<3><default><default><default>
spi_miso = port:PC0<3><default><default><default>
spi_sclk = port:PC1<3><default><default><default>
spi_cs0 = port:PC2<3><1><default><default>

[spi_devices]
spi_dev_num = 1

[spi_board0]
modalias = "at25df641"
max_speed_hz = 0x2faf080
bus_num = 0
chip_select = 0
mode = 0
sflash_size = 8

[ctp_para]
ctp_used = 0
ctp_name = "gt911_m785q6"
ctp_twi_id = 1
ctp_twi_addr = 0x5d
ctp_screen_max_x = 800
ctp_screen_max_y = 480
ctp_revert_x_flag = 0
ctp_revert_y_flag = 0
ctp_exchange_x_y_flag = 1
ctp_int_port = 
ctp_wakeup = 

[ctp_list_para]
ctp_det_used = 0
gt911_ts = 1
ft5x_ts = 1
gt82x = 1
gslX680 = 1
gt9xx_ts = 1
gt811 = 1
zet622x = 1
aw5306_ts = 1

[tkey_para]
tkey_used = 0
tkey_twi_id = 
tkey_twi_addr = 
tkey_int = 

[motor_para]
motor_used = 0
motor_shake = port:P?3<1><default><default><1>

[cooler_table]
cooler_count = 4
cooler0 = "1340000 4 4294967295 0"
cooler1 = "1200000 4 4294967295 0"
cooler2 = "1008000 4 4294967295 0"
cooler3 = "648000 4 4294967295 0"

[disp_init]
disp_init_enable = 1
disp_mode = 0
screen0_output_type = 1
screen0_output_mode = 4
screen1_output_type = 1
screen1_output_mode = 4
fb0_format = 0
fb0_pixel_sequence = 0
fb0_scaler_mode_enable = 0
fb0_width = 320
fb0_height = 240
fb1_format = 0
fb1_pixel_sequence = 0
fb1_scaler_mode_enable = 0
fb1_width = 0
fb1_height = 0
lcd0_backlight = 200
lcd1_backlight = 50
lcd0_bright = 50
lcd0_contrast = 50
lcd0_saturation = 57
lcd0_hue = 50
lcd1_bright = 50
lcd1_contrast = 50
lcd1_saturation = 57
lcd1_hue = 50

[rotate_sw]
used = 1
degree0 = 1

[lcd0_para]
lcd_used = 1
lcd_driver_name = "ili9335"
lcd_if = 1
lcd_x = 240
lcd_y = 320
lcd_width = 108
lcd_height = 64
lcd_dclk_freq = 16
lcd_pwm_used = 1
lcd_pwm_ch = 0
lcd_pwm_freq = 50000
lcd_pwm_pol = 1
lcd_pwm_max_limit = 255
lcd_hbp = 60
lcd_ht = 405
lcd_hspw = 30
lcd_vbp = 340
lcd_vt = 670
lcd_vspw = 2
lcd_frm = 1
lcd_hv_clk_phase = 0
lcd_hv_sync_polarity = 0
lcd_gamma_en = 0
lcd_bright_curve_en = 1
lcd_cmap_en = 0
lcd_cpu_mode = 1
lcd_cpu_te = 1
lcd_cpu_if = 14
lcd_hv_if = 0
lcd_hv_srgb_seq = 0
lcd_rb_swap = 1
lcdgamma4iep = 22
lcd_bl_en = port:PE23<1><0><2><1>
lcd_gpio_0 = port:PB11<1><0><2><1>
lcd_gpio_1 = port:PB12<1><0><2><0>
lcdd3 = port:PD1<2><0><2><default>
lcdd4 = port:PD2<2><0><2><default>
lcdd5 = port:PD3<2><0><2><default>
lcdd6 = port:PD4<2><0><2><default>
lcdd7 = port:PD5<2><0><2><default>
lcdd10 = port:PD6<2><0><2><default>
lcdd11 = port:PD7<2><0><2><default>
lcdd12 = port:PD8<2><0><2><default>
lcdclk = port:PD18<2><0><3><default>
lcdde = port:PD19<2><0><3><default>
lcdhsync = port:PD20<2><0><3><default>
lcdvsync = port:PD21<2><0><3><default>

[hdmi_ep952_para]
hdmi_used = 1
gpio_0 = port:PG9<1><0><default><0>
gpio_1 = port:PG13<0><2><2><default>
hdmi_twi_used = 1
hdmi_twi_id = 1
hdmi_twi_addr = 0x29
hdmi_d2 = port:PD0<2><0><2><default>
hdmi_d3 = port:PD1<2><0><2><default>
hdmi_d4 = port:PD2<2><0><2><default>
hdmi_d5 = port:PD3<2><0><2><default>
hdmi_d6 = port:PD4<2><0><2><default>
hdmi_d7 = port:PD5<2><0><2><default>
hdmi_d10 = port:PD6<2><0><2><default>
hdmi_d11 = port:PD7<2><0><2><default>
hdmi_d12 = port:PD8<2><0><2><default>
hdmi_d13 = port:PD9<2><0><2><default>
hdmi_d14 = port:PD10<2><0><2><default>
hdmi_d15 = port:PD11<2><0><2><default>
hdmi_d18 = port:PD12<2><0><2><default>
hdmi_d19 = port:PD13<2><0><2><default>
hdmi_d20 = port:PD14<2><0><2><default>
hdmi_d21 = port:PD15<2><0><2><default>
hdmi_d22 = port:PD16<2><0><2><default>
hdmi_d23 = port:PD17<2><0><2><default>
hdmi_d24 = port:PD18<2><0><3><default>
hdmi_d25 = port:PD19<2><0><3><default>
hdmi_d26 = port:PD20<2><0><3><default>
hdmi_d27 = port:PD21<2><0><3><default>
hdmi_power = "axp20_ldo4"

[hdmi_it66121_para]
hdmi_used = 0
gpio_0 = port:PG9<1><0><default><0>
gpio_1 = 
hdmi_twi_used = 0
hdmi_twi_id = 1
hdmi_twi_addr = 0x4d
hdmi_d2 = port:PD0<2><0><2><default>
hdmi_d3 = port:PD1<2><0><2><default>
hdmi_d4 = port:PD2<2><0><2><default>
hdmi_d5 = port:PD3<2><0><2><default>
hdmi_d6 = port:PD4<2><0><2><default>
hdmi_d7 = port:PD5<2><0><2><default>
hdmi_d10 = port:PD6<2><0><2><default>
hdmi_d11 = port:PD7<2><0><2><default>
hdmi_d12 = port:PD8<2><0><2><default>
hdmi_d13 = port:PD9<2><0><2><default>
hdmi_d14 = port:PD10<2><0><2><default>
hdmi_d15 = port:PD11<2><0><2><default>
hdmi_d18 = port:PD12<2><0><2><default>
hdmi_d19 = port:PD13<2><0><2><default>
hdmi_d20 = port:PD14<2><0><2><default>
hdmi_d21 = port:PD15<2><0><2><default>
hdmi_d22 = port:PD16<2><0><2><default>
hdmi_d23 = port:PD17<2><0><2><default>
hdmi_d24 = port:PD18<2><0><3><default>
hdmi_d25 = port:PD19<2><0><3><default>
hdmi_d26 = port:PD20<2><0><3><default>
hdmi_d27 = port:PD21<2><0><3><default>
hdmi_power = "axp20_ldo4"

[pwm0_para]
pwm_used = 1

[csi0]
vip_used = 1
vip_mode = 0
vip_dev_qty = 1
vip_define_sensor_list = 0
vip_csi_mck = port:PE20<3><default><default><default>
vip_csi_sck = port:PE21<2><default><default><default>
vip_csi_sda = port:PE22<2><default><default><default>
vip_dev0_mname = "cov8865"
vip_dev0_pos = "rear"
vip_dev0_lane = 1
vip_dev0_twi_id = 0
vip_dev0_twi_addr = 0x6c
vip_dev0_isp_used = 1
vip_dev0_fmt = 1
vip_dev0_stby_mode = 0
vip_dev0_vflip = 0
vip_dev0_hflip = 0
vip_dev0_iovdd = "vcc-pe"
vip_dev0_iovdd_vol = 0x1b7740
vip_dev0_avdd = "vcc-pe"
vip_dev0_avdd_vol = 0x2932e0
vip_dev0_dvdd = ""
vip_dev0_dvdd_vol = 0x124f80
vip_dev0_afvdd = ""
vip_dev0_afvdd_vol = 0x2ab980
vip_dev0_power_en = port:PE1<1><default><default><default>
vip_dev0_reset = port:PE18<1><default><default><default>
vip_dev0_pwdn = port:PE19<1><default><default><default>
vip_dev0_flash_en = 
vip_dev0_flash_mode = 
vip_dev0_af_pwdn = 
vip_dev0_act_used = 0
vip_dev0_act_name = "dw9714_act"
vip_dev0_act_slave = 24
vip_dev1_mname = ""
vip_dev1_pos = "front"
vip_dev1_lane = 1
vip_dev1_twi_id = 0
vip_dev1_twi_addr = 
vip_dev1_isp_used = 0
vip_dev1_fmt = 1
vip_dev1_stby_mode = 0
vip_dev1_vflip = 0
vip_dev1_hflip = 0
vip_dev1_iovdd = ""
vip_dev1_iovdd_vol = 0x2ab980
vip_dev1_avdd = ""
vip_dev1_avdd_vol = 0x2ab980
vip_dev1_dvdd = ""
vip_dev1_dvdd_vol = 0x16e360
vip_dev1_afvdd = ""
vip_dev1_afvdd_vol = 0x2ab980
vip_dev1_power_en = 
vip_dev1_reset = 
vip_dev1_pwdn = 
vip_dev1_flash_en = 
vip_dev1_flash_mode = 
vip_dev1_af_pwdn = 

[csi1]
vip_used = 0
vip_mode = 0
vip_dev_qty = 1
vip_define_sensor_list = 0
vip_csi_pck = port:PE0<2><default><default><default>
vip_csi_mck = port:PE1<2><default><default><default>
vip_csi_hsync = port:PE2<2><default><default><default>
vip_csi_vsync = port:PE3<2><default><default><default>
vip_csi_d0 = port:PE4<2><default><default><default>
vip_csi_d1 = port:PE5<2><default><default><default>
vip_csi_d2 = port:PE6<2><default><default><default>
vip_csi_d3 = port:PE7<2><default><default><default>
vip_csi_d4 = port:PE8<2><default><default><default>
vip_csi_d5 = port:PE9<2><default><default><default>
vip_csi_d6 = port:PE10<2><default><default><default>
vip_csi_d7 = port:PE11<2><default><default><default>
vip_csi_d8 = port:PE12<2><default><default><default>
vip_csi_d9 = port:PE13<2><default><default><default>
vip_csi_d10 = port:PE14<2><default><default><default>
vip_csi_d11 = port:PE15<2><default><default><default>
vip_csi_sck = port:PE21<2><default><default><default>
vip_csi_sda = port:PE22<2><default><default><default>
vip_dev0_mname = "ov5640"
vip_dev0_pos = "front"
vip_dev0_twi_id = 4
vip_dev0_twi_addr = 0x78
vip_dev0_isp_used = 0
vip_dev0_fmt = 0
vip_dev0_stby_mode = 0
vip_dev0_vflip = 0
vip_dev0_hflip = 0
vip_dev0_iovdd = ""
vip_dev0_iovdd_vol = 0x2ab980
vip_dev0_avdd = ""
vip_dev0_avdd_vol = 0x2ab980
vip_dev0_dvdd = ""
vip_dev0_dvdd_vol = 0x16e360
vip_dev0_afvdd = ""
vip_dev0_afvdd_vol = 0x2ab980
vip_dev0_power_en = 
vip_dev0_reset = port:PE23<1><default><default><default>
vip_dev0_pwdn = port:PE24<1><default><default><default>
vip_dev0_flash_en = 
vip_dev0_flash_mode = 
vip_dev0_af_pwdn = 
vip_dev0_act_used = 0
vip_dev0_act_name = "ad5820_act"
vip_dev0_act_slave = 24
vip_dev1_mname = "gc2035"
vip_dev1_pos = "front"
vip_dev1_lane = 1
vip_dev1_twi_id = 4
vip_dev1_twi_addr = 0x78
vip_dev1_isp_used = 0
vip_dev1_fmt = 1
vip_dev1_stby_mode = 0
vip_dev1_vflip = 0
vip_dev1_hflip = 0
vip_dev1_iovdd = ""
vip_dev1_iovdd_vol = 0x2ab980
vip_dev1_avdd = ""
vip_dev1_avdd_vol = 0x2ab980
vip_dev1_dvdd = ""
vip_dev1_dvdd_vol = 0x16e360
vip_dev1_afvdd = ""
vip_dev1_afvdd_vol = 0x2ab980
vip_dev1_power_en = 
vip_dev1_reset = 
vip_dev1_pwdn = 
vip_dev1_flash_en = 
vip_dev1_flash_mode = 
vip_dev1_af_pwdn = 

[mmc0_para]
sdc_used = 1
sdc_detmode = 1
sdc_buswidth = 4
sdc_d1 = port:PF0<2><1><2><default>
sdc_d0 = port:PF1<2><1><2><default>
sdc_clk = port:PF2<2><1><2><default>
sdc_cmd = port:PF3<2><1><2><default>
sdc_d3 = port:PF4<2><1><2><default>
sdc_d2 = port:PF5<2><1><2><default>
sdc_det = port:PF6<0><1><2><default>
sdc_use_wp = 0
sdc_wp = 
sdc_isio = 0
sdc_regulator = "none"

[mmc1_para]
sdc_used = 1
sdc_detmode = 4
sdc_buswidth = 4
sdc_clk = port:PG0<2><1><1><default>
sdc_cmd = port:PG1<2><1><1><default>
sdc_d0 = port:PG2<2><1><1><default>
sdc_d1 = port:PG3<2><1><1><default>
sdc_d2 = port:PG4<2><1><1><default>
sdc_d3 = port:PG5<2><1><1><default>
sdc_det = 
sdc_use_wp = 0
sdc_wp = 
sdc_isio = 1
sdc_regulator = "none"

[mmc2_para]
sdc_used = 0
sdc_detmode = 3
sdc_buswidth = 8
sdc_clk = port:PC0<2><1><2><default>
sdc_cmd = port:PC1<2><1><2><default>
sdc_d0 = port:PC3<2><1><2><default>
sdc_d1 = port:PC4<2><1><2><default>
sdc_d2 = port:PC5<2><1><2><default>
sdc_d3 = port:PC6<2><1><2><default>
sdc_d4 = port:PC7<2><1><2><default>
sdc_d5 = port:PC8<2><1><2><default>
sdc_d6 = port:PC9<2><1><2><default>
sdc_d7 = port:PC10<2><1><2><default>
emmc_rst = port:PC2<2><1><2><default>
sdc_det = 
sdc_use_wp = 0
sdc_wp = 
sdc_isio = 0
sdc_regulator = "none"

[usbc0]
usb_used = 1
usb_port_type = 0
usb_detect_type = 1
usb_id_gpio = port:PG11<0><1><default><default>
usb_det_vbus_gpio = port:PG11<0><1><default><default>
usb_drv_vbus_gpio = port:PG10<1><0><default><0>
usb_restrict_gpio = 
usb_host_init_state = 0
usb_restric_flag = 0
usb_restric_voltage = 0x362b30
usb_restric_capacity = 5
usb_regulator_io = "nocare"
usb_regulator_vol = 0
usb_not_suspend = 0

[usb_feature]
vendor_id = 6353
mass_storage_id = 1
adb_id = 2
manufacturer_name = "USB Developer"
product_name = "Android"
serial_number = "20080411"

[msc_feature]
vendor_name = "USB 2.0"
product_name = "USB Flash Driver"
release = 100
luns = 1

[serial_feature]
serial_unique = 0

[gsensor_para]
gsensor_used = 1
gsensor_twi_id = 1
gsensor_twi_addr = 0x18
gsensor_int1 = 
gsensor_int2 = 

[gsensor_list_para]
gsensor_det_used = 1
bma250 = 0
da380 = 1
mma8452 = 0
mma7660 = 0
mma865x = 0
afa750 = 0
lis3de_acc = 0
lis3dh_acc = 0
kxtik = 0
dmard10 = 0
dmard06 = 0
mxc622x = 0
fxos8700 = 0
lsm303d = 0

[gps_para]

[module_para]
module_power0 = 
module_power0_vol = 
module_power1 = 
module_power1_vol = 
module_power2 = 
module_power2_vol = 
module_power3 = 
module_power3_vol = 
chip_en = 
lpo_use_apclk = ""

[wifi_para]
wifi_used = 1
wifi_sdc_id = 1
wifi_usbc_id = 
wifi_usbc_type = 
wl_reg_on = port:PB2<1><default><default><0>
wl_host_wake = port:PB0<0><default><default><0>
wl_host_wake_invert = 0

[bt_para]
bt_used = 0
bt_uart_id = 1

[gy_para]
gy_used = 0
gy_twi_id = 1
gy_twi_addr = 0x6a
gy_int1 = 
gy_int2 = 

[ls_list_para]
ls_det_used = 0
ltr_501als = 1
jsa1212 = 1

[compass_para]
compass_used = 0
compass_twi_id = 1
compass_twi_addr = 0xd
compass_int = 

[tdm0]
daudio_used = 1
daudio_master = 4
daudio_select = 1
audio_format = 1
signal_inversion = 1
mclk_fs = 512
sample_resolution = 16
slot_width_select = 16
pcm_lrck_period = 32
pcm_lrckr_period = 1
msb_lsb_first = 0
sign_extend = 0
slot_index = 0
slot_width = 16
frame_width = 1
tx_data_mode = 0
rx_data_mode = 0
i2s_bclk = port:PG11<2><1><default><default>
i2s_lrclk = port:PG10<2><1><default><default>
i2s_dout0 = port:PG12<2><1><default><default>
i2s_dout1 = 
i2s_dout2 = 
i2s_dout3 = 

[audio0]
headphone_vol = 59
cap_vol = 6
Differential_output = 1
pa_single_vol = 25
pa_double_used = 0
pa_double_vol = 31
headphone_direct_used = 1
phone_mic_vol = 6
version_v3_used = 1
headphone_mute_used = 0
audio_hp_ldo = "none"
audio_pa_ctrl = port:PB5<1><default><default><0>
adcagc_used = 0
adcdrc_used = 1
dacdrc_used = 0
adchpf_used = 1
dachpf_used = 0

[s_ir0]
ir_used = 0
ir_rx = port:PL4<2><1><default><default>

[pmu1_para]
pmu_used = 1
pmu_id = 1
pmu_twi_addr = 0x34
pmu_twi_id = 0
pmu_irq_id = 64
pmu_battery_rdc = 280
pmu_battery_cap = 805
pmu_batdeten = 1
pmu_runtime_chgcur = 300
pmu_earlysuspend_chgcur = 450
pmu_suspend_chgcur = 600
pmu_shutdown_chgcur = 600
pmu_init_chgvol = 4200
pmu_init_chgend_rate = 15
pmu_init_chg_enabled = 1
pmu_init_adc_freq = 100
pmu_init_chg_pretime = 50
pmu_init_chg_csttime = 720
pmu_bat_para1 = 0
pmu_bat_para2 = 1
pmu_bat_para3 = 3
pmu_bat_para4 = 5
pmu_bat_para5 = 9
pmu_bat_para6 = 14
pmu_bat_para7 = 19
pmu_bat_para8 = 30
pmu_bat_para9 = 41
pmu_bat_para10 = 52
pmu_bat_para11 = 59
pmu_bat_para12 = 66
pmu_bat_para13 = 75
pmu_bat_para14 = 84
pmu_bat_para15 = 91
pmu_bat_para16 = 100
pmu_usbvol_limit = 1
pmu_usbcur_limit = 0
pmu_usbvol = 4000
pmu_usbcur = 0
pmu_usbvol_pc = 4000
pmu_usbcur_pc = 0
pmu_pwroff_vol = 3300
pmu_pwron_vol = 2900
pmu_pekoff_time = 6000
pmu_pekoff_en = 1
pmu_peklong_time = 1500
pmu_pekon_time = 1000
pmu_pwrok_time = 64
pmu_pwrnoe_time = 2000
pmu_hot_shutdown = 1
pmu_suspendpwroff_vol = 3500
power_start = 1
pmu_reduce_power_waste = 1
pmu_chgled_func = 0
pmu_chgled_type = 0
pmu_temp_enable = 0
pmu_charge_ltf = 2261
pmu_charge_htf = 388
pmu_discharge_ltf = 3200
pmu_discharge_htf = 237
pmu_temp_para1 = 7466
pmu_temp_para2 = 4480
pmu_temp_para3 = 3518
pmu_temp_para4 = 2786
pmu_temp_para5 = 2223
pmu_temp_para6 = 1788
pmu_temp_para7 = 1448
pmu_temp_para8 = 969
pmu_temp_para9 = 664
pmu_temp_para10 = 466
pmu_temp_para11 = 393
pmu_temp_para12 = 333
pmu_temp_para13 = 283
pmu_temp_para14 = 242
pmu_temp_para15 = 179
pmu_temp_para16 = 134

[pmu1_regu]
regulator_count = 7
regulator1 = "axp20_dcdc2 none vdd-sys vdd-cpu vdd-ephy"
regulator2 = "axp20_dcdc3 none vcc-io hpvcc vcc-pd vcc-usb vcc-ephy vcc-mcsi vcc-lcd vcc-wifi vcc-device vcc-csi vcc-ctp"
regulator3 = "axp20_ldo1 none vcc-rtc"
regulator4 = "axp20_ldo2 none  vcc-avcc vcc-pll"
regulator5 = "axp20_ldo3 none vcc-pe"
regulator6 = "axp20_ldo4 none"
regulator7 = "axp20_ldoio0 none"

[dvfs_table]
max_freq = 0x3c14dc00
min_freq = 0x3938700
LV_count = 8
LV1_freq = 0x5b8d8000
LV1_volt = 1500
LV2_freq = 0x4d3f6400
LV2_volt = 1340
LV3_freq = 0x47868c00
LV3_volt = 1320
LV4_freq = 0x3c14dc00
LV4_volt = 1200
LV5_freq = 0x30a32c00
LV5_volt = 1100
LV6_freq = 0x269fb200
LV6_volt = 1040
LV7_freq = 0
LV7_volt = 1040
LV8_freq = 0
LV8_volt = 1040

[Vdevice]
Vdevice_used = 1
Vdevice_0 = port:PA1<5><1><2><default>
Vdevice_1 = port:PA2<5><1><2><default>

[dram_dvfs_table]
LV_count = 3
LV1_freq = 0x20e6da00
LV1_volt = 1100
LV2_freq = 0x15752a00
LV2_volt = 1000
LV3_freq = 0
LV3_volt = 1000

[leds_para]
leds_used = 1
led_0 = port:PB10<1><default><default><0>
led_0_active_low = 0
led_1 = port:PE5<1><default><default><0>
led_1_active_low = 0
led_2 = port:PE6<1><default><default><0>
led_2_active_low = 0

[gpio_ir_key]
gpio_ir_used = 1
gpio_ir_io = port:PB13<2><1><default><default>

[1621_display]
gpio_used = 1
gpio_CS = port:PC4<1><default><default><1>
gpio_WD = port:PC5<1><default><default><0>
gpio_DATA = port:PB4<1><default><default><0>

 

Photos

Скрытый текст

IMG_20220515_171114.jpg

IMG_20220515_171202.jpg

Link to comment
Share on other sites

Answer:

Befor bootz
setenv bootm_boot_mode sec
or 
CONFIG_ARMV7_BOOT_SEC_DEFAULT=y
into sun8i_v3_dv8000_imx179_defconfig

Stack on secure_ram_addr(_nonsec_init)(); from arch/arm/cpu/armv7/virt-v7.c

Edited by Wic
Link to comment
Share on other sites

When I'm trying to run by-default in non-sec mode u-boot halted at secure_ram_addr(_nonsec_init)();. Line 143.

_nonsec_init is an asm-code, which I'm can't debugging with printf().

Скрытый текст

virt-v7.c line143

// SPDX-License-Identifier: GPL-2.0+
/*
 * (C) Copyright 2013
 * Andre Przywara, Linaro <andre.przywara@linaro.org>
 *
 * Routines to transition ARMv7 processors from secure into non-secure state
 * and from non-secure SVC into HYP mode
 * needed to enable ARMv7 virtualization for current hypervisors
 */

#include <common.h>
#include <cpu_func.h>
#include <asm/armv7.h>
#include <asm/cache.h>
#include <asm/gic.h>
#include <asm/io.h>
#include <asm/secure.h>

static unsigned int read_id_pfr1(void)
{
	unsigned int reg;

	asm("mrc p15, 0, %0, c0, c1, 1\n" : "=r"(reg));
	return reg;
}

static unsigned long get_gicd_base_address(void)
{
#ifdef CONFIG_ARM_GIC_BASE_ADDRESS
	return CONFIG_ARM_GIC_BASE_ADDRESS + GIC_DIST_OFFSET;
#else
	unsigned periphbase;

	/* get the GIC base address from the CBAR register */
	asm("mrc p15, 4, %0, c15, c0, 0\n" : "=r" (periphbase));

	/* the PERIPHBASE can be mapped above 4 GB (lower 8 bits used to
	 * encode this). Bail out here since we cannot access this without
	 * enabling paging.
	 */
	if ((periphbase & 0xff) != 0) {
		printf("nonsec: PERIPHBASE is above 4 GB, no access.\n");
		return -1;
	}

	return (periphbase & CBAR_MASK) + GIC_DIST_OFFSET;
#endif
}

/* Define a specific version of this function to enable any available
 * hardware protections for the reserved region */
void __weak protect_secure_section(void) {}

static void relocate_secure_section(void)
{
#ifdef CONFIG_ARMV7_SECURE_BASE
	size_t sz = __secure_end - __secure_start;
	unsigned long szflush = ALIGN(sz + 1, CONFIG_SYS_CACHELINE_SIZE);

	memcpy((void *)CONFIG_ARMV7_SECURE_BASE, __secure_start, sz);

	flush_dcache_range(CONFIG_ARMV7_SECURE_BASE,
			   CONFIG_ARMV7_SECURE_BASE + szflush);
	protect_secure_section();
	invalidate_icache_all();
#endif
}

static void kick_secondary_cpus_gic(unsigned long gicdaddr)
{
	/* kick all CPUs (except this one) by writing to GICD_SGIR */
	writel(1U << 24, gicdaddr + GICD_SGIR);
}

void __weak smp_kick_all_cpus(void)
{
	unsigned long gic_dist_addr;

	gic_dist_addr = get_gicd_base_address();
	if (gic_dist_addr == -1)
		return;

	kick_secondary_cpus_gic(gic_dist_addr);
}

__weak void psci_board_init(void)
{
}

int armv7_init_nonsec(void)
{
	unsigned int reg;
	unsigned itlinesnr, i;
	unsigned long gic_dist_addr;

	/* check whether the CPU supports the security extensions */
	reg = read_id_pfr1();
	if ((reg & 0xF0) == 0) {
		printf("nonsec: Security extensions not implemented.\n");
		return -1;
	}

	/* the SCR register will be set directly in the monitor mode handler,
	 * according to the spec one should not tinker with it in secure state
	 * in SVC mode. Do not try to read it once in non-secure state,
	 * any access to it will trap.
	 */

	gic_dist_addr = get_gicd_base_address();
	if (gic_dist_addr == -1)
		return -1;

	/* enable the GIC distributor */
	writel(readl(gic_dist_addr + GICD_CTLR) | 0x03,
	       gic_dist_addr + GICD_CTLR);

	/* TYPER[4:0] contains an encoded number of available interrupts */
	itlinesnr = readl(gic_dist_addr + GICD_TYPER) & 0x1f;

	/* set all bits in the GIC group registers to one to allow access
	 * from non-secure state. The first 32 interrupts are private per
	 * CPU and will be set later when enabling the GIC for each core
	 */
	for (i = 1; i <= itlinesnr; i++)
		writel((unsigned)-1, gic_dist_addr + GICD_IGROUPRn + 4 * i);

	psci_board_init();

	/*
	 * Relocate secure section before any cpu runs in secure ram.
	 * smp_kick_all_cpus may enable other cores and runs into secure
	 * ram, so need to relocate secure section before enabling other
	 * cores.
	 */
	relocate_secure_section();

#ifndef CONFIG_ARMV7_PSCI
	smp_set_core_boot_addr((unsigned long)secure_ram_addr(_smp_pen), -1);
	smp_kick_all_cpus();
#endif

	/* call the non-sec switching code on this CPU also */
	secure_ram_addr(_nonsec_init)();
	return 0;
}

 

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
×
×
  • Create New...

Important Information

Terms of Use - Privacy Policy - Guidelines