This is our new webpage. If you prefer the old one, it's here. If something's not working right, let us know at contact@antmicro.com or use the contact form. Thanks!
 
 
 
 
 
 

Archive for the ‘ARM’ Category

May 13th, 2012
Xilinx X-Fest 2012 in Oslo – time for Zynq

Oslo is always a good and familiar place to visit, especially if it means bumping into some old friends from the FPGA world and making a few new ones on a Xilinx X-Fest. The one we attended was held in Sandvika in suburban Oslo on May 8, but you can still participate in several other places around Europe and the world if you wish – check the event website!

This year, X-Fest is dominated by the new Cortex-A9+FPGA hybrid – Zynq, with one track and most exhibitor’s booths dedicated exclusively to this technology. And rightly so!

The “Processing System + Programmable Logic” combination, a dual-core general-purpose CPU with the ability to delegate tasks which are computationally heavy and prone to parallelising onto a dedicated block synthesised within the FPGA is just brilliant. Sure, not all applications will benefit from this, but if you know what you are doing and are able to identify bottlenecks in your product, you can get your software to run some 10x faster.

It’ll be good to verify this claim in practice – after all, ground-breaking technologies are more often announced than functional – but this time it looks that Xilinx’s has really done a good job. There are limitations such as power-up time or the speed of the CPU (the dual-core Cortex-A9 is clocked only around 600 MHz for now, 800 MHz in future chips) but none of them seem to be deal-breakers.

We will see if the tools available allow the ecosystem to suck up ‘traditional’ software developers in addition to the FPGA guys, but it seems that Xilinx is aware of the fact that SW engineers require a different approach and are working with ARM provide tools necessary to facilitate the transfer from plain-ol’ CPU systems to a CPU+FPGA hybrid.

We have already been running the Zynq QEMU port out of curiosity, but this of course gives little feel of what the real stuff behaves like. However, with a bit of luck we will get our hands on physical modules as early as in June.

Follow our blog where we will describe our work with the Zynq technology and our thoughts on how useful it really is in practice. If you have ideas on how your applications can benefit from using Zynq or want to ask a question about it, be sure to leave a comment!

April 24th, 2011
U-Boot for Toradex Colibri Tegra 250 Module

Recently our friends at Toradex released engineering samples of the fantastic Colibri Tegra module based on the famed NVIDIA Tegra 2 Cortex-A9 MPCore. The only thing it was lacking was open-source software for the boot process.

We’ve decided to port the well-established U-Boot bootloader (from DENX) as it’s suited best for booting our internal, console-only port of the Linux 2.6.36 kernel.

In the attachment to this post you will find the source files necessary to build and run U-Boot on Toradex’ Orchid and Iris carrier boards. For those who want to miss out on the fun of building it from scratch, a binary image is included. The bootloader runs at a 115200 baudrate, on UART_A.

The major functionalities which are featured in this release are:

  • Separate configuration layout files for Toradex/Colibri
  • PLL, Clock and pinmux configuration
  • cores initialization
  • UART_A initialization, serial console
  • Initialization for USB ULPI (SMSC USB3340)
  • Asix AX88772B USB 2.0 Ethernet support

Detailed information, descriptions of the patching and compilation processes are provided in the attached manual.

The code is released under GPL.

We’d like to thank Toradex for allowing us to get an early sample of the Iris board, which greatly helped our development effort.

Attached .tar.gz file: u-boot-2011.03-rc2-toradex-colibri-tegra.tar.gz

Attached .pdf file: U-Boot_Colibri_Manual.pdf

Attached .bin file: u-boot-2011.03-rc2-toradex-colibri-tegra.bin

August 29th, 2009
I²C in eCos on AT91SAM7 platforms

Using eCos on AT91SAM7 family processors has generally been a positive experience, however, the absence of some important functionalities can be somewhat of a problem. One of the most striking deficiencies of eCos is the lack of an interrupt-based driver for I²C, a popular bus used especially with various sensor chips. As we had to devise such a driver in one of our projects, we publish it below. The code can be used for the eCos userspace application on both SAM7X and SAM7S and, after some modification, can successfully be used seperately from the eCos platform.
The code is released on the BSD license. We appreciate any remarks!


First we have to declare a few variables – mutex and flag handles, and some buffer structures:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
       // rx_tx_struct
       typedef struct {
            cyg_int16 len;
            cyg_uint16 index;
             char *buffer;
       } I2C_RX_TX_STRUCT;
       I2C_RX_TX_STRUCT rx_data_struct, tx_data_struct;
       // handles, flags, mutexes
       cyg_flag_t rxrdy_flag;
       cyg_flag_t txrdy_flag;
       cyg_flag_t txcomp_flag;
       cyg_flag_t done_flag;
       cyg_handle_t  hIntr;
       cyg_interrupt intr;
       cyg_mutex_t twi_mutex;

(more…)

 

Copyright © 2009 - 2012 ant micro. All rights reserved. | Design: Duind.com