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.

用uboot的 tftp命令下载kernel,启动后无打印信息



kernel: linux-3.14.43

platform:AM437X

问题:用uboot的 tftp命令下载kernel,启动后无打印信息

tftp操作步骤:

step1: tftp 0x82000000 uImage
step2: tftp 0x83000000 am437x-gp-easyevm.dtb
step3: bootm 0x82000000 - 0x83000000

打印信息如下

U-Boot# 
U-Boot# 
U-Boot# 
U-Boot# tftp 0x82000000 uImage
link up on port 0, speed 1000, full duplex
Using cpsw device
TFTP from server 192.168.65.106; our IP address is 192.168.65.249
Filename 'uImage'.
Load address: 0x82000000
Loading: #################################################################
         #################################################################
         #################################################################
         #################################################################
         #################################################################
         #################################################################
         #################################################################
         #################################################################
         #################################################################
         #################################################################
         #################################################################
         #################################################################
         #################################################################
         #####################################################
         178.7 KiB/s
done
Bytes transferred = 4593440 (461720 hex)
U-Boot# tftp 0x83000000 am437x-gp-easyevm.dtb
link up on port 0, speed 1000, full duplex
Using cpsw device
TFTP from server 192.168.65.106; our IP address is 192.168.65.249
Filename 'am437x-gp-easyevm.dtb'.
Load address: 0x83000000
Loading: ##########
         196.3 KiB/s
done
Bytes transferred = 50739 (c633 hex)
U-Boot# bootm 0x82000000 - 0x83000000
## Booting kernel from Legacy Image at 82000000 ...
   Image Name:   Linux-3.14.43
   Image Type:   ARM Linux Kernel Image (uncompressed)
   Data Size:    4593376 Bytes = 4.4 MiB
   Load Address: 80008000
   Entry Point:  80008000
   Verifying Checksum ... OK
## Flattened Device Tree blob at 83000000
   Booting using the fdt blob at 0x83000000
   Loading Kernel Image ... OK
   Loading Device Tree to 8fff0000, end 8ffff632 ... OK

Starting kernel ...


 _____                    _____           _         _   
|  _  |___ ___ ___ ___   |  _  |___ ___  |_|___ ___| |_ 
|     |  _| .'| . | . |  |   __|  _| . | | | -_|  _|  _|
|__|__|_| |__,|_  |___|  |__|  |_| |___|_| |___|___|_|  
              |___|                    |___|            

Arago Project http://arago-project.org am437x-evm /dev/ttyO0

Arago 2015.05 am437x-evm /dev/ttyO0

am437x-evm login: root
root@am437x-evm:~# 

而直接从nand启动就有kernel的打印信息

U-Boot SPL 2014.07-00115-g6c69db3 (Jan 30 2016 - 17:32:22)
Could not probe the EEPROM at 0x50
Could not get board ID.
SPL: Please implement spl_start_uboot() for your board
SPL: Direct Linux boot not active!


U-Boot 2014.07-00115-g6c69db3 (Jan 30 2016 - 17:32:22) I2C: ready DRAM: 512 MiB NAND: 512 MiB MMC: OMAP SD/MMC: 0, OMAP SD/MMC: 1 reading uboot.env Could not probe the EEPROM at 0x50 Could not get board ID. Net: cpsw, usb_ether Hit any key to stop autoboot: 0 switch to partitions #0, OK mmc0 is current device SD/MMC found on device 0 reading uEnv.txt ** Unable to read file uEnv.txt ** 4576224 bytes read in 212 ms (20.6 MiB/s) 50683 bytes read in 9 ms (5.4 MiB/s) Booting from mmc0 ... Kernel image @ 0x82000000 [ 0x000000 - 0x45d3e0 ] ## Flattened Device Tree blob at 88000000 Booting using the fdt blob at 0x88000000 Loading Device Tree to 8fff0000, end 8ffff5fa ... OK Starting kernel ... [ 0.000000] Booting Linux on physical CPU 0x0 [ 0.000000] Linux version 3.14.43 (zxp@zxp) (gcc version 4.7.3 20130226 (prerelease) (crosstool-NG linaro-1.13.1-4.7-2013.03-20130313 - Linaro GCC 2013.03) ) #1 Fri Sep 9 16:13:52 CST 2016 [ 0.000000] CPU: ARMv7 Processor [412fc09a] revision 10 (ARMv7), cr=10c5387d [ 0.000000] CPU: PIPT / VIPT nonaliasing data cache, VIPT aliasing instruction cache [ 0.000000] Machine model: TI AM437x GP EVM [ 0.000000] cma: CMA: reserved 24 MiB at 9e400000 [ 0.000000] Memory policy: Data cache writeback [ 0.000000] CPU: All CPU(s) started in SVC mode. [ 0.000000] AM437x ES1.2 (sgx neon ) [ 0.000000] Built 1 zonelists in Zone order, mobility grouping on. Total pages: 129536 [ 0.000000] Kernel command line: console=ttyO0,115200n8 root=/dev/mmcblk0p2 rw rootfstype=ext4 rootwait [ 0.000000] PID hash table entries: 2048 (order: 1, 8192 bytes) [ 0.000000] Dentry cache hash table entries: 65536 (order: 6, 262144 bytes) [ 0.000000] Inode-cache hash table entries: 32768 (order: 5, 131072 bytes) [ 0.000000] Memory: 483656K/522240K available (6215K kernel code, 312K rwdata, 2212K rodata, 269K init, 233K bss, 38584K reserved, 0K highmem) [ 0.000000] Virtual kernel memory layout: [ 0.000000] vector : 0xffff0000 - 0xffff1000 ( 4 kB) [ 0.000000] fixmap : 0xfff00000 - 0xfffe0000 ( 896 kB) [ 0.000000] vmalloc : 0xe0800000 - 0xff000000 ( 488 MB) [ 0.000000] lowmem : 0xc0000000 - 0xe0000000 ( 512 MB) [ 0.000000] pkmap : 0xbfe00000 - 0xc0000000 ( 2 MB) [ 0.000000] modules : 0xbf000000 - 0xbfe00000 ( 14 MB) [ 0.000000] .text : 0xc0008000 - 0xc08430c4 (8429 kB) [ 0.000000] .init : 0xc0844000 - 0xc08874cc ( 270 kB) [ 0.000000] .data : 0xc0888000 - 0xc08d6200 ( 313 kB) [ 0.000000] .bss : 0xc08d6200 - 0xc0910890 ( 234 kB) [ 0.000000] NR_IRQS:16 nr_irqs:16 16 [ 0.000000] GIC CPU mask not found - kernel will fail to boot. [ 0.000000] GIC CPU mask not found - kernel will fail to boot. [ 0.000000] OMAP clockevent source: timer2
  • 用的kernel是一样的么?好像把console给关掉的感觉。

  • hi,Zhou

    是一样的,不过一个是通过SD卡更新(zImage),一个是通过uboot(uImage)

    都是一起编译产生的,编译过程如下

    make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- distclean
    make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- tisdk_am437x-evm_defconfig
    make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- am437x-gp-easyevm.dtb
    make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- zImage -j4
    make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- modules -j4
    make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- uImage LOADADDR=0X80008000

    最后一个命令“make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- uImage LOADADDR=0X80008000”的 LOADADDR是怎么决定的?我写对了吗?

    谢谢!

  • device tree架构应该用zImage