diff options
| author | York Sun <yorksun@freescale.com> | 2013-06-27 10:48:29 -0700 | 
|---|---|---|
| committer | York Sun <yorksun@freescale.com> | 2013-08-09 12:41:39 -0700 | 
| commit | 1cb19fbb31dc7fd2c3a15667c60c6296d392f96c (patch) | |
| tree | d72f498fe60e926d5884d34180ee51af45ee7c17 | |
| parent | f165bc35285460f9739a234de379a535519f39e6 (diff) | |
| download | olio-uboot-2014.01-1cb19fbb31dc7fd2c3a15667c60c6296d392f96c.tar.xz olio-uboot-2014.01-1cb19fbb31dc7fd2c3a15667c60c6296d392f96c.zip | |
powerpc/T4240EMU: Add T4240EMU target
Add emulator support for T4240. Emulator has limited peripherals and
interfaces. Difference between emulator and T4240QDS includes:
	ECC for DDR is disabled due the procedure to load images
	No board FPGA (QIXIS)
	NOR flash has 32-bit port for higher loading speed
	IFC and I2C timing don't really matter, so set them fast
	No ethernet
Signed-off-by: York Sun <yorksun@freescale.com>
| -rw-r--r-- | MAINTAINERS | 4 | ||||
| -rw-r--r-- | board/freescale/t4qds/Makefile | 3 | ||||
| -rw-r--r-- | board/freescale/t4qds/ddr.c | 73 | ||||
| -rw-r--r-- | board/freescale/t4qds/ddr.h | 122 | ||||
| -rw-r--r-- | board/freescale/t4qds/law.c | 2 | ||||
| -rw-r--r-- | board/freescale/t4qds/t4240emu.c | 96 | ||||
| -rw-r--r-- | board/freescale/t4qds/t4240qds.c (renamed from board/freescale/t4qds/t4qds.c) | 81 | ||||
| -rw-r--r-- | board/freescale/t4qds/tlb.c | 2 | ||||
| -rw-r--r-- | boards.cfg | 1 | ||||
| -rw-r--r-- | include/configs/T4240EMU.h | 185 | ||||
| -rw-r--r-- | include/configs/T4240QDS.h | 540 | ||||
| -rw-r--r-- | include/configs/t4qds.h | 506 | 
12 files changed, 1006 insertions, 609 deletions
| diff --git a/MAINTAINERS b/MAINTAINERS index 081cf968e..2798f1379 100644 --- a/MAINTAINERS +++ b/MAINTAINERS @@ -472,6 +472,10 @@ Ira W. Snyder <iws@ovro.caltech.edu>  	P2020COME	P2020 +York Sun <yorksun@freescale.com> + +	T4240EMU	T4240 +  Timur Tabi <timur@freescale.com>  	MPC8349E-mITX	MPC8349 diff --git a/board/freescale/t4qds/Makefile b/board/freescale/t4qds/Makefile index 85df06690..a2167b377 100644 --- a/board/freescale/t4qds/Makefile +++ b/board/freescale/t4qds/Makefile @@ -8,7 +8,8 @@ include $(TOPDIR)/config.mk  LIB	= $(obj)lib$(BOARD).o -COBJS-y	+= $(BOARD).o +COBJS-$(CONFIG_T4240QDS) += t4240qds.o +COBJS-$(CONFIG_T4240EMU) += t4240emu.o  COBJS-y	+= ddr.o  COBJS-$(CONFIG_T4240QDS)+= eth.o  COBJS-$(CONFIG_PCI)	+= pci.o diff --git a/board/freescale/t4qds/ddr.c b/board/freescale/t4qds/ddr.c index 058d62511..26ac2a54d 100644 --- a/board/freescale/t4qds/ddr.c +++ b/board/freescale/t4qds/ddr.c @@ -13,81 +13,10 @@  #include <asm/fsl_ddr_sdram.h>  #include <asm/fsl_ddr_dimm_params.h>  #include <asm/fsl_law.h> +#include "ddr.h"  DECLARE_GLOBAL_DATA_PTR; -struct board_specific_parameters { -	u32 n_ranks; -	u32 datarate_mhz_high; -	u32 rank_gb; -	u32 clk_adjust; -	u32 wrlvl_start; -	u32 wrlvl_ctl_2; -	u32 wrlvl_ctl_3; -	u32 cpo; -	u32 write_data_delay; -	u32 force_2T; -}; - -/* - * This table contains all valid speeds we want to override with board - * specific parameters. datarate_mhz_high values need to be in ascending order - * for each n_ranks group. - */ -static const struct board_specific_parameters udimm0[] = { -	/* -	 * memory controller 0 -	 *   num|  hi| rank|  clk| wrlvl |   wrlvl   |  wrlvl | cpo  |wrdata|2T -	 * ranks| mhz| GB  |adjst| start |   ctl2    |  ctl3  |      |delay | -	 */ -	{2,  1350, 4, 4,     8, 0x0809090b, 0x0c0c0d0a,   0xff,    2,  0}, -	{2,  1350, 0, 5,     7, 0x0709090b, 0x0c0c0d09,   0xff,    2,  0}, -	{2,  1666, 4, 4,     8, 0x080a0a0d, 0x0d10100b,   0xff,    2,  0}, -	{2,  1666, 0, 5,     7, 0x080a0a0c, 0x0d0d0e0a,   0xff,    2,  0}, -	{2,  1900, 0, 4,     8, 0x090a0b0e, 0x0f11120c,   0xff,    2,  0}, -	{2,  2140, 0, 4,     8, 0x090a0b0e, 0x0f11120c,   0xff,    2,  0}, -	{1,  1350, 0, 5,     8, 0x0809090b, 0x0c0c0d0a,   0xff,    2,  0}, -	{1,  1700, 0, 5,     8, 0x080a0a0c, 0x0c0d0e0a,   0xff,    2,  0}, -	{1,  1900, 0, 4,     8, 0x080a0a0c, 0x0e0e0f0a,   0xff,    2,  0}, -	{1,  2140, 0, 4,     8, 0x090a0b0c, 0x0e0f100b,   0xff,    2,  0}, -	{} -}; - -/* - * The three slots have slightly different timing. The center values are good - * for all slots. We use identical speed tables for them. In future use, if - * DIMMs require separated tables, make more entries as needed. - */ -static const struct board_specific_parameters *udimms[] = { -	udimm0, -}; - -static const struct board_specific_parameters rdimm0[] = { -	/* -	 * memory controller 0 -	 *   num|  hi| rank|  clk| wrlvl |   wrlvl   |  wrlvl | cpo  |wrdata|2T -	 * ranks| mhz| GB  |adjst| start |   ctl2    |  ctl3  |      |delay | -	 */ -	{4,  1350, 0, 5,     9, 0x08070605, 0x07080805,   0xff,    2,  0}, -	{4,  1666, 0, 5,     8, 0x08070605, 0x07080805,   0xff,    2,  0}, -	{4,  2140, 0, 5,     8, 0x08070605, 0x07081805,   0xff,    2,  0}, -	{2,  1350, 0, 5,     7, 0x0809090b, 0x0c0c0d09,   0xff,    2,  0}, -	{2,  1666, 0, 5,     8, 0x080a0a0c, 0x0c0d0e0a,   0xff,    2,  0}, -	{2,  2140, 0, 5,     8, 0x090a0b0c, 0x0e0f100b,   0xff,    2,  0}, -	{1,  1350, 0, 5,     8, 0x0809090b, 0x0c0c0d0a,   0xff,    2,  0}, -	{1,  1700, 0, 5,     8, 0x080a0a0c, 0x0c0d0e0a,   0xff,    2,  0}, -	{1,  1900, 0, 4,     8, 0x080a0a0c, 0x0e0e0f0a,   0xff,    2,  0}, -	{1,  2140, 0, 4,     8, 0x090a0b0c, 0x0e0f100b,   0xff,    2,  0}, -	{} -}; - -/* - * The three slots have slightly different timing. See comments above. - */ -static const struct board_specific_parameters *rdimms[] = { -	rdimm0, -}; -  void fsl_ddr_board_options(memctl_options_t *popts,  				dimm_params_t *pdimm,  				unsigned int ctrl_num) diff --git a/board/freescale/t4qds/ddr.h b/board/freescale/t4qds/ddr.h new file mode 100644 index 000000000..cde078593 --- /dev/null +++ b/board/freescale/t4qds/ddr.h @@ -0,0 +1,122 @@ +/* + * Copyright 2013 Freescale Semiconductor, Inc. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License as + * published by the Free Software Foundation; either version 2 of + * the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, + * MA 02111-1307 USA + */ + +#ifndef __DDR_H__ +#define __DDR_H__ +struct board_specific_parameters { +	u32 n_ranks; +	u32 datarate_mhz_high; +	u32 rank_gb; +	u32 clk_adjust; +	u32 wrlvl_start; +	u32 wrlvl_ctl_2; +	u32 wrlvl_ctl_3; +	u32 cpo; +	u32 write_data_delay; +	u32 force_2T; +}; + +/* + * These tables contain all valid speeds we want to override with board + * specific parameters. datarate_mhz_high values need to be in ascending order + * for each n_ranks group. + */ + +#ifdef CONFIG_T4240QDS +static const struct board_specific_parameters udimm0[] = { +	/* +	 * memory controller 0 +	 *   num|  hi| rank|  clk| wrlvl |   wrlvl   |  wrlvl | cpo  |wrdata|2T +	 * ranks| mhz| GB  |adjst| start |   ctl2    |  ctl3  |      |delay | +	 */ +	{2,  1350, 4, 4,     8, 0x0809090b, 0x0c0c0d0a,   0xff,    2,  0}, +	{2,  1350, 0, 5,     7, 0x0709090b, 0x0c0c0d09,   0xff,    2,  0}, +	{2,  1666, 4, 4,     8, 0x080a0a0d, 0x0d10100b,   0xff,    2,  0}, +	{2,  1666, 0, 5,     7, 0x080a0a0c, 0x0d0d0e0a,   0xff,    2,  0}, +	{2,  1900, 0, 4,     8, 0x090a0b0e, 0x0f11120c,   0xff,    2,  0}, +	{2,  2140, 0, 4,     8, 0x090a0b0e, 0x0f11120c,   0xff,    2,  0}, +	{1,  1350, 0, 5,     8, 0x0809090b, 0x0c0c0d0a,   0xff,    2,  0}, +	{1,  1700, 0, 5,     8, 0x080a0a0c, 0x0c0d0e0a,   0xff,    2,  0}, +	{1,  1900, 0, 4,     8, 0x080a0a0c, 0x0e0e0f0a,   0xff,    2,  0}, +	{1,  2140, 0, 4,     8, 0x090a0b0c, 0x0e0f100b,   0xff,    2,  0}, +	{} +}; + +static const struct board_specific_parameters rdimm0[] = { +	/* +	 * memory controller 0 +	 *   num|  hi| rank|  clk| wrlvl |   wrlvl   |  wrlvl | cpo  |wrdata|2T +	 * ranks| mhz| GB  |adjst| start |   ctl2    |  ctl3  |      |delay | +	 */ +	{4,  1350, 0, 5,     9, 0x08070605, 0x07080805,   0xff,    2,  0}, +	{4,  1666, 0, 5,     8, 0x08070605, 0x07080805,   0xff,    2,  0}, +	{4,  2140, 0, 5,     8, 0x08070605, 0x07081805,   0xff,    2,  0}, +	{2,  1350, 0, 5,     7, 0x0809090b, 0x0c0c0d09,   0xff,    2,  0}, +	{2,  1666, 0, 5,     8, 0x080a0a0c, 0x0c0d0e0a,   0xff,    2,  0}, +	{2,  2140, 0, 5,     8, 0x090a0b0c, 0x0e0f100b,   0xff,    2,  0}, +	{1,  1350, 0, 5,     8, 0x0809090b, 0x0c0c0d0a,   0xff,    2,  0}, +	{1,  1700, 0, 5,     8, 0x080a0a0c, 0x0c0d0e0a,   0xff,    2,  0}, +	{1,  1900, 0, 4,     8, 0x080a0a0c, 0x0e0e0f0a,   0xff,    2,  0}, +	{1,  2140, 0, 4,     8, 0x090a0b0c, 0x0e0f100b,   0xff,    2,  0}, +	{} +}; + +#else	/* CONFIG_T4240EMU */ +static const struct board_specific_parameters udimm0[] = { +	/* +	 * memory controller 0 +	 *   num|  hi| rank|  clk| wrlvl |   wrlvl   |  wrlvl | cpo  |wrdata|2T +	 * ranks| mhz| GB  |adjst| start |   ctl2    |  ctl3  |      |delay | +	 */ +	{2,  2140, 0, 4,     8, 0x0, 0x0,   0xff,    2,  0}, +	{1,  2140, 0, 4,     8, 0x0, 0x0,   0xff,    2,  0}, +	{} +}; + +static const struct board_specific_parameters rdimm0[] = { +	/* +	 * memory controller 0 +	 *   num|  hi| rank|  clk| wrlvl |   wrlvl   |  wrlvl | cpo  |wrdata|2T +	 * ranks| mhz| GB  |adjst| start |   ctl2    |  ctl3  |      |delay | +	 */ +	{4,  2140, 0, 5,     8, 0x0, 0x0,   0xff,    2,  0}, +	{2,  2140, 0, 5,     8, 0x0, 0x0,   0xff,    2,  0}, +	{1,  2140, 0, 4,     8, 0x0, 0x0,   0xff,    2,  0}, +	{} +}; +#endif	/* CONFIG_T4240EMU */ + +/* + * The three slots have slightly different timing. The center values are good + * for all slots. We use identical speed tables for them. In future use, if + * DIMMs require separated tables, make more entries as needed. + */ +static const struct board_specific_parameters *udimms[] = { +	udimm0, +}; + +/* + * The three slots have slightly different timing. See comments above. + */ +static const struct board_specific_parameters *rdimms[] = { +	rdimm0, +}; + + +#endif diff --git a/board/freescale/t4qds/law.c b/board/freescale/t4qds/law.c index 63549df2a..367783bfe 100644 --- a/board/freescale/t4qds/law.c +++ b/board/freescale/t4qds/law.c @@ -19,7 +19,9 @@ struct law_entry law_table[] = {  #ifdef CONFIG_SYS_QMAN_MEM_PHYS  	SET_LAW(CONFIG_SYS_QMAN_MEM_PHYS, LAW_SIZE_32M, LAW_TRGT_IF_QMAN),  #endif +#ifdef QIXIS_BASE_PHYS  	SET_LAW(QIXIS_BASE_PHYS, LAW_SIZE_4K, LAW_TRGT_IF_IFC), +#endif  #ifdef CONFIG_SYS_DCSRBAR_PHYS  	/* Limit DCSR to 32M to access NPC Trace Buffer */  	SET_LAW(CONFIG_SYS_DCSRBAR_PHYS, LAW_SIZE_32M, LAW_TRGT_IF_DCSR), diff --git a/board/freescale/t4qds/t4240emu.c b/board/freescale/t4qds/t4240emu.c new file mode 100644 index 000000000..589a2ae35 --- /dev/null +++ b/board/freescale/t4qds/t4240emu.c @@ -0,0 +1,96 @@ +/* + * Copyright 2013 Freescale Semiconductor, Inc. + * + * See file CREDITS for list of people who contributed to this + * project. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License as + * published by the Free Software Foundation; either version 2 of + * the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, + * MA 02111-1307 USA + */ + +#include <common.h> +#include <command.h> +#include <i2c.h> +#include <netdev.h> +#include <linux/compiler.h> +#include <asm/mmu.h> +#include <asm/processor.h> +#include <asm/cache.h> +#include <asm/immap_85xx.h> +#include <asm/fsl_law.h> +#include <asm/fsl_serdes.h> +#include <asm/fsl_portals.h> +#include <asm/fsl_liodn.h> + +DECLARE_GLOBAL_DATA_PTR; + +int checkboard(void) +{ +	struct cpu_type *cpu = gd->arch.cpu; + +	printf("Board: %sEMU\n", cpu->name); + +	return 0; +} + +int board_early_init_r(void) +{ +	const unsigned int flashbase = CONFIG_SYS_FLASH_BASE; +	const u8 flash_esel = find_tlb_idx((void *)flashbase, 1); + +	/* +	 * Remap Boot flash + PROMJET region to caching-inhibited +	 * so that flash can be erased properly. +	 */ + +	/* Flush d-cache and invalidate i-cache of any FLASH data */ +	flush_dcache(); +	invalidate_icache(); + +	/* invalidate existing TLB entry for flash */ +	disable_tlb(flash_esel); + +	set_tlb(1, flashbase, CONFIG_SYS_FLASH_BASE_PHYS, +		MAS3_SW|MAS3_SR, MAS2_I|MAS2_G, +		0, flash_esel, BOOKE_PAGESZ_256M, 1); + +	set_liodns(); +#ifdef CONFIG_SYS_DPAA_QBMAN +	setup_portals(); +#endif + +	return 0; +} + +int misc_init_r(void) +{ +	return 0; +} + +void ft_board_setup(void *blob, bd_t *bd) +{ +	phys_addr_t base; +	phys_size_t size; + +	ft_cpu_setup(blob, bd); + +	base = getenv_bootm_low(); +	size = getenv_bootm_size(); + +	fdt_fixup_memory(blob, (u64)base, (u64)size); + +	fdt_fixup_liodn(blob); +	fdt_fixup_dr_usb(blob, bd); +} diff --git a/board/freescale/t4qds/t4qds.c b/board/freescale/t4qds/t4240qds.c index fe2a9982a..89e56a312 100644 --- a/board/freescale/t4qds/t4qds.c +++ b/board/freescale/t4qds/t4240qds.c @@ -1,7 +1,23 @@  /*   * Copyright 2009-2012 Freescale Semiconductor, Inc.   * - * SPDX-License-Identifier:	GPL-2.0+ + * See file CREDITS for list of people who contributed to this + * project. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License as + * published by the Free Software Foundation; either version 2 of + * the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, + * MA 02111-1307 USA   */  #include <common.h> @@ -47,7 +63,7 @@ int checkboard(void)  	printf("Board: %sQDS, ", cpu->name);  	printf("Sys ID: 0x%02x, Sys Ver: 0x%02x, ", -		QIXIS_READ(id), QIXIS_READ(arch)); +	       QIXIS_READ(id), QIXIS_READ(arch));  	sw = QIXIS_READ(brdcfg[0]);  	sw = (sw & QIXIS_LBMAP_MASK) >> QIXIS_LBMAP_SHIFT; @@ -62,8 +78,8 @@ int checkboard(void)  		printf("invalid setting of SW%u\n", QIXIS_LBMAP_SWITCH);  	printf("FPGA: v%d (%s), build %d", -		(int)QIXIS_READ(scver), qixis_read_tag(buf), -		(int)qixis_read_minor()); +	       (int)QIXIS_READ(scver), qixis_read_tag(buf), +	       (int)qixis_read_minor());  	/* the timestamp string contains "\n" at the end */  	printf(" on %s", qixis_read_time(buf)); @@ -78,7 +94,7 @@ int checkboard(void)  	puts("SERDES Reference Clocks: ");  	sw = QIXIS_READ(brdcfg[2]);  	for (i = 0; i < MAX_SERDES; i++) { -		static const char *freq[] = { +		static const char * const freq[] = {  			"100", "125", "156.25", "161.1328125"};  		unsigned int clock = (sw >> (6 - 2 * i)) & 3; @@ -416,7 +432,7 @@ int config_backside_crossbar_mux(void)  		break;  	default:  		printf("WARNING: unsupported for SerDes3 Protocol %d\n", -				srds_prtcl_s3); +		       srds_prtcl_s3);  		return -1;  	} @@ -456,7 +472,7 @@ int config_backside_crossbar_mux(void)  		break;  	default:  		printf("WARNING: unsupported for SerDes4 Protocol %d\n", -				srds_prtcl_s4); +		       srds_prtcl_s4);  		return -1;  	} @@ -481,8 +497,8 @@ int board_early_init_r(void)  	disable_tlb(flash_esel);  	set_tlb(1, flashbase, CONFIG_SYS_FLASH_BASE_PHYS, -			MAS3_SX|MAS3_SW|MAS3_SR, MAS2_I|MAS2_G, -			0, flash_esel, BOOKE_PAGESZ_256M, 1); +		MAS3_SX|MAS3_SW|MAS3_SR, MAS2_I|MAS2_G, +		0, flash_esel, BOOKE_PAGESZ_256M, 1);  	set_liodns();  #ifdef CONFIG_SYS_DPAA_QBMAN @@ -620,9 +636,8 @@ int misc_init_r(void)  		u32 pllcr0 = srds_regs->bank[i].pllcr0;  		u32 expected = pllcr0 & SRDS_PLLCR0_RFCK_SEL_MASK;  		if (expected != actual[i]) { -			printf("Warning: SERDES%u expects reference clock" -			       " %sMHz, but actual is %sMHz\n", i + 1, -			       serdes_clock_to_string(expected), +			printf("Warning: SERDES%u expects reference clock %sMHz, but actual is %sMHz\n", +			       i + 1, serdes_clock_to_string(expected),  			       serdes_clock_to_string(actual[i]));  		}  	} @@ -781,42 +796,44 @@ void qixis_dump_switch(void)  	}  	sw[0] = dutcfg[0]; -	sw[1] = (dutcfg[1] << 0x07)		| \ -		((dutcfg[12] & 0xC0) >> 1)	| \ -		((dutcfg[11] & 0xE0) >> 3)	| \ -		((dutcfg[6] & 0x80) >> 6)	| \ +	sw[1] = (dutcfg[1] << 0x07)		| +		((dutcfg[12] & 0xC0) >> 1)	| +		((dutcfg[11] & 0xE0) >> 3)	| +		((dutcfg[6] & 0x80) >> 6)	|  		((dutcfg[1] & 0x80) >> 7); -	sw[2] = ((brdcfg[1] & 0x0f) << 4)	| \ -		((brdcfg[1] & 0x30) >> 2)	| \ -		((brdcfg[1] & 0x40) >> 5)	| \ +	sw[2] = ((brdcfg[1] & 0x0f) << 4)	| +		((brdcfg[1] & 0x30) >> 2)	| +		((brdcfg[1] & 0x40) >> 5)	|  		((brdcfg[1] & 0x80) >> 7);  	sw[3] = brdcfg[2]; -	sw[4] = ((dutcfg[2] & 0x01) << 7)	| \ -		((dutcfg[2] & 0x06) << 4)	| \ -		((~QIXIS_READ(present)) & 0x10)	| \ -		((brdcfg[3] & 0x80) >> 4)	| \ -		((brdcfg[3] & 0x01) << 2)	| \ -		((brdcfg[6] == 0x62) ? 3 :	\ -		((brdcfg[6] == 0x5a) ? 2 :	\ +	sw[4] = ((dutcfg[2] & 0x01) << 7)	| +		((dutcfg[2] & 0x06) << 4)	| +		((~QIXIS_READ(present)) & 0x10)	| +		((brdcfg[3] & 0x80) >> 4)	| +		((brdcfg[3] & 0x01) << 2)	| +		((brdcfg[6] == 0x62) ? 3 : +		((brdcfg[6] == 0x5a) ? 2 :  		((brdcfg[6] == 0x5e) ? 1 : 0))); -	sw[5] = ((brdcfg[0] & 0x0f) << 4)	| \ -		((QIXIS_READ(rst_ctl) & 0x30) >> 2) | \ +	sw[5] = ((brdcfg[0] & 0x0f) << 4)	| +		((QIXIS_READ(rst_ctl) & 0x30) >> 2) |  		((brdcfg[0] & 0x40) >> 5);  	sw[6] = (brdcfg[11] & 0x20)		|  		((brdcfg[5] & 0x02) << 3); -	sw[7] = (((~QIXIS_READ(rst_ctl)) & 0x40) << 1) | \ +	sw[7] = (((~QIXIS_READ(rst_ctl)) & 0x40) << 1) |  		((brdcfg[5] & 0x10) << 2); -	sw[8] = ((brdcfg[12] & 0x08) << 4)	| \ +	sw[8] = ((brdcfg[12] & 0x08) << 4)	|  		((brdcfg[12] & 0x03) << 5);  	puts("DIP switch (reverse-engineering)\n");  	for (i = 0; i < 9; i++) {  		printf("SW%d         = 0b%s (0x%02x)\n", -			i + 1, byte_to_binary_mask(sw[i], mask[i], buf), sw[i]); +		       i + 1, byte_to_binary_mask(sw[i], mask[i], buf), sw[i]);  	}  } -static int do_vdd_adjust(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[]) +static int do_vdd_adjust(cmd_tbl_t *cmdtp, +			 int flag, int argc, +			 char * const argv[])  {  	ulong override; diff --git a/board/freescale/t4qds/tlb.c b/board/freescale/t4qds/tlb.c index b27356a5f..b701e7520 100644 --- a/board/freescale/t4qds/tlb.c +++ b/board/freescale/t4qds/tlb.c @@ -120,9 +120,11 @@ struct fsl_e_tlb_entry tlb_table[] = {  			MAS3_SX|MAS3_SW|MAS3_SR, MAS2_I|MAS2_G,  			0, 16, BOOKE_PAGESZ_64K, 1),  #endif +#ifdef QIXIS_BASE_PHYS  	SET_TLB_ENTRY(1, QIXIS_BASE, QIXIS_BASE_PHYS,  		      MAS3_SX|MAS3_SW|MAS3_SR, MAS2_I|MAS2_G,  		      0, 17, BOOKE_PAGESZ_4K, 1), +#endif  #ifdef CONFIG_SRIO_PCIE_BOOT_SLAVE  	/*  	 * SRIO_PCIE_BOOT-SLAVE. 1M space from 0xffe00000 for diff --git a/boards.cfg b/boards.cfg index 41b5d28d7..229d9ab7d 100644 --- a/boards.cfg +++ b/boards.cfg @@ -925,6 +925,7 @@ stxgp3                       powerpc     mpc85xx     stxgp3              stx  stxssa                       powerpc     mpc85xx     stxssa              stx            -           stxssa  stxssa_4M                    powerpc     mpc85xx     stxssa              stx            -           stxssa:STXSSA_4M  T4240QDS                     powerpc     mpc85xx     t4qds               freescale      -           T4240QDS:PPC_T4240 +T4240EMU                     powerpc     mpc85xx     t4qds               freescale      -           T4240EMU:PPC_T4240  T4240QDS_SDCARD              powerpc     mpc85xx     t4qds               freescale	-           T4240QDS:PPC_T4240,RAMBOOT_PBL,SDCARD,SYS_TEXT_BASE=0xFFF80000  T4240QDS_SPIFLASH            powerpc     mpc85xx     t4qds               freescale	-           T4240QDS:PPC_T4240,RAMBOOT_PBL,SPIFLASH,SYS_TEXT_BASE=0xFFF80000  T4240QDS_SRIO_PCIE_BOOT	     powerpc     mpc85xx     t4qds               freescale      -           T4240QDS:PPC_T4240,SRIO_PCIE_BOOT_SLAVE,SYS_TEXT_BASE=0xFFF80000 diff --git a/include/configs/T4240EMU.h b/include/configs/T4240EMU.h new file mode 100644 index 000000000..537ff8125 --- /dev/null +++ b/include/configs/T4240EMU.h @@ -0,0 +1,185 @@ +/* + * Copyright 2013 Freescale Semiconductor, Inc. + * + * See file CREDITS for list of people who contributed to this + * project. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License as + * published by the Free Software Foundation; either version 2 of + * the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, + * MA 02111-1307 USA + */ + +/* + * T4240 EMU board configuration file + */ +#ifndef __CONFIG_H +#define __CONFIG_H + +#define CONFIG_T4240EMU +#define CONFIG_PHYS_64BIT + +#define CONFIG_SYS_NO_FLASH		1 +#define CONFIG_SYS_FSL_DDR_EMU		1 +#define CONFIG_SYS_FSL_NO_QIXIS		1 +#define CONFIG_SYS_FSL_NO_SERDES	1 + +#include "t4qds.h" + +#define CONFIG_CMD_CACHE +#define CONFIG_CMD_CACHE_FLUSH + +#define CONFIG_ENV_IS_NOWHERE +#define CONFIG_ENV_SIZE         0x2000 + +#define CONFIG_SYS_CLK_FREQ	100000000 +#define CONFIG_DDR_CLK_FREQ	133333333 +#define CONFIG_FSL_TBCLK_EXTRA_DIV 100 + + +/* + * DDR Setup + */ +#define CONFIG_SYS_SPD_BUS_NUM	1 +#define SPD_EEPROM_ADDRESS1	0x51 +#define SPD_EEPROM_ADDRESS2	0x52 +#define SPD_EEPROM_ADDRESS3	0x53 +#define SPD_EEPROM_ADDRESS4	0x54 +#define SPD_EEPROM_ADDRESS5	0x55 +#define SPD_EEPROM_ADDRESS6	0x56 +#define SPD_EEPROM_ADDRESS	SPD_EEPROM_ADDRESS1	/* for p3041/p5010 */ +#define CONFIG_SYS_SDRAM_SIZE	4096	/* for fixed parameter use */ + +/* + * IFC Definitions + */ +#define CONFIG_SYS_NOR0_CSPR_EXT	(0xf) +#define CONFIG_SYS_NOR_AMASK	IFC_AMASK(128*1024*1024) +/* NOR Flash Timing Params */ +#define CONFIG_SYS_NOR0_CSPR	(CSPR_PHYS_ADDR(CONFIG_SYS_FLASH_BASE_PHYS \ +				+ 0x8000000) | \ +				CSPR_PORT_SIZE_32 | \ +				CSPR_MSEL_NOR | \ +				CSPR_V) +#define CONFIG_SYS_NOR_CSOR	CSOR_NOR_ADM_SHIFT(0) +#define CONFIG_SYS_NOR_FTIM0	(FTIM0_NOR_TACSE(0x1) | \ +				FTIM0_NOR_TEADC(0x1) | \ +				FTIM0_NOR_TEAHC(0x1)) +#define CONFIG_SYS_NOR_FTIM1	(FTIM1_NOR_TACO(0x1) | \ +				FTIM1_NOR_TRAD_NOR(0x1)) +#define CONFIG_SYS_NOR_FTIM2	(FTIM2_NOR_TCS(0x0) | \ +				FTIM2_NOR_TCH(0x0) | \ +				FTIM2_NOR_TWP(0x1)) +#define CONFIG_SYS_NOR_FTIM3	0x04000000 +#define CONFIG_SYS_IFC_CCR	0x01000000 + +#define CONFIG_SYS_CSPR0_EXT		CONFIG_SYS_NOR0_CSPR_EXT +#define CONFIG_SYS_CSPR0		CONFIG_SYS_NOR0_CSPR +#define CONFIG_SYS_AMASK0		CONFIG_SYS_NOR_AMASK +#define CONFIG_SYS_CSOR0		CONFIG_SYS_NOR_CSOR +#define CONFIG_SYS_CS0_FTIM0		CONFIG_SYS_NOR_FTIM0 +#define CONFIG_SYS_CS0_FTIM1		CONFIG_SYS_NOR_FTIM1 +#define CONFIG_SYS_CS0_FTIM2		CONFIG_SYS_NOR_FTIM2 +#define CONFIG_SYS_CS0_FTIM3		CONFIG_SYS_NOR_FTIM3 + + +/* I2C */ +#define CONFIG_SYS_FSL_I2C_SPEED	4000000	/* faster speed for emulator */ +#define CONFIG_SYS_FSL_I2C2_SPEED	4000000 + +/* Qman/Bman */ +#define CONFIG_SYS_DPAA_QBMAN		/* Support Q/Bman */ +#define CONFIG_SYS_BMAN_NUM_PORTALS	50 +#define CONFIG_SYS_BMAN_MEM_BASE	0xf4000000 +#define CONFIG_SYS_BMAN_MEM_PHYS	0xff4000000ull +#define CONFIG_SYS_BMAN_MEM_SIZE	0x02000000 +#define CONFIG_SYS_QMAN_NUM_PORTALS	50 +#define CONFIG_SYS_QMAN_MEM_BASE	0xf6000000 +#define CONFIG_SYS_QMAN_MEM_PHYS	0xff6000000ull +#define CONFIG_SYS_QMAN_MEM_SIZE	0x02000000 + +#define CONFIG_SYS_DPAA_FMAN +#define CONFIG_SYS_DPAA_PME +#define CONFIG_SYS_PMAN +#define CONFIG_SYS_DPAA_DCE +#define CONFIG_SYS_INTERLAKEN + +#define CONFIG_SYS_QE_FMAN_FW_IN_NOR +#define CONFIG_SYS_QE_FMAN_FW_ADDR		0xEFF40000 +#define CONFIG_SYS_QE_FMAN_FW_LENGTH	0x10000 +#define CONFIG_SYS_FDT_PAD		(0x3000 + CONFIG_SYS_QE_FMAN_FW_LENGTH) + + + +#define CONFIG_BOOTDELAY	0 + +/* + * T4240 has 3 DDR controllers. Default to 3-way interleaving. It can be + * 3way_1KB, 3way_4KB, 3way_8KB. T4160 has 2 DDR controllers. Default to 2-way + * interleaving. It can be cacheline, page, bank, superbank. + * See doc/README.fsl-ddr for details. + */ +#ifdef CONFIG_PPC_T4240 +#define CTRL_INTLV_PREFERED 3way_4KB +#else +#define CTRL_INTLV_PREFERED cacheline +#endif + +#define	CONFIG_EXTRA_ENV_SETTINGS				\ +	"hwconfig=fsl_ddr:"					\ +	"ctlr_intlv=" __stringify(CTRL_INTLV_PREFERED) ","	\ +	"bank_intlv=auto;"					\ +	"netdev=eth0\0"						\ +	"uboot=" __stringify(CONFIG_UBOOTPATH) "\0"			\ +	"ubootaddr=" __stringify(CONFIG_SYS_TEXT_BASE) "\0"		\ +	"consoledev=ttyS0\0"					\ +	"ramdiskaddr=2000000\0"					\ +	"ramdiskfile=t4240emu/ramdisk.uboot\0"			\ +	"fdtaddr=c00000\0"					\ +	"fdtfile=t4240emu/t4240emu.dtb\0"				\ +	"bdev=sda3\0"						\ +	"c=ffe\0" + +/* + * For emulation this causes u-boot to jump to the start of the proof point + * app code automatically + */ +#define CONFIG_PROOF_POINTS			\ +	"setenv bootargs root=/dev/$bdev rw "		\ +	"console=$consoledev,$baudrate $othbootargs;"	\ +	"cpu 1 release 0x29000000 - - -;"		\ +	"cpu 2 release 0x29000000 - - -;"		\ +	"cpu 3 release 0x29000000 - - -;"		\ +	"cpu 4 release 0x29000000 - - -;"		\ +	"cpu 5 release 0x29000000 - - -;"		\ +	"cpu 6 release 0x29000000 - - -;"		\ +	"cpu 7 release 0x29000000 - - -;"		\ +	"go 0x29000000" + +#define CONFIG_HVBOOT				\ +	"setenv bootargs config-addr=0x60000000; "	\ +	"bootm 0x01000000 - 0x00f00000" + +#define CONFIG_LINUX					\ +	"errata;"					\ +	"setenv othbootargs ignore_loglevel;"		\ +	"setenv bootargs root=/dev/ram rw "		\ +	"console=$consoledev,$baudrate $othbootargs;"	\ +	"setenv ramdiskaddr 0x02000000;"		\ +	"setenv fdtaddr 0x00c00000;"			\ +	"setenv loadaddr 0x1000000;"			\ +	"bootm $loadaddr $ramdiskaddr $fdtaddr" + +#define CONFIG_BOOTCOMMAND		CONFIG_LINUX + +#endif	/* __CONFIG_H */ diff --git a/include/configs/T4240QDS.h b/include/configs/T4240QDS.h index 9ac7f6992..2cf4a69f2 100644 --- a/include/configs/T4240QDS.h +++ b/include/configs/T4240QDS.h @@ -7,6 +7,9 @@  /*   * T4240 QDS board configuration file   */ +#ifndef __CONFIG_H +#define __CONFIG_H +  #define CONFIG_T4240QDS  #define CONFIG_PHYS_64BIT @@ -15,4 +18,541 @@  #define CONFIG_ICS307_REFCLK_HZ		25000000  /* ICS307 ref clk freq */ +#ifdef CONFIG_RAMBOOT_PBL +#define CONFIG_RAMBOOT_TEXT_BASE	CONFIG_SYS_TEXT_BASE +#define CONFIG_RESET_VECTOR_ADDRESS	0xfffffffc +#define CONFIG_PBLPBI_CONFIG $(SRCTREE)/board/freescale/t4qds/t4_pbi.cfg +#define CONFIG_PBLRCW_CONFIG $(SRCTREE)/board/freescale/t4qds/t4_rcw.cfg +#endif + +#ifdef CONFIG_SRIO_PCIE_BOOT_SLAVE +/* Set 1M boot space */ +#define CONFIG_SYS_SRIO_PCIE_BOOT_SLAVE_ADDR (CONFIG_SYS_TEXT_BASE & 0xfff00000) +#define CONFIG_SYS_SRIO_PCIE_BOOT_SLAVE_ADDR_PHYS \ +		(0x300000000ull | CONFIG_SYS_SRIO_PCIE_BOOT_SLAVE_ADDR) +#define CONFIG_RESET_VECTOR_ADDRESS 0xfffffffc +#define CONFIG_SYS_NO_FLASH +#endif + +#define CONFIG_SRIO_PCIE_BOOT_MASTER +#define CONFIG_DDR_ECC +  #include "t4qds.h" + +#ifdef CONFIG_SYS_NO_FLASH +#if !defined(CONFIG_SRIO_PCIE_BOOT_SLAVE) && !defined(CONFIG_RAMBOOT_PBL) +#define CONFIG_ENV_IS_NOWHERE +#endif +#else +#define CONFIG_FLASH_CFI_DRIVER +#define CONFIG_SYS_FLASH_CFI +#define CONFIG_SYS_FLASH_USE_BUFFER_WRITE +#endif + +#if defined(CONFIG_SPIFLASH) +#define CONFIG_SYS_EXTRA_ENV_RELOC +#define CONFIG_ENV_IS_IN_SPI_FLASH +#define CONFIG_ENV_SPI_BUS              0 +#define CONFIG_ENV_SPI_CS               0 +#define CONFIG_ENV_SPI_MAX_HZ           10000000 +#define CONFIG_ENV_SPI_MODE             0 +#define CONFIG_ENV_SIZE                 0x2000          /* 8KB */ +#define CONFIG_ENV_OFFSET               0x100000        /* 1MB */ +#define CONFIG_ENV_SECT_SIZE            0x10000 +#elif defined(CONFIG_SDCARD) +#define CONFIG_SYS_EXTRA_ENV_RELOC +#define CONFIG_ENV_IS_IN_MMC +#define CONFIG_SYS_MMC_ENV_DEV          0 +#define CONFIG_ENV_SIZE			0x2000 +#define CONFIG_ENV_OFFSET		(512 * 1097) +#elif defined(CONFIG_NAND) +#define CONFIG_SYS_EXTRA_ENV_RELOC +#define CONFIG_ENV_IS_IN_NAND +#define CONFIG_ENV_SIZE			CONFIG_SYS_NAND_BLOCK_SIZE +#define CONFIG_ENV_OFFSET		(5 * CONFIG_SYS_NAND_BLOCK_SIZE) +#elif defined(CONFIG_SRIO_PCIE_BOOT_SLAVE) +#define CONFIG_ENV_IS_IN_REMOTE +#define CONFIG_ENV_ADDR		0xffe20000 +#define CONFIG_ENV_SIZE		0x2000 +#elif defined(CONFIG_ENV_IS_NOWHERE) +#define CONFIG_ENV_SIZE		0x2000 +#else +#define CONFIG_ENV_IS_IN_FLASH +#define CONFIG_ENV_ADDR		(CONFIG_SYS_MONITOR_BASE - CONFIG_ENV_SECT_SIZE) +#define CONFIG_ENV_SIZE		0x2000 +#define CONFIG_ENV_SECT_SIZE	0x20000 /* 128K (one sector) */ +#endif + +#define CONFIG_SYS_CLK_FREQ	get_board_sys_clk() +#define CONFIG_DDR_CLK_FREQ	get_board_ddr_clk() + +#ifndef __ASSEMBLY__ +unsigned long get_board_sys_clk(void); +unsigned long get_board_ddr_clk(void); +#endif + +/* EEPROM */ +#define CONFIG_ID_EEPROM +#define CONFIG_SYS_I2C_EEPROM_NXID +#define CONFIG_SYS_EEPROM_BUS_NUM	0 +#define CONFIG_SYS_I2C_EEPROM_ADDR	0x57 +#define CONFIG_SYS_I2C_EEPROM_ADDR_LEN	1 + +/* + * DDR Setup + */ +#define CONFIG_SYS_SPD_BUS_NUM	0 +#define SPD_EEPROM_ADDRESS1	0x51 +#define SPD_EEPROM_ADDRESS2	0x52 +#define SPD_EEPROM_ADDRESS3	0x53 +#define SPD_EEPROM_ADDRESS4	0x54 +#define SPD_EEPROM_ADDRESS5	0x55 +#define SPD_EEPROM_ADDRESS6	0x56 +#define SPD_EEPROM_ADDRESS	SPD_EEPROM_ADDRESS1	/* for p3041/p5010 */ +#define CONFIG_SYS_SDRAM_SIZE	4096	/* for fixed parameter use */ + +/* + * IFC Definitions + */ +#define CONFIG_SYS_NOR0_CSPR_EXT	(0xf) +#define CONFIG_SYS_NOR0_CSPR	(CSPR_PHYS_ADDR(CONFIG_SYS_FLASH_BASE_PHYS \ +				+ 0x8000000) | \ +				CSPR_PORT_SIZE_16 | \ +				CSPR_MSEL_NOR | \ +				CSPR_V) +#define CONFIG_SYS_NOR1_CSPR_EXT	(0xf) +#define CONFIG_SYS_NOR1_CSPR	(CSPR_PHYS_ADDR(CONFIG_SYS_FLASH_BASE_PHYS) | \ +				CSPR_PORT_SIZE_16 | \ +				CSPR_MSEL_NOR | \ +				CSPR_V) +#define CONFIG_SYS_NOR_AMASK	IFC_AMASK(128*1024*1024) +/* NOR Flash Timing Params */ +#define CONFIG_SYS_NOR_CSOR	CSOR_NAND_TRHZ_80 + +#define CONFIG_SYS_NOR_FTIM0	(FTIM0_NOR_TACSE(0x4) | \ +				FTIM0_NOR_TEADC(0x5) | \ +				FTIM0_NOR_TEAHC(0x5)) +#define CONFIG_SYS_NOR_FTIM1	(FTIM1_NOR_TACO(0x35) | \ +				FTIM1_NOR_TRAD_NOR(0x1A) |\ +				FTIM1_NOR_TSEQRAD_NOR(0x13)) +#define CONFIG_SYS_NOR_FTIM2	(FTIM2_NOR_TCS(0x4) | \ +				FTIM2_NOR_TCH(0x4) | \ +				FTIM2_NOR_TWPH(0x0E) | \ +				FTIM2_NOR_TWP(0x1c)) +#define CONFIG_SYS_NOR_FTIM3	0x0 + +#define CONFIG_SYS_FLASH_QUIET_TEST +#define CONFIG_FLASH_SHOW_PROGRESS	45 /* count down from 45/5: 9..1 */ + +#define CONFIG_SYS_MAX_FLASH_BANKS	2	/* number of banks */ +#define CONFIG_SYS_MAX_FLASH_SECT	1024	/* sectors per device */ +#define CONFIG_SYS_FLASH_ERASE_TOUT	60000	/* Flash Erase Timeout (ms) */ +#define CONFIG_SYS_FLASH_WRITE_TOUT	500	/* Flash Write Timeout (ms) */ + +#define CONFIG_SYS_FLASH_EMPTY_INFO +#define CONFIG_SYS_FLASH_BANKS_LIST	{CONFIG_SYS_FLASH_BASE_PHYS \ +					+ 0x8000000, CONFIG_SYS_FLASH_BASE_PHYS} + +#define CONFIG_FSL_QIXIS	/* use common QIXIS code */ +#define QIXIS_BASE			0xffdf0000 +#define QIXIS_LBMAP_SWITCH		6 +#define QIXIS_LBMAP_MASK		0x0f +#define QIXIS_LBMAP_SHIFT		0 +#define QIXIS_LBMAP_DFLTBANK		0x00 +#define QIXIS_LBMAP_ALTBANK		0x04 +#define QIXIS_RST_CTL_RESET		0x83 +#define QIXIS_RCFG_CTL_RECONFIG_IDLE	0x20 +#define QIXIS_RCFG_CTL_RECONFIG_START	0x21 +#define QIXIS_RCFG_CTL_WATCHDOG_ENBLE	0x08 +#define QIXIS_BASE_PHYS		(0xf00000000ull | QIXIS_BASE) + +#define CONFIG_SYS_CSPR3_EXT	(0xf) +#define CONFIG_SYS_CSPR3	(CSPR_PHYS_ADDR(QIXIS_BASE_PHYS) \ +				| CSPR_PORT_SIZE_8 \ +				| CSPR_MSEL_GPCM \ +				| CSPR_V) +#define CONFIG_SYS_AMASK3	IFC_AMASK(4*1024) +#define CONFIG_SYS_CSOR3	0x0 +/* QIXIS Timing parameters for IFC CS3 */ +#define CONFIG_SYS_CS3_FTIM0		(FTIM0_GPCM_TACSE(0x0e) | \ +					FTIM0_GPCM_TEADC(0x0e) | \ +					FTIM0_GPCM_TEAHC(0x0e)) +#define CONFIG_SYS_CS3_FTIM1		(FTIM1_GPCM_TACO(0xff) | \ +					FTIM1_GPCM_TRAD(0x3f)) +#define CONFIG_SYS_CS3_FTIM2		(FTIM2_GPCM_TCS(0x0e) | \ +					FTIM2_GPCM_TCH(0x0) | \ +					FTIM2_GPCM_TWP(0x1f)) +#define CONFIG_SYS_CS3_FTIM3		0x0 + +/* NAND Flash on IFC */ +#define CONFIG_NAND_FSL_IFC +#define CONFIG_SYS_NAND_BASE		0xff800000 +#define CONFIG_SYS_NAND_BASE_PHYS	(0xf00000000ull | CONFIG_SYS_NAND_BASE) + +#define CONFIG_SYS_NAND_CSPR_EXT	(0xf) +#define CONFIG_SYS_NAND_CSPR	(CSPR_PHYS_ADDR(CONFIG_SYS_NAND_BASE_PHYS) \ +				| CSPR_PORT_SIZE_8 /* Port Size = 8 bit */ \ +				| CSPR_MSEL_NAND	/* MSEL = NAND */ \ +				| CSPR_V) +#define CONFIG_SYS_NAND_AMASK	IFC_AMASK(64*1024) + +#define CONFIG_SYS_NAND_CSOR    (CSOR_NAND_ECC_ENC_EN   /* ECC on encode */ \ +				| CSOR_NAND_ECC_DEC_EN  /* ECC on decode */ \ +				| CSOR_NAND_ECC_MODE_4  /* 4-bit ECC */ \ +				| CSOR_NAND_RAL_3	/* RAL = 2Byes */ \ +				| CSOR_NAND_PGS_2K	/* Page Size = 2K */ \ +				| CSOR_NAND_SPRZ_64/* Spare size = 64 */ \ +				| CSOR_NAND_PB(64))	/*Pages Per Block = 64*/ + +#define CONFIG_SYS_NAND_ONFI_DETECTION + +/* ONFI NAND Flash mode0 Timing Params */ +#define CONFIG_SYS_NAND_FTIM0		(FTIM0_NAND_TCCST(0x07) | \ +					FTIM0_NAND_TWP(0x18)   | \ +					FTIM0_NAND_TWCHT(0x07) | \ +					FTIM0_NAND_TWH(0x0a)) +#define CONFIG_SYS_NAND_FTIM1		(FTIM1_NAND_TADLE(0x32) | \ +					FTIM1_NAND_TWBE(0x39)  | \ +					FTIM1_NAND_TRR(0x0e)   | \ +					FTIM1_NAND_TRP(0x18)) +#define CONFIG_SYS_NAND_FTIM2		(FTIM2_NAND_TRAD(0x0f) | \ +					FTIM2_NAND_TREH(0x0a) | \ +					FTIM2_NAND_TWHRE(0x1e)) +#define CONFIG_SYS_NAND_FTIM3		0x0 + +#define CONFIG_SYS_NAND_DDR_LAW		11 + +#define CONFIG_SYS_NAND_BASE_LIST	{ CONFIG_SYS_NAND_BASE } +#define CONFIG_SYS_MAX_NAND_DEVICE	1 +#define CONFIG_MTD_NAND_VERIFY_WRITE +#define CONFIG_CMD_NAND + +#define CONFIG_SYS_NAND_BLOCK_SIZE	(128 * 1024) + +#if defined(CONFIG_NAND) +#define CONFIG_SYS_CSPR0_EXT		CONFIG_SYS_NAND_CSPR_EXT +#define CONFIG_SYS_CSPR0		CONFIG_SYS_NAND_CSPR +#define CONFIG_SYS_AMASK0		CONFIG_SYS_NAND_AMASK +#define CONFIG_SYS_CSOR0		CONFIG_SYS_NAND_CSOR +#define CONFIG_SYS_CS0_FTIM0		CONFIG_SYS_NAND_FTIM0 +#define CONFIG_SYS_CS0_FTIM1		CONFIG_SYS_NAND_FTIM1 +#define CONFIG_SYS_CS0_FTIM2		CONFIG_SYS_NAND_FTIM2 +#define CONFIG_SYS_CS0_FTIM3		CONFIG_SYS_NAND_FTIM3 +#define CONFIG_SYS_CSPR2_EXT		CONFIG_SYS_NOR0_CSPR_EXT +#define CONFIG_SYS_CSPR2		CONFIG_SYS_NOR0_CSPR +#define CONFIG_SYS_AMASK2		CONFIG_SYS_NOR_AMASK +#define CONFIG_SYS_CSOR2		CONFIG_SYS_NOR_CSOR +#define CONFIG_SYS_CS2_FTIM0		CONFIG_SYS_NOR_FTIM0 +#define CONFIG_SYS_CS2_FTIM1		CONFIG_SYS_NOR_FTIM1 +#define CONFIG_SYS_CS2_FTIM2		CONFIG_SYS_NOR_FTIM2 +#define CONFIG_SYS_CS2_FTIM3		CONFIG_SYS_NOR_FTIM3 +#else +#define CONFIG_SYS_CSPR0_EXT		CONFIG_SYS_NOR0_CSPR_EXT +#define CONFIG_SYS_CSPR0		CONFIG_SYS_NOR0_CSPR +#define CONFIG_SYS_AMASK0		CONFIG_SYS_NOR_AMASK +#define CONFIG_SYS_CSOR0		CONFIG_SYS_NOR_CSOR +#define CONFIG_SYS_CS0_FTIM0		CONFIG_SYS_NOR_FTIM0 +#define CONFIG_SYS_CS0_FTIM1		CONFIG_SYS_NOR_FTIM1 +#define CONFIG_SYS_CS0_FTIM2		CONFIG_SYS_NOR_FTIM2 +#define CONFIG_SYS_CS0_FTIM3		CONFIG_SYS_NOR_FTIM3 +#define CONFIG_SYS_CSPR2_EXT		CONFIG_SYS_NAND_CSPR_EXT +#define CONFIG_SYS_CSPR2		CONFIG_SYS_NAND_CSPR +#define CONFIG_SYS_AMASK2		CONFIG_SYS_NAND_AMASK +#define CONFIG_SYS_CSOR2		CONFIG_SYS_NAND_CSOR +#define CONFIG_SYS_CS2_FTIM0		CONFIG_SYS_NAND_FTIM0 +#define CONFIG_SYS_CS2_FTIM1		CONFIG_SYS_NAND_FTIM1 +#define CONFIG_SYS_CS2_FTIM2		CONFIG_SYS_NAND_FTIM2 +#define CONFIG_SYS_CS2_FTIM3		CONFIG_SYS_NAND_FTIM3 +#endif +#define CONFIG_SYS_CSPR1_EXT		CONFIG_SYS_NOR1_CSPR_EXT +#define CONFIG_SYS_CSPR1		CONFIG_SYS_NOR1_CSPR +#define CONFIG_SYS_AMASK1		CONFIG_SYS_NOR_AMASK +#define CONFIG_SYS_CSOR1		CONFIG_SYS_NOR_CSOR +#define CONFIG_SYS_CS1_FTIM0		CONFIG_SYS_NOR_FTIM0 +#define CONFIG_SYS_CS1_FTIM1		CONFIG_SYS_NOR_FTIM1 +#define CONFIG_SYS_CS1_FTIM2		CONFIG_SYS_NOR_FTIM2 +#define CONFIG_SYS_CS1_FTIM3		CONFIG_SYS_NOR_FTIM3 + +#if defined(CONFIG_RAMBOOT_PBL) +#define CONFIG_SYS_RAMBOOT +#endif + + +/* I2C */ +#define CONFIG_SYS_FSL_I2C_SPEED	100000	/* I2C speed */ +#define CONFIG_SYS_FSL_I2C2_SPEED	100000	/* I2C2 speed */ +#define I2C_MUX_PCA_ADDR_PRI		0x77 /* I2C bus multiplexer,primary */ +#define I2C_MUX_PCA_ADDR_SEC		0x76 /* I2C bus multiplexer,secondary */ + +#define I2C_MUX_CH_DEFAULT	0x8 +#define I2C_MUX_CH_VOL_MONITOR	0xa +#define I2C_MUX_CH_VSC3316_FS	0xc +#define I2C_MUX_CH_VSC3316_BS	0xd + +/* Voltage monitor on channel 2*/ +#define I2C_VOL_MONITOR_ADDR		0x40 +#define I2C_VOL_MONITOR_BUS_V_OFFSET	0x2 +#define I2C_VOL_MONITOR_BUS_V_OVF	0x1 +#define I2C_VOL_MONITOR_BUS_V_SHIFT	3 + +/* VSC Crossbar switches */ +#define CONFIG_VSC_CROSSBAR +#define VSC3316_FSM_TX_ADDR	0x70 +#define VSC3316_FSM_RX_ADDR	0x71 + +/* + * RapidIO + */ + +/* + * for slave u-boot IMAGE instored in master memory space, + * PHYS must be aligned based on the SIZE + */ +#define CONFIG_SRIO_PCIE_BOOT_IMAGE_MEM_PHYS 0xfef080000ull +#define CONFIG_SRIO_PCIE_BOOT_IMAGE_MEM_BUS1 0xfff80000ull +#define CONFIG_SRIO_PCIE_BOOT_IMAGE_SIZE 0x80000	/* 512K */ +#define CONFIG_SRIO_PCIE_BOOT_IMAGE_MEM_BUS2 0x3fff80000ull +/* + * for slave UCODE and ENV instored in master memory space, + * PHYS must be aligned based on the SIZE + */ +#define CONFIG_SRIO_PCIE_BOOT_UCODE_ENV_MEM_PHYS 0xfef040000ull +#define CONFIG_SRIO_PCIE_BOOT_UCODE_ENV_MEM_BUS 0x3ffe00000ull +#define CONFIG_SRIO_PCIE_BOOT_UCODE_ENV_SIZE 0x40000	/* 256K */ + +/* slave core release by master*/ +#define CONFIG_SRIO_PCIE_BOOT_BRR_OFFSET 0xe00e4 +#define CONFIG_SRIO_PCIE_BOOT_RELEASE_MASK 0x00000001 /* release core 0 */ + +/* + * SRIO_PCIE_BOOT - SLAVE + */ +#ifdef CONFIG_SRIO_PCIE_BOOT_SLAVE +#define CONFIG_SYS_SRIO_PCIE_BOOT_UCODE_ENV_ADDR 0xFFE00000 +#define CONFIG_SYS_SRIO_PCIE_BOOT_UCODE_ENV_ADDR_PHYS \ +		(0x300000000ull | CONFIG_SYS_SRIO_PCIE_BOOT_UCODE_ENV_ADDR) +#endif +/* + * eSPI - Enhanced SPI + */ +#define CONFIG_FSL_ESPI +#define CONFIG_SPI_FLASH +#define CONFIG_SPI_FLASH_SST +#define CONFIG_CMD_SF +#define CONFIG_SF_DEFAULT_SPEED         10000000 +#define CONFIG_SF_DEFAULT_MODE          0 + + +/* Qman/Bman */ +#ifndef CONFIG_NOBQFMAN +#define CONFIG_SYS_DPAA_QBMAN		/* Support Q/Bman */ +#define CONFIG_SYS_BMAN_NUM_PORTALS	50 +#define CONFIG_SYS_BMAN_MEM_BASE	0xf4000000 +#define CONFIG_SYS_BMAN_MEM_PHYS	0xff4000000ull +#define CONFIG_SYS_BMAN_MEM_SIZE	0x02000000 +#define CONFIG_SYS_QMAN_NUM_PORTALS	50 +#define CONFIG_SYS_QMAN_MEM_BASE	0xf6000000 +#define CONFIG_SYS_QMAN_MEM_PHYS	0xff6000000ull +#define CONFIG_SYS_QMAN_MEM_SIZE	0x02000000 + +#define CONFIG_SYS_DPAA_FMAN +#define CONFIG_SYS_DPAA_PME +#define CONFIG_SYS_PMAN +#define CONFIG_SYS_DPAA_DCE +#define CONFIG_SYS_INTERLAKEN + +/* Default address of microcode for the Linux Fman driver */ +#if defined(CONFIG_SPIFLASH) +/* + * env is stored at 0x100000, sector size is 0x10000, ucode is stored after + * env, so we got 0x110000. + */ +#define CONFIG_SYS_QE_FW_IN_SPIFLASH +#define CONFIG_SYS_QE_FMAN_FW_ADDR	0x110000 +#elif defined(CONFIG_SDCARD) +/* + * PBL SD boot image should stored at 0x1000(8 blocks), the size of the image is + * about 545KB (1089 blocks), Env is stored after the image, and the env size is + * 0x2000 (16 blocks), 8 + 1089 + 16 = 1113, enlarge it to 1130. + */ +#define CONFIG_SYS_QE_FMAN_FW_IN_MMC +#define CONFIG_SYS_QE_FMAN_FW_ADDR	(512 * 1130) +#elif defined(CONFIG_NAND) +#define CONFIG_SYS_QE_FMAN_FW_IN_NAND +#define CONFIG_SYS_QE_FMAN_FW_ADDR	(6 * CONFIG_SYS_NAND_BLOCK_SIZE) +#elif defined(CONFIG_SRIO_PCIE_BOOT_SLAVE) +/* + * Slave has no ucode locally, it can fetch this from remote. When implementing + * in two corenet boards, slave's ucode could be stored in master's memory + * space, the address can be mapped from slave TLB->slave LAW-> + * slave SRIO or PCIE outbound window->master inbound window-> + * master LAW->the ucode address in master's memory space. + */ +#define CONFIG_SYS_QE_FMAN_FW_IN_REMOTE +#define CONFIG_SYS_QE_FMAN_FW_ADDR	0xFFE00000 +#else +#define CONFIG_SYS_QE_FMAN_FW_IN_NOR +#define CONFIG_SYS_QE_FMAN_FW_ADDR		0xEFF40000 +#endif +#define CONFIG_SYS_QE_FMAN_FW_LENGTH	0x10000 +#define CONFIG_SYS_FDT_PAD		(0x3000 + CONFIG_SYS_QE_FMAN_FW_LENGTH) +#endif /* CONFIG_NOBQFMAN */ + +#ifdef CONFIG_SYS_DPAA_FMAN +#define CONFIG_FMAN_ENET +#define CONFIG_PHYLIB_10G +#define CONFIG_PHY_VITESSE +#define CONFIG_PHY_TERANETICS +#define SGMII_CARD_PORT1_PHY_ADDR 0x1C +#define SGMII_CARD_PORT2_PHY_ADDR 0x1D +#define SGMII_CARD_PORT3_PHY_ADDR 0x1E +#define SGMII_CARD_PORT4_PHY_ADDR 0x1F +#define FM1_10GEC1_PHY_ADDR	0x0 +#define FM1_10GEC2_PHY_ADDR	0x1 +#define FM2_10GEC1_PHY_ADDR	0x2 +#define FM2_10GEC2_PHY_ADDR	0x3 +#endif + + +/* SATA */ +#ifdef CONFIG_FSL_SATA_V2 +#define CONFIG_LIBATA +#define CONFIG_FSL_SATA + +#define CONFIG_SYS_SATA_MAX_DEVICE	2 +#define CONFIG_SATA1 +#define CONFIG_SYS_SATA1		CONFIG_SYS_MPC85xx_SATA1_ADDR +#define CONFIG_SYS_SATA1_FLAGS		FLAGS_DMA +#define CONFIG_SATA2 +#define CONFIG_SYS_SATA2		CONFIG_SYS_MPC85xx_SATA2_ADDR +#define CONFIG_SYS_SATA2_FLAGS		FLAGS_DMA + +#define CONFIG_LBA48 +#define CONFIG_CMD_SATA +#define CONFIG_DOS_PARTITION +#define CONFIG_CMD_EXT2 +#endif + +#ifdef CONFIG_FMAN_ENET +#define CONFIG_MII		/* MII PHY management */ +#define CONFIG_ETHPRIME		"FM1@DTSEC1" +#define CONFIG_PHY_GIGE		/* Include GbE speed/duplex detection */ +#endif + +/* +* USB +*/ +#define CONFIG_CMD_USB +#define CONFIG_USB_STORAGE +#define CONFIG_USB_EHCI +#define CONFIG_USB_EHCI_FSL +#define CONFIG_EHCI_HCD_INIT_AFTER_RESET +#define CONFIG_CMD_EXT2 +#define CONFIG_HAS_FSL_DR_USB + +#define CONFIG_MMC + +#ifdef CONFIG_MMC +#define CONFIG_FSL_ESDHC +#define CONFIG_SYS_FSL_ESDHC_ADDR       CONFIG_SYS_MPC85xx_ESDHC_ADDR +#define CONFIG_SYS_FSL_ESDHC_BROKEN_TIMEOUT +#define CONFIG_CMD_MMC +#define CONFIG_GENERIC_MMC +#define CONFIG_CMD_EXT2 +#define CONFIG_CMD_FAT +#define CONFIG_DOS_PARTITION +#endif + +#define CONFIG_BOOTDELAY	10	/* -1 disables auto-boot */ + +#define __USB_PHY_TYPE	utmi + +/* + * T4240 has 3 DDR controllers. Default to 3-way interleaving. It can be + * 3way_1KB, 3way_4KB, 3way_8KB. T4160 has 2 DDR controllers. Default to 2-way + * interleaving. It can be cacheline, page, bank, superbank. + * See doc/README.fsl-ddr for details. + */ +#ifdef CONFIG_PPC_T4240 +#define CTRL_INTLV_PREFERED 3way_4KB +#else +#define CTRL_INTLV_PREFERED cacheline +#endif + +#define	CONFIG_EXTRA_ENV_SETTINGS				\ +	"hwconfig=fsl_ddr:"					\ +	"ctlr_intlv=" __stringify(CTRL_INTLV_PREFERED) ","	\ +	"bank_intlv=auto;"					\ +	"usb1:dr_mode=host,phy_type=" __stringify(__USB_PHY_TYPE) "\0"\ +	"netdev=eth0\0"						\ +	"uboot=" __stringify(CONFIG_UBOOTPATH) "\0"			\ +	"ubootaddr=" __stringify(CONFIG_SYS_TEXT_BASE) "\0"		\ +	"tftpflash=tftpboot $loadaddr $uboot && "		\ +	"protect off $ubootaddr +$filesize && "			\ +	"erase $ubootaddr +$filesize && "			\ +	"cp.b $loadaddr $ubootaddr $filesize && "		\ +	"protect on $ubootaddr +$filesize && "			\ +	"cmp.b $loadaddr $ubootaddr $filesize\0"		\ +	"consoledev=ttyS0\0"					\ +	"ramdiskaddr=2000000\0"					\ +	"ramdiskfile=t4240qds/ramdisk.uboot\0"			\ +	"fdtaddr=c00000\0"					\ +	"fdtfile=t4240qds/t4240qds.dtb\0"				\ +	"bdev=sda3\0"						\ +	"c=ffe\0" + +#define CONFIG_HVBOOT				\ +	"setenv bootargs config-addr=0x60000000; "	\ +	"bootm 0x01000000 - 0x00f00000" + +#define CONFIG_ALU				\ +	"setenv bootargs root=/dev/$bdev rw "		\ +	"console=$consoledev,$baudrate $othbootargs;"	\ +	"cpu 1 release 0x01000000 - - -;"		\ +	"cpu 2 release 0x01000000 - - -;"		\ +	"cpu 3 release 0x01000000 - - -;"		\ +	"cpu 4 release 0x01000000 - - -;"		\ +	"cpu 5 release 0x01000000 - - -;"		\ +	"cpu 6 release 0x01000000 - - -;"		\ +	"cpu 7 release 0x01000000 - - -;"		\ +	"go 0x01000000" + +#define CONFIG_LINUX				\ +	"setenv bootargs root=/dev/ram rw "		\ +	"console=$consoledev,$baudrate $othbootargs;"	\ +	"setenv ramdiskaddr 0x02000000;"		\ +	"setenv fdtaddr 0x00c00000;"			\ +	"setenv loadaddr 0x1000000;"			\ +	"bootm $loadaddr $ramdiskaddr $fdtaddr" + +#define CONFIG_HDBOOT					\ +	"setenv bootargs root=/dev/$bdev rw "		\ +	"console=$consoledev,$baudrate $othbootargs;"	\ +	"tftp $loadaddr $bootfile;"			\ +	"tftp $fdtaddr $fdtfile;"			\ +	"bootm $loadaddr - $fdtaddr" + +#define CONFIG_NFSBOOTCOMMAND			\ +	"setenv bootargs root=/dev/nfs rw "	\ +	"nfsroot=$serverip:$rootpath "		\ +	"ip=$ipaddr:$serverip:$gatewayip:$netmask:$hostname:$netdev:off " \ +	"console=$consoledev,$baudrate $othbootargs;"	\ +	"tftp $loadaddr $bootfile;"		\ +	"tftp $fdtaddr $fdtfile;"		\ +	"bootm $loadaddr - $fdtaddr" + +#define CONFIG_RAMBOOTCOMMAND				\ +	"setenv bootargs root=/dev/ram rw "		\ +	"console=$consoledev,$baudrate $othbootargs;"	\ +	"tftp $ramdiskaddr $ramdiskfile;"		\ +	"tftp $loadaddr $bootfile;"			\ +	"tftp $fdtaddr $fdtfile;"			\ +	"bootm $loadaddr $ramdiskaddr $fdtaddr" + +#define CONFIG_BOOTCOMMAND		CONFIG_LINUX + +#ifdef CONFIG_SECURE_BOOT +#include <asm/fsl_secure_boot.h> +#endif + +#endif	/* __CONFIG_H */ diff --git a/include/configs/t4qds.h b/include/configs/t4qds.h index 200639033..3e82fc255 100644 --- a/include/configs/t4qds.h +++ b/include/configs/t4qds.h @@ -7,24 +7,8 @@  /*   * Corenet DS style board configuration file   */ -#ifndef __CONFIG_H -#define __CONFIG_H - -#ifdef CONFIG_RAMBOOT_PBL -#define CONFIG_RAMBOOT_TEXT_BASE	CONFIG_SYS_TEXT_BASE -#define CONFIG_RESET_VECTOR_ADDRESS	0xfffffffc -#define CONFIG_PBLPBI_CONFIG $(SRCTREE)/board/freescale/t4qds/t4_pbi.cfg -#define CONFIG_PBLRCW_CONFIG $(SRCTREE)/board/freescale/t4qds/t4_rcw.cfg -#endif - -#ifdef CONFIG_SRIO_PCIE_BOOT_SLAVE -/* Set 1M boot space */ -#define CONFIG_SYS_SRIO_PCIE_BOOT_SLAVE_ADDR (CONFIG_SYS_TEXT_BASE & 0xfff00000) -#define CONFIG_SYS_SRIO_PCIE_BOOT_SLAVE_ADDR_PHYS \ -		(0x300000000ull | CONFIG_SYS_SRIO_PCIE_BOOT_SLAVE_ADDR) -#define CONFIG_RESET_VECTOR_ADDRESS 0xfffffffc -#define CONFIG_SYS_NO_FLASH -#endif +#ifndef __T4QDS_H +#define __T4QDS_H  #define CONFIG_CMD_REGINFO @@ -57,70 +41,16 @@  #define CONFIG_SYS_SRIO  #define CONFIG_SRIO1			/* SRIO port 1 */  #define CONFIG_SRIO2			/* SRIO port 2 */ -#define CONFIG_SRIO_PCIE_BOOT_MASTER  #define CONFIG_FSL_LAW			/* Use common FSL init code */  #define CONFIG_ENV_OVERWRITE -#ifdef CONFIG_SYS_NO_FLASH -#if !defined(CONFIG_SRIO_PCIE_BOOT_SLAVE) && !defined(CONFIG_RAMBOOT_PBL) -#define CONFIG_ENV_IS_NOWHERE -#endif -#else -#define CONFIG_FLASH_CFI_DRIVER -#define CONFIG_SYS_FLASH_CFI -#define CONFIG_SYS_FLASH_USE_BUFFER_WRITE -#endif - -#if defined(CONFIG_SPIFLASH) -#define CONFIG_SYS_EXTRA_ENV_RELOC -#define CONFIG_ENV_IS_IN_SPI_FLASH -#define CONFIG_ENV_SPI_BUS              0 -#define CONFIG_ENV_SPI_CS               0 -#define CONFIG_ENV_SPI_MAX_HZ           10000000 -#define CONFIG_ENV_SPI_MODE             0 -#define CONFIG_ENV_SIZE                 0x2000          /* 8KB */ -#define CONFIG_ENV_OFFSET               0x100000        /* 1MB */ -#define CONFIG_ENV_SECT_SIZE            0x10000 -#elif defined(CONFIG_SDCARD) -#define CONFIG_SYS_EXTRA_ENV_RELOC -#define CONFIG_ENV_IS_IN_MMC -#define CONFIG_SYS_MMC_ENV_DEV          0 -#define CONFIG_ENV_SIZE			0x2000 -#define CONFIG_ENV_OFFSET		(512 * 1097) -#elif defined(CONFIG_NAND) -#define CONFIG_SYS_EXTRA_ENV_RELOC -#define CONFIG_ENV_IS_IN_NAND -#define CONFIG_ENV_SIZE			CONFIG_SYS_NAND_BLOCK_SIZE -#define CONFIG_ENV_OFFSET		(5 * CONFIG_SYS_NAND_BLOCK_SIZE) -#elif defined(CONFIG_SRIO_PCIE_BOOT_SLAVE) -#define CONFIG_ENV_IS_IN_REMOTE -#define CONFIG_ENV_ADDR		0xffe20000 -#define CONFIG_ENV_SIZE		0x2000 -#elif defined(CONFIG_ENV_IS_NOWHERE) -#define CONFIG_ENV_SIZE		0x2000 -#else -#define CONFIG_ENV_IS_IN_FLASH -#define CONFIG_ENV_ADDR		(CONFIG_SYS_MONITOR_BASE - CONFIG_ENV_SECT_SIZE) -#define CONFIG_ENV_SIZE		0x2000 -#define CONFIG_ENV_SECT_SIZE	0x20000 /* 128K (one sector) */ -#endif - -#define CONFIG_SYS_CLK_FREQ	get_board_sys_clk() -#define CONFIG_DDR_CLK_FREQ	get_board_ddr_clk() - -#ifndef __ASSEMBLY__ -unsigned long get_board_sys_clk(void); -unsigned long get_board_ddr_clk(void); -#endif -  /*   * These can be toggled for performance analysis, otherwise use default.   */  #define CONFIG_SYS_CACHE_STASHING  #define CONFIG_BTB			/* toggle branch predition */ -#define	CONFIG_DDR_ECC  #ifdef CONFIG_DDR_ECC  #define CONFIG_ECC_INIT_VIA_DDRCONTROLLER  #define CONFIG_MEM_INIT_VALUE		0xdeadbeef @@ -144,13 +74,6 @@ unsigned long get_board_ddr_clk(void);  #define CONFIG_SYS_DCSRBAR		0xf0000000  #define CONFIG_SYS_DCSRBAR_PHYS		0xf00000000ull -/* EEPROM */ -#define CONFIG_ID_EEPROM -#define CONFIG_SYS_I2C_EEPROM_NXID -#define CONFIG_SYS_EEPROM_BUS_NUM	0 -#define CONFIG_SYS_I2C_EEPROM_ADDR	0x57 -#define CONFIG_SYS_I2C_EEPROM_ADDR_LEN	1 -  /*   * DDR Setup   */ @@ -166,15 +89,6 @@ unsigned long get_board_ddr_clk(void);  #define CONFIG_DDR_SPD  #define CONFIG_FSL_DDR3 -#define CONFIG_SYS_SPD_BUS_NUM	0 -#define SPD_EEPROM_ADDRESS1	0x51 -#define SPD_EEPROM_ADDRESS2	0x52 -#define SPD_EEPROM_ADDRESS3	0x53 -#define SPD_EEPROM_ADDRESS4	0x54 -#define SPD_EEPROM_ADDRESS5	0x55 -#define SPD_EEPROM_ADDRESS6	0x56 -#define SPD_EEPROM_ADDRESS	SPD_EEPROM_ADDRESS1	/* for p3041/p5010 */ -#define CONFIG_SYS_SDRAM_SIZE	4096	/* for fixed parameter use */  /*   * IFC Definitions @@ -182,171 +96,9 @@ unsigned long get_board_ddr_clk(void);  #define CONFIG_SYS_FLASH_BASE	0xe0000000  #define CONFIG_SYS_FLASH_BASE_PHYS	(0xf00000000ull | CONFIG_SYS_FLASH_BASE) -#define CONFIG_SYS_NOR0_CSPR_EXT	(0xf) -#define CONFIG_SYS_NOR0_CSPR	(CSPR_PHYS_ADDR(CONFIG_SYS_FLASH_BASE_PHYS \ -				+ 0x8000000) | \ -				CSPR_PORT_SIZE_16 | \ -				CSPR_MSEL_NOR | \ -				CSPR_V) -#define CONFIG_SYS_NOR1_CSPR_EXT	(0xf) -#define CONFIG_SYS_NOR1_CSPR	(CSPR_PHYS_ADDR(CONFIG_SYS_FLASH_BASE_PHYS) | \ -				CSPR_PORT_SIZE_16 | \ -				CSPR_MSEL_NOR | \ -				CSPR_V) -#define CONFIG_SYS_NOR_AMASK	IFC_AMASK(128*1024*1024) -/* NOR Flash Timing Params */ -#define CONFIG_SYS_NOR_CSOR	CSOR_NAND_TRHZ_80 - -#define CONFIG_SYS_NOR_FTIM0	(FTIM0_NOR_TACSE(0x4) | \ -				FTIM0_NOR_TEADC(0x5) | \ -				FTIM0_NOR_TEAHC(0x5)) -#define CONFIG_SYS_NOR_FTIM1	(FTIM1_NOR_TACO(0x35) | \ -				FTIM1_NOR_TRAD_NOR(0x1A) |\ -				FTIM1_NOR_TSEQRAD_NOR(0x13)) -#define CONFIG_SYS_NOR_FTIM2	(FTIM2_NOR_TCS(0x4) | \ -				FTIM2_NOR_TCH(0x4) | \ -				FTIM2_NOR_TWPH(0x0E) | \ -				FTIM2_NOR_TWP(0x1c)) -#define CONFIG_SYS_NOR_FTIM3	0x0 - -#define CONFIG_SYS_FLASH_QUIET_TEST -#define CONFIG_FLASH_SHOW_PROGRESS	45 /* count down from 45/5: 9..1 */ - -#define CONFIG_SYS_MAX_FLASH_BANKS	2	/* number of banks */ -#define CONFIG_SYS_MAX_FLASH_SECT	1024	/* sectors per device */ -#define CONFIG_SYS_FLASH_ERASE_TOUT	60000	/* Flash Erase Timeout (ms) */ -#define CONFIG_SYS_FLASH_WRITE_TOUT	500	/* Flash Write Timeout (ms) */ - -#define CONFIG_SYS_FLASH_EMPTY_INFO -#define CONFIG_SYS_FLASH_BANKS_LIST	{CONFIG_SYS_FLASH_BASE_PHYS \ -					+ 0x8000000, CONFIG_SYS_FLASH_BASE_PHYS} - -#define CONFIG_FSL_QIXIS	/* use common QIXIS code */ -#define QIXIS_BASE			0xffdf0000 -#define QIXIS_LBMAP_SWITCH		6 -#define QIXIS_LBMAP_MASK		0x0f -#define QIXIS_LBMAP_SHIFT		0 -#define QIXIS_LBMAP_DFLTBANK		0x00 -#define QIXIS_LBMAP_ALTBANK		0x04 -#define QIXIS_RST_CTL_RESET		0x83 -#define QIXIS_RCFG_CTL_RECONFIG_IDLE	0x20 -#define QIXIS_RCFG_CTL_RECONFIG_START	0x21 -#define QIXIS_RCFG_CTL_WATCHDOG_ENBLE	0x08 -#define QIXIS_BASE_PHYS		(0xf00000000ull | QIXIS_BASE) - -#define CONFIG_SYS_CSPR3_EXT	(0xf) -#define CONFIG_SYS_CSPR3	(CSPR_PHYS_ADDR(QIXIS_BASE_PHYS) \ -				| CSPR_PORT_SIZE_8 \ -				| CSPR_MSEL_GPCM \ -				| CSPR_V) -#define CONFIG_SYS_AMASK3	IFC_AMASK(4 * 1024) -#define CONFIG_SYS_CSOR3	0x0 -/* QIXIS Timing parameters for IFC CS3 */ -#define CONFIG_SYS_CS3_FTIM0		(FTIM0_GPCM_TACSE(0x0e) | \ -					FTIM0_GPCM_TEADC(0x0e) | \ -					FTIM0_GPCM_TEAHC(0x0e)) -#define CONFIG_SYS_CS3_FTIM1		(FTIM1_GPCM_TACO(0xff) | \ -					FTIM1_GPCM_TRAD(0x3f)) -#define CONFIG_SYS_CS3_FTIM2		(FTIM2_GPCM_TCS(0x0e) | \ -					FTIM2_GPCM_TCH(0x0) | \ -					FTIM2_GPCM_TWP(0x1f)) -#define CONFIG_SYS_CS3_FTIM3		0x0 - -/* NAND Flash on IFC */ -#define CONFIG_NAND_FSL_IFC -#define CONFIG_SYS_NAND_BASE		0xff800000 -#define CONFIG_SYS_NAND_BASE_PHYS	(0xf00000000ull | CONFIG_SYS_NAND_BASE) - -#define CONFIG_SYS_NAND_CSPR_EXT	(0xf) -#define CONFIG_SYS_NAND_CSPR	(CSPR_PHYS_ADDR(CONFIG_SYS_NAND_BASE_PHYS) \ -				| CSPR_PORT_SIZE_8 /* Port Size = 8 bit */ \ -				| CSPR_MSEL_NAND	/* MSEL = NAND */ \ -				| CSPR_V) -#define CONFIG_SYS_NAND_AMASK	IFC_AMASK(64*1024) - -#define CONFIG_SYS_NAND_CSOR    (CSOR_NAND_ECC_ENC_EN   /* ECC on encode */ \ -				| CSOR_NAND_ECC_DEC_EN  /* ECC on decode */ \ -				| CSOR_NAND_ECC_MODE_4  /* 4-bit ECC */ \ -				| CSOR_NAND_RAL_3	/* RAL = 2Byes */ \ -				| CSOR_NAND_PGS_2K	/* Page Size = 2K */ \ -				| CSOR_NAND_SPRZ_64/* Spare size = 64 */ \ -				| CSOR_NAND_PB(64))	/*Pages Per Block = 64*/ - -#define CONFIG_SYS_NAND_ONFI_DETECTION - -/* ONFI NAND Flash mode0 Timing Params */ -#define CONFIG_SYS_NAND_FTIM0		(FTIM0_NAND_TCCST(0x07) | \ -					FTIM0_NAND_TWP(0x18)   | \ -					FTIM0_NAND_TWCHT(0x07) | \ -					FTIM0_NAND_TWH(0x0a)) -#define CONFIG_SYS_NAND_FTIM1		(FTIM1_NAND_TADLE(0x32) | \ -					FTIM1_NAND_TWBE(0x39)  | \ -					FTIM1_NAND_TRR(0x0e)   | \ -					FTIM1_NAND_TRP(0x18)) -#define CONFIG_SYS_NAND_FTIM2		(FTIM2_NAND_TRAD(0x0f) | \ -					FTIM2_NAND_TREH(0x0a) | \ -					FTIM2_NAND_TWHRE(0x1e)) -#define CONFIG_SYS_NAND_FTIM3		0x0 - -#define CONFIG_SYS_NAND_DDR_LAW		11 - -#define CONFIG_SYS_NAND_BASE_LIST	{ CONFIG_SYS_NAND_BASE } -#define CONFIG_SYS_MAX_NAND_DEVICE	1 -#define CONFIG_MTD_NAND_VERIFY_WRITE -#define CONFIG_CMD_NAND - -#define CONFIG_SYS_NAND_BLOCK_SIZE	(128 * 1024) - -#if defined(CONFIG_NAND) -#define CONFIG_SYS_CSPR0_EXT		CONFIG_SYS_NAND_CSPR_EXT -#define CONFIG_SYS_CSPR0		CONFIG_SYS_NAND_CSPR -#define CONFIG_SYS_AMASK0		CONFIG_SYS_NAND_AMASK -#define CONFIG_SYS_CSOR0		CONFIG_SYS_NAND_CSOR -#define CONFIG_SYS_CS0_FTIM0		CONFIG_SYS_NAND_FTIM0 -#define CONFIG_SYS_CS0_FTIM1		CONFIG_SYS_NAND_FTIM1 -#define CONFIG_SYS_CS0_FTIM2		CONFIG_SYS_NAND_FTIM2 -#define CONFIG_SYS_CS0_FTIM3		CONFIG_SYS_NAND_FTIM3 -#define CONFIG_SYS_CSPR2_EXT		CONFIG_SYS_NOR0_CSPR_EXT -#define CONFIG_SYS_CSPR2		CONFIG_SYS_NOR0_CSPR -#define CONFIG_SYS_AMASK2		CONFIG_SYS_NOR_AMASK -#define CONFIG_SYS_CSOR2		CONFIG_SYS_NOR_CSOR -#define CONFIG_SYS_CS2_FTIM0		CONFIG_SYS_NOR_FTIM0 -#define CONFIG_SYS_CS2_FTIM1		CONFIG_SYS_NOR_FTIM1 -#define CONFIG_SYS_CS2_FTIM2		CONFIG_SYS_NOR_FTIM2 -#define CONFIG_SYS_CS2_FTIM3		CONFIG_SYS_NOR_FTIM3 -#else -#define CONFIG_SYS_CSPR0_EXT		CONFIG_SYS_NOR0_CSPR_EXT -#define CONFIG_SYS_CSPR0		CONFIG_SYS_NOR0_CSPR -#define CONFIG_SYS_AMASK0		CONFIG_SYS_NOR_AMASK -#define CONFIG_SYS_CSOR0		CONFIG_SYS_NOR_CSOR -#define CONFIG_SYS_CS0_FTIM0		CONFIG_SYS_NOR_FTIM0 -#define CONFIG_SYS_CS0_FTIM1		CONFIG_SYS_NOR_FTIM1 -#define CONFIG_SYS_CS0_FTIM2		CONFIG_SYS_NOR_FTIM2 -#define CONFIG_SYS_CS0_FTIM3		CONFIG_SYS_NOR_FTIM3 -#define CONFIG_SYS_CSPR2_EXT		CONFIG_SYS_NAND_CSPR_EXT -#define CONFIG_SYS_CSPR2		CONFIG_SYS_NAND_CSPR -#define CONFIG_SYS_AMASK2		CONFIG_SYS_NAND_AMASK -#define CONFIG_SYS_CSOR2		CONFIG_SYS_NAND_CSOR -#define CONFIG_SYS_CS2_FTIM0		CONFIG_SYS_NAND_FTIM0 -#define CONFIG_SYS_CS2_FTIM1		CONFIG_SYS_NAND_FTIM1 -#define CONFIG_SYS_CS2_FTIM2		CONFIG_SYS_NAND_FTIM2 -#define CONFIG_SYS_CS2_FTIM3		CONFIG_SYS_NAND_FTIM3 -#endif -#define CONFIG_SYS_CSPR1_EXT		CONFIG_SYS_NOR1_CSPR_EXT -#define CONFIG_SYS_CSPR1		CONFIG_SYS_NOR1_CSPR -#define CONFIG_SYS_AMASK1		CONFIG_SYS_NOR_AMASK -#define CONFIG_SYS_CSOR1		CONFIG_SYS_NOR_CSOR -#define CONFIG_SYS_CS1_FTIM0		CONFIG_SYS_NOR_FTIM0 -#define CONFIG_SYS_CS1_FTIM1		CONFIG_SYS_NOR_FTIM1 -#define CONFIG_SYS_CS1_FTIM2		CONFIG_SYS_NOR_FTIM2 -#define CONFIG_SYS_CS1_FTIM3		CONFIG_SYS_NOR_FTIM3  #define CONFIG_SYS_MONITOR_BASE		CONFIG_SYS_TEXT_BASE -#if defined(CONFIG_RAMBOOT_PBL) -#define CONFIG_SYS_RAMBOOT -#endif -  #define CONFIG_BOARD_EARLY_INIT_R	/* call board_early_init_r function */  #define CONFIG_MISC_INIT_R @@ -405,32 +157,11 @@ unsigned long get_board_ddr_clk(void);  /* I2C */  #define CONFIG_SYS_I2C  #define CONFIG_SYS_I2C_FSL -#define CONFIG_SYS_FSL_I2C_SPEED	100000  #define CONFIG_SYS_FSL_I2C_SLAVE	0x7F  #define CONFIG_SYS_FSL_I2C_OFFSET	0x118000 -#define CONFIG_SYS_FSL_I2C2_SPEED	100000  #define CONFIG_SYS_FSL_I2C2_SLAVE	0x7F  #define CONFIG_SYS_FSL_I2C2_OFFSET	0x118100 -#define I2C_MUX_PCA_ADDR_PRI		0x77 /* I2C bus multiplexer,primary */ -#define I2C_MUX_PCA_ADDR_SEC		0x76 /* I2C bus multiplexer,secondary */ - -#define I2C_MUX_CH_DEFAULT	0x8 -#define I2C_MUX_CH_VOL_MONITOR	0xa -#define I2C_MUX_CH_VSC3316_FS	0xc -#define I2C_MUX_CH_VSC3316_BS	0xd - -/* Voltage monitor on channel 2*/ -#define I2C_VOL_MONITOR_ADDR		0x40 -#define I2C_VOL_MONITOR_BUS_V_OFFSET	0x2 -#define I2C_VOL_MONITOR_BUS_V_OVF	0x1 -#define I2C_VOL_MONITOR_BUS_V_SHIFT	3 - -/* VSC Crossbar switches */ -#define CONFIG_VSC_CROSSBAR -#define VSC3316_FSM_TX_ADDR	0x70 -#define VSC3316_FSM_RX_ADDR	0x71 -  /*   * RapidIO   */ @@ -443,44 +174,6 @@ unsigned long get_board_ddr_clk(void);  #define CONFIG_SYS_SRIO2_MEM_SIZE	0x10000000	/* 256M */  /* - * for slave u-boot IMAGE instored in master memory space, - * PHYS must be aligned based on the SIZE - */ -#define CONFIG_SRIO_PCIE_BOOT_IMAGE_MEM_PHYS 0xfef080000ull -#define CONFIG_SRIO_PCIE_BOOT_IMAGE_MEM_BUS1 0xfff80000ull -#define CONFIG_SRIO_PCIE_BOOT_IMAGE_SIZE 0x80000	/* 512K */ -#define CONFIG_SRIO_PCIE_BOOT_IMAGE_MEM_BUS2 0x3fff80000ull -/* - * for slave UCODE and ENV instored in master memory space, - * PHYS must be aligned based on the SIZE - */ -#define CONFIG_SRIO_PCIE_BOOT_UCODE_ENV_MEM_PHYS 0xfef040000ull -#define CONFIG_SRIO_PCIE_BOOT_UCODE_ENV_MEM_BUS 0x3ffe00000ull -#define CONFIG_SRIO_PCIE_BOOT_UCODE_ENV_SIZE 0x40000	/* 256K */ - -/* slave core release by master*/ -#define CONFIG_SRIO_PCIE_BOOT_BRR_OFFSET 0xe00e4 -#define CONFIG_SRIO_PCIE_BOOT_RELEASE_MASK 0x00000001 /* release core 0 */ - -/* - * SRIO_PCIE_BOOT - SLAVE - */ -#ifdef CONFIG_SRIO_PCIE_BOOT_SLAVE -#define CONFIG_SYS_SRIO_PCIE_BOOT_UCODE_ENV_ADDR 0xFFE00000 -#define CONFIG_SYS_SRIO_PCIE_BOOT_UCODE_ENV_ADDR_PHYS \ -		(0x300000000ull | CONFIG_SYS_SRIO_PCIE_BOOT_UCODE_ENV_ADDR) -#endif -/* - * eSPI - Enhanced SPI - */ -#define CONFIG_FSL_ESPI -#define CONFIG_SPI_FLASH -#define CONFIG_SPI_FLASH_SST -#define CONFIG_CMD_SF -#define CONFIG_SF_DEFAULT_SPEED         10000000 -#define CONFIG_SF_DEFAULT_MODE          0 - -/*   * General PCI   * Memory space is mapped 1-1, but I/O space must start from 0.   */ @@ -523,76 +216,6 @@ unsigned long get_board_ddr_clk(void);  #define CONFIG_SYS_PCIE4_IO_PHYS	0xff8030000ull  #define CONFIG_SYS_PCIE4_IO_SIZE	0x00010000	/* 64k */ -/* Qman/Bman */ -#ifndef CONFIG_NOBQFMAN -#define CONFIG_SYS_DPAA_QBMAN		/* Support Q/Bman */ -#define CONFIG_SYS_BMAN_NUM_PORTALS	50 -#define CONFIG_SYS_BMAN_MEM_BASE	0xf4000000 -#define CONFIG_SYS_BMAN_MEM_PHYS	0xff4000000ull -#define CONFIG_SYS_BMAN_MEM_SIZE	0x02000000 -#define CONFIG_SYS_QMAN_NUM_PORTALS	50 -#define CONFIG_SYS_QMAN_MEM_BASE	0xf6000000 -#define CONFIG_SYS_QMAN_MEM_PHYS	0xff6000000ull -#define CONFIG_SYS_QMAN_MEM_SIZE	0x02000000 - -#define CONFIG_SYS_DPAA_FMAN -#define CONFIG_SYS_DPAA_PME -#define CONFIG_SYS_PMAN -#define CONFIG_SYS_DPAA_DCE -#define CONFIG_SYS_INTERLAKEN - -/* Default address of microcode for the Linux Fman driver */ -#if defined(CONFIG_SPIFLASH) -/* - * env is stored at 0x100000, sector size is 0x10000, ucode is stored after - * env, so we got 0x110000. - */ -#define CONFIG_SYS_QE_FW_IN_SPIFLASH -#define CONFIG_SYS_QE_FMAN_FW_ADDR	0x110000 -#elif defined(CONFIG_SDCARD) -/* - * PBL SD boot image should stored at 0x1000(8 blocks), the size of the image is - * about 545KB (1089 blocks), Env is stored after the image, and the env size is - * 0x2000 (16 blocks), 8 + 1089 + 16 = 1113, enlarge it to 1130. - */ -#define CONFIG_SYS_QE_FMAN_FW_IN_MMC -#define CONFIG_SYS_QE_FMAN_FW_ADDR	(512 * 1130) -#elif defined(CONFIG_NAND) -#define CONFIG_SYS_QE_FMAN_FW_IN_NAND -#define CONFIG_SYS_QE_FMAN_FW_ADDR	(6 * CONFIG_SYS_NAND_BLOCK_SIZE) -#elif defined(CONFIG_SRIO_PCIE_BOOT_SLAVE) -/* - * Slave has no ucode locally, it can fetch this from remote. When implementing - * in two corenet boards, slave's ucode could be stored in master's memory - * space, the address can be mapped from slave TLB->slave LAW-> - * slave SRIO or PCIE outbound window->master inbound window-> - * master LAW->the ucode address in master's memory space. - */ -#define CONFIG_SYS_QE_FMAN_FW_IN_REMOTE -#define CONFIG_SYS_QE_FMAN_FW_ADDR	0xFFE00000 -#else -#define CONFIG_SYS_QE_FMAN_FW_IN_NOR -#define CONFIG_SYS_QE_FMAN_FW_ADDR		0xEFF40000 -#endif -#define CONFIG_SYS_QE_FMAN_FW_LENGTH	0x10000 -#define CONFIG_SYS_FDT_PAD		(0x3000 + CONFIG_SYS_QE_FMAN_FW_LENGTH) -#endif /* CONFIG_NOBQFMAN */ - -#ifdef CONFIG_SYS_DPAA_FMAN -#define CONFIG_FMAN_ENET -#define CONFIG_PHYLIB_10G -#define CONFIG_PHY_VITESSE -#define CONFIG_PHY_TERANETICS -#define SGMII_CARD_PORT1_PHY_ADDR 0x1C -#define SGMII_CARD_PORT2_PHY_ADDR 0x1D -#define SGMII_CARD_PORT3_PHY_ADDR 0x1E -#define SGMII_CARD_PORT4_PHY_ADDR 0x1F -#define FM1_10GEC1_PHY_ADDR	0x0 -#define FM1_10GEC2_PHY_ADDR	0x1 -#define FM2_10GEC1_PHY_ADDR	0x2 -#define FM2_10GEC2_PHY_ADDR	0x3 -#endif -  #ifdef CONFIG_PCI  #define CONFIG_PCI_INDIRECT_BRIDGE  #define CONFIG_NET_MULTI @@ -655,30 +278,6 @@ unsigned long get_board_ddr_clk(void);  #endif  /* -* USB -*/ -#define CONFIG_CMD_USB -#define CONFIG_USB_STORAGE -#define CONFIG_USB_EHCI -#define CONFIG_USB_EHCI_FSL -#define CONFIG_EHCI_HCD_INIT_AFTER_RESET -#define CONFIG_CMD_EXT2 -#define CONFIG_HAS_FSL_DR_USB - -#define CONFIG_MMC - -#ifdef CONFIG_MMC -#define CONFIG_FSL_ESDHC -#define CONFIG_SYS_FSL_ESDHC_ADDR       CONFIG_SYS_MPC85xx_ESDHC_ADDR -#define CONFIG_SYS_FSL_ESDHC_BROKEN_TIMEOUT -#define CONFIG_CMD_MMC -#define CONFIG_GENERIC_MMC -#define CONFIG_CMD_EXT2 -#define CONFIG_CMD_FAT -#define CONFIG_DOS_PARTITION -#endif - -/*   * Miscellaneous configurable options   */  #define CONFIG_SYS_LONGHELP			/* undef to save memory	*/ @@ -719,112 +318,11 @@ unsigned long get_board_ddr_clk(void);  /* default location for tftp and bootm */  #define CONFIG_LOADADDR		1000000 -#define CONFIG_BOOTDELAY	10	/* -1 disables auto-boot */  #define CONFIG_BAUDRATE	115200 -#define __USB_PHY_TYPE	utmi - -/* - * T4240 has 3 DDR controllers. Default to 3way_4KB interleaving. It can be - * 3way_1KB, 3way_4KB, 3way_8KB. T4160 has 2 DDR controllers. Default to - * cacheline interleaving. It can be cacheline, page, bank, superbank. - * See doc/README.fsl-ddr for details. - */ -#ifdef CONFIG_PPC_T4240 -#define CTRL_INTLV_PREFERED 3way_4KB -#else -#define CTRL_INTLV_PREFERED cacheline -#endif - -#define	CONFIG_EXTRA_ENV_SETTINGS				\ -	"hwconfig=fsl_ddr:"					\ -	"ctlr_intlv=" __stringify(CTRL_INTLV_PREFERED) ","	\ -	"bank_intlv=auto;"					\ -	"usb1:dr_mode=host,phy_type=" __stringify(__USB_PHY_TYPE) "\0"\ -	"netdev=eth0\0"						\ -	"uboot=" __stringify(CONFIG_UBOOTPATH) "\0"			\ -	"ubootaddr=" __stringify(CONFIG_SYS_TEXT_BASE) "\0"		\ -	"tftpflash=tftpboot $loadaddr $uboot && "		\ -	"protect off $ubootaddr +$filesize && "			\ -	"erase $ubootaddr +$filesize && "			\ -	"cp.b $loadaddr $ubootaddr $filesize && "		\ -	"protect on $ubootaddr +$filesize && "			\ -	"cmp.b $loadaddr $ubootaddr $filesize\0"		\ -	"consoledev=ttyS0\0"					\ -	"ramdiskaddr=2000000\0"					\ -	"ramdiskfile=t4240qds/ramdisk.uboot\0"			\ -	"fdtaddr=c00000\0"					\ -	"fdtfile=t4240qds/t4240qds.dtb\0"				\ -	"bdev=sda3\0"						\ -	"c=ffe\0" - -/* For emulation this causes u-boot to jump to the start of the proof point -   app code automatically */ -#define CONFIG_PROOF_POINTS			\ - "setenv bootargs root=/dev/$bdev rw "		\ - "console=$consoledev,$baudrate $othbootargs;"	\ - "cpu 1 release 0x29000000 - - -;"		\ - "cpu 2 release 0x29000000 - - -;"		\ - "cpu 3 release 0x29000000 - - -;"		\ - "cpu 4 release 0x29000000 - - -;"		\ - "cpu 5 release 0x29000000 - - -;"		\ - "cpu 6 release 0x29000000 - - -;"		\ - "cpu 7 release 0x29000000 - - -;"		\ - "go 0x29000000" -  #define CONFIG_HVBOOT				\   "setenv bootargs config-addr=0x60000000; "	\   "bootm 0x01000000 - 0x00f00000" -#define CONFIG_ALU				\ - "setenv bootargs root=/dev/$bdev rw "		\ - "console=$consoledev,$baudrate $othbootargs;"	\ - "cpu 1 release 0x01000000 - - -;"		\ - "cpu 2 release 0x01000000 - - -;"		\ - "cpu 3 release 0x01000000 - - -;"		\ - "cpu 4 release 0x01000000 - - -;"		\ - "cpu 5 release 0x01000000 - - -;"		\ - "cpu 6 release 0x01000000 - - -;"		\ - "cpu 7 release 0x01000000 - - -;"		\ - "go 0x01000000" - -#define CONFIG_LINUX				\ - "setenv bootargs root=/dev/ram rw "		\ - "console=$consoledev,$baudrate $othbootargs;"	\ - "setenv ramdiskaddr 0x02000000;"		\ - "setenv fdtaddr 0x00c00000;"			\ - "setenv loadaddr 0x1000000;"			\ - "bootm $loadaddr $ramdiskaddr $fdtaddr" - -#define CONFIG_HDBOOT					\ -	"setenv bootargs root=/dev/$bdev rw "		\ -	"console=$consoledev,$baudrate $othbootargs;"	\ -	"tftp $loadaddr $bootfile;"			\ -	"tftp $fdtaddr $fdtfile;"			\ -	"bootm $loadaddr - $fdtaddr" - -#define CONFIG_NFSBOOTCOMMAND			\ -	"setenv bootargs root=/dev/nfs rw "	\ -	"nfsroot=$serverip:$rootpath "		\ -	"ip=$ipaddr:$serverip:$gatewayip:$netmask:$hostname:$netdev:off " \ -	"console=$consoledev,$baudrate $othbootargs;"	\ -	"tftp $loadaddr $bootfile;"		\ -	"tftp $fdtaddr $fdtfile;"		\ -	"bootm $loadaddr - $fdtaddr" - -#define CONFIG_RAMBOOTCOMMAND				\ -	"setenv bootargs root=/dev/ram rw "		\ -	"console=$consoledev,$baudrate $othbootargs;"	\ -	"tftp $ramdiskaddr $ramdiskfile;"		\ -	"tftp $loadaddr $bootfile;"			\ -	"tftp $fdtaddr $fdtfile;"			\ -	"bootm $loadaddr $ramdiskaddr $fdtaddr" - -#define CONFIG_BOOTCOMMAND		CONFIG_LINUX - -#ifdef CONFIG_SECURE_BOOT -#include <asm/fsl_secure_boot.h> -#endif -  #endif	/* __CONFIG_H */ |