<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta content="text/html;charset=ISO-8859-1" http-equiv="Content-Type">
</head>
<body bgcolor="#ffffff" text="#000000">
ron minnich wrote:
<blockquote
cite="mid13426df10609121205q64c0c580p16e56259ff252f2e@mail.gmail.com"
type="cite"><br>
<br>
<div><span class="gmail_quote">On 9/12/06, <b
class="gmail_sendername">Ben Hewson</b> <<a
href="mailto:ben@hewson-venieri.com">ben@hewson-venieri.com</a>>
wrote:</span>
<blockquote class="gmail_quote"
style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">I
have been looking through auto.inc and it would be very helpful if<br>
besides<br>
printing the line no inside auto.c, it would also print the actual C
line.<br>
<br>
Does anyone know how easy this would be to do ?<br>
<br>
<br>
The reason I am asking this is because of the problem I am having with<br>
the epia code.<br>
<br>
<br>
There is this bit of C code<br>
<br>
// SDRAM in all banks<br>
pci_write_config8(north, 0x60, 0x3F);<br>
<br>
// DRAM timing. I'm suspicious of this
<br>
// This is for all banks, 64 is 0,1. 65 is 2,3. 66 is 4,5.<br>
// ras precharge 4T, RAS pulse 5T<br>
// cas2 is 0xd6, cas3 is 0xe6<br>
// we're also backing off write pulse width to 2T, so result is
0xee
<br>
<br>
#if DIMM_CL2<br>
pci_write_config8(north, 0x64, 0xd6);<br>
pci_write_config8(north, 0x65, 0xd6);<br>
pci_write_config8(north, 0x66, 0xd6);<br>
#else // CL=3<br>
pci_write_config8(north, 0x64, 0xe6);
<br>
pci_write_config8(north, 0x65, 0xe6);<br>
pci_write_config8(north, 0x66, 0xe6);<br>
#endif<br>
<br>
<br>
print_debug_hex8(pci_read_config8(north, 0x64));<br>
print_debug_hex8(pci_read_config8(north, 0x65));<br>
print_debug_hex8(pci_read_config8(north, 0x66));<br>
<br>
ok now loking at the serial output I get the following snippet<br>
<br>
1106 0601<br>
ece6e6init 1 done<br>
<br>
the important bit is the ece6e6<br>
<br>
Ok now as you can see it is not writing to the register properly. So I
<br>
am now looking<br>
through auto.inc and trying to find the relevant code. While I will be<br>
honest and say<br>
at the moment I do not 100% understand it, I can never the less find the<br>
relevant<br>
assembler code. Anyway this is it
<br>
<br>
<br>
**********<br>
first bit I think is for this line<br>
pci_write_config8(north, 0x60, 0x3F);<br>
***********<br>
<br>
mov $63 , %al<br>
mov $3324 , %dx<br>
outb %al, %dx</blockquote>
<div><br>
<br>
3324 is cfc. data. 63 is 3f. You have to look at the code before this,
but I expect that it will be for 0x60. <br>
<br>
</div>
<br>
<blockquote class="gmail_quote"
style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;"> /*
,:0.0 */<br>
/*<br>
* pci_write_config8,romcc_io.h:148.38<br>
* sdram_set_registers,raminit.c:164.26<br>
* main,auto.c:107.28<br>
*/<br>
/* ,:0.0 */<br>
/*<br>
* __builtin_outl,<built-in>:
1.0<br>
* outl,io.h:25.23<br>
* pci_write_config8,romcc_io.h:148.13<br>
* sdram_set_registers,raminit.c:164.26<br>
* main,auto.c:107.28<br>
*/<br>
mov $-2147483548 , %eax<br>
mov $3320 , %dx<br>
outl %eax, %dx</blockquote>
<div><br>
3320 is cf8. $-2147483548 is 64. So set cf8 to x64.<br>
<br>
</div>
<br>
<blockquote class="gmail_quote"
style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;"> /*
,:0.0 */<br>
/*<br>
* __builtin_outb,<built-in>:1.0<br>
* outb,io.h:15.23<br>
* pci_write_config8,romcc_io.h:149.13<br>
* sdram_set_registers,raminit.c:164.26<br>
* main,auto.c:107.28<br>
*/<br>
<br>
********* ok here is 1 write of 0xe6 **********<br>
<br>
<br>
<br>
mov $230 , %al<br>
mov $3325 , %dx<br>
outb %al, %dx</blockquote>
<div><br>
so, write e6 to cfd, i.e. 65. hmm. what happened to 64? <br>
</div>
<br>
<blockquote class="gmail_quote"
style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;"> /*
,:0.0 */<br>
/*<br>
* pci_write_config8,romcc_io.h:148.38<br>
* sdram_set_registers,
raminit.c:165.26<br>
* main,auto.c:107.28<br>
*/<br>
/* ,:0.0 */<br>
/*<br>
* __builtin_outl,<built-in>:1.0<br>
* outl,io.h:25.23<br>
* pci_write_config8,romcc_io.h:148.13<br>
* sdram_set_registers,
raminit.c:165.26<br>
* main,auto.c:107.28<br>
*/<br>
mov $-2147483548 , %eax<br>
mov $3320 , %dx<br>
outl %eax, %dx</blockquote>
<div><br>
<br>
set cfc to 64. <br>
</div>
<br>
<blockquote class="gmail_quote"
style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;"> /*
,:0.0 */<br>
/*<br>
* __builtin_outb,<built-in>:1.0<br>
* outb,io.h:15.23<br>
* pci_write_config8,romcc_io.h:149.13<br>
* sdram_set_registers,raminit.c:165.26<br>
* main,auto.c:107.28<br>
*/<br>
<br>
********** here is 2nd write of 0xe6 ************<br>
<br>
mov $230 , %al<br>
mov $3326 , %dx<br>
outb %al, %dx</blockquote>
<div><br>
Write e6 to 66. <br>
<br>
</div>
<br>
<blockquote class="gmail_quote"
style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;"> /*<br>
* pci_read_config8,romcc_io.h:124.38<br>
* sdram_set_registers,raminit.c:169.42<br>
* main,auto.c:107.28<br>
*/<br>
/* ,:0.0 */<br>
/*<br>
* __builtin_outl,<built-in>:1.0<br>
* outl,
io.h:25.23<br>
* pci_read_config8,romcc_io.h:124.13<br>
* sdram_set_registers,raminit.c:169.42<br>
* main,auto.c:107.28<br>
*/<br>
mov $-2147483548 , %eax<br>
mov $3320 , %dx<br>
outl %eax, %dx<br>
/* ,:0.0 */</blockquote>
<div>set cfc to 64. <br>
<br>
<br>
</div>
<br>
<blockquote class="gmail_quote"
style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;"> /*<br>
<br>
******** now we get to read back the values ready to print
************
<br>
<br>
* __builtin_inb,<built-in>:1.0<br>
* inb,io.h:31.29<br>
* pci_read_config8,romcc_io.h:125.19<br>
* sdram_set_registers,raminit.c:169.42<br>
* main,auto.c:107.28</blockquote>
<div><br>
<br>
I don't see a write to 64 either. HMMMMMM. Good detective work. Wonder
what's up here?<br>
<br>
<br>
ron <br>
</div>
<br>
</div>
<br>
</blockquote>
<br>
<br>
Ok I have been playing around a bit and it appears the first line after
the #else is skipped<br>
Inserting a blank line is enough to make it work.<br>
<br>
It appears that the first line after the #if is ok<br>
<br>
<br>
</body>
</html>