From: u.kleine-koenig@pengutronix.de (Uwe Kleine-König)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH 05/13] ARM: LPC32XX: arch Kconfig, plat Kconfig, and makefiles
Date: Wed, 3 Feb 2010 11:51:52 +0100 [thread overview]
Message-ID: <20100203105152.GF11354@pengutronix.de> (raw)
In-Reply-To: <1264643011-17390-6-git-send-email-wellsk40@gmail.com>
Hi Kevin,
On Wed, Jan 27, 2010 at 05:43:23PM -0800, wellsk40 at gmail.com wrote:
> From: Kevin Wells <wellsk40@gmail.com>
>
> Added Kconfig for the LPC32XX arch, Kconfig.plat for platforms based
> on the LPC32XX, and the initial makefiles. Kconfig.plat currently
> supports the Phytec PHY3250 platform.
>
> Signed-off-by: Kevin Wells <wellsk40@gmail.com>
> ---
> arch/arm/mach-lpc32xx/Kconfig | 158 +++++++++++++++++++++++++++++++++++
> arch/arm/mach-lpc32xx/Kconfig.plat | 98 ++++++++++++++++++++++
> arch/arm/mach-lpc32xx/Makefile | 9 ++
> arch/arm/mach-lpc32xx/Makefile.boot | 4 +
> 4 files changed, 269 insertions(+), 0 deletions(-)
>
> diff --git a/arch/arm/mach-lpc32xx/Kconfig b/arch/arm/mach-lpc32xx/Kconfig
> new file mode 100644
> index 0000000..a277885
> --- /dev/null
> +++ b/arch/arm/mach-lpc32xx/Kconfig
> @@ -0,0 +1,158 @@
> +if ARCH_LPC32XX
> +
> +menu "LPC32XX chip options"
> +
> +config ARCH_LPC32XX_IRAM_SIZE
> + int
> + default 131072 if ARCH_LPC32XX_20
> + default 262144 if ARCH_LPC32XX_30 || ARCH_LPC32XX_40 || ARCH_LPC32XX_50
> +
> +choice
> + prompt "Select 32x0 device variation"
> + default ARCH_LPC32XX_50
> +
> + config ARCH_LPC32XX_20
> + bool "LPC3220"
> + help
> + 128K IRAM, no ethernet or LCD
> +
> + config ARCH_LPC32XX_30
> + bool "LPC3230"
> + help
> + 256K IRAM and LCD, no ethernet
> +
> + config ARCH_LPC32XX_40
> + bool "LPC3240"
> + help
> + 256K IRAM and ethernet, no LCD
> +
> + config ARCH_LPC32XX_50
> + bool "LPC3250"
> + help
> + 256K IRAM and ethernet and LCD
> +
> +endchoice
It's sad this is a choice and only a single "device variation" is
selectable. Maybe you can autodetect these?
> +menu "Serial port configuration"
> +
> +menu "Individual UART enable selections"
> +
> +config ARCH_LPC32XX_HSUART1_ENABLE
> + bool "Enable high speed UART1"
> + help
> + Also enable LPC32xx high speed serial support in drivers/serial
> +
> +config ARCH_LPC32XX_HSUART2_ENABLE
> + bool "Enable high speed UART2"
> + help
> + Also enable LPC32xx high speed serial support in drivers/serial
> +
> +config ARCH_LPC32XX_UART3_ENABLE
> + bool "Enable standard UART3"
> + help
> + Also enable 8250 serial support in drivers/serial
> +
> +config ARCH_LPC32XX_UART4_ENABLE
> + bool "Enable standard UART4"
> + help
> + Also enable 8250 serial support in drivers/serial
> +
> +config ARCH_LPC32XX_UART5_ENABLE
> + bool "Enable standard UART5"
> + default y
> + help
> + Also enable 8250 serial support in drivers/serial
> +
> +config ARCH_LPC32XX_UART6_ENABLE
> + bool "Enable standard UART6"
> + help
> + Also enable 8250 serial support in drivers/serial
> +
> +config ARCH_LPC32XX_HSUART7_ENABLE
> + bool "Enable high speed UART7"
> + help
> + Also enable LPC32xx high speed serial support in drivers/serial
> +
> +endmenu
IMHO "enable" is a bit misleading here. Depending on the selection here
the devices are defined or not.
> +config ARCH_LPC32XX_UART6_IRDAMODE
> + bool "Use IRDA mode on UART6"
> + depends on ARCH_LPC32XX_UART6_ENABLE
> + help
> + Enables the IrDA modulator for UART6
> +
> +choice
> + prompt "Kernel uncompress status output UART selection"
> + default ARCH_LPC32XX_UNCOMP_U5
> +
> + config ARCH_LPC32XX_UNCOMP_HSU1
> + bool "High speed UART 1"
> + help
> + Kernel uncompress output is on high speed UART 1
> +
> + config ARCH_LPC32XX_UNCOMP_HSU2
> + bool "High speed UART 2"
> + help
> + Kernel uncompress output is on high speed UART 2
> +
> + config ARCH_LPC32XX_UNCOMP_U3
> + bool "Standard UART 3"
> + help
> + Kernel uncompress output is on standard UART 3
> +
> + config ARCH_LPC32XX_UNCOMP_U4
> + bool "Standard UART 4"
> + help
> + Kernel uncompress output is on standard UART 4
> +
> + config ARCH_LPC32XX_UNCOMP_U5
> + bool "Standard UART 5"
> + help
> + Kernel uncompress output is on standard UART 5
> +
> + config ARCH_LPC32XX_UNCOMP_U6
> + bool "Standard UART 6"
> + help
> + Kernel uncompress output is on standard UART 6
> +
> + config ARCH_LPC32XX_UNCOMP_HSU7
> + bool "High speed UART 7"
> + help
> + Kernel uncompress output is on high speed UART 7
> +
> +endchoice
Can you autodetect this?
> +choice
> + prompt "debug output (printascii) UART selection"
> + default ARCH_LPC32XX_DEBUGO_U5
> +
> + config ARCH_LPC32XX_DEBUGO_U3
> + bool "Standard UART 3"
> + help
> + printascii messages are output on standard UART 3
> +
> + config ARCH_LPC32XX_DEBUGO_U4
> + bool "Standard UART 4"
> + help
> + printascii messages are output on standard UART 4
> +
> + config ARCH_LPC32XX_DEBUGO_U5
> + bool "Standard UART 5"
> + help
> + printascii messages are output on standard UART 5
> +
> + config ARCH_LPC32XX_DEBUGO_U6
> + bool "Standard UART 6"
> + help
> + printascii messages are output on standard UART 6
> +
> +endchoice
IMHO this isn't something that needs configuration via Kconfig. It's
enough to have this via #defines in debug-macro.S.
> +endmenu
> +
> +endmenu
> +
> +source "arch/arm/mach-lpc32xx/Kconfig.plat"
> +
> +endif
> +
> diff --git a/arch/arm/mach-lpc32xx/Kconfig.plat b/arch/arm/mach-lpc32xx/Kconfig.plat
> new file mode 100644
> index 0000000..a67d1ad
> --- /dev/null
> +++ b/arch/arm/mach-lpc32xx/Kconfig.plat
> @@ -0,0 +1,98 @@
> +menu "LPC32XX platform choices"
> +
> +choice
> + prompt "Choose your board"
> + default MACH_PHY3250
> + help
> + This menu selects the LPC3250 board to support for this build
> +
> + config MACH_PHY3250
> + bool "Phytec 3250 development board"
> + help
> + Support for the Phytec 3250 development board
> +
> +endchoice
Again, support more than one mach per kernel?
> +choice
> + prompt "Phytec LCD module revisions"
> + depends on MACH_PHY3250
> + default PHY3250_QVGA_PANEL_1307_1
> + help
> + Select one of the supported LCD panel revisions
> +
> +config PHY3250_QVGA_PANEL_1307_0
> + bool "1307.0 QVGA panel (portrait mode RGB565)"
> + help
> + Use LCD module version 1307.0
> +
> +config PHY3250_QVGA_PANEL_1307_1
> + bool "1307.1 QVGA panel (portrait mode RGB565)"
> + help
> + Use LCD module version 1307.1
> +
> +endchoice
autodetect? kernel-parameter?
> +choice
> + prompt "Phytec CPU module revisions"
> + depends on MACH_PHY3250
> + default PHY3250_CPU_MODULE_1304_1
> + help
> + Select one of the supported CPU module revisions
> +
> +config PHY3250_CPU_MODULE_1304_0
> + bool "1304.0 CPU module"
> + help
> + Use CPU module version 1304.0
> +
> +config PHY3250_CPU_MODULE_1304_1
> + bool "1304.1 CPU module"
> + help
> + Use CPU module version 1304.1
> +
> +endchoice
ditto, autodetect? kernel-parameter?
> +choice
> + prompt "Phytec Carrier board revisions"
> + depends on MACH_PHY3250
> + default PHY3250_CARRIER_1305_3
> + help
> + Select one of the supported carrier board revisions
> +
> +config PHY3250_CARRIER_1305_01
> + bool "1305.0 or 1305.1 carrier board"
> + help
> + Use carrier board version 1305.0 or 1305.1
> +
> +config PHY3250_CARRIER_1305_2
> + bool "1305.2 carrier board"
> + help
> + Use carrier board version 1305.2
> +
> +config PHY3250_CARRIER_1305_3
> + bool "1305.3 carrier board"
> + help
> + Use carrier board version 1305.3
> +
> +endchoice
ditto
> +choice
> + prompt "Internal IRAM use"
> + default MACH_LPC32XX_IRAM_RESERVED
> + depends on MACH_PHY3250
> +
> +config MACH_LPC32XX_IRAM_RESERVED
> + bool "IRAM is not used (reserved)"
> + help
> + IRAM is not used for video or networking and can be used for
> + other purposes or drivers
> +
> +config MACH_LPC32XX_IRAM_FOR_CLCD
> + bool "Use IRAM as a video frame buffer"
> + help
> + IRAM will be used for the LCD frame buffer. If the required buffer
> + size is larger than the size of IRAM, then SDRAM will be used
> + instead.
> +
> +endchoice
A request API would be nice here!?
> +endmenu
> diff --git a/arch/arm/mach-lpc32xx/Makefile b/arch/arm/mach-lpc32xx/Makefile
> new file mode 100644
> index 0000000..9c76c70
> --- /dev/null
> +++ b/arch/arm/mach-lpc32xx/Makefile
> @@ -0,0 +1,9 @@
> +#
> +# Makefile for the linux kernel.
> +#
> +
> +obj-y := timer.o irq.o common.o serial.o clock.o
> +obj-y += gpiolib.o pm.o pm_events.o suspend.o
wow, 4 tabs!
> +obj-$(CONFIG_MACH_PHY3250) += phy3250.o
> +
> diff --git a/arch/arm/mach-lpc32xx/Makefile.boot b/arch/arm/mach-lpc32xx/Makefile.boot
> new file mode 100644
> index 0000000..b796b41
> --- /dev/null
> +++ b/arch/arm/mach-lpc32xx/Makefile.boot
> @@ -0,0 +1,4 @@
> + zreladdr-y := 0x80008000
> +params_phys-y := 0x80000100
I hope your bootloader passes the atag list via r2. If so there is no
need to define params_phys-y.
> +initrd_phys-y := 0x82000000
initrd_phys is only needed for bootp. Do you need it?
Best regards
Uwe
--
Pengutronix e.K. | Uwe Kleine-K?nig |
Industrial Linux Solutions | http://www.pengutronix.de/ |
next prev parent reply other threads:[~2010-02-03 10:51 UTC|newest]
Thread overview: 72+ messages / expand[flat|nested] mbox.gz Atom feed top
2010-01-28 1:43 LPC32XX architecture files (updated) wellsk40 at gmail.com
2010-01-28 1:43 ` [PATCH 01/13] i2c_pnx: Added Kconfig support for the LCP32XX wellsk40 at gmail.com
2010-01-28 1:43 ` [PATCH 02/13] pnx4008_wdt: Added Kconfig support for the LPC32XX wellsk40 at gmail.com
2010-01-28 1:43 ` [PATCH 03/13] amba clcd: Swapped CTRL/IENB registers for LCP32XX wellsk40 at gmail.com
2010-01-28 1:43 ` [PATCH 04/13] ARM: LPC32XX arch support in Kconfig and Makefile wellsk40 at gmail.com
2010-02-03 10:31 ` Uwe Kleine-König
2010-01-28 1:43 ` [PATCH 05/13] ARM: LPC32XX: arch Kconfig, plat Kconfig, and makefiles wellsk40 at gmail.com
2010-02-03 10:51 ` Uwe Kleine-König [this message]
2010-02-03 11:26 ` Russell King - ARM Linux
2010-02-03 13:57 ` Uwe Kleine-König
2010-02-03 15:02 ` Russell King - ARM Linux
2010-02-03 18:01 ` Kevin Wells
2010-02-03 18:56 ` Uwe Kleine-König
2010-01-28 1:43 ` [PATCH 06/13] ARM: LPC32XX: Core architecture files wellsk40 at gmail.com
2010-01-28 17:58 ` H Hartley Sweeten
2010-01-28 19:54 ` Kevin Wells
2010-02-03 10:54 ` Uwe Kleine-König
2010-02-03 18:05 ` Kevin Wells
2010-02-03 15:55 ` Uwe Kleine-König
2010-02-03 18:43 ` Kevin Wells
2010-02-03 20:40 ` Uwe Kleine-König
2010-02-03 21:58 ` Kevin Wells
2010-02-04 8:17 ` Uwe Kleine-König
2010-02-08 9:09 ` [PATCH 1/3] gpiolib: make names array and its values const Uwe Kleine-König
2010-02-08 9:09 ` Uwe Kleine-König
2010-02-08 9:37 ` Baruch Siach
2010-02-08 9:37 ` Baruch Siach
2010-02-08 9:43 ` Uwe Kleine-König
2010-02-08 9:43 ` Uwe Kleine-König
2010-02-24 10:35 ` Uwe Kleine-König
2010-02-24 10:35 ` Uwe Kleine-König
2010-03-22 20:47 ` Uwe Kleine-König
2010-03-22 20:47 ` Uwe Kleine-König
2010-03-23 10:24 ` Uwe Kleine-König
2010-03-23 10:24 ` [PATCH 2/3] gpiolib: a gpio is unsigned, so use %u to print it Uwe Kleine-König
2010-03-23 10:24 ` [PATCH 3/3] gpiolib: document that names can contain printk format specifiers Uwe Kleine-König
2010-02-08 9:09 ` [PATCH 2/3] gpiolib: a gpio is unsigned, so use %u to print it Uwe Kleine-König
2010-02-08 9:09 ` Uwe Kleine-König
2010-02-08 9:09 ` [PATCH 3/3] gpiolib: document that names can contain printk format specifiers Uwe Kleine-König
2010-02-08 9:09 ` Uwe Kleine-König
2010-02-08 9:16 ` Uwe Kleine-König
2010-02-08 9:16 ` Uwe Kleine-König
2010-01-28 1:43 ` [PATCH 07/13] ARM: LPC32XX: common architecture functions and structures wellsk40 at gmail.com
2010-02-03 16:01 ` Uwe Kleine-König
2010-01-28 1:43 ` [PATCH 08/13] ARM: LPC32XX: clock tree support wellsk40 at gmail.com
2010-01-28 17:07 ` Rabin Vincent
2010-01-28 19:51 ` Kevin Wells
2010-02-03 16:32 ` Uwe Kleine-König
2010-02-03 18:51 ` Kevin Wells
2010-02-03 20:20 ` Uwe Kleine-König
2010-02-05 16:48 ` Kevin Wells
2010-02-05 19:45 ` Russell King - ARM Linux
2010-01-28 1:43 ` [PATCH 09/13] ARM: LPC32XX: power and event management wellsk40 at gmail.com
2010-02-03 16:44 ` Uwe Kleine-König
2010-02-03 19:03 ` Kevin Wells
2010-01-28 1:43 ` [PATCH 10/13] ARM: LPC32XX: Phytec PHY3250 platform support file wellsk40 at gmail.com
2010-02-03 16:46 ` Uwe Kleine-König
2010-01-28 1:43 ` [PATCH 11/13] ARM: LPC32XX: printascii() output and irq support functions wellsk40 at gmail.com
2010-02-03 16:50 ` Uwe Kleine-König
2010-02-03 18:57 ` Kevin Wells
2010-02-03 20:49 ` Uwe Kleine-König
2010-01-28 1:43 ` [PATCH 12/13] ARM: LPC32XX: architecture header files wellsk40 at gmail.com
2010-02-03 17:07 ` Uwe Kleine-König
2010-02-03 19:20 ` Kevin Wells
2010-02-03 20:44 ` Uwe Kleine-König
2010-02-03 21:34 ` Russell King - ARM Linux
2010-02-03 22:06 ` Kevin Wells
2010-01-28 1:43 ` [PATCH 13/13] ARM: LPC32XX: Phytec PHY3250 default kernel config (ramdisk) wellsk40 at gmail.com
2010-01-28 11:16 ` LPC32XX architecture files (updated) Luotao Fu
2010-01-28 19:50 ` Kevin Wells
2010-01-28 19:06 ` Wolfram Sang
2010-01-28 19:58 ` Kevin Wells
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=20100203105152.GF11354@pengutronix.de \
--to=u.kleine-koenig@pengutronix.de \
--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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.