Commit 5a4696088376fff82629e7e4a2444294dc589c96
Committed by
Kumar Gala
1 parent
2feb4af001
Exists in
master
and in
54 other branches
p2020ds: add alternate boot bank support using the ngPIXIS FPGA
The Freescale P2020DS board uses a new type of PIXIS FPGA, called the ngPIXIS. The ngPIXIS has one distinct new feature: the values of the on-board switches can be selectively overridden with shadow registers. This feature is used to boot from a different NOR flash bank, instead of having a register dedicated for this purpose. Because the ngPIXIS is so different from the previous PIXIS, a new file is introduced: ngpixis.c. Also update the P2020DS checkboard() function to use the new macros defined in the header file. Signed-off-by: Timur Tabi <timur@freescale.com> Signed-off-by: Kumar Gala <galak@kernel.crashing.org>
Showing 5 changed files with 222 additions and 89 deletions Inline Diff
board/freescale/common/Makefile
1 | # | 1 | # |
2 | # (C) Copyright 2006 | 2 | # (C) Copyright 2006 |
3 | # Wolfgang Denk, DENX Software Engineering, wd@denx.de. | 3 | # Wolfgang Denk, DENX Software Engineering, wd@denx.de. |
4 | # | 4 | # |
5 | # See file CREDITS for list of people who contributed to this | 5 | # See file CREDITS for list of people who contributed to this |
6 | # project. | 6 | # project. |
7 | # | 7 | # |
8 | # This program is free software; you can redistribute it and/or | 8 | # This program is free software; you can redistribute it and/or |
9 | # modify it under the terms of the GNU General Public License as | 9 | # modify it under the terms of the GNU General Public License as |
10 | # published by the Free Software Foundation; either version 2 of | 10 | # published by the Free Software Foundation; either version 2 of |
11 | # the License, or (at your option) any later version. | 11 | # the License, or (at your option) any later version. |
12 | # | 12 | # |
13 | # This program is distributed in the hope that it will be useful, | 13 | # This program is distributed in the hope that it will be useful, |
14 | # but WITHOUT ANY WARRANTY; without even the implied warranty of | 14 | # but WITHOUT ANY WARRANTY; without even the implied warranty of |
15 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | 15 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
16 | # GNU General Public License for more details. | 16 | # GNU General Public License for more details. |
17 | # | 17 | # |
18 | # You should have received a copy of the GNU General Public License | 18 | # You should have received a copy of the GNU General Public License |
19 | # along with this program; if not, write to the Free Software | 19 | # along with this program; if not, write to the Free Software |
20 | # Foundation, Inc., 59 Temple Place, Suite 330, Boston, | 20 | # Foundation, Inc., 59 Temple Place, Suite 330, Boston, |
21 | # MA 02111-1307 USA | 21 | # MA 02111-1307 USA |
22 | # | 22 | # |
23 | 23 | ||
24 | include $(TOPDIR)/config.mk | 24 | include $(TOPDIR)/config.mk |
25 | 25 | ||
26 | ifneq ($(OBJTREE),$(SRCTREE)) | 26 | ifneq ($(OBJTREE),$(SRCTREE)) |
27 | $(shell mkdir -p $(obj)board/$(VENDOR)/common) | 27 | $(shell mkdir -p $(obj)board/$(VENDOR)/common) |
28 | endif | 28 | endif |
29 | 29 | ||
30 | LIB = $(obj)lib$(VENDOR).a | 30 | LIB = $(obj)lib$(VENDOR).a |
31 | 31 | ||
32 | COBJS-${CONFIG_FSL_CADMUS} += cadmus.o | 32 | COBJS-${CONFIG_FSL_CADMUS} += cadmus.o |
33 | COBJS-${CONFIG_FSL_VIA} += cds_via.o | 33 | COBJS-${CONFIG_FSL_VIA} += cds_via.o |
34 | COBJS-${CONFIG_FSL_DIU_FB} += fsl_diu_fb.o fsl_logo_bmp.o | 34 | COBJS-${CONFIG_FSL_DIU_FB} += fsl_diu_fb.o fsl_logo_bmp.o |
35 | COBJS-${CONFIG_FSL_PIXIS} += pixis.o | 35 | COBJS-${CONFIG_FSL_PIXIS} += pixis.o |
36 | COBJS-${CONFIG_FSL_NGPIXIS} += ngpixis.o | ||
36 | COBJS-${CONFIG_PQ_MDS_PIB} += pq-mds-pib.o | 37 | COBJS-${CONFIG_PQ_MDS_PIB} += pq-mds-pib.o |
37 | COBJS-${CONFIG_ID_EEPROM} += sys_eeprom.o | 38 | COBJS-${CONFIG_ID_EEPROM} += sys_eeprom.o |
38 | COBJS-${CONFIG_FSL_SGMII_RISER} += sgmii_riser.o | 39 | COBJS-${CONFIG_FSL_SGMII_RISER} += sgmii_riser.o |
39 | 40 | ||
40 | COBJS-${CONFIG_MPC8541CDS} += cds_pci_ft.o | 41 | COBJS-${CONFIG_MPC8541CDS} += cds_pci_ft.o |
41 | COBJS-${CONFIG_MPC8548CDS} += cds_pci_ft.o | 42 | COBJS-${CONFIG_MPC8548CDS} += cds_pci_ft.o |
42 | COBJS-${CONFIG_MPC8555CDS} += cds_pci_ft.o | 43 | COBJS-${CONFIG_MPC8555CDS} += cds_pci_ft.o |
43 | 44 | ||
44 | 45 | ||
45 | SRCS := $(SOBJS:.o=.S) $(COBJS-y:.o=.c) | 46 | SRCS := $(SOBJS:.o=.S) $(COBJS-y:.o=.c) |
46 | OBJS := $(addprefix $(obj),$(COBJS-y)) | 47 | OBJS := $(addprefix $(obj),$(COBJS-y)) |
47 | SOBJS := $(addprefix $(obj),$(SOBJS)) | 48 | SOBJS := $(addprefix $(obj),$(SOBJS)) |
48 | 49 | ||
49 | $(LIB): $(obj).depend $(OBJS) | 50 | $(LIB): $(obj).depend $(OBJS) |
50 | $(AR) $(ARFLAGS) $@ $(OBJS) | 51 | $(AR) $(ARFLAGS) $@ $(OBJS) |
51 | 52 | ||
52 | clean: | 53 | clean: |
53 | rm -f $(SOBJS) $(OBJS) | 54 | rm -f $(SOBJS) $(OBJS) |
54 | 55 | ||
55 | distclean: clean | 56 | distclean: clean |
56 | rm -f $(LIB) core *.bak $(obj).depend | 57 | rm -f $(LIB) core *.bak $(obj).depend |
57 | 58 | ||
58 | ######################################################################### | 59 | ######################################################################### |
59 | 60 | ||
60 | # defines $(obj).depend target | 61 | # defines $(obj).depend target |
61 | include $(SRCTREE)/rules.mk | 62 | include $(SRCTREE)/rules.mk |
62 | 63 | ||
63 | sinclude $(obj).depend | 64 | sinclude $(obj).depend |
64 | 65 | ||
65 | ######################################################################### | 66 | ######################################################################### |
66 | 67 |
board/freescale/common/ngpixis.c
File was created | 1 | /** | |
2 | * Copyright 2010 Freescale Semiconductor | ||
3 | * Author: Timur Tabi <timur@freescale.com> | ||
4 | * | ||
5 | * This program is free software; you can redistribute it and/or modify it | ||
6 | * under the terms of the GNU General Public License as published by the Free | ||
7 | * Software Foundation; either version 2 of the License, or (at your option) | ||
8 | * any later version. | ||
9 | * | ||
10 | * This file provides support for the ngPIXIS, a board-specific FPGA used on | ||
11 | * some Freescale reference boards. | ||
12 | * | ||
13 | * A "switch" is black rectangular block on the motherboard. It contains | ||
14 | * eight "bits". The ngPIXIS has a set of memory-mapped registers (SWx) that | ||
15 | * shadow the actual physical switches. There is also another set of | ||
16 | * registers (ENx) that tell the ngPIXIS which bits of SWx should actually be | ||
17 | * used to override the values of the bits in the physical switches. | ||
18 | * | ||
19 | * The following macros need to be defined: | ||
20 | * | ||
21 | * PIXIS_BASE - The virtual address of the base of the PIXIS register map | ||
22 | * | ||
23 | * PIXIS_LBMAP_SWITCH - The switch number (i.e. the "x" in "SWx"). This value | ||
24 | * is used in the PIXIS_SW() macro to determine which offset in | ||
25 | * the PIXIS register map corresponds to the physical switch that controls | ||
26 | * the boot bank. | ||
27 | * | ||
28 | * PIXIS_LBMAP_MASK - A bit mask the defines which bits in SWx to use. | ||
29 | * | ||
30 | * PIXIS_LBMAP_SHIFT - The shift value that corresponds to PIXIS_LBMAP_MASK. | ||
31 | * | ||
32 | * PIXIS_LBMAP_ALTBANK - The value to program into SWx to tell the ngPIXIS to | ||
33 | * boot from the alternate bank. | ||
34 | */ | ||
35 | |||
36 | #include <common.h> | ||
37 | #include <command.h> | ||
38 | #include <watchdog.h> | ||
39 | #include <asm/cache.h> | ||
40 | #include <asm/io.h> | ||
41 | |||
42 | #include "ngpixis.h" | ||
43 | |||
44 | /* | ||
45 | * Reset the board. This ignores the ENx registers. | ||
46 | */ | ||
47 | void pixis_reset(void) | ||
48 | { | ||
49 | out_8(&pixis->rst, 0); | ||
50 | |||
51 | while (1); | ||
52 | } | ||
53 | |||
54 | /* | ||
55 | * Reset the board. Like pixis_reset(), but it honors the ENx registers. | ||
56 | */ | ||
57 | void pixis_bank_reset(void) | ||
58 | { | ||
59 | out_8(&pixis->vctl, 0); | ||
60 | out_8(&pixis->vctl, 1); | ||
61 | |||
62 | while (1); | ||
63 | } | ||
64 | |||
65 | /** | ||
66 | * Set the boot bank to the power-on default bank | ||
67 | */ | ||
68 | void clear_altbank(void) | ||
69 | { | ||
70 | /* Tell the ngPIXIS to use this the bits in the physical switch for the | ||
71 | * boot bank value, instead of the SWx register. We need to be careful | ||
72 | * only to set the bits in SWx that correspond to the boot bank. | ||
73 | */ | ||
74 | clrbits_8(&PIXIS_EN(PIXIS_LBMAP_SWITCH), PIXIS_LBMAP_MASK); | ||
75 | } | ||
76 | |||
77 | /** | ||
78 | * Set the boot bank to the alternate bank | ||
79 | */ | ||
80 | void set_altbank(void) | ||
81 | { | ||
82 | /* Program the alternate bank number into the SWx register. | ||
83 | */ | ||
84 | clrsetbits_8(&PIXIS_SW(PIXIS_LBMAP_SWITCH), PIXIS_LBMAP_MASK, | ||
85 | PIXIS_LBMAP_ALTBANK); | ||
86 | |||
87 | /* Tell the ngPIXIS to use this the bits in the SWx register for the | ||
88 | * boot bank value, instead of the physical switch. We need to be | ||
89 | * careful only to set the bits in SWx that correspond to the boot bank. | ||
90 | */ | ||
91 | setbits_8(&PIXIS_EN(PIXIS_LBMAP_SWITCH), PIXIS_LBMAP_MASK); | ||
92 | } | ||
93 | |||
94 | |||
95 | int pixis_reset_cmd(cmd_tbl_t *cmdtp, int flag, int argc, char *argv[]) | ||
96 | { | ||
97 | unsigned int i; | ||
98 | char *p_altbank = NULL; | ||
99 | char *unknown_param = NULL; | ||
100 | |||
101 | /* No args is a simple reset request. | ||
102 | */ | ||
103 | if (argc <= 1) | ||
104 | pixis_reset(); | ||
105 | |||
106 | for (i = 1; i < argc; i++) { | ||
107 | if (strcmp(argv[i], "altbank") == 0) { | ||
108 | p_altbank = argv[i]; | ||
109 | continue; | ||
110 | } | ||
111 | |||
112 | unknown_param = argv[i]; | ||
113 | } | ||
114 | |||
115 | if (unknown_param) { | ||
116 | printf("Invalid option: %s\n", unknown_param); | ||
117 | return 1; | ||
118 | } | ||
119 | |||
120 | if (p_altbank) | ||
121 | set_altbank(); | ||
122 | else | ||
123 | clear_altbank(); | ||
124 | |||
125 | pixis_bank_reset(); | ||
126 | |||
127 | /* Shouldn't be reached. */ | ||
128 | return 0; | ||
129 | } | ||
130 | |||
131 | U_BOOT_CMD( | ||
132 | pixis_reset, CONFIG_SYS_MAXARGS, 1, pixis_reset_cmd, | ||
133 | "Reset the board using the FPGA sequencer", | ||
134 | "- hard reset to default bank\n" | ||
135 | "pixis_reset altbank - reset to alternate bank\n" | ||
136 | ); | ||
137 |
board/freescale/common/ngpixis.h
File was created | 1 | /** | |
2 | * Copyright 2010 Freescale Semiconductor | ||
3 | * Author: Timur Tabi <timur@freescale.com> | ||
4 | * | ||
5 | * This program is free software; you can redistribute it and/or modify it | ||
6 | * under the terms of the GNU General Public License as published by the Free | ||
7 | * Software Foundation; either version 2 of the License, or (at your option) | ||
8 | * any later version. | ||
9 | * | ||
10 | * This file provides support for the ngPIXIS, a board-specific FPGA used on | ||
11 | * some Freescale reference boards. | ||
12 | */ | ||
13 | |||
14 | /* ngPIXIS register set. Hopefully, this won't change too much over time. | ||
15 | * Feel free to add board-specific #ifdefs where necessary. | ||
16 | */ | ||
17 | typedef struct ngpixis { | ||
18 | u8 id; | ||
19 | u8 arch; | ||
20 | u8 scver; | ||
21 | u8 csr; | ||
22 | u8 rst; | ||
23 | u8 res1; | ||
24 | u8 aux; | ||
25 | u8 spd; | ||
26 | u8 brdcfg0; | ||
27 | u8 dma; | ||
28 | u8 addr; | ||
29 | u8 res2[2]; | ||
30 | u8 data; | ||
31 | u8 led; | ||
32 | u8 res3; | ||
33 | u8 vctl; | ||
34 | u8 vstat; | ||
35 | u8 vcfgen0; | ||
36 | u8 res4; | ||
37 | u8 ocmcsr; | ||
38 | u8 ocmmsg; | ||
39 | u8 gmdbg; | ||
40 | u8 res5[2]; | ||
41 | u8 sclk[3]; | ||
42 | u8 dclk[3]; | ||
43 | u8 watch; | ||
44 | struct { | ||
45 | u8 sw; | ||
46 | u8 en; | ||
47 | } s[8]; | ||
48 | } ngpixis_t __attribute__ ((aligned(1))); | ||
49 | |||
50 | /* Pointer to the PIXIS register set */ | ||
51 | #define pixis ((ngpixis_t *)PIXIS_BASE) | ||
52 | |||
53 | /* The PIXIS SW register that corresponds to board switch X, where x >= 1 */ | ||
54 | #define PIXIS_SW(x) (pixis->s[(x) - 1].sw) | ||
55 | |||
56 | /* The PIXIS EN register that corresponds to board switch X, where x >= 1 */ | ||
57 | #define PIXIS_EN(x) (pixis->s[(x) - 1].en) | ||
58 |
board/freescale/p2020ds/p2020ds.c
1 | /* | 1 | /* |
2 | * Copyright 2007-2009 Freescale Semiconductor, Inc. | 2 | * Copyright 2007-2009 Freescale Semiconductor, Inc. |
3 | * | 3 | * |
4 | * See file CREDITS for list of people who contributed to this | 4 | * See file CREDITS for list of people who contributed to this |
5 | * project. | 5 | * project. |
6 | * | 6 | * |
7 | * This program is free software; you can redistribute it and/or | 7 | * This program is free software; you can redistribute it and/or |
8 | * modify it under the terms of the GNU General Public License as | 8 | * modify it under the terms of the GNU General Public License as |
9 | * published by the Free Software Foundation; either version 2 of | 9 | * published by the Free Software Foundation; either version 2 of |
10 | * the License, or (at your option) any later version. | 10 | * the License, or (at your option) any later version. |
11 | * | 11 | * |
12 | * This program is distributed in the hope that it will be useful, | 12 | * This program is distributed in the hope that it will be useful, |
13 | * but WITHOUT ANY WARRANTY; without even the implied warranty of | 13 | * but WITHOUT ANY WARRANTY; without even the implied warranty of |
14 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | 14 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
15 | * GNU General Public License for more details. | 15 | * GNU General Public License for more details. |
16 | * | 16 | * |
17 | * You should have received a copy of the GNU General Public License | 17 | * You should have received a copy of the GNU General Public License |
18 | * along with this program; if not, write to the Free Software | 18 | * along with this program; if not, write to the Free Software |
19 | * Foundation, Inc., 59 Temple Place, Suite 330, Boston, | 19 | * Foundation, Inc., 59 Temple Place, Suite 330, Boston, |
20 | * MA 02111-1307 USA | 20 | * MA 02111-1307 USA |
21 | */ | 21 | */ |
22 | 22 | ||
23 | #include <common.h> | 23 | #include <common.h> |
24 | #include <command.h> | 24 | #include <command.h> |
25 | #include <pci.h> | 25 | #include <pci.h> |
26 | #include <asm/processor.h> | 26 | #include <asm/processor.h> |
27 | #include <asm/mmu.h> | 27 | #include <asm/mmu.h> |
28 | #include <asm/cache.h> | 28 | #include <asm/cache.h> |
29 | #include <asm/immap_85xx.h> | 29 | #include <asm/immap_85xx.h> |
30 | #include <asm/fsl_pci.h> | 30 | #include <asm/fsl_pci.h> |
31 | #include <asm/fsl_ddr_sdram.h> | 31 | #include <asm/fsl_ddr_sdram.h> |
32 | #include <asm/io.h> | 32 | #include <asm/io.h> |
33 | #include <miiphy.h> | 33 | #include <miiphy.h> |
34 | #include <libfdt.h> | 34 | #include <libfdt.h> |
35 | #include <fdt_support.h> | 35 | #include <fdt_support.h> |
36 | #include <tsec.h> | 36 | #include <tsec.h> |
37 | #include <asm/fsl_law.h> | 37 | #include <asm/fsl_law.h> |
38 | #include <asm/mp.h> | 38 | #include <asm/mp.h> |
39 | #include <netdev.h> | 39 | #include <netdev.h> |
40 | 40 | ||
41 | #include "../common/ngpixis.h" | ||
41 | #include "../common/sgmii_riser.h" | 42 | #include "../common/sgmii_riser.h" |
42 | 43 | ||
43 | DECLARE_GLOBAL_DATA_PTR; | 44 | DECLARE_GLOBAL_DATA_PTR; |
44 | 45 | ||
45 | phys_size_t fixed_sdram(void); | 46 | phys_size_t fixed_sdram(void); |
46 | 47 | ||
47 | int checkboard(void) | 48 | int checkboard(void) |
48 | { | 49 | { |
49 | u8 sw7; | 50 | u8 sw; |
50 | u8 *pixis_base = (u8 *)PIXIS_BASE; | ||
51 | 51 | ||
52 | puts("Board: P2020DS "); | 52 | puts("Board: P2020DS "); |
53 | #ifdef CONFIG_PHYS_64BIT | 53 | #ifdef CONFIG_PHYS_64BIT |
54 | puts("(36-bit addrmap) "); | 54 | puts("(36-bit addrmap) "); |
55 | #endif | 55 | #endif |
56 | 56 | ||
57 | printf("Sys ID: 0x%02x, " | 57 | printf("Sys ID: 0x%02x, Sys Ver: 0x%02x, FPGA Ver: 0x%02x, ", |
58 | "Sys Ver: 0x%02x, FPGA Ver: 0x%02x, ", | 58 | in_8(&pixis->id), in_8(&pixis->arch), in_8(&pixis->scver)); |
59 | in_8(pixis_base + PIXIS_ID), in_8(pixis_base + PIXIS_VER), | ||
60 | in_8(pixis_base + PIXIS_PVER)); | ||
61 | 59 | ||
62 | sw7 = in_8(pixis_base + PIXIS_SW(7)); | 60 | sw = in_8(&PIXIS_SW(PIXIS_LBMAP_SWITCH)); |
63 | switch ((sw7 & PIXIS_SW7_LBMAP) >> 6) { | 61 | sw = (sw & PIXIS_LBMAP_MASK) >> PIXIS_LBMAP_SHIFT; |
64 | case 0: | ||
65 | case 1: | ||
66 | printf ("vBank: %d\n", ((sw7 & PIXIS_SW7_VBANK) >> 4)); | ||
67 | break; | ||
68 | case 2: | ||
69 | case 3: | ||
70 | puts ("Promjet\n"); | ||
71 | break; | ||
72 | } | ||
73 | 62 | ||
63 | if (sw < 0x8) | ||
64 | /* The lower two bits are the actual vbank number */ | ||
65 | printf("vBank: %d\n", sw & 3); | ||
66 | else | ||
67 | puts("Promjet\n"); | ||
68 | |||
74 | return 0; | 69 | return 0; |
75 | } | 70 | } |
76 | 71 | ||
77 | phys_size_t initdram(int board_type) | 72 | phys_size_t initdram(int board_type) |
78 | { | 73 | { |
79 | phys_size_t dram_size = 0; | 74 | phys_size_t dram_size = 0; |
80 | 75 | ||
81 | puts("Initializing...."); | 76 | puts("Initializing...."); |
82 | 77 | ||
83 | #ifdef CONFIG_SPD_EEPROM | 78 | #ifdef CONFIG_SPD_EEPROM |
84 | dram_size = fsl_ddr_sdram(); | 79 | dram_size = fsl_ddr_sdram(); |
85 | #else | 80 | #else |
86 | dram_size = fixed_sdram(); | 81 | dram_size = fixed_sdram(); |
87 | 82 | ||
88 | if (set_ddr_laws(CONFIG_SYS_DDR_SDRAM_BASE, | 83 | if (set_ddr_laws(CONFIG_SYS_DDR_SDRAM_BASE, |
89 | dram_size, | 84 | dram_size, |
90 | LAW_TRGT_IF_DDR) < 0) { | 85 | LAW_TRGT_IF_DDR) < 0) { |
91 | printf("ERROR setting Local Access Windows for DDR\n"); | 86 | printf("ERROR setting Local Access Windows for DDR\n"); |
92 | return 0; | 87 | return 0; |
93 | }; | 88 | }; |
94 | #endif | 89 | #endif |
95 | dram_size = setup_ddr_tlbs(dram_size / 0x100000); | 90 | dram_size = setup_ddr_tlbs(dram_size / 0x100000); |
96 | dram_size *= 0x100000; | 91 | dram_size *= 0x100000; |
97 | 92 | ||
98 | puts(" DDR: "); | 93 | puts(" DDR: "); |
99 | return dram_size; | 94 | return dram_size; |
100 | } | 95 | } |
101 | 96 | ||
102 | #if !defined(CONFIG_SPD_EEPROM) | 97 | #if !defined(CONFIG_SPD_EEPROM) |
103 | /* | 98 | /* |
104 | * Fixed sdram init -- doesn't use serial presence detect. | 99 | * Fixed sdram init -- doesn't use serial presence detect. |
105 | */ | 100 | */ |
106 | 101 | ||
107 | phys_size_t fixed_sdram(void) | 102 | phys_size_t fixed_sdram(void) |
108 | { | 103 | { |
109 | volatile ccsr_ddr_t *ddr = (ccsr_ddr_t *)CONFIG_SYS_MPC85xx_DDR_ADDR; | 104 | volatile ccsr_ddr_t *ddr = (ccsr_ddr_t *)CONFIG_SYS_MPC85xx_DDR_ADDR; |
110 | uint d_init; | 105 | uint d_init; |
111 | 106 | ||
112 | ddr->cs0_config = CONFIG_SYS_DDR_CS0_CONFIG; | 107 | ddr->cs0_config = CONFIG_SYS_DDR_CS0_CONFIG; |
113 | ddr->timing_cfg_3 = CONFIG_SYS_DDR_TIMING_3; | 108 | ddr->timing_cfg_3 = CONFIG_SYS_DDR_TIMING_3; |
114 | ddr->timing_cfg_0 = CONFIG_SYS_DDR_TIMING_0; | 109 | ddr->timing_cfg_0 = CONFIG_SYS_DDR_TIMING_0; |
115 | ddr->sdram_mode = CONFIG_SYS_DDR_MODE_1; | 110 | ddr->sdram_mode = CONFIG_SYS_DDR_MODE_1; |
116 | ddr->sdram_mode_2 = CONFIG_SYS_DDR_MODE_2; | 111 | ddr->sdram_mode_2 = CONFIG_SYS_DDR_MODE_2; |
117 | ddr->sdram_md_cntl = CONFIG_SYS_DDR_MODE_CTRL; | 112 | ddr->sdram_md_cntl = CONFIG_SYS_DDR_MODE_CTRL; |
118 | ddr->sdram_interval = CONFIG_SYS_DDR_INTERVAL; | 113 | ddr->sdram_interval = CONFIG_SYS_DDR_INTERVAL; |
119 | ddr->sdram_data_init = CONFIG_SYS_DDR_DATA_INIT; | 114 | ddr->sdram_data_init = CONFIG_SYS_DDR_DATA_INIT; |
120 | ddr->sdram_clk_cntl = CONFIG_SYS_DDR_CLK_CTRL; | 115 | ddr->sdram_clk_cntl = CONFIG_SYS_DDR_CLK_CTRL; |
121 | ddr->sdram_cfg_2 = CONFIG_SYS_DDR_CONTROL2; | 116 | ddr->sdram_cfg_2 = CONFIG_SYS_DDR_CONTROL2; |
122 | ddr->ddr_zq_cntl = CONFIG_SYS_DDR_ZQ_CNTL; | 117 | ddr->ddr_zq_cntl = CONFIG_SYS_DDR_ZQ_CNTL; |
123 | ddr->ddr_wrlvl_cntl = CONFIG_SYS_DDR_WRLVL_CNTL; | 118 | ddr->ddr_wrlvl_cntl = CONFIG_SYS_DDR_WRLVL_CNTL; |
124 | ddr->ddr_cdr1 = CONFIG_SYS_DDR_CDR1; | 119 | ddr->ddr_cdr1 = CONFIG_SYS_DDR_CDR1; |
125 | ddr->timing_cfg_4 = CONFIG_SYS_DDR_TIMING_4; | 120 | ddr->timing_cfg_4 = CONFIG_SYS_DDR_TIMING_4; |
126 | ddr->timing_cfg_5 = CONFIG_SYS_DDR_TIMING_5; | 121 | ddr->timing_cfg_5 = CONFIG_SYS_DDR_TIMING_5; |
127 | 122 | ||
128 | if (!strcmp("performance", getenv("perf_mode"))) { | 123 | if (!strcmp("performance", getenv("perf_mode"))) { |
129 | /* Performance Mode Values */ | 124 | /* Performance Mode Values */ |
130 | 125 | ||
131 | ddr->cs1_config = CONFIG_SYS_DDR_CS1_CONFIG_PERF; | 126 | ddr->cs1_config = CONFIG_SYS_DDR_CS1_CONFIG_PERF; |
132 | ddr->cs0_bnds = CONFIG_SYS_DDR_CS0_BNDS_PERF; | 127 | ddr->cs0_bnds = CONFIG_SYS_DDR_CS0_BNDS_PERF; |
133 | ddr->cs1_bnds = CONFIG_SYS_DDR_CS1_BNDS_PERF; | 128 | ddr->cs1_bnds = CONFIG_SYS_DDR_CS1_BNDS_PERF; |
134 | ddr->timing_cfg_1 = CONFIG_SYS_DDR_TIMING_1_PERF; | 129 | ddr->timing_cfg_1 = CONFIG_SYS_DDR_TIMING_1_PERF; |
135 | ddr->timing_cfg_2 = CONFIG_SYS_DDR_TIMING_2_PERF; | 130 | ddr->timing_cfg_2 = CONFIG_SYS_DDR_TIMING_2_PERF; |
136 | 131 | ||
137 | asm("sync;isync"); | 132 | asm("sync;isync"); |
138 | 133 | ||
139 | udelay(500); | 134 | udelay(500); |
140 | 135 | ||
141 | ddr->sdram_cfg = CONFIG_SYS_DDR_CONTROL_PERF; | 136 | ddr->sdram_cfg = CONFIG_SYS_DDR_CONTROL_PERF; |
142 | } else { | 137 | } else { |
143 | /* Stable Mode Values */ | 138 | /* Stable Mode Values */ |
144 | 139 | ||
145 | ddr->cs1_config = CONFIG_SYS_DDR_CS1_CONFIG; | 140 | ddr->cs1_config = CONFIG_SYS_DDR_CS1_CONFIG; |
146 | ddr->cs0_bnds = CONFIG_SYS_DDR_CS0_BNDS; | 141 | ddr->cs0_bnds = CONFIG_SYS_DDR_CS0_BNDS; |
147 | ddr->cs1_bnds = CONFIG_SYS_DDR_CS1_BNDS; | 142 | ddr->cs1_bnds = CONFIG_SYS_DDR_CS1_BNDS; |
148 | ddr->timing_cfg_1 = CONFIG_SYS_DDR_TIMING_1; | 143 | ddr->timing_cfg_1 = CONFIG_SYS_DDR_TIMING_1; |
149 | ddr->timing_cfg_2 = CONFIG_SYS_DDR_TIMING_2; | 144 | ddr->timing_cfg_2 = CONFIG_SYS_DDR_TIMING_2; |
150 | 145 | ||
151 | /* ECC will be assumed in stable mode */ | 146 | /* ECC will be assumed in stable mode */ |
152 | ddr->err_int_en = CONFIG_SYS_DDR_ERR_INT_EN; | 147 | ddr->err_int_en = CONFIG_SYS_DDR_ERR_INT_EN; |
153 | ddr->err_disable = CONFIG_SYS_DDR_ERR_DIS; | 148 | ddr->err_disable = CONFIG_SYS_DDR_ERR_DIS; |
154 | ddr->err_sbe = CONFIG_SYS_DDR_SBE; | 149 | ddr->err_sbe = CONFIG_SYS_DDR_SBE; |
155 | 150 | ||
156 | asm("sync;isync"); | 151 | asm("sync;isync"); |
157 | 152 | ||
158 | udelay(500); | 153 | udelay(500); |
159 | 154 | ||
160 | ddr->sdram_cfg = CONFIG_SYS_DDR_CONTROL; | 155 | ddr->sdram_cfg = CONFIG_SYS_DDR_CONTROL; |
161 | } | 156 | } |
162 | 157 | ||
163 | #if defined(CONFIG_ECC_INIT_VIA_DDRCONTROLLER) | 158 | #if defined(CONFIG_ECC_INIT_VIA_DDRCONTROLLER) |
164 | d_init = 1; | 159 | d_init = 1; |
165 | debug("DDR - 1st controller: memory initializing\n"); | 160 | debug("DDR - 1st controller: memory initializing\n"); |
166 | /* | 161 | /* |
167 | * Poll until memory is initialized. | 162 | * Poll until memory is initialized. |
168 | * 512 Meg at 400 might hit this 200 times or so. | 163 | * 512 Meg at 400 might hit this 200 times or so. |
169 | */ | 164 | */ |
170 | while ((ddr->sdram_cfg_2 & (d_init << 4)) != 0) | 165 | while ((ddr->sdram_cfg_2 & (d_init << 4)) != 0) |
171 | udelay(1000); | 166 | udelay(1000); |
172 | debug("DDR: memory initialized\n\n"); | 167 | debug("DDR: memory initialized\n\n"); |
173 | asm("sync; isync"); | 168 | asm("sync; isync"); |
174 | udelay(500); | 169 | udelay(500); |
175 | #endif | 170 | #endif |
176 | 171 | ||
177 | return CONFIG_SYS_SDRAM_SIZE * 1024 * 1024; | 172 | return CONFIG_SYS_SDRAM_SIZE * 1024 * 1024; |
178 | } | 173 | } |
179 | 174 | ||
180 | #endif | 175 | #endif |
181 | 176 | ||
182 | #ifdef CONFIG_PCIE1 | 177 | #ifdef CONFIG_PCIE1 |
183 | static struct pci_controller pcie1_hose; | 178 | static struct pci_controller pcie1_hose; |
184 | #endif | 179 | #endif |
185 | 180 | ||
186 | #ifdef CONFIG_PCIE2 | 181 | #ifdef CONFIG_PCIE2 |
187 | static struct pci_controller pcie2_hose; | 182 | static struct pci_controller pcie2_hose; |
188 | #endif | 183 | #endif |
189 | 184 | ||
190 | #ifdef CONFIG_PCIE3 | 185 | #ifdef CONFIG_PCIE3 |
191 | static struct pci_controller pcie3_hose; | 186 | static struct pci_controller pcie3_hose; |
192 | #endif | 187 | #endif |
193 | 188 | ||
194 | #ifdef CONFIG_PCI | 189 | #ifdef CONFIG_PCI |
195 | void pci_init_board(void) | 190 | void pci_init_board(void) |
196 | { | 191 | { |
197 | volatile ccsr_gur_t *gur = (void *)(CONFIG_SYS_MPC85xx_GUTS_ADDR); | 192 | volatile ccsr_gur_t *gur = (void *)(CONFIG_SYS_MPC85xx_GUTS_ADDR); |
198 | struct fsl_pci_info pci_info[3]; | 193 | struct fsl_pci_info pci_info[3]; |
199 | u32 devdisr, pordevsr, io_sel; | 194 | u32 devdisr, pordevsr, io_sel; |
200 | int first_free_busno = 0; | 195 | int first_free_busno = 0; |
201 | int num = 0; | 196 | int num = 0; |
202 | 197 | ||
203 | int pcie_ep, pcie_configured; | 198 | int pcie_ep, pcie_configured; |
204 | 199 | ||
205 | devdisr = in_be32(&gur->devdisr); | 200 | devdisr = in_be32(&gur->devdisr); |
206 | pordevsr = in_be32(&gur->pordevsr); | 201 | pordevsr = in_be32(&gur->pordevsr); |
207 | io_sel = (pordevsr & MPC85xx_PORDEVSR_IO_SEL) >> 19; | 202 | io_sel = (pordevsr & MPC85xx_PORDEVSR_IO_SEL) >> 19; |
208 | 203 | ||
209 | debug (" pci_init_board: devdisr=%x, io_sel=%x\n", devdisr, io_sel); | 204 | debug (" pci_init_board: devdisr=%x, io_sel=%x\n", devdisr, io_sel); |
210 | 205 | ||
211 | if (!(pordevsr & MPC85xx_PORDEVSR_SGMII2_DIS)) | 206 | if (!(pordevsr & MPC85xx_PORDEVSR_SGMII2_DIS)) |
212 | printf(" eTSEC2 is in sgmii mode.\n"); | 207 | printf(" eTSEC2 is in sgmii mode.\n"); |
213 | if (!(pordevsr & MPC85xx_PORDEVSR_SGMII3_DIS)) | 208 | if (!(pordevsr & MPC85xx_PORDEVSR_SGMII3_DIS)) |
214 | printf(" eTSEC3 is in sgmii mode.\n"); | 209 | printf(" eTSEC3 is in sgmii mode.\n"); |
215 | 210 | ||
216 | puts("\n"); | 211 | puts("\n"); |
217 | #ifdef CONFIG_PCIE2 | 212 | #ifdef CONFIG_PCIE2 |
218 | pcie_configured = is_fsl_pci_cfg(LAW_TRGT_IF_PCIE_2, io_sel); | 213 | pcie_configured = is_fsl_pci_cfg(LAW_TRGT_IF_PCIE_2, io_sel); |
219 | 214 | ||
220 | if (pcie_configured && !(devdisr & MPC85xx_DEVDISR_PCIE2)) { | 215 | if (pcie_configured && !(devdisr & MPC85xx_DEVDISR_PCIE2)) { |
221 | SET_STD_PCIE_INFO(pci_info[num], 2); | 216 | SET_STD_PCIE_INFO(pci_info[num], 2); |
222 | pcie_ep = fsl_setup_hose(&pcie2_hose, pci_info[num].regs); | 217 | pcie_ep = fsl_setup_hose(&pcie2_hose, pci_info[num].regs); |
223 | printf(" PCIE2 connected to ULI as %s (base addr %lx)\n", | 218 | printf(" PCIE2 connected to ULI as %s (base addr %lx)\n", |
224 | pcie_ep ? "Endpoint" : "Root Complex", | 219 | pcie_ep ? "Endpoint" : "Root Complex", |
225 | pci_info[num].regs); | 220 | pci_info[num].regs); |
226 | first_free_busno = fsl_pci_init_port(&pci_info[num++], | 221 | first_free_busno = fsl_pci_init_port(&pci_info[num++], |
227 | &pcie2_hose, first_free_busno); | 222 | &pcie2_hose, first_free_busno); |
228 | 223 | ||
229 | /* | 224 | /* |
230 | * The workaround doesn't work on p2020 because the location | 225 | * The workaround doesn't work on p2020 because the location |
231 | * we try and read isn't valid on p2020, fix this later | 226 | * we try and read isn't valid on p2020, fix this later |
232 | */ | 227 | */ |
233 | #if 0 | 228 | #if 0 |
234 | /* | 229 | /* |
235 | * Activate ULI1575 legacy chip by performing a fake | 230 | * Activate ULI1575 legacy chip by performing a fake |
236 | * memory access. Needed to make ULI RTC work. | 231 | * memory access. Needed to make ULI RTC work. |
237 | * Device 1d has the first on-board memory BAR. | 232 | * Device 1d has the first on-board memory BAR. |
238 | */ | 233 | */ |
239 | 234 | ||
240 | pci_hose_read_config_dword(hose, PCI_BDF(2, 0x1d, 0), | 235 | pci_hose_read_config_dword(hose, PCI_BDF(2, 0x1d, 0), |
241 | PCI_BASE_ADDRESS_1, &temp32); | 236 | PCI_BASE_ADDRESS_1, &temp32); |
242 | if (temp32 >= CONFIG_SYS_PCIE3_MEM_BUS) { | 237 | if (temp32 >= CONFIG_SYS_PCIE3_MEM_BUS) { |
243 | void *p = pci_mem_to_virt(PCI_BDF(2, 0x1d, 0), | 238 | void *p = pci_mem_to_virt(PCI_BDF(2, 0x1d, 0), |
244 | temp32, 4, 0); | 239 | temp32, 4, 0); |
245 | debug(" uli1575 read to %p\n", p); | 240 | debug(" uli1575 read to %p\n", p); |
246 | in_be32(p); | 241 | in_be32(p); |
247 | } | 242 | } |
248 | #endif | 243 | #endif |
249 | } else { | 244 | } else { |
250 | printf(" PCIE2: disabled\n"); | 245 | printf(" PCIE2: disabled\n"); |
251 | } | 246 | } |
252 | puts("\n"); | 247 | puts("\n"); |
253 | #else | 248 | #else |
254 | setbits_be32(&gur->devdisr, MPC85xx_DEVDISR_PCIE2); /* disable */ | 249 | setbits_be32(&gur->devdisr, MPC85xx_DEVDISR_PCIE2); /* disable */ |
255 | #endif | 250 | #endif |
256 | 251 | ||
257 | #ifdef CONFIG_PCIE3 | 252 | #ifdef CONFIG_PCIE3 |
258 | pcie_configured = is_fsl_pci_cfg(LAW_TRGT_IF_PCIE_3, io_sel); | 253 | pcie_configured = is_fsl_pci_cfg(LAW_TRGT_IF_PCIE_3, io_sel); |
259 | 254 | ||
260 | if (pcie_configured && !(devdisr & MPC85xx_DEVDISR_PCIE3)) { | 255 | if (pcie_configured && !(devdisr & MPC85xx_DEVDISR_PCIE3)) { |
261 | SET_STD_PCIE_INFO(pci_info[num], 3); | 256 | SET_STD_PCIE_INFO(pci_info[num], 3); |
262 | pcie_ep = fsl_setup_hose(&pcie3_hose, pci_info[num].regs); | 257 | pcie_ep = fsl_setup_hose(&pcie3_hose, pci_info[num].regs); |
263 | printf(" PCIE3 connected to Slot 1 as %s (base addr %lx)\n", | 258 | printf(" PCIE3 connected to Slot 1 as %s (base addr %lx)\n", |
264 | pcie_ep ? "Endpoint" : "Root Complex", | 259 | pcie_ep ? "Endpoint" : "Root Complex", |
265 | pci_info[num].regs); | 260 | pci_info[num].regs); |
266 | first_free_busno = fsl_pci_init_port(&pci_info[num++], | 261 | first_free_busno = fsl_pci_init_port(&pci_info[num++], |
267 | &pcie3_hose, first_free_busno); | 262 | &pcie3_hose, first_free_busno); |
268 | } else { | 263 | } else { |
269 | printf(" PCIE3: disabled\n"); | 264 | printf(" PCIE3: disabled\n"); |
270 | } | 265 | } |
271 | puts("\n"); | 266 | puts("\n"); |
272 | #else | 267 | #else |
273 | setbits_be32(&gur->devdisr, MPC85xx_DEVDISR_PCIE3); /* disable */ | 268 | setbits_be32(&gur->devdisr, MPC85xx_DEVDISR_PCIE3); /* disable */ |
274 | #endif | 269 | #endif |
275 | 270 | ||
276 | #ifdef CONFIG_PCIE1 | 271 | #ifdef CONFIG_PCIE1 |
277 | pcie_configured = is_fsl_pci_cfg(LAW_TRGT_IF_PCIE_1, io_sel); | 272 | pcie_configured = is_fsl_pci_cfg(LAW_TRGT_IF_PCIE_1, io_sel); |
278 | 273 | ||
279 | if (pcie_configured && !(devdisr & MPC85xx_DEVDISR_PCIE)) { | 274 | if (pcie_configured && !(devdisr & MPC85xx_DEVDISR_PCIE)) { |
280 | SET_STD_PCIE_INFO(pci_info[num], 1); | 275 | SET_STD_PCIE_INFO(pci_info[num], 1); |
281 | pcie_ep = fsl_setup_hose(&pcie1_hose, pci_info[num].regs); | 276 | pcie_ep = fsl_setup_hose(&pcie1_hose, pci_info[num].regs); |
282 | printf(" PCIE1 connected to Slot 2 as %s (base addr %lx)\n", | 277 | printf(" PCIE1 connected to Slot 2 as %s (base addr %lx)\n", |
283 | pcie_ep ? "Endpoint" : "Root Complex", | 278 | pcie_ep ? "Endpoint" : "Root Complex", |
284 | pci_info[num].regs); | 279 | pci_info[num].regs); |
285 | first_free_busno = fsl_pci_init_port(&pci_info[num++], | 280 | first_free_busno = fsl_pci_init_port(&pci_info[num++], |
286 | &pcie1_hose, first_free_busno); | 281 | &pcie1_hose, first_free_busno); |
287 | } else { | 282 | } else { |
288 | printf(" PCIE1: disabled\n"); | 283 | printf(" PCIE1: disabled\n"); |
289 | } | 284 | } |
290 | puts("\n"); | 285 | puts("\n"); |
291 | #else | 286 | #else |
292 | setbits_be32(&gur->devdisr, MPC85xx_DEVDISR_PCIE); /* disable */ | 287 | setbits_be32(&gur->devdisr, MPC85xx_DEVDISR_PCIE); /* disable */ |
293 | #endif | 288 | #endif |
294 | } | 289 | } |
295 | #endif | 290 | #endif |
296 | 291 | ||
297 | int board_early_init_r(void) | 292 | int board_early_init_r(void) |
298 | { | 293 | { |
299 | const unsigned int flashbase = CONFIG_SYS_FLASH_BASE; | 294 | const unsigned int flashbase = CONFIG_SYS_FLASH_BASE; |
300 | const u8 flash_esel = find_tlb_idx((void *)flashbase, 1); | 295 | const u8 flash_esel = find_tlb_idx((void *)flashbase, 1); |
301 | 296 | ||
302 | /* | 297 | /* |
303 | * Remap Boot flash + PROMJET region to caching-inhibited | 298 | * Remap Boot flash + PROMJET region to caching-inhibited |
304 | * so that flash can be erased properly. | 299 | * so that flash can be erased properly. |
305 | */ | 300 | */ |
306 | 301 | ||
307 | /* Flush d-cache and invalidate i-cache of any FLASH data */ | 302 | /* Flush d-cache and invalidate i-cache of any FLASH data */ |
308 | flush_dcache(); | 303 | flush_dcache(); |
309 | invalidate_icache(); | 304 | invalidate_icache(); |
310 | 305 | ||
311 | /* invalidate existing TLB entry for flash + promjet */ | 306 | /* invalidate existing TLB entry for flash + promjet */ |
312 | disable_tlb(flash_esel); | 307 | disable_tlb(flash_esel); |
313 | 308 | ||
314 | set_tlb(1, flashbase, CONFIG_SYS_FLASH_BASE_PHYS, | 309 | set_tlb(1, flashbase, CONFIG_SYS_FLASH_BASE_PHYS, |
315 | MAS3_SX|MAS3_SW|MAS3_SR, MAS2_I|MAS2_G, | 310 | MAS3_SX|MAS3_SW|MAS3_SR, MAS2_I|MAS2_G, |
316 | 0, flash_esel, BOOKE_PAGESZ_256M, 1); | 311 | 0, flash_esel, BOOKE_PAGESZ_256M, 1); |
317 | 312 | ||
318 | return 0; | 313 | return 0; |
319 | } | 314 | } |
320 | 315 | ||
321 | #ifdef CONFIG_GET_CLK_FROM_ICS307 | 316 | #ifdef CONFIG_GET_CLK_FROM_ICS307 |
322 | /* decode S[0-2] to Output Divider (OD) */ | 317 | /* decode S[0-2] to Output Divider (OD) */ |
323 | static unsigned char ics307_S_to_OD[] = { | 318 | static unsigned char ics307_S_to_OD[] = { |
324 | 10, 2, 8, 4, 5, 7, 3, 6 | 319 | 10, 2, 8, 4, 5, 7, 3, 6 |
325 | }; | 320 | }; |
326 | 321 | ||
327 | /* Calculate frequency being generated by ICS307-02 clock chip based upon | 322 | /* Calculate frequency being generated by ICS307-02 clock chip based upon |
328 | * the control bytes being programmed into it. */ | 323 | * the control bytes being programmed into it. */ |
329 | /* XXX: This function should probably go into a common library */ | 324 | /* XXX: This function should probably go into a common library */ |
330 | static unsigned long | 325 | static unsigned long |
331 | ics307_clk_freq(unsigned char cw0, unsigned char cw1, unsigned char cw2) | 326 | ics307_clk_freq(unsigned char cw0, unsigned char cw1, unsigned char cw2) |
332 | { | 327 | { |
333 | const unsigned long InputFrequency = CONFIG_ICS307_REFCLK_HZ; | 328 | const unsigned long InputFrequency = CONFIG_ICS307_REFCLK_HZ; |
334 | unsigned long VDW = ((cw1 << 1) & 0x1FE) + ((cw2 >> 7) & 1); | 329 | unsigned long VDW = ((cw1 << 1) & 0x1FE) + ((cw2 >> 7) & 1); |
335 | unsigned long RDW = cw2 & 0x7F; | 330 | unsigned long RDW = cw2 & 0x7F; |
336 | unsigned long OD = ics307_S_to_OD[cw0 & 0x7]; | 331 | unsigned long OD = ics307_S_to_OD[cw0 & 0x7]; |
337 | unsigned long freq; | 332 | unsigned long freq; |
338 | 333 | ||
339 | /* CLK1Frequency = InputFrequency * 2 * (VDW + 8) / ((RDW + 2) * OD) */ | 334 | /* CLK1Frequency = InputFrequency * 2 * (VDW + 8) / ((RDW + 2) * OD) */ |
340 | 335 | ||
341 | /* cw0: C1 C0 TTL F1 F0 S2 S1 S0 | 336 | /* cw0: C1 C0 TTL F1 F0 S2 S1 S0 |
342 | * cw1: V8 V7 V6 V5 V4 V3 V2 V1 | 337 | * cw1: V8 V7 V6 V5 V4 V3 V2 V1 |
343 | * cw2: V0 R6 R5 R4 R3 R2 R1 R0 | 338 | * cw2: V0 R6 R5 R4 R3 R2 R1 R0 |
344 | * | 339 | * |
345 | * R6:R0 = Reference Divider Word (RDW) | 340 | * R6:R0 = Reference Divider Word (RDW) |
346 | * V8:V0 = VCO Divider Word (VDW) | 341 | * V8:V0 = VCO Divider Word (VDW) |
347 | * S2:S0 = Output Divider Select (OD) | 342 | * S2:S0 = Output Divider Select (OD) |
348 | * F1:F0 = Function of CLK2 Output | 343 | * F1:F0 = Function of CLK2 Output |
349 | * TTL = duty cycle | 344 | * TTL = duty cycle |
350 | * C1:C0 = internal load capacitance for cyrstal | 345 | * C1:C0 = internal load capacitance for cyrstal |
351 | */ | 346 | */ |
352 | 347 | ||
353 | /* Adding 1 to get a "nicely" rounded number, but this needs | 348 | /* Adding 1 to get a "nicely" rounded number, but this needs |
354 | * more tweaking to get a "properly" rounded number. */ | 349 | * more tweaking to get a "properly" rounded number. */ |
355 | 350 | ||
356 | freq = 1 + (InputFrequency * 2 * (VDW + 8) / ((RDW + 2) * OD)); | 351 | freq = 1 + (InputFrequency * 2 * (VDW + 8) / ((RDW + 2) * OD)); |
357 | 352 | ||
358 | debug("ICS307: CW[0-2]: %02X %02X %02X => %lu Hz\n", cw0, cw1, cw2, | 353 | debug("ICS307: CW[0-2]: %02X %02X %02X => %lu Hz\n", cw0, cw1, cw2, |
359 | freq); | 354 | freq); |
360 | return freq; | 355 | return freq; |
361 | } | 356 | } |
362 | 357 | ||
363 | unsigned long get_board_sys_clk(ulong dummy) | 358 | unsigned long get_board_sys_clk(ulong dummy) |
364 | { | 359 | { |
365 | return gd->bus_clk; | 360 | return gd->bus_clk; |
366 | } | 361 | } |
367 | 362 | ||
368 | unsigned long get_board_ddr_clk(ulong dummy) | 363 | unsigned long get_board_ddr_clk(ulong dummy) |
369 | { | 364 | { |
370 | return gd->mem_clk; | 365 | return gd->mem_clk; |
371 | } | 366 | } |
372 | 367 | ||
373 | unsigned long | 368 | unsigned long calculate_board_sys_clk(ulong dummy) |
374 | calculate_board_sys_clk(ulong dummy) | ||
375 | { | 369 | { |
376 | ulong val; | 370 | ulong val; |
377 | u8 *pixis_base = (u8 *)PIXIS_BASE; | ||
378 | 371 | ||
379 | val = ics307_clk_freq( | 372 | val = ics307_clk_freq(in_8(&pixis->sclk[0]), in_8(&pixis->sclk[1]), |
380 | in_8(pixis_base + PIXIS_VSYSCLK0), | 373 | in_8(&pixis->sclk[2])); |
381 | in_8(pixis_base + PIXIS_VSYSCLK1), | ||
382 | in_8(pixis_base + PIXIS_VSYSCLK2)); | ||
383 | debug("sysclk val = %lu\n", val); | 374 | debug("sysclk val = %lu\n", val); |
384 | return val; | 375 | return val; |
385 | } | 376 | } |
386 | 377 | ||
387 | unsigned long | 378 | unsigned long calculate_board_ddr_clk(ulong dummy) |
388 | calculate_board_ddr_clk(ulong dummy) | ||
389 | { | 379 | { |
390 | ulong val; | 380 | ulong val; |
391 | u8 *pixis_base = (u8 *)PIXIS_BASE; | ||
392 | 381 | ||
393 | val = ics307_clk_freq( | 382 | val = ics307_clk_freq(in_8(&pixis->dclk[0]), in_8(&pixis->dclk[1]), |
394 | in_8(pixis_base + PIXIS_VDDRCLK0), | 383 | in_8(&pixis->dclk[2])); |
395 | in_8(pixis_base + PIXIS_VDDRCLK1), | ||
396 | in_8(pixis_base + PIXIS_VDDRCLK2)); | ||
397 | debug("ddrclk val = %lu\n", val); | 384 | debug("ddrclk val = %lu\n", val); |
398 | return val; | 385 | return val; |
399 | } | 386 | } |
400 | #else | 387 | #else |
401 | unsigned long get_board_sys_clk(ulong dummy) | 388 | unsigned long get_board_sys_clk(ulong dummy) |
402 | { | 389 | { |
403 | u8 i; | 390 | u8 i; |
404 | ulong val = 0; | 391 | ulong val = 0; |
405 | u8 *pixis_base = (u8 *)PIXIS_BASE; | ||
406 | 392 | ||
407 | i = in_8(pixis_base + PIXIS_SPD); | 393 | i = in_8(&pixis->spd); |
408 | i &= 0x07; | 394 | i &= 0x07; |
409 | 395 | ||
410 | switch (i) { | 396 | switch (i) { |
411 | case 0: | 397 | case 0: |
412 | val = 33333333; | 398 | val = 33333333; |
413 | break; | 399 | break; |
414 | case 1: | 400 | case 1: |
415 | val = 40000000; | 401 | val = 40000000; |
416 | break; | 402 | break; |
417 | case 2: | 403 | case 2: |
418 | val = 50000000; | 404 | val = 50000000; |
419 | break; | 405 | break; |
420 | case 3: | 406 | case 3: |
421 | val = 66666666; | 407 | val = 66666666; |
422 | break; | 408 | break; |
423 | case 4: | 409 | case 4: |
424 | val = 83333333; | 410 | val = 83333333; |
425 | break; | 411 | break; |
426 | case 5: | 412 | case 5: |
427 | val = 100000000; | 413 | val = 100000000; |
428 | break; | 414 | break; |
429 | case 6: | 415 | case 6: |
430 | val = 133333333; | 416 | val = 133333333; |
431 | break; | 417 | break; |
432 | case 7: | 418 | case 7: |
433 | val = 166666666; | 419 | val = 166666666; |
434 | break; | 420 | break; |
435 | } | 421 | } |
436 | 422 | ||
437 | return val; | 423 | return val; |
438 | } | 424 | } |
439 | 425 | ||
440 | unsigned long get_board_ddr_clk(ulong dummy) | 426 | unsigned long get_board_ddr_clk(ulong dummy) |
441 | { | 427 | { |
442 | u8 i; | 428 | u8 i; |
443 | ulong val = 0; | 429 | ulong val = 0; |
444 | u8 *pixis_base = (u8 *)PIXIS_BASE; | ||
445 | 430 | ||
446 | i = in_8(pixis_base + PIXIS_SPD); | 431 | i = in_8(&pixis->spd); |
447 | i &= 0x38; | 432 | i &= 0x38; |
448 | i >>= 3; | 433 | i >>= 3; |
449 | 434 | ||
450 | switch (i) { | 435 | switch (i) { |
451 | case 0: | 436 | case 0: |
452 | val = 33333333; | 437 | val = 33333333; |
453 | break; | 438 | break; |
454 | case 1: | 439 | case 1: |
455 | val = 40000000; | 440 | val = 40000000; |
456 | break; | 441 | break; |
457 | case 2: | 442 | case 2: |
458 | val = 50000000; | 443 | val = 50000000; |
459 | break; | 444 | break; |
460 | case 3: | 445 | case 3: |
461 | val = 66666666; | 446 | val = 66666666; |
462 | break; | 447 | break; |
463 | case 4: | 448 | case 4: |
464 | val = 83333333; | 449 | val = 83333333; |
465 | break; | 450 | break; |
466 | case 5: | 451 | case 5: |
467 | val = 100000000; | 452 | val = 100000000; |
468 | break; | 453 | break; |
469 | case 6: | 454 | case 6: |
470 | val = 133333333; | 455 | val = 133333333; |
471 | break; | 456 | break; |
472 | case 7: | 457 | case 7: |
473 | val = 166666666; | 458 | val = 166666666; |
474 | break; | 459 | break; |
475 | } | 460 | } |
476 | return val; | 461 | return val; |
477 | } | 462 | } |
478 | #endif | 463 | #endif |
479 | 464 | ||
480 | #ifdef CONFIG_TSEC_ENET | 465 | #ifdef CONFIG_TSEC_ENET |
481 | int board_eth_init(bd_t *bis) | 466 | int board_eth_init(bd_t *bis) |
482 | { | 467 | { |
483 | struct tsec_info_struct tsec_info[4]; | 468 | struct tsec_info_struct tsec_info[4]; |
484 | volatile ccsr_gur_t *gur = (void *)(CONFIG_SYS_MPC85xx_GUTS_ADDR); | 469 | volatile ccsr_gur_t *gur = (void *)(CONFIG_SYS_MPC85xx_GUTS_ADDR); |
485 | int num = 0; | 470 | int num = 0; |
486 | 471 | ||
487 | #ifdef CONFIG_TSEC1 | 472 | #ifdef CONFIG_TSEC1 |
488 | SET_STD_TSEC_INFO(tsec_info[num], 1); | 473 | SET_STD_TSEC_INFO(tsec_info[num], 1); |
489 | num++; | 474 | num++; |
490 | #endif | 475 | #endif |
491 | #ifdef CONFIG_TSEC2 | 476 | #ifdef CONFIG_TSEC2 |
492 | SET_STD_TSEC_INFO(tsec_info[num], 2); | 477 | SET_STD_TSEC_INFO(tsec_info[num], 2); |
493 | if (!(gur->pordevsr & MPC85xx_PORDEVSR_SGMII2_DIS)) | 478 | if (!(gur->pordevsr & MPC85xx_PORDEVSR_SGMII2_DIS)) |
494 | tsec_info[num].flags |= TSEC_SGMII; | 479 | tsec_info[num].flags |= TSEC_SGMII; |
495 | num++; | 480 | num++; |
496 | #endif | 481 | #endif |
497 | #ifdef CONFIG_TSEC3 | 482 | #ifdef CONFIG_TSEC3 |
498 | SET_STD_TSEC_INFO(tsec_info[num], 3); | 483 | SET_STD_TSEC_INFO(tsec_info[num], 3); |
499 | if (!(gur->pordevsr & MPC85xx_PORDEVSR_SGMII3_DIS)) | 484 | if (!(gur->pordevsr & MPC85xx_PORDEVSR_SGMII3_DIS)) |
500 | tsec_info[num].flags |= TSEC_SGMII; | 485 | tsec_info[num].flags |= TSEC_SGMII; |
501 | num++; | 486 | num++; |
502 | #endif | 487 | #endif |
503 | 488 | ||
504 | if (!num) { | 489 | if (!num) { |
505 | printf("No TSECs initialized\n"); | 490 | printf("No TSECs initialized\n"); |
506 | 491 | ||
507 | return 0; | 492 | return 0; |
508 | } | 493 | } |
509 | 494 | ||
510 | #ifdef CONFIG_FSL_SGMII_RISER | 495 | #ifdef CONFIG_FSL_SGMII_RISER |
511 | fsl_sgmii_riser_init(tsec_info, num); | 496 | fsl_sgmii_riser_init(tsec_info, num); |
512 | #endif | 497 | #endif |
513 | 498 | ||
514 | tsec_eth_init(bis, tsec_info, num); | 499 | tsec_eth_init(bis, tsec_info, num); |
515 | 500 | ||
516 | return pci_eth_init(bis); | 501 | return pci_eth_init(bis); |
517 | } | 502 | } |
518 | #endif | 503 | #endif |
519 | 504 | ||
520 | #if defined(CONFIG_OF_BOARD_SETUP) | 505 | #if defined(CONFIG_OF_BOARD_SETUP) |
521 | void ft_board_setup(void *blob, bd_t *bd) | 506 | void ft_board_setup(void *blob, bd_t *bd) |
522 | { | 507 | { |
523 | phys_addr_t base; | 508 | phys_addr_t base; |
524 | phys_size_t size; | 509 | phys_size_t size; |
525 | 510 | ||
526 | ft_cpu_setup(blob, bd); | 511 | ft_cpu_setup(blob, bd); |
527 | 512 | ||
528 | base = getenv_bootm_low(); | 513 | base = getenv_bootm_low(); |
529 | size = getenv_bootm_size(); | 514 | size = getenv_bootm_size(); |
530 | 515 | ||
531 | fdt_fixup_memory(blob, (u64)base, (u64)size); | 516 | fdt_fixup_memory(blob, (u64)base, (u64)size); |
532 | 517 | ||
533 | #ifdef CONFIG_PCIE3 | 518 | #ifdef CONFIG_PCIE3 |
534 | ft_fsl_pci_setup(blob, "pci0", &pcie3_hose); | 519 | ft_fsl_pci_setup(blob, "pci0", &pcie3_hose); |
535 | #endif | 520 | #endif |
536 | #ifdef CONFIG_PCIE2 | 521 | #ifdef CONFIG_PCIE2 |
537 | ft_fsl_pci_setup(blob, "pci1", &pcie2_hose); | 522 | ft_fsl_pci_setup(blob, "pci1", &pcie2_hose); |
538 | #endif | 523 | #endif |
539 | #ifdef CONFIG_PCIE1 | 524 | #ifdef CONFIG_PCIE1 |
540 | ft_fsl_pci_setup(blob, "pci2", &pcie1_hose); | 525 | ft_fsl_pci_setup(blob, "pci2", &pcie1_hose); |
541 | #endif | 526 | #endif |
542 | #ifdef CONFIG_FSL_SGMII_RISER | 527 | #ifdef CONFIG_FSL_SGMII_RISER |
543 | fsl_sgmii_riser_fdt_fixup(blob); | 528 | fsl_sgmii_riser_fdt_fixup(blob); |
544 | #endif | 529 | #endif |
545 | } | 530 | } |
546 | #endif | 531 | #endif |
547 | 532 |
include/configs/P2020DS.h
1 | /* | 1 | /* |
2 | * Copyright 2007-2009 Freescale Semiconductor, Inc. | 2 | * Copyright 2007-2009 Freescale Semiconductor, Inc. |
3 | * | 3 | * |
4 | * See file CREDITS for list of people who contributed to this | 4 | * See file CREDITS for list of people who contributed to this |
5 | * project. | 5 | * project. |
6 | * | 6 | * |
7 | * This program is free software; you can redistribute it and/or | 7 | * This program is free software; you can redistribute it and/or |
8 | * modify it under the terms of the GNU General Public License as | 8 | * modify it under the terms of the GNU General Public License as |
9 | * published by the Free Software Foundation; either version 2 of | 9 | * published by the Free Software Foundation; either version 2 of |
10 | * the License, or (at your option) any later version. | 10 | * the License, or (at your option) any later version. |
11 | * | 11 | * |
12 | * This program is distributed in the hope that it will be useful, | 12 | * This program is distributed in the hope that it will be useful, |
13 | * but WITHOUT ANY WARRANTY; without even the implied warranty of | 13 | * but WITHOUT ANY WARRANTY; without even the implied warranty of |
14 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | 14 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
15 | * GNU General Public License for more details. | 15 | * GNU General Public License for more details. |
16 | * | 16 | * |
17 | * You should have received a copy of the GNU General Public License | 17 | * You should have received a copy of the GNU General Public License |
18 | * along with this program; if not, write to the Free Software | 18 | * along with this program; if not, write to the Free Software |
19 | * Foundation, Inc., 59 Temple Place, Suite 330, Boston, | 19 | * Foundation, Inc., 59 Temple Place, Suite 330, Boston, |
20 | * MA 02111-1307 USA | 20 | * MA 02111-1307 USA |
21 | */ | 21 | */ |
22 | 22 | ||
23 | /* | 23 | /* |
24 | * p2020ds board configuration file | 24 | * p2020ds board configuration file |
25 | * | 25 | * |
26 | */ | 26 | */ |
27 | #ifndef __CONFIG_H | 27 | #ifndef __CONFIG_H |
28 | #define __CONFIG_H | 28 | #define __CONFIG_H |
29 | 29 | ||
30 | #ifdef CONFIG_MK_36BIT | 30 | #ifdef CONFIG_MK_36BIT |
31 | #define CONFIG_PHYS_64BIT | 31 | #define CONFIG_PHYS_64BIT |
32 | #endif | 32 | #endif |
33 | 33 | ||
34 | /* High Level Configuration Options */ | 34 | /* High Level Configuration Options */ |
35 | #define CONFIG_BOOKE 1 /* BOOKE */ | 35 | #define CONFIG_BOOKE 1 /* BOOKE */ |
36 | #define CONFIG_E500 1 /* BOOKE e500 family */ | 36 | #define CONFIG_E500 1 /* BOOKE e500 family */ |
37 | #define CONFIG_MPC85xx 1 /* MPC8540/60/55/41/48 */ | 37 | #define CONFIG_MPC85xx 1 /* MPC8540/60/55/41/48 */ |
38 | #define CONFIG_P2020 1 | 38 | #define CONFIG_P2020 1 |
39 | #define CONFIG_P2020DS 1 | 39 | #define CONFIG_P2020DS 1 |
40 | #define CONFIG_MP 1 /* support multiple processors */ | 40 | #define CONFIG_MP 1 /* support multiple processors */ |
41 | 41 | ||
42 | #define CONFIG_FSL_ELBC 1 /* Has Enhanced localbus controller */ | 42 | #define CONFIG_FSL_ELBC 1 /* Has Enhanced localbus controller */ |
43 | #define CONFIG_PCI 1 /* Enable PCI/PCIE */ | 43 | #define CONFIG_PCI 1 /* Enable PCI/PCIE */ |
44 | #define CONFIG_PCIE1 1 /* PCIE controler 1 (slot 1) */ | 44 | #define CONFIG_PCIE1 1 /* PCIE controler 1 (slot 1) */ |
45 | #define CONFIG_PCIE2 1 /* PCIE controler 2 (slot 2) */ | 45 | #define CONFIG_PCIE2 1 /* PCIE controler 2 (slot 2) */ |
46 | #define CONFIG_PCIE3 1 /* PCIE controler 3 (ULI bridge) */ | 46 | #define CONFIG_PCIE3 1 /* PCIE controler 3 (ULI bridge) */ |
47 | #define CONFIG_FSL_PCI_INIT 1 /* Use common FSL init code */ | 47 | #define CONFIG_FSL_PCI_INIT 1 /* Use common FSL init code */ |
48 | #define CONFIG_FSL_PCIE_RESET 1 /* need PCIe reset errata */ | 48 | #define CONFIG_FSL_PCIE_RESET 1 /* need PCIe reset errata */ |
49 | #define CONFIG_SYS_PCI_64BIT 1 /* enable 64-bit PCI resources */ | 49 | #define CONFIG_SYS_PCI_64BIT 1 /* enable 64-bit PCI resources */ |
50 | 50 | ||
51 | #define CONFIG_FSL_LAW 1 /* Use common FSL init code */ | 51 | #define CONFIG_FSL_LAW 1 /* Use common FSL init code */ |
52 | #define CONFIG_E1000 1 /* Defind e1000 pci Ethernet card*/ | 52 | #define CONFIG_E1000 1 /* Defind e1000 pci Ethernet card*/ |
53 | 53 | ||
54 | #define CONFIG_TSEC_ENET /* tsec ethernet support */ | 54 | #define CONFIG_TSEC_ENET /* tsec ethernet support */ |
55 | #define CONFIG_ENV_OVERWRITE | 55 | #define CONFIG_ENV_OVERWRITE |
56 | 56 | ||
57 | #ifndef __ASSEMBLY__ | 57 | #ifndef __ASSEMBLY__ |
58 | extern unsigned long calculate_board_sys_clk(unsigned long dummy); | 58 | extern unsigned long calculate_board_sys_clk(unsigned long dummy); |
59 | extern unsigned long calculate_board_ddr_clk(unsigned long dummy); | 59 | extern unsigned long calculate_board_ddr_clk(unsigned long dummy); |
60 | /* extern unsigned long get_board_sys_clk(unsigned long dummy); */ | 60 | /* extern unsigned long get_board_sys_clk(unsigned long dummy); */ |
61 | /* extern unsigned long get_board_ddr_clk(unsigned long dummy); */ | 61 | /* extern unsigned long get_board_ddr_clk(unsigned long dummy); */ |
62 | #endif | 62 | #endif |
63 | #define CONFIG_SYS_CLK_FREQ calculate_board_sys_clk(0) /* sysclk for MPC85xx */ | 63 | #define CONFIG_SYS_CLK_FREQ calculate_board_sys_clk(0) /* sysclk for MPC85xx */ |
64 | #define CONFIG_DDR_CLK_FREQ calculate_board_ddr_clk(0) /* ddrclk for MPC85xx */ | 64 | #define CONFIG_DDR_CLK_FREQ calculate_board_ddr_clk(0) /* ddrclk for MPC85xx */ |
65 | #define CONFIG_ICS307_REFCLK_HZ 33333000 /* ICS307 clock chip ref freq */ | 65 | #define CONFIG_ICS307_REFCLK_HZ 33333000 /* ICS307 clock chip ref freq */ |
66 | #define CONFIG_GET_CLK_FROM_ICS307 /* decode sysclk and ddrclk freq | 66 | #define CONFIG_GET_CLK_FROM_ICS307 /* decode sysclk and ddrclk freq |
67 | from ICS307 instead of switches */ | 67 | from ICS307 instead of switches */ |
68 | 68 | ||
69 | /* | 69 | /* |
70 | * These can be toggled for performance analysis, otherwise use default. | 70 | * These can be toggled for performance analysis, otherwise use default. |
71 | */ | 71 | */ |
72 | #define CONFIG_L2_CACHE /* toggle L2 cache */ | 72 | #define CONFIG_L2_CACHE /* toggle L2 cache */ |
73 | #define CONFIG_BTB /* toggle branch predition */ | 73 | #define CONFIG_BTB /* toggle branch predition */ |
74 | 74 | ||
75 | #define CONFIG_ENABLE_36BIT_PHYS 1 | 75 | #define CONFIG_ENABLE_36BIT_PHYS 1 |
76 | 76 | ||
77 | #ifdef CONFIG_PHYS_64BIT | 77 | #ifdef CONFIG_PHYS_64BIT |
78 | #define CONFIG_ADDR_MAP 1 | 78 | #define CONFIG_ADDR_MAP 1 |
79 | #define CONFIG_SYS_NUM_ADDR_MAP 16 /* number of TLB1 entries */ | 79 | #define CONFIG_SYS_NUM_ADDR_MAP 16 /* number of TLB1 entries */ |
80 | #endif | 80 | #endif |
81 | 81 | ||
82 | #define CONFIG_SYS_MEMTEST_START 0x00000000 /* memtest works on */ | 82 | #define CONFIG_SYS_MEMTEST_START 0x00000000 /* memtest works on */ |
83 | #define CONFIG_SYS_MEMTEST_END 0x7fffffff | 83 | #define CONFIG_SYS_MEMTEST_END 0x7fffffff |
84 | #define CONFIG_PANIC_HANG /* do not reset board on panic */ | 84 | #define CONFIG_PANIC_HANG /* do not reset board on panic */ |
85 | 85 | ||
86 | /* | 86 | /* |
87 | * Base addresses -- Note these are effective addresses where the | 87 | * Base addresses -- Note these are effective addresses where the |
88 | * actual resources get mapped (not physical addresses) | 88 | * actual resources get mapped (not physical addresses) |
89 | */ | 89 | */ |
90 | #define CONFIG_SYS_CCSRBAR_DEFAULT 0xff700000 /* CCSRBAR Default */ | 90 | #define CONFIG_SYS_CCSRBAR_DEFAULT 0xff700000 /* CCSRBAR Default */ |
91 | #define CONFIG_SYS_CCSRBAR 0xffe00000 /* relocated CCSRBAR */ | 91 | #define CONFIG_SYS_CCSRBAR 0xffe00000 /* relocated CCSRBAR */ |
92 | #ifdef CONFIG_PHYS_64BIT | 92 | #ifdef CONFIG_PHYS_64BIT |
93 | #define CONFIG_SYS_CCSRBAR_PHYS 0xfffe00000ull /* physical addr of CCSRBAR */ | 93 | #define CONFIG_SYS_CCSRBAR_PHYS 0xfffe00000ull /* physical addr of CCSRBAR */ |
94 | #else | 94 | #else |
95 | #define CONFIG_SYS_CCSRBAR_PHYS CONFIG_SYS_CCSRBAR /* physical addr of CCSRBAR */ | 95 | #define CONFIG_SYS_CCSRBAR_PHYS CONFIG_SYS_CCSRBAR /* physical addr of CCSRBAR */ |
96 | #endif | 96 | #endif |
97 | #define CONFIG_SYS_IMMR CONFIG_SYS_CCSRBAR /* PQII uses CONFIG_SYS_IMMR */ | 97 | #define CONFIG_SYS_IMMR CONFIG_SYS_CCSRBAR /* PQII uses CONFIG_SYS_IMMR */ |
98 | 98 | ||
99 | #define CONFIG_SYS_PCIE3_ADDR (CONFIG_SYS_CCSRBAR+0x8000) | 99 | #define CONFIG_SYS_PCIE3_ADDR (CONFIG_SYS_CCSRBAR+0x8000) |
100 | #define CONFIG_SYS_PCIE2_ADDR (CONFIG_SYS_CCSRBAR+0x9000) | 100 | #define CONFIG_SYS_PCIE2_ADDR (CONFIG_SYS_CCSRBAR+0x9000) |
101 | #define CONFIG_SYS_PCIE1_ADDR (CONFIG_SYS_CCSRBAR+0xa000) | 101 | #define CONFIG_SYS_PCIE1_ADDR (CONFIG_SYS_CCSRBAR+0xa000) |
102 | 102 | ||
103 | /* DDR Setup */ | 103 | /* DDR Setup */ |
104 | #define CONFIG_VERY_BIG_RAM | 104 | #define CONFIG_VERY_BIG_RAM |
105 | #define CONFIG_FSL_DDR3 1 | 105 | #define CONFIG_FSL_DDR3 1 |
106 | #undef CONFIG_FSL_DDR_INTERACTIVE | 106 | #undef CONFIG_FSL_DDR_INTERACTIVE |
107 | 107 | ||
108 | /* ECC will be enabled based on perf_mode environment variable */ | 108 | /* ECC will be enabled based on perf_mode environment variable */ |
109 | /* #define CONFIG_DDR_ECC */ | 109 | /* #define CONFIG_DDR_ECC */ |
110 | 110 | ||
111 | #define CONFIG_ECC_INIT_VIA_DDRCONTROLLER | 111 | #define CONFIG_ECC_INIT_VIA_DDRCONTROLLER |
112 | #define CONFIG_MEM_INIT_VALUE 0xDeadBeef | 112 | #define CONFIG_MEM_INIT_VALUE 0xDeadBeef |
113 | 113 | ||
114 | #define CONFIG_SYS_DDR_SDRAM_BASE 0x00000000 | 114 | #define CONFIG_SYS_DDR_SDRAM_BASE 0x00000000 |
115 | #define CONFIG_SYS_SDRAM_BASE CONFIG_SYS_DDR_SDRAM_BASE | 115 | #define CONFIG_SYS_SDRAM_BASE CONFIG_SYS_DDR_SDRAM_BASE |
116 | 116 | ||
117 | #define CONFIG_NUM_DDR_CONTROLLERS 1 | 117 | #define CONFIG_NUM_DDR_CONTROLLERS 1 |
118 | #define CONFIG_DIMM_SLOTS_PER_CTLR 1 | 118 | #define CONFIG_DIMM_SLOTS_PER_CTLR 1 |
119 | #define CONFIG_CHIP_SELECTS_PER_CTRL 2 | 119 | #define CONFIG_CHIP_SELECTS_PER_CTRL 2 |
120 | 120 | ||
121 | /* I2C addresses of SPD EEPROMs */ | 121 | /* I2C addresses of SPD EEPROMs */ |
122 | #define CONFIG_SYS_SPD_BUS_NUM 0 /* SPD EEPROM located on I2C bus 0 */ | 122 | #define CONFIG_SYS_SPD_BUS_NUM 0 /* SPD EEPROM located on I2C bus 0 */ |
123 | #define SPD_EEPROM_ADDRESS1 0x51 /* CTLR 0 DIMM 0 */ | 123 | #define SPD_EEPROM_ADDRESS1 0x51 /* CTLR 0 DIMM 0 */ |
124 | 124 | ||
125 | /* These are used when DDR doesn't use SPD. */ | 125 | /* These are used when DDR doesn't use SPD. */ |
126 | #define CONFIG_SYS_SDRAM_SIZE 1024 /* DDR is 1GB */ | 126 | #define CONFIG_SYS_SDRAM_SIZE 1024 /* DDR is 1GB */ |
127 | 127 | ||
128 | /* Default settings for "stable" mode */ | 128 | /* Default settings for "stable" mode */ |
129 | #define CONFIG_SYS_DDR_CS0_BNDS 0x0000003F | 129 | #define CONFIG_SYS_DDR_CS0_BNDS 0x0000003F |
130 | #define CONFIG_SYS_DDR_CS1_BNDS 0x00000000 | 130 | #define CONFIG_SYS_DDR_CS1_BNDS 0x00000000 |
131 | #define CONFIG_SYS_DDR_CS0_CONFIG 0x80014202 | 131 | #define CONFIG_SYS_DDR_CS0_CONFIG 0x80014202 |
132 | #define CONFIG_SYS_DDR_CS1_CONFIG 0x00000000 | 132 | #define CONFIG_SYS_DDR_CS1_CONFIG 0x00000000 |
133 | #define CONFIG_SYS_DDR_TIMING_3 0x00020000 | 133 | #define CONFIG_SYS_DDR_TIMING_3 0x00020000 |
134 | #define CONFIG_SYS_DDR_TIMING_0 0x00330804 | 134 | #define CONFIG_SYS_DDR_TIMING_0 0x00330804 |
135 | #define CONFIG_SYS_DDR_TIMING_1 0x6f6b4846 | 135 | #define CONFIG_SYS_DDR_TIMING_1 0x6f6b4846 |
136 | #define CONFIG_SYS_DDR_TIMING_2 0x0fa890d4 | 136 | #define CONFIG_SYS_DDR_TIMING_2 0x0fa890d4 |
137 | #define CONFIG_SYS_DDR_MODE_1 0x00421422 | 137 | #define CONFIG_SYS_DDR_MODE_1 0x00421422 |
138 | #define CONFIG_SYS_DDR_MODE_2 0x00000000 | 138 | #define CONFIG_SYS_DDR_MODE_2 0x00000000 |
139 | #define CONFIG_SYS_DDR_MODE_CTRL 0x00000000 | 139 | #define CONFIG_SYS_DDR_MODE_CTRL 0x00000000 |
140 | #define CONFIG_SYS_DDR_INTERVAL 0x61800100 | 140 | #define CONFIG_SYS_DDR_INTERVAL 0x61800100 |
141 | #define CONFIG_SYS_DDR_DATA_INIT 0xdeadbeef | 141 | #define CONFIG_SYS_DDR_DATA_INIT 0xdeadbeef |
142 | #define CONFIG_SYS_DDR_CLK_CTRL 0x02000000 | 142 | #define CONFIG_SYS_DDR_CLK_CTRL 0x02000000 |
143 | #define CONFIG_SYS_DDR_TIMING_4 0x00220001 | 143 | #define CONFIG_SYS_DDR_TIMING_4 0x00220001 |
144 | #define CONFIG_SYS_DDR_TIMING_5 0x03402400 | 144 | #define CONFIG_SYS_DDR_TIMING_5 0x03402400 |
145 | #define CONFIG_SYS_DDR_ZQ_CNTL 0x89080600 | 145 | #define CONFIG_SYS_DDR_ZQ_CNTL 0x89080600 |
146 | #define CONFIG_SYS_DDR_WRLVL_CNTL 0x8655A608 | 146 | #define CONFIG_SYS_DDR_WRLVL_CNTL 0x8655A608 |
147 | #define CONFIG_SYS_DDR_CONTROL 0xE7000000 /* Type = DDR3: ECC enabled, No Interleaving */ | 147 | #define CONFIG_SYS_DDR_CONTROL 0xE7000000 /* Type = DDR3: ECC enabled, No Interleaving */ |
148 | #define CONFIG_SYS_DDR_CONTROL2 0x24400011 | 148 | #define CONFIG_SYS_DDR_CONTROL2 0x24400011 |
149 | #define CONFIG_SYS_DDR_CDR1 0x00040000 | 149 | #define CONFIG_SYS_DDR_CDR1 0x00040000 |
150 | #define CONFIG_SYS_DDR_CDR2 0x00000000 | 150 | #define CONFIG_SYS_DDR_CDR2 0x00000000 |
151 | 151 | ||
152 | #define CONFIG_SYS_DDR_ERR_INT_EN 0x0000000d | 152 | #define CONFIG_SYS_DDR_ERR_INT_EN 0x0000000d |
153 | #define CONFIG_SYS_DDR_ERR_DIS 0x00000000 | 153 | #define CONFIG_SYS_DDR_ERR_DIS 0x00000000 |
154 | #define CONFIG_SYS_DDR_SBE 0x00010000 | 154 | #define CONFIG_SYS_DDR_SBE 0x00010000 |
155 | 155 | ||
156 | /* Settings that differ for "performance" mode */ | 156 | /* Settings that differ for "performance" mode */ |
157 | #define CONFIG_SYS_DDR_CS0_BNDS_PERF 0x0000007F /* Interleaving Enabled */ | 157 | #define CONFIG_SYS_DDR_CS0_BNDS_PERF 0x0000007F /* Interleaving Enabled */ |
158 | #define CONFIG_SYS_DDR_CS1_BNDS_PERF 0x00000000 /* Interleaving Enabled */ | 158 | #define CONFIG_SYS_DDR_CS1_BNDS_PERF 0x00000000 /* Interleaving Enabled */ |
159 | #define CONFIG_SYS_DDR_CS1_CONFIG_PERF 0x80014202 | 159 | #define CONFIG_SYS_DDR_CS1_CONFIG_PERF 0x80014202 |
160 | #define CONFIG_SYS_DDR_TIMING_1_PERF 0x5d5b4543 | 160 | #define CONFIG_SYS_DDR_TIMING_1_PERF 0x5d5b4543 |
161 | #define CONFIG_SYS_DDR_TIMING_2_PERF 0x0fa890ce | 161 | #define CONFIG_SYS_DDR_TIMING_2_PERF 0x0fa890ce |
162 | #define CONFIG_SYS_DDR_CONTROL_PERF 0xC7004000 /* Type = DDR3: ECC disabled, cs0-cs1 interleaving */ | 162 | #define CONFIG_SYS_DDR_CONTROL_PERF 0xC7004000 /* Type = DDR3: ECC disabled, cs0-cs1 interleaving */ |
163 | 163 | ||
164 | /* | 164 | /* |
165 | * The following set of values were tested for DDR2 | 165 | * The following set of values were tested for DDR2 |
166 | * with a DDR3 to DDR2 interposer | 166 | * with a DDR3 to DDR2 interposer |
167 | * | 167 | * |
168 | #define CONFIG_SYS_DDR_TIMING_3 0x00000000 | 168 | #define CONFIG_SYS_DDR_TIMING_3 0x00000000 |
169 | #define CONFIG_SYS_DDR_TIMING_0 0x00260802 | 169 | #define CONFIG_SYS_DDR_TIMING_0 0x00260802 |
170 | #define CONFIG_SYS_DDR_TIMING_1 0x3935d322 | 170 | #define CONFIG_SYS_DDR_TIMING_1 0x3935d322 |
171 | #define CONFIG_SYS_DDR_TIMING_2 0x14904cc8 | 171 | #define CONFIG_SYS_DDR_TIMING_2 0x14904cc8 |
172 | #define CONFIG_SYS_DDR_MODE_1 0x00480432 | 172 | #define CONFIG_SYS_DDR_MODE_1 0x00480432 |
173 | #define CONFIG_SYS_DDR_MODE_2 0x00000000 | 173 | #define CONFIG_SYS_DDR_MODE_2 0x00000000 |
174 | #define CONFIG_SYS_DDR_INTERVAL 0x06180100 | 174 | #define CONFIG_SYS_DDR_INTERVAL 0x06180100 |
175 | #define CONFIG_SYS_DDR_DATA_INIT 0xdeadbeef | 175 | #define CONFIG_SYS_DDR_DATA_INIT 0xdeadbeef |
176 | #define CONFIG_SYS_DDR_CLK_CTRL 0x03800000 | 176 | #define CONFIG_SYS_DDR_CLK_CTRL 0x03800000 |
177 | #define CONFIG_SYS_DDR_OCD_CTRL 0x00000000 | 177 | #define CONFIG_SYS_DDR_OCD_CTRL 0x00000000 |
178 | #define CONFIG_SYS_DDR_OCD_STATUS 0x00000000 | 178 | #define CONFIG_SYS_DDR_OCD_STATUS 0x00000000 |
179 | #define CONFIG_SYS_DDR_CONTROL 0xC3008000 | 179 | #define CONFIG_SYS_DDR_CONTROL 0xC3008000 |
180 | #define CONFIG_SYS_DDR_CONTROL2 0x04400010 | 180 | #define CONFIG_SYS_DDR_CONTROL2 0x04400010 |
181 | * | 181 | * |
182 | */ | 182 | */ |
183 | 183 | ||
184 | #undef CONFIG_CLOCKS_IN_MHZ | 184 | #undef CONFIG_CLOCKS_IN_MHZ |
185 | 185 | ||
186 | /* | 186 | /* |
187 | * Memory map | 187 | * Memory map |
188 | * | 188 | * |
189 | * 0x0000_0000 0x7fff_ffff DDR 2G Cacheable | 189 | * 0x0000_0000 0x7fff_ffff DDR 2G Cacheable |
190 | * 0x8000_0000 0xbfff_ffff PCI Express Mem 1G non-cacheable | 190 | * 0x8000_0000 0xbfff_ffff PCI Express Mem 1G non-cacheable |
191 | * 0xc000_0000 0xdfff_ffff PCI 512M non-cacheable | 191 | * 0xc000_0000 0xdfff_ffff PCI 512M non-cacheable |
192 | * 0xe100_0000 0xe3ff_ffff PCI IO range 4M non-cacheable | 192 | * 0xe100_0000 0xe3ff_ffff PCI IO range 4M non-cacheable |
193 | * | 193 | * |
194 | * Localbus cacheable (TBD) | 194 | * Localbus cacheable (TBD) |
195 | * 0xXXXX_XXXX 0xXXXX_XXXX SRAM YZ M Cacheable | 195 | * 0xXXXX_XXXX 0xXXXX_XXXX SRAM YZ M Cacheable |
196 | * | 196 | * |
197 | * Localbus non-cacheable | 197 | * Localbus non-cacheable |
198 | * 0xe000_0000 0xe80f_ffff Promjet/free 128M non-cacheable | 198 | * 0xe000_0000 0xe80f_ffff Promjet/free 128M non-cacheable |
199 | * 0xe800_0000 0xefff_ffff FLASH 128M non-cacheable | 199 | * 0xe800_0000 0xefff_ffff FLASH 128M non-cacheable |
200 | * 0xffa0_0000 0xffaf_ffff NAND 1M non-cacheable | 200 | * 0xffa0_0000 0xffaf_ffff NAND 1M non-cacheable |
201 | * 0xffdf_0000 0xffdf_7fff PIXIS 32K non-cacheable TLB0 | 201 | * 0xffdf_0000 0xffdf_7fff PIXIS 32K non-cacheable TLB0 |
202 | * 0xffd0_0000 0xffd0_3fff L1 for stack 16K Cacheable TLB0 | 202 | * 0xffd0_0000 0xffd0_3fff L1 for stack 16K Cacheable TLB0 |
203 | * 0xffe0_0000 0xffef_ffff CCSR 1M non-cacheable | 203 | * 0xffe0_0000 0xffef_ffff CCSR 1M non-cacheable |
204 | */ | 204 | */ |
205 | 205 | ||
206 | /* | 206 | /* |
207 | * Local Bus Definitions | 207 | * Local Bus Definitions |
208 | */ | 208 | */ |
209 | #define CONFIG_SYS_FLASH_BASE 0xe0000000 /* start of FLASH 128M */ | 209 | #define CONFIG_SYS_FLASH_BASE 0xe0000000 /* start of FLASH 128M */ |
210 | #ifdef CONFIG_PHYS_64BIT | 210 | #ifdef CONFIG_PHYS_64BIT |
211 | #define CONFIG_SYS_FLASH_BASE_PHYS 0xfe0000000ull | 211 | #define CONFIG_SYS_FLASH_BASE_PHYS 0xfe0000000ull |
212 | #else | 212 | #else |
213 | #define CONFIG_SYS_FLASH_BASE_PHYS CONFIG_SYS_FLASH_BASE | 213 | #define CONFIG_SYS_FLASH_BASE_PHYS CONFIG_SYS_FLASH_BASE |
214 | #endif | 214 | #endif |
215 | 215 | ||
216 | #define CONFIG_FLASH_BR_PRELIM (BR_PHYS_ADDR((CONFIG_SYS_FLASH_BASE_PHYS + 0x8000000)) | BR_PS_16 | BR_V) | 216 | #define CONFIG_FLASH_BR_PRELIM (BR_PHYS_ADDR((CONFIG_SYS_FLASH_BASE_PHYS + 0x8000000)) | BR_PS_16 | BR_V) |
217 | #define CONFIG_FLASH_OR_PRELIM 0xf8000ff7 | 217 | #define CONFIG_FLASH_OR_PRELIM 0xf8000ff7 |
218 | 218 | ||
219 | #define CONFIG_SYS_BR1_PRELIM (BR_PHYS_ADDR(CONFIG_SYS_FLASH_BASE_PHYS) | BR_PS_16 | BR_V) | 219 | #define CONFIG_SYS_BR1_PRELIM (BR_PHYS_ADDR(CONFIG_SYS_FLASH_BASE_PHYS) | BR_PS_16 | BR_V) |
220 | #define CONFIG_SYS_OR1_PRELIM 0xf8000ff7 | 220 | #define CONFIG_SYS_OR1_PRELIM 0xf8000ff7 |
221 | 221 | ||
222 | #define CONFIG_SYS_FLASH_BANKS_LIST {CONFIG_SYS_FLASH_BASE_PHYS + 0x8000000, CONFIG_SYS_FLASH_BASE_PHYS} | 222 | #define CONFIG_SYS_FLASH_BANKS_LIST {CONFIG_SYS_FLASH_BASE_PHYS + 0x8000000, CONFIG_SYS_FLASH_BASE_PHYS} |
223 | #define CONFIG_SYS_FLASH_QUIET_TEST | 223 | #define CONFIG_SYS_FLASH_QUIET_TEST |
224 | #define CONFIG_FLASH_SHOW_PROGRESS 45 /* count down from 45/5: 9..1 */ | 224 | #define CONFIG_FLASH_SHOW_PROGRESS 45 /* count down from 45/5: 9..1 */ |
225 | 225 | ||
226 | #define CONFIG_SYS_MAX_FLASH_BANKS 2 /* number of banks */ | 226 | #define CONFIG_SYS_MAX_FLASH_BANKS 2 /* number of banks */ |
227 | #define CONFIG_SYS_MAX_FLASH_SECT 1024 /* sectors per device */ | 227 | #define CONFIG_SYS_MAX_FLASH_SECT 1024 /* sectors per device */ |
228 | #undef CONFIG_SYS_FLASH_CHECKSUM | 228 | #undef CONFIG_SYS_FLASH_CHECKSUM |
229 | #define CONFIG_SYS_FLASH_ERASE_TOUT 60000 /* Flash Erase Timeout (ms) */ | 229 | #define CONFIG_SYS_FLASH_ERASE_TOUT 60000 /* Flash Erase Timeout (ms) */ |
230 | #define CONFIG_SYS_FLASH_WRITE_TOUT 500 /* Flash Write Timeout (ms) */ | 230 | #define CONFIG_SYS_FLASH_WRITE_TOUT 500 /* Flash Write Timeout (ms) */ |
231 | 231 | ||
232 | #define CONFIG_SYS_MONITOR_BASE TEXT_BASE /* start of monitor */ | 232 | #define CONFIG_SYS_MONITOR_BASE TEXT_BASE /* start of monitor */ |
233 | 233 | ||
234 | #define CONFIG_FLASH_CFI_DRIVER | 234 | #define CONFIG_FLASH_CFI_DRIVER |
235 | #define CONFIG_SYS_FLASH_CFI | 235 | #define CONFIG_SYS_FLASH_CFI |
236 | #define CONFIG_SYS_FLASH_EMPTY_INFO | 236 | #define CONFIG_SYS_FLASH_EMPTY_INFO |
237 | #define CONFIG_SYS_FLASH_AMD_CHECK_DQ7 | 237 | #define CONFIG_SYS_FLASH_AMD_CHECK_DQ7 |
238 | 238 | ||
239 | #define CONFIG_BOARD_EARLY_INIT_R /* call board_early_init_r function */ | 239 | #define CONFIG_BOARD_EARLY_INIT_R /* call board_early_init_r function */ |
240 | 240 | ||
241 | #define CONFIG_FSL_PIXIS 1 /* use common PIXIS code */ | 241 | #define CONFIG_FSL_NGPIXIS /* use common ngPIXIS code */ |
242 | |||
243 | #ifdef CONFIG_FSL_NGPIXIS | ||
242 | #define PIXIS_BASE 0xffdf0000 /* PIXIS registers */ | 244 | #define PIXIS_BASE 0xffdf0000 /* PIXIS registers */ |
243 | #ifdef CONFIG_PHYS_64BIT | 245 | #ifdef CONFIG_PHYS_64BIT |
244 | #define PIXIS_BASE_PHYS 0xfffdf0000ull | 246 | #define PIXIS_BASE_PHYS 0xfffdf0000ull |
245 | #else | 247 | #else |
246 | #define PIXIS_BASE_PHYS PIXIS_BASE | 248 | #define PIXIS_BASE_PHYS PIXIS_BASE |
247 | #endif | 249 | #endif |
248 | 250 | ||
249 | #define CONFIG_SYS_BR3_PRELIM (BR_PHYS_ADDR(PIXIS_BASE_PHYS) | BR_PS_8 | BR_V) | 251 | #define CONFIG_SYS_BR3_PRELIM (BR_PHYS_ADDR(PIXIS_BASE_PHYS) | BR_PS_8 | BR_V) |
250 | #define CONFIG_SYS_OR3_PRELIM 0xffffeff7 /* 32KB but only 4k mapped */ | 252 | #define CONFIG_SYS_OR3_PRELIM 0xffffeff7 /* 32KB but only 4k mapped */ |
251 | 253 | ||
252 | #define PIXIS_ID 0x0 /* Board ID at offset 0 */ | 254 | #define PIXIS_LBMAP_SWITCH 7 |
253 | #define PIXIS_VER 0x1 /* Board version at offset 1 */ | 255 | #define PIXIS_LBMAP_MASK 0xf0 |
254 | #define PIXIS_PVER 0x2 /* PIXIS FPGA version at offset 2 */ | 256 | #define PIXIS_LBMAP_SHIFT 4 |
255 | #define PIXIS_CSR 0x3 /* PIXIS General control/status register */ | 257 | #define PIXIS_LBMAP_ALTBANK 0x20 |
256 | #define PIXIS_RST 0x4 /* PIXIS Reset Control register */ | 258 | #endif |
257 | #define PIXIS_PWR 0x5 /* PIXIS Power status register */ | ||
258 | #define PIXIS_AUX 0x6 /* Auxiliary 1 register */ | ||
259 | #define PIXIS_SPD 0x7 /* Register for SYSCLK speed */ | ||
260 | #define PIXIS_AUX2 0x8 /* Auxiliary 2 register */ | ||
261 | #define PIXIS_VCTL 0x10 /* VELA Control Register */ | ||
262 | #define PIXIS_VSTAT 0x11 /* VELA Status Register */ | ||
263 | #define PIXIS_VCFGEN0 0x12 /* VELA Config Enable 0 */ | ||
264 | #define PIXIS_VCFGEN1 0x13 /* VELA Config Enable 1 */ | ||
265 | #define PIXIS_VCORE0 0x14 /* VELA VCORE0 Register */ | ||
266 | #define PIXIS_VBOOT 0x16 /* VELA VBOOT Register */ | ||
267 | #define PIXIS_VSPEED0 0x17 /* VELA VSpeed 0 */ | ||
268 | #define PIXIS_VSPEED1 0x18 /* VELA VSpeed 1 */ | ||
269 | #define PIXIS_VSPEED2 0x19 /* VELA VSpeed 2 */ | ||
270 | #define PIXIS_VSYSCLK0 0x19 /* VELA SYSCLK0 Register */ | ||
271 | #define PIXIS_VSYSCLK1 0x1A /* VELA SYSCLK1 Register */ | ||
272 | #define PIXIS_VSYSCLK2 0x1B /* VELA SYSCLK2 Register */ | ||
273 | #define PIXIS_VDDRCLK0 0x1C /* VELA DDRCLK0 Register */ | ||
274 | #define PIXIS_VDDRCLK1 0x1D /* VELA DDRCLK1 Register */ | ||
275 | #define PIXIS_VDDRCLK2 0x1E /* VELA DDRCLK2 Register */ | ||
276 | |||
277 | #define PIXIS_VWATCH 0x24 /* Watchdog Register */ | ||
278 | #define PIXIS_LED 0x25 /* LED Register */ | ||
279 | |||
280 | #define PIXIS_SW(x) 0x20 + (x - 1) * 2 | ||
281 | #define PIXIS_EN(x) 0x21 + (x - 1) * 2 | ||
282 | #define PIXIS_SW7_LBMAP 0xc0 /* SW7 - cfg_lbmap */ | ||
283 | #define PIXIS_SW7_VBANK 0x30 /* SW7 - cfg_vbank */ | ||
284 | |||
285 | /* old pixis referenced names */ | ||
286 | #define PIXIS_VCLKH 0x19 /* VELA VCLKH register */ | ||
287 | #define PIXIS_VCLKL 0x1A /* VELA VCLKL register */ | ||
288 | #define CONFIG_SYS_PIXIS_VBOOT_MASK 0xc0 | ||
289 | #define PIXIS_VSPEED2_TSEC1SER 0x8 | ||
290 | #define PIXIS_VSPEED2_TSEC2SER 0x4 | ||
291 | #define PIXIS_VSPEED2_TSEC3SER 0x2 | ||
292 | #define PIXIS_VSPEED2_TSEC4SER 0x1 | ||
293 | #define PIXIS_VCFGEN1_TSEC1SER 0x20 | ||
294 | #define PIXIS_VCFGEN1_TSEC2SER 0x20 | ||
295 | #define PIXIS_VCFGEN1_TSEC3SER 0x20 | ||
296 | #define PIXIS_VCFGEN1_TSEC4SER 0x20 | ||
297 | #define PIXIS_VSPEED2_MASK (PIXIS_VSPEED2_TSEC1SER \ | ||
298 | | PIXIS_VSPEED2_TSEC2SER \ | ||
299 | | PIXIS_VSPEED2_TSEC3SER \ | ||
300 | | PIXIS_VSPEED2_TSEC4SER) | ||
301 | #define PIXIS_VCFGEN1_MASK (PIXIS_VCFGEN1_TSEC1SER \ | ||
302 | | PIXIS_VCFGEN1_TSEC2SER \ | ||
303 | | PIXIS_VCFGEN1_TSEC3SER \ | ||
304 | | PIXIS_VCFGEN1_TSEC4SER) | ||
305 | 259 | ||
306 | #define CONFIG_SYS_INIT_RAM_LOCK 1 | 260 | #define CONFIG_SYS_INIT_RAM_LOCK 1 |
307 | #define CONFIG_SYS_INIT_RAM_ADDR 0xffd00000 /* Initial L1 address */ | 261 | #define CONFIG_SYS_INIT_RAM_ADDR 0xffd00000 /* Initial L1 address */ |
308 | #define CONFIG_SYS_INIT_RAM_END 0x00004000 /* End of used area in RAM */ | 262 | #define CONFIG_SYS_INIT_RAM_END 0x00004000 /* End of used area in RAM */ |
309 | 263 | ||
310 | #define CONFIG_SYS_GBL_DATA_SIZE 128 /* num bytes initial data */ | 264 | #define CONFIG_SYS_GBL_DATA_SIZE 128 /* num bytes initial data */ |
311 | #define CONFIG_SYS_GBL_DATA_OFFSET (CONFIG_SYS_INIT_RAM_END - CONFIG_SYS_GBL_DATA_SIZE) | 265 | #define CONFIG_SYS_GBL_DATA_OFFSET (CONFIG_SYS_INIT_RAM_END - CONFIG_SYS_GBL_DATA_SIZE) |
312 | #define CONFIG_SYS_INIT_SP_OFFSET CONFIG_SYS_GBL_DATA_OFFSET | 266 | #define CONFIG_SYS_INIT_SP_OFFSET CONFIG_SYS_GBL_DATA_OFFSET |
313 | 267 | ||
314 | #define CONFIG_SYS_MONITOR_LEN (256 * 1024) /* Reserve 256 kB for Mon */ | 268 | #define CONFIG_SYS_MONITOR_LEN (256 * 1024) /* Reserve 256 kB for Mon */ |
315 | #define CONFIG_SYS_MALLOC_LEN (1024 * 1024) /* Reserved for malloc */ | 269 | #define CONFIG_SYS_MALLOC_LEN (1024 * 1024) /* Reserved for malloc */ |
316 | 270 | ||
317 | #define CONFIG_SYS_NAND_BASE 0xffa00000 | 271 | #define CONFIG_SYS_NAND_BASE 0xffa00000 |
318 | #ifdef CONFIG_PHYS_64BIT | 272 | #ifdef CONFIG_PHYS_64BIT |
319 | #define CONFIG_SYS_NAND_BASE_PHYS 0xfffa00000ull | 273 | #define CONFIG_SYS_NAND_BASE_PHYS 0xfffa00000ull |
320 | #else | 274 | #else |
321 | #define CONFIG_SYS_NAND_BASE_PHYS CONFIG_SYS_NAND_BASE | 275 | #define CONFIG_SYS_NAND_BASE_PHYS CONFIG_SYS_NAND_BASE |
322 | #endif | 276 | #endif |
323 | #define CONFIG_SYS_NAND_BASE_LIST { CONFIG_SYS_NAND_BASE,\ | 277 | #define CONFIG_SYS_NAND_BASE_LIST { CONFIG_SYS_NAND_BASE,\ |
324 | CONFIG_SYS_NAND_BASE + 0x40000, \ | 278 | CONFIG_SYS_NAND_BASE + 0x40000, \ |
325 | CONFIG_SYS_NAND_BASE + 0x80000,\ | 279 | CONFIG_SYS_NAND_BASE + 0x80000,\ |
326 | CONFIG_SYS_NAND_BASE + 0xC0000} | 280 | CONFIG_SYS_NAND_BASE + 0xC0000} |
327 | #define CONFIG_SYS_MAX_NAND_DEVICE 4 | 281 | #define CONFIG_SYS_MAX_NAND_DEVICE 4 |
328 | #define CONFIG_MTD_NAND_VERIFY_WRITE | 282 | #define CONFIG_MTD_NAND_VERIFY_WRITE |
329 | #define CONFIG_CMD_NAND 1 | 283 | #define CONFIG_CMD_NAND 1 |
330 | #define CONFIG_NAND_FSL_ELBC 1 | 284 | #define CONFIG_NAND_FSL_ELBC 1 |
331 | #define CONFIG_SYS_NAND_BLOCK_SIZE (128 * 1024) | 285 | #define CONFIG_SYS_NAND_BLOCK_SIZE (128 * 1024) |
332 | 286 | ||
333 | /* NAND flash config */ | 287 | /* NAND flash config */ |
334 | #define CONFIG_NAND_BR_PRELIM (BR_PHYS_ADDR(CONFIG_SYS_NAND_BASE_PHYS) \ | 288 | #define CONFIG_NAND_BR_PRELIM (BR_PHYS_ADDR(CONFIG_SYS_NAND_BASE_PHYS) \ |
335 | | (2<<BR_DECC_SHIFT) /* Use HW ECC */ \ | 289 | | (2<<BR_DECC_SHIFT) /* Use HW ECC */ \ |
336 | | BR_PS_8 /* Port Size = 8bit */ \ | 290 | | BR_PS_8 /* Port Size = 8bit */ \ |
337 | | BR_MS_FCM /* MSEL = FCM */ \ | 291 | | BR_MS_FCM /* MSEL = FCM */ \ |
338 | | BR_V) /* valid */ | 292 | | BR_V) /* valid */ |
339 | #define CONFIG_NAND_OR_PRELIM (0xFFFC0000 /* length 256K */ \ | 293 | #define CONFIG_NAND_OR_PRELIM (0xFFFC0000 /* length 256K */ \ |
340 | | OR_FCM_PGS /* Large Page*/ \ | 294 | | OR_FCM_PGS /* Large Page*/ \ |
341 | | OR_FCM_CSCT \ | 295 | | OR_FCM_CSCT \ |
342 | | OR_FCM_CST \ | 296 | | OR_FCM_CST \ |
343 | | OR_FCM_CHT \ | 297 | | OR_FCM_CHT \ |
344 | | OR_FCM_SCY_1 \ | 298 | | OR_FCM_SCY_1 \ |
345 | | OR_FCM_TRLX \ | 299 | | OR_FCM_TRLX \ |
346 | | OR_FCM_EHTR) | 300 | | OR_FCM_EHTR) |
347 | 301 | ||
348 | #define CONFIG_SYS_BR0_PRELIM CONFIG_FLASH_BR_PRELIM /* NOR Base Address */ | 302 | #define CONFIG_SYS_BR0_PRELIM CONFIG_FLASH_BR_PRELIM /* NOR Base Address */ |
349 | #define CONFIG_SYS_OR0_PRELIM CONFIG_FLASH_OR_PRELIM /* NOR Options */ | 303 | #define CONFIG_SYS_OR0_PRELIM CONFIG_FLASH_OR_PRELIM /* NOR Options */ |
350 | #define CONFIG_SYS_BR2_PRELIM CONFIG_NAND_BR_PRELIM /* NAND Base Address */ | 304 | #define CONFIG_SYS_BR2_PRELIM CONFIG_NAND_BR_PRELIM /* NAND Base Address */ |
351 | #define CONFIG_SYS_OR2_PRELIM CONFIG_NAND_OR_PRELIM /* NAND Options */ | 305 | #define CONFIG_SYS_OR2_PRELIM CONFIG_NAND_OR_PRELIM /* NAND Options */ |
352 | 306 | ||
353 | #define CONFIG_SYS_BR4_PRELIM (BR_PHYS_ADDR((CONFIG_SYS_NAND_BASE_PHYS + 0x40000))\ | 307 | #define CONFIG_SYS_BR4_PRELIM (BR_PHYS_ADDR((CONFIG_SYS_NAND_BASE_PHYS + 0x40000))\ |
354 | | (2<<BR_DECC_SHIFT) /* Use HW ECC */ \ | 308 | | (2<<BR_DECC_SHIFT) /* Use HW ECC */ \ |
355 | | BR_PS_8 /* Port Size = 8bit */ \ | 309 | | BR_PS_8 /* Port Size = 8bit */ \ |
356 | | BR_MS_FCM /* MSEL = FCM */ \ | 310 | | BR_MS_FCM /* MSEL = FCM */ \ |
357 | | BR_V) /* valid */ | 311 | | BR_V) /* valid */ |
358 | #define CONFIG_SYS_OR4_PRELIM CONFIG_NAND_OR_PRELIM /* NAND Options */ | 312 | #define CONFIG_SYS_OR4_PRELIM CONFIG_NAND_OR_PRELIM /* NAND Options */ |
359 | #define CONFIG_SYS_BR5_PRELIM (BR_PHYS_ADDR((CONFIG_SYS_NAND_BASE_PHYS + 0x80000))\ | 313 | #define CONFIG_SYS_BR5_PRELIM (BR_PHYS_ADDR((CONFIG_SYS_NAND_BASE_PHYS + 0x80000))\ |
360 | | (2<<BR_DECC_SHIFT) /* Use HW ECC */ \ | 314 | | (2<<BR_DECC_SHIFT) /* Use HW ECC */ \ |
361 | | BR_PS_8 /* Port Size = 8bit */ \ | 315 | | BR_PS_8 /* Port Size = 8bit */ \ |
362 | | BR_MS_FCM /* MSEL = FCM */ \ | 316 | | BR_MS_FCM /* MSEL = FCM */ \ |
363 | | BR_V) /* valid */ | 317 | | BR_V) /* valid */ |
364 | #define CONFIG_SYS_OR5_PRELIM CONFIG_NAND_OR_PRELIM /* NAND Options */ | 318 | #define CONFIG_SYS_OR5_PRELIM CONFIG_NAND_OR_PRELIM /* NAND Options */ |
365 | 319 | ||
366 | #define CONFIG_SYS_BR6_PRELIM (BR_PHYS_ADDR((CONFIG_SYS_NAND_BASE_PHYS + 0xc0000))\ | 320 | #define CONFIG_SYS_BR6_PRELIM (BR_PHYS_ADDR((CONFIG_SYS_NAND_BASE_PHYS + 0xc0000))\ |
367 | | (2<<BR_DECC_SHIFT) /* Use HW ECC */ \ | 321 | | (2<<BR_DECC_SHIFT) /* Use HW ECC */ \ |
368 | | BR_PS_8 /* Port Size = 8bit */ \ | 322 | | BR_PS_8 /* Port Size = 8bit */ \ |
369 | | BR_MS_FCM /* MSEL = FCM */ \ | 323 | | BR_MS_FCM /* MSEL = FCM */ \ |
370 | | BR_V) /* valid */ | 324 | | BR_V) /* valid */ |
371 | #define CONFIG_SYS_OR6_PRELIM CONFIG_NAND_OR_PRELIM /* NAND Options */ | 325 | #define CONFIG_SYS_OR6_PRELIM CONFIG_NAND_OR_PRELIM /* NAND Options */ |
372 | 326 | ||
373 | /* Serial Port - controlled on board with jumper J8 | 327 | /* Serial Port - controlled on board with jumper J8 |
374 | * open - index 2 | 328 | * open - index 2 |
375 | * shorted - index 1 | 329 | * shorted - index 1 |
376 | */ | 330 | */ |
377 | #define CONFIG_CONS_INDEX 1 | 331 | #define CONFIG_CONS_INDEX 1 |
378 | #undef CONFIG_SERIAL_SOFTWARE_FIFO | 332 | #undef CONFIG_SERIAL_SOFTWARE_FIFO |
379 | #define CONFIG_SYS_NS16550 | 333 | #define CONFIG_SYS_NS16550 |
380 | #define CONFIG_SYS_NS16550_SERIAL | 334 | #define CONFIG_SYS_NS16550_SERIAL |
381 | #define CONFIG_SYS_NS16550_REG_SIZE 1 | 335 | #define CONFIG_SYS_NS16550_REG_SIZE 1 |
382 | #define CONFIG_SYS_NS16550_CLK get_bus_freq(0) | 336 | #define CONFIG_SYS_NS16550_CLK get_bus_freq(0) |
383 | 337 | ||
384 | #define CONFIG_SYS_BAUDRATE_TABLE \ | 338 | #define CONFIG_SYS_BAUDRATE_TABLE \ |
385 | {300, 600, 1200, 2400, 4800, 9600, 19200, 38400,115200} | 339 | {300, 600, 1200, 2400, 4800, 9600, 19200, 38400,115200} |
386 | 340 | ||
387 | #define CONFIG_SYS_NS16550_COM1 (CONFIG_SYS_CCSRBAR+0x4500) | 341 | #define CONFIG_SYS_NS16550_COM1 (CONFIG_SYS_CCSRBAR+0x4500) |
388 | #define CONFIG_SYS_NS16550_COM2 (CONFIG_SYS_CCSRBAR+0x4600) | 342 | #define CONFIG_SYS_NS16550_COM2 (CONFIG_SYS_CCSRBAR+0x4600) |
389 | 343 | ||
390 | /* Use the HUSH parser */ | 344 | /* Use the HUSH parser */ |
391 | #define CONFIG_SYS_HUSH_PARSER | 345 | #define CONFIG_SYS_HUSH_PARSER |
392 | #ifdef CONFIG_SYS_HUSH_PARSER | 346 | #ifdef CONFIG_SYS_HUSH_PARSER |
393 | #define CONFIG_SYS_PROMPT_HUSH_PS2 "> " | 347 | #define CONFIG_SYS_PROMPT_HUSH_PS2 "> " |
394 | #endif | 348 | #endif |
395 | 349 | ||
396 | /* | 350 | /* |
397 | * Pass open firmware flat tree | 351 | * Pass open firmware flat tree |
398 | */ | 352 | */ |
399 | #define CONFIG_OF_LIBFDT 1 | 353 | #define CONFIG_OF_LIBFDT 1 |
400 | #define CONFIG_OF_BOARD_SETUP 1 | 354 | #define CONFIG_OF_BOARD_SETUP 1 |
401 | #define CONFIG_OF_STDOUT_VIA_ALIAS 1 | 355 | #define CONFIG_OF_STDOUT_VIA_ALIAS 1 |
402 | 356 | ||
403 | /* I2C */ | 357 | /* I2C */ |
404 | #define CONFIG_FSL_I2C /* Use FSL common I2C driver */ | 358 | #define CONFIG_FSL_I2C /* Use FSL common I2C driver */ |
405 | #define CONFIG_HARD_I2C /* I2C with hardware support */ | 359 | #define CONFIG_HARD_I2C /* I2C with hardware support */ |
406 | #undef CONFIG_SOFT_I2C /* I2C bit-banged */ | 360 | #undef CONFIG_SOFT_I2C /* I2C bit-banged */ |
407 | #define CONFIG_I2C_MULTI_BUS | 361 | #define CONFIG_I2C_MULTI_BUS |
408 | #define CONFIG_SYS_I2C_SPEED 400000 /* I2C speed and slave address */ | 362 | #define CONFIG_SYS_I2C_SPEED 400000 /* I2C speed and slave address */ |
409 | #define CONFIG_SYS_I2C_EEPROM_ADDR 0x57 | 363 | #define CONFIG_SYS_I2C_EEPROM_ADDR 0x57 |
410 | #define CONFIG_SYS_I2C_SLAVE 0x7F | 364 | #define CONFIG_SYS_I2C_SLAVE 0x7F |
411 | #define CONFIG_SYS_I2C_NOPROBES {{0,0x29}}/* Don't probe these addrs */ | 365 | #define CONFIG_SYS_I2C_NOPROBES {{0,0x29}}/* Don't probe these addrs */ |
412 | #define CONFIG_SYS_I2C_OFFSET 0x3000 | 366 | #define CONFIG_SYS_I2C_OFFSET 0x3000 |
413 | #define CONFIG_SYS_I2C2_OFFSET 0x3100 | 367 | #define CONFIG_SYS_I2C2_OFFSET 0x3100 |
414 | 368 | ||
415 | /* | 369 | /* |
416 | * I2C2 EEPROM | 370 | * I2C2 EEPROM |
417 | */ | 371 | */ |
418 | #define CONFIG_ID_EEPROM | 372 | #define CONFIG_ID_EEPROM |
419 | #ifdef CONFIG_ID_EEPROM | 373 | #ifdef CONFIG_ID_EEPROM |
420 | #define CONFIG_SYS_I2C_EEPROM_NXID | 374 | #define CONFIG_SYS_I2C_EEPROM_NXID |
421 | #endif | 375 | #endif |
422 | #define CONFIG_SYS_I2C_EEPROM_ADDR 0x57 | 376 | #define CONFIG_SYS_I2C_EEPROM_ADDR 0x57 |
423 | #define CONFIG_SYS_I2C_EEPROM_ADDR_LEN 1 | 377 | #define CONFIG_SYS_I2C_EEPROM_ADDR_LEN 1 |
424 | #define CONFIG_SYS_EEPROM_BUS_NUM 0 | 378 | #define CONFIG_SYS_EEPROM_BUS_NUM 0 |
425 | 379 | ||
426 | /* | 380 | /* |
427 | * General PCI | 381 | * General PCI |
428 | * Memory space is mapped 1-1, but I/O space must start from 0. | 382 | * Memory space is mapped 1-1, but I/O space must start from 0. |
429 | */ | 383 | */ |
430 | 384 | ||
431 | /* controller 3, Slot 1, tgtid 3, Base address b000 */ | 385 | /* controller 3, Slot 1, tgtid 3, Base address b000 */ |
432 | #define CONFIG_SYS_PCIE3_MEM_VIRT 0x80000000 | 386 | #define CONFIG_SYS_PCIE3_MEM_VIRT 0x80000000 |
433 | #ifdef CONFIG_PHYS_64BIT | 387 | #ifdef CONFIG_PHYS_64BIT |
434 | #define CONFIG_SYS_PCIE3_MEM_BUS 0xe0000000 | 388 | #define CONFIG_SYS_PCIE3_MEM_BUS 0xe0000000 |
435 | #define CONFIG_SYS_PCIE3_MEM_PHYS 0xc00000000ull | 389 | #define CONFIG_SYS_PCIE3_MEM_PHYS 0xc00000000ull |
436 | #else | 390 | #else |
437 | #define CONFIG_SYS_PCIE3_MEM_BUS 0x80000000 | 391 | #define CONFIG_SYS_PCIE3_MEM_BUS 0x80000000 |
438 | #define CONFIG_SYS_PCIE3_MEM_PHYS 0x80000000 | 392 | #define CONFIG_SYS_PCIE3_MEM_PHYS 0x80000000 |
439 | #endif | 393 | #endif |
440 | #define CONFIG_SYS_PCIE3_MEM_SIZE 0x20000000 /* 512M */ | 394 | #define CONFIG_SYS_PCIE3_MEM_SIZE 0x20000000 /* 512M */ |
441 | #define CONFIG_SYS_PCIE3_IO_VIRT 0xffc00000 | 395 | #define CONFIG_SYS_PCIE3_IO_VIRT 0xffc00000 |
442 | #define CONFIG_SYS_PCIE3_IO_BUS 0x00000000 | 396 | #define CONFIG_SYS_PCIE3_IO_BUS 0x00000000 |
443 | #ifdef CONFIG_PHYS_64BIT | 397 | #ifdef CONFIG_PHYS_64BIT |
444 | #define CONFIG_SYS_PCIE3_IO_PHYS 0xfffc00000ull | 398 | #define CONFIG_SYS_PCIE3_IO_PHYS 0xfffc00000ull |
445 | #else | 399 | #else |
446 | #define CONFIG_SYS_PCIE3_IO_PHYS 0xffc00000 | 400 | #define CONFIG_SYS_PCIE3_IO_PHYS 0xffc00000 |
447 | #endif | 401 | #endif |
448 | #define CONFIG_SYS_PCIE3_IO_SIZE 0x00010000 /* 64k */ | 402 | #define CONFIG_SYS_PCIE3_IO_SIZE 0x00010000 /* 64k */ |
449 | 403 | ||
450 | /* controller 2, direct to uli, tgtid 2, Base address 9000 */ | 404 | /* controller 2, direct to uli, tgtid 2, Base address 9000 */ |
451 | #define CONFIG_SYS_PCIE2_MEM_VIRT 0xa0000000 | 405 | #define CONFIG_SYS_PCIE2_MEM_VIRT 0xa0000000 |
452 | #ifdef CONFIG_PHYS_64BIT | 406 | #ifdef CONFIG_PHYS_64BIT |
453 | #define CONFIG_SYS_PCIE2_MEM_BUS 0xe0000000 | 407 | #define CONFIG_SYS_PCIE2_MEM_BUS 0xe0000000 |
454 | #define CONFIG_SYS_PCIE2_MEM_PHYS 0xc20000000ull | 408 | #define CONFIG_SYS_PCIE2_MEM_PHYS 0xc20000000ull |
455 | #else | 409 | #else |
456 | #define CONFIG_SYS_PCIE2_MEM_BUS 0xa0000000 | 410 | #define CONFIG_SYS_PCIE2_MEM_BUS 0xa0000000 |
457 | #define CONFIG_SYS_PCIE2_MEM_PHYS 0xa0000000 | 411 | #define CONFIG_SYS_PCIE2_MEM_PHYS 0xa0000000 |
458 | #endif | 412 | #endif |
459 | #define CONFIG_SYS_PCIE2_MEM_SIZE 0x20000000 /* 512M */ | 413 | #define CONFIG_SYS_PCIE2_MEM_SIZE 0x20000000 /* 512M */ |
460 | #define CONFIG_SYS_PCIE2_IO_VIRT 0xffc10000 | 414 | #define CONFIG_SYS_PCIE2_IO_VIRT 0xffc10000 |
461 | #define CONFIG_SYS_PCIE2_IO_BUS 0x00000000 | 415 | #define CONFIG_SYS_PCIE2_IO_BUS 0x00000000 |
462 | #ifdef CONFIG_PHYS_64BIT | 416 | #ifdef CONFIG_PHYS_64BIT |
463 | #define CONFIG_SYS_PCIE2_IO_PHYS 0xfffc10000ull | 417 | #define CONFIG_SYS_PCIE2_IO_PHYS 0xfffc10000ull |
464 | #else | 418 | #else |
465 | #define CONFIG_SYS_PCIE2_IO_PHYS 0xffc10000 | 419 | #define CONFIG_SYS_PCIE2_IO_PHYS 0xffc10000 |
466 | #endif | 420 | #endif |
467 | #define CONFIG_SYS_PCIE2_IO_SIZE 0x00010000 /* 64k */ | 421 | #define CONFIG_SYS_PCIE2_IO_SIZE 0x00010000 /* 64k */ |
468 | 422 | ||
469 | /* controller 1, Slot 2, tgtid 1, Base address a000 */ | 423 | /* controller 1, Slot 2, tgtid 1, Base address a000 */ |
470 | #define CONFIG_SYS_PCIE1_MEM_VIRT 0xc0000000 | 424 | #define CONFIG_SYS_PCIE1_MEM_VIRT 0xc0000000 |
471 | #ifdef CONFIG_PHYS_64BIT | 425 | #ifdef CONFIG_PHYS_64BIT |
472 | #define CONFIG_SYS_PCIE1_MEM_BUS 0xe0000000 | 426 | #define CONFIG_SYS_PCIE1_MEM_BUS 0xe0000000 |
473 | #define CONFIG_SYS_PCIE1_MEM_PHYS 0xc40000000ull | 427 | #define CONFIG_SYS_PCIE1_MEM_PHYS 0xc40000000ull |
474 | #else | 428 | #else |
475 | #define CONFIG_SYS_PCIE1_MEM_BUS 0xc0000000 | 429 | #define CONFIG_SYS_PCIE1_MEM_BUS 0xc0000000 |
476 | #define CONFIG_SYS_PCIE1_MEM_PHYS 0xc0000000 | 430 | #define CONFIG_SYS_PCIE1_MEM_PHYS 0xc0000000 |
477 | #endif | 431 | #endif |
478 | #define CONFIG_SYS_PCIE1_MEM_SIZE 0x20000000 /* 512M */ | 432 | #define CONFIG_SYS_PCIE1_MEM_SIZE 0x20000000 /* 512M */ |
479 | #define CONFIG_SYS_PCIE1_IO_VIRT 0xffc20000 | 433 | #define CONFIG_SYS_PCIE1_IO_VIRT 0xffc20000 |
480 | #define CONFIG_SYS_PCIE1_IO_BUS 0x00000000 | 434 | #define CONFIG_SYS_PCIE1_IO_BUS 0x00000000 |
481 | #ifdef CONFIG_PHYS_64BIT | 435 | #ifdef CONFIG_PHYS_64BIT |
482 | #define CONFIG_SYS_PCIE1_IO_PHYS 0xfffc20000ull | 436 | #define CONFIG_SYS_PCIE1_IO_PHYS 0xfffc20000ull |
483 | #else | 437 | #else |
484 | #define CONFIG_SYS_PCIE1_IO_PHYS 0xffc20000 | 438 | #define CONFIG_SYS_PCIE1_IO_PHYS 0xffc20000 |
485 | #endif | 439 | #endif |
486 | #define CONFIG_SYS_PCIE1_IO_SIZE 0x00010000 /* 64k */ | 440 | #define CONFIG_SYS_PCIE1_IO_SIZE 0x00010000 /* 64k */ |
487 | 441 | ||
488 | #if defined(CONFIG_PCI) | 442 | #if defined(CONFIG_PCI) |
489 | 443 | ||
490 | /*PCIE video card used*/ | 444 | /*PCIE video card used*/ |
491 | #define VIDEO_IO_OFFSET CONFIG_SYS_PCIE1_IO_VIRT | 445 | #define VIDEO_IO_OFFSET CONFIG_SYS_PCIE1_IO_VIRT |
492 | 446 | ||
493 | /* video */ | 447 | /* video */ |
494 | #define CONFIG_VIDEO | 448 | #define CONFIG_VIDEO |
495 | 449 | ||
496 | #if defined(CONFIG_VIDEO) | 450 | #if defined(CONFIG_VIDEO) |
497 | #define CONFIG_BIOSEMU | 451 | #define CONFIG_BIOSEMU |
498 | #define CONFIG_CFB_CONSOLE | 452 | #define CONFIG_CFB_CONSOLE |
499 | #define CONFIG_VIDEO_SW_CURSOR | 453 | #define CONFIG_VIDEO_SW_CURSOR |
500 | #define CONFIG_VGA_AS_SINGLE_DEVICE | 454 | #define CONFIG_VGA_AS_SINGLE_DEVICE |
501 | #define CONFIG_ATI_RADEON_FB | 455 | #define CONFIG_ATI_RADEON_FB |
502 | #define CONFIG_VIDEO_LOGO | 456 | #define CONFIG_VIDEO_LOGO |
503 | /*#define CONFIG_CONSOLE_CURSOR*/ | 457 | /*#define CONFIG_CONSOLE_CURSOR*/ |
504 | #define CONFIG_SYS_ISA_IO_BASE_ADDRESS VIDEO_IO_OFFSET | 458 | #define CONFIG_SYS_ISA_IO_BASE_ADDRESS VIDEO_IO_OFFSET |
505 | #endif | 459 | #endif |
506 | 460 | ||
507 | #define CONFIG_NET_MULTI | 461 | #define CONFIG_NET_MULTI |
508 | #define CONFIG_PCI_PNP /* do pci plug-and-play */ | 462 | #define CONFIG_PCI_PNP /* do pci plug-and-play */ |
509 | 463 | ||
510 | #undef CONFIG_EEPRO100 | 464 | #undef CONFIG_EEPRO100 |
511 | #undef CONFIG_TULIP | 465 | #undef CONFIG_TULIP |
512 | #define CONFIG_RTL8139 | 466 | #define CONFIG_RTL8139 |
513 | 467 | ||
514 | #ifndef CONFIG_PCI_PNP | 468 | #ifndef CONFIG_PCI_PNP |
515 | #define PCI_ENET0_IOADDR CONFIG_SYS_PCIE3_IO_BUS | 469 | #define PCI_ENET0_IOADDR CONFIG_SYS_PCIE3_IO_BUS |
516 | #define PCI_ENET0_MEMADDR CONFIG_SYS_PCIE3_IO_BUS | 470 | #define PCI_ENET0_MEMADDR CONFIG_SYS_PCIE3_IO_BUS |
517 | #define PCI_IDSEL_NUMBER 0x11 /* IDSEL = AD11 */ | 471 | #define PCI_IDSEL_NUMBER 0x11 /* IDSEL = AD11 */ |
518 | #endif | 472 | #endif |
519 | 473 | ||
520 | #define CONFIG_PCI_SCAN_SHOW /* show pci devices on startup */ | 474 | #define CONFIG_PCI_SCAN_SHOW /* show pci devices on startup */ |
521 | #define CONFIG_DOS_PARTITION | 475 | #define CONFIG_DOS_PARTITION |
522 | #define CONFIG_SCSI_AHCI | 476 | #define CONFIG_SCSI_AHCI |
523 | 477 | ||
524 | #ifdef CONFIG_SCSI_AHCI | 478 | #ifdef CONFIG_SCSI_AHCI |
525 | #define CONFIG_SATA_ULI5288 | 479 | #define CONFIG_SATA_ULI5288 |
526 | #define CONFIG_SYS_SCSI_MAX_SCSI_ID 4 | 480 | #define CONFIG_SYS_SCSI_MAX_SCSI_ID 4 |
527 | #define CONFIG_SYS_SCSI_MAX_LUN 1 | 481 | #define CONFIG_SYS_SCSI_MAX_LUN 1 |
528 | #define CONFIG_SYS_SCSI_MAX_DEVICE (CONFIG_SYS_SCSI_MAX_SCSI_ID * CONFIG_SYS_SCSI_MAX_LUN) | 482 | #define CONFIG_SYS_SCSI_MAX_DEVICE (CONFIG_SYS_SCSI_MAX_SCSI_ID * CONFIG_SYS_SCSI_MAX_LUN) |
529 | #define CONFIG_SYS_SCSI_MAXDEVICE CONFIG_SYS_SCSI_MAX_DEVICE | 483 | #define CONFIG_SYS_SCSI_MAXDEVICE CONFIG_SYS_SCSI_MAX_DEVICE |
530 | #endif /* SCSI */ | 484 | #endif /* SCSI */ |
531 | 485 | ||
532 | #endif /* CONFIG_PCI */ | 486 | #endif /* CONFIG_PCI */ |
533 | 487 | ||
534 | 488 | ||
535 | #if defined(CONFIG_TSEC_ENET) | 489 | #if defined(CONFIG_TSEC_ENET) |
536 | 490 | ||
537 | #ifndef CONFIG_NET_MULTI | 491 | #ifndef CONFIG_NET_MULTI |
538 | #define CONFIG_NET_MULTI 1 | 492 | #define CONFIG_NET_MULTI 1 |
539 | #endif | 493 | #endif |
540 | 494 | ||
541 | #define CONFIG_MII 1 /* MII PHY management */ | 495 | #define CONFIG_MII 1 /* MII PHY management */ |
542 | #define CONFIG_MII_DEFAULT_TSEC 1 /* Allow unregistered phys */ | 496 | #define CONFIG_MII_DEFAULT_TSEC 1 /* Allow unregistered phys */ |
543 | #define CONFIG_TSEC1 1 | 497 | #define CONFIG_TSEC1 1 |
544 | #define CONFIG_TSEC1_NAME "eTSEC1" | 498 | #define CONFIG_TSEC1_NAME "eTSEC1" |
545 | #define CONFIG_TSEC2 1 | 499 | #define CONFIG_TSEC2 1 |
546 | #define CONFIG_TSEC2_NAME "eTSEC2" | 500 | #define CONFIG_TSEC2_NAME "eTSEC2" |
547 | #define CONFIG_TSEC3 1 | 501 | #define CONFIG_TSEC3 1 |
548 | #define CONFIG_TSEC3_NAME "eTSEC3" | 502 | #define CONFIG_TSEC3_NAME "eTSEC3" |
549 | 503 | ||
550 | #define CONFIG_PIXIS_SGMII_CMD | 504 | #define CONFIG_PIXIS_SGMII_CMD |
551 | #define CONFIG_FSL_SGMII_RISER 1 | 505 | #define CONFIG_FSL_SGMII_RISER 1 |
552 | #define SGMII_RISER_PHY_OFFSET 0x1b | 506 | #define SGMII_RISER_PHY_OFFSET 0x1b |
553 | 507 | ||
554 | #ifdef CONFIG_FSL_SGMII_RISER | 508 | #ifdef CONFIG_FSL_SGMII_RISER |
555 | #define CONFIG_SYS_TBIPA_VALUE 0x10 /* avoid conflict with eTSEC4 paddr */ | 509 | #define CONFIG_SYS_TBIPA_VALUE 0x10 /* avoid conflict with eTSEC4 paddr */ |
556 | #endif | 510 | #endif |
557 | 511 | ||
558 | #define TSEC1_PHY_ADDR 0 | 512 | #define TSEC1_PHY_ADDR 0 |
559 | #define TSEC2_PHY_ADDR 1 | 513 | #define TSEC2_PHY_ADDR 1 |
560 | #define TSEC3_PHY_ADDR 2 | 514 | #define TSEC3_PHY_ADDR 2 |
561 | 515 | ||
562 | #define TSEC1_FLAGS (TSEC_GIGABIT | TSEC_REDUCED) | 516 | #define TSEC1_FLAGS (TSEC_GIGABIT | TSEC_REDUCED) |
563 | #define TSEC2_FLAGS (TSEC_GIGABIT | TSEC_REDUCED) | 517 | #define TSEC2_FLAGS (TSEC_GIGABIT | TSEC_REDUCED) |
564 | #define TSEC3_FLAGS (TSEC_GIGABIT | TSEC_REDUCED) | 518 | #define TSEC3_FLAGS (TSEC_GIGABIT | TSEC_REDUCED) |
565 | 519 | ||
566 | #define TSEC1_PHYIDX 0 | 520 | #define TSEC1_PHYIDX 0 |
567 | #define TSEC2_PHYIDX 0 | 521 | #define TSEC2_PHYIDX 0 |
568 | #define TSEC3_PHYIDX 0 | 522 | #define TSEC3_PHYIDX 0 |
569 | 523 | ||
570 | #define CONFIG_ETHPRIME "eTSEC1" | 524 | #define CONFIG_ETHPRIME "eTSEC1" |
571 | 525 | ||
572 | #define CONFIG_PHY_GIGE 1 /* Include GbE speed/duplex detection */ | 526 | #define CONFIG_PHY_GIGE 1 /* Include GbE speed/duplex detection */ |
573 | #endif /* CONFIG_TSEC_ENET */ | 527 | #endif /* CONFIG_TSEC_ENET */ |
574 | 528 | ||
575 | /* | 529 | /* |
576 | * Environment | 530 | * Environment |
577 | */ | 531 | */ |
578 | #define CONFIG_ENV_IS_IN_FLASH 1 | 532 | #define CONFIG_ENV_IS_IN_FLASH 1 |
579 | #if CONFIG_SYS_MONITOR_BASE > 0xfff80000 | 533 | #if CONFIG_SYS_MONITOR_BASE > 0xfff80000 |
580 | #define CONFIG_ENV_ADDR 0xfff80000 | 534 | #define CONFIG_ENV_ADDR 0xfff80000 |
581 | #else | 535 | #else |
582 | #define CONFIG_ENV_ADDR (CONFIG_SYS_MONITOR_BASE - CONFIG_ENV_SECT_SIZE) | 536 | #define CONFIG_ENV_ADDR (CONFIG_SYS_MONITOR_BASE - CONFIG_ENV_SECT_SIZE) |
583 | #endif | 537 | #endif |
584 | #define CONFIG_ENV_SIZE 0x2000 | 538 | #define CONFIG_ENV_SIZE 0x2000 |
585 | #define CONFIG_ENV_SECT_SIZE 0x20000 /* 128K (one sector) */ | 539 | #define CONFIG_ENV_SECT_SIZE 0x20000 /* 128K (one sector) */ |
586 | 540 | ||
587 | #define CONFIG_LOADS_ECHO 1 /* echo on for serial download */ | 541 | #define CONFIG_LOADS_ECHO 1 /* echo on for serial download */ |
588 | #define CONFIG_SYS_LOADS_BAUD_CHANGE 1 /* allow baudrate change */ | 542 | #define CONFIG_SYS_LOADS_BAUD_CHANGE 1 /* allow baudrate change */ |
589 | 543 | ||
590 | /* | 544 | /* |
591 | * Command line configuration. | 545 | * Command line configuration. |
592 | */ | 546 | */ |
593 | #include <config_cmd_default.h> | 547 | #include <config_cmd_default.h> |
594 | 548 | ||
595 | #define CONFIG_CMD_IRQ | 549 | #define CONFIG_CMD_IRQ |
596 | #define CONFIG_CMD_PING | 550 | #define CONFIG_CMD_PING |
597 | #define CONFIG_CMD_I2C | 551 | #define CONFIG_CMD_I2C |
598 | #define CONFIG_CMD_MII | 552 | #define CONFIG_CMD_MII |
599 | #define CONFIG_CMD_ELF | 553 | #define CONFIG_CMD_ELF |
600 | #define CONFIG_CMD_IRQ | 554 | #define CONFIG_CMD_IRQ |
601 | #define CONFIG_CMD_SETEXPR | 555 | #define CONFIG_CMD_SETEXPR |
602 | 556 | ||
603 | #if defined(CONFIG_PCI) | 557 | #if defined(CONFIG_PCI) |
604 | #define CONFIG_CMD_PCI | 558 | #define CONFIG_CMD_PCI |
605 | #define CONFIG_CMD_NET | 559 | #define CONFIG_CMD_NET |
606 | #define CONFIG_CMD_SCSI | 560 | #define CONFIG_CMD_SCSI |
607 | #define CONFIG_CMD_EXT2 | 561 | #define CONFIG_CMD_EXT2 |
608 | #endif | 562 | #endif |
609 | 563 | ||
610 | /* | 564 | /* |
611 | * USB | 565 | * USB |
612 | */ | 566 | */ |
613 | #define CONFIG_CMD_USB | 567 | #define CONFIG_CMD_USB |
614 | #define CONFIG_USB_STORAGE | 568 | #define CONFIG_USB_STORAGE |
615 | #define CONFIG_USB_EHCI | 569 | #define CONFIG_USB_EHCI |
616 | #define CONFIG_USB_EHCI_FSL | 570 | #define CONFIG_USB_EHCI_FSL |
617 | #define CONFIG_EHCI_HCD_INIT_AFTER_RESET | 571 | #define CONFIG_EHCI_HCD_INIT_AFTER_RESET |
618 | 572 | ||
619 | #undef CONFIG_WATCHDOG /* watchdog disabled */ | 573 | #undef CONFIG_WATCHDOG /* watchdog disabled */ |
620 | 574 | ||
621 | /* | 575 | /* |
622 | * Miscellaneous configurable options | 576 | * Miscellaneous configurable options |
623 | */ | 577 | */ |
624 | #define CONFIG_SYS_LONGHELP /* undef to save memory */ | 578 | #define CONFIG_SYS_LONGHELP /* undef to save memory */ |
625 | #define CONFIG_CMDLINE_EDITING /* Command-line editing */ | 579 | #define CONFIG_CMDLINE_EDITING /* Command-line editing */ |
626 | #define CONFIG_SYS_LOAD_ADDR 0x2000000 /* default load address */ | 580 | #define CONFIG_SYS_LOAD_ADDR 0x2000000 /* default load address */ |
627 | #define CONFIG_SYS_PROMPT "=> " /* Monitor Command Prompt */ | 581 | #define CONFIG_SYS_PROMPT "=> " /* Monitor Command Prompt */ |
628 | #if defined(CONFIG_CMD_KGDB) | 582 | #if defined(CONFIG_CMD_KGDB) |
629 | #define CONFIG_SYS_CBSIZE 1024 /* Console I/O Buffer Size */ | 583 | #define CONFIG_SYS_CBSIZE 1024 /* Console I/O Buffer Size */ |
630 | #else | 584 | #else |
631 | #define CONFIG_SYS_CBSIZE 256 /* Console I/O Buffer Size */ | 585 | #define CONFIG_SYS_CBSIZE 256 /* Console I/O Buffer Size */ |
632 | #endif | 586 | #endif |
633 | #define CONFIG_SYS_PBSIZE (CONFIG_SYS_CBSIZE+sizeof(CONFIG_SYS_PROMPT)+16) /* Print Buffer Size */ | 587 | #define CONFIG_SYS_PBSIZE (CONFIG_SYS_CBSIZE+sizeof(CONFIG_SYS_PROMPT)+16) /* Print Buffer Size */ |
634 | #define CONFIG_SYS_MAXARGS 16 /* max number of command args */ | 588 | #define CONFIG_SYS_MAXARGS 16 /* max number of command args */ |
635 | #define CONFIG_SYS_BARGSIZE CONFIG_SYS_CBSIZE /* Boot Argument Buffer Size */ | 589 | #define CONFIG_SYS_BARGSIZE CONFIG_SYS_CBSIZE /* Boot Argument Buffer Size */ |
636 | #define CONFIG_SYS_HZ 1000 /* decrementer freq: 1ms ticks */ | 590 | #define CONFIG_SYS_HZ 1000 /* decrementer freq: 1ms ticks */ |
637 | 591 | ||
638 | /* | 592 | /* |
639 | * For booting Linux, the board info and command line data | 593 | * For booting Linux, the board info and command line data |
640 | * have to be in the first 16 MB of memory, since this is | 594 | * have to be in the first 16 MB of memory, since this is |
641 | * the maximum mapped by the Linux kernel during initialization. | 595 | * the maximum mapped by the Linux kernel during initialization. |
642 | */ | 596 | */ |
643 | #define CONFIG_SYS_BOOTMAPSZ (16 << 20) /* Initial Memory map for Linux*/ | 597 | #define CONFIG_SYS_BOOTMAPSZ (16 << 20) /* Initial Memory map for Linux*/ |
644 | 598 | ||
645 | /* | 599 | /* |
646 | * Internal Definitions | 600 | * Internal Definitions |
647 | * | 601 | * |
648 | * Boot Flags | 602 | * Boot Flags |
649 | */ | 603 | */ |
650 | #define BOOTFLAG_COLD 0x01 /* Normal Power-On: Boot from FLASH */ | 604 | #define BOOTFLAG_COLD 0x01 /* Normal Power-On: Boot from FLASH */ |
651 | #define BOOTFLAG_WARM 0x02 /* Software reboot */ | 605 | #define BOOTFLAG_WARM 0x02 /* Software reboot */ |
652 | 606 | ||
653 | #if defined(CONFIG_CMD_KGDB) | 607 | #if defined(CONFIG_CMD_KGDB) |
654 | #define CONFIG_KGDB_BAUDRATE 230400 /* speed to run kgdb serial port */ | 608 | #define CONFIG_KGDB_BAUDRATE 230400 /* speed to run kgdb serial port */ |
655 | #define CONFIG_KGDB_SER_INDEX 2 /* which serial port to use */ | 609 | #define CONFIG_KGDB_SER_INDEX 2 /* which serial port to use */ |
656 | #endif | 610 | #endif |
657 | 611 | ||
658 | /* | 612 | /* |
659 | * Environment Configuration | 613 | * Environment Configuration |
660 | */ | 614 | */ |
661 | 615 | ||
662 | /* The mac addresses for all ethernet interface */ | 616 | /* The mac addresses for all ethernet interface */ |
663 | #if defined(CONFIG_TSEC_ENET) | 617 | #if defined(CONFIG_TSEC_ENET) |
664 | #define CONFIG_HAS_ETH0 | 618 | #define CONFIG_HAS_ETH0 |
665 | #define CONFIG_ETHADDR 00:E0:0C:02:00:FD | 619 | #define CONFIG_ETHADDR 00:E0:0C:02:00:FD |
666 | #define CONFIG_HAS_ETH1 | 620 | #define CONFIG_HAS_ETH1 |
667 | #define CONFIG_ETH1ADDR 00:E0:0C:02:01:FD | 621 | #define CONFIG_ETH1ADDR 00:E0:0C:02:01:FD |
668 | #define CONFIG_HAS_ETH2 | 622 | #define CONFIG_HAS_ETH2 |
669 | #define CONFIG_ETH2ADDR 00:E0:0C:02:02:FD | 623 | #define CONFIG_ETH2ADDR 00:E0:0C:02:02:FD |
670 | #define CONFIG_HAS_ETH3 | 624 | #define CONFIG_HAS_ETH3 |
671 | #define CONFIG_ETH3ADDR 00:E0:0C:02:03:FD | 625 | #define CONFIG_ETH3ADDR 00:E0:0C:02:03:FD |
672 | #endif | 626 | #endif |
673 | 627 | ||
674 | #define CONFIG_IPADDR 192.168.1.254 | 628 | #define CONFIG_IPADDR 192.168.1.254 |
675 | 629 | ||
676 | #define CONFIG_HOSTNAME unknown | 630 | #define CONFIG_HOSTNAME unknown |
677 | #define CONFIG_ROOTPATH /opt/nfsroot | 631 | #define CONFIG_ROOTPATH /opt/nfsroot |
678 | #define CONFIG_BOOTFILE uImage | 632 | #define CONFIG_BOOTFILE uImage |
679 | #define CONFIG_UBOOTPATH u-boot.bin /* U-Boot image on TFTP server */ | 633 | #define CONFIG_UBOOTPATH u-boot.bin /* U-Boot image on TFTP server */ |
680 | 634 | ||
681 | #define CONFIG_SERVERIP 192.168.1.1 | 635 | #define CONFIG_SERVERIP 192.168.1.1 |
682 | #define CONFIG_GATEWAYIP 192.168.1.1 | 636 | #define CONFIG_GATEWAYIP 192.168.1.1 |
683 | #define CONFIG_NETMASK 255.255.255.0 | 637 | #define CONFIG_NETMASK 255.255.255.0 |
684 | 638 | ||
685 | /* default location for tftp and bootm */ | 639 | /* default location for tftp and bootm */ |
686 | #define CONFIG_LOADADDR 1000000 | 640 | #define CONFIG_LOADADDR 1000000 |
687 | 641 | ||
688 | #define CONFIG_BOOTDELAY 10 /* -1 disables auto-boot */ | 642 | #define CONFIG_BOOTDELAY 10 /* -1 disables auto-boot */ |
689 | #undef CONFIG_BOOTARGS /* the boot command will set bootargs */ | 643 | #undef CONFIG_BOOTARGS /* the boot command will set bootargs */ |
690 | 644 | ||
691 | #define CONFIG_BAUDRATE 115200 | 645 | #define CONFIG_BAUDRATE 115200 |
692 | 646 | ||
693 | #define CONFIG_EXTRA_ENV_SETTINGS \ | 647 | #define CONFIG_EXTRA_ENV_SETTINGS \ |
694 | "perf_mode=stable\0" \ | 648 | "perf_mode=stable\0" \ |
695 | "memctl_intlv_ctl=2\0" \ | 649 | "memctl_intlv_ctl=2\0" \ |
696 | "netdev=eth0\0" \ | 650 | "netdev=eth0\0" \ |
697 | "uboot=" MK_STR(CONFIG_UBOOTPATH) "\0" \ | 651 | "uboot=" MK_STR(CONFIG_UBOOTPATH) "\0" \ |
698 | "tftpflash=tftpboot $loadaddr $uboot; " \ | 652 | "tftpflash=tftpboot $loadaddr $uboot; " \ |
699 | "protect off " MK_STR(TEXT_BASE) " +$filesize; " \ | 653 | "protect off " MK_STR(TEXT_BASE) " +$filesize; " \ |
700 | "erase " MK_STR(TEXT_BASE) " +$filesize; " \ | 654 | "erase " MK_STR(TEXT_BASE) " +$filesize; " \ |
701 | "cp.b $loadaddr " MK_STR(TEXT_BASE) " $filesize; " \ | 655 | "cp.b $loadaddr " MK_STR(TEXT_BASE) " $filesize; " \ |
702 | "protect on " MK_STR(TEXT_BASE) " +$filesize; " \ | 656 | "protect on " MK_STR(TEXT_BASE) " +$filesize; " \ |
703 | "cmp.b $loadaddr " MK_STR(TEXT_BASE) " $filesize\0" \ | 657 | "cmp.b $loadaddr " MK_STR(TEXT_BASE) " $filesize\0" \ |
704 | "consoledev=ttyS0\0" \ | 658 | "consoledev=ttyS0\0" \ |
705 | "ramdiskaddr=2000000\0" \ | 659 | "ramdiskaddr=2000000\0" \ |
706 | "ramdiskfile=p2020ds/ramdisk.uboot\0" \ | 660 | "ramdiskfile=p2020ds/ramdisk.uboot\0" \ |
707 | "fdtaddr=c00000\0" \ | 661 | "fdtaddr=c00000\0" \ |
708 | "fdtfile=p2020ds/p2020ds.dtb\0" \ | 662 | "fdtfile=p2020ds/p2020ds.dtb\0" \ |
709 | "bdev=sda3\0" | 663 | "bdev=sda3\0" |
710 | 664 | ||
711 | #define CONFIG_HDBOOT \ | 665 | #define CONFIG_HDBOOT \ |
712 | "setenv bootargs root=/dev/$bdev rw " \ | 666 | "setenv bootargs root=/dev/$bdev rw " \ |
713 | "console=$consoledev,$baudrate $othbootargs;" \ | 667 | "console=$consoledev,$baudrate $othbootargs;" \ |
714 | "tftp $loadaddr $bootfile;" \ | 668 | "tftp $loadaddr $bootfile;" \ |
715 | "tftp $fdtaddr $fdtfile;" \ | 669 | "tftp $fdtaddr $fdtfile;" \ |
716 | "bootm $loadaddr - $fdtaddr" | 670 | "bootm $loadaddr - $fdtaddr" |
717 | 671 | ||
718 | #define CONFIG_NFSBOOTCOMMAND \ | 672 | #define CONFIG_NFSBOOTCOMMAND \ |
719 | "setenv bootargs root=/dev/nfs rw " \ | 673 | "setenv bootargs root=/dev/nfs rw " \ |
720 | "nfsroot=$serverip:$rootpath " \ | 674 | "nfsroot=$serverip:$rootpath " \ |
721 | "ip=$ipaddr:$serverip:$gatewayip:$netmask:$hostname:$netdev:off " \ | 675 | "ip=$ipaddr:$serverip:$gatewayip:$netmask:$hostname:$netdev:off " \ |
722 | "console=$consoledev,$baudrate $othbootargs;" \ | 676 | "console=$consoledev,$baudrate $othbootargs;" \ |
723 | "tftp $loadaddr $bootfile;" \ | 677 | "tftp $loadaddr $bootfile;" \ |
724 | "tftp $fdtaddr $fdtfile;" \ | 678 | "tftp $fdtaddr $fdtfile;" \ |
725 | "bootm $loadaddr - $fdtaddr" | 679 | "bootm $loadaddr - $fdtaddr" |
726 | 680 | ||
727 | #define CONFIG_RAMBOOTCOMMAND \ | 681 | #define CONFIG_RAMBOOTCOMMAND \ |
728 | "setenv bootargs root=/dev/ram rw " \ | 682 | "setenv bootargs root=/dev/ram rw " \ |
729 | "console=$consoledev,$baudrate $othbootargs;" \ | 683 | "console=$consoledev,$baudrate $othbootargs;" \ |
730 | "tftp $ramdiskaddr $ramdiskfile;" \ | 684 | "tftp $ramdiskaddr $ramdiskfile;" \ |
731 | "tftp $loadaddr $bootfile;" \ | 685 | "tftp $loadaddr $bootfile;" \ |
732 | "tftp $fdtaddr $fdtfile;" \ | 686 | "tftp $fdtaddr $fdtfile;" \ |
733 | "bootm $loadaddr $ramdiskaddr $fdtaddr" | 687 | "bootm $loadaddr $ramdiskaddr $fdtaddr" |
734 | 688 | ||
735 | #define CONFIG_BOOTCOMMAND CONFIG_HDBOOT | 689 | #define CONFIG_BOOTCOMMAND CONFIG_HDBOOT |
736 | 690 |