From: linux@arm.linux.org.uk (Russell King - ARM Linux)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH 1/3] Add Mindspeed Comcerto platform support
Date: Mon, 18 Oct 2010 22:20:16 +0100	[thread overview]
Message-ID: <20101018212016.GC20376@n2100.arm.linux.org.uk> (raw)
In-Reply-To: <1287045489-1133-2-git-send-email-stanleymiao@gmail.com>
On Thu, Oct 14, 2010 at 04:38:07PM +0800, stanleymiao at gmail.com wrote:
> diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig
> index 88c97bc..ca6ccf7 100644
> --- a/arch/arm/Kconfig
> +++ b/arch/arm/Kconfig
> @@ -334,6 +334,15 @@ config ARCH_EP93XX
>  	help
>  	  This enables support for the Cirrus EP93xx series of CPUs.
>  
> +config ARCH_COMCERTO
> +	bool "Mindspeed Comcerto"
> +	select ZONE_DMA
> +	select CPU_V6
> +	help
> +	  This enables support for Mindspeed's Comcerto development boards.
> +	  If you would like to build your kernel to run on one of these boards
> +	  then you must say 'Y' here. Otherwise say 'N'
> +
#
# The "ARM system type" choice list is ordered alphabetically by option
# text.  Please add new entries in the option alphabetic order.
#
Erm...
> diff --git a/arch/arm/Makefile b/arch/arm/Makefile
> index 59c1ce8..2daad67 100644
> --- a/arch/arm/Makefile
> +++ b/arch/arm/Makefile
> @@ -141,6 +141,7 @@ machine-$(CONFIG_ARCH_INTEGRATOR)	:= integrator
>  machine-$(CONFIG_ARCH_IOP13XX)		:= iop13xx
>  machine-$(CONFIG_ARCH_IOP32X)		:= iop32x
>  machine-$(CONFIG_ARCH_IOP33X)		:= iop33x
> +machine-$(CONFIG_ARCH_COMCERTO)	:= comcerto
# Machine directory name.  This list is sorted alphanumerically
# by CONFIG_* macro name.
Erm...
> diff --git a/arch/arm/mach-comcerto/Kconfig b/arch/arm/mach-comcerto/Kconfig
> new file mode 100644
> index 0000000..a61a31a
> --- /dev/null
> +++ b/arch/arm/mach-comcerto/Kconfig
> @@ -0,0 +1,32 @@
> +if ARCH_COMCERTO
> +
> +menu "Comcerto Implementation Options"
> +
> +choice
> +	prompt "Comcerto System Type"
> +	default ARCH_M83XXX
> +
> +config ARCH_M83XXX
> +	bool "M83xxx"
> +	select GENERIC_TIME
> +	select GENERIC_CLOCKEVENTS
Everyone should be using GENERIC_TIME and GENERIC_CLOCKEVENTS for new
code, so please move this to live with ARCH_COMCERTO.
> diff --git a/arch/arm/mach-comcerto/board-c1kmfcn_evm.c b/arch/arm/mach-comcerto/board-c1kmfcn_evm.c
> new file mode 100644
> index 0000000..74a7da3
> --- /dev/null
> +++ b/arch/arm/mach-comcerto/board-c1kmfcn_evm.c
> @@ -0,0 +1,88 @@
> +/*
> + * linux/arch/arm/mach-comcerto/board-c1kmfcn_evm.c
> + *
> + *  Copyright (C) 2004,2008 Mindspeed Technologies, Inc.
> + *  Copyright (c) 2010 Wind River Systems, Inc.
> + *
> + * 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 <linux/sched.h>
Are there more appropriate includes rather than this one?
> +#include <linux/device.h>
> +#include <linux/serial_8250.h>
> +#include <asm/sizes.h>
> +#include <asm/setup.h>
> +#include <asm/mach-types.h>
> +#include <asm/io.h>
linux/io.h
> +#include <asm/mach/arch.h>
> +#include <mach/hardware.h>
> +
> +/* --------------------------------------------------------------------
> + *  Serial interface
> + * -------------------------------------------------------------------- */
> +static struct plat_serial8250_port comcerto_uart_data[] = {
> +	{
> +		.mapbase	= COMCERTO_APB_UART0_BASE,
> +		.membase	= (void *)APB_VADDR(COMCERTO_APB_UART0_BASE),
> +		.irq		= IRQ_UART0,
> +		.flags		= UPF_BOOT_AUTOCONF | UPF_SKIP_TEST,
> +		.iotype		= UPIO_MEM,
> +		.regshift	= 2,
> +		.uartclk	= COMCERTO_DEFAULTAHBCLK * 1000000,
> +	},
> +	{
> +		.flags		= 0,
> +	},
> +};
> +
> +static struct platform_device comcerto_uart = {
> +	.name	= "serial8250",
> +	.id	= PLAT8250_DEV_PLATFORM,
> +	.dev	= {
> +		.platform_data	= comcerto_uart_data,
> +	},
> +};
> +
> +static struct platform_device *comcerto_devices[] __initdata = {
> +	&comcerto_uart,
> +};
> +
> +/************************************************************************
> + *  Machine definition
> + *
> + ************************************************************************/
> +static void __init platform_map_io(void)
> +{
> +	device_map_io();
> +}
> +
> +static void __init platform_irq_init(void)
> +{
> +}
If there's no IRQs then how do you get timer interrupts?
> +
> +static void __init platform_init(void)
> +{
> +	platform_add_devices(comcerto_devices, ARRAY_SIZE(comcerto_devices));
> +}
> +
> +MACHINE_START(COMCERTO, "Comcerto 1000 (Multifunction EVM)")
> +	/* Mindspeed Technologies Inc. */
> +	.phys_io	= COMCERTO_AHB_APB_BASE,
> +	.io_pg_offst	= ((COMCERTO_AHB_APB_BASE) >> 18) & 0xfffc,
> +	.boot_params	= COMCERTO_SDRAM_BASE + 0x100,
> +	.map_io		= platform_map_io,
> +	.init_irq	= platform_irq_init,
> +	.init_machine	= platform_init,
> +	.timer		= &comcerto_timer,
> +MACHINE_END
> diff --git a/arch/arm/mach-comcerto/comcerto-1000.c b/arch/arm/mach-comcerto/comcerto-1000.c
> new file mode 100644
> index 0000000..09032ea
> --- /dev/null
> +++ b/arch/arm/mach-comcerto/comcerto-1000.c
> @@ -0,0 +1,146 @@
> +/*
> + *  linux/arch/arm/mach-comcerto/comcerto-1000.c
> + *
> + *  Copyright (C) 2004,2008 Mindspeed Technologies, Inc.
> + *  Copyright (c) 2010 Wind River Systems, Inc.
> + *
> + * 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 <linux/sched.h>
> +#include <linux/mm.h>
> +#include <linux/init.h>
> +#include <asm/setup.h>
> +#include <asm/mach-types.h>
> +#include <asm/io.h>
linux/io.h
> +#include <asm/sizes.h>
> +#include <asm/mach/arch.h>
> +#include <asm/mach/map.h>
> +#include <mach/hardware.h>
Most of the above looks like it was cut'n'pasted from the previous file.
Do you really need all these includes?
> diff --git a/arch/arm/mach-comcerto/include/mach/io.h b/arch/arm/mach-comcerto/include/mach/io.h
> new file mode 100644
> index 0000000..be3320f
> --- /dev/null
> +++ b/arch/arm/mach-comcerto/include/mach/io.h
> @@ -0,0 +1,32 @@
> +/*
> + *  arch/arm/mach-comcerto/include/mach/io.h
> + *
> + *  Copyright (C) 2004,2005 Mindspeed Technologies, Inc.
> + *
> + * 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 __ASM_ARCH_COMCERTO1000_IO_H
> +#define __ASM_ARCH_COMCERTO1000_IO_H
> +
> +#include <asm/io.h>
Err no.  This is a recipe for disaster.  linux/io.h includes asm/io.h
which includes mach/io.h.  If you want io definitions, include linux/io.h.
Do not include asm/io.h or mach/io.h directly.
> +
> +#if !defined(CONFIG_PCI)
> +
> +#define __io(a)		((void __iomem *)(a))
__typesafe_io() ?
> +#define __mem_pci(a)	(a)
> +
> +#endif
> +
> +#endif /* __ASM_ARCH_COMCERTO1000_IO_H */
> diff --git a/arch/arm/mach-comcerto/include/mach/memory.h b/arch/arm/mach-comcerto/include/mach/memory.h
> new file mode 100644
> index 0000000..6d42d06
> --- /dev/null
> +++ b/arch/arm/mach-comcerto/include/mach/memory.h
> @@ -0,0 +1,33 @@
> +/*
> + *  arch/arm/mach-comcerto/include/mach/memory.h
> + *
> + *  Copyright (C) 2006 Mindspeed Technologies, Inc.
> + *
> + * 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 __ASM_ARCH_MEMORY_H
> +#define __ASM_ARCH_MEMORY_H
> +
> +#include <mach/hardware.h>
> +
> +#define PHYS_OFFSET		COMCERTO_SDRAM_BASE
> +
> +#define __virt_to_bus(x)	__virt_to_phys(x)
> +#define __bus_to_virt(x)	__phys_to_virt(x)
> +#define __pfn_to_bus(x)		__pfn_to_phys(x)
> +#define __bus_to_pfn(x)		__phys_to_pfn(x)
> +
> +#endif
> diff --git a/arch/arm/mach-comcerto/include/mach/system.h b/arch/arm/mach-comcerto/include/mach/system.h
> new file mode 100644
> index 0000000..364cc7e
> --- /dev/null
> +++ b/arch/arm/mach-comcerto/include/mach/system.h
> @@ -0,0 +1,39 @@
> +/*
> + *  arch/arm/mach-comcerto/include/mach/system.h
> + *
> + *  Copyright (C) 2004,2005 Mindspeed Technologies, Inc.
> + *
> + * 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 __ASM_ARCH_SYSTEM_H
> +#define __ASM_ARCH_SYSTEM_H
> +
> +#include <mach/hardware.h>
> +#include <asm/io.h>
Nothing in this file needs asm/io.h, nor I suspect mach/hardware.h either.
> +
> +static inline void arch_idle(void)
> +{
> +	/*
> +	 * This should do all the clock switching
> +	 * and wait for interrupt tricks
> +	 */
> +	cpu_do_idle();
> +}
> +
> +static inline void arch_reset(char mode, const char *cmd)
> +{
> +}
> +
> +#endif /* __ASM_ARCH_SYSTEM_H */
> diff --git a/arch/arm/mach-comcerto/include/mach/uncompress.h b/arch/arm/mach-comcerto/include/mach/uncompress.h
> new file mode 100644
> index 0000000..e3e6938
> --- /dev/null
> +++ b/arch/arm/mach-comcerto/include/mach/uncompress.h
> @@ -0,0 +1,58 @@
> +/*
> + *  arch/arm/mach-comcerto/include/mach/uncompress.h
> + *
> + *  Copyright (C) 2004,2008 Mindspeed Technologies, Inc.
> + *
> + * 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 __ASM_ARCH_UNCOMPRESS_H
> +#define __ASM_ARCH_UNCOMPRESS_H
> +
> +#define UART_DR		(*(volatile unsigned long *)0x10090000)
> +#define UART_LSR	(*(volatile unsigned long *)0x10090014)
> +
> +static inline void putc(int c)
> +{
> +	while (!(UART_LSR & 0x20))
> +		barrier();
> +
> +	UART_DR = c;
> +}
> +
> +static void flush(void)
> +{
> +}
> +static inline void puts(const char *ptr)
> +{
> +	char c;
> +
> +	while ((c = *ptr++) != '\0') {
> +		if (c == '\n')
> +			putc('\r');
> +		putc(c);
> +	}
> +
> +	flush();
> +
> +}
> +
> +/*
> + * nothing to do
> + */
> +#define arch_decomp_setup()
> +
> +#define arch_decomp_wdog()
> +
> +#endif /* __ASM_ARCH_UNCOMPRESS_H */
> diff --git a/arch/arm/mach-comcerto/include/mach/vmalloc.h b/arch/arm/mach-comcerto/include/mach/vmalloc.h
> new file mode 100644
> index 0000000..f807501
> --- /dev/null
> +++ b/arch/arm/mach-comcerto/include/mach/vmalloc.h
> @@ -0,0 +1,21 @@
> +/*
> + *  arch/arm/mach-comcerto/include/mach/vmalloc.h
> + *
> + *  Copyright (C) 2004,2005 Mindspeed Technologies, Inc.
> + *
> + * 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
> + */
> +
> +#define VMALLOC_END       (0xF0000000)
Should be typed to be unsigned long.
next prev parent reply	other threads:[~2010-10-18 21:20 UTC|newest]
Thread overview: 10+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2010-10-14  8:38 Add Mindspeed Comcerto platform support stanleymiao at gmail.com
2010-10-14  8:38 ` [PATCH 1/3] " stanleymiao at gmail.com
2010-10-14  8:38   ` [PATCH 2/3] Add hardware timer support for Mindspeed Comcerto platflorm stanleymiao at gmail.com
2010-10-14  8:38     ` [PATCH 3/3] Add irqs definition and handler for Mindspeed Comcerto platform stanleymiao at gmail.com
2010-10-18 21:24     ` [PATCH 2/3] Add hardware timer support for Mindspeed Comcerto platflorm Russell King - ARM Linux
2010-10-19  2:25       ` Stanley.Miao
2010-10-18 21:20   ` Russell King - ARM Linux [this message]
2010-10-18  3:26 ` Add Mindspeed Comcerto platform support Stanley.Miao
2010-10-18  8:13   ` Russell King - ARM Linux
2010-10-18 10:19     ` Stanley.Miao
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox
  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):
  git send-email \
    --in-reply-to=20101018212016.GC20376@n2100.arm.linux.org.uk \
    --to=linux@arm.linux.org.uk \
    --cc=linux-arm-kernel@lists.infradead.org \
    /path/to/YOUR_REPLY
  https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
  Be sure your reply has a Subject: header at the top and a blank line
  before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).