Skip to contentSkip to conversation

arm926ejs: add NXP LPC32x0 cpu series support

PATCH Superseded Vladimir Zapolskiy 3 participants 6 messages Oct 18, 2011 – Oct 31, 2011

Subsystems (2)

v3 of 9 Superseded Latest is v9 →

lore
Share & tools
lore

Vladimir Zapolskiy

author maintainer
#0 lore raw

PATCH v3 1/1 arm926ejs: add NXP LPC32x0 cpu series support

This change adds initial support for NXP LPC32x0 SoC series.

---
Changes from v2 to v3:
* checkpatch.pl reports zero errors and warnings

Changes from v1 to v2:
* BIT(n) and SBF(s, v) macro are not used anymore
* removed NS16550 and 14-clock UART definitions from uart.h
* added devices.c file, which contains standard UART preinitialization routine
* added get_serial_clock() function, it returns actual frequency of UART clock
* __udelay() realization is simplified, no need of interrupt handling

 arch/arm/cpu/arm926ejs/lpc32xx/Makefile    |   45 ++++++++
 arch/arm/cpu/arm926ejs/lpc32xx/clkpwr.c    |  101 ++++++++++++++++++
 arch/arm/cpu/arm926ejs/lpc32xx/cpu.c       |   46 ++++++++
 arch/arm/cpu/arm926ejs/lpc32xx/devices.c   |   47 +++++++++
 arch/arm/cpu/arm926ejs/lpc32xx/timer.c     |   94 +++++++++++++++++
 arch/arm/include/asm/arch-lpc32xx/clk.h    |  155 ++++++++++++++++++++++++++++
 arch/arm/include/asm/arch-lpc32xx/config.h |   50 +++++++++
 arch/arm/include/asm/arch-lpc32xx/cpu.h    |   62 +++++++++++
 arch/arm/include/asm/arch-lpc32xx/timer.h  |   74 +++++++++++++
 arch/arm/include/asm/arch-lpc32xx/uart.h   |   54 ++++++++++
 arch/arm/include/asm/arch-lpc32xx/wdt.h    |   51 +++++++++
 11 files changed, 779 insertions(+), 0 deletions(-)
 create mode 100644 arch/arm/cpu/arm926ejs/lpc32xx/Makefile
 create mode 100644 arch/arm/cpu/arm926ejs/lpc32xx/clkpwr.c
 create mode 100644 arch/arm/cpu/arm926ejs/lpc32xx/cpu.c
 create mode 100644 arch/arm/cpu/arm926ejs/lpc32xx/devices.c
 create mode 100644 arch/arm/cpu/arm926ejs/lpc32xx/timer.c
 create mode 100644 arch/arm/include/asm/arch-lpc32xx/clk.h
 create mode 100644 arch/arm/include/asm/arch-lpc32xx/config.h
 create mode 100644 arch/arm/include/asm/arch-lpc32xx/cpu.h
 create mode 100644 arch/arm/include/asm/arch-lpc32xx/timer.h
 create mode 100644 arch/arm/include/asm/arch-lpc32xx/uart.h
 create mode 100644 arch/arm/include/asm/arch-lpc32xx/wdt.h
arch/arm/cpu/arm926ejs/lpc32xx/Makefile new file +45 -0
new file mode 100644
index 0000000..29b4dc8
@@ -0,0 +1,45 @@
+#
+# (C) Copyright 2000-2006
+# Wolfgang Denk, DENX Software Engineering, wd at denx.de.
+#
+# See file CREDITS for list of people who contributed to this
+# project.
+#
+# 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 $(TOPDIR)/config.mk
+
+LIB     = $(obj)lib$(SOC).o
+
+COBJS   = cpu.o clkpwr.o devices.o timer.o
+
+SRCS    := $(SOBJS:.o=.S) $(COBJS:.o=.c)
+OBJS    := $(addprefix $(obj),$(COBJS) $(SOBJS))
+
+all:    $(obj).depend $(LIB)
+
+$(LIB): $(OBJS)
+	$(call cmd_link_o_target, $(OBJS))
+
+#########################################################################
+
+# defines $(obj).depend target
+include $(SRCTREE)/rules.mk
+
+sinclude $(obj).depend
+
+#########################################################################
arch/arm/cpu/arm926ejs/lpc32xx/clkpwr.c new file +101 -0

101 lines not on this page · raw message

arch/arm/cpu/arm926ejs/lpc32xx/cpu.c new file +46 -0

46 lines not on this page · raw message

arch/arm/cpu/arm926ejs/lpc32xx/devices.c new file +47 -0

47 lines not on this page · raw message

arch/arm/cpu/arm926ejs/lpc32xx/timer.c new file +94 -0

94 lines not on this page · raw message

arch/arm/include/asm/arch-lpc32xx/clk.h new file +155 -0

155 lines not on this page · raw message

