# HG changeset patch # User Rob Landley # Date 1257735739 21600 # Node ID 0da87d1ef528a1d5311581bddf9a03bebacd64fd # Parent b0aeb3446aa5ba4ef9214eacbbda71744c798fd7 Update the web page. Put the left-side nav bar back, move about page to "about.html" and make news.html the default index. Add architectures page. Note that IRC discussion is now on #edev. diff -r b0aeb3446aa5 -r 0da87d1ef528 www/about.html --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/www/about.html Sun Nov 08 21:02:19 2009 -0600 @@ -0,0 +1,53 @@ + + +

News: 0.9.8 released November 7, 2009

+ +

What is Firmware Linux?

+ +
+

Firmware Linux is an embedded Linux build system, designed to eliminate +the need for cross compiling.

+ +

The build system is a series of bash scripts which create a small native +Linux development environment for each target, runnable on real hardware or +under emulators such as QEMU.

+ +

Currently supported targets include arm, mips, powerpc, x86, and x86-64. +Partial support is available for sparc, sh4, and m68k.

+ +

For more information, see the documentation +page.

+
+ +

Downloading Firmware Linux

+ +
+

Source Code

+

The current source tarball is +Firmware Linux version 0.9.7. +This is the series of shell scripts you run to create the various binary +images. See the README for usage instructions, +and the release notes.

+ +

Several prebuilt binary images +are available, based on the current Firmware Linux release. The +README describes each tarball. The +release notes on the news page explain recent +changes.

+ +
+ +

Development

+ +

The project maintains a development repository +using the Mercurial source control system. This includes RSS feeds for +each checkin +and for new releases.

+ +

Questions about Firmware Linux should be addressed to the project's +mailing +list, or the IRC channel #firmware on irc.freenode.org. The project +maintainer's blog often includes notes about +ongoing Firmware Linux development.

+ + diff -r b0aeb3446aa5 -r 0da87d1ef528 www/architectures.html --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/www/architectures.html Sun Nov 08 21:02:19 2009 -0600 @@ -0,0 +1,107 @@ + +Target architectures + + + + +

ARM

+ +

The ARM processor is popular in the embedded space because it has the best +power consumption to performance ratio, meaning it has the longest battery +life and smallest amount of heat generated for a given computing task.

+ +

Processor vs archtecture

+ +

Although ARM hardware has many different processor designs with varying +clock speeds, cache sizes, and integrated peripherals, from a software +perspective what matters is ARM +architectures, which are the different +instruction sets a compiler can produce. The architecture names have a "v" +in them and the processor designs don't, so "ARM922T" is a hardware processor +design which implements the "ARMv4T" software instruction set.

+ +

The basic architectures are numbered: ARMv3, ARMv4, ARMv5, ARMv6, and +ARMv7. An ARMv5 capable processor can run ARMv4 binaries, ARMv6 can run ARMv5, +and so on. Each new architecture is a superset of the old ones, and the main +reason to compile for newer platforms is efficiency: faster speed and better +battery life. (I.E. they work about like i386, i486, i586, and i686 do in +the x86 world. Recompiling ARMv4 code to ARMv5 code provides about a 25% +speedup on the same hardware.)

+ +

The oldest architecture this compatability goes back to is ARMv3 (which +introduced 32-bit addressing), but that hardware is now obsolete. (Not just no +longer being sold, but mostly cycled out of the installed base.) The oldest +architecture still in use is "ARMv4", which should run on any ARM hardware +still in use today (except ARMv7M, which is ARM in name only).

+ +

Architecture extensions

+ +

ARM architectures can have several instruction set extensions, indicated +by letters after the ARMv# part. Some (such as the letter "E" denoting the +"Jazelle" bytecode interpreter, which provides hardware acceleration for +running Java bytecode) can safely be ignored if you're not using them, and +others are essentially always there in certain architectures (such as the DSP +extension signified by the letter "E" which always seems to be present in +ARMv5). But some are worth mentioning:

+ +

The "Thumb" extension (ARMv4T) adds +a smaller instruction set capable of fitting more code in a given amount +of memory. Unfortunately thumb instructions sometimes run more slowly, and +the instruction set isn't complete enough to implement a kernel, so they +supplement rather than replace the conventional ARM instruction set. Note +that all ARMv5 and later processors include Thumb support by default, only +ARMv4T offers it as an extension. Also, a new "Thumb2" fixes most of the +deficiencies of the original Thumb, and is part of the ARMv7 architecture.

+ +

The VFP (Vector Floating Point) coprocessor provides hardware floating +point acceleration. There are some older hardware floating point options, +and some newer ones backwards compatible with VFP, but in general you can +treat a chip as either "software floating point" or "VFP".

+ +

The other detail is "l" vs "b" for little-endian and big-endian. +In theory ARM can do both (this is a compiler distinction, not a hardware +distinction), but in practice little-endian is almost universally +used on ARM, and most boards are wired up to support little-endian only even if +the processor itself can theoretically handle both.

+ +

So for example, "armv4tl" is ARMv4 with Thumb extensions, little endian.

+ +

Application Binary Interface

+ +

Linux initially implemented a somewhat ad-hoc ABI for ARM with +poor +performance and several limitations, and when ARM got around to documenting +a new one the main downside was that it was incompatible with the old +binaries.

+ +

