目录
一、 sys_config.fex 配置文件
1、全志平台开发,大部分硬件配置不像NXP-PowerPC一样通过dts设备树上配置透传到内核使用,而是通过sys_config配置文件进行相关硬件配置解析的。
2、官网说明
https://linux-sunxi.org/Fex_Guide#FEX_Description
3、举例说明
i2c设备为例子
[i2c_deivces]
i2c_device_num = 1 //总线数目
[i2c_bus0]
i2c_bus_speed = 100 //总线速率
-------------------------------------------------------------------
i2c configuration
Two Wire Interface (i²c) configuration for TWI port 0
twi0_used: 0 to disable; 1 to enable
twi0_scl: TWI Serial CLock GPIO configuration
twi0_sda: TWI Serial Data GPIO configuration
[twi0_para]
twi0_used = 1
twi0_scl = port:PB00<2><default><default><default>
twi0_sda = port:PB01<2><default><default><default>
------------------------------------------------------------------
[i2c_device_name] //设备名称
i2c_bus_num = 1 //挂载哪条总线
i2c_slave_addr = 0x90 //从机地址
------------------------------------------------------------------
//配置文件解析接口
script_item_value_type_e
script_get_item(char *main_key, char *sub_key, script_item_u *item) //解析.fex文件里面的配置
再进行相关设备的驱动添加
二、sys_partition.fex 配置文件
在sys_partition.fex(sys_partition_nor.fex)分区表中,每个分区都有其特定的作用和配置原则。例如,bootloader分区用于存储系统的启动代码,env分区用于存储系统的环境变量,boot分区用于存储系统的启动镜像等。这些分区的配置都是根据系统的需求和硬件的特性来设置的。
sys_partition.fex分区表的配置原则包括:
1. 分区的单位:分区的单位是sector,每个sector的大小是512bytes。
2. 分区的大小:每个分区的大小是根据系统的需求和硬件的特性来设置的。
3. 分区表属性说明:每个分区都有其特定的属性,例如 readable、writable、 executable等。
在sys_partition.fex分区表中,每个分区的作用和配置如下:
1. bootloader分区:用于存储系统的启动代码,大小为1MB,位于flash存储器的起始位置。
2. env分区:用于存储系统的环境变量,大小为128KB,位于flash存储器的第二个分区。
3. boot分区:用于存储系统的启动镜像,大小为4MB,位于flash存储器的第三个分区。
在spinor 存储介质下,通过 u-boot-sun8iw21p1.bin 进行烧录,u-boot-spinor-sun8iw21p1.bin 启动,使用sys_partition_nor.fex作为分区表。
在非spinor介质(spinand、emmc、sdnand),通过u-boot-sun8iw21p1.bin进行烧录和启动,使用sys_partition.fex作为分区表。
;******************************************************************************************
; 分区配置
;
;
; partition 定义范例:
; [partition] ; //表示是一个分区
; name = USERFS2 ; //分区名称
; size = 16384 ; //分区大小 单位: 扇区.分区表示个数最多2^31 * 512 = 2T
; downloadfile = "123.fex" ; //下载文件的路径和名称,可以使用相对路径,相对是指相对于image.cfg文件所在分区。也可以使用绝对路径
; keydata = 0x8000 ; //私有数据分区,重新量产数据将不丢失
; encrypt = 1 ; //采用加密方式烧录,将提供数据加密,但损失烧录速度
; user_type = ? ; //私有用法,必须按照分区说明进行更改
; verify = 1 ; //要求量产完成后校验是否正确
;
; 注:1、name唯一, 不允许同名
; 2、name最大12个字符
; 3、size = 0, 将创建一个无大小的空分区
; 4、为了安全和效率考虑,分区大小最好保证为16M字节的整数倍
;******************************************************************************************
启动配置文件 sys_config.fex
;----------------------------------------------------------------------------------
;[target] system bootup configuration
;boot_clock = CPU boot frequency, Unit: MHz
;storage_type = boot medium, 0-nand, 1-card0, 2-card2, -1(defualt)auto scan
;----------------------------------------------------------------------------------
[target]
boot_clock = 1000
storage_type = 0