ARM: Define __raw_readX and __raw_writeX
Subsystems (2)
PATCH 1/7 ARM: Define __raw_readX and __raw_writeX
These functions are undefined on ARM when using __io. These are the commonly used versions and can be redefined.
--- arch/arm/include/asm/io.h | 46 +++++++++++++++++++++++++++++++++++++++----- 1 files changed, 40 insertions(+), 6 deletions(-)
arch/arm/include/asm/io.h +40 -6
@@ -75,13 +75,47 @@ static inline phys_addr_t virt_to_phys(void * vaddr)#define __arch_putw (v,a) (*(volatile unsigned short *)(a) = (v))#define __arch_putl (v,a) (*(volatile unsigned int *)(a) = (v)) -extern void __raw_writesb (unsigned int addr,const void *data,int bytelen); -extern void __raw_writesw (unsigned int addr,const void *data,int wordlen); -extern void __raw_writesl (unsigned int addr,const void *data,int longlen); +extern inline void __raw_writesb (unsigned int addr,const void *data,int bytelen) +{ +uint8_t *buf = (uint8_t *)data; +while (bytelen--) +__arch_putb (*buf++, addr); +} + +extern inline void __raw_writesw (unsigned int addr,const void *data,int wordlen) +{ +uint16_t *buf = (uint16_t *)data; +while (wordlen--) +__arch_putw (*buf++, addr); +} + +extern inline void __raw_writesl (unsigned int addr,const void *data,int longlen) +{ +uint32_t *buf = (uint32_t *)data; +while (longlen--) +__arch_putl (*buf++, addr); +} -extern void __raw_readsb (unsigned int addr,void *data,int bytelen); -extern void __raw_readsw (unsigned int addr,void *data,int wordlen); -extern void __raw_readsl (unsigned int addr,void *data,int longlen); +extern inline void __raw_readsb (unsigned int addr,void *data,int bytelen) +{ +uint8_t *buf = (uint8_t *)data; +while (bytelen--) + *buf++ =__arch_getb (addr); +} + +extern inline void __raw_readsw (unsigned int addr,void *data,int wordlen) +{ +uint16_t *buf = (uint16_t *)data; +while (wordlen--) + *buf++ =__arch_getw (addr); +} + +extern inline void __raw_readsl (unsigned int addr,void *data,int longlen) +{ +uint32_t *buf = (uint32_t *)data; +while (longlen--) + *buf++ =__arch_getl (addr); +}#define __raw_writeb (v,a) __arch_putb(v,a)#define __raw_writew (v,a) __arch_putw(v,a)
Signature · 1 line
1.7.1
PATCH 2/7 PXA: pxafb: Add ACX517AKN support
ACX517AKN LCD panel is found in Palm Tungsten|C
--- arch/arm/cpu/pxa/pxafb.c | 34 ++++++++++++++++++++++++++++++++++ 1 files changed, 34 insertions(+), 0 deletions(-)
arch/arm/cpu/pxa/pxafb.c +34 -0
@@ -215,6 +215,40 @@ vidinfo_t panel_info = {/*----------------------------------------------------------------------*/ +#ifdef CONFIG_ACX517AKN + +# define LCD_BPP LCD_COLOR8 + +/* you have to set lccr0 and lccr3 (including pcd) */ +# define REG_LCCR0 0x003008f9 +# define REG_LCCR3 0x03700006 + +vidinfo_t panel_info = { + vl_col:320 , + vl_row:320 , + vl_width:320 , + vl_height:320 , + vl_clkp:CONFIG_SYS_HIGH , + vl_oep:CONFIG_SYS_LOW , + vl_hsp:CONFIG_SYS_LOW , + vl_vsp:CONFIG_SYS_LOW , + vl_dp:CONFIG_SYS_HIGH , + vl_bpix:LCD_BPP , + vl_lbw:0 , + vl_splt:1 , + vl_clor:1 , + vl_tft:1 , + vl_hpw:0x04 , + vl_blw:0x1c , + vl_elw:0x08 , + vl_vpw:0x01 , + vl_bfw:0x07 , + vl_efw:0x08 , +}; +#endif /* CONFIG_ACX517AKN */ + +/*----------------------------------------------------------------------*/ +#if LCD_BPP ==LCD_COLOR8 void lcd_setcolreg (ushort regno,ushort red,ushort green,ushort blue);#endif
Signature · 1 line
1.7.1
PATCH 3/7 common: Enable serial for PXA250
In reply to Marek Vasut--- common/serial.c | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-)
common/serial.c +1 -1
@@ -30,7 +30,7 @@ DECLARE_GLOBAL_DATA_PTR;static struct serial_device *serial_devices =NULL ;static struct serial_device *serial_current =NULL ; -#if !defined(CONFIG_LWMON ) && !defined(CONFIG_PXA27X ) +#if !defined(CONFIG_LWMON ) && !defined(CONFIG_PXA27X ) && !defined(CONFIG_PXA250 )struct serial_device *__default_serial_console (void ) {#if defined(CONFIG_8xx_CONS_SMC1) || defined(CONFIG_8xx_CONS_SMC2)
Signature · 1 line
1.7.1
PATCH 4/7 PXA: Palm Tungsten|C Support
In reply to Marek VasutThis patch adds support for the Palm Tungsten|C PXA255 board. The support includes:
- LCD
- MMC
- UART
- NOR
--- board/palmtc/Makefile | 54 +++++++++ board/palmtc/config.mk | 3 + board/palmtc/lowlevel_init.S | 40 +++++++ board/palmtc/palmtc.c | 77 +++++++++++++ board/palmtc/u-boot.lds | 56 ++++++++++ boards.cfg | 1 + include/configs/palmtc.h | 250 ++++++++++++++++++++++++++++++++++++++++++ 7 files changed, 481 insertions(+), 0 deletions(-) create mode 100644 board/palmtc/Makefile create mode 100644 board/palmtc/config.mk create mode 100644 board/palmtc/lowlevel_init.S create mode 100644 board/palmtc/palmtc.c create mode 100644 board/palmtc/u-boot.lds create mode 100644 include/configs/palmtc.h
board/palmtc/Makefile new file +54 -0
@@ -0,0 +1,54 @@ + +# +# Copyright (C) 2009 +# Marek Vasut <[email protected]> +# +# Heavily based on pxa255_idp platform +# +# 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$(BOARD).a + +COBJS := palmtc.o +SOBJS := lowlevel_init.o + +SRCS := $(SOBJS:.o=.S) $(COBJS:.o=.c) +OBJS := $(addprefix $(obj),$(COBJS)) +SOBJS := $(addprefix $(obj),$(SOBJS)) + +$(LIB): $(obj).depend $(OBJS) $(SOBJS) + $(AR) $(ARFLAGS) $@ $(OBJS) $(SOBJS) + +clean: + rm -f $(SOBJS) $(OBJS) + +distclean: clean + rm -f $(LIB) core *.bak $(obj).depend + +######################################################################### + +# defines $(obj).depend target +include $(SRCTREE)/rules.mk + +sinclude $(obj).depend + +#########################################################################
board/palmtc/config.mk new file +3 -0
@@ -0,0 +1,3 @@ +#TEXT_BASE = 0xa1700000 +TEXT_BASE = 0xa1000000 +#TEXT_BASE = 0
board/palmtc/lowlevel_init.S new file +40 -0
@@ -0,0 +1,40 @@ +/* + * Palm Tungsten|C Lowlevel Hardware Initialization + * + * Copyright (C) 2010 Marek Vasut <[email protected]> + * + * + * 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 <config.h> +#include <version.h> +#include <asm/arch/pxa-regs.h> +#include <asm/arch/macro.h> + +.globl lowlevel_init +lowlevel_init: + pxa_gpio_setup + pxa_wait_ticks 0x8000 + pxa_mem_setup + pxa_wakeup + pxa_intr_setup + pxa_clock_setup + + mov pc, lr
board/palmtc/palmtc.c new file +77 -0
77 lines not on this page · raw message
board/palmtc/u-boot.lds new file +56 -0
56 lines not on this page · raw message
boards.cfg +1 -0
@@ -59,6 +59,7 @@ delta arm pxa innokom arm pxa logodl arm pxa lubbock arm pxa +palmtc arm pxa pleb2 arm pxa xaeniax arm pxa xm250 arm pxa
include/configs/palmtc.h new file +250 -0
250 lines not on this page · raw message
Signature · 1 line
1.7.1
PATCH 4/7 PXA: Palm Tungsten|C Support
Dear Marek Vasut,
Quoted 8 lines · In message <[email protected]> you wrote:
This patch adds support for the Palm Tungsten|C PXA255 board. The support includes:
- LCD
- MMC
- UART
- NORSigned-off-by Marek Vasut <[email protected]>
Quoted 15 lines
--- board/palmtc/Makefile | 54 +++++++++ board/palmtc/config.mk | 3 + board/palmtc/lowlevel_init.S | 40 +++++++ board/palmtc/palmtc.c | 77 +++++++++++++ board/palmtc/u-boot.lds | 56 ++++++++++ boards.cfg | 1 + include/configs/palmtc.h | 250 ++++++++++++++++++++++++++++++++++++++++++ 7 files changed, 481 insertions(+), 0 deletions(-) create mode 100644 board/palmtc/Makefile create mode 100644 board/palmtc/config.mk create mode 100644 board/palmtc/lowlevel_init.S create mode 100644 board/palmtc/palmtc.c create mode 100644 board/palmtc/u-boot.lds create mode 100644 include/configs/palmtc.h
Entries to MAINTAINERS and MAKEALL missing.
board/palmtc/Makefile line 3
Quoted 9 lines
board/palmtc/Makefile new file +3
-0@@ -0,0 +1,54 @@ + +# +# Copyright (C) 2009
2009?
board/palmtc/config.mk line 3
Quoted 6 lines
board/palmtc/config.mk new file +3
-0@@ -0,0 +1,3 @@ +#TEXT_BASE = 0xa1700000 +TEXT_BASE = 0xa1000000 +#TEXT_BASE = 0
Please remove dead code.
board/palmtc/config.mk
Quoted 4 lines
board/palmtc/config.mk new file +4
-0+int board_init (void) +{ + /* memory and cpu-speed are setup before relocation */ + /* so we do _nothing_ here */
Incorrect multiline comment style.
Quoted 13 lines
board/palmtc/config.mk new file +13
-0+ /* arch number of Lubbock-Board */ + gd->bd->bi_arch_number = MACH_TYPE_PALMTC; + + /* Adress of boot parameters */ + gd->bd->bi_boot_params = 0xa0000100; + + /* Set PWM for LCD */ + PWM_CTRL1 = 0x5f; + PWM_PERVAL1 = 0x3ff; + PWM_PWDUTY1 = 892; + + return 0; +}
board/palmtc/config.mk
Quoted 10 lines
board/palmtc/config.mk new file +10
-0+ +int board_late_init(void) +{ +#ifdef CONFIG_LCD + setenv("stdout", "lcd"); + setenv("stderr", "lcd"); +#else + setenv("stdout", "serial"); + setenv("stderr", "serial"); +#endif
It's a bad idea to force such settings on a user without leaving him any other choice. We had such discussions before. Please don't.
...
board/palmtc/config.mk
Quoted 7 lines
board/palmtc/config.mk new file +7
-0+#define CONFIG_PXA250 1 /* Intel PXA255 CPU */ +#define CONFIG_PALMTC 1 /* Palm Tungsten|C board */ + +#undef BOARD_LATE_INIT +#undef CONFIG_SKIP_RELOCATE_UBOOT +#undef CONFIG_USE_IRQ +#undef CONFIG_SKIP_LOWLEVEL_INIT
Please do not undef what is not defined anyway.
board/palmtc/config.mk
Quoted 7 lines
board/palmtc/config.mk new file +7
-0+/* + * Environment settings + */ +#define CONFIG_ENV_OVERWRITE +#define CONFIG_ENV_IS_IN_FLASH 1 +#define CONFIG_ENV_ADDR 0x40000 +#define CONFIG_ENV_SIZE 0x40000
Decide if you use TABs or SPACEs here (SPACEs recommended), but use that consistently then.
Quoted 1 line
+#define
CONFIG_SYS_MALLOC_LEN(CONFIG_ENV_SIZE+CONFIG_STACKSIZE)
That looks awfully wrong - the stack has nothing to do with the malloc arena. If you want to use just the same size (which does not make much sense to me either), then use aan independent variable for that.
Quoted 1 line
+#define
CONFIG_SYS_GBL_DATA_SIZE512
Don't! Make as small as possible. You probably do NOT need that much, or do you?
...
Quoted 1 line
+#define
CONFIG_SYS_CPUSPEED0x161/* standard setting for 312MHz; L=16, N=1.5, A=0, SDCLK!=SystemBus */
Line too long. Please fix globally.
Best regards,
Wolfgang Denk
Signature · 6 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 There's an old story about the person who wished his computer were as easy to use as his telephone. That wish has come true, since I no longer know how to use my telephone.
PATCH 5/7 PXA: pxafb: Add support for Sharp LQ038J7DH53
In reply to Marek VasutThis LCD panel is found in Palm LifeDrive handheld
--- arch/arm/cpu/pxa/pxafb.c | 34 ++++++++++++++++++++++++++++++++++ 1 files changed, 34 insertions(+), 0 deletions(-)
arch/arm/cpu/pxa/pxafb.c +34 -0
@@ -249,6 +249,40 @@ vidinfo_t panel_info = {/*----------------------------------------------------------------------*/ +#ifdef CONFIG_LQ038J7DH53 + +# define LCD_BPP LCD_COLOR8 + +/* you have to set lccr0 and lccr3 (including pcd) */ +# define REG_LCCR0 0x003008f9 +# define REG_LCCR3 0x03700004 + +vidinfo_t panel_info = { + vl_col:320 , + vl_row:480 , + vl_width:320 , + vl_height:480 , + vl_clkp:CONFIG_SYS_HIGH , + vl_oep:CONFIG_SYS_LOW , + vl_hsp:CONFIG_SYS_LOW , + vl_vsp:CONFIG_SYS_LOW , + vl_dp:CONFIG_SYS_HIGH , + vl_bpix:LCD_BPP , + vl_lbw:0 , + vl_splt:1 , + vl_clor:1 , + vl_tft:1 , + vl_hpw:0x04 , + vl_blw:0x20 , + vl_elw:0x01 , + vl_vpw:0x01 , + vl_bfw:0x04 , + vl_efw:0x01 , +}; +#endif /* CONFIG_ACX517AKN */ + +/*----------------------------------------------------------------------*/ +#if LCD_BPP ==LCD_COLOR8 void lcd_setcolreg (ushort regno,ushort red,ushort green,ushort blue);#endif
Signature · 1 line
1.7.1
PATCH 6/7 PXA: Add initial Palm LifeDrive support
In reply to Marek Vasut--- board/palmld/Makefile | 54 ++++++++ board/palmld/config.mk | 1 + board/palmld/lowlevel_init.S | 46 +++++++ board/palmld/palmld.c | 81 ++++++++++++ board/palmld/u-boot.lds | 56 +++++++++ boards.cfg | 1 + include/configs/palmld.h | 275 ++++++++++++++++++++++++++++++++++++++++++ 7 files changed, 514 insertions(+), 0 deletions(-) create mode 100644 board/palmld/Makefile create mode 100644 board/palmld/config.mk create mode 100644 board/palmld/lowlevel_init.S create mode 100644 board/palmld/palmld.c create mode 100644 board/palmld/u-boot.lds create mode 100644 include/configs/palmld.h
board/palmld/Makefile new file +54 -0
@@ -0,0 +1,54 @@ + +# +# Copyright (C) 2009 +# Marek Vasut <[email protected]> +# +# Heavily based on pxa255_idp platform +# +# 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$(BOARD).a + +COBJS := palmld.o +SOBJS := lowlevel_init.o + +SRCS := $(SOBJS:.o=.S) $(COBJS:.o=.c) +OBJS := $(addprefix $(obj),$(COBJS)) +SOBJS := $(addprefix $(obj),$(SOBJS)) + +$(LIB): $(obj).depend $(OBJS) $(SOBJS) + $(AR) $(ARFLAGS) $@ $(OBJS) $(SOBJS) + +clean: + rm -f $(SOBJS) $(OBJS) + +distclean: clean + rm -f $(LIB) core *.bak $(obj).depend + +######################################################################### + +# defines $(obj).depend target +include $(SRCTREE)/rules.mk + +sinclude $(obj).depend + +#########################################################################
board/palmld/config.mk new file +1 -0
@@ -0,0 +1 @@ +TEXT_BASE = 0xa1000000
board/palmld/lowlevel_init.S new file +46 -0
46 lines not on this page · raw message
board/palmld/palmld.c new file +81 -0
81 lines not on this page · raw message
board/palmld/u-boot.lds new file +56 -0
56 lines not on this page · raw message
boards.cfg +1 -0
@@ -59,6 +59,7 @@ delta arm pxa innokom arm pxa logodl arm pxa lubbock arm pxa +palmld arm pxa palmtc arm pxa pleb2 arm pxa xaeniax arm pxa
include/configs/palmld.h new file +275 -0
275 lines not on this page · raw message
Signature · 1 line
1.7.1
PATCH 6/7 PXA: Add initial Palm LifeDrive support
Dear Marek Vasut,
Quoted 16 lines · In message <[email protected]> you wrote:
Signed-off-by Marek Vasut <[email protected]>--- board/palmld/Makefile | 54 ++++++++ board/palmld/config.mk | 1 + board/palmld/lowlevel_init.S | 46 +++++++ board/palmld/palmld.c | 81 ++++++++++++ board/palmld/u-boot.lds | 56 +++++++++ boards.cfg | 1 + include/configs/palmld.h | 275 ++++++++++++++++++++++++++++++++++++++++++ 7 files changed, 514 insertions(+), 0 deletions(-) create mode 100644 board/palmld/Makefile create mode 100644 board/palmld/config.mk create mode 100644 board/palmld/lowlevel_init.S create mode 100644 board/palmld/palmld.c create mode 100644 board/palmld/u-boot.lds create mode 100644 include/configs/palmld.h
Entries to MAINTAINERS and MAKEALL missing.
board/palmld/Makefile line 2
Quoted 8 lines
board/palmld/Makefile new file +2
-0@@ -0,0 +1,54 @@ + +#
Don't waste too many empty lines.
board/palmld/Makefile line 3
Quoted 1 line
board/palmld/Makefile new file +1
-0+# Copyright (C) 2009
2009?
[Please see comments for previous patch; seems this one looks pretty much similar.]
Actually the code looks pretty much similar, too.
Are you sure that multiple copies of htis code are needed?
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 We want to create puppets that pull their own strings. - Ann Marion
PATCH 7/7 PXA: Vpac270 config fixes
In reply to Marek VasutDefine __io to get harddrive working.
Fix saving of environment into OneNAND.
Boot from harddrive when possible.
--- include/configs/vpac270.h | 12 +++++++++++- 1 files changed, 11 insertions(+), 1 deletions(-)
include/configs/vpac270.h +11 -1
@@ -36,7 +36,7 @@/* * Environment settings */ -#define CONFIG_ENV_SIZE 0x4000 +#define CONFIG_ENV_SIZE 0x20000#define CONFIG_SYS_MALLOC_LEN (CONFIG_ENV_SIZE + 128*1024)#define CONFIG_SYS_GBL_DATA_SIZE 128
@@ -49,6 +49,9 @@"if usb reset && fatload usb 0 0xa4000000 uImage; then " \"bootm 0xa4000000; " \"fi; " \ +"if ide reset && fatload ide 0 0xa4000000 uImage; then " \ +"bootm 0xa4000000; " \ +"fi; " \ "bootm 0x40000;"#define CONFIG_BOOTARGS "console=tty0 console=ttyS0,115200"#define CONFIG_TIMESTAMP
@@ -116,6 +119,7 @@#define CONFIG_PXA_MMC #define CONFIG_SYS_MMC_BASE 0xF0000000#define CONFIG_CMD_FAT +#define CONFIG_CMD_EXT2 #define CONFIG_DOS_PARTITION #endif
@@ -228,6 +232,12 @@#undef CONFIG_IDE_LED#undef CONFIG_IDE_RESET +/* +* HACK WARNING: __io +* This MUST go away once the readb/writeb and inb/outb issue is solved +*/ +#define __io +#define CONFIG_SYS_IDE_MAXBUS 1#define CONFIG_SYS_IDE_MAXDEVICE 1
Signature · 1 line
1.7.1
PATCH 7/7 PXA: Vpac270 config fixes
Dear Marek Vasut,
Quoted 14 lines · In message <[email protected]> you wrote:
Define
__ioto get harddrive working.
Fix saving of environment into OneNAND.
Boot from harddrive when possible.Signed-off-by Marek Vasut <[email protected]>--- include/configs/vpac270.h | 12 +++++++++++- 1 files changed, 11 insertions(+), 1 deletions(-)include/configs/vpac270.h +0
-0
include/configs/vpac270.h line 39
Quoted 5 lines
include/configs/vpac270.h +1
-1@@ -36,7 +36,7 @@/* * Environment settings */ -#define CONFIG_ENV_SIZE 0x4000 +#define CONFIG_ENV_SIZE 0x20000
Do you really need 128 KiB for environment data? [Note that this is NOT a sector size or so!]
Really??? I think this is not true.
include/configs/vpac270.h line 239
Quoted 5 lines
include/configs/vpac270.h +5
-0+/* +* HACK WARNING: __io +* This MUST go away once the readb/writeb and inb/outb issue is solved +*/ +#define __io
Drop that.
Best regards,
Wolfgang Denk
Signature · 5 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
"Plan to throw one away. You will anyway."
- Fred Brooks, "The Mythical Man Month"