全志V3s学习记录(5)uboot:传参(boot.scr)参数配置(script.bin)

参考:
全志v3s学习笔记(4)——u-boot传参(boot.scr)和参数配置(script.bin)文件

一、boot.scr的简介与制作

 在uboot环境变量里面需要设置内核和设备树的加载地址,使用boot.scr可以直接传递这些参数。

  • boot.scr是由boot.cmd使用mkimage工具生成的。
  • mkimage工具在uboot/tools文件夹下
  • boot.scr放在TF卡第一分区。

1.1 BSP内核配置

在uboot根目录下新建

vim boot-bsp.cmd

boot-bsp.cmd内容为:

setenv bootargs console=ttyS0,115200 panic=5 rootwait root=/dev/mmcblk0p2 earlyprintk rw
setenv bootm_boot_mode sec
setenv machid 1029
load mmc 0:1 0x41000000 uImage
load mmc 0:1 0x41d00000 script.bin
bootm 0x41000000

  • 第一行setenv命令,设定了变量bootargs(启动参数)为:通过tty0和ttyS0串口输出启动信息;启动失败延迟5秒重启,根文件在TF卡的第二分区,可读写;
  • 第二行指定了bootm 模式
  • 第三行指定解析设备树
  • 第四行指定了将压缩后的内核uImage加载到 0x41000000 的位置
  • 第五行指定了将 script.bin 加载到 0x41d00000 的位置
  • 第六行为从加载地址启动内核的命令

1.2 主线内核配置

boot.cmd(主线Linux)

在uboot根目录下新建

vim boot.cmd

写入以下内容

setenv bootargs console=ttyS0,115200 root=/dev/mmcblk0p2 rootwait panic=10 earlyprintk rw
load mmc 0:1 0x41000000 zImage
load mmc 0:1 0x41800000 sun8i-v3s-licheepi-zero-dock.dtb
bootz 0x41000000 - 0x41800000

480x272 LCD配置

setenv bootargs console=ttyS0,115200 root=/dev/mmcblk0p2 rootwait panic=10 earlyprintk rw
setenv video-mode sunxi:480x272-18@60,monitor=lcd
setenv lcd-mode x:480,y:272,depth:18,pclk_khz:10000,le:42,ri:8,up:11,lo:4,hs:1,vs:1,sync:3,vmode:0
setenv stderr serial,lcd
setenv stdout serial,lcd
load mmc 0:1 0x41000000 zImage
load mmc 0:1 0x41800000 sun8i-v3s-licheepi-zero-with-480x272-lcd.dtb
bootz 0x41000000 - 0x41800000

800x480 LCD配置

setenv bootargs console=ttyS0,115200 root=/dev/mmcblk0p2 rootwait panic=10 earlyprintk rw
setenv video-mode sunxi:800x480-18@60,monitor=lcd
setenv lcd-mode x:800,y:480,depth:18,pclk_khz:10000,le:42,ri:8,up:11,lo:4,hs:1,vs:1,sync:3,vmode:0
setenv stderr serial,lcd
setenv stdout serial,lcd
load mmc 0:1 0x41000000 zImage
load mmc 0:1 0x41800000 sun8i-v3s-licheepi-zero-with-800x480-lcd.dtb
bootz 0x41000000 - 0x41800000

1.3 使用mkimage工具

mkimage工具在/uboot/tools文件夹下

在uboot根目录下输入以下命令拷贝到用户文件夹下,方便以后可以直接使用


sudo cp ./tools/mkimage /usr/local/bin/mkimage

使用mkimage生成boot.scr

mkimage -C none -A arm -T script -d boot.cmd boot.scr

使用记录:

liefyuan@ubuntu:~/Liefyuan/mangopi-v3s/u-boot-3s-current$ mkimage -C none -A arm -T script -d boot.cmd boot.scr
Image Name:   
Created:      Tue May 10 23:09:17 2022
Image Type:   ARM Linux Script (uncompressed)
Data Size:    237 Bytes = 0.23 kB = 0.00 MB
Load Address: 00000000
Entry Point:  00000000
Contents:
   Image 0: 229 Bytes = 0.22 kB = 0.00 MB

拷贝boot.scr到启动卡的第一分区(boot分区)

sudo cp boot.scr /media/liefyuan/BOOT/

二、BSP内核用于快速定制系统的script.bin文件的简介与制作

系统读取 script.bin 文件解析配置的工作参数和方式。

  • sys_config.fex文件定义了各种参数来配置SOC工作状态或方式。
  • sys_config.fex文件配置GPIOPIN 脚的输入,输出模式或电平的高低,配置DRAM工作状态,配置显示输出模式等等。用户通过修改此文件来达到快速定制系统的目的。

