Marvell publishes the datasheet of the Armada XP processor

thumb-armada-xpA bit more than a month after publishing the datasheet of the Armada 370 processor, Marvell has now released a similar datasheet for the more powerful Armada XP processor. The datasheet is available as a PDF document, with no registration, at http://www.marvell.com/embedded-processors/armada-xp/assets/ARMADA-XP-Functional-SpecDatasheet.pdf, with a link to it clearly visible on the Armada XP product page.

As most of our readers probably know, Bootlin has been working and continues to work significantly on the Linux kernel support for Marvell processors. Thanks to this work done for more than two years now, the mainline Linux kernel has pretty good support for the Armada XP processor. This processor is a nice monster: up to 4 cores (PJ4B cores, which are roughly equivalent to Cortex-A9 but with LPAE support), up to 10 PCIe interfaces, multiple SATA interfaces, up to four Gigabit network interfaces, and many, many other things (XOR engine, cryptographic engine, etc.). Many of the processor features are already supported in mainline, and lately we’ve been focusing on power management features: cpuidle support for Armada XP will be part of 3.16, cpufreq support will either be part of 3.17 or 3.18, and suspend/resume should hopefully be part of 3.18.

The Armada XP processor is used in publicly available products:

At Bootlin, we are again really happy to see Marvell opening this datasheet, as it will allow all community developers to further improve support for this processor in the Linux kernel, but also in other open-source projects.

Linux 3.15 released, an overview of Bootlin contributions

The 3.15 of the Linux kernel was released just a few days ago by Linus Torvalds. As explained by LWN.net, the headline features in 3.15 include some significant memory management improvements, the renameat2() system call, file-private POSIX locks, a new device mapper target called dm-era, faster resume from suspend, and more. One can also read the coverage by LWN.net of the first part and the second part of the merge window to get more details about the major new features in this release.

As usual, Bootlin contributed to the Linux kernel during this 3.15 cycle, and with a total of 218 patches contributed, it’s a new record for Bootlin. According to the KPS statistics, Bootlin ranked #12 in the list of companies contributing to the Linux kernel for the 3.15 kernel (if you exclude the “Unknown” and “Hobbyists” categories, which aren’t really companies).

The main features contributed by Bootlin again centered around the support for ARM processors:

  • By far, the largest contribution this cycle was the initial support for the new Armada 375 and Armada 38x processors from Marvell. Gregory Clement, Ezequiel Garcia and Thomas Petazzoni have been working on the code to support these processors since a few months ago, and started pushing the patches to the public in February this year. For the Marvell Armada 38x processor, it means that the code was pushed in mainline even before the processor was announced publicly! The features supported in 3.15 for these processors are: interrupts, GPIO, clocks, pin-muxing, serial, I2C, SPI, timer, L2 cache, SDIO (only for 375), SATA (only 375), XOR, PCIe, MBus, networking (only for 38x), NOR and NAND support. Many other features such as SMP, I/O coherency and various other peripherals will be supported in 3.16.
  • Convert support for the Atmel AT91SAM9RL processor to the Device Tree, done by Alexandre Belloni.
  • Addition of iio-hwmon to the Freescale i.MX23 and i.MX28 processors, which allows to use the internal temperature sensor of the processor. Done by Alexandre Belloni.
  • Multiple fixes and improvements to the AT91 ADC support. Done by Alexandre Belloni.
  • Support for the watchdog in Armada 370 and Armada XP was added, done by Ezequiel Garcia.
  • A driver for the SPI controller found in Allwinner A31 SoC was added, as well as all the Device Tree information to describe this controller and related clocks. Done by Maxime Ripard.
  • Support for the I2C controller found in the Allwinner A31 SoC was added into the existing mv64xxx-i2c driver, as well as the necessary Device Tree information to use I2C on this SoC. Done by Maxime Ripard.
  • Audio support was enabled on the Armada 370 SoC, re-using existing code for Kirkwood, and therefore making audio work on the Armada 370 DB platform. Done by Thomas Petazzoni.
  • A number of issues in the PCIe support for Marvell processors have been fixed, thanks to the reports from a number of users. Done by Thomas Petazzoni, with help from these users.

We also contributed other things than just support for ARM processors:

  • The main contribution in this area is the addition of UBI block, a driver that allows to use read-only block filesystems such as squashfs on top of a UBI volume. The code was originally written by David Wagner who was an intern at Bootlin, and later taken by Ezequiel Garcia who did a lot of additional cleanup work and community discussion to get the driver merged. Some details about this feature can be found in the Linux-MTD documentation.
  • A generic Device Tree binding to express NAND ECC related information in the Device Tree was contributed by Ezequiel Garcia.
  • The quest to remove IRQF_DISABLED continued, by Michael Opdenacker.

In details, all our contributions are:

Marvell publishes the datasheet of the Armada 370 processor

