BCM5354 D-Link DIR-320
Alexandr Rybalko
ray at dlink.ua
Tue May 12 08:54:48 UTC 2009
On Thu, 07 May 2009 11:27:45 -0700
Oleksandr Tymoshenko <gonzo at freebsd.org> wrote:
>> Alexandr Rybalko wrote:
>> > Good day to all!
>> >
>> > bfe driver ported as client of siba bus, it`s worked, but work not done.
>> > To dirty code :)
>> >
>> > Question to FreeBSD MIPS guru:
>> > Maybe problem in me low experience in FreeBSD internals, but I thing bus_dmamem_alloc and bus_dmamem_load
>> > ignore "alignment" attribute passed to bus_dma_tag_create.
>> Yes, looks like it. I just skimmed the code and will confirm/test
>> it a bit later.
>>
>> >
>> > BFE need DMA descriptors page to be aligned to 4096, but I done this alignment only with set descriptors count from 128 to
>> > 512
>>
>> >
>> > Next question, how I can start init (without "write fault at 0x2003821"), if someone know
>> > start_init: trying /sbin/init
>> > trap type 3 (TLB miss (store) - kernel mode)
>> > badaddr = 0x7fffefff, pc = 0x80243400, ra = 0x800bdc2c, sp = 0xc0659e00, sr = 0xff03, pid = 1, ASID = 0x2
>> > trap type 3 (TLB miss (store) - kernel mode)
>> > badaddr = 0xc36f4000, pc = 0x80243060, ra = 0x80243208, sp = 0xc0659d60, sr = 0xff03, pid = 1, ASID = 0x2
>> > trap type 3 (TLB miss (store) - kernel mode)
>> > badaddr = 0xc36b4000, pc = 0x80243060, ra = 0x80243208, sp = 0xc0659d60, sr = 0xff03, pid = 1, ASID = 0x2
>> > trap type 3 (TLB miss (store) - kernel mode)
>> > badaddr = 0x10004000, pc = 0x802435c8, ra = 0x802432cc, sp = 0xc0659b28, sr = 0xff03, pid = 1, ASID = 0x2
>> > trap type 3 (TLB miss (store) - kernel mode)
>> > badaddr = 0x7fffefe0, pc = 0x802435c8, ra = 0x802432cc, sp = 0xc0659bc8, sr = 0xff03, pid = 1, ASID = 0x2
>> > trap type 3 (TLB miss (store) - kernel mode)
>> > badaddr = 0x7fffdfc4, pc = 0x802435c8, ra = 0x802432cc, sp = 0xc0659bc8, sr = 0xff03, pid = 1, ASID = 0x2
>> > trap type 25 (address error (store) - user mode)
>> > badaddr = 0x2003821, pc = 0x4001b4, ra = 0, sp = 0x7fffded8, sr = 0x12, pid = 1, ASID = 0x2
>> .. skipped ..
>> These faults should not happen. I think pmap internal data is messed
>> in some way. So there is no simple answer, this problem requires more
>> debugging
>>
Maybe it so, because I have wrong value in "gp" register?
Every function start with:
lui gp,0xfc1
But ldscript.mips, ldscript.mips.cfe say "_gp = ALIGN(16) + 0x7ff0;"
badvaddr: 02003821
pc: 004001b4
Dumping 4 words starting at pc address 0x4001b8:
ac510000 8c840004 1080000e 00000000
4001b0: 8f828aa4 lw v0,-30044(gp)
4001b4: 1a000011 blez s0,4001fc <__start+0x84>
4001b8: ac510000 sw s1,0(v0)
4001bc: 8c840004 lw a0,4(a0)
4001c0: 1080000e beqz a0,4001fc <__start+0x84>
4001c4: 00000000 nop
--
Рыбалко Александр
Консультант D-Link Украина
More information about the freebsd-mips
mailing list