2. 功能概述

2.1. 目的

cv180x/cv181x/cv184x列处理器在主板上 Bootloader 采用 U-boot-2021.10。当配置的不同外围处理器的(亦即开发版和公版上相异),需要修改 U-boot 相关程序代码,主要包括缓存器(registers), 系统配置档(configuration)和驱动程序(drivers)。

2.2. U-boot 目录结构

下表列出常用修改目录和档案

目录名

描述

arch

RISC-V处理器开发相关程序代码。

arch/arm/dts or arch/riscv/dts

Linux/uboot共享 DTS配置文件。

DTS 实际档案存放路径(非在u-boot folder 底下)为

sdk_source/build/boards/$(CHIP_ARCH)/$(BOARD)/dts_arm

(arm)/$(BOARD).dts (for cv184x)

ex: cv184x 处理器系列 EVB board名称为 cv1842hp_wevb_0014a_spinor

sdk_source/build/boards/cv184x/cv1842hp_wevb_0014a_spinor/

dts_arm/$(BOARD).dts

configs

uboot config配置文件。

configs 实际档案存放路径为

sdk_source/build/boards/$(CHIP_ARCH)/$(BOARD)/u-boot/

cvitek_$(BOARD)_defconfig

defconfig: uboot 原生或新增configuration

ex: cv184x 处理器系列 EVB board名称为 cv1842hp_wevb_0014a_spinor

sdk_source/build/boards/cv184x/cv1842hp_wevb_0014a_spinor/

u-boot/cvitek_cv1842hp_wevb_0014a_spinor_defconfig

Board

各家SOC处理器厂商开发版相关程序代码,EVB开机之后需要配置的板端设定。

cvitek.h : 设定GPIO definition 和不同EVB相异处

cvi_board_init.c: 控制EVB板段I/O, PINMUX外围处理器设置

board.c/cvitek.h 实际档案存放路径为

sdk_source/build/boards/$(CHIP_ARCH)/$(BOARD)/u-boot/ cvi_board_init.c

sdk_source/build/boards/$(CHIP_ARCH)/$(BOARD)/u-boot/ cvitek.h

ex: cv184x 处理器系列 EVB board名称为 cv1842hp_wevb_0014a_spinor

sdk_source/build/boards/cv184x/cv1842hp_wevb_0014a_spinor/

u-boot/cvi_board_init.c

sdk_source/build/boards/cv184x/cv1842hp_wevb_0014a_spinor/

u-boot/cvitek.h

Include

Header files

Include/configs

cv184x-asic.h 设定boot command/configuration.

cmd

Uboot console 指令实作程序代码

drivers

Ethernet, usb, storage等相关驱动程序