xref: /rk3399_rockchip-uboot/board/sbc8548/law.c (revision f0aec4ea3301f7db3a691ec0cbb5230e99cceb34)
1e2b159d0SKumar Gala /*
2e2b159d0SKumar Gala  * Copyright 2008 Freescale Semiconductor, Inc.
3e2b159d0SKumar Gala  *
4e2b159d0SKumar Gala  * (C) Copyright 2000
5e2b159d0SKumar Gala  * Wolfgang Denk, DENX Software Engineering, wd@denx.de.
6e2b159d0SKumar Gala  *
7e2b159d0SKumar Gala  * See file CREDITS for list of people who contributed to this
8e2b159d0SKumar Gala  * project.
9e2b159d0SKumar Gala  *
10e2b159d0SKumar Gala  * This program is free software; you can redistribute it and/or
11e2b159d0SKumar Gala  * modify it under the terms of the GNU General Public License as
12e2b159d0SKumar Gala  * published by the Free Software Foundation; either version 2 of
13e2b159d0SKumar Gala  * the License, or (at your option) any later version.
14e2b159d0SKumar Gala  *
15e2b159d0SKumar Gala  * This program is distributed in the hope that it will be useful,
16e2b159d0SKumar Gala  * but WITHOUT ANY WARRANTY; without even the implied warranty of
17e2b159d0SKumar Gala  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
18e2b159d0SKumar Gala  * GNU General Public License for more details.
19e2b159d0SKumar Gala  *
20e2b159d0SKumar Gala  * You should have received a copy of the GNU General Public License
21e2b159d0SKumar Gala  * along with this program; if not, write to the Free Software
22e2b159d0SKumar Gala  * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
23e2b159d0SKumar Gala  * MA 02111-1307 USA
24e2b159d0SKumar Gala  */
25e2b159d0SKumar Gala 
26e2b159d0SKumar Gala #include <common.h>
27e2b159d0SKumar Gala #include <asm/fsl_law.h>
28e2b159d0SKumar Gala #include <asm/mmu.h>
29e2b159d0SKumar Gala 
30e2b159d0SKumar Gala /*
31e2b159d0SKumar Gala  * LAW(Local Access Window) configuration:
32e2b159d0SKumar Gala  *
33e2b159d0SKumar Gala  * 0x0000_0000	0x0fff_ffff	DDR			256M
34e2b159d0SKumar Gala  * 0x8000_0000	0x9fff_ffff	PCI1 MEM		512M
35fdc7eb90SPaul Gortmaker  * 0xa000_0000	0xbfff_ffff	PCIe MEM		512M
36e2b159d0SKumar Gala  * 0xe000_0000	0xe000_ffff	CCSR			1M
37fdc7eb90SPaul Gortmaker  * 0xe200_0000	0xe27f_ffff	PCI1 IO			8M
38fdc7eb90SPaul Gortmaker  * 0xe280_0000	0xe2ff_ffff	PCIe IO			8M
393fd673cfSPaul Gortmaker  * 0xec00_0000	0xefff_ffff	FLASH (2nd bank)	64M
40e2b159d0SKumar Gala  * 0xf000_0000	0xf7ff_ffff	SDRAM			128M
41e2b159d0SKumar Gala  * 0xf8b0_0000	0xf80f_ffff	EEPROM			1M
42e2b159d0SKumar Gala  * 0xff80_0000	0xffff_ffff	FLASH (boot bank)	8M
43e2b159d0SKumar Gala  *
44*f0aec4eaSPaul Gortmaker  * If swapped CS0/CS6 via JP12+SW2.8:
45*f0aec4eaSPaul Gortmaker  * 0xef80_0000	0xefff_ffff	FLASH (2nd bank)	8M
46*f0aec4eaSPaul Gortmaker  * 0xfc00_0000	0xffff_ffff	FLASH (boot bank)	64M
47*f0aec4eaSPaul Gortmaker  *
48e2b159d0SKumar Gala  * Notes:
49e2b159d0SKumar Gala  *	CCSRBAR and L2-as-SRAM don't need a configured Local Access Window.
50e2b159d0SKumar Gala  *	If flash is 8M at default position (last 8M), no LAW needed.
51e2b159d0SKumar Gala  */
52e2b159d0SKumar Gala 
53e2b159d0SKumar Gala struct law_entry law_table[] = {
54*f0aec4eaSPaul Gortmaker #ifdef CONFIG_SYS_ALT_BOOT
55*f0aec4eaSPaul Gortmaker 	SET_LAW(CONFIG_SYS_ALT_FLASH, LAW_SIZE_8M, LAW_TRGT_IF_LBC),
56*f0aec4eaSPaul Gortmaker #else
573fd673cfSPaul Gortmaker 	SET_LAW(CONFIG_SYS_ALT_FLASH, LAW_SIZE_64M, LAW_TRGT_IF_LBC),
58*f0aec4eaSPaul Gortmaker #endif
59e2b159d0SKumar Gala #ifndef CONFIG_SPD_EEPROM
606d0f6bcfSJean-Christophe PLAGNIOL-VILLARD 	SET_LAW(CONFIG_SYS_DDR_SDRAM_BASE, LAW_SIZE_256M, LAW_TRGT_IF_DDR),
61e2b159d0SKumar Gala #endif
62e2b159d0SKumar Gala 	/* LBC window - maps 256M 0xf0000000 -> 0xffffffff */
636d0f6bcfSJean-Christophe PLAGNIOL-VILLARD 	SET_LAW(CONFIG_SYS_LBC_SDRAM_BASE, LAW_SIZE_256M, LAW_TRGT_IF_LBC),
64e2b159d0SKumar Gala };
65e2b159d0SKumar Gala 
66e2b159d0SKumar Gala int num_law_entries = ARRAY_SIZE(law_table);
67