From mboxrd@z Thu Jan 1 00:00:00 1970 From: "Ling Su" To: "Nick Garnett" , "Jonathan Larmour" Cc: Subject: [ECOS] Problem on allocate PCI memory space... Date: Tue, 12 Sep 2000 18:31:00 -0000 Message-id: <001701c01d22$5adeac50$0201a8c0@raccoon> References: <00e101c01c6f$1c891f70$1201a8c0@crusoe> X-SW-Source: 2000-09/msg00178.html Dear Nick and Jifl, Sorry for posting so many dump messages! Since we have some time difference, I cannot catch your on net when I work, I have a lot of questions to ask when I am digging this problem. Thanks for your patience! I checked the schematic for the board, I doubt if the 4373 I/O memory physical space can be changed. Therefore, if I still use 0x8000_0000 for the my PCI card physical space, 4372 always response when I wrote into this range. Probably set the PCI space to 0x9000_0000 will be the best choice, as Nick suggested. Currently problem with this, it always trigger a Segmentation Fault, I didn't really catch the reason. I guess it might relate to the TLB(MMU) configuration. I append the recent session I run in gdb, helpfully it can give you more information on this. The gdb debugger complain 0xd000_0000 is out of bound when I try to take a look at its value, how come? Hope you can find anything out on the memory mapping and hopefully you can answer my previous email questions. Thanks a lot! Rgds, -Ling =============================================== (gdb) cont Continuing. Found device on bus 0, devfn 0x10: Device configuration succeeded **** Device IO and MEM access enabled Vendor 0x1688 Device 0x8888 Command 0x0000, Status 0x0280 Class/Rev 0x07800001 Header 0x11FF0F SubVendor 0x1111, Sub ID 0xFF1A BAR[0] 0x90000000 / probed size 0xFFF00000 / CPU addr 0xD0000000 BAR[1] 0x00000000 / probed size 0x00000000 / CPU addr 0xFFFFFFFF BAR[2] 0x00000000 / probed size 0x00000000 / CPU addr 0xFFFFFFFF BAR[3] 0x00000000 / probed size 0x00000000 / CPU addr 0xFFFFFFFF BAR[4] 0x00000000 / probed size 0x00000000 / CPU addr 0xFFFFFFFF BAR[5] 0x00000000 / probed size 0x00000000 / CPU addr 0xFFFFFFFF Wired to HAL vector 13 Current pci base is D0000000 [New thread 3] [Switching to thread 3] Breakpoint 1, pci_test () at pcitest.c:293 293 (*(pci_base + 0x004)) = 0x0000; Current language: auto; currently c (gdb) print pci_base $1 = 0xd0000000
<---- ???? (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 : daddiu $a0,$a0,-8908 0x80100baa : jal 0x8010522c 0x80100bae : lw $a1,156($s8) 0x80100bb2 : lw $v0,156($s8) 0x80100bb6 : addiu $v0,$v0,4 0x80100bba : sb $zero,0($v0) 0x80100bbe : lui $a0,0x8011 0x80100bc2 : jal 0x8010522c 0x80100bc6 : daddiu $a0,$a0,-8880 0x80100bca : lui $a0,0x8011 0x80100bce : jal 0x8010522c 0x80100bd2 : daddiu $a0,$a0,-8852 0x80100bd6 : lw $v0,156($s8) 0x80100bda : addiu $v0,$v0,1024 0x80100bde : sw $v0,160($s8) 0x80100be2 : sw $zero,152($s8) 0x80100be6 : lw $v0,152($s8) 0x80100bea : slti $v0,$v0,10 0x80100bee : bnez $v0,0x80100bfc 0x80100bf2 : nop 0x80100bf6 : j 0x80100c40 0x80100bfa : nop