[PATCH 3/3] pcm051: Add inital support

Sascha Hauer s.hauer at pengutronix.de
Fri Sep 21 02:37:58 EDT 2012


On Thu, Sep 20, 2012 at 08:34:28PM +0200, Jean-Christophe PLAGNIOL-VILLARD wrote:
> On 16:02 Thu 20 Sep     , Teresa Gámez wrote:
> > Added initial support for Phytec phyCORE-AM335x.
> > 
> > Signed-off-by: Teresa Gámez <t.gamez at 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/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       |   15 +++
> >  arch/arm/boards/pcm051/env/init/hostname      |    8 ++
> >  arch/arm/boards/pcm051/env/network/eth0       |   15 +++
> >  arch/arm/configs/pcm051_defconfig             |  151 +++++++++++++++++++++++++
> >  arch/arm/mach-omap/Kconfig                    |   10 ++
> >  12 files changed, 345 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 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 8e660be..ccb4805 100644
> > --- a/arch/arm/Makefile
> > +++ b/arch/arm/Makefile
> > @@ -108,6 +108,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/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..743c864
> > --- /dev/null
> > +++ b/arch/arm/boards/pcm051/env/init/general
> > @@ -0,0 +1,15 @@
> > +#!/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
> > +
> > +# default boot entry (one of /env/boot/*)
> > +global.boot.default=disk
> > 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..6788e61
> > --- /dev/null
> > +++ b/arch/arm/configs/pcm051_defconfig
> use savedefconfig to generate it

I think this is generated using savedefconfig, otherwise there would be
comment in the file.

Sascha


-- 
Pengutronix e.K.                           |                             |
Industrial Linux Solutions                 | http://www.pengutronix.de/  |
Peiner Str. 6-8, 31137 Hildesheim, Germany | Phone: +49-5121-206917-0    |
Amtsgericht Hildesheim, HRA 2686           | Fax:   +49-5121-206917-5555 |



More information about the barebox mailing list