全志A64 修改uboot环境变量及内核调试级别

通过uboot输出的启动信息:

--------fastboot partitions--------
-total partitions:15-
-name-        -start-       -size-      
bootloader  : 1000000       2000000     
env         : 3000000       1000000     
boot        : 4000000       2000000     
system      : 6000000       80000000    
verity_block: 86000000      2000000     
misc        : 88000000      1000000     
recovery    : 89000000      2000000     
cache       : 8b000000      30000000    
metadata    : bb000000      1000000     
private     : bc000000      1000000     
frp         : bd000000      80000       
empty       : bd080000      f80000      
alog        : be000000      5000000     
media_data  : c3000000      1000000     
UDISK       : c4000000      0  

板上的emmc分成14个分区,其中环境变量单独存放在一个分区,所以修改uboot环境变量时无须重编译uboot源码.


环境变量存放的文件在: /lichee/tools/pack/chips/sun50iw1p1/configs/default/env.cfg
里面的内容:


#kernel command arguments
earlyprintk=sunxi-uart,0x01c28000
initcall_debug=0
console=ttyS0,115200
nand_root=/dev/system
mmc_root=/dev/mmcblk0p7
init=/init
loglevel=1
cma=256M
selinux=enforcing
#set kernel cmdline if boot.img or recovery.img has no cmdline we will use this
setargs_nand=setenv bootargs earlyprintk=${earlyprintk} initcall_debug=${initcall_debug} console=${console} loglevel=${loglevel} root=${nand_root} init=${init} partitions=${partitions} cma=${cma} androidboot.selinux=${selinux}
setargs_mmc=setenv  bootargs earlyprintk=${earlyprintk} initcall_debug=${initcall_debug} console=${console} loglevel=${loglevel} root=${mmc_root}  init=${init} partitions=${partitions} cma=${cma} androidboot.selinux=${selinux}
#nand command syntax: sunxi_flash read address partition_name read_bytes
#0x4007f800 = 0x40080000(kernel entry) - 0x800(boot.img header 2k)
boot_normal=sunxi_flash read 4507f800 boot;boota 4507f800 boot
boot_recovery=sunxi_flash read 4507f800 recovery;boota 4507f800 recovery
boot_fastboot=fastboot
#recovery key
recovery_key_value_max=0x13
recovery_key_value_min=0x10
#fastboot key
fastboot_key_value_max=0x8
fastboot_key_value_min=0x2

#uboot system env config
bootdelay=0
#default bootcmd, will change at runtime according to key press
bootcmd=run setargs_nand boot_normal#default nand boot

从上面的内容可以看出,uboot启动后直接执行”run setargs_nand boot_normal”.

环境变量partitions=bootloader@mmcblk0p2:env@mmcblk0p5:boot@mmcblk0p6:system@mmcblk0p7:verity_block@mmcblk0p8:misc@mmcblk0p9:recovery@mmcblk0p10:cache@mmcblk0p11:metadata@mmcblk0p12:private@mmcblk0p13:frp@mmcblk0p14:empty@mmcblk0p15:alog@mmcblk0p16:media_data@mmcblk0p17:UDISK@mmcblk0p1
setenv bootargs earlyprintk=sunxi-uart,0x01c28000 initcall_debug=0 console=ttyS0,115200 loglevel=1 root=/dev/system init=/init partitions=...

其中loglevel为printk调试输出级别,如需要捕捉内核调试输出,则需要修改loglevel的值.

如需要在uboot上操作,则需要把环境变量bootdelay的值改为非0即可.


 9 loglevel=8
 ...
 28 bootdelay=6

修改完成后,进入android源码目录下操作:

    . ./build/envsetup.sh 

      lunch
        //选择22. tulip_p1-eng

      pack   //重新打包镜像

重新烧写新镜像lichee/tools/pack/sun50iw1p1_android6.0_p1_uart0_bv3.img即修改生效.

全志H3 Uboot是一种嵌入式开源引导加载程序,被广泛应用于全志H3系列芯片的启动过程中。它的主要功能是在开机时加载操作系统并进行一系列初始化配置。 全志H3芯片是一款低功耗高性能的嵌入式处理器,常用于智能电视盒子、车载导航和物联网设备等领域。而Uboot作为引导加载程序,是首个被加载到处理器的主要程序,它负责引导系统启动和设备初始化过程。 Ubboot主要的执行流程包括硬件初始化、设备配置、文件系统加载和操作系统启动。在硬件初始化阶段,它通过设置各个外设的寄存器进行初始化,确保硬件的正常工作。接着,Uboot会根据预设的配置对系统进行初始化,包括网络配置、环境变量设置和设备树加载等。然后,它会尝试从存储设备加载文件系统,如SD卡或闪存驱动器,并解析启动映像文件。最后,Uboot会通过执行操作系统的启动命令将控制权交给操作系统内核,使系统正常启动。 全志H3 Uboot具有丰富的功能和灵活的配置选项,使开发者能够根据实际需求进行各种调试和优化。同时,它还支持网络引导和远程更新等功能,方便了系统的维护和更新。 总之,全志H3 Uboot是一种重要的引导加载程序,为全志H3系列芯片的启动和初始化提供了关键的支持。它的功能丰富,能够为系统开发者提供灵活的配置选项和调试手段,使系统的启动和维护更加方便高效。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值