飞凌OK335xd-linux-4.9.41 移植

飞凌 OK335xd-linux-4.9.41 移植
ti 官方目前提供的内核最新是 4.9.41, 内核源码有三种方式获得 ,ti 内核独立包 ,sdk 包, ti arago-yacto, 这里内核采用 ti sdk , 文件系统采用 ti arago-yocto
1. 获取 ti-processor-sdk-linux-am335x-evm-04.01.00.06-Linux-x86-Install.bin,
解压到 /opt/目录,
下载 gcc-linaro-6.2.1-2016.11-x86_64_arm-linux-gnueabihf.tar.xz也解压到 /opt/
2.cd /opt/ti-processor-sdk-linux-am335x-evm-04.01.00.06/board-support/u-boot-2017.01+gitAUTOINC+590c7d7fe1-g590c7d7fe1/
3. 下载 RatioSeed_AM335x_boards.xls
如图配置

4. 下载 AM335x_DDR_register_calc_tool.xls

下载 AM335x_forSlaveRatio.gel
修改以下四行

#defineALLOPP_DDR3_SDRAM_TIMING1 xxxxxxxxxx//Registers tab: SDRAM_TIM_1

#defineALLOPP_DDR3_SDRAM_TIMING2 xxxxxxxxxx//Registers tab: SDRAM_TIM_2

#defineALLOPP_DDR3_SDRAM_TIMING3 xxxxxxxxxx//Registers tab: SDRAM_TIM_3


#defineALLOPP_DDR3_SDRAM_CONFIG xxxxxxxxxx //Registers tab:



其中SDRAM_CONFIG字段参考AM335X用户手册与ddr用户手册配置

利用以上数据及配置表的配置数据使用运行于板子的时序校正算法校正参数,参考http://www.deyisupport.com/question_answer/dsp_arm/sitara_arm/f/25/t/53263.aspx

结果参数

RD_DQS_RATIO_VAL
FIFO_WE_SLAVE_RATIO
WR_DQS_SLAVE_RATIO
PHY_CTRL_SLAVE_RATIO

获取的结果值配置uboot代码相关定义
./am335x_evm/include/asm/arch/ddr_defs.h定义文件(相对于uboot根目录)

5.$vi build.sh
#!/bin/bash
export PATH=/opt/TI-AM335X/gcc-linaro-6.2.1-2016.11-x86_64_arm-linux-gnueabihf/bin:$PATH
make CROSS_COMPILE=arm-linux-gnueabihf- distclean
rm -rf ./am335x_evm
make CROSS_COMPILE=arm-linux-gnueabihf- O=am335x_evm am335x_evm_defconfig
make CROSS_COMPILE=arm-linux-gnueabihf- O=am335x_evm

6.$chmod +x build.sh
7.$./build.sh

8.插入pc一个不小于4Gsd9.$/opt/ti-processor-sdk-linux-am335x-evm-04.01.00.06/bin/create-sdcard.sh
10.根据提示,格式化所插sd卡,创建启动分区环境。

11.uboou目录下am335x_evm/MLO am335x_evm/u-boot.img两个文件拷贝到sdboot目录

12.$cd /opt/ti-processor-sdk-linux-am335x-evm-04.01.00.06/board-support/linux-4.9.41+gitAUTOINC+e3a80a1c5c-ge3a80a1c5c	(进入linux目录)

13.$vi arch/arm/configs/tisdk_am335x-evm_defconfig
	添加CONFIG_TOUCHSCREEN_GOODIX=y
14.$vi arch/arm/boot/dts/am335x-evm.dts i2c0节点下添加touch(触摸驱动配置节点)
&i2c0 {
        pinctrl-names = "default";
        pinctrl-0 = <&i2c0_pins>;

        status = "okay";
        clock-frequency = <400000>;
        tps: tps@2d {
                reg = <0x2d>;
        };
        touch:  gt911@14 {
                compatible = "goodix,gt911";
                pinctrl-names = "default";
                pinctrl-0 = <&gt911_pins>;
                reg = <0x14>;
                interrupt-parent = <&gpio1>;
                interrupts = <31 0>;

                irq-gpios = <&gpio1 31 0>;
                reset-gpios = <&gpio3 15 0>;
        };

};

在根节点下添加mmc电源配置节点
 mmc_fixed: fixedregulator3 {
                   compatible = "regulator-fixed";
                   regulator-name = "mmc_vbus";
                   regulator-min-microvolt = <3300000>;
                   regulator-max-microvolt = <3300000>;
                   regulator-boot-on;
                   /* regulator-always-on; */
           };mmc1节点下修改 vmmc-supply的值
&mmc1 {
        status = "okay";
        vmmc-supply = <&mmc_fixed>;
        /* ti,dual-volt; */
        bus-width = <4>;
        pinctrl-names = "default";
        pinctrl-0 = <&mmc1_pins>;
        cd-gpios = <&gpio0 6 GPIO_ACTIVE_LOW>;
};

15.$vi build.sh
输入以下内容
export PATH=/opt/TI-AM335X/gcc-linaro-6.2.1-2016.11-x86_64_arm-linux-gnueabihf/bin:$PATH
make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- distclean
make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf-  tisdk_am335x-evm_defconfig
make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf-
make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- zImage
make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- am335x-evm.dtb
16.kernel目录下的arch/arm/boot/dts/am335x-evm.dtb arch/arm/boot/zImage两个文件拷贝到sd卡的rootfs/boot目录


根文件系统:
17.
$cd /opt/
$ git clone git://arago-project.org/git/projects/oe-layersetup.git tisdk
$ cd tisdk
$ ./oe-layertool-setup.sh -f configs/processor-sdk/processor-sdk-04.01.00.06-config.txt
$ cd build
$ . conf/setenv
$ export PATH=/opt/gcc-linaro-6.2.1-2016.11-x86_64_arm-linux-gnueabihf/bin:$PATH
$ MACHINE=am335x-evm bitbake tisdk-rootfs-image
生成的文件系统解压至sd卡的rootfs目录即可。 
18.build目录下找到 tisdk-rootfs-image.bb文件后可以编辑增删里面的软件包,每个软件包对应的.bb文件又包含一系列软件组件,可以编辑增删对应的软件组件,一个组件对另外组件的依赖系统会自动处理并添加进生成的根文件系统。





提示:
如果在编译某些包的时候出现以下错误:
cp: cannot stat '/opt/TI-AM335X/gcc-linaro-6.2.1-2016.11-x86_64_arm-linux-gnueabihf/arm-linux-gnueabihf/bin/{ld*,objcopy,strip,nm,ranlib,as,ar,objdump}': No such file or directory
这种报错一般是因为yocto自动生成的脚本使用了bash的大括号扩展语法,而脚本本身却使用的/bin/sh的解释器,无法解析扩展语法,可以把/bin/sh备份后,/bin/bash建立一个软链接放到/bin/sh
  • 2
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值