<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML><HEAD>
<META http-equiv=Content-Type content="text/html; charset=gb2312">
<META content="MSHTML 6.00.2800.1226" name=GENERATOR></HEAD>
<BODY>
<DIV>hi,</DIV>
<DIV>&nbsp;&nbsp; This is out of reach of our support , and we have to turn to 
our R&amp;D for help.</DIV>
<DIV>and thus, you may post this to our BBS:&nbsp; bbs.hhcn.com</DIV>
<DIV>&nbsp;</DIV>
<DIV>&nbsp;</DIV>
<DIV>BR</DIV>
<DIV>HHPPC support</DIV>
<DIV><FONT face=宋体 size=2>======== 2005-06-17&nbsp;16:07:00&nbsp;您在来信中写道: 
========</FONT></DIV>
<DIV>&nbsp;</DIV>
<DIV><FONT size=2>
<TABLE width="100%">
  <TBODY>
  <TR>
    <TD width="100%">
      <BLOCKQUOTE 
      style="PADDING-RIGHT: 0px; PADDING-LEFT: 5px; MARGIN-LEFT: 5px; BORDER-LEFT: #000000 2px solid; MARGIN-RIGHT: 0px">
        <DIV><FONT size=2>Hi All:</FONT></DIV>
        <DIV><FONT size=2></FONT>&nbsp;</DIV>
        <DIV><FONT size=2>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; I used 
        </FONT><FONT size=3>HY57641620 * 2 total all 16M SDRAM at my MPC852T 
        board, now i want to </FONT></DIV>
        <DIV>used HY57V281620ET-H * 2&nbsp;or AMIC A43L3616-6 * 2&nbsp;total 
        all&nbsp; 32M SDRAM, but i don't know</DIV>
        <DIV>how to setting UPM to control it, i need help.If you&nbsp;used 
        another 32M SDRAM&nbsp;solution,</DIV>
        <DIV>please tell me, thanks.</DIV>
        <DIV>&nbsp;</DIV>
        <DIV>&nbsp;</DIV>
        <DIV>#define _NOT_USED_&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
        0xFFFFFFFF<BR><BR>const uint sdram_table[] =&nbsp;&nbsp; /* for 
        HY57641620 * 2 16M&nbsp; SDRAM 
        */<BR>{<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; /* Single Read. 
        (offset 0x0-0x4 in UPM RAM)&nbsp;&nbsp;&nbsp;&nbsp; 
        */<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; /* Precharge and 
        MRS(offset 0x5-0x7 in UPM RAM) 
        */<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0x1F07FC04, 0xEEAEFC04, 
        0x11ADFC04, 0xEFBBBC00,<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
        0x1FF77C47, 0x1FF77C35, 0xEFEABC34, 
        0x1FB57C35,<BR><BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; /* Burst 
        Read. (offset 0x8-0xf in UPM RAM) 
        */<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0x1F07FC04, 0xEEAEFC04, 
        0x10ADFC04, 0xF0AFFC00,<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
        0xF0AFFC00, 0xF1AFFC00, 0xEFBBBC00, 
        0x1FF77C47,<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; _NOT_USED_, 
        _NOT_USED_, _NOT_USED_, 
        _NOT_USED_,<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; _NOT_USED_, 
        _NOT_USED_, _NOT_USED_, 
        _NOT_USED_,<BR><BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; /* Single 
        Write. (offset 0x18-0x1F in UPM RAM) 
        */<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0x1F27FC04, 0xEEAEBC00, 
        0x01B93C04, 0x1FF77C47,<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
        _NOT_USED_, _NOT_USED_, _NOT_USED_, 
        _NOT_USED_,<BR><BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; /* Burst 
        Write. (offset 20-2F in UPM RAM) 
        */<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0x1F07FC04, 0xEEAEBC00, 
        0x10AD7C00, 0xF0AFFC00,<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
        0xF0AFFC00, 0xE1BBBC04, 0x1FF77C47, 
        _NOT_USED_,<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; _NOT_USED_, 
        _NOT_USED_, _NOT_USED_, 
        _NOT_USED_,<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; _NOT_USED_, 
        _NOT_USED_, _NOT_USED_, 
        _NOT_USED_,<BR><BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; /* Refresh 
        timer expired (offset 30-3B in UPM RAM) 
        */<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0x1FF5FC84, 0xFFFFFC04, 
        0xFFFFFC04, 0xFFFFFC04,<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
        0xFFFFFC84, 0xFFFFFC07, 0xffffffff, 
        _NOT_USED_,<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; _NOT_USED_, 
        _NOT_USED_, _NOT_USED_, 
        _NOT_USED_,<BR><BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; /* 
        Exception. (offset 3c-3f in UPM RAM) 
        */<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0x7FFFFC07, _NOT_USED_, 
        _NOT_USED_, _NOT_USED_<BR>};</DIV>
        <DIV>&nbsp;</DIV>
        <DIV><FONT size=2>long int initdram(int 
        board_type)<BR>{<BR>&nbsp;volatile immap_t&nbsp;&nbsp;&nbsp;&nbsp; 
        *immap = (immap_t *)CFG_IMMR;<BR>&nbsp;volatile memctl8xx_t *memctl = 
        &amp;immap-&gt;im_memctl;</FONT></DIV>
        <DIV>&nbsp;</DIV>
        <DIV><FONT size=2>&nbsp;upmconfig(UPMA, (uint *)sdram_table, 
        sizeof(sdram_table)/sizeof(uint));<BR>&nbsp; 
        <BR>&nbsp;memctl-&gt;memc_mptpr = 0x0400;</FONT></DIV>
        <DIV>&nbsp;</DIV>
        <DIV><FONT size=2>&nbsp;/*<BR>&nbsp; * Configure the refresh 
        (mostly).&nbsp; This needs to be<BR>&nbsp; * based upon processor clock 
        speed and optimized to provide<BR>&nbsp; * the highest level of 
        performance.&nbsp; For multiple banks,<BR>&nbsp; * this time has to be 
        divided by the number of banks.<BR>&nbsp; * Although it is not clear 
        anywhere, it appears the<BR>&nbsp; * refresh steps through the chip 
        selects for this UPM<BR>&nbsp; * on each refresh cycle.<BR>&nbsp; * We 
        have to be careful changing<BR>&nbsp; * UPM registers after we ask it to 
        run these commands.<BR>&nbsp; */</FONT></DIV>
        <DIV>&nbsp;</DIV>
        <DIV><FONT size=2>&nbsp;memctl-&gt;memc_mamr = 
        0xD0904114;<BR>&nbsp;memctl-&gt;memc_mar = 
        0x00000088;<BR>&nbsp;udelay(200);</FONT></DIV>
        <DIV>&nbsp;</DIV>
        <DIV><FONT size=2>&nbsp;memctl-&gt;memc_mcr = 
        0x80004105;&nbsp;&nbsp;&nbsp;&nbsp; /* precharge 
        */<BR>&nbsp;udelay(200);</FONT></DIV>
        <DIV>&nbsp;</DIV>
        <DIV><FONT size=2>&nbsp;memctl-&gt;memc_mamr = 
        0xD0904114;<BR>&nbsp;memctl-&gt;memc_mcr = 
        0x80004830;&nbsp;&nbsp;&nbsp;&nbsp; /* refresh 
        */<BR>&nbsp;udelay(200);</FONT></DIV>
        <DIV>&nbsp;</DIV>
        <DIV><FONT size=2>&nbsp;memctl-&gt;memc_mamr = 
        0xD0904114;<BR>&nbsp;memctl-&gt;memc_mcr = 0x80004106; 
        <BR>&nbsp;udelay(200);</FONT></DIV>
        <DIV>&nbsp;</DIV>
        <DIV><FONT size=2>&nbsp;memctl-&gt;memc_or2 = 
        0xFE000A00;<BR>&nbsp;memctl-&gt;memc_br2 = 0x00000081;</FONT></DIV>
        <DIV>&nbsp;</DIV>
        <DIV><FONT size=2>&nbsp;return (32 * 1024 *1024);<BR>}&nbsp;/* end of 
        initdram */<BR></FONT><BR>&nbsp;</DIV>
        <DIV>&nbsp;</DIV></BLOCKQUOTE></TD></TR></TBODY></TABLE></FONT></DIV>
<DIV>
<P><FONT face=宋体 size=2>= = = = = = = = = = = = = = = = = = = = = = </FONT></P>
<DIV>&nbsp;</DIV>
<DIV><FONT face=宋体 size=2>              HHPPC Support</FONT></DIV>
<DIV><FONT face=宋体 size=2><FONT face=宋体 size=2>              </FONT><A 
href="mailto:hhppc-support@hhcn.com">hhppc-support@hhcn.com</A></FONT></DIV>
<DIV><FONT face=宋体 size=2>                 </FONT></DIV>
<DIV>&nbsp;</DIV></DIV></BODY></HTML>