[U-Boot] [PATCH v4] mpq101: initial support for Mercury Computer Systems MPQ101 board

2011-01-14 Thread Alex Dubov
Mpq101 is a RapidIO development board in AMC form factor, featuring MPC8548
processor, 512MB of hardwired DDR2 RAM, 128MB of hardwired NAND flash
memory, real time clock and additional serial EEPROM on i2c bus (enabled).
USB controller is available, but not presently enabled.

Additional board information is available at:
http://www.mc.com/products/boards/ensemble_mpq101_rapidio_powerquicc_iii.aspx

Environment is configured to precede the actual u-boot image so that it's
located at the beginning of flash erase block (made necessary by the recent
changes to the embedded environment handling).

Signed-off-by: Alex Dubov oa...@yahoo.com
---
Changes for v4:
   - Replace config.mk supplied linker flags with custom linker script.
   - Fix checkpatch errors.
Changes for v3:
   - Use io accessor functions for all mmio accesses.
   - Add configuration options for RTC and EEPROM on I2C buses.
Changes for v2:
   - Remove some stale configuration code from board initialization functions.

 MAINTAINERS |3 +
 board/mercury/mpq101/Makefile   |   53 +
 board/mercury/mpq101/law.c  |   55 ++
 board/mercury/mpq101/mpq101.c   |  140 ++
 board/mercury/mpq101/tlb.c  |   82 
 board/mercury/mpq101/u-boot.lds |  132 +
 boards.cfg  |1 +
 include/configs/mpq101.h|  398 +++
 8 files changed, 864 insertions(+), 0 deletions(-)
 create mode 100644 board/mercury/mpq101/Makefile
 create mode 100644 board/mercury/mpq101/law.c
 create mode 100644 board/mercury/mpq101/mpq101.c
 create mode 100644 board/mercury/mpq101/tlb.c
 create mode 100644 board/mercury/mpq101/u-boot.lds
 create mode 100644 include/configs/mpq101.h

diff --git a/MAINTAINERS b/MAINTAINERS
index d7cd09c..220c39d 100644
--- a/MAINTAINERS
+++ b/MAINTAINERS
@@ -138,6 +138,9 @@ Jon Diekema jon.diek...@smiths-aerospace.com
 
sbc8260 MPC8260
 
+Alex Dubov oa...@yahoo.com
+   mpq101  MPC8548
+
 Dirk Eibach eib...@gdsys.de
 
devconcenterPPC460EX
diff --git a/board/mercury/mpq101/Makefile b/board/mercury/mpq101/Makefile
new file mode 100644
index 000..58bc1b3
--- /dev/null
+++ b/board/mercury/mpq101/Makefile
@@ -0,0 +1,53 @@
+#
+# Copyright 2007 Freescale Semiconductor, Inc.
+# (C) Copyright 2001-2006
+# Wolfgang Denk, DENX Software Engineering, w...@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$(BOARD).o
+
+COBJS-y+= $(BOARD).o
+COBJS-y+= law.o
+COBJS-y+= tlb.o
+
+SRCS   := $(SOBJS:.o=.S) $(COBJS-y:.o=.c)
+OBJS   := $(addprefix $(obj),$(COBJS-y))
+SOBJS  := $(addprefix $(obj),$(SOBJS))
+
+$(LIB):$(obj).depend $(OBJS) $(SOBJS)
+   $(call cmd_link_o_target, $(OBJS))
+
+clean:
+   rm -f $(OBJS) $(SOBJS)
+
+distclean: clean
+   rm -f $(LIB) core *.bak .depend
+
+#
+
+# defines $(obj).depend target
+include $(SRCTREE)/rules.mk
+
+sinclude $(obj).depend
+
+#
diff --git a/board/mercury/mpq101/law.c b/board/mercury/mpq101/law.c
new file mode 100644
index 000..726b5c2
--- /dev/null
+++ b/board/mercury/mpq101/law.c
@@ -0,0 +1,55 @@
+/*
+ * Copyright 2008 Freescale Semiconductor, Inc.
+ *
+ * (C) Copyright 2000
+ * Wolfgang Denk, DENX Software Engineering, w...@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 

Re: [U-Boot] [PATCH 2/2 v2] mpc5200, digsy_mtc: add support for rev5 board version

2011-01-14 Thread Detlev Zundel
Hi Heiko,

 difference to previous board version:
 - M29W128GH flash from Numonyx
 - SDRAM ISSI IS45S16800 (Option A2 105°C)
 - rev5 uses RTC RV-3029-C2
 - update cs0 and cs1 baseaddr and length
   depending on the detected flash size.
 - added Werner Pfister pfister_wer...@intercontrol.de
   as maintainer for the digsy board variants
 - As the M29W128GH needs a special flash_cmd_reset()
   document that in the new file doc/README.cfi.
 - move #endif /* CONFIG_CMD_IDE */ to the right place
 - remove LOWBOOT config option for digsy_mtc and digsy_mtc_rev5
   boards
 - change doc/README.cfi as Stefan Roese suggested

 Signed-off-by: Heiko Schocher h...@denx.de
 Signed-off-by: Stefan Roese s...@denx.de
 cc: Wolfgang Denk h...@denx.de
 cc: Stefan Roese s...@denx.de
 cc: Werner Pfister pfister_wer...@intercontrol.de
 cc: Detlev Zundel d...@denx.de

Acked-by: Detlev Zundel d...@denx.de

Thanks!
  Detlev

-- 
LISP has  jokingly been  described as  the most  intelligent way to  misuse a
computer.  I think that  description a great  compliment because it transmits
the full  flavour of  liberation:  it has assisted a number of our most gifted
fellow humans in thinking previously impossible thoughts. - Edsger W. Dijkstra
--
DENX Software Engineering GmbH,  MD: Wolfgang Denk  Detlev Zundel
HRB 165235 Munich,  Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: (+49)-8142-66989-40 Fax: (+49)-8142-66989-80 Email: d...@denx.de
___
U-Boot mailing list
U-Boot@lists.denx.de
http://lists.denx.de/mailman/listinfo/u-boot


[U-Boot] new board with common code

2011-01-14 Thread Fabian Cenedese
Hi

I'm adding a new board. It's very similar to freescale's P2020DS, that's
why I used this code as starting point. The problem is now that it still
uses some code from board/freescale/common. At the first try this
didn't get built and therefore I get link errors. What's the preferred
way in this case?

- Is it allowed to use sources inside another board/vendor?
- Is it better to link to it or should I just copy the files into our
  vendor or board directory?
- If it's okay to link to objects from another place, how can I
  adjust the makefiles/config.mk so the freescale's common
  lib is built as well? I know makefiles but u-boot is quite high
  level usage.

Once we have it adjusted and running I will create a patch to
have it added to the official version.

Thanks

bye  Fabi

___
U-Boot mailing list
U-Boot@lists.denx.de
http://lists.denx.de/mailman/listinfo/u-boot


Re: [U-Boot] new board with common code

2011-01-14 Thread Wolfgang Denk
Dear Fabian Cenedese,

In message 5.2.0.9.1.20110114115035.036b5778@localhost you wrote:
 
 I'm adding a new board. It's very similar to freescale's P2020DS, that's
 why I used this code as starting point. The problem is now that it still
 uses some code from board/freescale/common. At the first try this
 didn't get built and therefore I get link errors. What's the preferred
 way in this case?
 
 - Is it allowed to use sources inside another board/vendor?

It is allowed, but not recommended. You are running the risk that the
board vendor may make arbitrary changes to his board code, which may
work fine for him, but break your board.  And you cannot even blame
him, because he probably is not even aware that this code gets used by
others who rely on it.

It is recommended to move such code to a common directory.

 - Is it better to link to it or should I just copy the files into our
   vendor or board directory?

Please do not copy any files.  Duplication of code is the worst that
can be done in such a szenario.

 - If it's okay to link to objects from another place, how can I
   adjust the makefiles/config.mk so the freescale's common
   lib is built as well? I know makefiles but u-boot is quite high
   level usage.

Before we go into details we should define a strategy.  Can you please
be specific: which exact files are you talking about?

Then we can dicuss with the Freescale guys how to handle this
situation.

Best regards,

Wolfgang Denk

-- 
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: w...@denx.de
Logic and practical information do not seem to apply here.
You admit that?
To deny the facts would be illogical, Doctor
-- Spock and McCoy, A Piece of the Action, stardate unknown
___
U-Boot mailing list
U-Boot@lists.denx.de
http://lists.denx.de/mailman/listinfo/u-boot


Re: [U-Boot] [PATCH v4] mpq101: initial support for Mercury Computer Systems MPQ101 board

2011-01-14 Thread Kumar Gala


On Jan 14, 2011, at 3:10 AM, Alex Dubov wrote:

 Mpq101 is a RapidIO development board in AMC form factor, featuring MPC8548
 processor, 512MB of hardwired DDR2 RAM, 128MB of hardwired NAND flash
 memory, real time clock and additional serial EEPROM on i2c bus (enabled).
 USB controller is available, but not presently enabled.
 
 Additional board information is available at:
 http://www.mc.com/products/boards/ensemble_mpq101_rapidio_powerquicc_iii.aspx
 
 Environment is configured to precede the actual u-boot image so that it's
 located at the beginning of flash erase block (made necessary by the recent
 changes to the embedded environment handling).
 
 Signed-off-by: Alex Dubov oa...@yahoo.com
 ---
 Changes for v4:
   - Replace config.mk supplied linker flags with custom linker script.
   - Fix checkpatch errors.
 Changes for v3:
   - Use io accessor functions for all mmio accesses.
   - Add configuration options for RTC and EEPROM on I2C buses.
 Changes for v2:
   - Remove some stale configuration code from board initialization functions.
 
 MAINTAINERS |3 +
 board/mercury/mpq101/Makefile   |   53 +
 board/mercury/mpq101/law.c  |   55 ++
 board/mercury/mpq101/mpq101.c   |  140 ++
 board/mercury/mpq101/tlb.c  |   82 
 board/mercury/mpq101/u-boot.lds |  132 +
 boards.cfg  |1 +
 include/configs/mpq101.h|  398 +++
 8 files changed, 864 insertions(+), 0 deletions(-)
 create mode 100644 board/mercury/mpq101/Makefile
 create mode 100644 board/mercury/mpq101/law.c
 create mode 100644 board/mercury/mpq101/mpq101.c
 create mode 100644 board/mercury/mpq101/tlb.c
 create mode 100644 board/mercury/mpq101/u-boot.lds
 create mode 100644 include/configs/mpq101.h

Can you update this against the u-boot-mpc85xx.git and use the new common SRIO 
init code

I assume customer linker script is because of where you have the environment.  
If so might be useful to add that to the commit comment.

- k
___
U-Boot mailing list
U-Boot@lists.denx.de
http://lists.denx.de/mailman/listinfo/u-boot


Re: [U-Boot] [PATCH v4] mpq101: initial support for Mercury Computer Systems MPQ101 board

2011-01-14 Thread Kumar Gala

On Jan 14, 2011, at 3:10 AM, Alex Dubov wrote:

 Mpq101 is a RapidIO development board in AMC form factor, featuring MPC8548
 processor, 512MB of hardwired DDR2 RAM, 128MB of hardwired NAND flash
 memory, real time clock and additional serial EEPROM on i2c bus (enabled).
 USB controller is available, but not presently enabled.
 
 Additional board information is available at:
 http://www.mc.com/products/boards/ensemble_mpq101_rapidio_powerquicc_iii.aspx
 
 Environment is configured to precede the actual u-boot image so that it's
 located at the beginning of flash erase block (made necessary by the recent
 changes to the embedded environment handling).
 
 Signed-off-by: Alex Dubov oa...@yahoo.com
 ---
 Changes for v4:
   - Replace config.mk supplied linker flags with custom linker script.
   - Fix checkpatch errors.
 Changes for v3:
   - Use io accessor functions for all mmio accesses.
   - Add configuration options for RTC and EEPROM on I2C buses.
 Changes for v2:
   - Remove some stale configuration code from board initialization functions.
 
 MAINTAINERS |3 +
 board/mercury/mpq101/Makefile   |   53 +
 board/mercury/mpq101/law.c  |   55 ++
 board/mercury/mpq101/mpq101.c   |  140 ++
 board/mercury/mpq101/tlb.c  |   82 
 board/mercury/mpq101/u-boot.lds |  132 +
 boards.cfg  |1 +
 include/configs/mpq101.h|  398 +++
 8 files changed, 864 insertions(+), 0 deletions(-)
 create mode 100644 board/mercury/mpq101/Makefile
 create mode 100644 board/mercury/mpq101/law.c
 create mode 100644 board/mercury/mpq101/mpq101.c
 create mode 100644 board/mercury/mpq101/tlb.c
 create mode 100644 board/mercury/mpq101/u-boot.lds
 create mode 100644 include/configs/mpq101.h
 
 diff --git a/MAINTAINERS b/MAINTAINERS
 index d7cd09c..220c39d 100644
 --- a/MAINTAINERS
 +++ b/MAINTAINERS
 @@ -138,6 +138,9 @@ Jon Diekema jon.diek...@smiths-aerospace.com
 
   sbc8260 MPC8260
 
 +Alex Dubov oa...@yahoo.com
 + mpq101  MPC8548
 +
 Dirk Eibach eib...@gdsys.de
 
   devconcenterPPC460EX
 diff --git a/board/mercury/mpq101/Makefile b/board/mercury/mpq101/Makefile
 new file mode 100644
 index 000..58bc1b3
 --- /dev/null
 +++ b/board/mercury/mpq101/Makefile
 @@ -0,0 +1,53 @@
 +#
 +# Copyright 2007 Freescale Semiconductor, Inc.
 +# (C) Copyright 2001-2006
 +# Wolfgang Denk, DENX Software Engineering, w...@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$(BOARD).o
 +
 +COBJS-y  += $(BOARD).o
 +COBJS-y  += law.o
 +COBJS-y  += tlb.o
 +
 +SRCS := $(SOBJS:.o=.S) $(COBJS-y:.o=.c)
 +OBJS := $(addprefix $(obj),$(COBJS-y))
 +SOBJS:= $(addprefix $(obj),$(SOBJS))
 +
 +$(LIB):  $(obj).depend $(OBJS) $(SOBJS)
 + $(call cmd_link_o_target, $(OBJS))
 +
 +clean:
 + rm -f $(OBJS) $(SOBJS)
 +
 +distclean:   clean
 + rm -f $(LIB) core *.bak .depend
 +
 +#
 +
 +# defines $(obj).depend target
 +include $(SRCTREE)/rules.mk
 +
 +sinclude $(obj).depend
 +
 +#
 diff --git a/board/mercury/mpq101/law.c b/board/mercury/mpq101/law.c
 new file mode 100644
 index 000..726b5c2
 --- /dev/null
 +++ b/board/mercury/mpq101/law.c
 @@ -0,0 +1,55 @@
 +/*
 + * Copyright 2008 Freescale Semiconductor, Inc.
 + *
 + * (C) Copyright 2000
 + * Wolfgang Denk, DENX Software Engineering, w...@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 

Re: [U-Boot] new board with common code

2011-01-14 Thread Kumar Gala

On Jan 14, 2011, at 5:39 AM, Wolfgang Denk wrote:

 Dear Fabian Cenedese,
 
 In message 5.2.0.9.1.20110114115035.036b5778@localhost you wrote:
 
 I'm adding a new board. It's very similar to freescale's P2020DS, that's
 why I used this code as starting point. The problem is now that it still
 uses some code from board/freescale/common. At the first try this
 didn't get built and therefore I get link errors. What's the preferred
 way in this case?
 
 - Is it allowed to use sources inside another board/vendor?
 
 It is allowed, but not recommended. You are running the risk that the
 board vendor may make arbitrary changes to his board code, which may
 work fine for him, but break your board.  And you cannot even blame
 him, because he probably is not even aware that this code gets used by
 others who rely on it.
 
 It is recommended to move such code to a common directory.
 
 - Is it better to link to it or should I just copy the files into our
  vendor or board directory?
 
 Please do not copy any files.  Duplication of code is the worst that
 can be done in such a szenario.
 
 - If it's okay to link to objects from another place, how can I
  adjust the makefiles/config.mk so the freescale's common
  lib is built as well? I know makefiles but u-boot is quite high
  level usage.
 
 Before we go into details we should define a strategy.  Can you please
 be specific: which exact files are you talking about?
 
 Then we can dicuss with the Freescale guys how to handle this
 situation.

Agreed, if we know what code is common we could see about how best to refactor 
it for sharing.

- k
___
U-Boot mailing list
U-Boot@lists.denx.de
http://lists.denx.de/mailman/listinfo/u-boot


[U-Boot] [PATCH 3/7] mxc_i2c: Add support for the i.MX35 processor

2011-01-14 Thread Stefano Babic
Signed-off-by: Stefano Babic sba...@denx.de
---
 drivers/i2c/mxc_i2c.c |   16 ++--
 1 files changed, 14 insertions(+), 2 deletions(-)

diff --git a/drivers/i2c/mxc_i2c.c b/drivers/i2c/mxc_i2c.c
index 8e10fbb..74a984d 100644
--- a/drivers/i2c/mxc_i2c.c
+++ b/drivers/i2c/mxc_i2c.c
@@ -26,8 +26,13 @@
 
 #if defined(CONFIG_HARD_I2C)
 
+#if defined(CONFIG_MX31)
 #include asm/arch/mx31.h
 #include asm/arch/mx31-regs.h
+#else
+#include asm/arch/imx-regs.h
+#include asm/arch/clock.h
+#endif
 
 #define IADR   0x00
 #define IFDR   0x04
@@ -56,8 +61,10 @@
 #elif defined (CONFIG_SYS_I2C_MX31_PORT3)
 #define I2C_BASE   0x43f84000
 #define I2C_CLK_OFFSET 30
+#elif defined (CONFIG_SYS_I2C_MX35_PORT1)
+#define I2C_BASE   I2C_BASE_ADDR
 #else
-#error define CONFIG_SYS_I2C_MX31_PORTx to use the mx31 I2C driver
+#error define CONFIG_SYS_I2C_MXXX_PORTx to use the mx I2C driver
 #endif
 
 #ifdef DEBUG
@@ -72,11 +79,16 @@ static u16 div[] = { 30, 32, 36, 42, 48, 52, 60, 72, 80, 
88, 104, 128, 144,
 
 void i2c_init(int speed, int unused)
 {
-   int freq = mx31_get_ipg_clk();
+   int freq;
int i;
 
+#ifdef CONFIG_MX31
+   freq = mx31_get_ipg_clk();
/* start the required I2C clock */
__REG(CCM_CGR0) = __REG(CCM_CGR0) | (3  I2C_CLK_OFFSET);
+#else
+   freq = mxc_get_clock(MXC_IPG_PERCLK);
+#endif
 
