add(system): Add new borad H13_PV.

This commit is contained in:
kangjun
2024-06-07 10:44:51 +08:00
parent 461754dd60
commit af06caa161
68 changed files with 18914 additions and 0 deletions

View File

@@ -0,0 +1,32 @@
#
#config file for sun8iw21
#
SUPPORT_BOARD=qg3101 r853s v851 v853 v853s r853
ARCH = arm
PLATFORM = sun8iw21p1
CFG_BOOT0_RUN_ADDR=0x20000
CFG_SYS_INIT_RAM_SIZE=0x10000
CFG_FES1_RUN_ADDR=0x28000
CFG_SBOOT_RUN_ADDR=0x20480
CFG_SUNXI_GPIO_V2=y
#CFG_SUNXI_FDT=y
#LOGO
CFG_BOOT0_LOGO_TO_KERNEL=y
#ISP
CFG_BOOT0_WIRTE_RTC_TO_ISP=y
CFG_ISPFLAG_RTC_INDEX=0x1
CFG_ISPFLAG_RTC_VALUE=0x1
CFG_SUNXI_EFUSE =y
#E907
CFG_RISCV_E907=y
CFG_SUNXI_ELF=y
CFG_MELISELF_LOAD_ADDR=0x43080000
#E907 interrupt table info update
#CFG_UPDATA_IRQ_TAB=y

View File

