Current-Users archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Re: Problems with NSLU2/xscale kernel that go back to April, 2008

Donald T Hayford wrote:
David Holland wrote:
On Tue, Mar 24, 2009 at 01:02:10AM -0400, Donald T Hayford wrote:
April 26 won't build.  Two lint issues.
April 27 builds and run.  0 errors in 144 succesive MD5 computations.
April 28 builds, but won't run unless you add the following line to std.nslu2 (before you build the kernel):
options     KERNEL_BASE_EXT=0xc0000000
The result is 3 errors in 144 successive MD5 computations.

While it is definite that there is a problem with 20080428 (and all later kernels), it is less sure that there isn't a problem with 20080427. I think Andy Ruhl was planning to build this version and test it as well.

That suggests fairly strongly that you may want to try building
earlier kernels from the matt-armv6 branch...

I'm certainly happy to do that if somebody can suggest a snapshot worth building. It takes long enough that I don't think I want to just do it randomly. :-) Also, I don't know how to retrieve a kernel from another branch ... :-(.

I'm trying to figure out which of the 50 or so files that changed on 4/28/2008 are important to the NSLU2, and I think the answer is "Not very many", but if someone could confirm that, I'd appreciate it. Incidentally, if there's an easier way to figure all this out, I'd appreciate hearing about that as well.

Looking at the NSLU2 configuration file in src/sys/arch/evbarm/conf, I find that it includes 1 file, which includes another file, etc. Putting this all together, I get:

NSLU2 includes one file:
   include    "arch/evbarm/conf/std.nslu2"

arch/evbarm/conf/std.nslu2 includes three files:
   include        "conf/std"      # MI standard options
   include        "arch/arm/conf/std.arm"    # arch standard options
   include "arch/evbarm/conf/files.nslu2"

src/sys/conf/std includes no files.
arch/arm/conf/std.arm includes no files.

arch/evbarm/conf/files.nslu2 includes one file:
   include "arch/arm/xscale/files.ixp425"

arch/arm/xscale/files.ixp425 includes no files.

Of the 5 files in the include chain, only two define which files are used in the machine dependent part of the kernel - files.ixp425 and files.nslu2 (duh). There are 26 "file" declarations:
   file    arch/evbarm/nslu2/nslu2_machdep.c
   file    arch/evbarm/nslu2/nslu2_mainbus.c
   file    arch/evbarm/nslu2/nslu2_pci.c
   file    arch/evbarm/nslu2/nslu2_iic.c
   file    arch/evbarm/nslu2/nslu2_buttons.c
   file    arch/evbarm/nslu2/nslu2_leds.c
   #file    arch/evbarm/nslu2/nslu2_slugbuzz.c
   file    arch/arm/xscale/ixp425_intr.c (and .h)
   file    arch/arm/xscale/ixp425_mem.c
   file    arch/arm/arm32/irq_dispatch.S
   file    arch/arm/xscale/xscale_pmc.c
   file    arch/arm/xscale/ixp425_sip.c
   file    arch/arm/xscale/ixp425.c
   file    arch/arm/xscale/ixp425_space.c
   file    arch/arm/xscale/ixp425_pci.c
   file    arch/arm/xscale/ixp425_pci_space.c
   file    arch/arm/xscale/ixp425_pci_dma.c
   file    arch/arm/xscale/ixp425_pci_asm.S
   file    arch/arm/xscale/ixp425_timer.c
   file    arch/arm/xscale/ixp425_wdog.c
   file    arch/arm/xscale/ixp425_com.c
   file    arch/arm/xscale/ixp425_a4x_space.c
   file    arch/arm/xscale/ixp425_a4x_io.S
   file    arch/arm/xscale/ixp425_ixme.c
   file    arch/arm/xscale/ixp425_qmgr.c
   file    arch/arm/xscale/ixp425_npe.c
   file    arch/arm/xscale/ixp425_if_npe.c

I only find five files that are common to the list above and the list of files that changed from 4/27 to 4/28 in They are:
   file    arch/evbarm/nslu2/nslu2_machdep.c
   file    arch/arm/xscale/ixp425_intr.c (and .h)
   file    arch/arm/arm32/irq_dispatch.S
   file    arch/arm/xscale/ixp425_if_npe.c

Am I missing something? In particular, I'm a little surprised that none of the files in arch/arm/arm or arch/arm/arm32 (other than the one mentioned) are used in the NSLU2 kernel.


Home | Main Index | Thread Index | Old Index