for (i = 0; i  0x1f; i++)
if (freq / div[i] = speed)
-- 
1.7.1

___
U-Boot mailing list
U-Boot@lists.denx.de
http://lists.denx.de/mailman/listinfo/u-boot


[U-Boot] [PATCH 2/7] serial_mxc: add support for Freescale's i.MX35 processor

2011-01-14 Thread Stefano Babic
The patch adds UART support for the i.MX35 processor.

Signed-off-by: Stefano Babic sba...@denx.de
---
 drivers/serial/serial_mxc.c |4 ++--
 1 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/drivers/serial/serial_mxc.c b/drivers/serial/serial_mxc.c
index f96b21f..2dcae40 100644
--- a/drivers/serial/serial_mxc.c
+++ b/drivers/serial/serial_mxc.c
@@ -50,9 +50,9 @@
 #define UART_PHYS 0x1001b000
 #elif defined(CONFIG_SYS_MX27_UART6)
 #define UART_PHYS 0x1001c000
-#elif defined(CONFIG_SYS_MX51_UART1)
+#elif defined(CONFIG_SYS_MX51_UART1) || defined(CONFIG_SYS_MX35_UART1)
 #define UART_PHYS UART1_BASE_ADDR
-#elif defined(CONFIG_SYS_MX51_UART2)
+#elif defined(CONFIG_SYS_MX51_UART2) || defined(CONFIG_SYS_MX35_UART2)
 #define UART_PHYS UART2_BASE_ADDR
 #elif defined(CONFIG_SYS_MX51_UART3)
 #define UART_PHYS UART3_BASE_ADDR
-- 
1.7.1

___
U-Boot mailing list
U-Boot@lists.denx.de
http://lists.denx.de/mailman/listinfo/u-boot


[U-Boot] [PATCH 6/7] mxc_spi: add support for i.MX35 processor

2011-01-14 Thread Stefano Babic
Signed-off-by: Stefano Babic sba...@denx.de
---
 drivers/spi/mxc_spi.c |   96 +
 1 files changed, 73 insertions(+), 23 deletions(-)

diff --git a/drivers/spi/mxc_spi.c b/drivers/spi/mxc_spi.c
index d558137..b353c83 100644
--- a/drivers/spi/mxc_spi.c
+++ b/drivers/spi/mxc_spi.c
@@ -70,6 +70,8 @@ static unsigned long spi_bases[] = {
0x53f84000,
 };
 
+#define spi_cfgspi_cfg_mx3
+
 #elif defined(CONFIG_MX51)
 #include asm/arch/imx-regs.h
 #include asm/arch/clock.h
@@ -111,6 +113,47 @@ static unsigned long spi_bases[] = {
CSPI2_BASE_ADDR,
CSPI3_BASE_ADDR,
 };
+#define spi_cfgspi_cfg_mx51
+
+#elif defined(CONFIG_MX35)
+
+#include asm/arch/imx-regs.h
+#include asm/arch/clock.h
+
+#define MXC_CSPIRXDATA 0x00
+#define MXC_CSPITXDATA 0x04
+#define MXC_CSPICTRL   0x08
+#define MXC_CSPIINT0x0C
+#define MXC_CSPIDMA0x10
+#define MXC_CSPISTAT   0x14
+#define MXC_CSPIPERIOD 0x18
+#define MXC_CSPITEST   0x1C
+#define MXC_CSPIRESET  0x00
+
+#define MXC_CSPICTRL_EN(1  0)
+#define MXC_CSPICTRL_MODE  (1  1)
+#define MXC_CSPICTRL_XCH   (1  2)
+#define MXC_CSPICTRL_SMC   (1  3)
+#define MXC_CSPICTRL_POL   (1  4)
+#define MXC_CSPICTRL_PHA   (1  5)
+#define MXC_CSPICTRL_SSCTL (1  6)
+#define MXC_CSPICTRL_SSPOL (1  7)
+#define MXC_CSPICTRL_CHIPSELECT(x) (((x)  0x3)  12)
+#define MXC_CSPICTRL_BITCOUNT(x)   (((x)  0xfff)  20)
+#define MXC_CSPICTRL_DATARATE(x)   (((x)  0x7)  16)
+#define MXC_CSPICTRL_TC(1  7)
+#define MXC_CSPICTRL_RXOVF (1  6)
+#define MXC_CSPICTRL_MAXBITS   0xfff
+
+#define MXC_CSPIPERIOD_32KHZ   (1  15)
+#define MAX_SPI_BYTES  4
+
+static unsigned long spi_bases[] = {
+   0x43fa4000,
+   0x5001,
+};
+#define spi_cfgspi_cfg_mx3
+
 #else
 #error Unsupported architecture
 #endif
@@ -158,8 +201,35 @@ void spi_cs_deactivate(struct spi_slave *slave)
  !(mxcs-ss_pol));
 }
 