@@ -0,0 +1,63 @@
#
#config file for sun8iw21 fastboot
#
#stroage
FILE_EXIST=$(shell if [ -f $(TOPDIR)/board/$(PLATFORM)/common.mk ]; then echo yes; else echo no; fi;)
EXT_FILE_EXIST=$(shell if [ -f $(TOPDIR)/board/$(PLATFORM)/common$(LICHEE_BOARD).mk ]; then echo yes; else echo no; fi;)
ifeq (x$(EXT_FILE_EXIST),xyes)
include $(TOPDIR)/board/$(PLATFORM)/common$(LICHEE_BOARD).mk
else ifeq (x$(FILE_EXIST),xyes)
include $(TOPDIR)/board/$(PLATFORM)/common.mk
else
include $(TOPDIR)/board/$(CP_BOARD)/common.mk
endif
MODULE=spinorfastboot
CFG_SUNXI_SPINOR =y
CFG_SUNXI_SPI =y
CFG_SUNXI_SPIF =y
CFG_SUNXI_DMA =y
CFG_SPI_USE_DMA =y
CFG_SPINOR_UBOOT_OFFSET=128
#CFG_SUNXI_FDT=y
CFG_BOOT0_LOAD_KERNEL=y
CFG_KERNEL_BOOTIMAGE=y
CFG_KERNEL_CHECKSUM=n #y will check kernel checksum in bimage, but slower
CFG_KERNEL_LOAD_ADDR=0x40007800
CFG_SUNXI_FDT_ADDR=0x41d00000
#CFG_LOAD_DTB_FROM_KERNEL=y
CFG_SUNXI_NO_UPDATE_FDT_CHOSEN=y
#CFG_SUNXI_SUPPORT_RAMDISK=y
#CFG_RAMDISK_ADDR=0x43000000
CFG_SUNXI_GPT=y
CFG_SPINOR_GPT_ARD=4064 # 0 or 40960 sector
CFG_SUNXI_ENV=y
CFG_SUNXI_ENV_SIZE=0x1000 # linux should be the same with LICHEE_REDUNDANT_ENV_SIZE.
CFG_SUNXI_HAVE_REDUNDENV=y
#IR STATE
CFG_BOOT0_WRITE_IRSATTE_TO_ISP=y
CFG_SUNXI_PHY_KEY=y
CFG_GPADC_KEY=y
CFG_BOOT0_LOAD_FLASH=y
CFG_BOOT0_LOAD_ISPPARM=y
CFG_ISPPARAM_LOAD_ADDR=0x43BFE000
CFG_ISPPARAM_SIZE=0x10 #unit:sector
CFG_SPINOR_ISPPARAM_OFFSET=CFG_SPINOR_UBOOT_OFFSET - CFG_ISPPARAM_SIZE - 0x8
CFG_SET_GPIO_NEW=y
#ISP
CFG_BOOT0_WIRTE_RTC_TO_ISP=y
CFG_ISPFLAG_RTC_INDEX=0x1
CFG_ISPFLAG_RTC_VALUE=0x1
CFG_SUNXI_EFUSE =y
CFG_MELISELF_LOAD_ADDR=0x43080000

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,481 @@
#
# Automatically generated file; DO NOT EDIT.
# Melis3.x SDK Configuration
#
#
# Kernel Setup
#
#
# ARCH Support
#
CONFIG_RISCV=y
#
# RISC-V ARCH Setup
#
CONFIG_SUPPORT_FP_KERNEL=y
CONFIG_RV32=y
CONFIG_RV_MACHINE_MODE=y
CONFIG_RV_CLINT=y
# CONFIG_CPU_DCACHE_DISABLE is not set
CONFIG_ARCH_RISCV_FPU=y
# CONFIG_FPU_FLOAT is not set
CONFIG_FPU_DOUBLE=y
#
# Sunxi Platform Support
#
# CONFIG_CPUFREQ_SUPPORT is not set
CONFIG_PANIC_CLI=y
CONFIG_PANIC_CLI_PWD=y
#
# RTOS Kernel Setup
#
CONFIG_RTTKERNEL=y
#
# RT-Thread Kernel Setup
#
CONFIG_RT_NAME_MAX=32
# CONFIG_RT_USING_ARCH_DATA_TYPE is not set
# CONFIG_SMP is not set
CONFIG_RT_ALIGN_SIZE=8
# CONFIG_RT_THREAD_PRIORITY_8 is not set
CONFIG_RT_THREAD_PRIORITY_32=y
# CONFIG_RT_THREAD_PRIORITY_256 is not set
CONFIG_RT_THREAD_PRIORITY_MAX=32
CONFIG_RT_USING_OVERFLOW_CHECK=y
CONFIG_RT_USING_HOOK=y
CONFIG_RT_USING_IDLE_HOOK=y
CONFIG_RT_IDEL_HOOK_LIST_SIZE=4
CONFIG_IDLE_THREAD_STACK_SIZE=256
CONFIG_RT_USING_TIMER_SOFT=y
CONFIG_RT_TIMER_THREAD_PRIO=8
CONFIG_RT_TIMER_THREAD_STACK_SIZE=8192
CONFIG_RT_DEBUG=y
# CONFIG_RT_DEBUG_COLOR is not set
# CONFIG_RT_DEBUG_INIT_CONFIG is not set
# CONFIG_RT_DEBUG_THREAD_CONFIG is not set
# CONFIG_RT_DEBUG_SCHEDULER_CONFIG is not set
# CONFIG_RT_DEBUG_IPC_CONFIG is not set
# CONFIG_RT_DEBUG_TIMER_CONFIG is not set
# CONFIG_RT_DEBUG_IRQ_CONFIG is not set
# CONFIG_RT_DEBUG_MEM_CONFIG is not set
# CONFIG_RT_DEBUG_SLAB_CONFIG is not set
# CONFIG_RT_DEBUG_MEMHEAP_CONFIG is not set
# CONFIG_RT_DEBUG_MODULE_CONFIG is not set
#
# Inter-Thread communication
#
CONFIG_RT_USING_SEMAPHORE=y
CONFIG_RT_USING_MUTEX=y
CONFIG_RT_USING_EVENT=y
CONFIG_RT_USING_MAILBOX=y
CONFIG_RT_USING_MESSAGEQUEUE=y
# CONFIG_RT_USING_PIPE is not set
# CONFIG_RT_USING_RINGBUFFER is not set
CONFIG_RT_USING_WAITQUEUE=y
CONFIG_RT_USING_WORKQUEUE=y
# CONFIG_RT_USING_COMPLETION is not set
# CONFIG_RT_USING_SIGNALS is not set
#
# Memory Management
#
CONFIG_RT_USING_MEMPOOL=y
CONFIG_RT_USING_MEMHEAP=y
# CONFIG_RT_USING_NOHEAP is not set
CONFIG_RT_USING_SMALL_MEM=y
# CONFIG_RT_USING_SLAB is not set
# CONFIG_RT_USING_MEMHEAP_AS_HEAP is not set
# CONFIG_RT_USING_MEMTRACE is not set
CONFIG_RT_USING_HEAP=y
#
# Kernel Device Object
#
CONFIG_RT_USING_DEVICE=y
CONFIG_RT_USING_DEVICE_OPS=y
# CONFIG_RT_USING_INTERRUPT_INFO is not set
CONFIG_RT_USING_CONSOLE=y
CONFIG_RT_CONSOLEBUF_SIZE=256
CONFIG_RT_CONSOLE_DEVICE_NAME="uart"
CONFIG_RT_VER_NUM=0x30104
CONFIG_RT_USING_TASK_PERF_MONITOR=y
# CONFIG_RT_SUPPORT_OPENOCD is not set
# CONFIG_RT_JLINK_RTT is not set
# CONFIG_SLAB_DEBUG is not set
CONFIG_CHECK_PREEMPT_LEVEL_IN_IPC=y
# CONFIG_AW_CHECK_MELIS_TASK_EXIT is not set
CONFIG_CONSISTENT_CONTEXT_SWITCH=y
CONFIG_NEST_INTERRUPT=y
CONFIG_HZ=1000
# CONFIG_KERNEL_SAMPLE_TEST is not set
#
# Drivers Setup
#
CONFIG_UART_BAUD_RATE=115200
#
# Melis Source Support
#
CONFIG_DRIVER_GPIO=y
# CONFIG_DRIVER_TWIBUS is not set
# CONFIG_DRIVER_SPIBUS is not set
# CONFIG_DRIVER_PWM is not set
CONFIG_DRIVER_SERIAL=y
# CONFIG_DRIVER_DMA is not set
CONFIG_DRIVER_CCMU=y
# CONFIG_DRIVER_NAND_FLASH is not set
#
# SoC HAL Drivers
#
#
# Common Option
#
CONFIG_DRIVER_SYSCONFIG=y
CONFIG_DMA_VMAREA_START_ADDRESS=0x80000000
# CONFIG_DMA_COHERENT_HEAP is not set
#
# CCMU Devices
#
CONFIG_DRIVERS_CCMU=y
CONFIG_DRIVERS_SUNXI_CLK=y
# CONFIG_HAL_TEST_CLK is not set
#
# UART Devices
#
CONFIG_DRIVERS_UART=y
# CONFIG_HAL_TEST_UART is not set
# CONFIG_SUNXI_UART_SUPPORT_POLL is not set
# CONFIG_SUNXI_UART_REGISTER_UART0 is not set
# CONFIG_SUNXI_UART_REGISTER_UART1 is not set
# CONFIG_SUNXI_UART_REGISTER_UART2 is not set
CONFIG_SUNXI_UART_REGISTER_UART3=y
CONFIG_CLI_UART_PORT=3
#
# GPIO Devices
#
CONFIG_DRIVERS_GPIO=y
# CONFIG_HAL_TEST_GPIO is not set
#
# DMA Devices
#
CONFIG_DRIVERS_DMA=y
# CONFIG_HAL_TEST_DMA is not set
#
# TWI Devices
#
CONFIG_DRIVERS_TWI=y
# CONFIG_HAL_TEST_TWI is not set
#
# SPI Devices
#
# CONFIG_DRIVERS_SPI is not set
#
# PWM Devices
#
# CONFIG_DRIVERS_PWM is not set
#
# GPADC Devices
#
# CONFIG_DRIVERS_GPADC is not set
#
# Message Box Devices
#
CONFIG_DRIVERS_MSGBOX=y
# CONFIG_DRIVERS_MSGBOX_SX is not set
CONFIG_DRIVERS_MSGBOX_AMP=y
# CONFIG_HAL_TEST_MSGBOX is not set
#
# VIN Devices
#
CONFIG_DRIVERS_VIN=y
# CONFIG_ENABLE_AIISP is not set
CONFIG_ISP_READ_THRESHOLD=y
# CONFIG_ISP_FAST_CONVERGENCE is not set
# CONFIG_ISP_ONLY_HARD_LIGHTADC is not set
# CONFIG_ISP_HARD_LIGHTADC is not set
CONFIG_ISP_NUMBER=2
#
# sensor driver select
#
# CONFIG_SENSOR_GC1054_MIPI is not set
# CONFIG_SENSOR_GC1084_MIPI is not set
# CONFIG_SENSOR_GC2053_MIPI is not set
# CONFIG_SENSOR_GC2083_MIPI is not set
# CONFIG_SENSOR_GC4663_MIPI is not set
# CONFIG_SENSOR_SC2355_MIPI is not set
# CONFIG_SENSOR_SC2336_MIPI is not set
# CONFIG_SENSOR_SC3336_MIPI is not set
# CONFIG_SENSOR_SC500AI_MIPI is not set
# CONFIG_SENSOR_SC5336_MIPI is not set
# CONFIG_SENSOR_TP9950_MIPI is not set
# CONFIG_SENSOR_TP9953_DVP is not set
# CONFIG_SENSOR_IMX319_MIPI is not set
# CONFIG_SENSOR_IMX335_MIPI is not set
# CONFIG_SENSOR_SC035HGS_MIPI is not set
# CONFIG_SENSOR_TP2815_MIPI is not set
# CONFIG_SENSOR_GC0406_MIPI is not set
# CONFIG_SENSOR_BF2253L_MIPI is not set
# CONFIG_SENSOR_N5_DVP is not set
# CONFIG_SENSOR_BF2257CS_MIPI is not set
# CONFIG_SENSOR_F355P_MIPI is not set
# CONFIG_SENSOR_F355P_DVP is not set
# CONFIG_SENSOR_F37P_DVP is not set
# CONFIG_SENSOR_F37P_MIPI is not set
CONFIG_SENSOR_OV02B10_MIPI=y
#
# Osal Setup
#
CONFIG_DRIVER_OSAL_CFG=y
CONFIG_SYSCONF_BUILDIN=y
#
# Drivers Test Sample
#
# CONFIG_SUNXI_PWM_TEST is not set
# CONFIG_SUNXI_GPIO_TEST is not set
# CONFIG_SUNXI_TWI_TEST is not set
# CONFIG_SUNXI_RTC_TEST is not set
# CONFIG_SUNXI_UART_TEST is not set
# CONFIG_SUNXI_STANDBY_TEST is not set
#
# Components Support
#
#
# Thirdparty Components Support
#
#
# RT-Thread DFS Support
#
# CONFIG_RT_USING_DFS is not set
#
# OpenAMP Support
#
CONFIG_SUPPORT_LIBMETAL=y
CONFIG_SUPPORT_AMP=y
CONFIG_AMP_SLAVE_MODE=y
CONFIG_MBOX_CHANNEL=0
CONFIG_MBOX_QUEUE_LENGTH=16
# CONFIG_RPMSG_DEMO is not set
CONFIG_RPMSG_NOTIFY=y
# CONFIG_RPMSG_SPEEDTEST is not set
CONFIG_AMP_SHARE_IRQ=y
CONFIG_RPMSG_CLIENT=y
# CONFIG_RPMSG_CLIENT_TEST is not set
CONFIG_RPMSG_CLIENT_QUEUE_SIZE=16
# CONFIG_RPMSG_CLIENT_DEBUG is not set
CONFIG_RPMSG_HEARBEAT=y
CONFIG_RPMSG_REMOTE_NAME="e907_rproc"
CONFIG_SLAVE_EARLY_BOOT=y
CONFIG_RPBUF_DEMO=y
# CONFIG_AMP_TRACE_SUPPORT is not set
# CONFIG_CXX is not set
#
# Command shell
#
CONFIG_RT_USING_FINSH=y
CONFIG_FINSH_THREAD_NAME="tshell"
CONFIG_FINSH_USING_HISTORY=y
CONFIG_FINSH_HISTORY_LINES=5
CONFIG_FINSH_USING_SYMTAB=y
CONFIG_FINSH_USING_DESCRIPTION=y
# CONFIG_FINSH_ECHO_DISABLE_DEFAULT is not set
CONFIG_FINSH_THREAD_PRIORITY=21
CONFIG_FINSH_THREAD_STACK_SIZE=16384
CONFIG_FINSH_CMD_SIZE=80
# CONFIG_FINSH_USING_AUTH is not set
CONFIG_FINSH_USING_MSH=y
CONFIG_FINSH_USING_MSH_DEFAULT=y
# CONFIG_FINSH_USING_MSH_ONLY is not set
CONFIG_FINSH_ARG_MAX=10
#
# Commands
#
CONFIG_COMMAND_FORK=y
# CONFIG_COMMAND_MEM_LAYOUT is not set
CONFIG_COMMAND_DATE=y
# CONFIG_COMMAND_EXIT is not set
# CONFIG_COMMAND_UPDATE is not set
# CONFIG_COMMAND_INSMOD is not set
# CONFIG_COMMAND_MEMTESTER is not set
# CONFIG_COMMAND_PQD is not set
# CONFIG_COMMAND_MMLK is not set
# CONFIG_COMMAND_HELLOWORLD is not set
# CONFIG_COMMAND_RTT_VERSION is not set
# CONFIG_COMMAND_WATCHDOG is not set
# CONFIG_COMMAND_MMC_READ is not set
# CONFIG_COMMAND_MMC_WRITE is not set
# CONFIG_COMMAND_PRODUCT is not set
CONFIG_COMMAND_BACKTRACE=y
# CONFIG_COMMAND_REBOOT is not set
CONFIG_COMMAND_PANIC=y
CONFIG_COMMAND_PRINT_MEM=y
CONFIG_COMMAND_WRITE_MEM=y
# CONFIG_COMMAND_LISTIRQ is not set
# CONFIG_COMMAND_SLABINFO is not set
# CONFIG_COMMAND_UNAME is not set
# CONFIG_COMMAND_CPUFREQ is not set
#
# Iobox Command
#
# CONFIG_IOBOX_TAIL is not set
# CONFIG_IOBOX_TOUCH is not set
# CONFIG_IOBOX_GREP is not set
# CONFIG_IOBOX_HEXDUMP is not set
# CONFIG_IOBOX_LS is not set
# CONFIG_IOBOX_RM is not set
# CONFIG_IOBOX_RWCHECK is not set
# CONFIG_IOBOX_RWSPEED is not set
# CONFIG_IOBOX_RSPEED is not set
# CONFIG_IOBOX_WSPEED is not set
# CONFIG_IOBOX_MOUNT is not set
#
# archival support
#
# CONFIG_SUBSYS_ARCHIVAL is not set
CONFIG_PTHREAD=y
# CONFIG_BENCHMARK is not set
# CONFIG_KERNEL_COMPRESS is not set
CONFIG_LIBC_MMAP=y
#
# Allwinner Components Support
#
# CONFIG_SUBSYS_KGDB is not set
#
# AW Multi-Console Compenents
#
CONFIG_SUBSYS_MULTI_CONSOLE=y
# CONFIG_MULTI_CONSOLE_DEBUG is not set
# CONFIG_MULTI_CONSOLE_REDIRECT_CMD is not set
CONFIG_MULTI_CONSOLE_RPMSG=y
#
# RPBuf framework
#
CONFIG_COMPONENTS_RPBUF=y
CONFIG_COMPONENTS_RPBUF_SERVICE_RPMSG=y
CONFIG_COMPONENTS_RPBUF_CONTROLLER=y
CONFIG_COMPONENTS_RPBUF_RPMSG_DEMO=y
CONFIG_VIRT_LOG=y
CONFIG_VIRT_LOG_SIZE=4
# CONFIG_SUBSYS_SAMPLES is not set
CONFIG_STANDBY=y
CONFIG_STANDBY_MSGBOX=y
#
# standby config
#
CONFIG_STANDBY_MSGBOX_CHANNEL=1
CONFIG_STANDBY_MSGBOX_IRQ=144
CONFIG_DEBUG_BACKTRACE=y
CONFIG_COMPONENTS_WAITQUEUE=y
#
# Libc library
#
CONFIG_LIBCNEWLIB=y
# CONFIG_LIBCNONE is not set
CONFIG_ARMCPU_HIGH_VECTOR_ADDRESS=y
CONFIG_IOREGS_VBASE=0xf0000000
CONFIG_SRAM_VBASE=0xf0000000
CONFIG_CLK_TUNING_VBASE=0xffff2000
CONFIG_ROOTFS_FATFS=y
# CONFIG_CHANGE_COMPRESS_METHOD is not set
# CONFIG_DOUBLE_FREE_CHECK is not set
# CONFIG_CMSIS is not set
#
# Environment Setup
#
# CONFIG_SDK_RELEASE is not set
CONFIG_DEBUG_INFO=y
# CONFIG_DEBUG_MACROS is not set
# CONFIG_MODULES is not set
CONFIG_MODVERSIONS=y
# CONFIG_BOOT_LOGO_BMP is not set
# CONFIG_SHOW_FULL_VERSION is not set
CONFIG_CROSS_COMPILE="riscv64-unknown-elf-"
# CONFIG_INIT_CARD_PRODUCT is not set
CONFIG_LOG_DEFAULT_LEVEL=1
# CONFIG_CC_STACKPROTECTOR_STRONG is not set
# CONFIG_LOG_RELEASE is not set
# CONFIG_BOOTUP_TURBO is not set
# CONFIG_DISABLE_ALL_DEBUGLOG is not set
# CONFIG_PRINT_TIMESTAMP is not set
CONFIG_DYNAMIC_LOG_LEVEL_SUPPORT=y
CONFIG_LOG_LEVEL_STORAGE_NONE=y
# CONFIG_LOG_LEVEL_STORAGE_RTC is not set
CONFIG_DYNAMIC_LOG_DEFAULT_LEVEL=2
# CONFIG_FRAME_POINTER is not set
CONFIG_FRAME_WARN=8192
CONFIG_UART_CLI_USE_NONE=y
# CONFIG_UART_CLI_USE_MUTEX is not set
# CONFIG_UART_CLI_USE_SPINLOCK is not set
# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
CONFIG_CC_OPTIMIZE_FOR_DEBUG=y
CONFIG_CC_OPTIMIZE_LEVEL=2
# CONFIG_ARM_UNWIND is not set
CONFIG_OS_MELIS=y
# CONFIG_KALLSYMS is not set
# CONFIG_MELIS_GENERATE_HEAD is not set
# CONFIG_DISABLE_ALL_UART_LOG is not set
#
# Toolchain Setup
#
CONFIG_TOOLCHAIN_MACH_FLAGS="-mcmodel=medany -mabi=ilp32d -march=rv32imafdcxthead"
CONFIG_TOOLCHAIN_LD_FLAGS="-melf32lriscv"
#
# Platform Setup
#
# CONFIG_SOC_SUN3IW2P2 is not set
# CONFIG_SOC_SUN3IW2P1 is not set
# CONFIG_SOC_SUN3IW1P1 is not set
# CONFIG_SOC_SUN8IW18P1 is not set
# CONFIG_SOC_SUN8IW19P1 is not set
# CONFIG_SOC_SUN20IW1P1 is not set
CONFIG_SOC_SUN20IW3P1=y
# CONFIG_SOC_SUN3I is not set
# CONFIG_SOC_SUN8I is not set
CONFIG_SOC_SUN20I=y
# CONFIG_ARCH_SUN8IW19 is not set
CONFIG_SOC_SUN20IW3=y
CONFIG_ARCH_SUN20IW3=y
CONFIG_DRAM_PHYBASE=0x43c00000
CONFIG_DRAM_VIRTBASE=0x43c00000
CONFIG_DRAM_SIZE=0x0400000
CONFIG_COHERENT_SIZE=0x00c00000
CONFIG_COHERENT_START_ADDR=0xa0000000
CONFIG_LOAD_DATA_TO_MEM_FROM_STORAGE=y

