Now partially booting on our CN58XX eval board
Paul Heyman
PHeyman at adaranet.com
Fri Sep 3 15:32:26 UTC 2010
Juli
Thanks for the pointer regarding limiting the bootmem to 512M. I modified what gets passed to cvmx_bootmem_phy_alloc in the max_addr parameter.
That gets us past the panic and brings the kernel up to a prompt.
No failure conditions observed on the console
>From the shell prompt all seems well.
But when we try and ping in or out we seem to get a panic from the ethernet controller.
It does not happen all of the time. It usually take 50 - 200 pings to cause the problem.
I have isolated it to a few places in cvm_oct_tasklet_rx function in ethernet-rx.c.
1. At line 293 . it looks like the entire packet is stored in the work entry. I can see the panic in the code, but on the console it also indicates a NULL ptr being passed to cvmx_phys_to_ptr. Not sure if the NULL pointer is caused by the panic. This is what is on the console
root at -2-/root# WARNING:
cvmx_phys_to_ptr() passed a zero address
panic: cvm_oct_tasklet_rx: not yet implemented; copy in small packet.
KDB: enter: panic
[ thread pid 0 tid 100016 ]
Stopped at kdb_enter+0x50: lui at,0x8358
db>
2. At line 406 of the same file. Calling cvm_oct_mem_fill_fpa results in a TLB miss (store).
Any ideas
Thanks for your help
Paul Heyman
pheyman at adaranetworks.com
-------- Original Message --------
Subject: Re: Now partially booting on our CN58XX eval board
Date: Fri, 27 Aug 2010 12:57:18 -0700
From: Juli Mallett <jmallett at FreeBSD.org><mailto:jmallett at FreeBSD.org>
To: Patrick Mahan <pmahan at adaranet.com><mailto:pmahan at adaranet.com>
CC: freebsd-mips at freebsd.org<mailto:freebsd-mips at freebsd.org> <freebsd-mips at freebsd.org><mailto:freebsd-mips at freebsd.org>
On Fri, Aug 27, 2010 at 11:16, Patrick Mahan <pmahan at adaranet.com><mailto:pmahan at adaranet.com> wrote:
> I have an engineer that thinks this would be fun to resolve, so I am letting
> him run with this for now. Is this an address coming from the mii layer?
I looked at the code and Warner's output a few weeks ago and it seems
to be an address coming from the command queue code
(cvmx-cmd-queue.{c,h} in the Simple Executive) or maybe it was the FPA
code. I think I told Warner that it was happening because mbufs are
put into the FPA and we don't have a way to create an ephemeral
mapping given a physical address that is not direct-mappable. Making
it so that your system won't allocate mbufs above 0x2.... is a quick
hack to test that theory and a reasonable workaround for o32 (since
Octeon really makes more sense with n64 kernels, at minimum) so I'd
suggest modifying the memory setup code in octeon_machdep.c to not add
any memory above 512M or whatever.
If you have an engineer with some time, though, I'd suggest having
them work on COMPAT_FREEBSD32 for o32, which should be around a day or
two worth of work and would let you use an n64 kernel. :)
Juli.
_______________________________________________
freebsd-mips at freebsd.org<mailto:freebsd-mips at freebsd.org> mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-mips
To unsubscribe, send any mail to "freebsd-mips-unsubscribe at freebsd.org"<mailto:freebsd-mips-unsubscribe at freebsd.org>
More information about the freebsd-mips
mailing list