my IXP4xx-related and other patches

Krzysztof Halasa khc at pm.waw.pl
Mon Dec 20 17:30:03 EST 2010


Hello,

I've been working a bit on IXP4xx support lately and it seems I'm at the
point I can now boot Barebox on a Goramo Multilink routers
(IXP425-based). It requires several patches (will post them shortly) and
NPE microcode files from Intel (or from elsewhere, the regular non-VLAN
microcode v. 2.4 is needed, i.e., same as with Linux).

The binary microcode must be appended to Barebox at correct offsets for
the NPE driver to find it, details are in board support file
(arch/arm/boards/multilink/multilink.c):

#define BAREBOX_START        0x00000
#define BAREBOX_LENGTH       0x34000
#define NPE_A_START          (BAREBOX_START + BAREBOX_LENGTH)
#define NPE_A_LENGTH         0x05000
#define NPE_B_START          (NPE_A_START + NPE_A_LENGTH)
#define NPE_B_LENGTH         0x03000
#define NPE_C_START          (NPE_B_START + NPE_B_LENGTH)
#define NPE_C_LENGTH         0x04000
#define NPE_ENV0_START       (NPE_C_START + NPE_C_LENGTH)
#define NPE_ENV0_LENGTH      0x20000

when passed to Linux:
Creating XXX MTD partitions on "IXP4XX-Flash.0":
0x000000000000-0x000000034000 : "barebox"
0x000000034000-0x000000039000 : "NPE-A"
0x000000039000-0x00000003c000 : "NPE-B"
0x00000003c000-0x000000040000 : "NPE-C"
0x000000040000-0x000000060000 : "env0"

User-available flash area starts at 0x60000.

All this IXP4xx code is big-endian only. Too much work with LE (NPE
coprocessors would need buffer byte swapping, flash (EXP bus) would need
16-bit word swapping etc). Big-endian Barebox can load both LE and BE
Linux anyway ("bootz" only at the moment).

It should be easily applicable to other IXP42x-based platforms.
-- 
Krzysztof Halasa



More information about the barebox mailing list