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