[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