OMAP 3730 200 MHz SDRAM config

2011-03-07 Thread Orjan Friberg

Hi,

I'm looking at configuring an OMAP 3730 board for 200 MHz SDRAM.

I've been looking at the kernel code (arch/arm/mach-omap2) the last
couple of days to try and figure out what I need to do.  We're basing 
ourselves off of the Beagleboard, so I tried copying the 200 MHz Hynix 
SDRAM entry for Beagleboard-xM but that didn't help: it still 
(re)programs the SDRC clock to 166 MHz.


* Does the kernel at all use or depend on the boot loader's SDRAM
config?  (I'm using u-boot with a prepended configuration header.)

* Does the SDRAM setup/clocking depend on the MPU rate at all?  I.e. do
I need to boot Linux in 1 GHz to be able to set 200 MHz SDRC clock?

The clock config is a bit convoluted, so I'd appreciate any help.


Thanks,
Orjan



Appendix:

I'm using a program (user-mode app) called 'bandwidth' (which has an ARM
port):
http://home.comcast.net/~fbui/bandwidth.html for measurements.

With big (several MB) sequential writes I get ~1170 MB/s.  The
theoretical max for a 166 MHz is 166*2 * 4 bytes = 1328 MB/s, so we're
almost at 90%.  We're not the only process accessing memory, and maybe
there's some loss due to SDRAM refresh etc.

--
Orjan Friberg
FlatFrog Laboratories AB
--
To unsubscribe from this list: send the line unsubscribe linux-omap in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: OMAP 3730 200 MHz SDRAM config

2011-03-07 Thread Elvis Dowson
Hi,

On Mar 7, 2011, at 6:46 PM, Orjan Friberg wrote:

 I'm looking at configuring an OMAP 3730 board for 200 MHz SDRAM.
 
 I've been looking at the kernel code (arch/arm/mach-omap2) the last
 couple of days to try and figure out what I need to do.  We're basing 
 ourselves off of the Beagleboard, so I tried copying the 200 MHz Hynix SDRAM 
 entry for Beagleboard-xM but that didn't help: it still (re)programs the SDRC 
 clock to 166 MHz.

You probably need update x-loader. Try using the beagleboard x-loader project 
located at gitorious (v1.44) or the ti arago one (1.48, but not quite the 
latest in terms of support for beagleboard xm parts).

Looking at board/omap3530beagle/omap3530beagle.c for the memory part 
definitions. For the XM, the Numonyx part is at 165Mhz, and the Micron part is 
at 200Mhz.

case REVISION_XM:
if (identify_xm_ddr() == MICRON_DDR) {
__raw_writel(0x2, SDRC_CS_CFG); /* 256MB/bank */
__raw_writel(SDP_SDRC_MDCFG_0_DDR_MICRON_XM, 
SDRC_MCFG_0);
__raw_writel(SDP_SDRC_MDCFG_0_DDR_MICRON_XM, 
SDRC_MCFG_1);
__raw_writel(MICRON_V_ACTIMA_200, SDRC_ACTIM_CTRLA_0);
__raw_writel(MICRON_V_ACTIMB_200, SDRC_ACTIM_CTRLB_0);
__raw_writel(MICRON_V_ACTIMA_200, SDRC_ACTIM_CTRLA_1);
__raw_writel(MICRON_V_ACTIMB_200, SDRC_ACTIM_CTRLB_1);
__raw_writel(SDP_3430_SDRC_RFR_CTRL_200MHz, 
SDRC_RFR_CTRL_0);
__raw_writel(SDP_3430_SDRC_RFR_CTRL_200MHz, 
SDRC_RFR_CTRL_1);
} else {
__raw_writel(0x4, SDRC_CS_CFG); /* 512MB/bank */
__raw_writel(SDP_SDRC_MDCFG_0_DDR_NUMONYX_XM, 
SDRC_MCFG_0);
__raw_writel(SDP_SDRC_MDCFG_0_DDR_NUMONYX_XM, 
SDRC_MCFG_1);
__raw_writel(NUMONYX_V_ACTIMA_165, SDRC_ACTIM_CTRLA_0);
__raw_writel(NUMONYX_V_ACTIMB_165, SDRC_ACTIM_CTRLB_0);
__raw_writel(NUMONYX_V_ACTIMA_165, SDRC_ACTIM_CTRLA_1);
__raw_writel(NUMONYX_V_ACTIMB_165, SDRC_ACTIM_CTRLB_1);
__raw_writel(SDP_3430_SDRC_RFR_CTRL_165MHz, 
SDRC_RFR_CTRL_0);
__raw_writel(SDP_3430_SDRC_RFR_CTRL_165MHz, 
SDRC_RFR_CTRL_1);
}
break;

Elvis Dowson

--
To unsubscribe from this list: send the line unsubscribe linux-omap in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: OMAP 3730 200 MHz SDRAM config

2011-03-07 Thread Orjan Friberg

On 2011-03-07 16:19, Elvis Dowson wrote:

You probably need update x-loader. Try using the beagleboard x-loader project 
located at gitorious (v1.44) or the ti arago one (1.48, but not quite the 
latest in terms of support for beagleboard xm parts).

Looking at board/omap3530beagle/omap3530beagle.c for the memory part 
definitions. For the XM, the Numonyx part is at 165Mhz, and the Micron part is 
at 200Mhz.


I'm using u-boot with a configuration header, and there I have set the 
new CTRLA, CTRLB and RFR values (and I did compare the values with the 
Micron data sheet; apart from the TCKE value they are all identical).


But are you saying that the values set by the boot loader are preserved 
by the kernel?  (In that case I wonder what the sdram-micron header file 
is for :)



Thanks,
Orjan

--
Orjan Friberg
FlatFrog Laboratories AB
--
To unsubscribe from this list: send the line unsubscribe linux-omap in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html