================================================================================
Useful notes on bulding and using of U-Boot on ARC EM Development Kit (AKA EMDK)
================================================================================

   BOARD OVERVIEW

   The DesignWare ARC EM Development Kit is FPGA-bases platform for rapid
   software development on the ARC EM family of processors.

   Since this board is based on FPGA it's possible to load and use different
   versions of ARC EM CPUs. U-Boot is built to be run on the simplest
   possible configuration which means the same one binary will work on more
   advanced configurations as well.

   The board has the following features useful for U-Boot:
    * On-board 2-channel FTDI TTL-to-USB converter
      - The first channel is used for serial debug port (which makes it possible
        to use a serial connection on pretty much any host machine be it
        Windows, Linux or Mac).
        On Linux machine typucally FTDI serial port would be /dev/ttyUSB0.
        There's no HW flow-control and baud-rate is 115200.

      - The second channel is used for built-in Digilent USB JTAG probe.
        That means no extra hardware is required to access ARC core from a
        debugger on development host. Both proprietary MetaWare debugger and
        open source OpenOCD + GDB client are supported.

      - Also with help of this FTDI chip it is possible to reset entire
        board with help of a special `rff-ftdi-reset` utility, see:
        https://github.com/foss-for-synopsys-dwc-arc-processors/rff-ftdi-reset

    * Micro SD-card slot
      - U-Boot expects to see the very first partition on the card formatted as
        FAT file-system and uses it for keeping its environment in `uboot.env`
        file. Note uboot.env is not just a text file but it is auto-generated
        file created by U-Boot on invocation of `saveenv` command.
        It contains a checksum which makes this saved environment invalid in
        case of maual modification.

      - There might be more useful files on that first FAT partition like
        user applications, data files etc.

    * 256 KiB of "ROM"
      - This so-called "ROM" is a part of FPGA image and even though it
        might be unlocked for writes its initial content will be restored
        on the next power-on.


   BUILDING U-BOOT

   1. Configure U-Boot:
      ------------------------->8----------------------
      make emdk_defconfig
      ------------------------->8----------------------

   2. To build Elf file (for example to be used with host debugger via JTAG
      connection to the target board):
      ------------------------->8----------------------
      make mdbtrick
      ------------------------->8----------------------

      This will produce `u-boot` Elf file.

   3. To build binary image to be put in "ROM":
      ------------------------->8----------------------
      make u-boot.bin
      ------------------------->8----------------------


   EXECUTING U-BOOT

   1. The EMDK board is supposed to auto-start U-Boot image stored in ROM on
      power-on. For that make sure VCCIO DIP-switches are all in "off" state.

   2. Though it is possible to load U-Boot as a simple Elf file via JTAG right
      in "ROM" and start it from the debugger. One important note here we first
      need to enable writes into "ROM" by writing 1 to 0xf0001000.

      2.1. In case of proprietary MetaWare debugger run:
      ------------------------->8----------------------
      mdb -dll=opxdarc.so -OK -preloadexec="eval *(int*)0xf0001000=0" u-boot
      ------------------------->8----------------------