thumb-armada-xpOver the last two years, Bootlin has contributed support for the Marvell Armada 370 and Marvell Armada XP processors to the mainline Linux kernel. These ARM processors are used mainly in Network Attached Storage devices but also in other devices such as printers. Until now the datasheet for these processors was only available for Marvell customers and partners under NDA, but last week, Marvell finally released the datasheet of the Armada 370 publicly, with no restriction, no registration, no NDA. The Armada 370 processor can already be found in several consumer grade products:

From now on, on the Marvell page (broken link removed) related to the Armada 3xx family, the Armada 370 Functional Specification (broken link removed) as well as the Armada 370 Hardware Specifications (broken link removed) can be found. While the Armada XP datasheet is not available at this time, it is worth mentioning that the vast majority of the peripherals are exactly the same between Armada 370 and Armada XP, so even Armada XP users will find useful information in this datasheet.

Bootlin is happy to see that Marvell is making more and more progress towards mainlining their kernel support and opening their datasheets publicly. We strongly believe that the openness of these datasheets will allow hobbyists and developers to improve the support for Armada 370 in the open-source ecosystem, be it in the Linux kernel, in bootloaders like U-Boot or Barebox or even in other projects.

Bootlin welcomes Boris Brezillon and Antoine Ténart

We are happy to announce that our engineering team has recently welcomed two new embedded Linux engineers: Boris Brezillon and Antoine Ténart. Boris and Antoine will both be working from the Toulouse office of the company, together with Maxime Ripard and Thomas Petazzoni. They will be helping Bootlin to address the increasing demand for its development and training services.

Antoine started his professional experience with Embedded Linux and Android in 2011. Before joining Bootlin in 2014, he started with low level Android system development at Archos (France), and worked on Embedded Linux and Android projects at Adeneo Embedded (France). He joined Bootlin early March, and has already been involved in kernel contributions on the Marvell Berlin processors and the Atmel AT91 processors, and is also working on our upcoming Yocto training course.

Boris joined Bootlin on April, 1st, and brings a significant embedded Linux experience that he gained while working on home automation devices at Overkiz (France). He was maintaining a custom distribution built with the Yocto. Boris also has already contributed many patches to the mainline Linux kernel sources, in particular for the Atmel AT91 ARM SoCs. Boris is also developing the NAND controller driver for the Allwinner ARM processors and has proposed improvements to the core Linux MTD subsystem (see this thread and this other thread).

Embedded Linux Conference 2014, Bootlin participation

San JoséOne of the most important conference of the Embedded Linux community will take place at the end of this month in California: the Embedded Linux Conference will be held in San Jose from April, 29th to May, 1st, co-located with the Android Builders Summit. The schedule for both of these events has been published, and it is full of interesting talks on a wide range of embedded topics.

As usual, Bootlin will participate to this conference, but this participation will be the most important ever:

If you are interested in embedded Linux, we highly advise you to attend this conference. And if you are interested in business or recruiting opportunities with Bootlin, it will also be the perfect time to meet us!

Linux 3.14 released, Bootlin contributions inside!

Linus Torvalds has just released the 3.14 version of the Linux kernel. As usual, it incorporates a large number of changes, for which a good summary is available on the KernelNewbies site.

This time around, Bootlin is the 19th company contributing to this kernel release, by number of patches, right between Cisco and Renesas. Six of our engineers have contributed to this release: Maxime Ripard, Alexandre Belloni, Ezequiel Garcia, Grégory Clement, Michael Opdenacker and Thomas Petazzoni. In total, they have contributed 121 patches to this kernel release.

  • By far, the largest number of patches are related to the addition of NAND support for the Armada 370 and Armada XP processors. This required a significant effort, done by Ezequiel Garcia, to re-use the existing pxa3xx_nand driver and extend it to cover the specificities of the Armada 370/XP NAND controller. And these specificities were quite complicated, involving a large number of changes to the driver, which all had to also be validated on existing PXA3xx hardware to not introduce any regression.
  • Support for high speed timers on various Allwinner SOCs has been added by Maxime Ripard.
  • Support for the Allwinner reset controller has been implemented by Maxime Ripard.
  • SMP support for the Allwinner A31 SOC was added by Maxime Ripard.
  • A number of small fixes and improvements were made to the AT91 pinctrl driver and the pinctrl subsystem by Alexandre Belloni.
  • Michael Opdenacker continued his quest to finally get rid of the IRQF_DISABLED flag.
  • A number of fixes and improvements were made by Grégory Clement and Thomas Petazzoni on various Armada 370/XP drivers: fix for the I2C controller on certain early Armada XP revisions, fixes to make the Armada 370/XP network driver usable as a module, etc.

In detail, our contributions were:

Buildroot meeting and FOSDEM report, Google Summer of Code topics

As we discussed in a recent blog post, two of our engineers participated to the FOSDEM conference early February in Brussels, Belgium. For those interested, many videos are available, such as several videos from the Lameere room, where the embedded related talks were given.