arch/arm/include/asm/arch-lpc32xx/config.h new file +50 -0

50 lines not on this page · raw message

arch/arm/include/asm/arch-lpc32xx/cpu.h new file +62 -0

62 lines not on this page · raw message

arch/arm/include/asm/arch-lpc32xx/timer.h new file +74 -0

74 lines not on this page · raw message

arch/arm/include/asm/arch-lpc32xx/uart.h new file +54 -0

54 lines not on this page · raw message

arch/arm/include/asm/arch-lpc32xx/wdt.h new file +51 -0

51 lines not on this page · raw message

Signature · 1 line
1.7.5.4
#1 lore raw

PATCH v3 1/1 arm926ejs: add NXP LPC32x0 cpu series support

Hi Vladimir,

Le 18/10/2011 17:55, Vladimir Zapolskiy a ?crit :

Quoted 7 lines

This change adds initial support for NXP LPC32x0 SoC series.

---
Changes from v2 to v3:
* checkpatch.pl reports zero errors and warnings

Quoted 6 lines

Changes from v1 to v2:
* BIT(n) and SBF(s, v) macro are not used anymore
* removed NS16550 and 14-clock UART definitions from uart.h
* added devices.c file, which contains standard UART preinitialization routine
* added get_serial_clock() function, it returns actual frequency of UART clock
* __udelay() realization is simplified, no need of interrupt handling

As it stands, this is dead code until some board uses it; I imagine you have board waiting for this support. Can you submit the SoC and board code as a patch set? This way, it will be obvious for all that the SoC code in this patch has actual use.

Amicalement,

Signature · 1 line
Albert.
author maintainer
#2 lore raw

PATCH v3 1/1 arm926ejs: add NXP LPC32x0 cpu series support

Hi Albert,

Quoted 19 lines · Albert ARIBAUD

Hi Vladimir,

Le 18/10/2011 17:55, Vladimir Zapolskiy a ?crit :

Quoted 7 lines

This change adds initial support for NXP LPC32x0 SoC series.

---
Changes from v2 to v3:
* checkpatch.pl reports zero errors and warnings

Quoted 8 lines

Changes from v1 to v2:
* BIT(n) and SBF(s, v) macro are not used anymore
* removed NS16550 and 14-clock UART definitions from uart.h
* added devices.c file, which contains standard UART preinitialization routine
* added get_serial_clock() function, it returns actual frequency of UART clock
* __udelay() realization is simplified, no need of interrupt handling

Quoted 4 lines

As it stands, this is dead code until some board uses it; I imagine you have board waiting for this support. Can you submit the SoC and board code as a patch set? This way, it will be obvious for all that the SoC code in this patch has actual use.

you're right, I have a board to make support for. However I presume that U-boot maintainers won't be happy to include a board with CONFIG_ENV_IS_NOWHERE, and unfortunately flash driver isn't yet ready for publishing.

I'd like to get an advice, if you think that weakly supported but working U-boot on the board has chances to be included to arm-next I can send the patchset right now for review, otherwise I'll spend some time (one week approximately) to finish NAND driver.

Signature · 2 lines
With best wishes,
Vladimir
#3 lore raw

PATCH v3 1/1 arm926ejs: add NXP LPC32x0 cpu series support

Dear Vladimir Zapolskiy,

Quoted 4 lines · In message <[email protected]> you wrote:

you're right, I have a board to make support for. However I presume that > U-boot maintainers won't be happy to include a board with > CONFIG_ENV_IS_NOWHERE, and unfortunately flash driver isn't yet ready >

Why not? There are other boards with CONFIG_ENV_IS_NOWHERE :

