diff options
| author | Marek Vasut <marek.vasut@gmail.com> | 2010-03-07 23:35:48 +0100 | 
|---|---|---|
| committer | Marek Vasut <marek.vasut@gmail.com> | 2010-07-14 23:27:20 +0200 | 
| commit | 18a00dfd76d6a4bf99098fdb19e7883eaed450b5 (patch) | |
| tree | c323da926c2d0ae4fc94f25fac82014f390d4f77 | |
| parent | 546cd608dd96e1863a21ce3bb5f93080f23fafc6 (diff) | |
| download | olio-uboot-2014.01-18a00dfd76d6a4bf99098fdb19e7883eaed450b5.tar.xz olio-uboot-2014.01-18a00dfd76d6a4bf99098fdb19e7883eaed450b5.zip | |
PXA: Voipac PXA270 Support
This patch adds support for the Voipac PXA270 board. The support includes:
- Ethernet
- USB
- MMC
- NOR Booting
- OneNAND Booting
- LCD
- HDD
Signed-off-by: Marek Vasut <marek.vasut@gmail.com>
Acked-by: Scott Wood <scottwood@freescale.com>
| -rwxr-xr-x | MAKEALL | 2 | ||||
| -rw-r--r-- | Makefile | 9 | ||||
| -rw-r--r-- | board/vpac270/Makefile | 48 | ||||
| -rw-r--r-- | board/vpac270/config.mk | 1 | ||||
| -rw-r--r-- | board/vpac270/lowlevel_init.S | 40 | ||||
| -rw-r--r-- | board/vpac270/u-boot.lds | 55 | ||||
| -rw-r--r-- | board/vpac270/vpac270.c | 127 | ||||
| -rw-r--r-- | include/configs/vpac270.h | 323 | ||||
| -rw-r--r-- | onenand_ipl/board/vpac270/Makefile | 83 | ||||
| -rw-r--r-- | onenand_ipl/board/vpac270/config.mk | 1 | ||||
| -rw-r--r-- | onenand_ipl/board/vpac270/lowlevel_init.S | 34 | ||||
| -rw-r--r-- | onenand_ipl/board/vpac270/u-boot.onenand.lds | 51 | ||||
| -rw-r--r-- | onenand_ipl/board/vpac270/vpac270.c | 42 | 
13 files changed, 816 insertions, 0 deletions
| @@ -713,6 +713,8 @@ LIST_pxa="		\  	polaris		\  	pxa255_idp	\  	trizepsiv	\ +	vpac270_nor	\ +	vpac270_onenand	\  	wepep250	\  	xaeniax		\  	xm250		\ @@ -2171,6 +2171,15 @@ trizepsiv_config	:	unconfig  	fi;  	@$(MKCONFIG) -n $@ -a trizepsiv arm pxa trizepsiv +vpac270_nor_config \ +vpac270_onenand_config	: unconfig +	@mkdir -p $(obj)include +	@if [ "$(findstring onenand,$@)" ] ; then \ +		echo "#define CONFIG_ONENAND_U_BOOT" \ +			>>$(obj)include/config.h ; \ +	fi; +	@$(MKCONFIG) -n $@ -a vpac270 arm pxa vpac270 +  #########################################################################  ## ARM1136 Systems  ######################################################################### diff --git a/board/vpac270/Makefile b/board/vpac270/Makefile new file mode 100644 index 000000000..0f3eacd43 --- /dev/null +++ b/board/vpac270/Makefile @@ -0,0 +1,48 @@ + +# +# (C) Copyright 2000 +# Wolfgang Denk, DENX Software Engineering, wd@denx.de. +# +# See file CREDITS for list of people who contributed to this +# project. +# +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU General Public License as +# published by the Free Software Foundation; either version 2 of +# the License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, +# MA 02111-1307 USA +# + +include $(TOPDIR)/config.mk + +LIB	= lib$(BOARD).a + +OBJS	:= vpac270.o +SOBJS	:= lowlevel_init.o + +$(LIB):	$(OBJS) $(SOBJS) +	$(AR) crv $@ $(OBJS) $(SOBJS) + +clean: +	rm -f $(SOBJS) $(OBJS) + +distclean:	clean +	rm -f $(LIB) core *.bak .depend + +######################################################################### + +.depend:	Makefile $(SOBJS:.o=.S) $(OBJS:.o=.c) +		$(CC) -M $(CPPFLAGS) $(SOBJS:.o=.S) $(OBJS:.o=.c) > $@ + +-include .depend + +######################################################################### diff --git a/board/vpac270/config.mk b/board/vpac270/config.mk new file mode 100644 index 000000000..1d650acd9 --- /dev/null +++ b/board/vpac270/config.mk @@ -0,0 +1 @@ +TEXT_BASE = 0xa1000000 diff --git a/board/vpac270/lowlevel_init.S b/board/vpac270/lowlevel_init.S new file mode 100644 index 000000000..ec0d12c85 --- /dev/null +++ b/board/vpac270/lowlevel_init.S @@ -0,0 +1,40 @@ +/* + * Voipac PXA270 Lowlevel Hardware Initialization + * + * Copyright (C) 2010 Marek Vasut <marek.vasut@gmail.com> + * + * + * 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 <config.h> +#include <version.h> +#include <asm/arch/pxa-regs.h> +#include <asm/arch/macro.h> + +.globl lowlevel_init +lowlevel_init: +	pxa_gpio_setup +	pxa_wait_ticks	0x8000 +	pxa_mem_setup +	pxa_wakeup +	pxa_intr_setup +	pxa_clock_setup + +	mov	pc, lr diff --git a/board/vpac270/u-boot.lds b/board/vpac270/u-boot.lds new file mode 100644 index 000000000..58c371df0 --- /dev/null +++ b/board/vpac270/u-boot.lds @@ -0,0 +1,55 @@ +/* + * (C) Copyright 2000 + * Wolfgang Denk, DENX Software Engineering, wd@denx.de. + * + * See file CREDITS for list of people who contributed to this + * project. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License as + * published by the Free Software Foundation; either version 2 of + * the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, + * MA 02111-1307 USA + */ + +OUTPUT_FORMAT("elf32-littlearm", "elf32-littlearm", "elf32-littlearm") +OUTPUT_ARCH(arm) +ENTRY(_start) +SECTIONS +{ +	. = 0x00000000; + +	. = ALIGN(4); +	.text      : +	{ +	  cpu/pxa/start.o	(.text) +	  *(.text) +	} + +	. = ALIGN(4); +	.rodata : { *(.rodata) } + +	. = ALIGN(4); +	.data : { *(.data) } + +	. = ALIGN(4); +	.got : { *(.got) } + +	__u_boot_cmd_start = .; +	.u_boot_cmd : { *(.u_boot_cmd) } +	__u_boot_cmd_end = .; + +	. = ALIGN(4); +	__bss_start = .; +	.bss : { *(.bss) } +	_end = .; +} diff --git a/board/vpac270/vpac270.c b/board/vpac270/vpac270.c new file mode 100644 index 000000000..48e93ab0d --- /dev/null +++ b/board/vpac270/vpac270.c @@ -0,0 +1,127 @@ +/* + * (C) Copyright 2004 + * Robert Whaley, Applied Data Systems, Inc. rwhaley@applieddata.net + * + * (C) Copyright 2002 + * Kyle Harris, Nexus Technologies, Inc. kharris@nexus-tech.net + * + * (C) Copyright 2002 + * Sysgo Real-Time Solutions, GmbH <www.elinos.com> + * Marius Groeger <mgroeger@sysgo.de> + * + * See file CREDITS for list of people who contributed to this + * project. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License as + * published by the Free Software Foundation; either version 2 of + * the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, + * MA 02111-1307 USA + */ + +#include <common.h> +#include <asm/arch/hardware.h> + +DECLARE_GLOBAL_DATA_PTR; + +/* ------------------------------------------------------------------------- */ + +/* + * Miscelaneous platform dependent initialisations + */ +extern struct serial_device serial_ffuart_device; +extern struct serial_device serial_btuart_device; +extern struct serial_device serial_stuart_device; + +struct serial_device *default_serial_console (void) +{ +	return &serial_ffuart_device; +} + +int board_init (void) +{ +	/* memory and cpu-speed are setup before relocation */ +	/* so we do _nothing_ here */ + +	/* arch number of vpac270 */ +	gd->bd->bi_arch_number = MACH_TYPE_VPAC270; + +	/* adress of boot parameters */ +	gd->bd->bi_boot_params = 0xa0000100; + +	return 0; +} + +int dram_init (void) +{ +	gd->bd->bi_dram[0].start = PHYS_SDRAM_1; +	gd->bd->bi_dram[1].start = PHYS_SDRAM_2; + +	gd->bd->bi_dram[0].size = PHYS_SDRAM_1_SIZE; +	gd->bd->bi_dram[1].size = PHYS_SDRAM_2_SIZE; + +	return 0; +} + +int usb_board_init(void) +{ +	UHCHR = (UHCHR | UHCHR_PCPL | UHCHR_PSPL) & +		~(UHCHR_SSEP0 | UHCHR_SSEP1 | UHCHR_SSEP2 | UHCHR_SSE); + +	UHCHR |= UHCHR_FSBIR; + +	while (UHCHR & UHCHR_FSBIR); + +	UHCHR &= ~UHCHR_SSE; +	UHCHIE = (UHCHIE_UPRIE | UHCHIE_RWIE); + +	/* Clear any OTG Pin Hold */ +	if (PSSR & PSSR_OTGPH) +		PSSR |= PSSR_OTGPH; + +	UHCRHDA &= ~(0x200); +	UHCRHDA |= 0x100; + +	/* Set port power control mask bits, only 3 ports. */ +	UHCRHDB |= (0x7<<17); + +	/* enable port 2 */ +	UP2OCR |= UP2OCR_HXOE | UP2OCR_HXS | UP2OCR_DMPDE | UP2OCR_DPPDE; + +	return 0; +} + +void usb_board_init_fail(void) +{ +	return; +} + +void usb_board_stop(void) +{ +	UHCHR |= UHCHR_FHR; +	udelay(11); +	UHCHR &= ~UHCHR_FHR; + +	UHCCOMS |= 1; +	udelay(10); + +	CKEN &= ~CKEN10_USBHOST; + +	return; +} + +#ifdef CONFIG_DRIVER_DM9000 +int board_eth_init(bd_t *bis) +{ +	return dm9000_initialize(bis); +} +#endif diff --git a/include/configs/vpac270.h b/include/configs/vpac270.h new file mode 100644 index 000000000..6d029954b --- /dev/null +++ b/include/configs/vpac270.h @@ -0,0 +1,323 @@ +/* + * Voipac PXA270 configuration file + * + * Copyright (C) 2010 Marek Vasut <marek.vasut@gmail.com> + * + * 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 __CONFIG_H +#define __CONFIG_H + +/* + * High Level Board Configuration Options + */ +#define	CONFIG_PXA27X		1	/* Marvell PXA270 CPU */ +#define	CONFIG_VPAC270		1	/* Voipac PXA270 board */ + +#undef	BOARD_LATE_INIT +#undef	CONFIG_SKIP_RELOCATE_UBOOT +#undef	CONFIG_USE_IRQ +#undef	CONFIG_SKIP_LOWLEVEL_INIT + +/* + * Environment settings + */ +#define	CONFIG_ENV_SIZE			0x4000 +#define	CONFIG_SYS_MALLOC_LEN		(CONFIG_ENV_SIZE + 128*1024) +#define	CONFIG_SYS_GBL_DATA_SIZE	128 + +#define	CONFIG_ENV_OVERWRITE		/* override default environment */ + +#define	CONFIG_BOOTCOMMAND						\ +	"if mmc init && fatload mmc 0 0xa4000000 uImage; then "		\ +		"bootm 0xa4000000; "					\ +	"fi; "								\ +	"if usb reset && fatload usb 0 0xa4000000 uImage; then "	\ +		"bootm 0xa4000000; "					\ +	"fi; "								\ +	"bootm 0x40000;" +#define	CONFIG_BOOTARGS			"console=tty0 console=ttyS0,115200" +#define	CONFIG_TIMESTAMP +#define	CONFIG_BOOTDELAY		2	/* Autoboot delay */ +#define	CONFIG_CMDLINE_TAG +#define	CONFIG_SETUP_MEMORY_TAGS + +#define	CONFIG_LZMA			/* LZMA compression support */ + +/* + * Serial Console Configuration + */ +#define	CONFIG_PXA_SERIAL +#define	CONFIG_FFUART			1 +#define	CONFIG_BAUDRATE			115200 +#define	CONFIG_SYS_BAUDRATE_TABLE	{ 9600, 19200, 38400, 57600, 115200 } + +/* + * Bootloader Components Configuration + */ +#include <config_cmd_default.h> + +#define	CONFIG_CMD_NET +#define	CONFIG_CMD_ENV +#undef	CONFIG_CMD_IMLS +#define	CONFIG_CMD_MMC +#define	CONFIG_CMD_USB +#undef	CONFIG_LCD +#define	CONFIG_CMD_IDE + +#ifdef	CONFIG_ONENAND_U_BOOT +#undef	CONFIG_CMD_FLASH +#define	CONFIG_CMD_ONENAND +#else +#define	CONFIG_CMD_FLASH +#undef	CONFIG_CMD_ONENAND +#endif + +/* + * Networking Configuration + *  chip on the Voipac PXA270 board + */ +#ifdef	CONFIG_CMD_NET +#define	CONFIG_CMD_PING +#define	CONFIG_CMD_DHCP + +#define	CONFIG_NET_MULTI		1 +#define	CONFIG_DRIVER_DM9000		1 +#define CONFIG_DM9000_BASE		0x08000300	/* CS2 */ +#define DM9000_IO			(CONFIG_DM9000_BASE) +#define DM9000_DATA			(CONFIG_DM9000_BASE + 4) +#define	CONFIG_NET_RETRY_COUNT		10 + +#define	CONFIG_BOOTP_BOOTFILESIZE +#define	CONFIG_BOOTP_BOOTPATH +#define	CONFIG_BOOTP_GATEWAY +#define	CONFIG_BOOTP_HOSTNAME +#endif + +/* + * MMC Card Configuration + */ +#ifdef	CONFIG_CMD_MMC +#define	CONFIG_MMC +#define	CONFIG_PXA_MMC +#define	CONFIG_SYS_MMC_BASE		0xF0000000 +#define	CONFIG_CMD_FAT +#define	CONFIG_DOS_PARTITION +#endif + +/* + * KGDB + */ +#ifdef	CONFIG_CMD_KGDB +#define	CONFIG_KGDB_BAUDRATE		230400		/* speed to run kgdb serial port */ +#define	CONFIG_KGDB_SER_INDEX		2		/* which serial port to use */ +#endif + +/* + * HUSH Shell Configuration + */ +#define	CONFIG_SYS_HUSH_PARSER		1 +#define	CONFIG_SYS_PROMPT_HUSH_PS2	"> " + +#define	CONFIG_SYS_LONGHELP				/* undef to save memory	*/ +#ifdef	CONFIG_SYS_HUSH_PARSER +#define	CONFIG_SYS_PROMPT		"$ "		/* Monitor Command Prompt */ +#else +#define	CONFIG_SYS_PROMPT		"=> "		/* Monitor Command Prompt */ +#endif +#define	CONFIG_SYS_CBSIZE		256		/* Console I/O Buffer Size */ +#define	CONFIG_SYS_PBSIZE		(CONFIG_SYS_CBSIZE+sizeof(CONFIG_SYS_PROMPT)+16)	/* Print Buffer Size */ +#define	CONFIG_SYS_MAXARGS		16		/* max number of command args */ +#define	CONFIG_SYS_BARGSIZE		CONFIG_SYS_CBSIZE	/* Boot Argument Buffer Size */ +#define	CONFIG_SYS_DEVICE_NULLDEV	1 + +/* + * Clock Configuration + */ +#undef	CONFIG_SYS_CLKS_IN_HZ +#define	CONFIG_SYS_HZ			3250000		/* Timer @ 3250000 Hz */ +#define CONFIG_SYS_CPUSPEED		0x190		/* standard setting for 312MHz; L=16, N=1.5, A=0, SDCLK!=SystemBus */ + +/* + * Stack sizes + * + * The stack sizes are set up in start.S using the settings below + */ +#define	CONFIG_STACKSIZE		(128*1024)	/* regular stack */ +#ifdef	CONFIG_USE_IRQ +#define	CONFIG_STACKSIZE_IRQ		(4*1024)	/* IRQ stack */ +#define	CONFIG_STACKSIZE_FIQ		(4*1024)	/* FIQ stack */ +#endif + +/* + * DRAM Map + */ +#define	CONFIG_NR_DRAM_BANKS		2		/* We have 2 banks of DRAM */ +#define	PHYS_SDRAM_1			0xa0000000	/* SDRAM Bank #1 */ +#define	PHYS_SDRAM_1_SIZE		0x08000000	/* 128 MB */ +#define	PHYS_SDRAM_2			0x80000000	/* SDRAM Bank #2 */ +#define	PHYS_SDRAM_2_SIZE		0x08000000	/* 128 MB */ + +#define	CONFIG_SYS_DRAM_BASE		0xa0000000	/* CS0 */ +#define	CONFIG_SYS_DRAM_SIZE		0x10000000	/* 256 MB DRAM */ + +#define CONFIG_SYS_MEMTEST_START	0xa0400000	/* memtest works on */ +#define CONFIG_SYS_MEMTEST_END		0xa0800000	/* 4 ... 8 MB in DRAM */ + +#define	CONFIG_SYS_LOAD_ADDR		(0x5c000000) + +/* + * NOR FLASH + */ +#if	defined(CONFIG_CMD_FLASH)	/* NOR */ +#define	PHYS_FLASH_1			0x00000000	/* Flash Bank #1 */ +#define	PHYS_FLASH_2			0x02000000	/* Flash Bank #2 */ + +#define	CONFIG_SYS_FLASH_CFI +#define	CONFIG_FLASH_CFI_DRIVER		1 + +#define	CONFIG_SYS_MAX_FLASH_SECT	(4 + 255) +#define	CONFIG_SYS_MAX_FLASH_BANKS	2 +#define	CONFIG_SYS_FLASH_BANKS_LIST	{ PHYS_FLASH_1, PHYS_FLASH_2 } + +#define	CONFIG_SYS_FLASH_ERASE_TOUT	(25*CONFIG_SYS_HZ) +#define	CONFIG_SYS_FLASH_WRITE_TOUT	(25*CONFIG_SYS_HZ) + +#define	CONFIG_SYS_FLASH_USE_BUFFER_WRITE	1 +#define	CONFIG_SYS_FLASH_PROTECTION		1 + +#define CONFIG_ENV_IS_IN_FLASH		1 + +#elif	defined(CONFIG_CMD_ONENAND)	/* OneNAND */ +#define	CONFIG_SYS_NO_FLASH +#define	CONFIG_SYS_ONENAND_BASE		0x00000000 +#define	CONFIG_ENV_IS_IN_ONENAND	1 + +#else	/* No flash */ +#define	CONFIG_SYS_NO_FLASH +#define	CONFIG_SYS_ENV_IS_NOWHERE +#endif + +#define	CONFIG_SYS_MONITOR_BASE		0x000000 +#define	CONFIG_SYS_MONITOR_LEN		0x40000 + +#define CONFIG_ENV_ADDR		(CONFIG_SYS_MONITOR_LEN) +#define CONFIG_ENV_SECT_SIZE	0x40000 +#define CONFIG_ENV_ADDR_REDUND	(CONFIG_ENV_ADDR + CONFIG_ENV_SECT_SIZE) +#define CONFIG_ENV_SIZE_REDUND	(CONFIG_ENV_SIZE) + +/* + * IDE + */ +#ifdef	CONFIG_CMD_IDE +#define	CONFIG_LBA48 +#undef	CONFIG_IDE_LED +#undef	CONFIG_IDE_RESET + +#define CONFIG_SYS_IDE_MAXBUS		1 +#define CONFIG_SYS_IDE_MAXDEVICE	1 + +#define CONFIG_SYS_ATA_BASE_ADDR	0x0c000000 +#define CONFIG_SYS_ATA_IDE0_OFFSET	0x0 + +#define CONFIG_SYS_ATA_DATA_OFFSET	0x120 +#define CONFIG_SYS_ATA_REG_OFFSET	0x120 +#define CONFIG_SYS_ATA_ALT_OFFSET	0x120 + +#define	CONFIG_SYS_ATA_STRIDE		2 +#endif + +/* + * GPIO settings + */ +#define	CONFIG_SYS_GPSR0_VAL	0x01308800 +#define	CONFIG_SYS_GPSR1_VAL	0x00cf0000 +#define	CONFIG_SYS_GPSR2_VAL	0x922ac000 +#define	CONFIG_SYS_GPSR3_VAL	0x0161e800 + +#define	CONFIG_SYS_GPCR0_VAL	0x00010000 +#define	CONFIG_SYS_GPCR1_VAL	0x0 +#define	CONFIG_SYS_GPCR2_VAL	0x0 +#define	CONFIG_SYS_GPCR3_VAL	0x0 + +#define	CONFIG_SYS_GPDR0_VAL	0xcbb18800 +#define	CONFIG_SYS_GPDR1_VAL	0xfccfa981 +#define	CONFIG_SYS_GPDR2_VAL	0x922affff +#define	CONFIG_SYS_GPDR3_VAL	0x0161e904 + +#define	CONFIG_SYS_GAFR0_L_VAL	0x00100000 +#define	CONFIG_SYS_GAFR0_U_VAL	0xa5da8510 +#define	CONFIG_SYS_GAFR1_L_VAL	0x6992901a +#define	CONFIG_SYS_GAFR1_U_VAL	0xaaa5a0aa +#define	CONFIG_SYS_GAFR2_L_VAL	0xaaaaaaaa +#define	CONFIG_SYS_GAFR2_U_VAL	0x4109a401 +#define	CONFIG_SYS_GAFR3_L_VAL	0x54010310 +#define	CONFIG_SYS_GAFR3_U_VAL	0x00025401 + +#define	CONFIG_SYS_PSSR_VAL	0x30 + +/* + * Clock settings + */ +#define	CONFIG_SYS_CKEN		0x00500240 +#define	CONFIG_SYS_CCCR		0x02000290 + +/* + * Memory settings + */ +#define	CONFIG_SYS_MSC0_VAL	0x3ffc95fa +#define	CONFIG_SYS_MSC1_VAL	0x02ccf974 +#define	CONFIG_SYS_MSC2_VAL	0x00000000 +#define	CONFIG_SYS_MDCNFG_VAL	0x8ad30ad3 +#define	CONFIG_SYS_MDREFR_VAL	0x201fe01e +#define	CONFIG_SYS_MDMRS_VAL	0x00000000 +#define	CONFIG_SYS_FLYCNFG_VAL	0x00000000 +#define	CONFIG_SYS_SXCNFG_VAL	0x40044004 +#define	CONFIG_SYS_MEM_BUF_IMP	0x0f + +/* + * PCMCIA and CF Interfaces + */ +#define	CONFIG_SYS_MECR_VAL	0x00000001 +#define	CONFIG_SYS_MCMEM0_VAL	0x00014307 +#define	CONFIG_SYS_MCMEM1_VAL	0x00014307 +#define	CONFIG_SYS_MCATT0_VAL	0x0001c787 +#define	CONFIG_SYS_MCATT1_VAL	0x0001c787 +#define	CONFIG_SYS_MCIO0_VAL	0x0001430f +#define	CONFIG_SYS_MCIO1_VAL	0x0001430f + +/* + * LCD + */ +#ifdef	CONFIG_LCD +#define CONFIG_VOIPAC_LCD +#endif + +/* + * USB + */ +#ifdef CONFIG_CMD_USB +#define	CONFIG_USB_OHCI_NEW +#define	CONFIG_SYS_USB_OHCI_CPU_INIT +#define	CONFIG_SYS_USB_OHCI_BOARD_INIT +#define	CONFIG_SYS_USB_OHCI_MAX_ROOT_PORTS	2 +#define	CONFIG_SYS_USB_OHCI_REGS_BASE	0x4C000000 +#define	CONFIG_SYS_USB_OHCI_SLOT_NAME	"vpac270" +#define	CONFIG_USB_STORAGE +#endif + +#endif	/* __CONFIG_H */ diff --git a/onenand_ipl/board/vpac270/Makefile b/onenand_ipl/board/vpac270/Makefile new file mode 100644 index 000000000..22d0410cc --- /dev/null +++ b/onenand_ipl/board/vpac270/Makefile @@ -0,0 +1,83 @@ +IPL	=onenand_ipl +include $(TOPDIR)/config.mk + +LDSCRIPT= $(TOPDIR)/onenand_ipl/board/$(BOARDDIR)/u-boot.onenand.lds +LDFLAGS	= -Bstatic -T $(onenandobj)u-boot.lds -Ttext $(TEXT_BASE) $(PLATFORM_LDFLAGS) +AFLAGS	+= -DCONFIG_PRELOADER -DCONFIG_ONENAND_IPL +CFLAGS	+= -DCONFIG_PRELOADER -DCONFIG_ONENAND_IPL +OBJCFLAGS += --gap-fill=0x00 + +SOBJS	:= lowlevel_init.o +SOBJS	+= start.o +COBJS	:= vpac270.o +COBJS	+= onenand_read.o +COBJS	+= onenand_boot.o + +SRCS	:= $(addprefix $(obj),$(SOBJS:.o=.S) $(COBJS:.o=.c)) +OBJS	:= $(addprefix $(obj),$(SOBJS) $(COBJS)) +__OBJS	:= $(SOBJS) $(COBJS) +LNDIR	:= $(OBJTREE)/onenand_ipl/board/$(BOARDDIR) + +onenandobj	:= $(OBJTREE)/onenand_ipl/ + +ALL	= $(onenandobj)onenand-ipl $(onenandobj)onenand-ipl.bin $(onenandobj)onenand-ipl-2k.bin + +all:	$(obj).depend $(ALL) + +$(onenandobj)onenand-ipl-2k.bin:	$(onenandobj)onenand-ipl +	$(OBJCOPY) ${OBJCFLAGS} --pad-to=0x5c040400 -O binary $< $@ + +$(onenandobj)onenand-ipl.bin:	$(onenandobj)onenand-ipl +	$(OBJCOPY) ${OBJCFLAGS} -O binary $< $@ + +$(onenandobj)onenand-ipl:	$(OBJS) $(onenandobj)u-boot.lds +	cd $(LNDIR) && $(LD) $(LDFLAGS) $$UNDEF_SYM $(__OBJS) \ +		-Map $@.map -o $@ + +$(onenandobj)u-boot.lds:	$(LDSCRIPT) +	$(CPP) $(CPPFLAGS) $(LDPPFLAGS) -ansi -D__ASSEMBLY__ -P - <$^ >$@ + +# create symbolic links from common files + +# from cpu directory +$(obj)start.S: +	@rm -f $@ +	ln -s $(SRCTREE)/$(CPUDIR)/start.S $@ + +# from onenand_ipl directory +$(obj)onenand_ipl.h: +	@rm -f $@ +	ln -s $(SRCTREE)/onenand_ipl/onenand_ipl.h $@ + +$(obj)onenand_boot.c:	$(obj)onenand_ipl.h +	@rm -f $@ +	ln -s $(SRCTREE)/onenand_ipl/onenand_boot.c $@ + +$(obj)onenand_read.c:	$(obj)onenand_ipl.h +	@rm -f $@ +	ln -s $(SRCTREE)/onenand_ipl/onenand_read.c $@ + +ifneq ($(OBJTREE), $(SRCTREE)) +$(obj)vpac270.c: +	@rm -f $@ +	ln -s $(SRCTREE)/onenand_ipl/board/$(BOARDDIR)/vpac270.c $@ + +$(obj)lowlevel_init.S: +	@rm -f $@ +	ln -s $(SRCTREE)/onenand_ipl/board/$(BOARDDIR)/lowlevel_init.S $@ +endif + +######################################################################### + +$(obj)%.o:	$(obj)%.S +	$(CC) $(AFLAGS) -c -o $@ $< + +$(obj)%.o:	$(obj)$.c +	$(CC) $(CFLAGS) -c -o $@ $< + +# defines $(obj).depend target +include $(SRCTREE)/rules.mk + +sinclude $(obj).depend + +######################################################################### diff --git a/onenand_ipl/board/vpac270/config.mk b/onenand_ipl/board/vpac270/config.mk new file mode 100644 index 000000000..f071dea0a --- /dev/null +++ b/onenand_ipl/board/vpac270/config.mk @@ -0,0 +1 @@ +TEXT_BASE = 0x5c03fc00 diff --git a/onenand_ipl/board/vpac270/lowlevel_init.S b/onenand_ipl/board/vpac270/lowlevel_init.S new file mode 100644 index 000000000..e79d8dd1a --- /dev/null +++ b/onenand_ipl/board/vpac270/lowlevel_init.S @@ -0,0 +1,34 @@ +/* + * Voipac PXA270 Lowlevel Hardware Initialization + * + * Copyright (C) 2010 Marek Vasut <marek.vasut@gmail.com> + * + * + * 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 <config.h> +#include <version.h> +#include <asm/arch/pxa-regs.h> +#include <asm/arch/macro.h> + +.globl lowlevel_init +lowlevel_init: +	pxa_clock_setup +	mov	pc, lr diff --git a/onenand_ipl/board/vpac270/u-boot.onenand.lds b/onenand_ipl/board/vpac270/u-boot.onenand.lds new file mode 100644 index 000000000..b2e7557f3 --- /dev/null +++ b/onenand_ipl/board/vpac270/u-boot.onenand.lds @@ -0,0 +1,51 @@ +/* + * (C) Copyright 2000 + * Wolfgang Denk, DENX Software Engineering, wd@denx.de. + * + * See file CREDITS for list of people who contributed to this + * project. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License as + * published by the Free Software Foundation; either version 2 of + * the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, + * MA 02111-1307 USA + */ + +OUTPUT_FORMAT("elf32-littlearm", "elf32-littlearm", "elf32-littlearm") +OUTPUT_ARCH(arm) +ENTRY(_start) +SECTIONS +{ +	. = 0x00000000; + +	. = ALIGN(4); +	.text      : +	{ +	  start.o	(.text) +	  *(.text) +	} + +	. = ALIGN(4); +	.rodata : { *(SORT_BY_ALIGNMENT(SORT_BY_NAME(.rodata*))) } + +	. = ALIGN(4); +	.data : { *(.data) } + +	. = ALIGN(4); +	.got : { *(.got) } + +	. = ALIGN(4); +	__bss_start = .; +	.bss : { *(.bss) . = ALIGN(4); } +	_end = .; +} diff --git a/onenand_ipl/board/vpac270/vpac270.c b/onenand_ipl/board/vpac270/vpac270.c new file mode 100644 index 000000000..a1eb331fd --- /dev/null +++ b/onenand_ipl/board/vpac270/vpac270.c @@ -0,0 +1,42 @@ +/* + * (C) Copyright 2004 + * Robert Whaley, Applied Data Systems, Inc. rwhaley@applieddata.net + * + * (C) Copyright 2002 + * Kyle Harris, Nexus Technologies, Inc. kharris@nexus-tech.net + * + * (C) Copyright 2002 + * Sysgo Real-Time Solutions, GmbH <www.elinos.com> + * Marius Groeger <mgroeger@sysgo.de> + * + * See file CREDITS for list of people who contributed to this + * project. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License as + * published by the Free Software Foundation; either version 2 of + * the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, + * MA 02111-1307 USA + */ + +#include <common.h> +#include <asm/arch/hardware.h> + +int board_init (void) +{ +	return 0; +} + +int s_init(int skip) +{ +	return 0; +} |