Well, I've figured out my crashing problem, but I'm not certain how to
fix it... I've got a couple of choices, and my first choice doesn't
seem to work too well, tho I'm not sure if that's my fault or another
Basically, what happens is this: The SDRAM is in two banks (0,2) in
equal parts. So, on our 128MByte boards, it's two banks of 64MBytes.
On our 512MByte boards, it's 2 banks of 256MBytes each.
The bridge is programmed to place the first bank at 0x0, and the other
bank at 256MBytes. add_memory_region() is called earlier in the boot
sequence to set up the first 64MBytes at address 0. Now we call
add_memory_region() with incorrect parameters.
So, I thought to myself, let's just change the 'start' address of the
add_memory_region() call. For good luck, I even threw in some calls
with BOOT_MEM_RESERVED, so we now have (printed on bootup):
Determined physical RAM map:
memory: 04000000 @ 00000000 (usable)
memory: 0c000000 @ 04000000 (reserved)
memory: 04000000 @ 10000000 (usable)
memory: 0c000000 @ 14000000 (reserved)
Which looks okay to me. The problem is, my ethernet driver has gone
to the dogs. It works, but it's _really_ slow and the console is
printing out messages like:
Matthew D. Dharm Senior Software Designer
Momentum Computer Inc. 1815 Aston Ave. Suite 107
(760) 431-8663 X-115 Carlsbad, CA 92008-7310
Momentum Works For You www.momenco.com
> -----Original Message-----
> From: Pete Popov [mailto:firstname.lastname@example.org]
> Sent: Wednesday, January 30, 2002 5:35 PM
> To: Matthew Dharm
> Cc: linux-mips
> Subject: RE: More data: I've made a CVS build that doesn't crash!
> On Wed, 2002-01-30 at 17:23, Matthew Dharm wrote:
> > Well, I'm closer... and more confused.
> > I've managed to make a 2.4.3 build which does not exhibit
> any of the
> > instability or crashing... but I did it by disabling half of the
> > memory!
> > In linux/arch/mips/gt64120/momenco_ocelot/setup.c is some
> code to read
> > a PLD and add a memory region. 64MByte is already added
> much earlier,
> > and now we're adding the rest. The board I'm testing on
> is 128MByte,
> > so it tries to add another 64MByte region which is physically
> > contiguous to the first region.
> > As far as I can tell, all of my memory works perfectly.
> I'm going to
> > do some more tests, but both vxWorks and OpenBSD run on this board
> > without any problems.
> > So, can anyone think of some likely culprits for what is
> wrong here?
> > Some piece of code which only works with addresses under 64MByte,
> > perhaps?
> And 2.4.2 works with all of the memory?