-#ifdef CONFIG_MX51
-static s32 spi_cfg(struct mxc_spi_slave *mxcs, unsigned int cs,
+#if defined(CONFIG_MX31) || defined(CONFIG_MX35)
+static s32 spi_cfg_mx3(struct mxc_spi_slave *mxcs, unsigned int cs,
+   unsigned int max_hz, unsigned int mode)
+{
+   unsigned int ctrl_reg;
+
+   ctrl_reg = MXC_CSPICTRL_CHIPSELECT(cs) |
+   MXC_CSPICTRL_BITCOUNT(MXC_CSPICTRL_MAXBITS) |
+   MXC_CSPICTRL_DATARATE(7) | /* FIXME: calculate data rate */
+   MXC_CSPICTRL_EN |
+#ifdef CONFIG_MX35
+   MXC_CSPICTRL_SSCTL |
+#endif
+   MXC_CSPICTRL_MODE;
+
+   if (mode  SPI_CPHA)
+   ctrl_reg |= MXC_CSPICTRL_PHA;
+   if (mode  SPI_CPOL)
+   ctrl_reg |= MXC_CSPICTRL_POL;
+   if (mode  SPI_CS_HIGH)
+   ctrl_reg |= MXC_CSPICTRL_SSPOL;
+   mxcs-ctrl_reg = ctrl_reg;
+
+   return 0;
+}
+#endif
+
+#if defined(CONFIG_MX51)
+static s32 spi_cfg_mx51(struct mxc_spi_slave *mxcs, unsigned int cs,
unsigned int max_hz, unsigned int mode)
 {
u32 clk_src = mxc_get_clock(MXC_CSPI_CLK);
@@ -227,7 +297,7 @@ static s32 spi_cfg(struct mxc_spi_slave *mxcs, unsigned int 
cs,
 
/*
 * Configuration register setup
-* The MX51 has support different setup for each SS
+* The MX51 supports different setup for each SS
 */
reg_config = (reg_config  ~(1  (cs + MXC_CSPICON_SSPOL))) |
(ss_pol  (cs + MXC_CSPICON_SSPOL));
@@ -363,7 +433,6 @@ int spi_xchg_single(struct spi_slave *slave, unsigned int 
bitlen,
 
 }
 
-
 int spi_xfer(struct spi_slave *slave, unsigned int bitlen, const void *dout,
void *din, unsigned long flags)
 {
@@ -441,7 +510,6 @@ static int decode_cs(struct mxc_spi_slave *mxcs, unsigned 
int cs)
 struct spi_slave *spi_setup_slave(unsigned int bus, unsigned int cs,
unsigned int max_hz, unsigned int mode)
 {
-   unsigned int ctrl_reg;
struct mxc_spi_slave *mxcs;
int ret;
 
@@ -467,30 +535,12 @@ struct spi_slave *spi_setup_slave(unsigned int bus, 
unsigned int cs,
mxcs-base = spi_bases[bus];
mxcs-ss_pol = (mode  SPI_CS_HIGH) ? 1 : 0;
 
-#ifdef CONFIG_MX51
-   /* Can be used for i.MX31 too ? */
-   ctrl_reg = 0;
ret = spi_cfg(mxcs, cs, max_hz, mode);
if (ret) {
printf(mxc_spi: cannot setup SPI controller\n);
free(mxcs);
return NULL;
}
-#else
-   ctrl_reg = MXC_CSPICTRL_CHIPSELECT(cs) |
-   MXC_CSPICTRL_BITCOUNT(31) |
-   MXC_CSPICTRL_DATARATE(7) | /* FIXME: calculate data rate */
-   MXC_CSPICTRL_EN |
-   MXC_CSPICTRL_MODE;
-
-   if (mode  SPI_CPHA)
-   ctrl_reg |= MXC_CSPICTRL_PHA;
-   if (mode  SPI_CPOL)
-   ctrl_reg |= MXC_CSPICTRL_POL;
-   if (mode  

[U-Boot] [PATCH 7/7] Add support for Freescale's mx35pdk board.

2011-01-14 Thread Stefano Babic
The patch adds suupport for the Freescale's mx35pdk board
(known as well as mx35_3stack).

The board boots from the NOR flash. Following devices
are supported:
 - two ethernet devices (FEC and SMC911x on debug board)
 - I2C
 - PMIC (MC13892) via I2C interface
 - UART
 - NOR flash (64MB)
 - NAND flash (2GB)
 - basic access to mc9sdz60 registers via I2C interface

Signed-off-by: Stefano Babic sba...@denx.de
---
 MAINTAINERS |1 +
 MAKEALL |1 +
 arch/arm/include/asm/arch-mx35/mmu.h|  172 --
 board/freescale/mx35pdk/Makefile|   49 
 board/freescale/mx35pdk/config.mk   |   25 ++
 board/freescale/mx35pdk/imximage.cfg|   62 +
 board/freescale/mx35pdk/lowlevel_init.S |  382 +++
 board/freescale/mx35pdk/mx35pdk.c   |  313 +
 board/freescale/mx35pdk/mx35pdk.h   |  101 
 boards.cfg  |1 +
 doc/README.mx35pdk  |  185 +++
 include/configs/mx35pdk.h   |  269 ++
 12 files changed, 1389 insertions(+), 172 deletions(-)
 delete mode 100644 arch/arm/include/asm/arch-mx35/mmu.h
 create mode 100644 board/freescale/mx35pdk/Makefile
 create mode 100644 board/freescale/mx35pdk/config.mk
 create mode 100644 board/freescale/mx35pdk/imximage.cfg
 create mode 100644 board/freescale/mx35pdk/lowlevel_init.S
 create mode 100644 board/freescale/mx35pdk/mx35pdk.c
 create mode 100644 board/freescale/mx35pdk/mx35pdk.h
 create mode 100644 doc/README.mx35pdk
 create mode 100644 include/configs/mx35pdk.h

diff --git a/MAINTAINERS b/MAINTAINERS
index d7cd09c..3abb4cb 100644
--- a/MAINTAINERS
+++ b/MAINTAINERS
@@ -554,6 +554,7 @@ Stefano Babic sba...@denx.de
ea20davinci
polaris xscale
trizepsiv   xscale
+   mx35pdk i.MX35
mx51evk i.MX51
vision2 i.MX51
 
diff --git a/MAKEALL b/MAKEALL
index a732e6a..31dbfe1 100755
--- a/MAKEALL
+++ b/MAKEALL
@@ -409,6 +409,7 @@ LIST_ARM11=\
mx31ads \
mx31pdk \
mx31pdk_nand\
+   mx35pdk \
qong\
smdk6400\
tnetv107x_evm   \
diff --git a/arch/arm/include/asm/arch-mx35/mmu.h 
b/arch/arm/include/asm/arch-mx35/mmu.h
deleted file mode 100644
index 1b15dba..000
--- a/arch/arm/include/asm/arch-mx35/mmu.h
+++ /dev/null
@@ -1,172 +0,0 @@
-/*
- * Copyright 2004-2010 Freescale Semiconductor, Inc. All Rights Reserved.
- */
-
-/*
- * The code contained herein is licensed under the GNU General Public
- * License. You may obtain a copy of the GNU General Public License
- * Version 2 or later at the following locations:
- *
- * http://www.opensource.org/licenses/gpl-license.html
- * http://www.gnu.org/copyleft/gpl.html
- */
-
-#ifndef __ARM_ARCH_MMU_H
-#define __ARM_ARCH_MMU_H
-
-/*
- * Translation Table Base Bit Masks
- */
-#define ARM_TRANSLATION_TABLE_MASK   0xC000
-
-/*
- * Domain Access Control Bit Masks
- */
-#define ARM_ACCESS_TYPE_NO_ACCESS(domain_num)(0x0  (domain_num)*2)
-#define ARM_ACCESS_TYPE_CLIENT(domain_num)   (0x1  (domain_num)*2)
-#define ARM_ACCESS_TYPE_MANAGER(domain_num)  (0x3  (domain_num)*2)
-
-struct ARM_MMU_FIRST_LEVEL_FAULT {
-   unsigned int id:2;
-   unsigned int sbz:30;
-};
-
-#define ARM_MMU_FIRST_LEVEL_FAULT_ID 0x0
-
-struct ARM_MMU_FIRST_LEVEL_PAGE_TABLE {
-   unsigned int id:2;
-   unsigned int imp:2;
-   unsigned int domain:4;
-   unsigned int sbz:1;
-   unsigned int base_address:23;
-};
-
-#define ARM_MMU_FIRST_LEVEL_PAGE_TABLE_ID 0x1
-
-struct ARM_MMU_FIRST_LEVEL_SECTION {
-   unsigned int id:2;
-   unsigned int b:1;
-   unsigned int c:1;
-   unsigned int imp:1;
-   unsigned int domain:4;
-   unsigned int sbz0:1;
-   unsigned int ap:2;
-   unsigned int sbz1:8;
-   unsigned int base_address:12;
-};
-
-#define ARM_MMU_FIRST_LEVEL_SECTION_ID 0x2
-
-struct ARM_MMU_FIRST_LEVEL_RESERVED {
-   unsigned int id:2;
-   unsigned int sbz:30;
-};
-
-#define ARM_MMU_FIRST_LEVEL_RESERVED_ID 0x3
-
-#define ARM_MMU_FIRST_LEVEL_DESCRIPTOR_ADDRESS(ttb_base, table_index) \
-   (unsigned long *)((unsigned long)(ttb_base) + ((table_index)  2))
-
-#define ARM_FIRST_LEVEL_PAGE_TABLE_SIZE 0x4000
-
-#define ARM_MMU_SECTION(ttb_base, actual_base, virtual_base,   \
-   cacheable, bufferable, perm)\
-   {   \
-   register union ARM_MMU_FIRST_LEVEL_DESCRIPTOR desc; \
-   desc.word = 0;  \
-   desc.section.id = ARM_MMU_FIRST_LEVEL_SECTION_ID;   \
-   desc.section.domain = 0;   

[U-Boot] [PATCH 4/7] mxc_nand: add support for i.MX35 processor

2011-01-14 Thread Stefano Babic
Signed-off-by: Stefano Babic sba...@denx.de
---
 drivers/mtd/nand/mxc_nand.c |6 +++---
 1 files changed, 3 insertions(+), 3 deletions(-)

diff --git a/drivers/mtd/nand/mxc_nand.c b/drivers/mtd/nand/mxc_nand.c
index ec71cfc..2a8dd7e 100644
--- a/drivers/mtd/nand/mxc_nand.c
+++ b/drivers/mtd/nand/mxc_nand.c
@@ -22,7 +22,7 @@
 #include nand.h
 #include linux/err.h
 #include asm/io.h
-#if defined(CONFIG_MX25) || defined(CONFIG_MX27)
+#if defined(CONFIG_MX25) || defined(CONFIG_MX27) || defined(CONFIG_MX35)
 #include asm/arch/imx-regs.h
 #endif
 
@@ -50,7 +50,7 @@
  */
 #if defined(CONFIG_MX31) || defined(CONFIG_MX27)
 #define MXC_NFC_V1
-#elif defined(CONFIG_MX25)
+#elif defined(CONFIG_MX25) || defined(CONFIG_MX35)
 #define MXC_NFC_V1_1
 #else
 #warning MXC NFC version not defined
@@ -265,7 +265,7 @@ static int is_16bit_nand(void)
else
return 0;
 }
-#elif defined(CONFIG_MX25)
+#elif defined(CONFIG_MX25) || defined(CONFIG_MX35)
 static int is_16bit_nand(void)
 {
struct ccm_regs *ccm =
-- 
1.7.1

___
U-Boot mailing list
U-Boot@lists.denx.de
http://lists.denx.de/mailman/listinfo/u-boot


[U-Boot] [PATCH 5/7] Add basic support for Freescale's mc9sdz60

2011-01-14 Thread Stefano Babic
The patch adds helper funtions for basic access to the registers
of the MC9sdz60 chip (multifunctional device with RTC and CAN) via
I2C interface.

Signed-off-by: Stefano Babic sba...@denx.de
---
 drivers/misc/Makefile   |1 +
 drivers/misc/mc9sdz60.c |   51 
 include/mc9sdz60.h  |   84 +++
 3 files changed, 136 insertions(+), 0 deletions(-)
 create mode 100644 drivers/misc/mc9sdz60.c
 create mode 100644 include/mc9sdz60.h

diff --git a/drivers/misc/Makefile b/drivers/misc/Makefile
index a76bd4e..311c373 100644
--- a/drivers/misc/Makefile
+++ b/drivers/misc/Makefile
@@ -32,6 +32,7 @@ COBJS-$(CONFIG_GPIO_LED) += gpio_led.o
 COBJS-$(CONFIG_NS87308) += ns87308.o
 COBJS-$(CONFIG_STATUS_LED) += status_led.o
 COBJS-$(CONFIG_TWL4030_LED) += twl4030_led.o
+COBJS-$(CONFIG_FSL_MC9SDZ60) += mc9sdz60.o
 COBJS-$(CONFIG_FSL_PMIC) += fsl_pmic.o
 COBJS-$(CONFIG_PDSP188x) += pdsp188x.o
 
diff --git a/drivers/misc/mc9sdz60.c b/drivers/misc/mc9sdz60.c
new file mode 100644
index 000..439d5a6
--- /dev/null
+++ b/drivers/misc/mc9sdz60.c
@@ -0,0 +1,51 @@
+/*
+ * (C) Copyright 2010 Stefano Babic sba...@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 config.h
+#include common.h
+#include asm/errno.h
+#include linux/types.h
+#include i2c.h
+#include mc9sdz60.h
+
+#ifndef CONFIG_SYS_FSL_MC9SDZ60_I2C_ADDR
+#error You have to configure I2C address for MC9SDZ60
+#endif
+
+
+u8 mc9sdz60_reg_read(enum mc9sdz60_reg reg)
+{
+   u8 val;
+
+   if (i2c_read(CONFIG_SYS_FSL_MC9SDZ60_I2C_ADDR, reg, 1, val, 1)) {
+   puts(Error reading MC9SDZ60 register\n);
+   return -1;
+   }
+
+   return val;
+}
+
+void mc9sdz60_reg_write(enum mc9sdz60_reg reg, u8 val)
+{
+   i2c_write(CONFIG_SYS_FSL_MC9SDZ60_I2C_ADDR, reg, 1, val, 1);
+}
diff --git a/include/mc9sdz60.h b/include/mc9sdz60.h
new file mode 100644
index 000..31b894c
--- /dev/null
+++ b/include/mc9sdz60.h
@@ -0,0 +1,84 @@
+/*
+ * Copyright (C) 2009 Marc Kleine-Budde m...@pengutronix.de
+ *
+ * Copyright 2004-2009 Freescale Semiconductor, Inc. All Rights Reserved.
+ *
+ * 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
+ *
+ */
+
+#ifndef __ASM_ARCH_MC9SDZ60_H
+#define __ASM_ARCH_MC9SDZ60_H
+
+/**
+ * Register addresses for the MC9SDZ60
+ *
+ * @note: these match those in the kernel drivers/mxc/mcu_pmic/mc9s08dz60.h
+ * but not include/linux/mfd/mc9s08dz60/pmic.h
+ *
+ */
+enum mc9sdz60_reg {
+   MC9SDZ60_REG_VERSION= 0x00,
+   /* reserved   0x01 */
+   MC9SDZ60_REG_SECS   = 0x02,
+   MC9SDZ60_REG_MINS   = 0x03,
+   MC9SDZ60_REG_HRS= 0x04,
+   MC9SDZ60_REG_DAY= 0x05,
+   MC9SDZ60_REG_DATE   = 0x06,
+   MC9SDZ60_REG_MONTH  = 0x07,
+   MC9SDZ60_REG_YEAR   = 0x08,
+   MC9SDZ60_REG_ALARM_SECS = 0x09,
+   MC9SDZ60_REG_ALARM_MINS = 0x0a,
+   MC9SDZ60_REG_ALARM_HRS  = 0x0b,
+   /* reserved   0x0c */
+   /* reserved   0x0d */
+   MC9SDZ60_REG_TS_CONTROL = 0x0e,
+   MC9SDZ60_REG_X_LOW  = 0x0f,
+   MC9SDZ60_REG_Y_LOW  = 0x10,
+   MC9SDZ60_REG_XY_HIGH= 0x11,
+   MC9SDZ60_REG_X_LEFT_LOW = 0x12,
+   MC9SDZ60_REG_X_LEFT_HIGH= 0x13,
+   

Re: [U-Boot] [v3 patch 2/4] SMDK6400: Fix some label undefined in build error

2011-01-14 Thread seedshope
On 01/14/2011 02:07 AM, Albert ARIBAUD wrote:
 Le 13/01/2011 14:36, seedshope a écrit :
 Modify Makefile for cpu_init.c and Start.s use some label,this defined
 u-boot.lds of arch/arm/cpu/arm1176. But SMDK6400 use the link script
 board/samsung/smdk6400/u-boot-nand.lds. So add some label form 
 u-boot.lds
 to u-boot-nand.lds

 Signed-off-by: seedshopebocui...@gmail.com

 diff --git a/arch/arm/cpu/arm1176/s3c64xx/Makefile 
 b/arch/arm/cpu/arm1176/s3c64xx/Makefile
 index 0785b19..f4b9574 100644
 --- a/arch/arm/cpu/arm1176/s3c64xx/Makefile
 +++ b/arch/arm/cpu/arm1176/s3c64xx/Makefile
 @@ -30,12 +30,15 @@ LIB= $(obj)lib$(SOC).o

   SOBJS= reset.o

 -COBJS-$(CONFIG_S3C6400)+= cpu_init.o speed.o
 +COBJS-$(CONFIG_S3C6400)+= speed.o
   COBJS-y+= timer.o

 +CPUINIT= cpu_init.o
 +
   OBJS:= $(addprefix $(obj),$(SOBJS) $(COBJS-y))
 +CPUINIT := $(addprefix $(obj),$(CPUINIT))

 -all:$(obj).depend $(START) $(LIB)
 +all:$(obj).depend $(START) $(LIB) $(CPUINIT)

   $(LIB):$(OBJS)
   $(call cmd_link_o_target, $(OBJS))

 Not sure I get what's the problem and how exactly this changes solves 
 it. Can you detail this particular issue?
The issue is mem_ctrl_asm_init redefine in 
arch/arm/cpu/arm1176/s3c64xx/cpu_init.s.

At first, the link script file include cpu_init.s in 
board/samsung/smd6400/u-boot-nand.s, If I separate the cpu_init.o from 
COBJS-$(CONFIG_S3C6400), I guess cmd_link_o_target will deal with 
cpu_init.o. So the link script will double link the cpu_init file.

I have two method to solve it.
first: see the patch
second: Modify the link script

But I feel, the first method is safe.

I asked a question. I will RR on next, The patch1 and patch3 have 
already ok,  Do I only send patch2 and patch4?

 Amicalement,

___
U-Boot mailing list
U-Boot@lists.denx.de
http://lists.denx.de/mailman/listinfo/u-boot


Re: [U-Boot] [v3 patch 4/4] SMDK6400: Fix SMDK6400 SDRAM init

2011-01-14 Thread seedshope
On 01/14/2011 08:53 AM, Minkyu Kang wrote:
 Dear seedshope,

 On 13 January 2011 22:36, seedshopebocui...@gmail.com  wrote:
 Since SDRAM init function have already change, So the SDRAM
 initial function must be change.

 Signed-off-by: seedshopebocui...@gmail.com

 diff --git a/board/samsung/smdk6400/smdk6400.c 
 b/board/samsung/smdk6400/smdk6400.c
 index 35aa40b..043d553 100644
 --- a/board/samsung/smdk6400/smdk6400.c
 +++ b/board/samsung/smdk6400/smdk6400.c
 @@ -78,10 +78,18 @@ int board_init(void)
 return 0;
   }

 -int dram_init(void)
 +void dram_init_banksize(void)
   {
 +   DECLARE_GLOBAL_DATA_PTR;
 Please move it to out of function.
I am sorry, DECLARE_GLOBAL_DATA_PTR have already defind  in the head of 
the file,
I will drop this declare.
 +
 gd-bd-bi_dram[0].start = PHYS_SDRAM_1;
 gd-bd-bi_dram[0].size = PHYS_SDRAM_1_SIZE;
 +}
 +
 +int dram_init(void)
 +{
 +   gd-ram_size = get_ram_size((long *)CONFIG_SYS_SDRAM_BASE, \
 Please remove \.

ok

Thanks,
seedshope
 +   PHYS_SDRAM_1_SIZE);

 return 0;
   }
 --
 1.7.1


 Thanks
 Minkyu Kang

___
U-Boot mailing list
U-Boot@lists.denx.de
http://lists.denx.de/mailman/listinfo/u-boot


Re: [U-Boot] [v3 patch 2/4] SMDK6400: Fix some label undefined in build error

2011-01-14 Thread seedshope
On 01/14/2011 11:45 PM, seedshope wrote:
 On 01/14/2011 02:07 AM, Albert ARIBAUD wrote:
 Le 13/01/2011 14:36, seedshope a écrit :
 Modify Makefile for cpu_init.c and Start.s use some label,this defined
 u-boot.lds of arch/arm/cpu/arm1176. But SMDK6400 use the link script
 board/samsung/smdk6400/u-boot-nand.lds. So add some label form 
 u-boot.lds
 to u-boot-nand.lds

 Signed-off-by: seedshopebocui...@gmail.com

 diff --git a/arch/arm/cpu/arm1176/s3c64xx/Makefile 
 b/arch/arm/cpu/arm1176/s3c64xx/Makefile
 index 0785b19..f4b9574 100644
 --- a/arch/arm/cpu/arm1176/s3c64xx/Makefile
 +++ b/arch/arm/cpu/arm1176/s3c64xx/Makefile
 @@ -30,12 +30,15 @@ LIB= $(obj)lib$(SOC).o

   SOBJS= reset.o

 -COBJS-$(CONFIG_S3C6400)+= cpu_init.o speed.o
 +COBJS-$(CONFIG_S3C6400)+= speed.o
   COBJS-y+= timer.o

 +CPUINIT= cpu_init.o
 +
   OBJS:= $(addprefix $(obj),$(SOBJS) $(COBJS-y))
 +CPUINIT := $(addprefix $(obj),$(CPUINIT))

 -all:$(obj).depend $(START) $(LIB)
 +all:$(obj).depend $(START) $(LIB) $(CPUINIT)

   $(LIB):$(OBJS)
   $(call cmd_link_o_target, $(OBJS))

 Not sure I get what's the problem and how exactly this changes solves 
 it. Can you detail this particular issue?
The part of u-boot-nand.lds as following:

 . = ALIGN(4);
 .text  :
 {
   arch/arm/cpu/arm1176/start.o  (.text)
   arch/arm/cpu/arm1176/s3c64xx/cpu_init.o   (.text)
   *(.text)
 }

I reference start.s to get the patch.;-)

Thanks,
seedshope
 The issue is mem_ctrl_asm_init redefine in 
 arch/arm/cpu/arm1176/s3c64xx/cpu_init.s.

 At first, the link script file include cpu_init.s in 
 board/samsung/smd6400/u-boot-nand.s, If I separate the cpu_init.o from 
 COBJS-$(CONFIG_S3C6400), I guess cmd_link_o_target will deal with 
 cpu_init.o. So the link script will double link the cpu_init file.

 I have two method to solve it.
 first: see the patch
 second: Modify the link script

 But I feel, the first method is safe.

 I asked a question. I will RR on next, The patch1 and patch3 have 
 already ok,  Do I only send patch2 and patch4?

 Amicalement,


___
U-Boot mailing list
U-Boot@lists.denx.de
http://lists.denx.de/mailman/listinfo/u-boot


Re: [U-Boot] new board with common code

2011-01-14 Thread Fabian Cenedese

 I'm adding a new board. It's very similar to freescale's P2020DS, that's
 why I used this code as starting point. The problem is now that it still
 uses some code from board/freescale/common. At the first try this
 didn't get built and therefore I get link errors. What's the preferred
 way in this case?
 
 - Is it allowed to use sources inside another board/vendor?

It is allowed, but not recommended. You are running the risk that the
board vendor may make arbitrary changes to his board code, which may
work fine for him, but break your board.  And you cannot even blame
him, because he probably is not even aware that this code gets used by
others who rely on it.

It is recommended to move such code to a common directory.

 - Is it better to link to it or should I just copy the files into our
   vendor or board directory?

Please do not copy any files.  Duplication of code is the worst that
can be done in such a szenario.

 - If it's okay to link to objects from another place, how can I
   adjust the makefiles/config.mk so the freescale's common
   lib is built as well? I know makefiles but u-boot is quite high
   level usage.

Before we go into details we should define a strategy.  Can you please
be specific: which exact files are you talking about?

One thing was pixis, but as we don't have that FPGA I could remove
all references to it. Also missing was the eeprom so I got a link
error for mac_read_from_eeprom. We mainly want to use U-Boot
to initialize the CPU and DRAM. As this is a PCIe-card for the PC
we can then download all other things we need. So I could also
remove the EEPROM support.

I cleaned the config file up and removed things we don't have. I can
now build for my board without using anything from freescale/common,
so the problem is solved for now. I will think about it if we need to add
something and the error comes up again.

Thanks for your help.

bye  Fabi

___
U-Boot mailing list
U-Boot@lists.denx.de
http://lists.denx.de/mailman/listinfo/u-boot


Re: [U-Boot] new board with common code

2011-01-14 Thread Kumar Gala

On Jan 14, 2011, at 10:12 AM, Fabian Cenedese wrote:

 
 Before we go into details we should define a strategy.  Can you please
 be specific: which exact files are you talking about?
 
 One thing was pixis, but as we don't have that FPGA I could remove
 all references to it. Also missing was the eeprom so I got a link
 error for mac_read_from_eeprom. We mainly want to use U-Boot
 to initialize the CPU and DRAM. As this is a PCIe-card for the PC
 we can then download all other things we need. So I could also
 remove the EEPROM support.
 
 I cleaned the config file up and removed things we don't have. I can
 now build for my board without using anything from freescale/common,
 so the problem is solved for now. I will think about it if we need to add
 something and the error comes up again.
 
 Thanks for your help.
 
 bye  Fabi

Ok, I'd be surprised if you need anything in freescale/common

- k
___
U-Boot mailing list
U-Boot@lists.denx.de
http://lists.denx.de/mailman/listinfo/u-boot


Re: [U-Boot] [PATCH 2/8] 8xxx/ddr: add support to only compute the ddr sdram size

2011-01-14 Thread Kumar Gala

On Dec 1, 2010, at 9:35 AM, haiying.w...@freescale.com 
haiying.w...@freescale.com wrote:

 From: Haiying Wang haiying.w...@freescale.com
 
 This patch adds fsl_ddr_sdram_size to only calculate the ddr sdram size, in
 case that the DDR SDRAM is initialized in the 2nd stage uboot and should not
 be intialized again in the final stage uboot.
 
 Signed-off-by: Haiying Wang haiying.w...@freescale.com
 ---
 arch/powerpc/cpu/mpc8xxx/ddr/ctrl_regs.c |   10 -
 arch/powerpc/cpu/mpc8xxx/ddr/ddr.h   |8 --
 arch/powerpc/cpu/mpc8xxx/ddr/main.c  |   31 +
 3 files changed, 40 insertions(+), 9 deletions(-)

applied

- k
___
U-Boot mailing list
U-Boot@lists.denx.de
http://lists.denx.de/mailman/listinfo/u-boot


Re: [U-Boot] [v3 patch 2/4] SMDK6400: Fix some label undefined in build error

2011-01-14 Thread Albert ARIBAUD
Hi seedshope,

Le 14/01/2011 16:45, seedshope a écrit :
 On 01/14/2011 02:07 AM, Albert ARIBAUD wrote:
 Le 13/01/2011 14:36, seedshope a écrit :
 Modify Makefile for cpu_init.c and Start.s use some label,this defined
 u-boot.lds of arch/arm/cpu/arm1176. But SMDK6400 use the link script
 board/samsung/smdk6400/u-boot-nand.lds. So add some label form
 u-boot.lds
 to u-boot-nand.lds

 Signed-off-by: seedshopebocui...@gmail.com

 diff --git a/arch/arm/cpu/arm1176/s3c64xx/Makefile
 b/arch/arm/cpu/arm1176/s3c64xx/Makefile
 index 0785b19..f4b9574 100644
 --- a/arch/arm/cpu/arm1176/s3c64xx/Makefile
 +++ b/arch/arm/cpu/arm1176/s3c64xx/Makefile
 @@ -30,12 +30,15 @@ LIB = $(obj)lib$(SOC).o

 SOBJS = reset.o

 -COBJS-$(CONFIG_S3C6400) += cpu_init.o speed.o
 +COBJS-$(CONFIG_S3C6400) += speed.o
 COBJS-y += timer.o

 +CPUINIT = cpu_init.o
 +
 OBJS := $(addprefix $(obj),$(SOBJS) $(COBJS-y))
 +CPUINIT := $(addprefix $(obj),$(CPUINIT))

 -all: $(obj).depend $(START) $(LIB)
 +all: $(obj).depend $(START) $(LIB) $(CPUINIT)

 $(LIB): $(OBJS)
 $(call cmd_link_o_target, $(OBJS))

 Not sure I get what's the problem and how exactly this changes solves
 it. Can you detail this particular issue?
 The issue is mem_ctrl_asm_init redefine in
 arch/arm/cpu/arm1176/s3c64xx/cpu_init.s.

 From what follows it seems the problem is rather cpu_init.o being 
linked in twice. Correct?

 At first, the link script file include cpu_init.s in
 board/samsung/smd6400/u-boot-nand.s, If I separate the cpu_init.o from
 COBJS-$(CONFIG_S3C6400), I guess cmd_link_o_target will deal with
 cpu_init.o. So the link script will double link the cpu_init file.

Then you should fix the double linking by i) determining why the double 
linking happens and ii) properly linking once only.

 I have two method to solve it.
 first: see the patch
 second: Modify the link script

 But I feel, the first method is safe.

It may be safe, but IIUC it does not properly address the issue and its 
root cause.

 I asked a question. I will RR on next, The patch1 and patch3 have
 already ok, Do I only send patch2 and patch4?

My personal practice is to re-send the whole patchset for each new 
version, because i) people can easily see the whole of the changes 
without having to go pick parts of previous versions and ii) it makes 
clear when a patch is removed or added to the set.

 Amicalement,

Amicalement,
-- 
Albert.
___
U-Boot mailing list
U-Boot@lists.denx.de
http://lists.denx.de/mailman/listinfo/u-boot


[U-Boot] [PATCH 1/2] powerpc/85xx: Add Support for Freescale P1010 Processor

2011-01-14 Thread Kumar Gala
From: Poonam Aggrwal poonam.aggr...@freescale.com

Key Features include of the P1010:
* e500v2 core frequency operation of 500 to 800 MHz
* Power consumption less than 5.0 W at 800 MHz core speed
* Dual SATA 3 Gbps controllers with integrated PHY
* Dual PCI Express controllers
* Three 10/100/1000 Mbps enhanced triple-speed Ethernet controllers (eTSECs)
* TCP/IP acceleration and classification capabilities
* IEEE 1588 support
* Lossless flow control
* RGMII, SGMII
* DDR3 with support for a 32-bit data interface (40 bits including ECC),
  up to 800 MHz data rate 32/16-bit DDR3 memory controller
* Dedicated security engine featuring trusted boot
* TDM interface
* Dual controller area networks (FlexCAN) controller
* SD/MMC card controller supporting booting from Flash cards
* USB 2.0 host and device controller with an on-chip, high-speed PHY
* Integrated Flash controller (IFC)
* Power Management Controller (PMC)
* Four-channel, general-purpose DMA controller
* I2C controller
* Serial peripheral interface (SPI) controller with master and slave support
* System timers including a periodic interrupt timer, real-time clock,
  software watchdog timer, and four general-purpose timers
* Dual DUARTs

Signed-off-by: Poonam Aggrwal poonam.aggr...@freescale.com
Signed-off-by: Dipen Dudhat dipen.dud...@freescale.com
Signed-off-by: Kumar Gala ga...@kernel.crashing.org
---
 arch/powerpc/cpu/mpc85xx/Makefile|1 +
 arch/powerpc/cpu/mpc8xxx/cpu.c   |2 ++
 arch/powerpc/include/asm/config.h|6 --
 arch/powerpc/include/asm/processor.h |2 ++
 drivers/misc/fsl_law.c   |1 +
 5 files changed, 10 insertions(+), 2 deletions(-)

diff --git a/arch/powerpc/cpu/mpc85xx/Makefile 
b/arch/powerpc/cpu/mpc85xx/Makefile
index af7bc09..e1261cf 100644
--- a/arch/powerpc/cpu/mpc85xx/Makefile
+++ b/arch/powerpc/cpu/mpc85xx/Makefile
@@ -50,6 +50,7 @@ COBJS-$(CONFIG_MPC8544) += ddr-gen2.o
 COBJS-$(CONFIG_MPC8572) += ddr-gen3.o
 COBJS-$(CONFIG_MPC8536) += ddr-gen3.o
 COBJS-$(CONFIG_MPC8569)+= ddr-gen3.o
+COBJS-$(CONFIG_P1010)  += ddr-gen3.o
 COBJS-$(CONFIG_P1011)  += ddr-gen3.o
 COBJS-$(CONFIG_P1012)  += ddr-gen3.o
 COBJS-$(CONFIG_P1013)  += ddr-gen3.o
diff --git a/arch/powerpc/cpu/mpc8xxx/cpu.c b/arch/powerpc/cpu/mpc8xxx/cpu.c
index 5b30fbd..ac720a5 100644
--- a/arch/powerpc/cpu/mpc8xxx/cpu.c
+++ b/arch/powerpc/cpu/mpc8xxx/cpu.c
@@ -64,6 +64,8 @@ struct cpu_type cpu_type_list [] = {
CPU_TYPE_ENTRY(8569, 8569_E, 1),
CPU_TYPE_ENTRY(8572, 8572, 2),
CPU_TYPE_ENTRY(8572, 8572_E, 2),
+   CPU_TYPE_ENTRY(P1010, P1010, 1),
+   CPU_TYPE_ENTRY(P1010, P1010_E, 1),
CPU_TYPE_ENTRY(P1011, P1011, 1),
CPU_TYPE_ENTRY(P1011, P1011_E, 1),
CPU_TYPE_ENTRY(P1012, P1012, 1),
diff --git a/arch/powerpc/include/asm/config.h 
b/arch/powerpc/include/asm/config.h
index 76dedeb..d80fc97 100644
--- a/arch/powerpc/include/asm/config.h
+++ b/arch/powerpc/include/asm/config.h
@@ -69,14 +69,16 @@
 
 /* Enable TSEC2.0 for the platforms that have it if we are using TSEC */
 #if defined(CONFIG_TSEC_ENET)  \
-(defined(CONFIG_P1020) || defined(CONFIG_P1011))
+(defined(CONFIG_P1010) || \
+ defined(CONFIG_P1020) || defined(CONFIG_P1011))
 #define CONFIG_TSECV2
 #endif
 
 /*
  * SEC (crypto unit) major compatible version determination
  */
-#if defined(CONFIG_FSL_CORENET)
+#if defined(CONFIG_FSL_CORENET) || \
+defined(CONFIG_P1010)
 #define CONFIG_SYS_FSL_SEC_COMPAT  4
 #elif defined(CONFIG_MPC85xx) || defined(CONFIG_MPC83xx)
 #define CONFIG_SYS_FSL_SEC_COMPAT  2
diff --git a/arch/powerpc/include/asm/processor.h 
b/arch/powerpc/include/asm/processor.h
index 71fafa3..6b43dc5 100644
--- a/arch/powerpc/include/asm/processor.h
+++ b/arch/powerpc/include/asm/processor.h
@@ -1038,6 +1038,8 @@
 #define SVR_8569_E 0x808800
 #define SVR_8572   0x80E000
 #define SVR_8572_E 0x80E800
+#define SVR_P1010  0x80F100
+#define SVR_P1010_E0x80F900
 #define SVR_P1011  0x80E500
 #define SVR_P1011_E0x80ED00
 #define SVR_P1012  0x80E501
diff --git a/drivers/misc/fsl_law.c b/drivers/misc/fsl_law.c
index 6589076..931cc71 100644
--- a/drivers/misc/fsl_law.c
+++ b/drivers/misc/fsl_law.c
@@ -38,6 +38,7 @@ DECLARE_GLOBAL_DATA_PTR;
   defined(CONFIG_MPC8641) || defined(CONFIG_MPC8610)
 #define FSL_HW_NUM_LAWS 10
 #elif defined(CONFIG_MPC8536) || defined(CONFIG_MPC8572) || \
+  defined(CONFIG_P1010) || \
   defined(CONFIG_P1011) || defined(CONFIG_P1020) || \
   defined(CONFIG_P1012) || defined(CONFIG_P1021) || \
   defined(CONFIG_P1013) || defined(CONFIG_P1022) || \
-- 
1.7.2.3

___
U-Boot mailing list
U-Boot@lists.denx.de
http://lists.denx.de/mailman/listinfo/u-boot


[U-Boot] [PATCH 2/2] powerpc/85xx: Add Support for Freescale P1014 Processor

2011-01-14 Thread Kumar Gala
From: Poonam Aggrwal poonam.aggr...@freescale.com

The P1014 is similar to the P1010 processor with the following differences:

- 16bit DDR with ECC. (P1010 has 32bit DDR w/o ECC)
- no eCAN interface. (P1010 has 2 eCAN interfaces)
- Two SGMII interface (P1010 has 3 SGMII)
- No secure boot

Signed-off-by: Poonam Aggrwal poonam.aggr...@freescale.com
Signed-off-by: Kumar Gala ga...@kernel.crashing.org
---
 arch/powerpc/cpu/mpc85xx/Makefile|1 +
 arch/powerpc/cpu/mpc8xxx/cpu.c   |2 ++
 arch/powerpc/include/asm/config.h|4 ++--
 arch/powerpc/include/asm/processor.h |2 ++
 drivers/misc/fsl_law.c   |2 +-
 5 files changed, 8 insertions(+), 3 deletions(-)

diff --git a/arch/powerpc/cpu/mpc85xx/Makefile 
b/arch/powerpc/cpu/mpc85xx/Makefile
index e1261cf..3f118db 100644
--- a/arch/powerpc/cpu/mpc85xx/Makefile
+++ b/arch/powerpc/cpu/mpc85xx/Makefile
@@ -54,6 +54,7 @@ COBJS-$(CONFIG_P1010) += ddr-gen3.o
 COBJS-$(CONFIG_P1011)  += ddr-gen3.o
 COBJS-$(CONFIG_P1012)  += ddr-gen3.o
 COBJS-$(CONFIG_P1013)  += ddr-gen3.o
+COBJS-$(CONFIG_P1014)  += ddr-gen3.o
 COBJS-$(CONFIG_P1020)  += ddr-gen3.o
 COBJS-$(CONFIG_P1021)  += ddr-gen3.o
 COBJS-$(CONFIG_P1022)  += ddr-gen3.o
diff --git a/arch/powerpc/cpu/mpc8xxx/cpu.c b/arch/powerpc/cpu/mpc8xxx/cpu.c
index ac720a5..0ec1c16 100644
--- a/arch/powerpc/cpu/mpc8xxx/cpu.c
+++ b/arch/powerpc/cpu/mpc8xxx/cpu.c
@@ -71,6 +71,8 @@ struct cpu_type cpu_type_list [] = {
CPU_TYPE_ENTRY(P1012, P1012, 1),
CPU_TYPE_ENTRY(P1012, P1012_E, 1),
CPU_TYPE_ENTRY(P1013, P1013, 1),
+   CPU_TYPE_ENTRY(P1014, P1014_E, 1),
+   CPU_TYPE_ENTRY(P1014, P1014, 1),
CPU_TYPE_ENTRY(P1013, P1013_E, 1),
CPU_TYPE_ENTRY(P1020, P1020, 2),
CPU_TYPE_ENTRY(P1020, P1020_E, 2),
diff --git a/arch/powerpc/include/asm/config.h 
b/arch/powerpc/include/asm/config.h
index d80fc97..965c874 100644
--- a/arch/powerpc/include/asm/config.h
+++ b/arch/powerpc/include/asm/config.h
@@ -69,7 +69,7 @@
 
 /* Enable TSEC2.0 for the platforms that have it if we are using TSEC */
 #if defined(CONFIG_TSEC_ENET)  \
-(defined(CONFIG_P1010) || \
+(defined(CONFIG_P1010) || defined(CONFIG_P1014) || \
  defined(CONFIG_P1020) || defined(CONFIG_P1011))
 #define CONFIG_TSECV2
 #endif
@@ -78,7 +78,7 @@
  * SEC (crypto unit) major compatible version determination
  */
 #if defined(CONFIG_FSL_CORENET) || \
-defined(CONFIG_P1010)
+defined(CONFIG_P1010) || defined(CONFIG_P1014)
 #define CONFIG_SYS_FSL_SEC_COMPAT  4
 #elif defined(CONFIG_MPC85xx) || defined(CONFIG_MPC83xx)
 #define CONFIG_SYS_FSL_SEC_COMPAT  2
diff --git a/arch/powerpc/include/asm/processor.h 
b/arch/powerpc/include/asm/processor.h
index 6b43dc5..646e0db 100644
--- a/arch/powerpc/include/asm/processor.h
+++ b/arch/powerpc/include/asm/processor.h
@@ -1046,6 +1046,8 @@
 #define SVR_P1012_E0x80ED01
 #define SVR_P1013  0x80E700
 #define SVR_P1013_E0x80EF00
+#define SVR_P1014  0x80F101
+#define SVR_P1014_E0x80F901
 #define SVR_P1020  0x80E400
 #define SVR_P1020_E0x80EC00
 #define SVR_P1021  0x80E401
diff --git a/drivers/misc/fsl_law.c b/drivers/misc/fsl_law.c
index 931cc71..d2b0cde 100644
--- a/drivers/misc/fsl_law.c
+++ b/drivers/misc/fsl_law.c
@@ -38,7 +38,7 @@ DECLARE_GLOBAL_DATA_PTR;
   defined(CONFIG_MPC8641) || defined(CONFIG_MPC8610)
 #define FSL_HW_NUM_LAWS 10
 #elif defined(CONFIG_MPC8536) || defined(CONFIG_MPC8572) || \
-  defined(CONFIG_P1010) || \
+  defined(CONFIG_P1010) || defined(CONFIG_P1014) || \
   defined(CONFIG_P1011) || defined(CONFIG_P1020) || \
   defined(CONFIG_P1012) || defined(CONFIG_P1021) || \
   defined(CONFIG_P1013) || defined(CONFIG_P1022) || \
-- 
1.7.2.3

___
U-Boot mailing list
U-Boot@lists.denx.de
http://lists.denx.de/mailman/listinfo/u-boot


Re: [U-Boot] uboot load ftb

2011-01-14 Thread Scott Wood
On Fri, 14 Jan 2011 09:44:44 +0800
张扬 w90p...@gmail.com wrote:

 Dear Scott Wood
 
 2011/1/13 Scott Wood scottw...@freescale.com:
  On Wed, 12 Jan 2011 09:00:52 +0100
  Wolfgang Denk w...@denx.de wrote:
 
  Dear =?UTF-8?B?5byg5oms?=,
 
  In message AANLkTinUx-NmpundBm=scYeahCkBAd9=dx8b3ro7g...@mail.gmail.com 
  you wrote:
  
i trying to sue the kernel's Makefile rule, but the issue is not 
solved.
     WARNING: could not set linux,stdout-path FDT_ERR_NOTFOUND.
     ERROR: /chosen node create failed - must RESET the board to recover.
 
  Well, seems your device tree has some problem.
 
  My guess is it's an old U-Boot that can't create properties
  in /chosen if /chosen doesn't already exist.
  i use lastest version of  u-boot, booting process gives the error. but i 
  use u-boot-1.3.0 that's ok.

OK, check whether you have a serial0 alias (or serial1 if using
what U-Boot thinks of as the second serial port, etc) in your device
tree.

-Scott

___
U-Boot mailing list
U-Boot@lists.denx.de
http://lists.denx.de/mailman/listinfo/u-boot


Re: [U-Boot] [v3 patch 2/4] SMDK6400: Fix some label undefined in build error

2011-01-14 Thread seedshope
On 01/15/2011 12:39 AM, Albert ARIBAUD wrote:
 Hi seedshope,

 Le 14/01/2011 16:45, seedshope a écrit :
 On 01/14/2011 02:07 AM, Albert ARIBAUD wrote:
 Le 13/01/2011 14:36, seedshope a écrit :
 Modify Makefile for cpu_init.c and Start.s use some label,this defined
 u-boot.lds of arch/arm/cpu/arm1176. But SMDK6400 use the link script
 board/samsung/smdk6400/u-boot-nand.lds. So add some label form
 u-boot.lds
 to u-boot-nand.lds

 Signed-off-by: seedshopebocui...@gmail.com

 diff --git a/arch/arm/cpu/arm1176/s3c64xx/Makefile
 b/arch/arm/cpu/arm1176/s3c64xx/Makefile
 index 0785b19..f4b9574 100644
 --- a/arch/arm/cpu/arm1176/s3c64xx/Makefile
 +++ b/arch/arm/cpu/arm1176/s3c64xx/Makefile
 @@ -30,12 +30,15 @@ LIB = $(obj)lib$(SOC).o

 SOBJS = reset.o

 -COBJS-$(CONFIG_S3C6400) += cpu_init.o speed.o
 +COBJS-$(CONFIG_S3C6400) += speed.o
 COBJS-y += timer.o

 +CPUINIT = cpu_init.o
 +
 OBJS := $(addprefix $(obj),$(SOBJS) $(COBJS-y))
 +CPUINIT := $(addprefix $(obj),$(CPUINIT))

 -all: $(obj).depend $(START) $(LIB)
 +all: $(obj).depend $(START) $(LIB) $(CPUINIT)

 $(LIB): $(OBJS)
 $(call cmd_link_o_target, $(OBJS))

 Not sure I get what's the problem and how exactly this changes solves
 it. Can you detail this particular issue?
 The issue is mem_ctrl_asm_init redefine in
 arch/arm/cpu/arm1176/s3c64xx/cpu_init.s.

 From what follows it seems the problem is rather cpu_init.o being 
 linked in twice. Correct?
maybe

 At first, the link script file include cpu_init.s in
 board/samsung/smd6400/u-boot-nand.s, If I separate the cpu_init.o from
 COBJS-$(CONFIG_S3C6400), I guess cmd_link_o_target will deal with
 cpu_init.o. So the link script will double link the cpu_init file.

 Then you should fix the double linking by i) determining why the 
 double linking happens and ii) properly linking once only.
Hi Alvert ARIBAUD,

I see the code for smdk6400. I found this code is very old. Before It 
can not add cmd_link_o_target in
Makefile(arch/arm/cpu/arm1176/s3c64xx/Makefile), The file will only to 
compile. So the link script is ok.

But, Now, It is not.  As far as I know, The linker script can do to link 
the first specified file for user.
Since I do not full understand the cmd_link_o_target mechanism. So I 
only guess the command do
some link work.

Maybe I am correct.



 I have two method to solve it.
 first: see the patch
 second: Modify the link script

 But I feel, the first method is safe.

 It may be safe, but IIUC it does not properly address the issue and 
 its root cause.
yes

 I asked a question. I will RR on next, The patch1 and patch3 have
 already ok, Do I only send patch2 and patch4?

 My personal practice is to re-send the whole patchset for each new 
 version, because i) people can easily see the whole of the changes 
 without having to go pick parts of previous versions and ii) it makes 
 clear when a patch is removed or added to the set.
ok

Thanks,
seedshope

 Amicalement,

 Amicalement,

___
U-Boot mailing list
U-Boot@lists.denx.de
http://lists.denx.de/mailman/listinfo/u-boot


[U-Boot] [PATCH 0/4 V2] Add basic NVIDIA Tegra2 SoC support

2011-01-14 Thread Tom Warren
This series of patches adds preliminary/baseline support for NVIDIA's
Tegra2 SoC.  Basic CPU (AVP), RAM and UART init are covered so that the
system (Harmony or Seaboard) can boot to the U-Boot serial cmd prompt.

Further support (for Cortex-A9 CPU(s), USB, SD/MMC, etc.) to follow.

V2: Make changes based on feedback from Peter Tyser and Sandeep Paulraj.

Tom Warren (4):
  arm: Tegra2: Add basic NVIDIA Tegra2 SoC support
  serial: Add Tegra2 serial port support
  arm: Tegra2: Add support for NVIDIA Harmony board
  arm: Tegra2: Add support for NVIDIA Seaboard board

 MAINTAINERS  |5 +
 arch/arm/cpu/armv7/tegra2/Makefile   |   48 ++
 arch/arm/cpu/armv7/tegra2/board.c|   91 ++
 arch/arm/cpu/armv7/tegra2/config.mk  |   28 +++
 arch/arm/cpu/armv7/tegra2/lowlevel_init.S|   66 +++
 arch/arm/cpu/armv7/tegra2/sys_info.c |   35 
 arch/arm/cpu/armv7/tegra2/timer.c|  122 +
 arch/arm/include/asm/arch-tegra2/clk_rst.h   |  155 +
 arch/arm/include/asm/arch-tegra2/pinmux.h|   52 ++
 arch/arm/include/asm/arch-tegra2/pmc.h   |  125 ++
 arch/arm/include/asm/arch-tegra2/sys_proto.h |   33 
 arch/arm/include/asm/arch-tegra2/tegra2.h|   49 ++
 arch/arm/include/asm/arch-tegra2/uart.h  |   45 +
 board/nvidia/common/board.c  |  234 ++
 board/nvidia/common/board.h  |   57 +++
 board/nvidia/harmony/Makefile|   50 ++
 board/nvidia/seaboard/Makefile   |   50 ++
 boards.cfg   |2 +
 common/serial.c  |3 +-
 include/configs/harmony.h|   48 ++
 include/configs/seaboard.h   |   43 +
 include/configs/tegra2-common.h  |  160 ++
 include/serial.h |3 +-
 23 files changed, 1502 insertions(+), 2 deletions(-)
 create mode 100644 arch/arm/cpu/armv7/tegra2/Makefile
 create mode 100644 arch/arm/cpu/armv7/tegra2/board.c
 create mode 100644 arch/arm/cpu/armv7/tegra2/config.mk
 create mode 100644 arch/arm/cpu/armv7/tegra2/lowlevel_init.S
 create mode 100644 arch/arm/cpu/armv7/tegra2/sys_info.c
 create mode 100644 arch/arm/cpu/armv7/tegra2/timer.c
 create mode 100644 arch/arm/include/asm/arch-tegra2/clk_rst.h
 create mode 100644 arch/arm/include/asm/arch-tegra2/pinmux.h
 create mode 100644 arch/arm/include/asm/arch-tegra2/pmc.h
 create mode 100644 arch/arm/include/asm/arch-tegra2/sys_proto.h
 create mode 100644 arch/arm/include/asm/arch-tegra2/tegra2.h
 create mode 100644 arch/arm/include/asm/arch-tegra2/uart.h
 create mode 100644 board/nvidia/common/board.c
 create mode 100644 board/nvidia/common/board.h
 create mode 100644 board/nvidia/harmony/Makefile
 create mode 100644 board/nvidia/seaboard/Makefile
 create mode 100644 include/configs/harmony.h
 create mode 100644 include/configs/seaboard.h
 create mode 100644 include/configs/tegra2-common.h

-- 
1.7.3.5

___
U-Boot mailing list
U-Boot@lists.denx.de
http://lists.denx.de/mailman/listinfo/u-boot


[U-Boot] [PATCH 3/4 V2] arm: Tegra2: Add support for NVIDIA Harmony board

2011-01-14 Thread Tom Warren
Basic support for the NVIDIA Harmony board. U-Boot will load and respond
to serial console commands with this patch. Further peripheral support
(USB, SD/MMC, NAND, etc.) to follow.

Signed-off-by: Tom Warren twar...@nvidia.com
---
 MAINTAINERS |4 +
 board/nvidia/harmony/Makefile   |   50 
 boards.cfg  |1 +
 include/configs/harmony.h   |   48 
 include/configs/tegra2-common.h |  160 +++
 5 files changed, 263 insertions(+), 0 deletions(-)
 create mode 100644 board/nvidia/harmony/Makefile
 create mode 100644 include/configs/harmony.h
 create mode 100644 include/configs/tegra2-common.h

diff --git a/MAINTAINERS b/MAINTAINERS
index ba83f71..b5cff19 100644
--- a/MAINTAINERS
+++ b/MAINTAINERS
@@ -841,6 +841,10 @@ Prafulla Wadaskar prafu...@marvell.com
rd6281a ARM926EJS (Kirkwood SoC)
sheevaplug  ARM926EJS (Kirkwood SoC)
 
+Tom Warren twar...@nvidia.com
+
+   harmony Tegra2 (ARM7  A9 Dual Core)
+
 Matthias Weisser weiss...@arcor.de
 
jadecpu ARM926EJS (MB86R01 SoC)
diff --git a/board/nvidia/harmony/Makefile b/board/nvidia/harmony/Makefile
new file mode 100644
index 000..3a146cb
--- /dev/null
+++ b/board/nvidia/harmony/Makefile
@@ -0,0 +1,50 @@
+#
+#  (C) Copyright 2010,2011
+#  NVIDIA Corporation www.nvidia.com
+#
+#
+#  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).o
+
+COBJS  += ../common/board.o
+
+SRCS   := $(COBJS:.o=.c)
+OBJS   := $(addprefix $(obj),$(COBJS))
+
+$(LIB):$(obj).depend $(OBJS)
+   $(AR) $(ARFLAGS) $@ $(OBJS)
+
+clean:
+   rm -f $(OBJS)
+
+distclean: clean
+   rm -f $(LIB) core *.bak $(obj).depend
+
+#
+
+# defines $(obj).depend target
+include $(SRCTREE)/rules.mk
+
+sinclude $(obj).depend
+
+#
diff --git a/boards.cfg b/boards.cfg
index 94b8745..ee7c4b7 100644
--- a/boards.cfg
+++ b/boards.cfg
@@ -122,6 +122,7 @@ omap4_panda  arm armv7   panda  
 ti
 omap4_sdp4430arm armv7   sdp4430 ti
 omap4
 s5p_goni arm armv7   goni
samsungs5pc1xx
 smdkc100 arm armv7   smdkc100
samsungs5pc1xx
+harmony  arm armv7   harmony 
nvidia tegra2
 actux1   arm ixp
 actux2   arm ixp
 actux3   arm ixp
diff --git a/include/configs/harmony.h b/include/configs/harmony.h
new file mode 100644
index 000..7d8f27a
--- /dev/null
+++ b/include/configs/harmony.h
@@ -0,0 +1,48 @@
+/*
+ *  (C) Copyright 2010,2011
+ *  NVIDIA Corporation www.nvidia.com
+ *
+ * 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
+ */
+
+#ifndef __CONFIG_H
+#define __CONFIG_H
+
+#include asm/sizes.h
+#include tegra2-common.h
+
+/* High-level configuration options */
+#define TEGRA2_SYSMEM  mem=384M@0M nvmem=128M@384M mem=512M@512M
+#define V_PROMPT   Tegra2 (Harmony) # 
+#define CONFIG_TEGRA2_BOARD_STRING NVIDIA Harmony
+
+/* Board-specific serial config */
+#define CONFIG_SERIAL_MULTI
+#define 

[U-Boot] [PATCH 4/4 V2] arm: Tegra2: Add support for NVIDIA Seaboard board

2011-01-14 Thread Tom Warren
Basic support for the NVIDIA Seaboard board. U-Boot will load and respond
to serial console commands with this patch. Further peripheral support
(USB, SD/MMC, SPI, etc.) to follow.

Signed-off-by: Tom Warren twar...@nvidia.com
---
 MAINTAINERS|1 +
 board/nvidia/seaboard/Makefile |   50 
 boards.cfg |1 +
 include/configs/seaboard.h |   43 ++
 4 files changed, 95 insertions(+), 0 deletions(-)
 create mode 100644 board/nvidia/seaboard/Makefile
 create mode 100644 include/configs/seaboard.h

diff --git a/MAINTAINERS b/MAINTAINERS
index b5cff19..f4795d3 100644
--- a/MAINTAINERS
+++ b/MAINTAINERS
@@ -844,6 +844,7 @@ Prafulla Wadaskar prafu...@marvell.com
 Tom Warren twar...@nvidia.com
 
harmony Tegra2 (ARM7  A9 Dual Core)
+   seaboardTegra2 (ARM7  A9 Dual Core)
 
 Matthias Weisser weiss...@arcor.de
 
diff --git a/board/nvidia/seaboard/Makefile b/board/nvidia/seaboard/Makefile
new file mode 100644
index 000..3a146cb
--- /dev/null
+++ b/board/nvidia/seaboard/Makefile
@@ -0,0 +1,50 @@
+#
+#  (C) Copyright 2010,2011
+#  NVIDIA Corporation www.nvidia.com
+#
+#
+#  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).o
+
+COBJS  += ../common/board.o
+
+SRCS   := $(COBJS:.o=.c)
+OBJS   := $(addprefix $(obj),$(COBJS))
+
+$(LIB):$(obj).depend $(OBJS)
+   $(AR) $(ARFLAGS) $@ $(OBJS)
+
+clean:
+   rm -f $(OBJS)
+
+distclean: clean
+   rm -f $(LIB) core *.bak $(obj).depend
+
+#
+
+# defines $(obj).depend target
+include $(SRCTREE)/rules.mk
+
+sinclude $(obj).depend
+
+#
diff --git a/boards.cfg b/boards.cfg
index ee7c4b7..3c4c249 100644
--- a/boards.cfg
+++ b/boards.cfg
@@ -123,6 +123,7 @@ omap4_sdp4430arm armv7   
sdp4430 ti
 s5p_goni arm armv7   goni
samsungs5pc1xx
 smdkc100 arm armv7   smdkc100
samsungs5pc1xx
 harmony  arm armv7   harmony 
nvidia tegra2
+seaboard arm armv7   seaboard
nvidia tegra2
 actux1   arm ixp
 actux2   arm ixp
 actux3   arm ixp
diff --git a/include/configs/seaboard.h b/include/configs/seaboard.h
new file mode 100644
index 000..ee3ae25
--- /dev/null
+++ b/include/configs/seaboard.h
@@ -0,0 +1,43 @@
+/*
+ *  (C) Copyright 2010,2011
+ *  NVIDIA Corporation www.nvidia.com
+ *
+ * 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
+ */
+
+#ifndef __CONFIG_H
+#define __CONFIG_H
+
+#include asm/sizes.h
+#include tegra2-common.h
+
+/* High-level configuration options */
+#define TEGRA2_SYSMEM  mem=384M@0M nvmem=128M@384M mem=512M@512M
+#define V_PROMPT   Tegra2 (SeaBoard) # 
+#define CONFIG_TEGRA2_BOARD_STRING NVIDIA Seaboard
+
+/* Board-specific serial config */
+#define CONFIG_SERIAL_MULTI
+#define CONFIG_TEGRA2_ENABLE_UARTD 1
+#define CONFIG_SYS_NS16550_COM1NV_PA_APB_UARTD_BASE
+
+#define CONFIG_MACH_TYPE   MACH_TYPE_TEGRA_SEABOARD
+#define 

[U-Boot] [PATCH 1/4 V2] arm: Tegra2: Add basic NVIDIA Tegra2 SoC support

2011-01-14 Thread Tom Warren
Add basic support for NVIDIA Tegra2 SoC chipset
 
Signed-off-by: Tom Warren twar...@nvidia.com
---
 arch/arm/cpu/armv7/tegra2/Makefile   |   48 ++
 arch/arm/cpu/armv7/tegra2/board.c|   91 ++
 arch/arm/cpu/armv7/tegra2/config.mk  |   28 +++
 arch/arm/cpu/armv7/tegra2/lowlevel_init.S|   66 +++
 arch/arm/cpu/armv7/tegra2/sys_info.c |   35 
 arch/arm/cpu/armv7/tegra2/timer.c|  122 +
 arch/arm/include/asm/arch-tegra2/clk_rst.h   |  155 +
 arch/arm/include/asm/arch-tegra2/pinmux.h|   52 ++
 arch/arm/include/asm/arch-tegra2/pmc.h   |  125 ++
 arch/arm/include/asm/arch-tegra2/sys_proto.h |   33 
 arch/arm/include/asm/arch-tegra2/tegra2.h|   49 ++
 arch/arm/include/asm/arch-tegra2/uart.h  |   45 +
 board/nvidia/common/board.c  |  234 ++
 board/nvidia/common/board.h  |   57 +++
 14 files changed, 1140 insertions(+), 0 deletions(-)
 create mode 100644 arch/arm/cpu/armv7/tegra2/Makefile
 create mode 100644 arch/arm/cpu/armv7/tegra2/board.c
 create mode 100644 arch/arm/cpu/armv7/tegra2/config.mk
 create mode 100644 arch/arm/cpu/armv7/tegra2/lowlevel_init.S
 create mode 100644 arch/arm/cpu/armv7/tegra2/sys_info.c
 create mode 100644 arch/arm/cpu/armv7/tegra2/timer.c
 create mode 100644 arch/arm/include/asm/arch-tegra2/clk_rst.h
 create mode 100644 arch/arm/include/asm/arch-tegra2/pinmux.h
 create mode 100644 arch/arm/include/asm/arch-tegra2/pmc.h
 create mode 100644 arch/arm/include/asm/arch-tegra2/sys_proto.h
 create mode 100644 arch/arm/include/asm/arch-tegra2/tegra2.h
 create mode 100644 arch/arm/include/asm/arch-tegra2/uart.h
 create mode 100644 board/nvidia/common/board.c
 create mode 100644 board/nvidia/common/board.h

diff --git a/arch/arm/cpu/armv7/tegra2/Makefile 
b/arch/arm/cpu/armv7/tegra2/Makefile
new file mode 100644
index 000..75fba0b
--- /dev/null
+++ b/arch/arm/cpu/armv7/tegra2/Makefile
@@ -0,0 +1,48 @@
+#
+# (C) Copyright 2010,2011 Nvidia Corporation.
+#
+# (C) Copyright 2000-2003
+# Wolfgang Denk, DENX Software Engineering, w...@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
+
+SOBJS  := lowlevel_init.o
+COBJS  := sys_info.o board.o timer.o
+
+SRCS   := $(SOBJS:.o=.S) $(COBJS:.o=.c)
+OBJS   := $(addprefix $(obj),$(COBJS) $(SOBJS))
+
+all:$(obj).depend $(LIB)
+
+$(LIB):$(OBJS)
+   $(AR) $(ARFLAGS) $@ $(OBJS)
+
+#
+
+# defines $(obj).depend target
+include $(SRCTREE)/rules.mk
+
+sinclude $(obj).depend
+
+#
diff --git a/arch/arm/cpu/armv7/tegra2/board.c 
b/arch/arm/cpu/armv7/tegra2/board.c
new file mode 100644
index 000..e180f05
--- /dev/null
+++ b/arch/arm/cpu/armv7/tegra2/board.c
@@ -0,0 +1,91 @@
+/*
+ *  (C) Copyright 2010,2011
+ *  NVIDIA Corporation www.nvidia.com
+ *
+ * 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 common.h
+#include asm/io.h
+#include asm/arch/sys_proto.h
+#include asm/arch/tegra2.h
+#include asm/arch/pmc.h
+
+DECLARE_GLOBAL_DATA_PTR;
+
+/*
+ * Boot ROM initializes the odmdata in APBDEV_PMC_SCRATCH20_0,
+ * so we are using this value to identify memory size.
+ */
+
+static unsigned int query_sdram_size(void)
+{
+   pmc_ctlr *const pmc = 

[U-Boot] [PATCH 2/4 V2] serial: Add Tegra2 serial port support

2011-01-14 Thread Tom Warren
Enable support for serial output on Tegra2 builds

Signed-off-by: Tom Warren twar...@nvidia.com
---
 common/serial.c  |3 ++-
 include/serial.h |3 ++-
 2 files changed, 4 insertions(+), 2 deletions(-)

diff --git a/common/serial.c b/common/serial.c
index 051ae4e..8ebf9a5 100644
--- a/common/serial.c
+++ b/common/serial.c
@@ -41,7 +41,8 @@ struct serial_device *__default_serial_console (void)
 #elif defined(CONFIG_4xx) \
|| defined(CONFIG_MB86R0x) || defined(CONFIG_MPC5xxx) \
|| defined(CONFIG_MPC83xx) || defined(CONFIG_MPC85xx) \
-   || defined(CONFIG_MPC86xx) || defined(CONFIG_SYS_SC520)
+   || defined(CONFIG_MPC86xx) || defined(CONFIG_SYS_SC520) \
+   || defined(CONFIG_TEGRA2)
 #if defined(CONFIG_CONS_INDEX)  defined(CONFIG_SYS_NS16550_SERIAL)
 #if (CONFIG_CONS_INDEX==1)
return eserial1_device;
diff --git a/include/serial.h b/include/serial.h
index 15ab73c..f21d961 100644
--- a/include/serial.h
+++ b/include/serial.h
@@ -27,7 +27,8 @@ extern struct serial_device * default_serial_console (void);
 defined(CONFIG_405EP) || defined(CONFIG_405EZ) || defined(CONFIG_405EX) || 
\
 defined(CONFIG_MB86R0x) || defined(CONFIG_MPC5xxx) || \
 defined(CONFIG_MPC83xx) || defined(CONFIG_MPC85xx) || \
-defined(CONFIG_MPC86xx) || defined(CONFIG_SYS_SC520)
+defined(CONFIG_MPC86xx) || defined(CONFIG_SYS_SC520) || \
+defined(CONFIG_TEGRA2)
 extern struct serial_device serial0_device;
 extern struct serial_device serial1_device;
 #if defined(CONFIG_SYS_NS16550_SERIAL)
-- 
1.7.3.5

___
U-Boot mailing list
U-Boot@lists.denx.de
http://lists.denx.de/mailman/listinfo/u-boot


Re: [U-Boot] [v3 patch 2/4] SMDK6400: Fix some label undefined in build error

2011-01-14 Thread Albert ARIBAUD
Le 14/01/2011 17:56, seedshope a écrit :
 On 01/15/2011 12:39 AM, Albert ARIBAUD wrote:
 Hi seedshope,

 Le 14/01/2011 16:45, seedshope a écrit :
 On 01/14/2011 02:07 AM, Albert ARIBAUD wrote:
 Le 13/01/2011 14:36, seedshope a écrit :
 Modify Makefile for cpu_init.c and Start.s use some label,this defined
 u-boot.lds of arch/arm/cpu/arm1176. But SMDK6400 use the link script
 board/samsung/smdk6400/u-boot-nand.lds. So add some label form
 u-boot.lds
 to u-boot-nand.lds

 Signed-off-by: seedshopebocui...@gmail.com

 diff --git a/arch/arm/cpu/arm1176/s3c64xx/Makefile
 b/arch/arm/cpu/arm1176/s3c64xx/Makefile
 index 0785b19..f4b9574 100644
 --- a/arch/arm/cpu/arm1176/s3c64xx/Makefile
 +++ b/arch/arm/cpu/arm1176/s3c64xx/Makefile
 @@ -30,12 +30,15 @@ LIB = $(obj)lib$(SOC).o

 SOBJS = reset.o

 -COBJS-$(CONFIG_S3C6400) += cpu_init.o speed.o
 +COBJS-$(CONFIG_S3C6400) += speed.o
 COBJS-y += timer.o

 +CPUINIT = cpu_init.o
 +
 OBJS := $(addprefix $(obj),$(SOBJS) $(COBJS-y))
 +CPUINIT := $(addprefix $(obj),$(CPUINIT))

 -all: $(obj).depend $(START) $(LIB)
 +all: $(obj).depend $(START) $(LIB) $(CPUINIT)

 $(LIB): $(OBJS)
 $(call cmd_link_o_target, $(OBJS))

 Not sure I get what's the problem and how exactly this changes solves
 it. Can you detail this particular issue?
 The issue is mem_ctrl_asm_init redefine in
 arch/arm/cpu/arm1176/s3c64xx/cpu_init.s.

 From what follows it seems the problem is rather cpu_init.o being
 linked in twice. Correct?
 maybe

 At first, the link script file include cpu_init.s in
 board/samsung/smd6400/u-boot-nand.s, If I separate the cpu_init.o from
 COBJS-$(CONFIG_S3C6400), I guess cmd_link_o_target will deal with
 cpu_init.o. So the link script will double link the cpu_init file.

 Then you should fix the double linking by i) determining why the
 double linking happens and ii) properly linking once only.
 Hi Alvert ARIBAUD,

 I see the code for smdk6400. I found this code is very old. Before It
 can not add cmd_link_o_target in
 Makefile(arch/arm/cpu/arm1176/s3c64xx/Makefile), The file will only to
 compile. So the link script is ok.

 But, Now, It is not. As far as I know, The linker script can do to link
 the first specified file for user.
 Since I do not full understand the cmd_link_o_target mechanism. So I
 only guess the command do
 some link work.

 Maybe I am correct.