View File

@@ -0,0 +1,58 @@
;---------------------------------------------------------------------------------------------------------
; 说明: 脚本中的字符串区分大小写,用户可以修改"="后面的数值,但是不要修改前面的字符串
; 描述gpio的形式Port:端口+组内序号<功能分配><内部电阻状态><驱动能力><输出电平状态>
;---------------------------------------------------------------------------------------------------------
;----------------------------------------------------------------------------------
;i2c configuration
;----------------------------------------------------------------------------------
[twi0]
twi0_scl = port:PE04<8><1><default><default>
twi0_sda = port:PE05<8><1><default><default>
[twi1]
twi1_scl = port:PE02<8><1><default><default>
twi1_sda = port:PE03<8><1><default><default>
;[twi2]
;twi2_scl = port:PH05<4><1><default><default>
;twi2_sda = port:PH06<4><1><default><default>
;[twi3]
;twi3_scl = port:PI03<4><1><default><default>
;twi3_sda = port:PI04<4><1><default><default>
;[twi4]
;twi4_scl = port:PI01<4><1><default><default>
;twi4_sda = port:PI02<4><1><default><default>
;----------------------------------------------------------------------------------
;uart configuration
;----------------------------------------------------------------------------------
;[uart0]
;uart_tx = port:PB08<5><1><default><default>
;uart_rx = port:PB09<5><1><default><default>
;[uart1]
;uart_tx = port:PB10<5><1><default><default>
;uart_rx = port:PB11<5><1><default><default>
;[uart2]
;uart_tx = port:PH05<5><1><default><default>
;uart_rx = port:PH06<5><1><default><default>
[uart3]
uart_tx = port:PE00<7><1><default><default>
uart_rx = port:PE01<7><1><default><default>
[sensor0]
used0 = 1
reset0 = port:PD20<1><1><default><default>
pwdn0 = port:PE10<1><1><default><default>
mclk0 = port:PE12<5><1><default><default>
[sensor1]
used1 = 1
reset1 = port:PD21<1><1><default><default>
pwdn1 = port:PE10<1><1><default><default>
mclk1 = port:PE13<5><1><default><default>

