顶层makefile:
ARCH ?= $(SUBARCH) CROSS_COMPILE ?= $(CONFIG_CROSS_COMPILE:"%"=%)改为:
ARCH ?= arm64 CROSS_COMPILE ?= aarch64-linux-gnu-***_defconfig文件一般的芯片都有,找到以后,用如下命令,其实就是拷贝到顶层目录,并命名为.config,里面包含一堆配置,make时读取。 ***_defconfig文件在 arch/arm64/configs/目录下
[liuwanpeng@localhost linux]$ make xilinx_zynqmp_defconfig O=./output/ # # configuration written to .config #单独输出到其他文件件有助于源码进行git管理,否则乱的文件。
默认生成Image,若想生成uImage,需要加上uImage后缀
[liuwanpeng@localhost linux]$ make LOADADDR=0x8000 uImage make: *** 没有规则可以创建目标“uImage”。 停止。mpsoc不像ZYNQ,把make uImage集成到makefile里了,可以单独执行mkimage指令。 mkimage是uboot编译后,生成的工具,拷贝到/usr/bin里
[liuwanpeng@localhost tools]$ mkimage Error: Missing output filename Usage: mkimage -l image -l ==> list image header information mkimage [-x] -A arch -O os -T type -C comp -a addr -e ep -n name -d data_file[:data_file...] image -A ==> set architecture to 'arch' -O ==> set operating system to 'os' -T ==> set image type to 'type' -C ==> set compression type 'comp' -a ==> set load address to 'addr' (hex) -e ==> set entry point to 'ep' (hex) -n ==> set image name to 'name' -d ==> use image data from 'datafile' -x ==> set XIP (execute in place) mkimage [-D dtc_options] [-f fit-image.its|-f auto|-F] [-b <dtb> [-b <dtb>]] [-i <ramdisk.cpio.gz>] fit-image <dtb> file is used with -f auto, it may occur multiple times. -D => set all options for device tree compiler -f => input filename for FIT source -i => input filename for ramdisk file Signing / verified boot not supported (CONFIG_FIT_SIGNATURE undefined) mkimage -V ==> print version information and exit Use -T to see a list of available image types在Image所在目录执行如下命令即可:
mkimage -n 'xlnx-linux' -A arm64 -O linux -T kernel -C none -a 0x00080000 -e 0x00080000 -d Image uImagedts文件在arch/arm64/boot/dts中
make dtbs可以生成dtb文件,整个目录都编译了
make xxx.dtb不好用了,具体原因还未定位,估计是makefile体系的问题
可以用dtc命令编译或反编译特定的dtb文件
liuwanpeng@liuwanpeng-virtual-machine:~/work/linux/output/arch/arm64/boot/dts/xilinx$ dtc --help Usage: dtc [options] <input file> Options: -[qI:O:o:V:d:R:S:p:fb:i:H:sW:E:hv] -q, --quiet Quiet: -q suppress warnings, -qq errors, -qqq all -I, --in-format <arg> Input formats are: dts - device tree source text dtb - device tree blob fs - /proc/device-tree style directory -o, --out <arg> Output file -O, --out-format <arg> Output formats are: dts - device tree source text dtb - device tree blob asm - assembler source -V, --out-version <arg> Blob version to produce, defaults to 17 (for dtb and asm output) -d, --out-dependency <arg> Output dependency file -R, --reserve <arg> Make space for <number> reserve map entries (for dtb and asm output) -S, --space <arg> Make the blob at least <bytes> long (extra space) -p, --pad <arg> Add padding to the blob of <bytes> long (extra space) -b, --boot-cpu <arg> Set the physical boot cpu -f, --force Try to produce output even if the input tree has errors -i, --include <arg> Add a path to search for include files -s, --sort Sort nodes and properties before outputting (useful for comparing trees) -H, --phandle <arg> Valid phandle formats are: legacy - "linux,phandle" properties only epapr - "phandle" properties only both - Both "linux,phandle" and "phandle" properties -W, --warning <arg> Enable/disable warnings (prefix with "no-") -E, --error <arg> Enable/disable errors (prefix with "no-") -h, --help Print this help and exit -v, --version Print version and exit例如: 反汇编,由dtb生成dts,反之亦然
dtc -I dtb -O dts -o zynqmp-zcu102.dts zynqmp-zcu102.dtb转载于:https://www.cnblogs.com/liuwanpeng/p/8074295.html
相关资源:各显卡算力对照表!