This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

AM335X u-boot跳转内核 问题



1. Demo板型号: Sitara ARM Processors AM335x Starter Kit TMDXEVM3358-SK

2. 使用官方SDK编译u-boot和内核以及文件系统. SDK版本ti-sdk-am335x-evm-07.00.00.00

3. u-boot编译参考http://processors.wiki.ti.com/index.php?title=AMSDK_u-boot_User%27s_Guide&oldid=151547

4. 内核编译参考http://processors.wiki.ti.com/index.php/AMSDK_Linux_User%27s_Guide, 编译命令如下

    a. make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- mrproper

    b. make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- tisdk_am335x-evm_defconfig

    c. make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- uImage

    d. 拷贝./arch/arm/boot/uImage到SD卡中

5. 制作SD卡启动,  使用u-boot命令行的方式引导内核启动

    a. mmc rescan

    b. fatload mmc 0 0x82000000 uImage

    c. bootm 0x82000000

6. 新编译的MLO、u-boot.img能够引导官方SD卡中的uImage启动, u-boot引导新编译的内核在调用新内核的入口函数后串口无任何信息输出.

问题: u-boot无法引导新编译的内核启动. (另: 我发的贴都被删了, 还是不通过?)

  • ezsdk 7.0 用的是基于device tree的, kernel的编译不一样

    uboot 请参考 http://processors.wiki.ti.com/index.php/AM335x_U-Boot_User%27s_Guide

    关于device tree请参考 

  • 你好,

    我的步骤如下: (/media/boot 为制作的SD卡挂载的目录)

    1. u-boot编译

        a. make CROSS_COMPILE=arm-linux-gnueabihf- ARCH=arm distclean

        b. rm am335x_evm -rf

        c. make CROSS_COMPILE=arm-linux-gnueabihf- ARCH=arm O=am335x_evm am335x_evm

        d. cp ./am335x_evm/MLO /media/boot/; cp ./am335x_evm/u-boot.img /media/boot/;

    2. kernel编译

        a. make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- mrproper

        b. make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- tisdk_am335x-evm_defconfig 提示信息如下:

    HOSTCC scripts/basic/fixdep
    HOSTCC scripts/kconfig/conf.o
    SHIPPED scripts/kconfig/zconf.tab.c
    SHIPPED scripts/kconfig/zconf.lex.c
    SHIPPED scripts/kconfig/zconf.hash.c
    HOSTCC scripts/kconfig/zconf.tab.o
    HOSTLD scripts/kconfig/conf
    warning: (SOC_OMAP5 && SOC_DRA7XX) selects ARM_ERRATA_799270 which has unmet direct dependencies (CPU_V7 && SMP)
    warning: (SOC_OMAP5 && SOC_DRA7XX) selects ARM_ERRATA_799270 which has unmet direct dependencies (CPU_V7 && SMP)

        c. make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- uImage

        d. make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- dtbs

        e. cp ./arch/arm/boot/uImage /media/boot/; cp ./arch/arm/boot/dts/am335x-evmsk.dtb /media/boot/

    3. 运行, 插上SD卡, 上电启动, 进入u-boot命令行执行以下命令

    U-Boot# fatload mmc 0 0x82000000 uImage

    U-Boot# fatload mmc 0 0x80F80000 am335x-evmsk.dtb

    U-Boot# bootm 0x82000000 - 0x80F80000

    4. 结果: 还是卡住了, 运行灯在闪, 串口输出信息如下:

    ## Booting kernel from Legacy Image at 82000000 ...
    Image Name: Linux-3.12.10-ti2013.12.01
    Image Type: ARM Linux Kernel Image (uncompressed)
    Data Size: 4117600 Bytes = 3.9 MiB
    Load Address: 80008000
    Entry Point: 80008000
    Verifying Checksum ... OK
    ## Flattened Device Tree blob at 80f80000
    Booting using the fdt blob at 0x80f80000
    Loading Kernel Image ... OK
    Loading Device Tree to 8f320000, end 8f32c49f ... OK
    Starting kernel ...

    5. 请问, 我应该如何编译和启动呢? 谢谢.

  • 已经在另一个贴里回复您了。

    请您不要一个问题重复发帖。