-> grep CONFIG_ENV_IS_NOWHERE include/configs/* | wc -l 68

Quoted 4 lines

I'd like to get an advice, if you think that weakly supported but > working U-boot on the board has chances to be included to arm-next I can > send the patchset right now for review, otherwise I'll spend some time > (one week approximately) to finish NAND driver.

Release early, release often.

Best regards,

Wolfgang Denk

Signature · 4 lines
DENX Software Engineering GmbH,     MD: Wolfgang Denk & Detlev Zundel
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: (+49)-8142-66989-10 Fax: (+49)-8142-66989-80 Email: wd at denx.de
Intel's new motto: United we stand. Divided we fall!
#4 lore raw

PATCH v3 1/1 arm926ejs: add NXP LPC32x0 cpu series support

In reply to Vladimir Zapolskiy

Hi Vladimir,

Le 24/10/2011 01:04, Vladimir Zapolskiy a ?crit :

Quoted 27 lines

Hi Albert,

Quoted 19 lines · Albert ARIBAUD

Hi Vladimir,

Le 18/10/2011 17:55, Vladimir Zapolskiy a ?crit :

Quoted 7 lines

This change adds initial support for NXP LPC32x0 SoC series.

---
Changes from v2 to v3:
* checkpatch.pl reports zero errors and warnings

Quoted 8 lines

Changes from v1 to v2:
* BIT(n) and SBF(s, v) macro are not used anymore
* removed NS16550 and 14-clock UART definitions from uart.h
* added devices.c file, which contains standard UART preinitialization routine
* added get_serial_clock() function, it returns actual frequency of UART clock
* __udelay() realization is simplified, no need of interrupt handling

Quoted 4 lines

As it stands, this is dead code until some board uses it; I imagine you have board waiting for this support. Can you submit the SoC and board code as a patch set? This way, it will be obvious for all that the SoC code in this patch has actual use.

Quoted 4 lines

you're right, I have a board to make support for. However I presume that U-boot maintainers won't be happy to include a board with CONFIG_ENV_IS_NOWHERE, and unfortunately flash driver isn't yet ready for publishing.

CONFIG_ENV_IS_NOWHERE is the board( maintainer)'s business.

Ditto for the FLASH driver, if it is not required for use of the board (e.g., if U-Boot can fire up and does not need the FLASH to boot an OS, then a broken FLASH driver is an inconvenience, not a showstopper).

Quoted 4 lines

I'd like to get an advice, if you think that weakly supported but working U-boot on the board has chances to be included to arm-next I can send the patchset right now for review, otherwise I'll spend some time (one week approximately) to finish NAND driver.

IMO, the acceptable state of a board is the board maintainer's affair, with a bare minimum that U-Boot must be able to play its role as a bootloader.

Anyway, since that is for next, not master, and since you think you can add the missing support far before the next merge window, I suggest you complete board support and add it to V4.

Amicalement,

Signature · 1 line
Albert.
author maintainer
#5 lore raw

PATCH v3 1/1 arm926ejs: add NXP LPC32x0 cpu series support

Hi Albert,

Quoted 35 lines · Albert ARIBAUD

Hi Vladimir,

Le 24/10/2011 01:04, Vladimir Zapolskiy a ?crit :

Quoted 27 lines

Hi Albert,

Quoted 19 lines · Albert ARIBAUD

Hi Vladimir,

Le 18/10/2011 17:55, Vladimir Zapolskiy a ?crit :

Quoted 7 lines

This change adds initial support for NXP LPC32x0 SoC series.

---
Changes from v2 to v3:
* checkpatch.pl reports zero errors and warnings

Quoted 8 lines

Changes from v1 to v2:
* BIT(n) and SBF(s, v) macro are not used anymore
* removed NS16550 and 14-clock UART definitions from uart.h
* added devices.c file, which contains standard UART preinitialization routine
* added get_serial_clock() function, it returns actual frequency of UART clock
* __udelay() realization is simplified, no need of interrupt handling

Quoted 4 lines

As it stands, this is dead code until some board uses it; I imagine you have board waiting for this support. Can you submit the SoC and board code as a patch set? This way, it will be obvious for all that the SoC code in this patch has actual use.

Quoted 4 lines

you're right, I have a board to make support for. However I presume that U-boot maintainers won't be happy to include a board with CONFIG_ENV_IS_NOWHERE, and unfortunately flash driver isn't yet ready for publishing.

Quoted 5 lines

CONFIG_ENV_IS_NOWHERE is the board( maintainer)'s business.

Ditto for the FLASH driver, if it is not required for use of the board (e.g., if U-Boot can fire up and does not need the FLASH to boot an OS, then a broken FLASH driver is an inconvenience, not a showstopper).

I've added CFI flash support to the board, however the environment is supposed to be stored in NAND flash, and that requires some more LPC32XX specific stuff to be developed for U-boot soon (basically that's NAND controller and DMA drivers).

Quoted 9 lines
Quoted 4 lines

I'd like to get an advice, if you think that weakly supported but working U-boot on the board has chances to be included to arm-next I can send the patchset right now for review, otherwise I'll spend some time (one week approximately) to finish NAND driver.

IMO, the acceptable state of a board is the board maintainer's affair, with a bare minimum that U-Boot must be able to play its role as a bootloader.

It's done in my understanding. Hopefully some more addons still should be implemented, and I'd like to concentrate on them being assured that the SoC and basic board support are pulled in.

Quoted 4 lines

Anyway, since that is for next, not master, and since you think you can add the missing support far before the next merge window, I suggest you complete board support and add it to V4.

The initial board support was done and published a week ago, please check http://lists.denx.de/pipermail/u-boot/2011-October/106991.html

And that's my expression of willing to become a board maintainer, sorry it hasn't been included to the board changeset originally -
http://lists.denx.de/pipermail/u-boot/2011-October/107069.html

I'd like to encourage you to check that the board specific compilation has zero warnings and checkpatch.pl output is clean.

Signature · 2 lines
With best wishes,
Vladimir