On Fri, 14 Dec 2012, Niels Möller wrote:
The first item is a personal one. From January 7, I'll start working for
Southpole Consulting AB, a small Sockholm-based consulting company
mainly doing embedded (GNU/)Linux development.
Congrats! You can say hi to Benjamin from me :-)
Second item is more directly related to Nettle. I will get funding from
Internetfonden, for "Adapting GNU Nettle for embedded systems". This
will mean two things: Support for elliptic curve signatures (and
possibly some other ECC-related things), and optimizations for the ARM
architecture. The funding is for 420 hours of work, most of which will
be spent during the spring, and the project will be carried out under
the umbrella of Southpole Consulting.
A question for the list: Which variants of the ARM family are most
important for Nettle applications? I'm not yet very familiar with the
ARM world, but the following are some alternatives for testing and
benchmarking:
* The current most high-end processor, Cortex-A15, where an affordable
development system seems to be a recent "chromebook". Not sure exactly
which model, but I guess it's this one:
http://www.amazon.co.uk/Samsung-Chromebook-Wifi-Latest-Model/dp/B009RF0AQ8/ref=sr_1_1?s=computers&ie=UTF8&qid=1355494569&sr=1-1
* The previous "most high-end" processor, Cortex-A9. An affordable
development system is the PandaBoard.
http://www.omappedia.com/wiki/PandaBoard_FAQ
* The Raspberry Pi computer, featuring an older (obsolete?) ARM1176JFZ,
"ARMv6" architecture.
http://www.raspberrypi.org/faqs
* The low-end Cortex-M0, competing with less than $1 microcontrollers.
Also "ARMv6" architecture. An affordable development system seems to
be LPCXPRESSO board.
http://www.embeddedartists.com/products/lpcxpresso/lpc11U14_xpr.php
And if anybody here has some interesting ARM hardware to donate to the
project, this is the right time.
As far as I know, for use in smartphones and similar, most current ones
run ARMv7, on Cortex-A8/A9. In general, if targeting say android, your
baseline ABIs will be either ARMv5TE or ARMv7 (with optional NEON
support), but finding a good ARMv5 development platform might not be all
that easy. I'm not too experienced myself with writing ARM assembly, but
in general I'd guess your target arch simply depends on at what level the
necessary instructions are introduced - I guess some basic stuff might
benefit from just being written in general ARM assembly for ARMv5, while
other things can benefit more from new instructions in v6 or v7.
I'm not sure how well suited the NEON instruction set is for the crypto
things - if it is, it'll be one important target. Since it's an optional
part in ARMv7 in general (the iOS ARMv7 baseline includes NEON, since they
can limit the number of chipsets they run on, while Android ARMv7 doesn't
include it - in particular, nvidia tegra2 based devices lack it), ideally
one would be able to enable or disable it using a runtime check.
This is the case for 3rd party app developers at least, for device
manufacturers it's enough to be able to enable/disable it at build time.
// Martin
_______________________________________________
nettle-bugs mailing list
[email protected]
http://lists.lysator.liu.se/mailman/listinfo/nettle-bugs