View File

@@ -0,0 +1,291 @@
/*
* The OUTPUT_ARCH command specifies the machine architecture where the
* argument is one of the names used in the T-HEAD library.
*/
OUTPUT_ARCH("riscv")
OUTPUT_FORMAT("elf32-littleriscv","elf64-littleriscv","elf32-littleriscv")
MEMORY
{
/*DRAM_KERNEL: 4M */
DRAM_SEG_KRN (rwx) : ORIGIN = 0x43c00000, LENGTH = 0x00400000
}
PHDRS
{
sbi PT_LOAD FLAGS(5); /* PF_R|PF_X */
boot PT_LOAD FLAGS(5); /* PF_R|PF_X */
text PT_LOAD FLAGS(5); /* PF_R|PF_X */
rodata PT_LOAD FLAGS(4); /* PF_R */
data PT_LOAD FLAGS(6); /* PF_R|PF_W */
note PT_NOTE FLAGS(4); /* PF_R */
debug PT_NOTE FLAGS(0); /* PF_R */
}
/* This area could be used for idle thead at last.*/
__STACKSIZE__ = 4096;
/* Get Kernel Running Address */
__DRAM_KRN_RUN_ADDRESS = ORIGIN(DRAM_SEG_KRN);
/* 0x9002 is insn "ebreak". */
ENTRY(_start)
SECTIONS
{
. = __DRAM_KRN_RUN_ADDRESS;
PROVIDE(_firmware_start = .);
.head.text __DRAM_KRN_RUN_ADDRESS : AT(__DRAM_KRN_RUN_ADDRESS)
{
. = ALIGN(8);
KEEP(*(.start))
. = ALIGN(8);
} > DRAM_SEG_KRN :boot =0x9002
.dram_seg.text ADDR(.head.text) + SIZEOF(.head.text) : AT(LOADADDR(.head.text) + SIZEOF(.head.text))
{
. = ALIGN(8);
PROVIDE(__code_start = ABSOLUTE(.));
*(.init)
*(.text)
*(.text.*)
*(.text*)
*(.stub)
*(.eh_frame_hdr)
*(.eh_frame_entry)
*(.gnu.warning)
*(.gnu.linkonce.t*)
*(.glue_7)
*(.glue_7t)
*(.gcc_except_table)
*(.jcr)
*(.fini)
*(.reuse)
KEEP(*(.eh_frame))
. = ALIGN(8);
PROVIDE(__code_end = ABSOLUTE(.));
} > DRAM_SEG_KRN :text =0x9002
PROVIDE(__readonly_area_start = .);
.dram_seg.rodata ADDR(.dram_seg.text) + SIZEOF(.dram_seg.text) : AT(LOADADDR(.dram_seg.text) + SIZEOF(.dram_seg.text))
{
. = ALIGN(8);
*(.rodata)
*(.rodata.*)
*(.rodata*)
*(.srodata)
*(.srodata.*)
*(.srodata*)
*(.gnu.linkonce.r*)
*(.rel.dyn*)
*(.flash)
KEEP(*.o(.openocd_support))
KEEP(*.o(.ramdisk))
KEEP(*.o(.dtbcfgs))
. = ALIGN(8);
} > DRAM_SEG_KRN :rodata =0x9002
.dram_seg.initcall ADDR(.dram_seg.rodata) + SIZEOF(.dram_seg.rodata) : AT(LOADADDR(.dram_seg.rodata) + SIZEOF(.dram_seg.rodata))
{
. = ALIGN(8);
__initcall_start = .;
KEEP(*(.initcallearly.init))
__initcall0_start = .;
KEEP(*(.initcall0.init))
KEEP(*(.initcall0s.init))
__initcall1_start = .;
KEEP(*(.initcall1.init))
KEEP(*(.initcall1s.init))
__initcall2_start = .;
KEEP(*(.initcall2.init))
KEEP(*(.initcall2s.init))
__initcall3_start = .;
KEEP(*(.initcall3.init))
KEEP(*(.initcall3s.init))
__initcall4_start = .;
KEEP(*(.initcall4.init))
KEEP(*(.initcall4s.init))
__initcall5_start = .;
KEEP(*(.initcall5.init))
KEEP(*(.initcall5s.init))
__initcallrootfs_start = .;
KEEP(*(.initcallrootfs.init))
KEEP(*(.initcallrootfss.init))
__initcall6_start = .;
KEEP(*(.initcall6.init))
KEEP(*(.initcall6s.init))
__initcall7_start = .;
KEEP(*(.initcall7.init))
KEEP(*(.initcall7s.init))
__initcall_end = .;
__con_initcall_start = .;
KEEP(*(.con_initcall.init))
__con_initcall_end = .;
. = ALIGN(8);
} > DRAM_SEG_KRN :rodata =0x9002
.note.gnu.build-id ADDR(.dram_seg.initcall) + SIZEOF(.dram_seg.initcall) : AT(LOADADDR(.dram_seg.initcall) + SIZEOF(.dram_seg.initcall))
{
. = ALIGN(8);
*(.note.gnu.build-id)
. = ALIGN(8);
} > DRAM_SEG_KRN :rodata =0x9002
.dram_seg.ctors ADDR(.note.gnu.build-id) + SIZEOF(.note.gnu.build-id) : AT(LOADADDR(.note.gnu.build-id) + SIZEOF(.note.gnu.build-id))
{
. = ALIGN(8);
PROVIDE(__ctors_start__ = .);
KEEP(*(SORT(.ctors.*)))
KEEP(*(SORT(.ctors)))
KEEP (*(SORT(.init_array.*)))
KEEP (*(.init_array))
PROVIDE(__ctors_end__ = .);
. = ALIGN(0x8);
} > DRAM_SEG_KRN :rodata =0x9002
.dram_seg.dtors ADDR(.dram_seg.ctors) + SIZEOF(.dram_seg.ctors) : AT(LOADADDR(.dram_seg.ctors) + SIZEOF(.dram_seg.ctors))
{
. = ALIGN(8);
PROVIDE(__dtors_start__ = .);
KEEP(*(SORT(.dtors.*)))
KEEP(*(SORT(.dtors)))
KEEP (*(SORT(.fini_array.*)))
KEEP (*(.fini_array))
PROVIDE(__dtors_end__ = .);
. = ALIGN(0x8);
} > DRAM_SEG_KRN :rodata =0x9002
PROVIDE(__readonly_area_end = .);
.dram_seg.data ADDR(.dram_seg.dtors) + SIZEOF(.dram_seg.dtors) : AT(LOADADDR(.dram_seg.dtors) + SIZEOF(.dram_seg.dtors))
{
. = ALIGN(8);
KEEP(*(*.vectors*))
*(.data)
*(.data.*)
*(.readmostly.data)
*(.data1)
*(.data1.*)
/*Best in the middle of data/sdata area.*/
PROVIDE( __global_pointer$ = . + 0x400);
__tdata_start = .;
*(.tdata)
*(.tdata.*)
*(.gnu.linkonce.td.*)
__tdata_end = .;
*(.gnu.linkonce.d.*)
*(.sdata)
*(.sdata.*)
*(.sdata*)
*(.gnu.linkonce.s.*)
*(.sdata2)
*(.sdata2.*)
*(.gnu.linkonce.s2.*)
*(.got.plt)
*(.got)
. = ALIGN(8);
__fsymtab_start = .;
KEEP(*(FSymTab))
__fsymtab_end = .;
. = ALIGN(8);
. = ALIGN(8);
__vsymtab_start = .;
KEEP(*(VSymTab))
__vsymtab_end = .;
. = ALIGN(8);
} > DRAM_SEG_KRN :data =0x9002
.resource_table ADDR(.dram_seg.data) + SIZEOF(.dram_seg.data) : AT(LOADADDR(.dram_seg.data) + SIZEOF(.dram_seg.data))
{
KEEP(*(.resource_table))
} > DRAM_SEG_KRN :data
.share_irq_table ADDR(.resource_table) + SIZEOF(.resource_table) : AT(LOADADDR(.resource_table) + SIZEOF(.resource_table))
{
KEEP(*(.share_irq_table))
} > DRAM_SEG_KRN :data
/* stack for bringup process */
.dram_seg.stack ADDR(.share_irq_table) + SIZEOF(.share_irq_table) : AT(LOADADDR(.share_irq_table) + SIZEOF(.share_irq_table))
{
. = ALIGN(8);
__init_process_stack_start__ = .;
. += __STACKSIZE__;
__init_process_stack_end__ = .;
. = ALIGN(8);
} > DRAM_SEG_KRN :data
.dram_seg.bss ADDR(.dram_seg.stack) + SIZEOF(.dram_seg.stack) + SIZEOF(.dram_seg.stack) (NOLOAD) :
{
. = ALIGN(8);
*(.bss)
*(.bss.*)
*(.gnu.linkonce.b.*)
*(.sbss)
*(.sbss.*)
*(.sbss*)
*(.gnu.linkonce.sb.*)
*(.sbss2)
*(.sbss2.*)
*(.gnu.linkonce.sb2.*)
*(.scommon)
*(.dynbss)
*(COMMON)
. = ALIGN(8);
__tbss_start = .;
*(.tbss)
*(.tbss.*)
*(.gnu.linkonce.tb.*)
. = ALIGN(8);
__tbss_end = .;
} > DRAM_SEG_KRN :data
PROVIDE(__bss_start = ADDR(.dram_seg.bss));
PROVIDE(__bss_end = ABSOLUTE(.));
PROVIDE(_end = ABSOLUTE(.));
PROVIDE(_firmware_end = .);
.note 0 : { *(.note) } :note
.stab 0 : { *(.stab) } :note
.stabstr 0 : { *(.stabstr) } :note
.stab.excl 0 : { *(.stab.excl) } :note
.stab.exclstr 0 : { *(.stab.exclstr) } :note
.stab.index 0 : { *(.stab.index) } :note
.stab.indexstr 0 : { *(.stab.indexstr) } :note
.reginfo 0 : { *(.reginfo) } :note
.comment 0 : { *(.comment) } :note
.mdebug 0 : { *(.mdebug) } :note
/* DWARF 1 */
.debug 0 : { *(.debug) }
.line 0 : { *(.line) }
/* GNU DWARF 1 extensions */
.debug_srcinfo 0 : { *(.debug_srcinfo) }
.debug_sfnames 0 : { *(.debug_sfnames) }
/* DWARF 1.1 and DWARF 2 */
.debug_aranges 0 : { *(.debug_aranges) }
.debug_pubnames 0 : { *(.debug_pubnames) }
/* DWARF 2 */
.debug_info 0 : { *(.debug_info .gnu.linkonce.wi.*) }
.debug_abbrev 0 : { *(.debug_abbrev) }
.debug_line 0 : { *(.debug_line) }
.debug_frame 0 : { *(.debug_frame) }
.debug_str 0 : { *(.debug_str) }
.debug_loc 0 : { *(.debug_loc) }
.debug_macinfo 0 : { *(.debug_macinfo) }
/* SGI/MIPS DWARF 2 extensions */
.debug_weaknames 0 : { *(.debug_weaknames) }
.debug_funcnames 0 : { *(.debug_funcnames) }
.debug_typenames 0 : { *(.debug_typenames) }
.debug_varnames 0 : { *(.debug_varnames) }
/* DWARF 3 */
.debug_pubtypes 0 : { *(.debug_pubtypes) }
.debug_ranges 0 : { *(.debug_ranges) }
.riscv.attributes 0 : { KEEP (*(.riscv.attributes)) KEEP (*(.gnu.attributes)) }
/DISCARD/ : { *(.note.GNU-stack) }
}

