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