So ARM has two ABIs that can run on the same hardware, the old one is +called OABI and the new one is +EABI. (This is a bit like +the way BSD binaries won't run under Linux even though the hardware's the +same, or the long ago switch from +aout to ELF executable +formats.

+ +

The oldest hardware that can run EABI is ARMv4T, so ARMv4 hardware +without the Thumb extensions still has to use OABI. (The kernel, C +library, and compiler must all agree which ABI is in use or the binaries +won't run.)

+ +

Further Reading

+ +

In theory the best reference for ARM processors is the +website of ARM Limited, but unfortunately +they make it somewhat hard to find information about their +older products +and many +of their pages are more concerned with advertising their newest products +than giving the requested information. Wikipedia may be less frustrating, +and occasionally even accurate.

+ +

ARM

+

ARM

+

ARM

+

ARM

+

ARM

+ + diff -r b0aeb3446aa5 -r 0da87d1ef528 www/documentation.html --- a/www/documentation.html Sun Nov 08 16:05:48 2009 -0600 +++ b/www/documentation.html Sun Nov 08 21:02:19 2009 -0600 @@ -1,3 +1,5 @@ + +

Documentation for Firmware Linux

Note, this documentation is currently under construction. This is three @@ -2024,3 +2026,5 @@ you have a brick.)

--> + + diff -r b0aeb3446aa5 -r 0da87d1ef528 www/footer.html --- a/www/footer.html Sun Nov 08 16:05:48 2009 -0600 +++ b/www/footer.html Sun Nov 08 21:02:19 2009 -0600 @@ -1,7 +1,5 @@
- +
Copyright 2002, 2008 Rob Landley <rob@landley.net>
Copyright 2002, 2009 Rob Landley <rob@landley.net>
- - diff -r b0aeb3446aa5 -r 0da87d1ef528 www/header.html --- a/www/header.html Sun Nov 08 16:05:48 2009 -0600 +++ b/www/header.html Sun Nov 08 21:02:19 2009 -0600 @@ -1,9 +1,4 @@ - - -Firmware Linux - - - +
@@ -13,8 +8,9 @@ diff -r b0aeb3446aa5 -r 0da87d1ef528 www/history.html --- a/www/history.html Sun Nov 08 16:05:48 2009 -0600 +++ b/www/history.html Sun Nov 08 21:02:19 2009 -0600 @@ -1,5 +1,7 @@ History of Firmware Linux + +

Where did "Firmware Linux" come from? Our story so far...

My name is Rob Landley, and I've been working on Firmware Linux on and off diff -r b0aeb3446aa5 -r 0da87d1ef528 www/index.html --- a/www/index.html Sun Nov 08 16:05:48 2009 -0600 +++ b/www/index.html Sun Nov 08 21:02:19 2009 -0600 @@ -1,49 +1,1 @@ -

News: 0.9.8 released November 7, 2009

- -

What is Firmware Linux?

- -
-

Firmware Linux is an embedded Linux build system, designed to eliminate -the need for cross compiling.

- -

The build system is a series of bash scripts which create a small native -Linux development environment for each target, runnable on real hardware or -under emulators such as QEMU.

- -

Currently supported targets include arm, mips, powerpc, x86, and x86-64. -Partial support is available for sparc, sh4, and m68k.

- -

For more information, see the documentation -page.

-
- -

Downloading Firmware Linux

- -
-

Source Code

-

The current source tarball is -Firmware Linux version 0.9.7. -This is the series of shell scripts you run to create the various binary -images. See the README for usage instructions, -and the release notes.

- -

Several prebuilt binary images -are available, based on the current Firmware Linux release. The -README describes each tarball. The -release notes on the news page explain recent -changes.

- -
- -

Development

- -

The project maintains a development repository -using the Mercurial source control system. This includes RSS feeds for -each checkin -and for new releases.

- -

Questions about Firmware Linux should be addressed to the project's -mailing -list, or the IRC channel #firmware on irc.freenode.org. The project -maintainer's blog often includes notes about -ongoing Firmware Linux development.

+news.html \ No newline at end of file diff -r b0aeb3446aa5 -r 0da87d1ef528 www/news.html --- a/www/news.html Sun Nov 08 16:05:48 2009 -0600 +++ b/www/news.html Sun Nov 08 21:02:19 2009 -0600 @@ -1,3 +1,5 @@ + +

News

November 7, 2009

@@ -762,3 +764,5 @@

August 6, 2006

Mecurial repository created. Nothing to see yet, move along...

+ + diff -r b0aeb3446aa5 -r 0da87d1ef528 www/screenshots/index.html --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/www/screenshots/index.html Sun Nov 08 21:02:19 2009 -0600 @@ -0,0 +1,299 @@ + +Available Targets + +

Each $TARGET includes some or all of the following links. Click on +the link name to get a description.

+ + +

Firmware Linux

About @@ -22,12 +18,13 @@ Development
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+

ARM

+
+
+
+

ARMv4l

+

ARMv4, little endian, soft float, OABI

+
+
+
+
+
+ + +
+
+

ARMv4tl

+

ARMv4t, little endian, soft float, EABI

+
+
+
+
+
+ + +
+
+

ARMv5l

+

ARMv5, little endian, VFP, EABI

+
+
+
+
+
+ + +
+
+

ARMv6l

+

ARMv6, little endian, VFP, EABI

+
+
+
+
+
+ + +
+

i686


+
+
+

i686

+
+
+
+
+
+ + +
+ + + + + + + +