173eca211SPrzemyslaw Marczak U-boot for Odroid X2/U3 273eca211SPrzemyslaw Marczak======================== 373eca211SPrzemyslaw Marczak 473eca211SPrzemyslaw Marczak1. Summary 573eca211SPrzemyslaw Marczak========== 673eca211SPrzemyslaw MarczakThis is a quick instruction for setup Odroid boards based on Exynos4412. 773eca211SPrzemyslaw MarczakBoard config: odroid_config 873eca211SPrzemyslaw Marczak 973eca211SPrzemyslaw Marczak2. Supported devices 1073eca211SPrzemyslaw Marczak==================== 1173eca211SPrzemyslaw MarczakThis U-BOOT config can be used on two boards: 1273eca211SPrzemyslaw Marczak- Odroid U3 1373eca211SPrzemyslaw Marczak- Odroid X2 1473eca211SPrzemyslaw Marczakwith CPU Exynos 4412 rev 2.0 and 2GB of RAM 1573eca211SPrzemyslaw Marczak 1673eca211SPrzemyslaw Marczak3. Boot sequence 1773eca211SPrzemyslaw Marczak================ 1873eca211SPrzemyslaw MarczakiROM->BL1->(BL2 + TrustZone)->U-BOOT 1973eca211SPrzemyslaw Marczak 2073eca211SPrzemyslaw MarczakThis version of U-BOOT doesn't implement SPL but it is required(BL2) 2173eca211SPrzemyslaw Marczakand can be found in "boot.tar.gz" from here: 2273eca211SPrzemyslaw Marczakhttp://dev.odroid.com/projects/4412boot/wiki/FrontPage?action=download&value=boot.tar.gz 2373eca211SPrzemyslaw Marczakor here: 2473eca211SPrzemyslaw Marczakhttp://odroid.in/guides/ubuntu-lfs/boot.tar.gz 2573eca211SPrzemyslaw Marczak 2673eca211SPrzemyslaw Marczak4. Boot media layout 2773eca211SPrzemyslaw Marczak==================== 2873eca211SPrzemyslaw MarczakThe table below shows SD/eMMC cards layout for U-boot. 2973eca211SPrzemyslaw MarczakThe block offset is starting from 0 and the block size is 512B. 3073eca211SPrzemyslaw Marczak ------------------------------------- 3173eca211SPrzemyslaw Marczak| Binary | Block offset| part type | 3273eca211SPrzemyslaw Marczak| name | SD | eMMC |(eMMC only)| 3373eca211SPrzemyslaw Marczak ------------------------------------- 3473eca211SPrzemyslaw Marczak| Bl1 | 1 | 0 | 1 (boot) | 3573eca211SPrzemyslaw Marczak| Bl2 | 31 | 30 | 1 (boot) | 3673eca211SPrzemyslaw Marczak| U-boot | 63 | 62 | 1 (boot) | 3773eca211SPrzemyslaw Marczak| Tzsw | 2111 | 2110 | 1 (boot) | 3873eca211SPrzemyslaw Marczak| Uboot Env | 2500 | 2500 | 0 (user) | 3973eca211SPrzemyslaw Marczak ------------------------------------- 4073eca211SPrzemyslaw Marczak 4173eca211SPrzemyslaw Marczak5. Prepare the SD boot card - with SD card reader 4273eca211SPrzemyslaw Marczak================================================= 4373eca211SPrzemyslaw MarczakTo prepare bootable media you need boot binaries provided by hardkernel. 4473eca211SPrzemyslaw MarczakFile "boot.tar.gz" (link in point 3.) contains: 4573eca211SPrzemyslaw Marczak- E4412_S.bl1.HardKernel.bin 4673eca211SPrzemyslaw Marczak- E4412_S.tzsw.signed.bin 4773eca211SPrzemyslaw Marczak- bl2.signed.bin 4873eca211SPrzemyslaw Marczak- sd_fusing.sh 4973eca211SPrzemyslaw Marczak- u-boot.bin 5073eca211SPrzemyslaw Marczak 5173eca211SPrzemyslaw MarczakThis is all you need to boot this board. But if you want to use your custom 5273eca211SPrzemyslaw Marczaku-boot then you need to change u-boot.bin with your own u-boot binary* 5373eca211SPrzemyslaw Marczakand run the script "sd_fusing.sh" - this script is valid only for SD card. 5473eca211SPrzemyslaw Marczak 5573eca211SPrzemyslaw Marczak*note: 5673eca211SPrzemyslaw MarczakThe proper binary file of current U-boot is u-boot-dtb.bin. 5773eca211SPrzemyslaw Marczak 5873eca211SPrzemyslaw Marczakquick steps for Linux: 5973eca211SPrzemyslaw Marczak- extract boot.tar.gz 6073eca211SPrzemyslaw Marczak- put any SD card into the SD reader 6173eca211SPrzemyslaw Marczak- check the device with "dmesg" 6273eca211SPrzemyslaw Marczak- run ./sd_fusing.sh /dev/sdX - where X is SD card device (but not a partition) 6373eca211SPrzemyslaw MarczakCheck if Hardkernel U-boot is booting, and next do the same with your U-boot. 6473eca211SPrzemyslaw Marczak 6573eca211SPrzemyslaw Marczak6. Prepare the eMMC boot card 6673eca211SPrzemyslaw Marczak with a eMMC card reader (boot from eMMC card slot) 6773eca211SPrzemyslaw Marczak===================================================== 6873eca211SPrzemyslaw MarczakTo boot the device from the eMMC slot you should use a special card reader 6973eca211SPrzemyslaw Marczakwhich supports eMMC partiion switch. All of the boot binaries are stored 7073eca211SPrzemyslaw Marczakon the eMMC boot partition which is normally hidden. 7173eca211SPrzemyslaw Marczak 7273eca211SPrzemyslaw MarczakThe "sd_fusing.sh" script can be used after updating offsets of binaries 7373eca211SPrzemyslaw Marczakaccording to the table from point 4. Be sure that you are working on the right 7473eca211SPrzemyslaw MarczakeMMC partition - its size is usually very small, about 1-4 MiB. 7573eca211SPrzemyslaw Marczak 7673eca211SPrzemyslaw Marczak7. Prepare the eMMC boot card 7773eca211SPrzemyslaw Marczak with a SD card reader (boot from SD card slot) 7873eca211SPrzemyslaw Marczak================================================= 7973eca211SPrzemyslaw MarczakIf you have an eMMC->microSD adapter you can prepare the card as in point 5. 8073eca211SPrzemyslaw MarczakBut then the device can boot only from the SD card slot. 8173eca211SPrzemyslaw Marczak 8273eca211SPrzemyslaw Marczak8. Prepare the boot media using Hardkernel U-boot 8373eca211SPrzemyslaw Marczak================================================= 8473eca211SPrzemyslaw MarczakYou can update the U-boot to the custom one if you have an working bootloader 8573eca211SPrzemyslaw Marczakdelivered with the board on a eMMC/SD card. Then follow the steps: 8673eca211SPrzemyslaw Marczak- install the android fastboot tool 8773eca211SPrzemyslaw Marczak- connect a micro usb cable to the board 8873eca211SPrzemyslaw Marczak- on the U-boot prompt, run command: fastboot (as a root) 8973eca211SPrzemyslaw Marczak- on the host, run command: "fastboot flash bootloader u-boot-dtb.bin" 9073eca211SPrzemyslaw Marczak- the custom U-boot should start after the board resets. 9173eca211SPrzemyslaw Marczak 9273eca211SPrzemyslaw Marczak9. Partition layout 9373eca211SPrzemyslaw Marczak==================== 9473eca211SPrzemyslaw MarczakDefault U-boot environment is setup for fixed partiion layout. 9573eca211SPrzemyslaw Marczak 9673eca211SPrzemyslaw MarczakPartition table: MSDOS. Disk layout and files as listed in the table below. 9773eca211SPrzemyslaw Marczak ----- ------ ------ ------ -------- --------------------------------- 9873eca211SPrzemyslaw Marczak| Num | Name | FS | Size | Offset | Reguired files | 9973eca211SPrzemyslaw Marczak| | | Type | MiB | MiB | | 10073eca211SPrzemyslaw Marczak ----- ------ ------ ------ -------- --------------------------------- 10173eca211SPrzemyslaw Marczak| 1 | BOOT | fat | 100 | 2 | kernel, fdt** | 10273eca211SPrzemyslaw Marczak| 2 | ROOT | ext4 | - | | any Linux system | 10373eca211SPrzemyslaw Marczak ----- ------ ------ ------ -------- --------------------------------- 10473eca211SPrzemyslaw Marczak 10573eca211SPrzemyslaw Marczak**note: 10673eca211SPrzemyslaw MarczakSupported fdt files are: 10773eca211SPrzemyslaw Marczak- exynos4412-odroidx2.dtb 10873eca211SPrzemyslaw Marczak- exynos4412-odroidu3.dtb 10973eca211SPrzemyslaw Marczak 11073eca211SPrzemyslaw MarczakSupported kernel files are: 11173eca211SPrzemyslaw Marczak- Image.itb 11273eca211SPrzemyslaw Marczak- zImage 11373eca211SPrzemyslaw Marczak- uImage 11473eca211SPrzemyslaw Marczak 11573eca211SPrzemyslaw MarczakThe default environmental variable "dfu_alt_info" is set* for above layout. 11673eca211SPrzemyslaw MarczakEach partition size is just an example, dfu_alt_info tries init two partitions. 11773eca211SPrzemyslaw MarczakThe size of each is not important. 11873eca211SPrzemyslaw Marczak 11973eca211SPrzemyslaw Marczak*note: 12073eca211SPrzemyslaw Marczak$dfu_alt_info is set on a boot time and it is concatenated using two variables: 12173eca211SPrzemyslaw Marczak- $dfu_alt_boot(set dynamically) 12273eca211SPrzemyslaw Marczak- $dfu_alt_system(from current env). 12373eca211SPrzemyslaw Marczak 12473eca211SPrzemyslaw MarczakTo add any changes to dfu_alt_info - please modify $dfu_alt_system only. 12573eca211SPrzemyslaw MarczakChanges are visible after board reset. 12673eca211SPrzemyslaw Marczak 12773eca211SPrzemyslaw Marczak10. The environment and booting the kernel 12873eca211SPrzemyslaw Marczak========================================== 12973eca211SPrzemyslaw MarczakThere are three macros defined in config for various boot options: 13073eca211SPrzemyslaw MarczakTwo for both, kernel with device tree support and also without it: 13173eca211SPrzemyslaw Marczak- boot_uimg - load uImage 13273eca211SPrzemyslaw Marczak- boot_zimg - load zImage 13373eca211SPrzemyslaw MarczakIf proper fdt file exists then it will be automatically loaded, 13473eca211SPrzemyslaw Marczakso for old kernel types, please remove fdt file from boot partition. 13573eca211SPrzemyslaw Marczak 13673eca211SPrzemyslaw MarczakThe third boot option for multi image support (more info: doc/uImage.FIT/) 13773eca211SPrzemyslaw Marczak- boot_fit - for binary file: "Image.itb" 13873eca211SPrzemyslaw Marczak 13973eca211SPrzemyslaw MarczakDefault boot command: "autoboot" 14073eca211SPrzemyslaw MarczakAnd the boot sequence is: 14173eca211SPrzemyslaw Marczak- boot_fit - if "Image.itb" exists 14273eca211SPrzemyslaw Marczak- boot_zimg - if "zImage" exists 14373eca211SPrzemyslaw Marczak- boot_uimg - if "uImage" exists 144*c8322be0SSuriyan Ramasami 145*c8322be0SSuriyan Ramasami11. USB host support 146*c8322be0SSuriyan Ramasami==================== 147*c8322be0SSuriyan Ramasami 148*c8322be0SSuriyan RamasamiThe ethernet can be accessed after starting the USB subsystem in U-Boot. 149*c8322be0SSuriyan RamasamiThe adapter does not come with a preconfigured MAC address, and hence it needs 150*c8322be0SSuriyan Ramasamito be set before starting USB. 151*c8322be0SSuriyan Ramasamisetenv usbethaddr 02:DE:AD:BE:EF:FF 152*c8322be0SSuriyan Ramasami 153*c8322be0SSuriyan RamasamiNote that in this example a locally managed MAC address is chosen. Care should 154*c8322be0SSuriyan Ramasamibe taken to make these MAC addresses unique within the same subnet. 155*c8322be0SSuriyan Ramasami 156*c8322be0SSuriyan RamasamiStart the USB subsystem: 157*c8322be0SSuriyan RamasamiOdroid # setenv usbethaddr 02:DE:AD:BE:EF:FF 158*c8322be0SSuriyan RamasamiOdroid # usb start 159*c8322be0SSuriyan Ramasami(Re)start USB... 160*c8322be0SSuriyan RamasamiUSB0: USB EHCI 1.00 161*c8322be0SSuriyan Ramasamiscanning bus 0 for devices... 4 USB Device(s) found 162*c8322be0SSuriyan Ramasami scanning usb for storage devices... 1 Storage Device(s) found 163*c8322be0SSuriyan Ramasami scanning usb for ethernet devices... 1 Ethernet Device(s) found 164*c8322be0SSuriyan RamasamiOdroid # 165*c8322be0SSuriyan Ramasami 166*c8322be0SSuriyan RamasamiAutomatic IP assignment: 167*c8322be0SSuriyan Ramasami------------------------ 168*c8322be0SSuriyan RamasamiIf the ethernet is connected to a DHCP server (router maybe with DHCP enabled), 169*c8322be0SSuriyan Ramasamithen the below will automatically assign an ip address through DHCP. 170*c8322be0SSuriyan Ramasamisetenv autoload no 171*c8322be0SSuriyan Ramasamidhcp 172*c8322be0SSuriyan Ramasami 173*c8322be0SSuriyan RamasamiOdroid # setenv autoload no 174*c8322be0SSuriyan RamasamiOdroid # dhcp 175*c8322be0SSuriyan RamasamiWaiting for Ethernet connection... done. 176*c8322be0SSuriyan RamasamiBOOTP broadcast 1 177*c8322be0SSuriyan RamasamiDHCP client bound to address 192.168.1.10 (524 ms) 178*c8322be0SSuriyan RamasamiOdroid # 179*c8322be0SSuriyan Ramasami 180*c8322be0SSuriyan RamasamiNote that this automatically sets the many IP address related variables in 181*c8322be0SSuriyan RamasamiU-Boot that is obtained from the DHCP server. 182*c8322be0SSuriyan Ramasami 183*c8322be0SSuriyan RamasamiOdroid # printenv ipaddr netmask gatewayip dnsip 184*c8322be0SSuriyan Ramasamiipaddr=192.168.1.10 185*c8322be0SSuriyan Ramasaminetmask=255.255.255.0 186*c8322be0SSuriyan Ramasamigatewayip=192.168.1.1 187*c8322be0SSuriyan Ramasamidnsip=192.168.1.1 188*c8322be0SSuriyan Ramasami 189*c8322be0SSuriyan RamasamiPing example: 190*c8322be0SSuriyan RamasamiThe ping command can be used a test to check connectivity. In this example, 191*c8322be0SSuriyan Ramasami192.168.1.27 is a pingable server in the network. 192*c8322be0SSuriyan RamasamiOdroid # ping 192.168.1.27 193*c8322be0SSuriyan RamasamiWaiting for Ethernet connection... done. 194*c8322be0SSuriyan RamasamiUsing sms0 device 195*c8322be0SSuriyan Ramasamihost 192.168.1.27 is alive 196*c8322be0SSuriyan RamasamiOdroid # 197*c8322be0SSuriyan Ramasami 198*c8322be0SSuriyan RamasamiStatic IP assignment: 199*c8322be0SSuriyan Ramasami--------------------- 200*c8322be0SSuriyan RamasamiIn the case where there are no DHCP servers in the network, or you want to 201*c8322be0SSuriyan Ramasamiset the IP address statically, it can be done by: 202*c8322be0SSuriyan RamasamiOdroid # setenv ipaddr 192.168.1.10 203*c8322be0SSuriyan RamasamiOdroid # ping 192.168.1.27 204*c8322be0SSuriyan RamasamiWaiting for Ethernet connection... done. 205*c8322be0SSuriyan RamasamiUsing sms0 device 206*c8322be0SSuriyan Ramasamihost 192.168.1.27 is alive 207*c8322be0SSuriyan Ramasami 208*c8322be0SSuriyan RamasamiTFTP booting: 209*c8322be0SSuriyan Ramasami------------- 210*c8322be0SSuriyan RamasamiSay there exists a tftp server in the network with address 192.168.1.27 and 211*c8322be0SSuriyan Ramasamiit serves a kernel image (zImage.3.17) and a DTB blob (exynos4412-odroidu3.dtb) 212*c8322be0SSuriyan Ramasamithat needs to be loaded and booted. It can be accomplished as below: 213*c8322be0SSuriyan Ramasami(Assumes that you have setenv usbethaddr, and have not set autoload to no) 214*c8322be0SSuriyan Ramasami 215*c8322be0SSuriyan RamasamiOdroid # setenv serverip 192.168.1.27 216*c8322be0SSuriyan RamasamiOdroid # tftpboot 0x40080000 zImage.3.17 217*c8322be0SSuriyan RamasamiWaiting for Ethernet connection... done. 218*c8322be0SSuriyan RamasamiUsing sms0 device 219*c8322be0SSuriyan RamasamiTFTP from server 192.168.1.27; our IP address is 192.168.1.10 220*c8322be0SSuriyan RamasamiFilename 'zImage.3.17'. 221*c8322be0SSuriyan RamasamiLoad address: 0x40080000 222*c8322be0SSuriyan RamasamiLoading: ################################################################# 223*c8322be0SSuriyan Ramasami ################################################################# 224*c8322be0SSuriyan Ramasami ################################################################# 225*c8322be0SSuriyan Ramasami ####################### 226*c8322be0SSuriyan Ramasami 52.7 KiB/s 227*c8322be0SSuriyan Ramasamidone 228*c8322be0SSuriyan RamasamiBytes transferred = 3194200 (30bd58 hex) 229*c8322be0SSuriyan RamasamiOdroid # tftpboot 0x42000000 exynos4412-odroidu3.dtb 230*c8322be0SSuriyan RamasamiWaiting for Ethernet connection... done. 231*c8322be0SSuriyan RamasamiUsing sms0 device 232*c8322be0SSuriyan RamasamiTFTP from server 192.168.1.27; our IP address is 192.168.1.10 233*c8322be0SSuriyan RamasamiFilename 'exynos4412-odroidu3.dtb'. 234*c8322be0SSuriyan RamasamiLoad address: 0x42000000 235*c8322be0SSuriyan RamasamiLoading: #### 236*c8322be0SSuriyan Ramasami 40 KiB/s 237*c8322be0SSuriyan Ramasamidone 238*c8322be0SSuriyan RamasamiBytes transferred = 46935 (b757 hex) 239*c8322be0SSuriyan RamasamiOdroid # printenv bootargs 240*c8322be0SSuriyan Ramasamibootargs=Please use defined boot 241*c8322be0SSuriyan RamasamiOdroid # setenv bootargs console=ttySAC1,115200n8 root=/dev/mmcblk0p2 rootwait 242*c8322be0SSuriyan RamasamiOdroid # bootz 40080000 - 42000000 243*c8322be0SSuriyan RamasamiKernel image @ 0x40080000 [ 0x000000 - 0x30bd58 ] 244*c8322be0SSuriyan Ramasami## Flattened Device Tree blob at 42000000 245*c8322be0SSuriyan Ramasami Booting using the fdt blob at 0x42000000 246*c8322be0SSuriyan Ramasami Loading Device Tree to 4fff1000, end 4ffff756 ... OK 247*c8322be0SSuriyan Ramasami 248*c8322be0SSuriyan RamasamiStarting kernel ... 249*c8322be0SSuriyan Ramasami 250*c8322be0SSuriyan Ramasami[ 0.000000] Booting Linux on physical CPU 0xa00 251*c8322be0SSuriyan Ramasami... etc ... 252*c8322be0SSuriyan Ramasami 253*c8322be0SSuriyan RamasamiIn the above example you can substitute 'dhcp' for 'tftpboot' as well. 254*c8322be0SSuriyan Ramasami 255*c8322be0SSuriyan RamasamiUSB Storage booting: 256*c8322be0SSuriyan Ramasami-------------------- 257*c8322be0SSuriyan RamasamiSimilarly we can use the USB storage to load the kernel image/initrd/fdt etc 258*c8322be0SSuriyan Ramasamiand boot. For this example, there is a USB drive plugged in. It has a FAT 259*c8322be0SSuriyan Ramasami1st partition and an EXT 2nd partition. Using the generic FS (ls/load) makes 260*c8322be0SSuriyan Ramasamiit even easier to work with FAT/EXT file systems. 261*c8322be0SSuriyan RamasamiFor this example the second EXT partition is used for booting and as rootfs. 262*c8322be0SSuriyan RamasamiThe boot files - kernel and the dtb are present in the /boot directory of the 263*c8322be0SSuriyan Ramasamisecond partition. 264*c8322be0SSuriyan Ramasami 265*c8322be0SSuriyan RamasamiOdroid # usb start 266*c8322be0SSuriyan Ramasami(Re)start USB... 267*c8322be0SSuriyan RamasamiUSB0: USB EHCI 1.00 268*c8322be0SSuriyan Ramasamiscanning bus 0 for devices... 4 USB Device(s) found 269*c8322be0SSuriyan Ramasami scanning usb for storage devices... 1 Storage Device(s) found 270*c8322be0SSuriyan Ramasami scanning usb for ethernet devices... 271*c8322be0SSuriyan RamasamiError: sms0 address not set. <----- Note the error as usbethaddr 272*c8322be0SSuriyan RamasamiWarning: failed to set MAC address <----- is not set. 273*c8322be0SSuriyan Ramasami1 Ethernet Device(s) found 274*c8322be0SSuriyan RamasamiOdroid # usb part 0 275*c8322be0SSuriyan Ramasami 276*c8322be0SSuriyan RamasamiPartition Map for USB device 0 -- Partition Type: DOS 277*c8322be0SSuriyan Ramasami 278*c8322be0SSuriyan RamasamiPart Start Sector Num Sectors UUID Type 279*c8322be0SSuriyan Ramasami 1 3072 263168 000c4046-01 06 280*c8322be0SSuriyan Ramasami 2 266240 13457408 000c4046-02 83 281*c8322be0SSuriyan Ramasami 282*c8322be0SSuriyan RamasamiOdroid # ls usb 0:2 /boot 283*c8322be0SSuriyan Ramasami<DIR> 4096 . 284*c8322be0SSuriyan Ramasami<DIR> 4096 .. 285*c8322be0SSuriyan Ramasami 353 boot.scr 286*c8322be0SSuriyan Ramasami 281 boot.txt 287*c8322be0SSuriyan Ramasami 101420 config-3.8.13.23 288*c8322be0SSuriyan Ramasami 2127254 initrd.img-3.8.13.23 289*c8322be0SSuriyan Ramasami 2194825 uInitrd 290*c8322be0SSuriyan Ramasami 2194825 uInitrd-3.8.13.23 291*c8322be0SSuriyan Ramasami 2453112 zImage 292*c8322be0SSuriyan Ramasami 101448 config-3.8.13.26 293*c8322be0SSuriyan Ramasami 2127670 uInitrd-3.8.13.26 294*c8322be0SSuriyan Ramasami 2127606 initrd.img-3.8.13.26 295*c8322be0SSuriyan Ramasami 3194200 zImage.3.17 <--- Kernel 296*c8322be0SSuriyan Ramasami 46935 exynos4412-odroidu3.dtb <--- DTB 297*c8322be0SSuriyan RamasamiOdroid # load usb 0:2 40080000 /boot/zImage.3.17 298*c8322be0SSuriyan Ramasami3194200 bytes read in 471 ms (6.5 MiB/s) 299*c8322be0SSuriyan RamasamiOdroid # load usb 0:2 42000000 /boot/exynos4412-odroidu3.dtb 300*c8322be0SSuriyan Ramasami46935 bytes read in 233 ms (196.3 KiB/s) 301*c8322be0SSuriyan RamasamiOdroid # setenv bootargs console=ttySAC1,115200n8 root=/dev/sda2 rootwait 302*c8322be0SSuriyan RamasamiOdroid # bootz 40080000 - 42000000 303*c8322be0SSuriyan RamasamiKernel image @ 0x40080000 [ 0x000000 - 0x30bd58 ] 304*c8322be0SSuriyan Ramasami## Flattened Device Tree blob at 42000000 305*c8322be0SSuriyan Ramasami Booting using the fdt blob at 0x42000000 306*c8322be0SSuriyan Ramasami Loading Device Tree to 4fff1000, end 4ffff756 ... OK 307*c8322be0SSuriyan Ramasami 308*c8322be0SSuriyan RamasamiStarting kernel ... 309*c8322be0SSuriyan Ramasami 310*c8322be0SSuriyan Ramasami[ 0.000000] Booting Linux on physical CPU 0xa00 311*c8322be0SSuriyan Ramasami 312*c8322be0SSuriyan RamasamiPlease refer to README.usb for additional information. 313