技术特征:
1.一种在单Linux系统镜像中支持多DTB的方法,其特征在于,包括:
将多个不同的DTB文件整合成一个DTB整合文件,将DTB整合文件和包含同一个Linux系统镜像版本下的所有产品驱动的Linux系统镜像镜像,打包成Linux系统镜像文件;
引导程序启动时,通过修改引导程序代码载入各产品对应的DTB文件。
2.如权利要求1所述的一种在单Linux系统镜像中支持多DTB的方法,其特征在于:所述将多个不同的DTB文件整合成一个DTB整合文件,具体包括以下步骤:
使用DTC工具编译生成多个产品的DTB文件;
使用脚本工具将生成的每个DTB文件填充成设定大小的文件,或是使用DTC工具在生成DTB文件时指定DTB文件大小为设定大小;
使用脚本将多个设定大小的DTB文件合并成一个n*设定大小的DTB整合文件,n为DTB文件的总数。
3.如权利要求1所述的一种在单Linux系统镜像中支持多DTB的方法,其特征在于:所述将DTB整合文件和包含同一个Linux系统镜像版本下的所有产品驱动的Linux系统镜像镜像,打包成Linux系统镜像文件,具体包括以下步骤:
使用mkimage工具,将DTB整合文件、包含同一个Linux系统镜像版本下的所有产品驱动的Linux系统镜像镜像以及根文件系统,打包成Linux系统镜像文件。
4.如权利要求1所述的一种在单Linux系统镜像中支持多DTB的方法,其特征在于:所述引导程序启动时,通过修改引导程序代码载入各产品对应的DTB文件,具体包括以下步骤:
判断是否具备产品识别机制;
若是,修改引导程序代码,通过产品识别机制跳转到对应代码分支中,自动载入各产品对应的DTB文件;若否,通过设置环境变量,载入各产品对应的DTB文件。
5.如权利要求4所述的一种在单Linux系统镜像中支持多DTB的方法,其特征在于:所述通过设置环境变量,载入各产品对应的DTB文件,具体包括以下步骤:
设置环境变量为:UBoot>fdt addrDTB_BASE+m*file size,其中:
fdt addr DTB_BASE为DTB载入基地址,m为指定的需要载入的DTB文件的序号,file size为DTB文件的设定大小。
6.一种在单Linux系统镜像中支持多DTB的系统,其特征在于,包括:
文件整合模块,其用于将多个不同的DTB文件整合成一个DTB整合文件;
镜像打包模块,其用于将DTB整合文件和包含同一个Linux系统镜像版本下的所有产品驱动的Linux系统镜像镜像,打包成Linux系统镜像文件;
文件加载模块,其用于在引导程序启动时,通过修改引导程序代码载入各产品对应的DTB文件。
7.如权利要求6所述的一种在单Linux系统镜像中支持多DTB的系统,其特征在于:所述文件整合模块将多个不同的DTB文件整合成一个DTB整合文件,具体包括以下步骤:
使用DTC工具编译生成多个产品的DTB文件;
使用脚本工具将生成的每个DTB文件填充成设定大小的文件,或是使用DTC工具在生成DTB文件时指定DTB文件大小为设定大小;
使用脚本将多个设定大小的DTB文件合并成一个n*设定大小的DTB整合文件,n为DTB文件的总数。
8.如权利要求6所述的一种在单Linux系统镜像中支持多DTB的系统,其特征在于:所述镜像打包模块将DTB整合文件和包含同一个Linux系统镜像版本下的所有产品驱动的Linux系统镜像镜像,打包成Linux系统镜像文件,具体包括以下步骤:
使用mkimage工具,将DTB整合文件、包含同一个Linux系统镜像版本下的所有产品驱动的Linux系统镜像镜像以及根文件系统,打包成Linux系统镜像文件。
9.如权利要求6所述的一种在单Linux系统镜像中支持多DTB的系统,其特征在于:所述文件加载模块引导程序启动时,通过修改引导程序代码载入各产品对应的DTB文件,具体包括以下步骤:
判断是否具备产品识别机制;
若是,修改引导程序代码,通过产品识别机制跳转到对应代码分支中,自动载入各产品对应的DTB文件;若否,通过设置环境变量,载入各产品对应的DTB文件。
10.如权利要求9所述的一种在单Linux系统镜像中支持多DTB的系统,其特征在于:所述文件加载模块通过设置环境变量,载入各产品对应的DTB文件,具体包括以下步骤:
设置环境变量为:UBoot>fdt addrDTB_BASE+m*file size,其中:
fdt addr DTB_BASE为DTB载入基地址,m为指定的需要载入的DTB文件的序号,file size为DTB文件的设定大小。