sys_config.fex
配置文件下载,密码:95mp
修改分辨率:800x480修改为480x272

[ctp_para]
ctp_used            = 1
ctp_name            = "gt911_m785q6"
ctp_twi_id          = 0
ctp_twi_addr        = 0x48
ctp_screen_max_x    = 480
ctp_screen_max_y    = 272
ctp_revert_x_flag   = 0
ctp_revert_y_flag   = 0
ctp_exchange_x_y_flag = 1
[lcd0_para]
lcd_used            = 1

lcd_driver_name     = "default_lcd"
lcd_if              = 0
lcd_x               = 480
lcd_y               = 272
lcd_width           =
lcd_height          =
lcd_dclk_freq       = 1
lcd_pwm_used        = 1
lcd_pwm_ch          = 0
lcd_pwm_freq        = 50000
lcd_pwm_pol         = 1
lcd_hbp             = 46
lcd_ht              = 1055
lcd_hspw            = 0
lcd_vbp             = 23
lcd_vt              = 525
lcd_vspw            = 5
lcd_lvds_if         = 0
lcd_lvds_colordepth = 0
lcd_lvds_mode       = 0
lcd_frm             = 1
lcd_io_phase        = 0x0100
lcd_gamma_en        = 0
lcd_bright_curve_en = 0
lcd_cmap_en         = 0

deu_mode            = 0
lcdgamma4iep        = 22
smart_color        = 90

生成script.bin文件

使用以下命令生成script.bin,然后将其放入第一分区

fex2bin sys_config.fex > script.bin
<think>好的,用户想了解全志V3S芯片出厂后启动U-Boot的方法。首先,我需要回忆一下全志V3S的基本启动流程。全志的芯片通常有BROM阶段,负责初始化硬件并加载引导程序。V3S作为一款集成了ARM Cortex-A7内核的芯片,应该也有类似的启动机制。 用户提到的是出厂后的启动方法,可能需要从存储介质如SPI Flash、SD卡或USB加载U-Boot。我记得全志的芯片通常通过FEL模式进行烧录,但出厂后的正常启动可能不需要进入FEL模式,而是直接从内置存储启动。需要确认V3S支持的启动设备类型,比如SD卡、NAND或SPI Flash。 接下来,U-Boot的编译配置也是关键。全志的芯片通常需要特定的配置,比如`sun8i-v3s_defconfig`,可能需要确认是否存在这样的默认配置。设备树的编译也很重要,V3S对应的设备树文件是`sun8i-v3s-licheepi-zero.dts`之类的,需要根据具体开发板调整。 启动流程方面,BROM会检测启动介质,找到U-Boot的SPL,然后加载U-Boot主体。用户可能需要将U-Boot烧录到SD卡的特定位置,比如8KB偏移处。此外,制作SD卡时可能需要使用dd命令或其他工具正确写入镜像。 还要考虑用户可能的操作步骤,比如如何准备SD卡,如何编译U-Boot,如何确认启动成功。可能的问题点包括启动介质配置错误、镜像烧录位置不正确、设备树未正确编译等。需要给出具体的命令示例,比如编译命令和dd命令的参数。 最后,引用用户提供的参考内容,虽然引用是关于STM32MP157的,但可以指出启动流程的相似之处,比如通过TFTP引导内核,但V3S可能有不同的存储介质启动方式。需要确保用户理解全志芯片的特殊步骤,比如FEL模式的使用场景和正常启动的区别。</think>全志V3S芯片启动U-Boot的流程可分为硬件初始化、存储介质加载、U-Boot执行三个阶段。具体步骤如下: 1. **硬件启动阶段** - 芯片上电后执行固化在ROM中的BROM程序 - BROM检测$BOOT\_SEL$引脚状态选择启动介质(SPI Flash/SD卡/USB等) - 从选定的存储介质加载SPL(Secondary Program Loader) 2. **U-Boot加载流程** ```bash # 典型U-Boot编译配置命令 make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- sun8i-v3s_defconfig make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- -j4 ``` - 需要将生成的`u-boot-sunxi-with-spl.bin`烧录至存储介质起始地址+8KB位置 3. **存储介质配置** - **SD卡启动**: ```bash sudo dd if=u-boot-sunxi-with-spl.bin of=/dev/sdX bs=1024 seek=8 ``` - **SPI Flash启动**: 通过FEL模式使用sunxi-fel工具烧录 4. **启动验证** 成功启动后串口输出应包含: ``` U-Boot SPL 2023.04 (Sep 01 2023 - 15:30:00 +0800) Trying to boot from MMC ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值