终于把AC501板子上的触摸屏驱动搞定了。心累。。这里把对应的设备树文件传上来。有几个参考。最终倒腾出来了一个能用的。
通过对万象SOC板子里面的设备树dtb文件反编译得到dts文件,然后查看dts文件的触摸设备树节点,移植到AC501的设备树中,最终成功加载上了触摸屏。
万象的镜像存储在nand flash的mtd1空间中,无法像sd卡或者mmc一样直接拷贝dtb文件出来,所以用dd命令将nand中指定地址的数据读取出来,存为dtb文件,然后再用dtc反编译得到dts文件。具体操作命令为:
1、运行万象Linux开发板,在linux console中执行下述命令以查看nand分区信息:
cat /proc/mtd
结果如下所示:
dev: size erasesize name mtd0: 00400000 00020000 "u-boot" mtd1: 00100000 00020000 "dtb" mtd2: 01000000 00020000 "kernel" mtd3: 00400000 00020000 "logo" mtd4: 0e700000 00020000 "rootfs
2、知道了dtb数据存储的地址和大小,接下来使用dd命令将nand中指定地址的数据读取出来,存为dtb文件: dd if=/dev/mtdblock1 of=/home/root/hello.dtb count=256 bs=512 其中cnt = size除以bs,也就是0x20000/512结果为256 文件存储在root目录下,名为hello.dtb
3、将dtb文件反编译得到dts文件: dtc -I dtb -O dts -o hello.dts hello.dtb
现在,设备树文件就可以用各种方法拿到电脑上分析了,网口,U盘,SD卡,怎么爽怎么玩儿。
4、最终得到正确的能够在ac501开发板上运行的dtb文件,成功加载驱动,在dev/input下生成event0的触摸屏节点。
AC501改好通过的soc_system.dtb
(24.73 KB, 下载次数: 436)
AC501改好通过的soc_system.dts
(46.95 KB, 下载次数: 437)
AC501上有问题的socfpga.dtb
(24.56 KB, 下载次数: 426)
AC501上有问题的socfpga.dts
(30.53 KB, 下载次数: 413)
万象OK的hello.dtb
(128 KB, 下载次数: 454)
万象OK的hello.dts
(25.64 KB, 下载次数: 425)
|