title: How to boot Linux kernel from u-boot?
body: <p>My Linux kernel image <code>uImage</code> is in my U-disk. And I want to boot it from U-Boot. Also the device tree file <code>am335x-evm.dtb</code> is in my U-disk.
  What I did is below:</p>
  
  <pre><code>U-Boot# usb start
  (Re)start USB...
  USB0:   scanning bus 0 for devices... 1 USB Device(s) found
         scanning usb for storage devices... 1 Storage Device(s) found
  U-Boot# fatls usb 0:1
    3821960   uimage
              kit3/
    4065280   modules.tar
              my_modules/
              extra/
              system volume information/
        375   uenv.txt
      40474   am335x-evm.dtb
  
  4 file(s), 4 dir(s)
  
  U-Boot# fatload usb 0:1 0xC0700000 uImage
  reading uImage
  3821960 bytes read in 2375 ms (1.5 MiB/s)
  U-Boot# fatload usb 0:1 0xC0e00000 am335x-evm.dtb
  reading am335x-evm.dtb
  40474 bytes read in 48 ms (823.2 KiB/s)
  U-Boot# bootm 0xC0700000 - 0xC0e00000
  ## Booting kernel from Legacy Image at c0700000 ...
     Image Name:   Linux-3.12.10-ge35dc10-dirty
     Image Type:   ARM Linux Kernel Image (uncompressed)
     Data Size:    3821896 Bytes = 3.6 MiB
     Load Address: 80008000
     Entry Point:  80008000
     Verifying Checksum ... OK
  ## Flattened Device Tree blob at c0e00000
     Booting using the fdt blob at 0xc0e00000
     Loading Kernel Image ... OK
  OK
     Using Device Tree in place at c0e00000, end c0e0ce19
  
  Starting kernel ...
  </code></pre>
  
  <p>And it stops here. How to do? Thanks!</p>
  
  <p><strong>Result:</strong>
  Thanks for everyone who answered in this post! Now I can boot the system by using the image in U-disk. What I do is:</p>
  
  <pre><code>setenv bootargs "console=ttyO0,115200n8 root=/dev/mmcblk0p2 rw rootfstype=ext4 mem=512M coherent_pool=8M loglevel=0 lpj=3317760 rootwait"
  usb start; fatls usb 0:1; fatload usb 0:1 0x82000000 uImage-orig-onUSB;fatload usb 0:1 0x80F80000 am335x-evm.dtb;bootm 0x82000000 - 0x80F80000
  </code></pre>
  
  <p>Without the first sentence, the system can also boot and start the GUI program which will show in a display. But the debug serial port has no reaction any more!</p>
  
  <p>As for the second sentence, if I use the ram address of 0xC0700000 and 0xC0e00000, like this below, then it will stop to load the kernel. The reason should be what sawdust mentioned in his answer. @sawdust</p>
  
  <pre><code>setenv bootargs "console=ttyO0,115200n8 root=/dev/mmcblk0p2 rw rootfstype=ext4 mem=512M coherent_pool=8M loglevel=0 lpj=3317760 rootwait"
  usb start; fatls usb 0:1; fatload usb 0:1 0xC0700000 uImage-orig-onUSB;fatload usb 0:1 0xC0e00000 am335x-evm.dtb;bootm 0xC0700000 - 0xC0e00000
  </code></pre>