Thomas Petazzoni also participated to the two days Buildroot Developers Meeting after the FOSDEM conference. This meeting gathered 10 contributors to the Buildroot project physically present and two additional remote participants. The event was sponsored by Google and Mind, thanks a lot to them! During those two days, the participants were able to discuss a very large number of topics that are often difficult to discuss over mailing lists or IRC, and a significant work to clean up the oldest pending patches was done. In addition to this, these meetings are also very important to allow the contributors to know each other, as it makes future online discussions and collaborations much easier and fruitful. For more details, see the complete report of the event.

Buildroot Developers Meeting in Brussels
Buildroot Developers Meeting in Brussels

Also, if you’re interested in Buildroot, the project has applied to participate to the next edition of the Google Summer of Code. Two project ideas are already listed on the project wiki, feel free to contact Thomas Petazzoni if you are a student interested in these topics, or if you have other proposals to make for Buildroot.

Bootlin contributions to Linux 3.13

Version 3.13 of the Linux kernel was released by Linus Torvalds on January, 19th 2014. The kernelnewbies.org site has an excellent page that covers the most important improvements and feature additions that this new kernel release brings.

As usual Bootlin contributed to this kernel: with 121 patches merged in 3.13 on a total of 12127 patches contributed, Bootlin is ranked 17th in the list of companies contributing to the Linux kernel. We also appeared on Jonathan Corbet kernel contribution statistics at LWN.net, as a company having contributed 1% of the kernel changes, right between Renesas Electronics and Huawei Technologies.

Amongst the contributions we made for 3.13:

  • Standby support added to the Marvell Kirkwood processors, done by Ezequiel Garcia.
  • Various fixes and improvements to the PXA3xx NAND driver, as well as to the Marvell Armada 370/XP clocks, in preparation to the introduction of NAND support for Armada 370/XP, which will arrive in 3.14. Work done by Ezequiel Garcia.
  • Added support for the Performance Monitoring Unit in the AM33xx Device Tree files, which allows to use perf and oprofile on platforms such as the BeagleBone. Work done by Alexandre Belloni.
  • Support added for the I2C controllers on certain Allwinner SOCs, as well as several other cleanups and minor improvements for these SoCs. Work done by Maxime Ripard.
  • Continued the work to get rid of IRQF_DISABLED, as well as other janitorial tasks such as removing unused Kconfig symbols. Work done by Michael Opdenacker.
  • Added support for MSI (Message Signaled Interrupts) for the Armada 370 and XP SoCs. Work done by Thomas Petazzoni.
  • Added support for the Marvell Matrix board (an Armada XP based platform) and the OpenBlocks A7 (a Kirkwood based platform manufactured by PlatHome). Work done by Thomas Petazzoni.

In detail, the patches contributed by Bootlin are:

Bootlin at FOSDEM and at the Buildroot Developers Meeting

FOSDEMThis week-end is the first week-end of February, which on the schedule of all open-source developers is always booked for a major event of our community: the FOSDEM conference in Brussels. With several hundreds of talks over two days, this completely free event is one of the biggest event, if not the biggest of the open-source world.

For embedded Linux developers, FOSDEM has quite a few interesting tracks and talks this year: an embedded track, a graphics track (with many embedded related talks, such as talks on Video4Linux, the status of open-source drivers for 2D and 3D graphics on ARM platforms, etc.), and several talks in other tracks relevant to embedded developers. For example, there is one talk about the Allwinner SoCs and the community behind it in one of the main track. Our engineer Maxime Ripard is the Linux kernel maintainer for this family of SoC.

Two Bootlin engineers will attend FOSDEM: Maxime Ripard and Thomas Petazzoni. Do not hesitate to get in touch with them if you want to discuss embedded Linux or kernel topics!

Also, right after FOSDEM, the Buildroot community is organizing its Developers Meeting, on Monday, 3rd and Tuesday 4th February. This event is sponsored by Google (providing the meeting location) and Mind (providing the dinner), and will take place in the offices of Google in Brussels. Ten Buildroot developers will participate to the meeting in Brussels, as well as a number of others remotely. On Bootlin side, Thomas Petazzoni will be participating to the meeting. If you are interested in participating, either physically or remotely, do not hesitate to contact Thomas to register. For more details, see the wiki page of the event.

Bootlin at Linux Conf Australia, January 2014

Linux Conf Augstralia 2014Linux Conf Australia is by far the most well-known Linux related conference of the southern hemisphere, with a good number of Linux kernel related talks and discussions, as well as many other topics around the Linux ecosystem. The 2014 edition of the event will take place in Perth, Australia, and the schedule of talks and mini-confs looks very promising!

For the first time, Bootlin will be participating to this conference: our CTO and embedded Linux engineer Thomas Petazzoni will be giving a talk titled Buildroot: building embedded Linux systems made easy!, during which he will be presenting what Buildroot is, what it is useful for, and how it works.

Beyond this talk, Thomas will be attending the full week of conferences, so do not hesitate to get in touch with him, especially if you’re interested in embedded Linux topics, Buildroot, ARM kernel development, and in Bootlin!