I don't want to accept this change on the off chance that it might be 
correct; before your next patch submission, please try building your 
code without this specific patch and positively find why the build fails.

Amicalement,
-- 
Albert.
___
U-Boot mailing list
U-Boot@lists.denx.de
http://lists.denx.de/mailman/listinfo/u-boot


Re: [U-Boot] [PATCH 4/7] mxc_nand: add support for i.MX35 processor

2011-01-14 Thread Scott Wood
On Fri, 14 Jan 2011 14:35:21 +0100
Stefano Babic sba...@denx.de wrote:

 Signed-off-by: Stefano Babic sba...@denx.de
 ---
  drivers/mtd/nand/mxc_nand.c |6 +++---
  1 files changed, 3 insertions(+), 3 deletions(-)

Acked-by: Scott Wood scottw...@freescale.com

-Scott

___
U-Boot mailing list
U-Boot@lists.denx.de
http://lists.denx.de/mailman/listinfo/u-boot


Re: [U-Boot] [RFC] ARM: mx31pdk: Use the new relocation scheme

2011-01-14 Thread Fabio Estevam
Hi Stefano,

On 1/13/2011 11:38 AM, Stefano Babic wrote:
 On 01/12/2011 01:49 PM, Fabio Estevam wrote:
 Hi,
 
 Hi Fabio,
 

 I am trying to make the new relocation scheme to work on the mx31pdk board.

 With this patch applied the mx31pdk build works, but not able to get a 
 U-boot prompt yet.
 
 I have tried to imagine some issues, but I cannot find a clear reason.
 Building with your patch I checked that nand_spl is still less than 2KB
 code, and that matches the NAND page, as required by i.MX31 - so it is
 not a problem.
 
 Have you tried to disable the relocation, just to check if the
 relocation is an issue with CONFIG_SKIP_RELOCATE_UBOOT ? This is not a
 solution, but only to check what happens.

