Posts Tagged ‘ARM’

March 13th, 2013
Preview of Android for the Enclustra ZX3 Zynq module

It’s been some time since we last wrote about the Zynq, which is not to say that we have stopped to deal with this great technology. It’s interesting to see the process of its adoption and how it brings people from two neighbouring worlds – embedded software and FPGA – together.

Just to whep up your appetite on what we are doing now, a video of Android running on the Enclustra Mars ZX3 module.

The Zynq module running our port of Android was presented at or joint stand with Enclustra at Embedded World 2013 in Nurnberg, and gathered a lot of positive feedback, since the dual-core ARM Processing System of Zynq is more than capable of running the system smoothly, and the Programmable Logic gives a lot of additional possibilities.

Alongside the physical hardware, we also demoed our virtual platform solution, Emul8, running the same Android binary on a PC. We were positively surprised with the interesting conversations and leads this sparked up!

A full account of Embedded World, with all the developments in the industry that might be of interest as well as our impression on where the market is going will follow soon.

As for the Android port, soon we will be publishing it while continuing our work on our GitHub, courtesy of Enclustra.

January 28th, 2013
Booting Mars ZX3 eCos binary from RedBoot over TFTP

tftboot

We’re continuing our series of posts on using eCos and RedBoot on Enclustra’s ZX3 Zynq module – this time with a practical scenario which you might find useful.

It’s a typical case — you’d like to load binaries of eCos apps with RedBoot via TFTP; how to get going on that?

We assume that you have RedBoot running on the board and have an eCos binary ready to roll. If not, see the instructions on our github on how to compile those and use them with the board.

First you have to do is to set up a TFTP server so that you are sure your binary is available from the module. On a Debian Wheezy installation (and probably any other Linux distro) you might use the instructions from Timesys.

With one exception: if you do not have a ‘tftp’ file in ‘/etc/xinetd.d’ siply create one and paste the content from the site into it.

Now you should boot up RedBoot to the prompt. Of course by then it’s nice to have a console window (for example, minicom) with a connection to the board open.

If you had the Ethernet cable attached during boot you’ll probably get IP address via DHCP (if RedBoot is configured to use that, which it is by default) — this was the case in the example from the attached screenshot, where the board received an IP address of 192.168.1.27. You should be able to see the IP information as one of the first messages RedBoot prints to the console.

If a network connection wasn’t configured automatically during startup you should configure it manually with:

1
ip_address -l <xxx.xxx.xxx.xxx> (where xxx.xxx.xxx.xxx is IP address)

for a static IP, or

1
ip_address -d

to get an IP over DHCP (for example, it you forgot to plug in a cable before bootup).

The next step is to set a default server IP address (= where the eCos binary will be downloaded from) with:

1
ip_address -h <xxx.xxx.xxx.xxx>

(where xxx.xxx.xxx.xxx is the server IP address — in our case, 192.168.1.70)

You could use ping to check if the connection is configured properly. To do that use:

1
ping -h <xxx.xxx.xxx.xxx>

(where xxx.xxx.xxx.xxx is the host IP just like above)

Note that in RedBoot the ping program is not what you would normally expect in Linux or Windows — for example it does not show any progress or state messages. You have to wait until it exits, and if you interrupt it, you will see information about how many ICMP packets were received out of the 10 to be sent.

If the connection works properly, you can now download a test application from the TFTP server with:

1
load <name_of_application_binary>

(in our case, this was clock0, a standard eCos clock test).

With the default setting the board should use the TFTP protocol and the server IP set earlier, but if you want to change some parameter see the relevant section of the eCos documentation.

You should now see som information about entry point address ranges of the loaded binary.

To run the app you just loaded simply type:

1
go

And you’re ready! See the attached screen for the result.

January 17th, 2013
eCos port for Enclustra’s ZX3 Zynq module ready

Mars ZX3

Last year we announced the beginning of the work to port eCos to Enclustra’s Mars ZX3 Zynq module.

While most of the work was complete after the summer, the tedious task of cleaning it up, writing appropriate documentation, and testing, testing, testing is always longer than you think.

Zynq is still a very exciting platform which we believe will gain more attention as time goes on, and an RTOS to run on the Processing System will be a good addition to the OSs it can run.

