mirror of
https://xff.cz/git/u-boot/
synced 2025-09-02 17:22:22 +02:00
ddr: altera: sdram: Clean up sdram_calculate_size() part 1
Pluck out all of the CONFIG_HPS_SDR_CTRLCFG_* macros. This change makes sdram.c completely clear of these macros and allows removing of the ugly include of sdram.h . The namespace is now a much nicer place! Signed-off-by: Marek Vasut <marex@denx.de>
This commit is contained in:
@@ -12,12 +12,6 @@
|
|||||||
#include <asm/arch/system_manager.h>
|
#include <asm/arch/system_manager.h>
|
||||||
#include <asm/io.h>
|
#include <asm/io.h>
|
||||||
|
|
||||||
/*
|
|
||||||
* FIXME: This path is temporary until the SDRAM driver gets
|
|
||||||
* a proper thorough cleanup.
|
|
||||||
*/
|
|
||||||
#include "../../../board/altera/socfpga/qts/sdram_config.h"
|
|
||||||
|
|
||||||
DECLARE_GLOBAL_DATA_PTR;
|
DECLARE_GLOBAL_DATA_PTR;
|
||||||
|
|
||||||
struct sdram_prot_rule {
|
struct sdram_prot_rule {
|
||||||
@@ -470,6 +464,13 @@ unsigned long sdram_calculate_size(void)
|
|||||||
{
|
{
|
||||||
unsigned long temp;
|
unsigned long temp;
|
||||||
unsigned long row, bank, col, cs, width;
|
unsigned long row, bank, col, cs, width;
|
||||||
|
const struct socfpga_sdram_config *cfg = socfpga_get_sdram_config();
|
||||||
|
const unsigned int csbits =
|
||||||
|
((cfg->dram_addrw & SDR_CTRLGRP_DRAMADDRW_CSBITS_MASK) >>
|
||||||
|
SDR_CTRLGRP_DRAMADDRW_CSBITS_LSB) + 1;
|
||||||
|
const unsigned int rowbits =
|
||||||
|
(cfg->dram_addrw & SDR_CTRLGRP_DRAMADDRW_ROWBITS_MASK) >>
|
||||||
|
SDR_CTRLGRP_DRAMADDRW_ROWBITS_LSB;
|
||||||
|
|
||||||
temp = readl(&sdr_ctrl->dram_addrw);
|
temp = readl(&sdr_ctrl->dram_addrw);
|
||||||
col = (temp & SDR_CTRLGRP_DRAMADDRW_COLBITS_MASK) >>
|
col = (temp & SDR_CTRLGRP_DRAMADDRW_COLBITS_MASK) >>
|
||||||
@@ -490,7 +491,7 @@ unsigned long sdram_calculate_size(void)
|
|||||||
*/
|
*/
|
||||||
row = readl(&sysmgr_regs->iswgrp_handoff[4]);
|
row = readl(&sysmgr_regs->iswgrp_handoff[4]);
|
||||||
if (row == 0)
|
if (row == 0)
|
||||||
row = CONFIG_HPS_SDR_CTRLCFG_DRAMADDRW_ROWBITS;
|
row = rowbits;
|
||||||
/* If the stored handoff value for rows is greater than
|
/* If the stored handoff value for rows is greater than
|
||||||
* the field width in the sdr.dramaddrw register then
|
* the field width in the sdr.dramaddrw register then
|
||||||
* something is very wrong. Revert to using the the #define
|
* something is very wrong. Revert to using the the #define
|
||||||
@@ -498,7 +499,7 @@ unsigned long sdram_calculate_size(void)
|
|||||||
* using a broken value.
|
* using a broken value.
|
||||||
*/
|
*/
|
||||||
if (row > 31)
|
if (row > 31)
|
||||||
row = CONFIG_HPS_SDR_CTRLCFG_DRAMADDRW_ROWBITS;
|
row = rowbits;
|
||||||
|
|
||||||
bank = (temp & SDR_CTRLGRP_DRAMADDRW_BANKBITS_MASK) >>
|
bank = (temp & SDR_CTRLGRP_DRAMADDRW_BANKBITS_MASK) >>
|
||||||
SDR_CTRLGRP_DRAMADDRW_BANKBITS_LSB;
|
SDR_CTRLGRP_DRAMADDRW_BANKBITS_LSB;
|
||||||
@@ -512,7 +513,7 @@ unsigned long sdram_calculate_size(void)
|
|||||||
SDR_CTRLGRP_DRAMADDRW_CSBITS_LSB;
|
SDR_CTRLGRP_DRAMADDRW_CSBITS_LSB;
|
||||||
cs += 1;
|
cs += 1;
|
||||||
|
|
||||||
cs = CONFIG_HPS_SDR_CTRLCFG_DRAMADDRW_CSBITS;
|
cs = csbits;
|
||||||
|
|
||||||
width = readl(&sdr_ctrl->dram_if_width);
|
width = readl(&sdr_ctrl->dram_if_width);
|
||||||
/* ECC would not be calculated as its not addressible */
|
/* ECC would not be calculated as its not addressible */
|
||||||
|
Reference in New Issue
Block a user