powerpc/mpc8xxx: Add 16-bit support for DDR3
Add support for 16-bit DDR bus. Also deal with system using 64- and 32-bit DDR devices. Signed-off-by: York Sun <yorksun@freescale.com> Signed-off-by: Kumar Gala <galak@kernel.crashing.org>
This commit is contained in:
parent
d2246549c7
commit
51d498f175
arch/powerpc
|
@ -174,7 +174,19 @@ int step_assign_addresses(fsl_ddr_info_t *pinfo,
|
|||
switch (pinfo->memctl_opts[i].data_bus_width) {
|
||||
case 2:
|
||||
/* 16-bit */
|
||||
printf("can't handle 16-bit mode yet\n");
|
||||
for (j = 0; j < CONFIG_DIMM_SLOTS_PER_CTLR; j++) {
|
||||
unsigned int dw;
|
||||
if (!pinfo->dimm_params[i][j].n_ranks)
|
||||
continue;
|
||||
dw = pinfo->dimm_params[i][j].primary_sdram_width;
|
||||
if ((dw == 72 || dw == 64)) {
|
||||
dbw_cap_adj[i] = 2;
|
||||
break;
|
||||
} else if ((dw == 40 || dw == 32)) {
|
||||
dbw_cap_adj[i] = 1;
|
||||
break;
|
||||
}
|
||||
}
|
||||
break;
|
||||
|
||||
case 1:
|
||||
|
|
|
@ -438,7 +438,8 @@ unsigned int populate_memctl_options(int all_DIMMs_registered,
|
|||
popts->OTF_burst_chop_en = 0; /* on-the-fly burst chop disable */
|
||||
popts->burst_length = DDR_BL8; /* Fixed 8-beat burst len */
|
||||
#else
|
||||
if (popts->data_bus_width == 1) { /* 32-bit bus */
|
||||
if ((popts->data_bus_width == 1) || (popts->data_bus_width == 2)) {
|
||||
/* 32-bit or 16-bit bus */
|
||||
popts->OTF_burst_chop_en = 0;
|
||||
popts->burst_length = DDR_BL8;
|
||||
} else {
|
||||
|
|
|
@ -181,6 +181,9 @@ typedef struct memctl_options_partial_s {
|
|||
unsigned int all_DIMMs_minimum_tRCD_ps;
|
||||
} memctl_options_partial_t;
|
||||
|
||||
#define DDR_DATA_BUS_WIDTH_64 0
|
||||
#define DDR_DATA_BUS_WIDTH_32 1
|
||||
#define DDR_DATA_BUS_WIDTH_16 2
|
||||
/*
|
||||
* Generalized parameters for memory controller configuration,
|
||||
* might be a little specific to the FSL memory controller
|
||||
|
|
Loading…
Reference in New Issue