Yes, I tried to disable relocation and U-boot still fails to boot.
 

 I copied the nand_spl/board/karo/tx25/u-boot.lds to the mx31pdk one.

 I am not certain whether the CONFIG_SYS_TEXT_BASE should be changed or not:

 ifdef CONFIG_NAND_SPL
 CONFIG_SYS_TEXT_BASE = 0x87ec
 else
 CONFIG_SYS_TEXT_BASE = 0x87f0
 endif
 
 I think they are ok - both addresses are valid RAM addresses. The
 relocation will move then the code at the end of the RAM. And as I
 understood from i.MX31 manual, the NFC controller does not use the IRAM
 at all, so the area pointed by your starting stack pointer should not be
 overwritten.
 

 If anyone has any comments/suggestions I will appreciate it.
 
 No great idea, really. Probably you need to attach a JTAG debugger and
 see what happens.

Yes, I am setting up a OpenOCD JTAG here to debug this.

Thanks,

Fabio Estevam



___
U-Boot mailing list
U-Boot@lists.denx.de
http://lists.denx.de/mailman/listinfo/u-boot


Re: [U-Boot] [v3 patch 2/4] SMDK6400: Fix some label undefined in build error

2011-01-14 Thread seedshope
On 01/15/2011 02:15 AM, Albert ARIBAUD wrote:
 Le 14/01/2011 17:56, seedshope a écrit :
 On 01/15/2011 12:39 AM, Albert ARIBAUD wrote:
 Hi seedshope,

 Le 14/01/2011 16:45, seedshope a écrit :
 On 01/14/2011 02:07 AM, Albert ARIBAUD wrote:
 Le 13/01/2011 14:36, seedshope a écrit :
 Modify Makefile for cpu_init.c and Start.s use some label,this 
 defined
 u-boot.lds of arch/arm/cpu/arm1176. But SMDK6400 use the link script
 board/samsung/smdk6400/u-boot-nand.lds. So add some label form
 u-boot.lds
 to u-boot-nand.lds

 Signed-off-by: seedshopebocui...@gmail.com

 diff --git a/arch/arm/cpu/arm1176/s3c64xx/Makefile
 b/arch/arm/cpu/arm1176/s3c64xx/Makefile
 index 0785b19..f4b9574 100644
 --- a/arch/arm/cpu/arm1176/s3c64xx/Makefile
 +++ b/arch/arm/cpu/arm1176/s3c64xx/Makefile
 @@ -30,12 +30,15 @@ LIB = $(obj)lib$(SOC).o

 SOBJS = reset.o

 -COBJS-$(CONFIG_S3C6400) += cpu_init.o speed.o
 +COBJS-$(CONFIG_S3C6400) += speed.o
 COBJS-y += timer.o

 +CPUINIT = cpu_init.o
 +
 OBJS := $(addprefix $(obj),$(SOBJS) $(COBJS-y))
 +CPUINIT := $(addprefix $(obj),$(CPUINIT))

 -all: $(obj).depend $(START) $(LIB)
 +all: $(obj).depend $(START) $(LIB) $(CPUINIT)

 $(LIB): $(OBJS)
 $(call cmd_link_o_target, $(OBJS))

 Not sure I get what's the problem and how exactly this changes solves
 it. Can you detail this particular issue?
 The issue is mem_ctrl_asm_init redefine in
 arch/arm/cpu/arm1176/s3c64xx/cpu_init.s.

 From what follows it seems the problem is rather cpu_init.o being
 linked in twice. Correct?
 maybe

 At first, the link script file include cpu_init.s in
 board/samsung/smd6400/u-boot-nand.s, If I separate the cpu_init.o from
 COBJS-$(CONFIG_S3C6400), I guess cmd_link_o_target will deal with
 cpu_init.o. So the link script will double link the cpu_init file.

 Then you should fix the double linking by i) determining why the
 double linking happens and ii) properly linking once only.
 Hi Alvert ARIBAUD,

 I see the code for smdk6400. I found this code is very old. Before It
 can not add cmd_link_o_target in
 Makefile(arch/arm/cpu/arm1176/s3c64xx/Makefile), The file will only to
 compile. So the link script is ok.

 But, Now, It is not. As far as I know, The linker script can do to link
 the first specified file for user.
 Since I do not full understand the cmd_link_o_target mechanism. So I
 only guess the command do
 some link work.

 Maybe I am correct.

 I don't want to accept this change on the off chance that it might be 
 correct; before your next patch submission, please try building your 
 code without this specific patch and positively find why the build fails.
