mirror of
https://github.com/AsahiLinux/u-boot
synced 2024-12-14 15:23:07 +00:00
7e44f2b710
Previously, SPD configuration of RAM was non functional on this board. Now that the root cause is known (an i2c address conflict), there is a simple end-user workaround - remove the old slower local bus 128MB module and then SPD detection on the main DDR2 memory module works fine. We make the enablement of the LBC SDRAM support conditional on being not SPD enabled. We can revisit this dependency as the hardware workaround becomes available. Turning off LBC SDRAM support revealed a couple implict dependencies in the tlb/law code that always expected an LBC SDRAM address. This has been tested with the default 256MB module, a 512MB a 1GB and a 2GB, of varying speeds, and the SPD autoconfiguration worked fine in all cases. The default configuration remains to go with the hard coded DDR config, so the default build will continue to work on boards where people don't bother to read the docs. But the advantage of going to the SPD config is that even the small default module gets configured for CL3 instead of CL4. Signed-off-by: Paul Gortmaker <paul.gortmaker@windriver.com> Signed-off-by: Kumar Gala <galak@kernel.crashing.org>
71 lines
2.3 KiB
C
71 lines
2.3 KiB
C
/*
|
|
* Copyright 2008 Freescale Semiconductor, Inc.
|
|
*
|
|
* (C) Copyright 2000
|
|
* Wolfgang Denk, DENX Software Engineering, wd@denx.de.
|
|
*
|
|
* See file CREDITS for list of people who contributed to this
|
|
* project.
|
|
*
|
|
* This program is free software; you can redistribute it and/or
|
|
* modify it under the terms of the GNU General Public License as
|
|
* published by the Free Software Foundation; either version 2 of
|
|
* the License, or (at your option) any later version.
|
|
*
|
|
* This program is distributed in the hope that it will be useful,
|
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
* GNU General Public License for more details.
|
|
*
|
|
* You should have received a copy of the GNU General Public License
|
|
* along with this program; if not, write to the Free Software
|
|
* Foundation, Inc., 59 Temple Place, Suite 330, Boston,
|
|
* MA 02111-1307 USA
|
|
*/
|
|
|
|
#include <common.h>
|
|
#include <asm/fsl_law.h>
|
|
#include <asm/mmu.h>
|
|
|
|
/*
|
|
* LAW(Local Access Window) configuration:
|
|
*
|
|
* 0x0000_0000 0x0fff_ffff DDR 256M
|
|
* 0x8000_0000 0x9fff_ffff PCI1 MEM 512M
|
|
* 0xa000_0000 0xbfff_ffff PCIe MEM 512M
|
|
* 0xe000_0000 0xe000_ffff CCSR 1M
|
|
* 0xe200_0000 0xe27f_ffff PCI1 IO 8M
|
|
* 0xe280_0000 0xe2ff_ffff PCIe IO 8M
|
|
* 0xec00_0000 0xefff_ffff FLASH (2nd bank) 64M
|
|
* 0xf000_0000 0xf7ff_ffff SDRAM 128M
|
|
* 0xf8b0_0000 0xf80f_ffff EEPROM 1M
|
|
* 0xff80_0000 0xffff_ffff FLASH (boot bank) 8M
|
|
*
|
|
* If swapped CS0/CS6 via JP12+SW2.8:
|
|
* 0xef80_0000 0xefff_ffff FLASH (2nd bank) 8M
|
|
* 0xfc00_0000 0xffff_ffff FLASH (boot bank) 64M
|
|
*
|
|
* Notes:
|
|
* CCSRBAR and L2-as-SRAM don't need a configured Local Access Window.
|
|
* If flash is 8M at default position (last 8M), no LAW needed.
|
|
*/
|
|
|
|
struct law_entry law_table[] = {
|
|
#ifdef CONFIG_SYS_ALT_BOOT
|
|
SET_LAW(CONFIG_SYS_ALT_FLASH, LAW_SIZE_8M, LAW_TRGT_IF_LBC),
|
|
#else
|
|
SET_LAW(CONFIG_SYS_ALT_FLASH, LAW_SIZE_64M, LAW_TRGT_IF_LBC),
|
|
#endif
|
|
#ifndef CONFIG_SPD_EEPROM
|
|
SET_LAW(CONFIG_SYS_DDR_SDRAM_BASE, LAW_SIZE_256M, LAW_TRGT_IF_DDR),
|
|
#endif
|
|
#ifdef CONFIG_SYS_LBC_SDRAM_BASE
|
|
/* LBC window - maps 256M 0xf0000000 -> 0xffffffff */
|
|
SET_LAW(CONFIG_SYS_LBC_SDRAM_BASE, LAW_SIZE_256M, LAW_TRGT_IF_LBC),
|
|
#else
|
|
/* LBC window - maps 128M 0xf8000000 -> 0xffffffff */
|
|
SET_LAW(CONFIG_SYS_EPLD_BASE, LAW_SIZE_128M, LAW_TRGT_IF_LBC),
|
|
#endif
|
|
};
|
|
|
|
int num_law_entries = ARRAY_SIZE(law_table);
|