On the attached image you can see the RedBoot bootloader, which is a significant side-effect of the porting effort, loading an eCos test binary over TFTP. We’re excited to see other applications run on the Zynq with time.

tftboot

The port is still undergoing review from Enclustra, but we agreed to open-source it now so that we can benefit from feedback from the community. Already after the port was first announced, we’ve had some very valuable comments, especially as to the usage scenarios, planned projects, hopes and fears associated with the Zynq.

Internally we have been testing and using the port successfully for quite a while, and it is definitely ready for evaluation purposes. It would also be quite interesting to see some benchmarking.

The code is available on our github – head there to check it out, use it in your new application and give us feedback, especially on the documentation and use scenarios.

July 20th, 2012
Running RedBoot on Enclustra’s ZX3 Zynq module

For the past few weeks we have been busy porting eCos to Encustra’s Zynq module, with a partial sponsorship from the Swiss company. The initial version of the port is ready, eCos passes most tests and it is possible to run RedBoot – the eCos bootloader – on the board.

With the ability to directly download and boot ELF files, RedBoot is definitely an interesting alternative to U-Boot, typically used to boot Linux for the Zynq. RedBoot is also a handy tool when it comes to debugging the application code. RedBoot can be loaded automatically by Xilinx’s first stage bootloader, using the boot header mechanism.
RedBoot on the ZX3 Zynq module
Currently, our version of RedBoot has limited functionality, but it will evolve as we go on to provide a complete set of drivers and some interesting functionalities that we will show in upcoming posts.

ITR GmbH has donated some of the basic platform code for Zynq, which was valuable help.

June 14th, 2012
U-Boot for Colibri Tegra 2 pushed to github

In our post from over a year ago we published some patches to U-Boot which allowed us to use it with the Colibri Tegra 2 module from Toradex, the first widely available embedded SoM featuring an Nvidia CPU.

A long time has passed since then, and – as you can probably see if you follow the blog – we have been busy with lots of other things in the meantime. But as we have noticed that the the code lives on and has been put to good use, we thought it a good idea to include it on our github for more convenience and a clearer picture – the original manner of publishing of the code was the result of the haste which always accompanies work with hot technologies.

Our github fork of U-Boot shows how the necessary patches are applied in the proper order and might be helpful for people exploring how bootloaders are ported between different ARM modules and boards.

It is worth noting that those changes were performed before we got any CPU datasheets from Nvidia, using virtual platform tools that we are developing. This was a great example of a scenario where the appropriate tools really made a difference!

If you are interested in open source and new embedded technologies, follow us throughout the summer (the easiest way to do is through our twitter) – there will be a lot going on. One of the more interesting technologies we are already working with is Xilinx Zynq, be sure to come back soon for updates about that and other really interesting topics.

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

March 6th, 2011
Embedded World 2011 in Nürnberg

Embedded World 2011, photo with Ronald Vuillemin, President of Toradex

Embedded World 2011, Nürnberg. Photo with Ronald Vuillemin, President of Toradex

Embedded World is a must-go for anyone with a passion for embedded; fortunately this is an obligation we take upon ourselves very gladly. As always, EW’s excellent organisation, great variety of exhibitors as well as its inspirational value were something to admire.

From the multitude of ideas and insights that always arise after a trade show that large (over 800 exhibitors, some of them with as many as three booths – like our friends at Toradex, with whom we had a very pleasant chat) the one that cannot be overlooked is how ARM CPUs seem to be keeping their grip on the embedded market, with almost every of the larger CPU providers presenting either a recently launched Cortex processor or one in development. We’re also quite happy to see that Linux (with its mobile flavour, Android) is never losing on popularity and, together with many good open-source projects concentrated around it, is finding more and more applications in embedded systems.

While there is no such thing as free lunch, there was – as every year – free coffee to get at Ferchau’s booth. We sort of happened to be passing that way. Every day.

A visit to the software part lended many an interesting conversation, not the least so with guys at Nabto’s booth, where we had the possibility to practice our conversational Danish and Norwegian. They are using a browser plugin to publish data from a small embedded server on the client device. Neat.

Overall the visit to Embedded World this year has been fruitful, with new ideas just waiting to be stumbled upon. You can expect some of them surface on this blog in the nearest future :)

 

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