Whenever I hear the name Gizmo I always think of the small, cute, furry little mogwai creature that was the main character in the film Gremlins, if you have not seen the film. It was intended as a horror movie and spawned a sequel, which ended up as B-movie hilarious. The film was based around two simple rules; don't get them wet and don't feed them after midnight.
Well I certainly wouldn't want to get the wet, but I might end up snacking after midnight while I work on projects with it and it appears to be devoid of Gremlins, in this case I mean the type which historically is known to tamper with and mess about on electronics but like the mogwai, the Gizmo2 is small, cute and capable.
The on-board processor is made by AMD, a GX-210HA, 1Ghz 64bit 'Jaguar' with 2MB L2 cache shared across two processor cores (SKU: GE210HICJ23HM). This makes the board different to the other popular single board computers that element14 typically stock, rather than its processor being ARM based, it is a different architecture entirely, referred to as x86. Typically though, this refers to the 32bit version; the Gizmo2 is 64bit making it x86_64.
The x86 architecture should be familiar to you, or at least it is one that you will have used at some point because it has been a common base for personal computer processors for years, within the past 10 or so this has been expanded with x86_64 which allows for more bits to be pushed through to be processed at once. This should mean that there's a lot of software available which is written for that type of architecture and so long as you have the right operating system running, which means a wealth of development opportunities available.
Alongside the CPU die there is also a discrete graphics processor within the chip package. This is an AMD Radeon HD 8210E which is clocked at 300 Mhz with 512mB of DDR3 RAM (according to the specifications I have read so far, though don't hold me to it, I'm not sure at the time of writing if this is shared with the rest of the board or if it's dedicated on chip).
It supports output to two displays simultaneously, how this is connected up is up to you. There's a HDMI port on the board with a possibility to breakout additional methods of connecting a screen using the PCIe style edge connectors to the following standards:
- DisplayPort 1.2
- 18bpp single channel LVDS
If you're not familiar with the Radeon range of graphics chips, it is a brand range which used to be called ATi and they are a contender range against nVidia for rendering three dimensional graphics such as you would find in computer games or used for virtual reality or computer aided design work. To take advantage of the capabilities of the graphics chip there are various ways to program code for it. A few APIs (Advanced Programming Interfaces) which are supported are:
- DirectX 11.1
- OpenGL 4.2
- OpenCL 1.2
DirectX has grown to be widely used on desktop computers, laptops and consoles since it was introduced in the early days of Windows 95. It is predominantly a Microsoft API so it is beneficial that OpenGL is also supported, which is an open source method of rendering graphics.
OpenCL is relatively newer. It can be used across various processor types to take advantage of the discrete computation mathematics that its capable of. For example, a graphics processor is typically used to render 3D which means it is very good at handling floating point numbers (aka fractional type numbers such as 1.2, 1.3, 1.5... ) I've seen OpenCL used as an interface for bitcoin mining, grid computing as part of larger tasks and computing hashes.
Board Connectivity and Features
The board uses a STM8S003F3 8-bit micro-controller with EEPROM to handle the power-up and reset states, which can be reprogrammed, but frankly you would have to be crazy to do so unless you really know what you're doing. Equally there is a BIOS chip, MX25L3239E, 32mb SPI ROM which is preloaded with a SageBIOS BSP which can also easily be reprogrammed.
Audio is handled by a Realtek ALC272, allowing for audio output via HDMI and the 3.5mm jack which also takes mono microphone input on the same connection. Further connections are possible via the PCIe style edge connectors on the board.
Network connectivity is via the gigabit ethernet controller, which is connected via PCIe on-board, sporting a Realtek RTL8111 chip, what I find mildly surprising is if you want to read the datasheet, you have to agree to an NDA and sign up to the Realtek site.
Functionality of the processor, audio chip and other functionality are available via the following connectors onboard (or some broken out via the edge connector):
- A miniPCIe/mSata combined port which will accept either type of device such as a solid state disk drive or a WiFi adapter.
- Four x1 links of PCIe Gen 2 for GPPs
- One x4 link of PCIe Gen2 for discrete GPU
- Eight USB 2.0 ports
- Two SATA 2.x/3.x ports (up to 6Gb/s)
- SDCard Reader v3.0/SDIO Controller
Because of the architecture type that the processor supports you can run almost any operating system on the board (so long as you can support it via the drivers in some way). The official word is that it runs Linux and Windows 8 Embedded and Android; but probably any other build of operating system for the board. You'll have to experiment with what you can get to run from a MicroSD card unless you break out the edge connector to a SATA port or use the mSata port for an SSD (the SageBIOS on boot looks for various options by default)
I have been working with pre-release hardware, but the image provided should be a version of Timesys embedded linux built for demonstration (so it will be pretty limited in functionality) which has XBMC, Big Buck Bunny, an introduction to Timesys and Gizmosphere.
Aside from the element14 community, Gizmosphere should work well as a hub for the support materials required to get the board up and running from the BIOS upwards. Timesys, should you sign up for an account with them, can help to build a version of embedded linux for the Gizmo2.
Gizmo2 is a good basis for parallel processing, whether discrete or graphical; or as the basis for a portable computer. It just begs the question...
What will you make when you create the future ?