Hawkboard

From eLinux.org
Revision as of 12:53, 18 February 2010 by FransMeulenbroeks (talk | contribs) (Booting Linux Kernel and Mounting RAMDISK)
Jump to: navigation, search


Hawk sticker1.JPG



Hardware Details

Hawkboard hw.jpg

  • Technical Reference Manual for OMAP L 138 Processor is Here
  • Applications of OMAP L 138 are Here

Software Details

Tools

Sources

  • Linux Kernel
  • u-boot

Building verification images from source

Compiling u-boot (bootloader)

  1. Issue compile commands with make:
  make ARCH=arm CROSS_COMPILE=arm-none-linux-gnueabi- distclean
  make ARCH=arm CROSS_COMPILE=arm-none-linux-gnueabi- omapl_hawkboard_config 
  make ARCH=arm CROSS_COMPILE=arm-none-linux-gnueabi-

Signing u-boot for UART boot

  1. Copy u-boot (elf) file to the host machine where AIS Generator is installed. Follow the below steps
  2. AIS gen uart1.JPG
  3. AIS gen uart2.JPG
  4. AIS gen uart3.JPG
  5. AIS gen uart4.JPG

Signing u-boot for NAND boot

  1. Copy u-boot (elf) file to the host machine where AIS Generator is installed. Follow the below steps
  2. AIS gen nand1.JPG
  3. Configure PLL0, PLL1, DDR tabs as shown above. The File name to generate remains as in the step above.

Compiling Linux Kernel

  1. Issue compile commands with make:
  make ARCH=arm CROSS_COMPILE=arm-none-linux-gnueabi- distclean
  make ARCH=arm CROSS_COMPILE=arm-none-linux-gnueabi- omapl138_hawkboard_defconfig
  make ARCH=arm CROSS_COMPILE=arm-none-linux-gnueabi- uImage

Booting

Booting u-boot over UART

  • Power OFF the board
  • Close any previously running terminal programs
  • Connect the UART cable to the Host machine.

Following process used on Windows family of Operating System:

  • User can use mono utility with dvflasher.ext program to load u-boot on Linux system.
  • Details To be updated

Following process used on Windows family of Operating System:

  • Configure the Boot Switches as 1-OFF 2-ON 3-OFF 4-ON
  • Start the UART Host Utility, should have been installed with AIS Generator / UART Host Tool
  • Select the AIS FILE Generated for UART UART HOST BOOT.JPG
  • Click on the Start button
  • Power UP the Device
  • If you see errors click on stop and press start again and give a board reset.
  • Wait till you all the below messages and COM is closed:
  (File IO): Read 414964 bytes from file D:\hawk_release\u-boot_uart_ais.bin.
  (Serial Port): Opening COM1 at 115200 baud...
  (AIS Parse): Read magic word 0x41504954.
  (AIS Parse): Waiting for BOOTME...
  (AIS Parse): Performing Start-Word Sync...
  (AIS Parse): Performing Ping Opcode Sync...
  (AIS Parse): Processing command 0: 0x5853590D.
  (AIS Parse): Performing Opcode Sync...
  (AIS Parse): Executing function...
  (AIS Parse): Processing command 1: 0x5853590D.
  (AIS Parse): Loaded 1512-byte section to address 0xC10E4BEC.
  ...
  ...
  ...
  (AIS Parse): Processing command 15: 0x58535906.
  (AIS Parse): Performing Opcode Sync...
  (AIS Parse): Performing jump and close...
  (AIS Parse): AIS complete. Jump to address 0xC1080000.
  (AIS Parse): Waiting for DONE...
  (AIS Parse): Boot completed successfully.
  (Serial Port): Closing COM1.
  • Now Start any standard UART Terminal and hit enter key, should see the u-boot prompt

Procedure to flash u-boot on NAND

After booting the u-boot over UART as mentioned above,

  • On the u-boot prompt in the terminal window
  • Configure the Ethernet server and Client IP addresses, For e.g.
  hawkboard.org > setenv serverip 172.24.156.199
  hawkboard.org > setenv ipaddr 172.24.190.58
  • Download the u-boot generated for NAND
  hawkboard.org > tftpboot 0xc0700000 u-boot_nand_ais.bin
  
  TFTP from server 172.24.156.199; our IP address is 172.24.190.58
  Filename 'u-boot_nand_ais.bin'.
  Load address: 0xc0700000
  Loading: #################################################################
           #################
  done
  Bytes transferred = 414988 (6550c hex)  
  • Erase NAND Flash
  hawkboard.org > nand erase

  NAND erase: device 0 whole chip
  OK
  • Flash the NAND with u-boot
  hawkboard.org > nand write.e 0xc0700000 0x20000 0x70000
  NAND write: device 0 offset 0x20000, size 0x70000
  458752 bytes written: OK
  hawkboard.org >
  • Switch off the board
  • Change the DIP Switches for NAND boot 1-ON 2-OFF 3-OFF 4-OFF

Booting u-boot over NAND

Flash u-boot into NAND as mentioned above

  • Switch off the board
  • Change the DIP Switches for NAND boot 1-ON 2-OFF 3-OFF 4-OFF
  • Switch on the board

Booting Linux Kernel and Mounting RAMDISK

You should find a kernel and a ramdisk image if you haven't found already. You can download samples from [1]. Then copy these files to your "/tftpboot" directory assuming you will use tftp for transferring files to your board. At u-boot prompt:

Set ethernet connection:

$setenv serverip <PC ipaddress>
$setenv ipaddr <board ipaddress>

Transfer files to the board:

$tftp c0700000 uImage_v1
$tftp c1180000 ramdisk_v1.gz

If you broke your bootargs previously then:

$setenv bootargs "mem=128M console=ttyS2,115200n8 root=/dev/ram0 rw initrd=0xc1180000,4M"

And finally boot the images:

$bootm c0700000

MISC

If you find screen broken, do this before bootm in u-boot, ideally this should go into kernel code

mw.l 0x01c14110 0x44442222 1;mw.l 0x01c14114 0x44400000 1;mw.l 0x01c14118 0x04604404 1;

For booting over MMC the bootargs should be

setenv bootargs console=ttyS2,115200n8 root=/dev/mmcblk0p1 rootwait ip=off

For booting android over MMC the bootargs should be

setenv bootargs mem=128M console=ttyS2,115200n8 noinitrd root=/dev/mmcblk0p1 rootwait ip=off init=/init androidboot.console=ttyS2
Android for hawkboard is here http://labs.embinux.org/index.php/Android_Porting_Guide_to_OMAP-L_138_HawkBoard


Booting Linux Kernel and Mounting NFS (Network File System)

Live Links