[PATCH] ARM: add dtbImage.<dt> and dtbuImage.<dt> rules
转载:
http://permalink.gmane.org/gmane.linux.kbuild.devel/8755
This rules are useful for appended device tree conforming to the CONFIG_ARM_APPENDED_DTB kernel option. The rule dtbImage.<dt> is actually just a:
cat zImage <dt>.dtb > dtbImage.<dt> The dtbuImage.<dt> makes an uImage out of the dtbImage.<dt> file. KernelVersion: v3.6-rc5
Signed-off-by: Richard Genoud <richard.genoud <at> gmail.com>
---
arch/arm/Makefile | 30 ++++++++++++++++--------------
arch/arm/boot/Makefile | 11 +++++++++++
scripts/Makefile.lib | 6 ++++++
3 files changed, 33 insertions(+), 14 deletions(-) diff --git a/arch/arm/Makefile b/arch/arm/Makefile
index 30eae87..c5f2673 100644
--- a/arch/arm/Makefile
+++ b/arch/arm/Makefile
<at> <at> -278,7 +278,7 <at> <at> archprepare:
# Convert bzImage to zImage
bzImage: zImage -zImage Image xipImage bootpImage uImage: vmlinux
+zImage Image xipImage bootpImage uImage dtbImage.% dtbuImage.% : vmlinux
$(Q)$(MAKE) $(build)=$(boot) MACHINE=$(MACHINE) $(boot)/$ <at> zinstall uinstall install: vmlinux
<at> <at> -300,17 +300,19 <at> <at> i zi:; $(Q)$(MAKE) $(build)=$(boot) MACHINE=$(MACHINE) $ <at> define archhelp
- echo '* zImage - Compressed kernel image (arch/$(ARCH)/boot/zImage)'
- echo ' Image - Uncompressed kernel image (arch/$(ARCH)/boot/Image)'
- echo '* xipImage - XIP kernel image, if configured (arch/$(ARCH)/boot/xipImage)'
- echo ' uImage - U-Boot wrapped zImage'
- echo ' bootpImage - Combined zImage and initial RAM disk'
- echo ' (supply initrd image via make variable INITRD=<path>)'
- echo ' dtbs - Build device tree blobs for enabled boards'
- echo ' install - Install uncompressed kernel'
- echo ' zinstall - Install compressed kernel'
- echo ' uinstall - Install U-Boot wrapped compressed kernel'
- echo ' Install using (your) ~/bin/$(INSTALLKERNEL) or'
- echo ' (distribution) /sbin/$(INSTALLKERNEL) or'
- echo ' install to $$(INSTALL_PATH) and run lilo'
+ echo '* zImage - Compressed kernel image (arch/$(ARCH)/boot/zImage)'
+ echo ' Image - Uncompressed kernel image (arch/$(ARCH)/boot/Image)'
+ echo '* xipImage - XIP kernel image, if configured (arch/$(ARCH)/boot/xipImage)'
+ echo ' uImage - U-Boot wrapped zImage'
+ echo ' bootpImage - Combined zImage and initial RAM disk'
+ echo ' (supply initrd image via make variable INITRD=<path>)'
+ echo ' dtbs - Build device tree blobs for enabled boards'
+ echo ' dtbImage.<dt> - zImage with an appended device tree blob'
+ echo ' dtbuImage.<dt> - uImage with an embedded device tree blob'
+ echo ' install - Install uncompressed kernel'
+ echo ' zinstall - Install compressed kernel'
+ echo ' uinstall - Install U-Boot wrapped compressed kernel'
+ echo ' Install using (your) ~/bin/$(INSTALLKERNEL) or'
+ echo ' (distribution) /sbin/$(INSTALLKERNEL) or'
+ echo ' install to $$(INSTALL_PATH) and run lilo'
endef
diff --git a/arch/arm/boot/Makefile b/arch/arm/boot/Makefile
index c877087..35c01a8 100644
--- a/arch/arm/boot/Makefile
+++ b/arch/arm/boot/Makefile
<at> <at> -98,6 +98,17 <at> <at> $(obj)/bootpImage: $(obj)/bootp/bootp FORCE
$(call if_changed,objcopy)
<at> echo ' Kernel: $ <at> is ready' +# dtbImage.% - a dtbImage is a zImage with an appended device tree blob
+$(obj)/dtbImage.%: $(obj)/zImage $(obj)/%.dtb FORCE
+ $(call if_changed,cat)
+ <at> echo ' Kernel: $ <at> is ready'
+
+# dtbuImage.% - a dtbuImage is a uImage with an embedded device tree blob
+$(obj)/dtbuImage.%: $(obj)/dtbImage.% FORCE
+ <at> $(check_for_multiple_loadaddr)
+ $(call if_changed,uimage)
+ <at> echo ' Image $ <at> is ready'
+
PHONY += initrd FORCE
initrd:
<at> test "$(INITRD_PHYS)" != "" || \
diff --git a/scripts/Makefile.lib b/scripts/Makefile.lib
index 0be6f11..8550466 100644
--- a/scripts/Makefile.lib
+++ b/scripts/Makefile.lib
<at> <at> -235,6 +235,12 <at> <at> cmd_ld = $(LD) $(LDFLAGS) $(ldflags-y) $(LDFLAGS_$( <at> F)) \
quiet_cmd_objcopy = OBJCOPY $ <at>
cmd_objcopy = $(OBJCOPY) $(OBJCOPYFLAGS) $(OBJCOPYFLAGS_$( <at> F)) $< $ <at> +# Cat
+# ---------------------------------------------------------------------------
+
+quiet_cmd_cat = CAT $ <at>
+cmd_cat = (cat $(filter-out FORCE,$^) > $ <at> ) || (rm -f $ <at> ; false)
+
# Gzip
# --------------------------------------------------------------------------- --
转载:
https://www.osadl.org/Single-View.111+M5297463051f.0.html
How can I boot a recent kernel?
Yes, some vendors still ship bootloaders without device tree support, since their vendor kernel does not know what a device tree is and, thus, the bootloader neither does. But, fortunately, kernel developers are aware of it and implemented the
CONFIG_ARM_APPENDED_DTB
feature. What is this?
Append the device tree to the kernel
Since the bootloader loads the kernel into memory without asking any questions, we can fool the bootloader by making the kernel a little larger and append the device tree at its end. During the first steps of kernel initialization, the device tree is searched for at the end of the regular kernel code and used as if it had been loaded separately.
How do I prepare the kernel for this procedure?
In any case, CONFIG_ARM_APPENDED_DTB=y must be configured. If zImage is used to boot, simply execute
cd /usr/src/kernels/your-linux-tree
cd arch/your-arch/boot
cat zImage dts/your-device-tree.dtb >zImage-with-dtb
after having compiled the kernel as usual. If the uImage format is needed, you still have to execute the above commands. In addition, create a uImage file based on the combined zImage kernel as follows
cp zImage zImage-without-dtb
cp zImage-with-dtb zImage
cd -
make LOADADDR=$YOUR_LOADADDR ARCH=your-arch uImage
cd -
cp zImage-without-dtb zImage
and let the bootloader load the uImage file that now contains both the kernel and device tree.
Check for the correct model string
If everything worked correctly, you should see a line
Machine: Your generic board (Flattened Device Tree), model: your model string
that corresponds to the related setting in your
device tree. This line is one of the first output lines after the kernel
started execution.
[PATCH] ARM: add dtbImage.<dt> and dtbuImage.<dt> rules的更多相关文章
- to_datetime 以及 dt.days、dt.months
Series类型的数据,经过 to_datetime 之后就可以用 pandas.Series.dt.day 和 pandas.Series.pd.month. import pandas as pd ...
- GCC编译uboot出现(.ARM.exidx+0x0): undefined reference to `__aeabi_unwind_cpp_pr0'错误的解决的方法
/opt/arm-2010.09/bin/../lib/gcc/arm-none-linux-gnueabi/4.5.1/armv4t/libgcc.a(_bswapsi2.o):(.ARM.exid ...
- [WinForm] DataGridView 绑定 DT && ComboBox 列绑定 Dict
一 需求介绍 一般像枚举类型的数据,我们在数据库里存储着诸如(1.2.3.4-)或者("001"."002"."003"-)此类,但是界面 ...
- dt常用类
经常使用的一些datatable的操作,包括一些过滤去重的方法 using System; using System.Collections; using System.Collections.Gen ...
- DIV+CSS中标签dl dt dd常用的用法
转自:http://smallpig301.blog.163.com/blog/static/9986093201010262499229/ < dl>< /dl>用来创建一个 ...
- HTML 列表 <ol><ul><li><dl><dt><dd>
<ol>标签-有序列表 定义和用法: <ol>标签定义有序列表. HTML 与 XHTML 之间的差异 在 HTML 4.01 中,ol 元素的 "compact&q ...
- html dl dt dd标签元素语法结构与使用
dl dt dd认识及dl dt dd使用方法 <dl> 标签用于定义列表类型标签. dl dt dd目录 dl dt dd介绍 结构语法 dl dt dd案例 dl dt dd总结 一. ...
- (转载)dl,dt,dd标记在网页中要充分利用
(转载)http://www.jzxue.com/html/css/264I6DG6.html 我们在制作网页过程中用到列表时一般会使用<ul>或者<ol>标签,很少用刑< ...
- css案例学习之ul li dl dt dd实现二级菜单
效果 代码实现 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www ...
随机推荐
- 有关eclipse的内存溢出问题
一:前言 最近在做的项目在启动tomcat时就报“内存溢出的错误”,其实也不是自己第一次遇到,但是每次都是在网上查询后敲进去,所以这次我觉得自己记载下来吧. 二:内容 我自己的配置大小,这里的配置位置 ...
- Java并发编程--ThreadPoolExecutor
概述 为什么要使用线程池? 合理利用线程池能够带来三个好处.第一:降低资源消耗.通过重复利用已创建的线程降低线程创建和销毁造成的消耗.第二:提高响应速度.当任务到达时,任务可以不需要等到线程创建就能立 ...
- 【BZOJ3237】【AHOI2013】连通图 [CDQ分治]
连通图 Time Limit: 20 Sec Memory Limit: 512 MB[Submit][Status][Discuss] Description Input Output Sampl ...
- [POJ1423]Stirling公式的应用
Stirling公式: n!约等于sqrt(2*pi*n)*(n/e)^n 另外,e约等于2.71828182845409523... 试了一下发现math库里面并不能像pi一样直接调e但是发现挺好记 ...
- #error#storyboard#xib#解决方案
https://www.evernote.com/shard/s227/sh/cad7d5f5-8e81-4b3b-908f-5d8eee7d11e2/928786149cf9a103a74626 ...
- 我在一个前端项目中用js整理的一些通用方法,其中使用到的思想,主要就是约定了。
把名称和后台来的json数据约定起来,可以达到的效果就是可以将东西统一化,减少差异,提升模块等的通用性,此后就可以实现具体不同模块内容可以自动或拷贝赋值的方式 2016.7.18 refactor s ...
- python基础之函数(自定义函数)
函数: 函数的定义: 初中数学函数定义:一般的,在一个变化过程中,如果有两个变量x和y,并且对于x的每一个确定的值,y都有唯一确定的值与其对应,那么我们就把x称为自变量,把y称为因变量,y是x的函数. ...
- 单表扫描,MySQL索引选择不正确 并 详细解析OPTIMIZER_TRACE格式
一 表结构如下: 万行 CREATE TABLE t_audit_operate_log ( Fid bigint(16) AUTO_INCREMENT, Fcreate_time int(10 ...
- win7中下载和安装redis
下载地址:https://github.com/MicrosoftArchive/redis/releases 这里我下载的是3.2.100版本,下载zip,然后解压.解压后如图所示: 开启redis ...
- jsp页面点击打印按钮调用系统 的打印功能
<script language=javascript> function prt() { var btn_obj = document.getElementById("prin ...