This is the mail archive of the
ecos-discuss@sources.redhat.com
mailing list for the eCos project.
Re: Problem on allocate PCI memory space...
- To: "Ling Su" <lingsu at palmmicro dot com>
- Subject: [ECOS] Re: Problem on allocate PCI memory space...
- From: Nick Garnett <nickg at cygnus dot co dot uk>
- Date: 13 Sep 2000 11:16:27 +0100
- Cc: "Jonathan Larmour" <jlarmour at redhat dot com>, <ecos-discuss at sources dot redhat dot com>
- References: <00e101c01c6f$1c891f70$1201a8c0@crusoe> <001701c01d22$5adeac50$0201a8c0@raccoon>
"Ling Su" <lingsu@palmmicro.com> writes:
> (gdb) print pci_base
> $1 = 0xd0000000 <Address 0xd0000000 out of bounds> <---- ????
This is a result of the stub ROM getting a segfault and translating it
into an error message.
> (gdb) cont
> Continuing.
>
> Program received signal SIGSEGV, Segmentation fault.
> 0x80100bb8 in pci_test () at pcitest.c:293
> 293 (*(pci_base + 0x004)) = 0x0000;
>
> Dump of assembler code from 0x80100ba6 to 0x80100bff:
> 0x80100ba6 <pci_test+682>: daddiu $a0,$a0,-8908
> 0x80100baa <pci_test+686>: jal 0x8010522c <diag_printf>
> 0x80100bae <pci_test+690>: lw $a1,156($s8)
> 0x80100bb2 <pci_test+694>: lw $v0,156($s8)
> 0x80100bb6 <pci_test+698>: addiu $v0,$v0,4
> 0x80100bba <pci_test+702>: sb $zero,0($v0)
I would guess that this sb is the problem instruction. One thought is
that the device is not happy with byte sized accesses. Maybe you need
to do 16 bit or 32 bit accesses. This is certainly true of the
configuration space.
See my previous message about how to determine whether this is a TLB
or an device problem.
--
Nick Garnett, eCos Kernel Architect
Red Hat, Cambridge, UK