原创 为AM335x移植Linux内核主线代码(33)制作自己的dts文件

2015-2-3 14:40 1234 15 17 分类: MCU/ 嵌入式 文集: Linux Kernel的DTS

下面的步骤其实在第(2)和第(3)节已经写过了,这里重新梳理一遍。

====> Step 1: <====
复制相近的dts文件,这样就不需要重新编写所有的内容,而是根据硬件修改相应变动的部分。

cd arch/arm/boot/dts
cp am335x-bone.dts maria-am335x.dts
cp am335x-bone-common.dtsi maria-am335x-common.dtsi

====> Step 2: <====
修改maria-am335x.dts中的model和compatible,删除掉不需要的vmmc-supply部分,因为我们的SD卡由底板供电,和核心板上的PMIC没有关系。

diff a/arch/arm/boot/dts/maria-am335x.dts b/arch/arm/boot/dts/maria-am335x.dts
--- a/arch/arm/boot/dts/maria-am335x.dts
+++ a/arch/arm/boot/dts/maria-am335x.dts
@@ -11,6 +11,6 @@

- #include am335x-evm-common.dtsi
-
- / {
-        model = "TI AM335x BeagleBone";
-        compatible = "ti,am335x-bone", "ti,am33xx";
- };
+ #include "maria-am335x-common.dtsi"
+
+ / {
+        model = "TI AM335x maria-am335x";
+        compatible = "ti,maria-am335x", "ti,am33xx";
+ };

@@ -24,4 +24,0 @@
- &mmc1 {
-       vmmc-supply = <&ldo3_reg>;
- };
-

====> Step 3: <====
修改maria-am335x-common.dts文件,主要修改memory的值,从默认的256M改为1G。
OK335xD的配置是,SDRAM为1G,NANDFLASH为512M。

diff a/arch/arm/boot/dts/maria-am335x-common.dts b/arch/arm/boot/dts/maria-am335x-common.dts
--- a/arch/arm/boot/dts/maria-am335x-common.dts
+++ a/arch/arm/boot/dts/maria-am335x-common.dts
@@ -18,1 +18,1 @@

        memory {
                device_type = "memory";
-                reg = <0x80000000 0x10000000>; /* 256 MB */
+                reg = <0x80000000 0x40000000>; /* 1 GB */
        };

====> Step 4: <====
重新编译dtb文件以及内核,将它们放置在tftp服务器目录下。

make ARCH=arm CROSS_COMPILE=/opt/gcc-linaro-arm-linux-gnueabihf/bin/arm-linux-gnueabihf- -j8 am335x-bone.dtb
make ARCH=arm CROSS_COMPILE=/opt/gcc-linaro-arm-linux-gnueabihf/bin/arm-linux-gnueabihf- -j8 LOADADDR=0x80008000 uImage
cp arch/arm/boot/dts/maria-am335x.dtb arch/arm/boot/uImage /tftp_root/

====> Step 5: <====
从SD卡启动U-Boot,在其命令行使用tftp获取dtb文件和uImage,放置在SDRAM中,并从SDRAM启动。
(也可以放置在SD卡或者NANDFLASH,然后重新上电,但是直接放置在SDRAM中更加方便。)

U-Boot# set ipaddr 192.168.1.117; set serverip 192.168.1.116
U-Boot# tftp 0x83000000 maria-am335x.dtb
U-Boot# tftp 0x82000000 uImage
U-Boot# bootm 0x82000000 - 0x83000000

此时就可以看到熟悉的Kernel解压打印信息了,制作自己的dtb文件其实非常简单哦!
下一节,从简单的GPIO开始。

PARTNER CONTENT

文章评论2条评论)

登录后参与讨论

DiracFatCat 2015-2-11 09:09

感谢肯定~~

用户1711475 2015-2-10 10:22

虽然这个系列有点长,但坚持下来,还是颇有收获。
相关推荐阅读
DiracFatCat 2018-09-05 12:14
【博客大赛】卡尔曼滤波学习笔记(11)从位置估计速度
卡尔曼滤波器,不仅仅是一个低通滤波器,否则也不会持续发展50年。 示例:桑先生需要测试高速列车的性能。测试的目的是判断列车在直线上能否保持80m/s的速度。速度和位置每0.1秒测量一次,但是由于...
DiracFatCat 2018-08-31 19:32
【博客大赛】卡尔曼滤波学习笔记(10)一个简单的示例
《Kalman Filtering: Theory and Practice Using MATLAB》第三章,看不懂,暂时略过。《Kalman Filtering: Theory and Pract...
DiracFatCat 2018-07-19 15:09
对sed命令的练习
sed是流编辑器。它每次处理一个输入,因此很有效率。官方手册:https://www.gnu.org/software/sed/manual/sed.html学习Linux命令,当然要阅读官方手册,所...
DiracFatCat 2018-06-19 15:10
【博客大赛】卡尔曼滤波学习笔记(八)可观测性和可控制性 ...
可观测性是指,在给定模型的情况下,动力学系统的状态是否由它的输入输出唯一确定。可观测性是系统模型的特征。如果传感器矩阵H是可逆的,则本系统可观测,因为有:如果传感器矩阵H某些时候是不可逆的,则本系统仍...
DiracFatCat 2018-06-19 10:56
【博客大赛】卡尔曼滤波学习笔记(七)Z变换
如果我们仅仅对离散线性系统感兴趣,那么就使用下面这个表达式:如果u是常量,那么可以写成:为了简化表达式,我们可以将上面写成:离散线性时不变系统的Φ求解,可以使用Z变换。(* 由于本人已经忘记了Z变换的...
DiracFatCat 2018-06-19 10:54
【博客大赛】卡尔曼滤波学习笔记(六)拉普拉斯变换
对于线性时变/时不变系统,求解Φ(t)有多种方式,拉普拉斯变换是其中一种。(* 由于本人已经忘记了拉普拉斯变换的内容,因此本节待续。)...
我要评论
2
15
关闭 站长推荐上一条 /3 下一条