[PATCH 3/3] pcm051: Add inital support

Teresa Gamez t.gamez at phytec.de
Fri Sep 21 02:46:36 EDT 2012


Am 21.09.2012 08:37, schrieb Sascha Hauer:
> 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

I have to admit, it isn't.
I will resend it with a generated one.

Regards,
Teresa



More information about the barebox mailing list