Added initial support for Phytec phyCORE-AM335x. Signed-off-by: Teresa Gámez <t.ga...@phytec.de> --- arch/arm/Makefile | 1 + arch/arm/boards/pcm051/Makefile | 1 + arch/arm/boards/pcm051/board.c | 72 +++++++++++++++++++++++++ arch/arm/boards/pcm051/config.h | 21 +++++++ arch/arm/boards/pcm051/env/boot.d/01 | 1 + arch/arm/boards/pcm051/env/boot/disk | 10 ++++ arch/arm/boards/pcm051/env/init/automount | 32 +++++++++++ arch/arm/boards/pcm051/env/init/bootargs-base | 9 +++ arch/arm/boards/pcm051/env/init/general | 12 ++++ arch/arm/boards/pcm051/env/init/hostname | 8 +++ arch/arm/boards/pcm051/env/network/eth0 | 15 +++++ arch/arm/configs/pcm051_defconfig | 56 +++++++++++++++++++ arch/arm/mach-omap/Kconfig | 10 ++++ 13 files changed, 248 insertions(+), 0 deletions(-) create mode 100644 arch/arm/boards/pcm051/Makefile create mode 100644 arch/arm/boards/pcm051/board.c create mode 100644 arch/arm/boards/pcm051/config.h create mode 120000 arch/arm/boards/pcm051/env/boot.d/01 create mode 100644 arch/arm/boards/pcm051/env/boot/disk create mode 100644 arch/arm/boards/pcm051/env/init/automount create mode 100644 arch/arm/boards/pcm051/env/init/bootargs-base create mode 100644 arch/arm/boards/pcm051/env/init/general create mode 100644 arch/arm/boards/pcm051/env/init/hostname create mode 100644 arch/arm/boards/pcm051/env/network/eth0 create mode 100644 arch/arm/configs/pcm051_defconfig
diff --git a/arch/arm/Makefile b/arch/arm/Makefile index 208f0f4..821405f 100644 --- a/arch/arm/Makefile +++ b/arch/arm/Makefile @@ -109,6 +109,7 @@ board-$(CONFIG_MACH_PCM027) := pcm027 board-$(CONFIG_MACH_PCM037) := pcm037 board-$(CONFIG_MACH_PCM038) := pcm038 board-$(CONFIG_MACH_PCM043) := pcm043 +board-$(CONFIG_MACH_PCM051) := pcm051 board-$(CONFIG_MACH_PM9261) := pm9261 board-$(CONFIG_MACH_PM9263) := pm9263 board-$(CONFIG_MACH_PM9G45) := pm9g45 diff --git a/arch/arm/boards/pcm051/Makefile b/arch/arm/boards/pcm051/Makefile new file mode 100644 index 0000000..dcfc293 --- /dev/null +++ b/arch/arm/boards/pcm051/Makefile @@ -0,0 +1 @@ +obj-y += board.o diff --git a/arch/arm/boards/pcm051/board.c b/arch/arm/boards/pcm051/board.c new file mode 100644 index 0000000..7cb85f1 --- /dev/null +++ b/arch/arm/boards/pcm051/board.c @@ -0,0 +1,72 @@ +/* + * pcm051 - phyCORE-AM335x Board Initalization Code + * + * Copyright (C) 2012 Teresa Gámez, Phytec Messtechnik GmbH + * + * Based on arch/arm/boards/omap/board-beagle.c + * + * 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 <init.h> +#include <sizes.h> +#include <ns16550.h> +#include <asm/armlinux.h> +#include <generated/mach-types.h> +#include <mach/silicon.h> + +static struct NS16550_plat serial_plat = { + .clock = 48000000, /* 48MHz (APLL96/2) */ + .shift = 2, +}; + +/** + * @brief UART serial port initialization + * arch + * + * @return result of device registration + */ +static int pcm051_console_init(void) +{ + /* Register the serial port */ + add_ns16550_device(DEVICE_ID_DYNAMIC, AM33XX_UART0_BASE, 1024, + IORESOURCE_MEM_8BIT, &serial_plat); + + return 0; +} +console_initcall(pcm051_console_init); + +static int pcm051_mem_init(void) +{ + arm_add_mem_device("ram0", AM33XX_DRAM_ADDR_SPACE_START, SZ_512M); + + return 0; +} +mem_initcall(pcm051_mem_init); + +static int pcm051_devices_init(void) +{ + add_generic_device("omap-hsmmc", DEVICE_ID_DYNAMIC, NULL, + (AM33XX_MMCHS0_BASE + 0x100), SZ_4K, + IORESOURCE_MEM, NULL); + + armlinux_set_bootparams((void *)(AM33XX_DRAM_ADDR_SPACE_START + 0x100)); + armlinux_set_architecture(MACH_TYPE_PCM051); + + return 0; +} +device_initcall(pcm051_devices_init); diff --git a/arch/arm/boards/pcm051/config.h b/arch/arm/boards/pcm051/config.h new file mode 100644 index 0000000..8b2b876 --- /dev/null +++ b/arch/arm/boards/pcm051/config.h @@ -0,0 +1,21 @@ +/** + * 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 + +#endif /* __CONFIG_H */ diff --git a/arch/arm/boards/pcm051/env/boot.d/01 b/arch/arm/boards/pcm051/env/boot.d/01 new file mode 120000 index 0000000..fabd071 --- /dev/null +++ b/arch/arm/boards/pcm051/env/boot.d/01 @@ -0,0 +1 @@ +../boot/disk \ No newline at end of file diff --git a/arch/arm/boards/pcm051/env/boot/disk b/arch/arm/boards/pcm051/env/boot/disk new file mode 100644 index 0000000..c627991 --- /dev/null +++ b/arch/arm/boards/pcm051/env/boot/disk @@ -0,0 +1,10 @@ +#!/bin/sh + +if [ "$1" = menu ]; then + boot-menu-add-entry "$0" "SD Card" + exit +fi + +global.bootm.image="/mnt/fat/linuximage" +#global.bootm.oftree="/env/oftree" +bootargs-root-disk -p mmcblk0p2 -t ext3 diff --git a/arch/arm/boards/pcm051/env/init/automount b/arch/arm/boards/pcm051/env/init/automount new file mode 100644 index 0000000..644a793 --- /dev/null +++ b/arch/arm/boards/pcm051/env/init/automount @@ -0,0 +1,32 @@ +#!/bin/sh + +if [ "$1" = menu ]; then + init-menu-add-entry "$0" "Automountpoints" + exit +fi + +# automount server returned from dhcp server + +#mkdir -p /mnt/tftp-dhcp +#automount /mnt/tftp-dhcp 'ifup eth0 && mount $eth0.serverip tftp /mnt/tftp-dhcp' + +# automount nfs server example + +#nfshost=somehost +#mkdir -p /mnt/${nfshost} +#automount /mnt/$nfshost "ifup eth0 && mount ${nfshost}:/tftpboot nfs /mnt/${nfshost}" + +# static tftp server example + +#mkdir -p /mnt/tftp +#automount -d /mnt/tftp 'ifup eth0 && mount $serverip tftp /mnt/tftp' + +# FAT on usb disk example + +#mkdir -p /mnt/fat +#automount -d /mnt/fat 'usb && [ -e /dev/disk0.0 ] && mount /dev/disk0.0 /mnt/fat' + +# FAT on mmc card + +mkdir -p /mnt/fat +automount -d /mnt/fat '[ -e /dev/disk0.0 ] && mount /dev/disk0.0 /mnt/fat' diff --git a/arch/arm/boards/pcm051/env/init/bootargs-base b/arch/arm/boards/pcm051/env/init/bootargs-base new file mode 100644 index 0000000..b3139b9 --- /dev/null +++ b/arch/arm/boards/pcm051/env/init/bootargs-base @@ -0,0 +1,9 @@ +#!/bin/sh + +if [ "$1" = menu ]; then + init-menu-add-entry "$0" "Base bootargs" + exit +fi + +global.linux.bootargs.base="console=ttyO0,115200" +bootargs-ip diff --git a/arch/arm/boards/pcm051/env/init/general b/arch/arm/boards/pcm051/env/init/general new file mode 100644 index 0000000..4c0d324 --- /dev/null +++ b/arch/arm/boards/pcm051/env/init/general @@ -0,0 +1,12 @@ +#!/bin/sh + +if [ "$1" = menu ]; then + init-menu-add-entry "$0" "general config settings" + exit +fi + +# user (used for network filenames) +global.user= + +# timeout in seconds before the default boot entry is started +global.autoboot_timeout=3 diff --git a/arch/arm/boards/pcm051/env/init/hostname b/arch/arm/boards/pcm051/env/init/hostname new file mode 100644 index 0000000..3ea1e0a --- /dev/null +++ b/arch/arm/boards/pcm051/env/init/hostname @@ -0,0 +1,8 @@ +#!/bin/sh + +if [ "$1" = menu ]; then + init-menu-add-entry "$0" "hostname" + exit +fi + +global.hostname=pcm051 diff --git a/arch/arm/boards/pcm051/env/network/eth0 b/arch/arm/boards/pcm051/env/network/eth0 new file mode 100644 index 0000000..818b9f1 --- /dev/null +++ b/arch/arm/boards/pcm051/env/network/eth0 @@ -0,0 +1,15 @@ +#!/bin/sh + +# ip setting (static/dhcp) +ip=dhcp + +# static setup used if ip=static +#ipaddr= +#netmask= +#gateway= +#serverip= + +# MAC address if needed +#ethaddr=xx:xx:xx:xx:xx:xx + +# put code to discover eth0 (i.e. 'usb') to /env/network/eth0-discover diff --git a/arch/arm/configs/pcm051_defconfig b/arch/arm/configs/pcm051_defconfig new file mode 100644 index 0000000..6c7a950 --- /dev/null +++ b/arch/arm/configs/pcm051_defconfig @@ -0,0 +1,56 @@ +CONFIG_ARCH_OMAP=y +CONFIG_ARCH_AM33XX=y +CONFIG_OMAP_BUILD_IFT=y +CONFIG_AEABI=y +CONFIG_ARM_OPTIMZED_STRING_FUNCTIONS=y +CONFIG_ARM_UNWIND=y +CONFIG_TEXT_BASE=0x81000000 +CONFIG_PROMPT="barebox> " +CONFIG_LONGHELP=y +CONFIG_HUSH_FANCY_PROMPT=y +CONFIG_CMDLINE_EDITING=y +CONFIG_AUTO_COMPLETE=y +CONFIG_MENU=y +# CONFIG_TIMESTAMP is not set +CONFIG_DEFAULT_ENVIRONMENT_GENERIC_NEW=y +CONFIG_DEFAULT_ENVIRONMENT_PATH="arch/arm/boards/pcm051/env" +CONFIG_DEBUG_INFO=y +CONFIG_ENABLE_FLASH_NOISE=y +CONFIG_ENABLE_PARTITION_NOISE=y +CONFIG_ENABLE_DEVICE_NOISE=y +CONFIG_CMD_EDIT=y +CONFIG_CMD_SLEEP=y +CONFIG_CMD_SAVEENV=y +CONFIG_CMD_EXPORT=y +CONFIG_CMD_PRINTENV=y +CONFIG_CMD_READLINE=y +CONFIG_CMD_MENU=y +CONFIG_CMD_MENU_MANAGEMENT=y +CONFIG_CMD_NANDTEST=y +CONFIG_CMD_ECHO_E=y +CONFIG_CMD_LOADB=y +CONFIG_CMD_CRC=y +CONFIG_CMD_CRC_CMP=y +CONFIG_CMD_MD5SUM=y +CONFIG_CMD_FLASH=y +CONFIG_CMD_BOOTM_SHOW_TYPE=y +CONFIG_CMD_UIMAGE=y +CONFIG_CMD_BOOTZ=y +CONFIG_CMD_RESET=y +CONFIG_CMD_GO=y +CONFIG_CMD_TIMEOUT=y +CONFIG_CMD_PARTITION=y +CONFIG_CMD_GPIO=y +CONFIG_CMD_UNCOMPRESS=y +CONFIG_DRIVER_SERIAL_NS16550=y +CONFIG_DRIVER_SERIAL_NS16550_OMAP_EXTENSIONS=y +# CONFIG_SPI is not set +CONFIG_MTD=y +CONFIG_NAND=y +CONFIG_USB=y +CONFIG_MCI=y +CONFIG_MCI_STARTUP=y +CONFIG_MCI_OMAP_HSMMC=y +CONFIG_FS_FAT=y +CONFIG_FS_FAT_WRITE=y +CONFIG_FS_FAT_LFN=y diff --git a/arch/arm/mach-omap/Kconfig b/arch/arm/mach-omap/Kconfig index 4f5c905..841a178 100644 --- a/arch/arm/mach-omap/Kconfig +++ b/arch/arm/mach-omap/Kconfig @@ -97,6 +97,7 @@ config BOARDINFO default "Phytec phyCORE pcm049" if MACH_PCM049 default "Phytec phyCARD-A-L1" if MACH_PCAAL1 default "Phytec phyCARD-A-XL2" if MACH_PCAAXL2 + default "Phytec phyCORE-AM335x" if MACH_PCM051 choice prompt "Select OMAP board" @@ -153,6 +154,15 @@ config MACH_PCAAXL2 help Say Y here if you are using a phyCARD-A-XL1 PCA-A-XL1 +config MACH_PCM051 + bool "Phytec phyCORE pcm051" + select OMAP_CLOCK_ALL + select HAVE_NOSHELL + select HAVE_DEFAULT_ENVIRONMENT_NEW + depends on ARCH_AM33XX + help + Say Y here if you are using Phytecs phyCORE pcm051 board + endchoice if MACH_OMAP3EVM -- 1.7.0.4 _______________________________________________ barebox mailing list barebox@lists.infradead.org http://lists.infradead.org/mailman/listinfo/barebox