View File

@@ -0,0 +1,5 @@
obj-y += main.o
ifeq ($(CONFIG_FF_TRACE),y)
subdir-ccflags-y += -finstrument-functions
endif

View File

@@ -0,0 +1,45 @@
#include <stdio.h>
#include <hal_timer.h>
#include <openamp/sunxi_helper/openamp.h>
extern int csi_init(int argc, const char **argv);
extern int msh_exec(char *cmd, int length);
int app_entry(void *param)
{
#ifdef CONFIG_DRIVERS_VIN
int ret;
ret = csi_init(0, NULL);
if (ret) {
rpmsg_notify("rt-media", NULL, 0);
printf("csi init fail!\n");
}
#if 1
rpmsg_notify("twi0", NULL, 0);
rpmsg_notify("twi1", NULL, 0);
rpmsg_notify("tdm0", NULL, 0);
rpmsg_notify("isp0", NULL, 0);
rpmsg_notify("isp1", NULL, 0);
rpmsg_notify("scaler0", NULL, 0);
rpmsg_notify("scaler1", NULL, 0);
rpmsg_notify("scaler4", NULL, 0);
rpmsg_notify("scaler5", NULL, 0);
rpmsg_notify("scaler8", NULL, 0);
rpmsg_notify("scaler9", NULL, 0);
rpmsg_notify("scaler12", NULL, 0);
rpmsg_notify("vinc0", NULL, 0);
rpmsg_notify("vinc1", NULL, 0);
rpmsg_notify("vinc4", NULL, 0);
rpmsg_notify("vinc5", NULL, 0);
rpmsg_notify("vinc8", NULL, 0);
rpmsg_notify("vinc9", NULL, 0);
rpmsg_notify("vinc12", NULL, 0);
#endif
#else
hal_msleep(200);
rpmsg_notify("rt-media", NULL, 0);
#endif
//msh_exec("dmesg", strlen("dmesg"));
return 0;
}

View File

@@ -0,0 +1,10 @@
# define the verions of the image
# format: main
# such as 1, 2
# NOTICE: the range of main version is from 0 to 31,
# ROOT_ROLLBACK_USE ---0:not used,1:used
# when you change the version, you must increase main version, and never reduce the versions.
# the default version is 0
ROOT_ROLLBACK_USED = 1
MAIN_VERSION = 0