ok,

Thanks
seedshope

 Amicalement,

___
U-Boot mailing list
U-Boot@lists.denx.de
http://lists.denx.de/mailman/listinfo/u-boot


Re: [U-Boot] [PATCH 0/4 V2] Add basic NVIDIA Tegra2 SoC support

2011-01-14 Thread Peter Tyser
Hi Tom,

On Fri, 2011-01-14 at 10:11 -0700, Tom Warren wrote:
 This series of patches adds preliminary/baseline support for NVIDIA's
 Tegra2 SoC.  Basic CPU (AVP), RAM and UART init are covered so that the
 system (Harmony or Seaboard) can boot to the U-Boot serial cmd prompt.
 
 Further support (for Cortex-A9 CPU(s), USB, SD/MMC, etc.) to follow.
 
 V2: Make changes based on feedback from Peter Tyser and Sandeep Paulraj.

If you didn't use all the feedback to the original patches, you should
state explicitly what you changed here, or respond to the original
comment email as to why they weren't made.  For example, I see you
didn't make the suggested change to use IO access functions, or allow
compiling out of support for UARTA and UARTD.  That should be made clear
somewhere (and the logic of why the changes weren't made) so that those
reviewing the patches know what changed between v1 and v2 and why.  As
is its unclear why the v1 comments weren't implemented, so they also
apply to this series.

Best,
Peter

___
U-Boot mailing list
U-Boot@lists.denx.de
http://lists.denx.de/mailman/listinfo/u-boot


Re: [U-Boot] [PATCH 0/4 V2] Add basic NVIDIA Tegra2 SoC support

2011-01-14 Thread Tom Warren
On Fri, Jan 14, 2011 at 12:59 PM, Peter Tyser pty...@xes-inc.com wrote:
 Hi Tom,

 On Fri, 2011-01-14 at 10:11 -0700, Tom Warren wrote:
 This series of patches adds preliminary/baseline support for NVIDIA's
 Tegra2 SoC.  Basic CPU (AVP), RAM and UART init are covered so that the
 system (Harmony or Seaboard) can boot to the U-Boot serial cmd prompt.

 Further support (for Cortex-A9 CPU(s), USB, SD/MMC, etc.) to follow.

 V2: Make changes based on feedback from Peter Tyser and Sandeep Paulraj.

 If you didn't use all the feedback to the original patches, you should
 state explicitly what you changed here, or respond to the original
 comment email as to why they weren't made.  For example, I see you
 didn't make the suggested change to use IO access functions, or allow
 compiling out of support for UARTA and UARTD.  That should be made clear
 somewhere (and the logic of why the changes weren't made) so that those
 reviewing the patches know what changed between v1 and v2 and why.  As
 is its unclear why the v1 comments weren't implemented, so they also
 apply to this series.

Peter,

Sorry, since this is my first patch series to U-Boot upstream, I'm
still learning the proper etiquette.
Let me respond here rather than in the patch comments since there are
only 2 unchanged areas WRT comments.

1) IO access functions - I pre-reviewed my patch series with Wolfgang
(to hopefully catch any blatant errors and smooth
the process) and he indicated that C structs and I/O accessor funcs or
macros were preferred to my base+offset original code.
Since the ARM is 32-bit, and all of our registers are I/O mapped, it
made sense just to cast the necessary HW mem-mapped
regs as volatile structs and access the members directly. Works well,
is easy to read  understand, etc. Let me know (with
examples, if possible) how I can make it better.

2) Compiling out support for UARTA or UARTD - didn't seem necessary -
size isn't an issue at this point with Tegra2 U-Boot,
and some boards (Harmony, for example) are populated w/hardware for
both UARTA and UARTD, and can have both on at
U-Boot runtime (perhaps for debug out to UARTA whilst normal console
I/O goes to UARTD), so I chose to leave the init code
for both intact. Plus I've never liked code with too many unnecessary
ifdef's - makes it less readable, IMO.

