Hello, quite recently I received my back-ordered Parallella kit from Adapteva, which I reviewed on this website here. In its vanilla form the Parallella kit, which could be touted as one's own personal supercomputer, requires a set of accessories to get it off the ground and up running.
These accessories, which are either mandatory or optional, are listed below:
|Required||Power Supply||Powers the board and its accessories.|
|Required||USB Male Micro-B to Female Standard-A Cable||Used to connect to a keyboard and mouse using a hub.|
|Required||Ethernet Cable||Used to connect the LINUX based system to the outside world.|
|Required||Heatsink and fan||Used to keep the Xilinx FPGA from frying itself due to the high-speed synchronously switching differential pairs.|
|Required||Micro SD Card||The LINUX operating system resides here.|
|Optional||Micro HDMI to HDMI cable||Connects the kit to an external HDMI display.|
|Optional||USB to Serial Cable||Can be used to connect the kit to an external terminal emulator.|
The accessories that I have acquired for use with my Parallella kit, so that it can be used in a headless HDMI configuration, and a brief description of my experience in getting LINUX working is the subject of this blog post.
In its vanilla form the Parallella kit, from Adepteva, is a credit-card sized PCB containing a 16-core Epiphany III processor coupled to Xilinx's Zync 7000 Field Programmable Gate Array (FPGA). The kit I bought has the Zync 7020 variant of this System-On-a-Chip (SoC) processor.
The SoC consists of a dual ARM A9 processor and numerous embedded peripherals including Serial Peripheral Interface (SPI) and Control Area Network (CAN) controllers, as well USB and Gigabit Ethernet controllers minus their Physical Layers (PHYs).
Also, it contains a healthy number of programmable Logic Elements (LE) or about 1.3 million equivalent ASIC cells. When the 7020 Parallella kit is configured in its headless HDMI configuration about 13% of the FPGA's Look Up Tables, or LUTs, are used. The list of required and optional accessories to get the Parallella up and running are discussed below.
Choosing a supply to power the Parallella kit is one of the easier decisions that needs to be made. The only real constraint is that the connector should have a 5.5mm Outer Diameter (OD) and a
2.1mm Inner Diameter (ID). Initially, I bought a power supply that has an output rating of 5V DC and 2A, as specified in the Parallella kit's Quick Start Guide.
However, after some afterthought I decided to use a power supply, which I already had in use with a different FPGA board that has a rating of 5V and 3A. The main reason why I made this change in decision is because the Zync processor included with my Parallella kit is, as mentioned previously, is the 7020 variant. Hence, I was a bit concerned that when I add my own custom logic to the FPGA, later on, I may require more juice than a 5V, 2A power supply has to offer.
USB male micro-B to female standard-A cables can be found in abundance, as they are commonly used to charge android mobile phones. When plugged into the Parallella kit they are used to provide access to a keyboard, mouse or other USB peripherals, sometimes via a USB conformant hub. They are as cheap as chips. If you have never seen one before, can't afford one or don't have a clue what I'm talking about then the Parallella kit probably isn't for you. Then again I could be wrong and you may be a fast learner!
The Ethernet Cable
Likewise, Ethernet cables are quite cheap too. In fact quite recently I purchase some cables, that are about half a metre in length, for my LINUX gateway server, which the Parallella kit will be connected to.
If you intend to use any old cable lying around, then its worth throwing you a curve ball and saying that you might want to know the subtle difference between a Fast Ethernet cable and Gigabit Ethernet cable.
Heatsink and Fan
For the heat sink and fan combination I decided to use the original heat sink that came with the kit and attach a fan that I had purchased, as part of a Raspberry Pi heat sink and fan kit.
I decided to power the fan by attaching it to the board's power supply connector pins on the underside of the board. Once this had been done I then powered-up the board to see the fan successfully spin around and around and around.
As it turned out powering-up the board was not the most sensible decision I have ever made, as the Quick Start Guide quite explicitly states that power to the board should be applied last. That is, after all the other accessories have been attached to the kit. Doh! However, once I attached all the other accessories and powered-up the board again it didn't seem like I had done any lasting damage to the board, as I finally got it to boot LINUX.
Micro SD Card
The choice of Micro SD card is an interesting one and could make your installation attempt a pleasant one or a not so pleasant one.
In my case it wasn't! This was because with the intial card I used I kept on getting an inode error, which I didn't quite understand. Anyway to cut a long story short I switched over to the SanDisk card pictured and the system worked fine afterwards.
USB to Serial Cable
This cable is used to connect the Parallella kit to a terminal emulator program running on a host PC. This particular cable has an embedded FT232RL USB to serial converter, manufactured by FTDI. When connected to the Parallella kit, using the 1 x 3 way IDC connector next to the RJ45 connector, TXD should be connected to the RX pin. Likewise, the 1 x 3 way connector's TX pin is connected to the cable's RXD pin. I left all the other pins floating apart from the GND pin. Finally, when the ground pin was connected to the 1 x 3 way connector's ground pin I was able to view the Parallella's serial output runtime boot log using Putty at a serial bit rate of 115,200 Baud.
Initially, on Friday evening after gathering all the accessories I thought that all that was required to hit the ground running was to follow the Parallella Quick Start Guide. Sadly, I hit the ground and limped away scratching my head. It was only after the first, second and third attempts in trying to get the system to boot LINUX failed that I knew I was in for a long weekend. Gone were my plans to get my first OpenCL demo up and running the same weekend.
By Sunday evening and spurred on by that winners attitude of never feeling out of my depth I decided to compose all the facts and wait until the following weekend to try again, given I had work and all that during the week. It turned out to be a good decision.
The two major problems I encountered eventually turned out to be due to the use of an unbranded SD card and the USB to serial cable. Once I had exchanged the SD card for the SanDisk one described above, one of the problems was solved. The second problem was that the USB to serial cable exhibited the funny behaviour of not being recognised by LINUX, which was quite strange since it was based on FTDI's FT232RL chip. A chipset that has been used many a time on this website to debug our FPGA designs.
LINUX recognising the USB to serial programming cable should have been bread and butter. Eventually, it occurred to me that the problem may have arisen because I had updated the OpenSUSE kernel on my LINUX desktop between the failed attempts without firstly rebooting the system. I'd love to think that I won't make that mistake again, but knowing me in a few months time I will probably blog about making the same mistake LOL!
When I finally got my act together and felt confident that the installation had succeeded I logged onto my router to look for any unrecognisable entry that I could associate with the Parallella kit. However, as it happens identifying the Parallella kit is quite easy as the computer name appears as linaro-nano and the network address, in this instance was, 192.168.0.18.
The next thing I did was to fire-up an instance of Cygwin and use ssh to login to the Parallella kit, as can be seen in the image below. When one has reached this point most knowledgeable websites suggest that the login name and password should be changed from linaro:linaro to avoid any unwanted visitors. I duly obliged.
The next thing I did was hunt around for some examples just to convince myself that finally the kit was truly up and running. Eventually, after reading through some of the documentation I came across the matrix multiplication demo for the 16-core version of the Epiphany processor. It was located in the folder /opt/adapteva/esdk/examples/matmul. The output from running this example can be seen in the Figure below. Here it can be seen that for this particular example the 16-core version of the Epiphany processor performs the calculation in about a 10th of the time it takes the dual core Arm A9 processors.
Getting the Parallella kit up and running has been a long winded affair, which, although not tedious, requires a lot of patience. I was left with the opinion that although the forum is extremely helpful one needs to be careful not to readily associate a problem discussed on the forum with the current version of the kit. This is because some discussions refer to earlier versions. Now that its all working I should be able to attempt to program an OpenCL demo or two, which you should be able to read about here sometime soon.