I was going to respond to your review w/a direct, inline reply, but I
thought it better to get the V2 patch out there before the
weekend (we're off for MLK, as well). I'm under some pressure to get a
baseline Tegra2 patchset in before the merge window
closes.  I'll be sure to respond to each issue directly on the list in
the future, though.

Thanks for the thorough review,

Tom
 Best,
 Peter


___
U-Boot mailing list
U-Boot@lists.denx.de
http://lists.denx.de/mailman/listinfo/u-boot


[U-Boot] Aggiorna il tuo account e-mail

2011-01-14 Thread upgradeacct
Gentile Utente Webmail 

Abbiamo temporaneamente limitato l'accesso a tutte le caratteristiche
Sensibile a tutti gli account webmail. Per ripristinare il tuo account di
accesso, è necessario rispondere subito a questa e-mail con la vostra 
Nome utente e password. Nickname: () Password: 
(). 

Perché un sacco di spam o di spam che si riceve ogni giorno, noi Aggiorna
tutti gli account e-mail spam filtro per limitare non-mails chiesto, per
ragioni di sicurezza e per migliorare il nostro nuovo Funzionalità
migliorate account di webmail / e-mail per assicurarsi che non fare
esperienza di interruzione del servizio. 

È necessario rispondere a questa email immediatamente e inserire il nome
utente e password nello spazio apposito per permetterci di aggiornare il
vostro account di posta elettronica correttamente. Un link verrà inviata
la conferma per la ri-attivazione del tuo account e-mail, ottenere la
vostra risposta 

Grazie per la vostra comprensione. 
3xepyl Errore 506: codice di allarme 

Grazie 
Webmail Administrator 
Supporto Copyright 2010. 
ListenRead foneticamente


___
U-Boot mailing list
U-Boot@lists.denx.de
http://lists.denx.de/mailman/listinfo/u-boot


Re: [U-Boot] [PATCH 0/4 V2] Add basic NVIDIA Tegra2 SoC support

2011-01-14 Thread Peter Tyser
On Fri, 2011-01-14 at 13:41 -0700, Tom Warren wrote:
 On Fri, Jan 14, 2011 at 12:59 PM, Peter Tyser pty...@xes-inc.com wrote:
  Hi Tom,
 
  On Fri, 2011-01-14 at 10:11 -0700, Tom Warren wrote:
  This series of patches adds preliminary/baseline support for NVIDIA's
  Tegra2 SoC.  Basic CPU (AVP), RAM and UART init are covered so that the
  system (Harmony or Seaboard) can boot to the U-Boot serial cmd prompt.
 
  Further support (for Cortex-A9 CPU(s), USB, SD/MMC, etc.) to follow.
 
  V2: Make changes based on feedback from Peter Tyser and Sandeep Paulraj.
 
  If you didn't use all the feedback to the original patches, you should
  state explicitly what you changed here, or respond to the original
  comment email as to why they weren't made.  For example, I see you
  didn't make the suggested change to use IO access functions, or allow
  compiling out of support for UARTA and UARTD.  That should be made clear
  somewhere (and the logic of why the changes weren't made) so that those
  reviewing the patches know what changed between v1 and v2 and why.  As
  is its unclear why the v1 comments weren't implemented, so they also
  apply to this series.
 
 Peter,
 
 Sorry, since this is my first patch series to U-Boot upstream, I'm
 still learning the proper etiquette.
 Let me respond here rather than in the patch comments since there are
 only 2 unchanged areas WRT comments.

No worries.  I'm glad to see you're pushing your changes upstream.

 1) IO access functions - I pre-reviewed my patch series with Wolfgang
 (to hopefully catch any blatant errors and smooth
 the process) and he indicated that C structs and I/O accessor funcs or
 macros were preferred to my base+offset original code.
 Since the ARM is 32-bit, and all of our registers are I/O mapped, it
 made sense just to cast the necessary HW mem-mapped
 regs as volatile structs and access the members directly. Works well,
 is easy to read  understand, etc. Let me know (with
 examples, if possible) how I can make it better.

Both Linux and U-Boot recommend using IO access functions instead
pointer accesses, at least in PPC-land, and even for memory mapped
registers.  I'm not too familiar with ARM, but assume they have the same
recommendation.  If pointers are used, some CPUs may optimize the access
order, thus causing problems.  Using IO accessors also ensures that the
code is portable.  Even if the Tegra doesn't re-order accesses, a driver
you write for use in a Tegra could be used on other CPUs that do.

eg:
http://www.mail-archive.com/u-boot@lists.denx.de/msg18435.html
http://lists.denx.de/pipermail/u-boot/2007-December/027595.html

It looks like other ARM processors use IO accessors too, eg the recent
armada CPU:
arch/arm/cpu/arm926ejs/armada100/*
A grep of writel in arch/arm shows a number of references.  Similarly in
the Linux code in arch/arm.

ARM maintainers, feel free to chime in if you have comments.

 2) Compiling out support for UARTA or UARTD - didn't seem necessary -
 size isn't an issue at this point with Tegra2 U-Boot,
 and some boards (Harmony, for example) are populated w/hardware for
 both UARTA and UARTD, and can have both on at
 U-Boot runtime (perhaps for debug out to UARTA whilst normal console
 I/O goes to UARTD), so I chose to leave the init code
 for both intact. Plus I've never liked code with too many unnecessary
 ifdef's - makes it less readable, IMO.

Yeah, this is grey - I see both sides of the coin.  U-Boot generally
strives to be as small as possible.  You may use a large flash on your
eval boards and not care about space, but other system designers may
place as small of flash as possible to save cost.  It looked like
UART_A-UART_E were also going to be supported at some time, which is
quite a chunk of code.  You also already are defining which serial ports
are available at compile time via CONFIG_TEGRA2_ENABLE_UARTA and
CONFIG_TEGRA2_ENABLE_UARTD.

Anyway, I don't really care much which way you go, just wanted to make
sure you were making a conscious decision to not add the ifdefs.

 I was going to respond to your review w/a direct, inline reply, but I
 thought it better to get the V2 patch out there before the
 weekend (we're off for MLK, as well). I'm under some pressure to get a
 baseline Tegra2 patchset in before the merge window
 closes.  I'll be sure to respond to each issue directly on the list in
 the future, though.

As long as you initially submit your patches during the merge window
they will generally be merged, even if there are multiple revisions and
discussion that lasts past the end of official merge window.  So this
stuff should get in.

Best,
Peter

___
U-Boot mailing list
U-Boot@lists.denx.de
http://lists.denx.de/mailman/listinfo/u-boot


Re: [U-Boot] [PATCH 0/4 V2] Add basic NVIDIA Tegra2 SoC support

2011-01-14 Thread Tom Warren
On Fri, Jan 14, 2011 at 2:36 PM, Peter Tyser pty...@xes-inc.com wrote:
 On Fri, 2011-01-14 at 13:41 -0700, Tom Warren wrote:
 On Fri, Jan 14, 2011 at 12:59 PM, Peter Tyser pty...@xes-inc.com wrote:
  Hi Tom,
 
  On Fri, 2011-01-14 at 10:11 -0700, Tom Warren wrote:
  This series of patches adds preliminary/baseline support for NVIDIA's
  Tegra2 SoC.  Basic CPU (AVP), RAM and UART init are covered so that the
  system (Harmony or Seaboard) can boot to the U-Boot serial cmd prompt.
 
  Further support (for Cortex-A9 CPU(s), USB, SD/MMC, etc.) to follow.
 
  V2: Make changes based on feedback from Peter Tyser and Sandeep Paulraj.
 
  If you didn't use all the feedback to the original patches, you should
  state explicitly what you changed here, or respond to the original
  comment email as to why they weren't made.  For example, I see you
  didn't make the suggested change to use IO access functions, or allow
  compiling out of support for UARTA and UARTD.  That should be made clear
  somewhere (and the logic of why the changes weren't made) so that those
  reviewing the patches know what changed between v1 and v2 and why.  As
  is its unclear why the v1 comments weren't implemented, so they also
  apply to this series.
 
 Peter,

 Sorry, since this is my first patch series to U-Boot upstream, I'm
 still learning the proper etiquette.
 Let me respond here rather than in the patch comments since there are
 only 2 unchanged areas WRT comments.

 No worries.  I'm glad to see you're pushing your changes upstream.

 1) IO access functions - I pre-reviewed my patch series with Wolfgang
 (to hopefully catch any blatant errors and smooth
 the process) and he indicated that C structs and I/O accessor funcs or
 macros were preferred to my base+offset original code.
 Since the ARM is 32-bit, and all of our registers are I/O mapped, it
 made sense just to cast the necessary HW mem-mapped
 regs as volatile structs and access the members directly. Works well,
 is easy to read  understand, etc. Let me know (with
 examples, if possible) how I can make it better.

 Both Linux and U-Boot recommend using IO access functions instead
 pointer accesses, at least in PPC-land, and even for memory mapped
 registers.  I'm not too familiar with ARM, but assume they have the same
 recommendation.  If pointers are used, some CPUs may optimize the access
 order, thus causing problems.  Using IO accessors also ensures that the
 code is portable.  Even if the Tegra doesn't re-order accesses, a driver
 you write for use in a Tegra could be used on other CPUs that do.

 eg:
 http://www.mail-archive.com/u-boot@lists.denx.de/msg18435.html
 http://lists.denx.de/pipermail/u-boot/2007-December/027595.html

 It looks like other ARM processors use IO accessors too, eg the recent
 armada CPU:
 arch/arm/cpu/arm926ejs/armada100/*
 A grep of writel in arch/arm shows a number of references.  Similarly in
 the Linux code in arch/arm.

So instead of, say uart-lcr = 0, you'd prefer writel(0, uart-lcr),
where writel = __arch_putl(v, a) = (*(volatile unsigned int *)(a) =
(v))?

Is that different enough from 'uart-lcr = 0' to warrant the change?
Does it add some HW barriers or forced read-before-write that the
'volatile' struct doesn't?

I've done a ton of embedded work, but all in x86 asm (and C) on PCs,
so pardon my ignorance  questions.

 ARM maintainers, feel free to chime in if you have comments.

 2) Compiling out support for UARTA or UARTD - didn't seem necessary -
 size isn't an issue at this point with Tegra2 U-Boot,
 and some boards (Harmony, for example) are populated w/hardware for
 both UARTA and UARTD, and can have both on at
 U-Boot runtime (perhaps for debug out to UARTA whilst normal console
 I/O goes to UARTD), so I chose to leave the init code
 for both intact. Plus I've never liked code with too many unnecessary
 ifdef's - makes it less readable, IMO.

 Yeah, this is grey - I see both sides of the coin.  U-Boot generally
 strives to be as small as possible.  You may use a large flash on your
 eval boards and not care about space, but other system designers may
 place as small of flash as possible to save cost.  It looked like
 UART_A-UART_E were also going to be supported at some time, which is
 quite a chunk of code.  You also already are defining which serial ports
 are available at compile time via CONFIG_TEGRA2_ENABLE_UARTA and
 CONFIG_TEGRA2_ENABLE_UARTD.

 Anyway, I don't really care much which way you go, just wanted to make
 sure you were making a conscious decision to not add the ifdefs.
As conscious I get before noon. ;)

 I was going to respond to your review w/a direct, inline reply, but I
 thought it better to get the V2 patch out there before the
 weekend (we're off for MLK, as well). I'm under some pressure to get a
 baseline Tegra2 patchset in before the merge window
 closes.  I'll be sure to respond to each issue directly on the list in
 the future, though.

 As long as you initially submit your patches during the merge 

Re: [U-Boot] [PATCH 0/4 V2] Add basic NVIDIA Tegra2 SoC support

2011-01-14 Thread Albert ARIBAUD
Hello,

Le 14/01/2011 23:39, Tom Warren a écrit :

 So instead of, say uart-lcr = 0, you'd prefer writel(0, uart-lcr),
 where writel = __arch_putl(v, a) = (*(volatile unsigned int *)(a) =
 (v))?
 Is that different enough from 'uart-lcr = 0' to warrant the change?
 Does it add some HW barriers or forced read-before-write that the
 'volatile' struct doesn't?

writel() and readl() do not introduce read-before-write, that is, they 
do not perform any more than what their names imply, but yes they do 
introduce barriers, or more precisely, they force the compiler to do so.

Amicalement,
-- 
Albert.
___
U-Boot mailing list
U-Boot@lists.denx.de
http://lists.denx.de/mailman/listinfo/u-boot


[U-Boot] I quit Network Marketing!

2011-01-14 Thread Bryce Vellinga

I've been a top producer in Network Marketing, I've had who knows how many
day jobs and I have always had to work harder for
less money. You've heard, stop working harder and start working smarter...

This is smarter, and easier too!

Do yourself a favor and check this easy turn key system out!

No need to chase family and friends again, 
no selling 
and no phone
calls.

Complete plug in system! And there's no need for major computer skills.

Check it out!


http://direct-information-5.info/link.php?M=505491N=16L=9F=T

See ya on the inside!

Bryce

Oh, again, here's the website:
http://direct-information-5.info/link.php?M=505491N=16L=9F=T

Click this link to unsubscribe:
http://direct-information-5.info/unsubscribe.php?M=505491C=2c1344fb18e95bd24ca12a41a0c88b0fL=14N=16
___
U-Boot mailing list
U-Boot@lists.denx.de
http://lists.denx.de/mailman/listinfo/u-boot


Re: [U-Boot] [PATCH 0/4 V2] Add basic NVIDIA Tegra2 SoC support

2011-01-14 Thread Peter Tyser
On Sat, 2011-01-15 at 00:00 +0100, Albert ARIBAUD wrote:
 Hello,
 
 Le 14/01/2011 23:39, Tom Warren a écrit :
 
  So instead of, say uart-lcr = 0, you'd prefer writel(0, uart-lcr),
  where writel = __arch_putl(v, a) = (*(volatile unsigned int *)(a) =
  (v))?
  Is that different enough from 'uart-lcr = 0' to warrant the change?
  Does it add some HW barriers or forced read-before-write that the
  'volatile' struct doesn't?
 
 writel() and readl() do not introduce read-before-write, that is, they 
 do not perform any more than what their names imply, but yes they do 
 introduce barriers, or more precisely, they force the compiler to do so.

Agreed, I should have dug deeper.  On PPC we use out_be32() or similar
to access memory mapped registers, which does have an explicit barrier.
I'm not familiar with ARM so don't know what the proper access functions
are, but it looks like the defacto standard writel()/readl().

I'd personally use writel()/readl() in this patch.  Functionally it may
be the same as your volatile accesses, but its the generally recommended
practice.  It looks like most of the Tegra support in the Linux kernel
also uses writel()/readl() for what its worth.  Ultimately its up to the
ARM U-Boot maintainer to decide if they require the access functions or
not - I'm just giving my opinions from PPC experience.

Regards,
Peter

___
U-Boot mailing list
U-Boot@lists.denx.de
http://lists.denx.de/mailman/listinfo/u-boot


Re: [U-Boot] [PATCH 1/2 v2] BLOCK: Add freescale IMX51 PATA driver

2011-01-14 Thread stefano babic
Am 13.01.2011 18:27, schrieb Marek Vasut:
 Signed-off-by: Marek Vasut marek.va...@gmail.com
 ---
 v2: Fixed line-too-long bugs as proposed by Stefano
 
  drivers/block/Makefile  |1 +
  drivers/block/mxc_ata.c |  149 
 +++
  2 files changed, 150 insertions(+), 0 deletions(-)
  create mode 100644 drivers/block/mxc_ata.c

Acked-by: Stefano Babic sba...@denx.de

Regards,
Stefano

-- 
=
DENX Software Engineering GmbH, MD: Wolfgang Denk  Detlev Zundel
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: +49-8142-66989-0 Fax: +49-8142-66989-80  Email: off...@denx.de
=
___
U-Boot mailing list
U-Boot@lists.denx.de
http://lists.denx.de/mailman/listinfo/u-boot


Re: [U-Boot] [PATCH 0/4 V2] Add basic NVIDIA Tegra2 SoC support

2011-01-14 Thread Wolfgang Denk
Dear Peter Tyser,

In message 1295047406.29642.6729.camel@petert you wrote:
 
 Agreed, I should have dug deeper.  On PPC we use out_be32() or similar
 to access memory mapped registers, which does have an explicit barrier.
 I'm not familiar with ARM so don't know what the proper access functions
 are, but it looks like the defacto standard writel()/readl().

I have a patch waiting o be applied that adds proper memory barriers
for ARM, too. They are necessary.

 I'd personally use writel()/readl() in this patch.  Functionally it may
 be the same as your volatile accesses, but its the generally recommended
 practice.  It looks like most of the Tegra support in the Linux kernel
 also uses writel()/readl() for what its worth.  Ultimately its up to the
 ARM U-Boot maintainer to decide if they require the access functions or
 not - I'm just giving my opinions from PPC experience.

It's not only recommended, it is mandatory.

I/O accesors _MUST_ be used.

Best regards,

Wolfgang Denk

-- 
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: w...@denx.de
The most difficult thing in the world is to know how to  do  a  thing
and to watch someone else doing it wrong, without commenting.
-- T.H. White
___
U-Boot mailing list
U-Boot@lists.denx.de
http://lists.denx.de/mailman/listinfo/u-boot


Re: [U-Boot] USB storage performance EHCI question

2011-01-14 Thread Aaron Williams
On 1/14/2011 1:19 AM, Wolfgang Denk wrote:
 Dear Aaron Williams,

 please always keep the ML on cc:

 In message4d2fa7f0.7020...@caviumnetworks.com  you wrote:
 It is based off of 2010.09 but I have applied all of the latest USB
 updates from GIT with the exception of the multiple LUN support (this
 breaks the SanDisk Cruzer because the Cruzer reports max lun=1). All
 caches are enabled and this is on a 1.2GHz MIPS which is cache-coherent
 (no need to flush/invalidate).
 Maybe there are other issues with your code.  It's hard to comment on
 onknown out-of-tree ports.

 Best regards,

 Wolfgang Denk

I don't think so. The only changes I made were to the register access 
macros to use a couple assembly functions since our EHCI registers 
require 64-bit addressing and a very quick virtual to physical 
conversion for the descriptors which is quite fast. Other than that, the 
code is stock from GIT. Note that we do not use interrupts either but 
polling.

Unless I'm reading it wrong it also looks like in EHCI it only uses one 
descriptor and I wonder if this might have something to do with it?

I can provide a diff when I return to the office next week.

-Aaron
___
U-Boot mailing list
U-Boot@lists.denx.de
http://lists.denx.de/mailman/listinfo/u-boot