Re: [U-Boot] pull request for u-boot-tegra/master

2012-08-07 Thread Albert ARIBAUD
Hi Allen,

On Mon, 6 Aug 2012 15:46:22 -0700, Allen Martin amar...@nvidia.com wrote:
   -Original Message-
   From: Albert ARIBAUD [mailto:albert.u.b...@aribaud.net]
   Sent: Sunday, August 05, 2012 1:01 PM
   To: Albert ARIBAUD
   Cc: Tom Warren; si...@theia.denx.de; u-boot@lists.denx.de; Stephen Warren;
   Tom Warren
   Subject: Re: [U-Boot] pull request for u-boot-tegra/master
   
   Hi Albert,
   
   On Sun, 5 Aug 2012 21:46:21 +0200, Albert ARIBAUD
   albert.u.b...@aribaud.net wrote:
Hi Tom,
   
On Fri, 3 Aug 2012 16:35:40 -0700, Tom Warren twarren.nvi...@gmail.com
   wrote:
 Albert,

 Has this been pulled into ARM master? I don't think I saw a response
 from you, but I might have missed it.
   
Sorry Tom, but I have been unavailable for some time and especially on
jul 30 and 31, so no, it has not been pulled in. :(
   
I am pulling it in right now, but I have sparse access to Internet right
   now.
   
   Seems like f414d013c5e129e66c04ff699bd60b34894d3d38 breaks a lot of builds
   with the stock Ubuntu linaro toolchain, e.g.
   
   
   --
   
   $ ./MAKEALL jornada
   Configuring for jornada board...
   make: *** [jornada_config] Error 1
   arm-linux-gnueabi-size: './u-boot': No such file
   make: *** No rule to make target `include/autoconf.mk', needed by 
   `depend'.
   Stop.
   make: *** Waiting for unfinished jobs
   
 
 I think I found the problem.  For some reason I don't fully understand
 when a board doesn't have ${soc} defined the following code in mkconfig:
 
 ( echo ARCH   = ${arch}
 if [ ! -z $spl_cpu ] ; then
 echo 'ifeq ($(CONFIG_SPL_BUILD),y)'
 echo CPU= ${spl_cpu}
 echo else
 echo CPU= ${cpu}
 echo endif
 else
 echo CPU= ${cpu}
 fi
 echo BOARD  = ${board}
 
 [ ${vendor} ]  echo VENDOR = ${vendor}
 [ ${soc}]  echo SOC= ${soc} )  config.mk
 
 causes the subshell to return a nonzero exit status.  I think the
 behavior may change depending on what shell you have /bin/sh pointing
 to.  Can you try out the following fix to verify?  I'll put together a
 proper patch in the mean time
 
 diff --git a/mkconfig b/mkconfig
 index 07031c6..d3363c6 100755
 --- a/mkconfig
 +++ b/mkconfig
 @@ -144,7 +144,8 @@ fi
  echo BOARD  = ${board}
 
  [ ${vendor} ]  echo VENDOR = ${vendor}
 -[ ${soc}]  echo SOC= ${soc} )  config.mk
 +[ ${soc}]  echo SOC= ${soc}
 +exit 0 )  config.mk
 
  # Assign board directory to BOARDIR variable
  if [ -z ${vendor} ] ; then

Seems to work with this fix applied on top of the current tegra/master.

Tom, can you fix the branch so that the original commit (f414d013...) contains
the fix above, rather than just adding the fix on top of the branch? That'll
help any bisecting through this branch's commits.

Also, Allen:
 
 ---
 This email message is for the sole use of the intended recipient(s) and may 
 contain
 confidential information.  Any unauthorized review, use, disclosure or 
 distribution
 is prohibited.  If you are not the intended recipient, please contact the 
 sender by
 reply email and destroy all copies of the original message.
 ---

Can this be removed from future e-mails to the list?

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


Re: [U-Boot] [PATCH] mkconfig: fix failure on boards that don't define soc

2012-08-07 Thread Albert ARIBAUD
Hi Allen,

On Mon, 6 Aug 2012 17:07:25 -0700, Allen Martin amar...@nvidia.com wrote:
 On Mon, Aug 06, 2012 at 05:04:28PM -0700, Allen Martin wrote:
  Fix a configure failure on boards that don't define soc.  The exit
  status of the subshell was propogating up and causing mkconfig to
  fail.  Add an explicit exit 0 to the subshell to fix this.
  
  Signed-off-by: Allen Martin amar...@nvidia.com
 
 I ran a full MAKEALL -a arm on a system where I reproduced the failure
 on jornada previously and it ran clean.
 
 
 -Allen

Sorry, Allen, missed this. I'd rather have this fix directly corrected in the
original tegra/master commit so that bisecting remains feasible around this.
 
Amicalement,
-- 
Albert.
___
U-Boot mailing list
U-Boot@lists.denx.de
http://lists.denx.de/mailman/listinfo/u-boot


Re: [U-Boot] [PATCH 1/6] powerpc/corenet_ds: Update README.srio-boot-corenet

2012-08-07 Thread Liu Gang
Hi Andy,

It's so long time those patches resided in open source, and there are no
any comments.

http://patchwork.ozlabs.org/patch/163499/

So could you please help to apply them?

Following are some descriptions for this set of patches excerpt from the
e-mail sent to you at June 1.


..

Now I finished the function based your comment and add the new module of
boot from PCIE.
Right now we just need to build master image for boot from SRIO and PCIE
with normal configuration, for example with:
P4080DS_config
And then just need to set the environment bootmaster to SRIO1' or
PCIE1.

For slave image boot from SRIO and PCIE, just need one build target:
P4080DS_SRIO_PCIE_BOOT_config

Overall, we now just need one special build configuration
P4080DS_SRIO_PCIE_BOOT_config
for both boot from SRIO and PCIE.
..


Thanks a lot!


On Thu, 2012-06-07 at 14:43 +0800, Liu Gang wrote:
 Update some descriptions due to the implementation changes:
 
 For master:
   Get rid of the SRIOBOOT_MASTER build target, and to support
   for serving as a SRIO boot master via environment variable.
 For slave:
   1. When compile the slave image for boot from SRIO, no longer
  need to specify which SRIO port it will boot from.
   2. All slave's cores should be in hold off.
 
 Signed-off-by: Liu Gang gang@freescale.com
 ---
  doc/README.srio-boot-corenet |   70 
 --
  1 files changed, 33 insertions(+), 37 deletions(-)


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


Re: [U-Boot] [PATCH v4] at91: Add support for taskit AT91SAM9G20 boards.

2012-08-07 Thread Andreas Bießmann
Dear Markus Hubig,

On 06.08.2012 18:49, Markus Hubig wrote:
 On Mon, Aug 06, 2012 at 03:01:40PM +0200, Andreas Bießmann wrote:
 On 06.08.2012 11:11, Markus Hubig wrote:

 +static unsigned int saved_state[3] = {STATUS_LED_OFF,
 +   STATUS_LED_OFF, STATUS_LED_OFF};
 +
 +void coloured_LED_init(void)
 +{
 +   /* Clock is enabled in board_early_init_f() */

 But coloured_LED_init() is called way before!

 Beware, this coloured LED stuff is sometimes used for very early debug
 purposes. To get this working you will need to switch the clocks here.

 If you not insist on this colour LED framework I would appreciate to not
 add this coloured_LED_init for the stamp9g20 but use the status LED
 framework - README.LED
 
 Are you shure about this?

No, I've not worked with that status LED thing. Contrastingly I thought
that LED stuff is at91 specific. But there are some other ARM SoC using
this colored LED and status LED thing. So this appears to be a wrong
decision.

 Is I just remove this and put the 
 
 +   at91_set_gpio_output(CONFIG_RED_LED, 1);
 +   at91_set_gpio_output(CONFIG_GREEN_LED, 1);
 +   at91_set_gpio_output(CONFIG_YELLOW_LED, 1);
 
 in __led_init() I have no LED's at all and the commandlie tool 'led'
 stopps working... At all the Status LED stuff is a bit confusing ...
 
 - It's not clear to me if the STATUS_LED_BIT should be e.g. 1 or
   e.g. AT91_PIN_PC5.
 
 - It's not clear what the benefit of using this is.
 
 - It's not clear if the coloured_LED stuff is part of it or something
   extra.

Sorry, I can not help you here.

 Maybe it's better is I just switch on the green LED in board_init?

but you will loose the led cmd which may be useful.

 For now I just switched the clock on in coloured_LED_init. At least I
 have some LED now.

Thats ok with me.

Best regards

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


Re: [U-Boot] [PATCH 1/4] MX28: Fix up the MMC driver DMA mode

2012-08-07 Thread Stefano Babic
On 06/08/2012 23:23, Marek Vasut wrote:
 Dear Marek Vasut,
 
 The DMA mode didn't properly configure the DMA_ENABLE bit in CTRL1.
 Also, it was using SSP0 DMA channel for all SSP devices.

 Signed-off-by: Marek Vasut ma...@denx.de
 Cc: Wolfgang Denk w...@denx.de
 Cc: Stefano Babic sba...@denx.de
 Cc: Fabio Estevam feste...@freescale.com
 Cc: Andy Fleming aflem...@freescale.com
 
 Stefano, can you please apply these? They fix trouble and improve the 
 platform 
 and I ain't getting no reply from Andy and they shouldn't colide with 
 anything 
 in his tree.

Ok - changes are only related to the MX28 driver. Maybe the patches
should be in any case merged into u-boot-imx and not into u-boot-mmc. I
am often unsure which custodian should take care of patches when they
spread across more as one area.

I will merge them now.

Best 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-53 Fax: +49-8142-66989-80 Email: sba...@denx.de
=
___
U-Boot mailing list
U-Boot@lists.denx.de
http://lists.denx.de/mailman/listinfo/u-boot


[U-Boot] [PATCH v5 4/5] OMAP: networking support for SPL

2012-08-07 Thread Ilya Yanok
This patch adds support for networking in SPL. Some devices are
capable of loading SPL via network so it makes sense to load the
main U-Boot binary via network too. This patch tries to use
existing network code as much as possible. Unfortunately, it depends
on environment which in turn depends on other code so SPL size
is increased significantly. No effort was done to decouple network
code and environment so far.

Signed-off-by: Ilya Yanok ilya.ya...@cogentembedded.com

---
Changes in v3:
 - use BOOTP in SPL regardless of CONFIG_CMD_DHCP
 - add support for setting different VCI in SPL

Changes in v4:
 - fix compilation of SPL's libcommon with CONFIG_HUSH_PARSER
   and CONFIG_BOOTD defined
 - rename spl_eth.c to spl_net.c
 - set ethact variable if device name is passed

Changes in v5:
 - set up guards in cmd_nvedit.c more carefully
 - now we don't need command.c and only need main.c for
   show_boot_progress() so defined it to be noop and remove
   both files from SPL sources
 - SPL guards in command.c and main.c are no longer needed
 - add some guards in env_common.c
 - qsort.c is no longer needed
 - add guard to hashtable.c to save some space
 - undefine unneeded CONFIG_CMD_* while building SPL to save space

 arch/arm/cpu/armv7/omap-common/Makefile  |3 ++
 arch/arm/cpu/armv7/omap-common/spl.c |9 ++
 arch/arm/cpu/armv7/omap-common/spl_net.c |   52 ++
 arch/arm/include/asm/omap_common.h   |4 +++
 common/Makefile  |4 +++
 common/cmd_nvedit.c  |   11 ++-
 common/command.c |2 +-
 common/env_common.c  |7 ++--
 include/bootstage.h  |6 +++-
 lib/Makefile |9 --
 lib/hashtable.c  |2 ++
 lib/vsprintf.c   |2 +-
 net/bootp.c  |   11 ++-
 net/net.c|   13 
 net/tftp.c   |4 +++
 spl/Makefile |3 ++
 16 files changed, 133 insertions(+), 9 deletions(-)
 create mode 100644 arch/arm/cpu/armv7/omap-common/spl_net.c

diff --git a/arch/arm/cpu/armv7/omap-common/Makefile 
b/arch/arm/cpu/armv7/omap-common/Makefile
index d37b22d..f042078 100644
--- a/arch/arm/cpu/armv7/omap-common/Makefile
+++ b/arch/arm/cpu/armv7/omap-common/Makefile
@@ -53,6 +53,9 @@ endif
 ifdef CONFIG_SPL_YMODEM_SUPPORT
 COBJS  += spl_ymodem.o
 endif
+ifdef CONFIG_SPL_NET_SUPPORT
+COBJS  += spl_net.o
+endif
 endif
 
 ifndef CONFIG_SPL_BUILD
diff --git a/arch/arm/cpu/armv7/omap-common/spl.c 
b/arch/arm/cpu/armv7/omap-common/spl.c
index f0d766c..53b9261 100644
--- a/arch/arm/cpu/armv7/omap-common/spl.c
+++ b/arch/arm/cpu/armv7/omap-common/spl.c
@@ -178,6 +178,15 @@ void board_init_r(gd_t *id, ulong dummy)
spl_ymodem_load_image();
break;
 #endif
+#ifdef CONFIG_SPL_ETH_SUPPORT
+   case BOOT_DEVICE_CPGMAC:
+#ifdef CONFIG_SPL_ETH_DEVICE
+   spl_net_load_image(CONFIG_SPL_ETH_DEVICE);
+#else
+   spl_net_load_image(NULL);
+#endif
+   break;
+#endif
default:
printf(SPL: Un-supported Boot Device - %d!!!\n, boot_device);
hang();
diff --git a/arch/arm/cpu/armv7/omap-common/spl_net.c 
b/arch/arm/cpu/armv7/omap-common/spl_net.c
new file mode 100644
index 000..cbb3087
--- /dev/null
+++ b/arch/arm/cpu/armv7/omap-common/spl_net.c
@@ -0,0 +1,52 @@
+/*
+ * (C) Copyright 2000-2004
+ * Wolfgang Denk, DENX Software Engineering, w...@denx.de.
+ *
+ * (C) Copyright 2012
+ * Ilya Yanok ilya.ya...@gmail.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.
+ */
+#include common.h
+#include net.h
+#include asm/omap_common.h
+
+DECLARE_GLOBAL_DATA_PTR;
+
+void spl_net_load_image(const char *device)
+{
+   int rv;
+
+   env_init();
+   env_relocate();
+   setenv(autoload, yes);
+   load_addr = CONFIG_SYS_TEXT_BASE - sizeof(struct image_header);
+   rv = eth_initialize(gd-bd);
+   if (rv == 0) {
+   printf(No Ethernet devices found\n);
+   hang();
+   }
+   if (device)
+   setenv(ethact, device);
+   rv = 

Re: [U-Boot] [PATCH v4 2/5] spl: don't mark __u_boot_cmd* as undefined

2012-08-07 Thread Ilya Yanok
Hi Tom,

On Tue, Aug 7, 2012 at 1:11 AM, Ilya Yanok ilya.ya...@cogentembedded.comwrote:


 Yes.  What I meant was that not all of the stuff that is guarded today
 is garbage collected so the resulting image is larger than it must be.


 Yep. And that's actually goes beyond the subject of this patch: as long as
 we rely on linker GC and not putting guards by hands we will get unused
 string literals compiled in.

 I still think that this patch does the correct things (UNDEF_SYM is there
 to protect commands from GC and we don't really want commands in SPL so
 there is nothing to protect). But I will try to add guards to make net-spl
 compile even without this patch.


I've just posted v5 for patch 4/5 that doesn't depend on this patch. It
really has some improvement wrt size (~50KB net-only SPL image) so probably
it could be useful not only for AM33xx...

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


[U-Boot] [PATCH 08/16] Blackfin: add more print info for Bf60x

2012-08-07 Thread Bob Liu
Add system0, system1, dclk and cgu print info for Bf60x.

Signed-off-by: Bob Liu lliu...@gmail.com
---
 arch/blackfin/lib/board.c |6 ++
 arch/blackfin/lib/clocks.c|   10 +-
 common/cmd_reginfo.c  |   17 +
 include/configs/bf609-ezkit.h |1 +
 4 files changed, 33 insertions(+), 1 deletion(-)

diff --git a/arch/blackfin/lib/board.c b/arch/blackfin/lib/board.c
index 4e44bf0..e03bd57 100644
--- a/arch/blackfin/lib/board.c
+++ b/arch/blackfin/lib/board.c
@@ -311,7 +311,13 @@ void board_init_f(ulong bootflag)
 
printf(Clock: VCO: %s MHz, , strmhz(buf, get_vco()));
printf(Core: %s MHz, , strmhz(buf, get_cclk()));
+#if defined(__ADSPBF60x__)
+   printf(System0: %s MHz, , strmhz(buf, get_sclk0()));
+   printf(System1: %s MHz, , strmhz(buf, get_sclk1()));
+   printf(Dclk: %s MHz\n, strmhz(buf, get_dclk()));
+#else
printf(System: %s MHz\n, strmhz(buf, get_sclk()));
+#endif
 
if (CONFIG_MEM_SIZE) {
printf(RAM:   );
diff --git a/arch/blackfin/lib/clocks.c b/arch/blackfin/lib/clocks.c
index f867123..519a3e1 100644
--- a/arch/blackfin/lib/clocks.c
+++ b/arch/blackfin/lib/clocks.c
@@ -79,7 +79,7 @@ u_long get_cclk(void)
 /* Get the System clock */
 #ifdef CGU_DIV
 
-static u_long cached_sclk_pll_div, cached_sclk, cached_sclk0, cached_sclk1;
+static u_long cached_sclk_pll_div, cached_sclk, cached_sclk0, cached_sclk1, 
cached_dclk;
 static u_long _get_sclk(u_long *cache)
 {
u_long div, ssel;
@@ -132,6 +132,14 @@ u_long get_sclk1(void)
 #endif
 }
 
+u_long get_dclk(void)
+{
+#ifndef CONFIG_BFIN_GET_DCLK
+   return _get_sclk(cached_dclk);
+#else
+   return CONFIG_BFIN_GET_DCLK;
+#endif
+}
 #else
 
 u_long get_sclk(void)
diff --git a/common/cmd_reginfo.c b/common/cmd_reginfo.c
index bf94119..ef49017 100644
--- a/common/cmd_reginfo.c
+++ b/common/cmd_reginfo.c
@@ -226,6 +226,23 @@ int do_reginfo (cmd_tbl_t *cmdtp, int flag, int argc, char 
* const argv[])
printf(\tEBIU_SDSTAT:  0x%04x   EBIU_SDGCTL:  0x%08x\n,
bfin_read_EBIU_SDSTAT(), bfin_read_EBIU_SDGCTL());
 # endif
+#else
+   puts(\nCGU Registers\n);
+   printf(\tCGU_DIV:   0x%08x   CGU_CTL:  0x%08x\n,
+   bfin_read_CGU_DIV(), bfin_read_CGU_CTL());
+   printf(\tCGU_STAT:  0x%08x   CGU_LOCKCNT:  0x%08x\n,
+   bfin_read_CGU_STAT(), bfin_read_CGU_CLKOUTSEL());
+
+   puts(\nSMC DDR Registers\n);
+   printf(\tDDR_CFG:   0x%08x   DDR_TR0:  0x%08x\n,
+   bfin_read_DMC0_CFG(), bfin_read_DMC0_TR0());
+   printf(\tDDR_TR1:   0x%08x   DDR_TR2:  0x%08x\n,
+   bfin_read_DMC0_TR1(), bfin_read_DMC0_TR2());
+   printf(\tDDR_MR:0x%08x   DDR_EMR1: 0x%08x\n,
+   bfin_read_DMC0_MR(), bfin_read_DMC0_EMR1());
+   printf(\tDDR_CTL:   0x%08x   DDR_STAT: 0x%08x\n,
+   bfin_read_DMC0_CTL(), bfin_read_DMC0_STAT());
+   printf(\tDDR_DLLCTL:0x%08x\n, bfin_read_DMC0_DLLCTL());
 #endif
 #endif /* CONFIG_BLACKFIN */
 
diff --git a/include/configs/bf609-ezkit.h b/include/configs/bf609-ezkit.h
index c847069..c7cb834 100644
--- a/include/configs/bf609-ezkit.h
+++ b/include/configs/bf609-ezkit.h
@@ -64,6 +64,7 @@
 #define CONFIG_BFIN_GET_SCLK (CONFIG_PLL_CLK/CONFIG_SYSCLK_DIV)
 #define CONFIG_BFIN_GET_SCLK0 (get_sclk()/CONFIG_SCLK0_DIV)
 #define CONFIG_BFIN_GET_SCLK1 (get_sclk()/CONFIG_SCLK1_DIV)
+#define CONFIG_BFIN_GET_DCLK (get_cclk()/CONFIG_DCLK_DIV)
 
 /*
  * Memory Settings
-- 
1.7.9.5


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


[U-Boot] [PATCH 03/16] Blackfin: Bf60x: support big cplb page

2012-08-07 Thread Bob Liu
Bf60x support 16K, 64K, 16M and 64M cplb pages, this patch add support for them.
So that bf609-ezkit can use it's 128M memory.

Signed-off-by: Bob Liu lliu...@gmail.com
---
 arch/blackfin/include/asm/cplb.h |   13 +-
 arch/blackfin/include/asm/mach-common/bits/mpu.h |6 -
 arch/blackfin/lib/board.c|   28 --
 include/configs/bf609-ezkit.h|6 +
 4 files changed, 39 insertions(+), 14 deletions(-)

diff --git a/arch/blackfin/include/asm/cplb.h b/arch/blackfin/include/asm/cplb.h
index cc21e93..5a0588b 100644
--- a/arch/blackfin/include/asm/cplb.h
+++ b/arch/blackfin/include/asm/cplb.h
@@ -46,8 +46,11 @@
 #define CPLB_IDOCACHE  CPLB_INOCACHE | CPLB_L1_CHBL
 
 /* Data Attibutes*/
-
+#if defined(__ADSPBF60x__)
+#define SDRAM_IGENERIC  (PAGE_SIZE_16MB | CPLB_L1_CHBL | CPLB_USER_RD 
| CPLB_VALID)
+#else
 #define SDRAM_IGENERIC  (PAGE_SIZE_4MB | CPLB_L1_CHBL | CPLB_USER_RD | 
CPLB_VALID)
+#endif
 #define SDRAM_IKERNEL   (PAGE_SIZE_4MB | CPLB_L1_CHBL | CPLB_USER_RD | 
CPLB_VALID | CPLB_LOCK)
 #define L1_IMEMORY  (PAGE_SIZE_1MB | CPLB_USER_RD | CPLB_VALID | 
CPLB_LOCK)
 #define SDRAM_INON_CHBL (PAGE_SIZE_4MB | CPLB_USER_RD | CPLB_VALID)
@@ -59,14 +62,22 @@
 #endif
 
 #ifdef CONFIG_DCACHE_WB/*Write Back Policy */
+#if defined(__ADSPBF60x__)
+#define SDRAM_DGENERIC  (PAGE_SIZE_16MB | CPLB_L1_CHBL | CPLB_DIRTY | 
CPLB_SUPV_WR | CPLB_USER_WR | CPLB_USER_RD | CPLB_VALID | 
ANOMALY_05000158_WORKAROUND)
+#else
 #define SDRAM_DGENERIC  (PAGE_SIZE_4MB | CPLB_L1_CHBL | CPLB_DIRTY | 
CPLB_SUPV_WR | CPLB_USER_WR | CPLB_USER_RD | CPLB_VALID | 
ANOMALY_05000158_WORKAROUND)
+#endif
 #define SDRAM_DNON_CHBL (PAGE_SIZE_4MB | CPLB_DIRTY | CPLB_SUPV_WR | 
CPLB_USER_RD | CPLB_USER_WR | CPLB_VALID | ANOMALY_05000158_WORKAROUND)
 #define SDRAM_DKERNEL   (PAGE_SIZE_4MB | CPLB_L1_CHBL | CPLB_USER_RD | 
CPLB_USER_WR | CPLB_DIRTY | CPLB_SUPV_WR | CPLB_VALID | CPLB_LOCK | 
ANOMALY_05000158_WORKAROUND)
 #define L1_DMEMORY  (PAGE_SIZE_4MB | CPLB_SUPV_WR | CPLB_USER_WR | 
CPLB_USER_RD | CPLB_VALID | ANOMALY_05000158_WORKAROUND)
 #define SDRAM_EBIU  (PAGE_SIZE_4MB | CPLB_DIRTY | CPLB_USER_RD | 
CPLB_USER_WR | CPLB_SUPV_WR | CPLB_VALID | ANOMALY_05000158_WORKAROUND)
 
 #else  /*Write Through */
+#if defined(__ADSPBF60x__)
+#define SDRAM_DGENERIC  (PAGE_SIZE_16MB | CPLB_L1_CHBL | CPLB_WT | 
CPLB_L1_AOW | CPLB_SUPV_WR | CPLB_USER_RD | CPLB_USER_WR | CPLB_VALID | 
ANOMALY_05000158_WORKAROUND)
+#else
 #define SDRAM_DGENERIC  (PAGE_SIZE_4MB | CPLB_L1_CHBL | CPLB_WT | 
CPLB_L1_AOW | CPLB_SUPV_WR | CPLB_USER_RD | CPLB_USER_WR | CPLB_VALID | 
ANOMALY_05000158_WORKAROUND)
+#endif
 #define SDRAM_DNON_CHBL (PAGE_SIZE_4MB | CPLB_WT | CPLB_L1_AOW | 
CPLB_SUPV_WR | CPLB_USER_WR | CPLB_USER_RD | CPLB_VALID | 
ANOMALY_05000158_WORKAROUND)
 #define SDRAM_DKERNEL   (PAGE_SIZE_4MB | CPLB_L1_CHBL | CPLB_WT | 
CPLB_L1_AOW | CPLB_USER_RD | CPLB_SUPV_WR | CPLB_USER_WR | CPLB_VALID | 
CPLB_LOCK | ANOMALY_05000158_WORKAROUND)
 #define L1_DMEMORY  (PAGE_SIZE_4MB | CPLB_SUPV_WR | CPLB_USER_WR | 
CPLB_VALID | ANOMALY_05000158_WORKAROUND)
diff --git a/arch/blackfin/include/asm/mach-common/bits/mpu.h 
b/arch/blackfin/include/asm/mach-common/bits/mpu.h
index 39998f8..d067ef9 100644
--- a/arch/blackfin/include/asm/mach-common/bits/mpu.h
+++ b/arch/blackfin/include/asm/mach-common/bits/mpu.h
@@ -70,7 +70,11 @@
 #define PAGE_SIZE_4KB  0x0001  /* 4 KB page size */
 #define PAGE_SIZE_1MB  0x0002  /* 1 MB page size */
 #define PAGE_SIZE_4MB  0x0003  /* 4 MB page size */
-#define PAGE_SIZE_MASK 0x0003  /* the bits for the page_size 
field */
+#define PAGE_SIZE_16KB 0x0004  /* 16 KB page size */
+#define PAGE_SIZE_64KB 0x0005  /* 64 KB page size */
+#define PAGE_SIZE_16MB 0x0006  /* 16 MB page size */
+#define PAGE_SIZE_64MB 0x0007  /* 64 MB page size */
+#define PAGE_SIZE_MASK 0x0007  /* the bits for the page_size 
field */
 #define PAGE_SIZE_SHIFT16
 #define CPLB_L1SRAM0x0020  /* 0=SRAM mapped in L1, 0=SRAM 
not mapped to L1 */
 #define CPLB_PORTPRIO  0x0200  /* 0=low priority port, 1= high 
priority port */
diff --git a/arch/blackfin/lib/board.c b/arch/blackfin/lib/board.c
index cfb38e8..4e44bf0 100644
--- a/arch/blackfin/lib/board.c
+++ b/arch/blackfin/lib/board.c
@@ -94,12 +94,12 @@ static void display_global_data(void)
printf(   \\-bi_flashoffset: %lx\n, bd-bi_flashoffset);
 }
 
-#define CPLB_PAGE_SIZE (4 * 1024 * 1024)
-#define CPLB_PAGE_MASK (~(CPLB_PAGE_SIZE - 1))
 void init_cplbtables(void)
 {
volatile uint32_t *ICPLB_ADDR, *ICPLB_DATA;
volatile uint32_t *DCPLB_ADDR, 

[U-Boot] [PATCH 06/16] Blackfin: Bf609-ezkit: implement soft switch

2012-08-07 Thread Bob Liu
From: Sonic Zhang sonic.zh...@analog.com

Set up soft switch pins properly in board init code.

Signed-off-by: Sonic Zhang sonic.zh...@analog.com
Signed-off-by: Bob Liu lliu...@gmail.com
---
 board/bf609-ezkit/Makefile  |1 +
 board/bf609-ezkit/bf609-ezkit.c |   22 +++--
 board/bf609-ezkit/soft_switch.c |  173 +++
 board/bf609-ezkit/soft_switch.h |   71 
 include/configs/bf609-ezkit.h   |6 +-
 5 files changed, 260 insertions(+), 13 deletions(-)
 create mode 100644 board/bf609-ezkit/soft_switch.c
 create mode 100644 board/bf609-ezkit/soft_switch.h

diff --git a/board/bf609-ezkit/Makefile b/board/bf609-ezkit/Makefile
index cde8168..0bb8fe6 100644
--- a/board/bf609-ezkit/Makefile
+++ b/board/bf609-ezkit/Makefile
@@ -30,6 +30,7 @@ include $(TOPDIR)/config.mk
 LIB= $(obj)lib$(BOARD).o
 
 COBJS-y:= $(BOARD).o
+COBJS-$(CONFIG_BFIN_SOFT_SWITCH)   += soft_switch.o
 
 SRCS   := $(SOBJS-y:.o=.S) $(COBJS-y:.o=.c)
 OBJS   := $(addprefix $(obj),$(COBJS-y))
diff --git a/board/bf609-ezkit/bf609-ezkit.c b/board/bf609-ezkit/bf609-ezkit.c
index d701c36..d54906b 100644
--- a/board/bf609-ezkit/bf609-ezkit.c
+++ b/board/bf609-ezkit/bf609-ezkit.c
@@ -11,6 +11,7 @@
 #include asm/blackfin.h
 #include asm/io.h
 #include asm/portmux.h
+#include soft_switch.h
 
 int checkboard(void)
 {
@@ -32,30 +33,20 @@ int board_early_init_f(void)
 }
 
 #ifdef CONFIG_DESIGNWARE_ETH
-#define TWI_ADDR 0x20
 int board_eth_init(bd_t *bis)
 {
int ret = 0;
-   uchar idira = 0x0;
-   uchar lata = 0xff;
 
if (CONFIG_DW_PORTS  1) {
static const unsigned short pins[] = P_RMII0;
if (!peripheral_request_list(pins, emac0)) {
-   /* enable phy clk */
-   ret = i2c_write(TWI_ADDR, 0x0, 1, idira, 1);
-   if (!ret) {
-   ret = i2c_write(TWI_ADDR, 0x14, 1, lata, 1);
-   if (!ret)
-   ret += designware_initialize(0, 
EMAC0_MACCFG, 1, 0);
-   }
+   ret += designware_initialize(0, EMAC0_MACCFG, 1, 0);
}
}
-
if (CONFIG_DW_PORTS  2) {
static const unsigned short pins[] = P_RMII1;
if (!peripheral_request_list(pins, emac1))
-   ret += designware_initialize(1, EMAC1_MACCFG, 1, 0, 1);
+   ret += designware_initialize(1, EMAC1_MACCFG, 1, 0);
}
 
return ret;
@@ -68,3 +59,10 @@ int board_mmc_init(bd_t *bis)
return bfin_mmc_init(bis);
 }
 #endif
+
+/* miscellaneous platform dependent initialisations */
+int misc_init_r(void)
+{
+   printf(other init\n);
+   return setup_board_switches();
+}
diff --git a/board/bf609-ezkit/soft_switch.c b/board/bf609-ezkit/soft_switch.c
new file mode 100644
index 000..9e2265a
--- /dev/null
+++ b/board/bf609-ezkit/soft_switch.c
@@ -0,0 +1,173 @@
+/*
+ * U-boot - main board file
+ *
+ * Copyright (c) 2008-2011 Analog Devices Inc.
+ *
+ * Licensed under the GPL-2 or later.
+ */
+
+#include common.h
+#include asm/blackfin.h
+#include asm/io.h
+#include i2c.h
+#include soft_switch.h
+
+#ifdef CONFIG_BFIN_BOARD_VERSION_1_0
+#define SWITCH_ADDR 0x21
+#else
+#define SWITCH_ADDR 0x20
+#endif
+
+#define NUM_SWITCH  3
+#define IODIRA  0x0
+#define IODIRB  0x1
+#define OLATA   0x14
+#define OLATB   0x15
+
+struct switch_config {
+   uchar dir0; /* IODIRA */
+   uchar dir1; /* IODIRB */
+   uchar value0; /* OLATA */
+   uchar value1; /* OLATB */
+};
+
+static struct switch_config switch_config_array[NUM_SWITCH] = {
+   {
+/*
+   U45 Port A  U45 Port B
+
+   7---  RMII_CLK_EN   |   7--- 
~TEMP_THERM_EN
+   | 6- ~CNT0ZM_EN |   | 6- 
~TEMP_IRQ_EN
+   | | 5--- ~CNT0DG_EN |   | | 5--- 
~UART0CTS_146_EN
+   | | | 4- ~CNT0UD_EN |   | | | 4- 
~UART0CTS_RST_EN
+   | | | | 3--- ~CAN0RX_EN |   | | | | 3--- 
~UART0CTS_RTS_LPBK
+   | | | | | 2- ~CAN0_ERR_EN   |   | | | | | 2- 
~UART0CTS_EN
+   | | | | | | 1--- ~CAN_STB   |   | | | | | | 1--- ~UART0RX_EN
+   | | | | | | | 0-  CAN_EN|   | | | | | | | 0- 
~UART0RTS_EN
+   | | | | | | | | |   | | | | | | | |
+   O O O O O O O O |   O O O O O O O O ( I/O 
direction )
+   1 0 0 0 0 0 1 1 |   1 1 1 1 1 0 0 0 ( value 
being set )
+*/
+   .dir0 = 0x0, /* all output */
+   .dir1 = 0x0, /* all output */
+   .value0 = RMII_CLK_EN | CAN_STB | CAN_EN,
+   .value1 = TEMP_THERM_EN | TEMP_IRQ_EN | UART0CTS_146_EN
+   

[U-Boot] [PATCH 02/16] Blackfin: bf609-ezkit: new board port

2012-08-07 Thread Bob Liu
From: Mike Frysinger vap...@gentoo.org

Add basic support for new board bf609-ezkit.

Signed-off-by: Mike Frysinger vap...@gentoo.org
Signed-off-by: Sonic Zhang sonic.zh...@analog.com
Signed-off-by: Bob Liu lliu...@gmail.com
---
 arch/blackfin/cpu/initcode.c   |   96 ++-
 arch/blackfin/cpu/initcode.h   |9 ++
 arch/blackfin/cpu/serial1.h|   19 +++
 arch/blackfin/cpu/serial4.h|   35 +-
 arch/blackfin/include/asm/mach-bf609/portmux.h |5 +
 arch/blackfin/include/asm/mach-bf609/ports.h   |   56 +++--
 board/bf609-ezkit/Makefile |   54 +
 board/bf609-ezkit/bf609-ezkit.c|   63 ++
 boards.cfg |1 +
 common/cmd_reginfo.c   |4 +-
 include/configs/bf609-ezkit.h  |  148 
 11 files changed, 446 insertions(+), 44 deletions(-)
 create mode 100644 board/bf609-ezkit/Makefile
 create mode 100644 board/bf609-ezkit/bf609-ezkit.c
 create mode 100644 include/configs/bf609-ezkit.h

diff --git a/arch/blackfin/cpu/initcode.c b/arch/blackfin/cpu/initcode.c
index ae3fe7a..9888f10 100644
--- a/arch/blackfin/cpu/initcode.c
+++ b/arch/blackfin/cpu/initcode.c
@@ -23,16 +23,18 @@
 
 #include serial.h
 
-#if 0
-
+#ifndef __ADSPBF60x__
 #include asm/mach-common/bits/pll.h
+#else
+#include asm/mach-common/bits/cgu.h
+#endif
 
 __attribute__((always_inline))
 static inline void serial_init(void)
 {
uint32_t uart_base = UART_BASE;
 
-#ifdef __ADSPBF54x__
+#if defined(__ADSPBF54x__) || defined(__ADSPBF60x__)
 # ifdef BFIN_BOOT_UART_USE_RTS
 #  define BFIN_UART_USE_RTS 1
 # else
@@ -42,7 +44,11 @@ static inline void serial_init(void)
size_t i;
 
/* force RTS rather than relying on auto RTS */
+#if BFIN_UART_HW_VER  4
bfin_write16(pUART-mcr, bfin_read16(pUART-mcr) | FCPOL);
+#else
+   bfin_write32(pUART-control, bfin_read32(pUART-control) | 
FCPOL);
+#endif
 
/* Wait for the line to clear up.  We cannot rely on UART
 * registers as none of them reflect the status of the RSR.
@@ -86,12 +92,16 @@ static inline void serial_init(void)
 __attribute__((always_inline))
 static inline void serial_deinit(void)
 {
-#ifdef __ADSPBF54x__
+#if defined(__ADSPBF54x__) || defined(__ADSPBF60x__)
uint32_t uart_base = UART_BASE;
 
if (BFIN_UART_USE_RTS  CONFIG_BFIN_BOOT_MODE == BFIN_BOOT_UART) {
/* clear forced RTS rather than relying on auto RTS */
+#if BFIN_UART_HW_VER  4
bfin_write16(pUART-mcr, bfin_read16(pUART-mcr)  ~FCPOL);
+#else
+   bfin_write32(pUART-control, bfin_read32(pUART-control)  
~FCPOL);
+#endif
}
 #endif
 }
@@ -107,7 +117,7 @@ static inline void serial_putc(char c)
if (c == '\n')
serial_putc('\r');
 
-   bfin_write16(pUART-thr, c);
+   bfin_write(pUART-thr, c);
 
while (!(_lsr_read(pUART)  TEMT))
continue;
@@ -156,6 +166,25 @@ program_nmi_handler(void)
 # define bfin_write_SPI_BAUD bfin_write_SPI0_BAUD
 #endif
 
+#ifdef __ADSPBF60x__
+
+#ifndef CONFIG_CGU_CTL_VAL
+# define CONFIG_CGU_CTL_VAL ((CONFIG_VCO_MULT  8) | CONFIG_CLKIN_HALF)
+#endif
+
+#ifndef CONFIG_CGU_DIV_VAL
+# define CONFIG_CGU_DIV_VAL \
+   (1  UPDT_P) | \
+   ((CONFIG_CCLK_DIVCSEL_P)   | \
+(CONFIG_SCLK0_DIV   S0SEL_P)  | \
+(CONFIG_SCLK_DIV  SYSSEL_P) | \
+(CONFIG_SCLK1_DIV   S1SEL_P)  | \
+(CONFIG_DCLK_DIVDSEL_P)   | \
+(CONFIG_OCLK_DIVOSEL_P))
+#endif
+
+#else /* __ADSPBF60x__ */
+
 /* PLL_DIV defines */
 #ifndef CONFIG_PLL_DIV_VAL
 # if (CONFIG_CCLK_DIV == 1)
@@ -279,6 +308,8 @@ program_nmi_handler(void)
 # endif
 #endif
 
+#endif /*  __ADSPBF60x__ */
+
 __attribute__((always_inline)) static inline void
 program_early_devices(ADI_BOOT_DATA *bs, uint *sdivB, uint *divB, uint *vcoB)
 {
@@ -287,8 +318,12 @@ program_early_devices(ADI_BOOT_DATA *bs, uint *sdivB, uint 
*divB, uint *vcoB)
/* Save the clock pieces that are used in baud rate calculation */
if (BFIN_DEBUG_EARLY_SERIAL || CONFIG_BFIN_BOOT_MODE == BFIN_BOOT_UART) 
{
serial_putc('b');
+#ifdef __ADSPBF60x__
+
+#else
*sdivB = bfin_read_PLL_DIV()  0xf;
*vcoB = (bfin_read_PLL_CTL()  9)  0x3f;
+#endif
*divB = serial_early_get_div();
serial_putc('c');
}
@@ -341,6 +376,10 @@ maybe_self_refresh(ADI_BOOT_DATA *bs)
if (!CONFIG_MEM_SIZE)
return false;
 
+#ifdef __ADSPBF60x__
+
+#else /* __ADSPBF60x__ */
+
/* If external memory is enabled, put it into self refresh first. */
 #if defined(EBIU_RSTCTL)
if (bfin_read_EBIU_RSTCTL()  DDR_SRESET) {
@@ -356,6 +395,7 @@ maybe_self_refresh(ADI_BOOT_DATA *bs)
}
 #endif
 
+#endif /* __ADSPBF60x__ */

[U-Boot] [PATCH 12/16] Blackfin: Bf60x: initcode: set up uart baud properly

2012-08-07 Thread Bob Liu
From: Sonic Zhang sonic.zh...@analog.com

Set up uart baud properly for booting u-boot over UART

Signed-off-by: Sonic Zhang sonic.zh...@analog.com
Signed-off-by: Bob Liu lliu...@gmail.com
---
 arch/blackfin/cpu/initcode.c |8 ++--
 1 file changed, 6 insertions(+), 2 deletions(-)

diff --git a/arch/blackfin/cpu/initcode.c b/arch/blackfin/cpu/initcode.c
index 3bb2b98..3197c40 100644
--- a/arch/blackfin/cpu/initcode.c
+++ b/arch/blackfin/cpu/initcode.c
@@ -433,7 +433,9 @@ program_early_devices(ADI_BOOT_DATA *bs, uint *sdivB, uint 
*divB, uint *vcoB)
if (BFIN_DEBUG_EARLY_SERIAL || CONFIG_BFIN_BOOT_MODE == BFIN_BOOT_UART) 
{
serial_putc('b');
 #ifdef __ADSPBF60x__
-
+   *sdivB = bfin_read_CGU_DIV();
+   *sdivB = ((*sdivB  8)  0x1f) * ((*sdivB  5)  0x7);
+   *vcoB = (bfin_read_CGU_CTL()  8)  0x7f;
 #else
*sdivB = bfin_read_PLL_DIV()  0xf;
*vcoB = (bfin_read_PLL_CTL()  9)  0x3f;
@@ -701,7 +703,9 @@ update_serial_clocks(ADI_BOOT_DATA *bs, uint sdivB, uint 
divB, uint vcoB)
serial_putc('b');
unsigned int sdivR, vcoR;
 #ifdef __ADSPBF60x__
-
+   sdivR = bfin_read_CGU_DIV();
+   sdivR = ((sdivR  8)  0x1f) * ((sdivR  5)  0x7);
+   vcoR = (bfin_read_CGU_CTL()  8)  0x7f;
 #else
sdivR = bfin_read_PLL_DIV()  0xf;
vcoR = (bfin_read_PLL_CTL()  9)  0x3f;
-- 
1.7.9.5


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


[U-Boot] [PATCH 11/16] Blackfin: Bf60x: support clock init

2012-08-07 Thread Bob Liu
Add a way to set clock to values getting from config file bf609-ezkit.h

Signed-off-by: Bob Liu lliu...@gmail.com
---
 arch/blackfin/cpu/initcode.c |  221 +-
 arch/blackfin/include/asm/mach-common/bits/cgu.h |2 +
 include/configs/bf609-ezkit.h|   35 ++--
 3 files changed, 234 insertions(+), 24 deletions(-)

diff --git a/arch/blackfin/cpu/initcode.c b/arch/blackfin/cpu/initcode.c
index 9888f10..3bb2b98 100644
--- a/arch/blackfin/cpu/initcode.c
+++ b/arch/blackfin/cpu/initcode.c
@@ -29,6 +29,121 @@
 #include asm/mach-common/bits/cgu.h
 #endif
 
+#ifdef __ADSPBF60x__
+#define CONFIG_BFIN_GET_DCLK_M (CONFIG_BFIN_GET_DCLK/100)
+
+#ifndef CONFIG_DMC_DDRCFG
+#if ((CONFIG_BFIN_GET_DCLK_M != 125)  \
+   (CONFIG_BFIN_GET_DCLK_M != 133)  \
+   (CONFIG_BFIN_GET_DCLK_M != 150)  \
+   (CONFIG_BFIN_GET_DCLK_M != 166)  \
+   (CONFIG_BFIN_GET_DCLK_M != 200)  \
+   (CONFIG_BFIN_GET_DCLK_M != 225)  \
+   (CONFIG_BFIN_GET_DCLK_M != 250))
+#error DDR2 CLK must be in (125, 133, 150, 166, 200, 225, 250)MHz
+#endif
+#endif
+
+/* DMC status bits */
+#define IDLE0x1
+#define MEMINITDONE 0x4
+#define SRACK   0x8
+#define PDACK   0x10
+#define DPDACK  0x20
+#define DLLCALDONE  0x2000
+#define PENDREF 0xF
+#define PHYRDPHASE  0xF0
+#define PHYRDPHASE_OFFSET   20
+
+/* DMC DLL control bits */
+#define DLLCALRDCNT 0xFF
+#define DATACYC_OFFSET  8
+
+struct ddr_config {
+   u32 ddr_clk;
+   u32 dmc_ddrctl;
+   u32 dmc_ddrcfg;
+   u32 dmc_ddrtr0;
+   u32 dmc_ddrtr1;
+   u32 dmc_ddrtr2;
+   u32 dmc_ddrmr;
+   u32 dmc_ddrmr1;
+};
+
+static struct ddr_config ddr_config_table[] = {
+   [0] = {
+   .ddr_clk= 125,  /* 125MHz */
+   .dmc_ddrctl = 0x0904,
+   .dmc_ddrcfg = 0x0422,
+   .dmc_ddrtr0 = 0x20705212,
+   .dmc_ddrtr1 = 0x201003CF,
+   .dmc_ddrtr2 = 0x00320107,
+   .dmc_ddrmr  = 0x0422,
+   .dmc_ddrmr1 = 0x4,
+   },
+   [1] = {
+   .ddr_clk= 133,  /* 133MHz */
+   .dmc_ddrctl = 0x0904,
+   .dmc_ddrcfg = 0x0422,
+   .dmc_ddrtr0 = 0x20806313,
+   .dmc_ddrtr1 = 0x2013040D,
+   .dmc_ddrtr2 = 0x00320108,
+   .dmc_ddrmr  = 0x0632,
+   .dmc_ddrmr1 = 0x4,
+   },
+   [2] = {
+   .ddr_clk= 150,  /* 150MHz */
+   .dmc_ddrctl = 0x0904,
+   .dmc_ddrcfg = 0x0422,
+   .dmc_ddrtr0 = 0x20A07323,
+   .dmc_ddrtr1 = 0x20160492,
+   .dmc_ddrtr2 = 0x00320209,
+   .dmc_ddrmr  = 0x0632,
+   .dmc_ddrmr1 = 0x4,
+   },
+   [3] = {
+   .ddr_clk= 166,  /* 166MHz */
+   .dmc_ddrctl = 0x0904,
+   .dmc_ddrcfg = 0x0422,
+   .dmc_ddrtr0 = 0x20A07323,
+   .dmc_ddrtr1 = 0x2016050E,
+   .dmc_ddrtr2 = 0x00320209,
+   .dmc_ddrmr  = 0x0632,
+   .dmc_ddrmr1 = 0x4,
+   },
+   [4] = {
+   .ddr_clk= 200,  /* 200MHz */
+   .dmc_ddrctl = 0x0904,
+   .dmc_ddrcfg = 0x0422,
+   .dmc_ddrtr0 = 0x20a07323,
+   .dmc_ddrtr1 = 0x2016050f,
+   .dmc_ddrtr2 = 0x00320509,
+   .dmc_ddrmr  = 0x0632,
+   .dmc_ddrmr1 = 0x4,
+   },
+   [5] = {
+   .ddr_clk= 225,  /* 225MHz */
+   .dmc_ddrctl = 0x0904,
+   .dmc_ddrcfg = 0x0422,
+   .dmc_ddrtr0 = 0x20E0A424,
+   .dmc_ddrtr1 = 0x302006DB,
+   .dmc_ddrtr2 = 0x0032020D,
+   .dmc_ddrmr  = 0x0842,
+   .dmc_ddrmr1 = 0x4,
+   },
+   [6] = {
+   .ddr_clk= 250,  /* 250MHz */
+   .dmc_ddrctl = 0x0904,
+   .dmc_ddrcfg = 0x0422,
+   .dmc_ddrtr0 = 0x20E0A424,
+   .dmc_ddrtr1 = 0x3020079E,
+   .dmc_ddrtr2 = 0x0032020D,
+   .dmc_ddrmr  = 0x0842,
+   .dmc_ddrmr1 = 0x4,
+   },
+};
+#endif
+
 __attribute__((always_inline))
 static inline void serial_init(void)
 {
@@ -174,7 +289,6 @@ program_nmi_handler(void)
 
 #ifndef CONFIG_CGU_DIV_VAL
 # define CONFIG_CGU_DIV_VAL \
-   (1  UPDT_P) | \
((CONFIG_CCLK_DIVCSEL_P)   | \
 (CONFIG_SCLK0_DIV   S0SEL_P)  | \
 (CONFIG_SCLK_DIV  SYSSEL_P) | \
@@ -409,12 +523,34 @@ program_clocks(ADI_BOOT_DATA *bs, bool put_into_srfs)
serial_putc('a');
 
 #ifdef __ADSPBF60x__
+   if (bfin_read_DMC0_STAT()  MEMINITDONE) {
+   

[U-Boot] [PATCH 13/16] Blackfin: Bf60x: add hw watchdog support

2012-08-07 Thread Bob Liu
Signed-off-by: Bob Liu lliu...@gmail.com
---
 arch/blackfin/cpu/initcode.c  |   14 ++
 arch/blackfin/cpu/start.S |2 ++
 include/configs/bf609-ezkit.h |1 +
 3 files changed, 17 insertions(+)

diff --git a/arch/blackfin/cpu/initcode.c b/arch/blackfin/cpu/initcode.c
index 3197c40..c68302f 100644
--- a/arch/blackfin/cpu/initcode.c
+++ b/arch/blackfin/cpu/initcode.c
@@ -458,8 +458,22 @@ program_early_devices(ADI_BOOT_DATA *bs, uint *sdivB, uint 
*divB, uint *vcoB)
 */
if (CONFIG_BFIN_BOOT_MODE != BFIN_BOOT_BYPASS) {
serial_putc('e');
+#ifdef __ADSPBF60x__
+   int i;
+   bfin_write_SEC_GCTL(0x2);
+   while (i++  10);
+   bfin_write_SEC_FCTL(0xc1);
+   bfin_write_SEC_SCTL(2, bfin_read_SEC_SCTL(2) | 0x6);
+
+   bfin_write_SEC_CCTL(0x2);
+   while (i++  10);
+   bfin_write_SEC_GCTL(0x1);
+   bfin_write_SEC_CCTL(0x1);
+#endif

bfin_write_WDOG_CNT(MSEC_TO_SCLK(CONFIG_HW_WATCHDOG_TIMEOUT_INITCODE));
+#if CONFIG_BFIN_BOOT_MODE != BFIN_BOOT_UART
bfin_write_WDOG_CTL(0);
+#endif
serial_putc('f');
}
 #endif
diff --git a/arch/blackfin/cpu/start.S b/arch/blackfin/cpu/start.S
index 90b4d1a..7155fc8 100644
--- a/arch/blackfin/cpu/start.S
+++ b/arch/blackfin/cpu/start.S
@@ -65,6 +65,7 @@ ENTRY(_start)
p5.h = HI(COREMMR_BASE);
 
 #ifdef CONFIG_HW_WATCHDOG
+#ifndef __ADSPBF60x__
 # ifndef CONFIG_HW_WATCHDOG_TIMEOUT_START
 #  define CONFIG_HW_WATCHDOG_TIMEOUT_START 5000
 # endif
@@ -78,6 +79,7 @@ ENTRY(_start)
/* fire up the watchdog - R0.L above needs to be 0x */
W[p4 + (WDOG_CTL - SYSMMR_BASE)] = r0;
 #endif
+#endif
 
/* Turn on the serial for debugging the init process */
serial_early_init
diff --git a/include/configs/bf609-ezkit.h b/include/configs/bf609-ezkit.h
index 311b2e4..64b1eb6 100644
--- a/include/configs/bf609-ezkit.h
+++ b/include/configs/bf609-ezkit.h
@@ -78,6 +78,7 @@
 #define CONFIG_SYS_MONITOR_LEN (512 * 1024)
 #define CONFIG_SYS_MALLOC_LEN  (256 * 1024)
 
+#define CONFIG_HW_WATCHDOG
 /*
  * Network Settings
  */
-- 
1.7.9.5


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


[U-Boot] [PATCH 09/16] Blackfin: Bf60x: add reset support

2012-08-07 Thread Bob Liu
Signed-off-by: Bob Liu lliu...@gmail.com
---
 arch/blackfin/cpu/reset.c |4 
 1 file changed, 4 insertions(+)

diff --git a/arch/blackfin/cpu/reset.c b/arch/blackfin/cpu/reset.c
index 33df0fc..b6718d3 100644
--- a/arch/blackfin/cpu/reset.c
+++ b/arch/blackfin/cpu/reset.c
@@ -70,8 +70,12 @@ static void bfin_reset(void)
 #endif
 
while (1)
+#if defined(__ADSPBF60x__)
+   bfin_write_RCU0_CTL(0x1);
+#else
/* Issue core reset */
asm(raise 1);
+#endif
 }
 
 /* We need to trampoline ourselves up into L1 since our linker
-- 
1.7.9.5


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


[U-Boot] [PATCH 04/16] Blackfin: Rsi: add support for bf609-ezkit

2012-08-07 Thread Bob Liu
From: Sonic Zhang sonic.zh...@analog.com

Add support for bf609-ezkit to board file and mmc driver.

Signed-off-by: Sonic Zhang sonic.zh...@analog.com
Signed-off-by: Bob Liu lliu...@gmail.com
---
 arch/blackfin/include/asm/config-pre.h   |4 ++
 arch/blackfin/include/asm/mach-common/bits/dma.h |   47 +-
 arch/blackfin/include/asm/mach-common/bits/sdh.h |   38 -
 board/bf609-ezkit/bf609-ezkit.c  |7 
 drivers/mmc/bfin_sdh.c   |   45 +++--
 include/configs/bf609-ezkit.h|9 -
 6 files changed, 132 insertions(+), 18 deletions(-)

diff --git a/arch/blackfin/include/asm/config-pre.h 
b/arch/blackfin/include/asm/config-pre.h
index 4ce67d4..88aa1da 100644
--- a/arch/blackfin/include/asm/config-pre.h
+++ b/arch/blackfin/include/asm/config-pre.h
@@ -31,6 +31,8 @@
 #define BFIN_BOOT_16HOST_DMA  11  /* boot ldr from 16-bit host dma */
 #define BFIN_BOOT_8HOST_DMA   12  /* boot ldr from 8-bit host dma */
 #define BFIN_BOOT_NAND13  /* boot ldr from nand flash */
+#define BFIN_BOOT_RSI_MASTER  14  /* boot ldr from rsi */
+#define BFIN_BOOT_LP_SLAVE15  /* boot ldr from link port */
 
 #ifndef __ASSEMBLY__
 static inline const char *get_bfin_boot_mode(int bfin_boot)
@@ -49,6 +51,8 @@ static inline const char *get_bfin_boot_mode(int bfin_boot)
case BFIN_BOOT_16HOST_DMA: return 16bit dma;
case BFIN_BOOT_8HOST_DMA:  return 8bit dma;
case BFIN_BOOT_NAND:   return nand flash;
+   case BFIN_BOOT_RSI_MASTER: return rsi master;
+   case BFIN_BOOT_LP_SLAVE:   return link port slave;
default:   return INVALID;
}
 }
diff --git a/arch/blackfin/include/asm/mach-common/bits/dma.h 
b/arch/blackfin/include/asm/mach-common/bits/dma.h
index ee209c6..1126c44 100644
--- a/arch/blackfin/include/asm/mach-common/bits/dma.h
+++ b/arch/blackfin/include/asm/mach-common/bits/dma.h
@@ -9,8 +9,48 @@
 #define DMAEN  0x0001  /* DMA Channel Enable */
 #define WNR0x0002  /* Channel Direction (W/R*) */
 #define WDSIZE_8   0x  /* Transfer Word Size = 8 */
+
+#ifdef CONFIG_BF60x
+
+#define PSIZE_80x  /* Transfer Word Size = 
16 */
+#define PSIZE_16   0x0010  /* Transfer Word Size = 16 */
+#define PSIZE_32   0x0020  /* Transfer Word Size = 32 */
+#define PSIZE_64   0x0030  /* Transfer Word Size = 32 */
+#define WDSIZE_16  0x0100  /* Transfer Word Size = 16 */
+#define WDSIZE_32  0x0200  /* Transfer Word Size = 32 */
+#define WDSIZE_64  0x0300  /* Transfer Word Size = 32 */
+#define WDSIZE_128 0x0400  /* Transfer Word Size = 32 */
+#define WDSIZE_256 0x0500  /* Transfer Word Size = 32 */
+#define DMA2D  0x0400  /* DMA Mode (2D/1D*) */
+#define RESTART0x0004  /* DMA Buffer Clear 
SYNC */
+#define DI_EN_X0x0010  /* Data Interrupt 
Enable in X count */
+#define DI_EN_Y0x0020  /* Data Interrupt 
Enable in Y count */
+#define DI_EN_P0x0030  /* Data Interrupt 
Enable in Peripheral */
+#define DI_EN  DI_EN_X /* Data Interrupt Enable */
+#define NDSIZE_0   0x  /* Next Descriptor Size = 0 
(Stop/Autobuffer) */
+#define NDSIZE_1   0x0001  /* Next Descriptor Size = 1 */
+#define NDSIZE_2   0x0002  /* Next Descriptor Size = 2 */
+#define NDSIZE_3   0x0003  /* Next Descriptor Size = 3 */
+#define NDSIZE_4   0x0004  /* Next Descriptor Size = 4 */
+#define NDSIZE_5   0x0005  /* Next Descriptor Size = 5 */
+#define NDSIZE_6   0x0006  /* Next Descriptor Size = 6 */
+#define NDSIZE 0x0007  /* Next Descriptor Size */
+#define NDSIZE_OFFSET  16  /* Next Descriptor Size Offset 
*/
+#define DMAFLOW_LIST   0x4000  /* Descriptor List Mode */
+#define DMAFLOW_ARRAY  0x5000  /* Descriptor Array Mode */
+#define DMAFLOW_LIST_DEMAND0x6000  /* Descriptor Demand List Mode 
*/
+#define DMAFLOW_ARRAY_DEMAND   0x7000  /* Descriptor Demand Array Mode 
*/
+#define DMA_RUN_DFETCH 0x0100  /* DMA Channel Running 
Indicator (DFETCH) */
+#define DMA_RUN0x0200  /* DMA Channel Running 
Indicator */
+#define DMA_RUN_WAIT_TRIG  0x0300  /* DMA Channel Running 
Indicator (WAIT TRIG) */
+#define DMA_RUN_WAIT_ACK   0x0400  /* DMA Channel Running 
Indicator (WAIT ACK) */
+
+#else
+
 #define WDSIZE_16  0x0004  /* Transfer Word Size = 16 */
 

[U-Boot] [PATCH 05/16] Blackfin: Paraflash: add support for bf609-ezkit

2012-08-07 Thread Bob Liu
Add paraflash support for bf609-ezkit to board file.

Signed-off-by: Bob Liu lliu...@gmail.com
---
 arch/blackfin/include/asm/mach-bf609/portmux.h |1 +
 board/bf609-ezkit/bf609-ezkit.c|8 +++---
 include/configs/bf609-ezkit.h  |   35 +++-
 include/configs/bfin_adi_common.h  |4 ++-
 4 files changed, 36 insertions(+), 12 deletions(-)

diff --git a/arch/blackfin/include/asm/mach-bf609/portmux.h 
b/arch/blackfin/include/asm/mach-bf609/portmux.h
index 1cf6fd8..757570f 100644
--- a/arch/blackfin/include/asm/mach-bf609/portmux.h
+++ b/arch/blackfin/include/asm/mach-bf609/portmux.h
@@ -241,6 +241,7 @@
 #define P_A23  (P_DEFINED | P_IDENT(GPIO_PB8) | P_FUNCT(0))
 #define P_A24  (P_DEFINED | P_IDENT(GPIO_PB10) | P_FUNCT(0))
 #define P_A25  (P_DEFINED | P_IDENT(GPIO_PB11) | P_FUNCT(0))
+#define P_NORCK (P_DEFINED | P_IDENT(GPIO_PB0) | P_FUNCT(0))
 
 #define P_AMS1 (P_DEFINED | P_IDENT(GPIO_PB1) | P_FUNCT(0))
 #define P_AMS2 (P_DEFINED | P_IDENT(GPIO_PB4) | P_FUNCT(0))
diff --git a/board/bf609-ezkit/bf609-ezkit.c b/board/bf609-ezkit/bf609-ezkit.c
index 398a6b0..d701c36 100644
--- a/board/bf609-ezkit/bf609-ezkit.c
+++ b/board/bf609-ezkit/bf609-ezkit.c
@@ -22,11 +22,11 @@ int checkboard(void)
 int board_early_init_f(void)
 {
static const unsigned short pins[] = {
-   P_A4, P_A5, P_A6, P_A7, P_A8, P_A9, P_A10, P_A11, P_A12, P_A13,
-   P_A14, P_A15, P_A16, P_A17, P_A18, P_A19, P_A20, P_A21, P_A22,
-   P_A23, P_A24, P_A25, P_AMS1, P_ABE0, P_ABE1, 0,
+   P_A3, P_A4, P_A5, P_A6, P_A7, P_A8, P_A9, P_A10, P_A11, P_A12,
+   P_A13, P_A14, P_A15, P_A16, P_A17, P_A18, P_A19, P_A20, P_A21,
+   P_A22, P_A23, P_A24, P_A25, P_NORCK, 0,
};
-   peripheral_request_list(pins, smc);
+   peripheral_request_list(pins, smc0);
 
return 0;
 }
diff --git a/include/configs/bf609-ezkit.h b/include/configs/bf609-ezkit.h
index 4dcfeca..91b0cf3 100644
--- a/include/configs/bf609-ezkit.h
+++ b/include/configs/bf609-ezkit.h
@@ -68,9 +68,9 @@
 #define CONFIG_MEM_SIZE128
 
 #define CONFIG_SMC_GCTL_VAL0x0010
-#define CONFIG_SMC_B1CTL_VAL   0x01002001
-#define CONFIG_SMC_B1TIM_VAL   0x08070977
-#define CONFIG_SMC_B1ETIM_VAL  0x00092231
+#define CONFIG_SMC_B0CTL_VAL   0x01007011
+#define CONFIG_SMC_B0TIM_VAL   0x08170977
+#define CONFIG_SMC_B0ETIM_VAL  0x00092231
 
 #define CONFIG_SYS_MONITOR_LEN (512 * 1024)
 #define CONFIG_SYS_MALLOC_LEN  (256 * 1024)
@@ -107,14 +107,35 @@
 #define CONFIG_SYS_FLASH_PROTECTION
 #define CONFIG_SYS_MAX_FLASH_BANKS 1
 #define CONFIG_SYS_MAX_FLASH_SECT  131
+#define CONFIG_CFI_FLASH_USE_WEAK_ACCESSORS
 
 /*
  * Env Storage Settings
  */
-#define CONFIG_ENV_IS_NOWHERE
-#define CONFIG_ENV_SIZE 0x600
-#undef CONFIG_CMD_EXPORTENV
-#undef CONFIG_CMD_IMPORTENV
+#if (CONFIG_BFIN_BOOT_MODE == BFIN_BOOT_SPI_MASTER)
+#define CONFIG_ENV_IS_IN_SPI_FLASH
+#define CONFIG_ENV_OFFSET   0x1
+#define CONFIG_ENV_SIZE 0x2000
+#define CONFIG_ENV_SECT_SIZE0x1
+#define CONFIG_ENV_IS_EMBEDDED_IN_LDR
+#elif (CONFIG_BFIN_BOOT_MODE == BFIN_BOOT_NAND)
+#define CONFIG_ENV_IS_IN_NAND
+#define CONFIG_ENV_OFFSET   0x6
+#define CONFIG_ENV_SIZE 0x2
+#else
+#define CONFIG_ENV_IS_IN_FLASH
+#define CONFIG_ENV_ADDR (CONFIG_SYS_FLASH_BASE + CONFIG_ENV_OFFSET)
+#define CONFIG_ENV_OFFSET   0x8000
+#define CONFIG_ENV_SIZE 0x8000
+#define CONFIG_ENV_SECT_SIZE0x8000
+#define CONFIG_ENV_IS_EMBEDDED_IN_LDR
+#define UBOOT_ENV_UPDATE \
+protect off 0xB000 +$(filesize); \
+erase 0xB000 +$(filesize); \
+cp.b $(loadaddr) 0xB000 $(filesize)
+#endif
+
+#define FLASHBOOT_ENV_SETTINGS flashboot=bootm 0xB010\0
 
 /*
  * SDH Settings
diff --git a/include/configs/bfin_adi_common.h 
b/include/configs/bfin_adi_common.h
index 5cec778..164e8ca 100644
--- a/include/configs/bfin_adi_common.h
+++ b/include/configs/bfin_adi_common.h
@@ -195,10 +195,12 @@
nand erase 0 0x4; \
nand write $(loadaddr) 0 0x4
 # else
-#  define UBOOT_ENV_UPDATE \
+#  ifndef UBOOT_ENV_UPDATE
+#   define UBOOT_ENV_UPDATE \
protect off 0x2000 +$(filesize); \
erase 0x2000 +$(filesize); \
cp.b $(loadaddr) 0x2000 $(filesize)
+#  endif
 # endif
 # ifdef CONFIG_NETCONSOLE
 #  define NETCONSOLE_ENV \
-- 
1.7.9.5


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


[U-Boot] [PATCH 10/16] Blackfin: Bf60x: Check card ready for each RSI command

2012-08-07 Thread Bob Liu
From: Sonic Zhang sonic.zh...@analog.com

Set up RSI data before sending RSI command if data is applicable.

Signed-off-by: Sonic Zhang sonic.zh...@analog.com
Signed-off-by: Bob Liu lliu...@gmail.com
---
 drivers/mmc/bfin_sdh.c |   23 ---
 1 file changed, 20 insertions(+), 3 deletions(-)

diff --git a/drivers/mmc/bfin_sdh.c b/drivers/mmc/bfin_sdh.c
index 4dd9b78..f22429a 100644
--- a/drivers/mmc/bfin_sdh.c
+++ b/drivers/mmc/bfin_sdh.c
@@ -79,6 +79,9 @@ sdh_send_cmd(struct mmc *mmc, struct mmc_cmd *mmc_cmd)
sdh_cmd |= CMD_RSP;
if (flags  MMC_RSP_136)
sdh_cmd |= CMD_L_RSP;
+#ifdef RSI_BLKSZ
+   sdh_cmd |= CMD_DATA0_BUSY;
+#endif
 
bfin_write_SDH_ARGUMENT(arg);
bfin_write_SDH_COMMAND(sdh_cmd);
@@ -113,6 +116,12 @@ sdh_send_cmd(struct mmc *mmc, struct mmc_cmd *mmc_cmd)
 
bfin_write_SDH_STATUS_CLR(CMD_SENT_STAT | CMD_RESP_END_STAT |
CMD_TIMEOUT_STAT | CMD_CRC_FAIL_STAT);
+#ifdef RSI_BLKSZ
+   /* wait till card ready */
+   while (!(bfin_read_RSI_ESTAT()  SD_CARD_READY))
+   ;
+   bfin_write_RSI_ESTAT(SD_CARD_READY);
+#endif
 
return ret;
 }
@@ -122,7 +131,6 @@ static int sdh_setup_data(struct mmc *mmc, struct mmc_data 
*data)
 {
u16 data_ctl = 0;
u16 dma_cfg = 0;
-   int ret = 0;
unsigned long data_size = data-blocksize * data-blocks;
 
/* Don't support write yet. */
@@ -150,7 +158,7 @@ static int sdh_setup_data(struct mmc *mmc, struct mmc_data 
*data)
/* kick off transfer */
bfin_write_SDH_DATA_CTL(bfin_read_SDH_DATA_CTL() | DTX_DMA_E | DTX_E);
 
-   return ret;
+   return 0;
 }
 
 
@@ -160,15 +168,23 @@ static int bfin_sdh_request(struct mmc *mmc, struct 
mmc_cmd *cmd,
u32 status;
int ret = 0;
 
+   if (data) {
+   ret = sdh_setup_data(mmc, data);
+   if (ret)
+   return ret;
+   }
+
ret = sdh_send_cmd(mmc, cmd);
if (ret) {
bfin_write_SDH_COMMAND(0);
+   bfin_write_DMA_CONFIG(0);
+   bfin_write_SDH_DATA_CTL(0);
SSYNC();
printf(sending CMD%d failed\n, cmd-cmdidx);
return ret;
}
+
if (data) {
-   ret = sdh_setup_data(mmc, data);
do {
udelay(1);
status = bfin_read_SDH_STATUS();
@@ -253,6 +269,7 @@ static int bfin_sdh_init(struct mmc *mmc)
bfin_write_SDH_PWR_CTL(PWR_ON | ROD_CTL);
 #else
bfin_write_SDH_CFG(bfin_read_SDH_CFG() | PWR_ON);
+#endif
return 0;
 }
 
-- 
1.7.9.5


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


[U-Boot] [PATCH 07/16] Blackfin: Spi: add bf6xx spi driver

2012-08-07 Thread Bob Liu
From: Scott Jiang scott.jiang.li...@gmail.com

Spi driver for bf60x is different from old one, so implement a new
driver for it.

Signed-off-by: Scott Jiang scott.jiang.li...@gmail.com
Signed-off-by: Sonic Zhang sonic.zh...@analog.com
Signed-off-by: Bob Liu lliu...@gmail.com
---
 .../blackfin/include/asm/mach-common/bits/spi6xx.h |  240 +++
 drivers/spi/Makefile   |1 +
 drivers/spi/bfin_spi6xx.c  |  308 
 include/configs/bf609-ezkit.h  |9 +
 4 files changed, 558 insertions(+)
 create mode 100644 arch/blackfin/include/asm/mach-common/bits/spi6xx.h
 create mode 100644 drivers/spi/bfin_spi6xx.c

diff --git a/arch/blackfin/include/asm/mach-common/bits/spi6xx.h 
b/arch/blackfin/include/asm/mach-common/bits/spi6xx.h
new file mode 100644
index 000..535a24a
--- /dev/null
+++ b/arch/blackfin/include/asm/mach-common/bits/spi6xx.h
@@ -0,0 +1,240 @@
+/*
+ * Analog Devices SPI3 controller driver
+ *
+ * Copyright (c) 2011 Analog Devices Inc.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License version 2 as
+ * published by the Free Software Foundation.
+ *
+ * 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., 675 Mass Ave, Cambridge, MA 02139, USA.
+ */
+
+#ifndef _SPI_CHANNEL_H_
+#define _SPI_CHANNEL_H_
+
+#include linux/types.h
+
+/* SPI_CONTROL */
+#define SPI_CTL_EN  0x0001/* Enable */
+#define SPI_CTL_MSTR0x0002/* Master/Slave */
+#define SPI_CTL_PSSE0x0004/* controls modf error in 
master mode */
+#define SPI_CTL_ODM 0x0008/* Open Drain Mode */
+#define SPI_CTL_CPHA0x0010/* Clock Phase */
+#define SPI_CTL_CPOL0x0020/* Clock Polarity */
+#define SPI_CTL_ASSEL   0x0040/* Slave Select Pin Control 
*/
+#define SPI_CTL_SELST   0x0080/* Slave Select Polarity 
in-between transfers */
+#define SPI_CTL_EMISO   0x0100/* Enable MISO */
+#define SPI_CTL_SIZE0x0600/* Word Transfer Size */
+#define SPI_CTL_SIZE08  0x/* SIZE: 8 bits */
+#define SPI_CTL_SIZE16  0x0200/* SIZE: 16 bits */
+#define SPI_CTL_SIZE32  0x0400/* SIZE: 32 bits */
+#define SPI_CTL_LSBF0x1000/* LSB First */
+#define SPI_CTL_FCEN0x2000/* Flow-Control Enable */
+#define SPI_CTL_FCCH0x4000/* Flow-Control Channel 
Selection */
+#define SPI_CTL_FCPL0x8000/* Flow-Control Polarity */
+#define SPI_CTL_FCWM0x0003/* Flow-Control Water-Mark */
+#define SPI_CTL_FIFO0   0x/* FCWM: TFIFO empty or 
RFIFO Full */
+#define SPI_CTL_FIFO1   0x0001/* FCWM: TFIFO 75% or more 
empty or RFIFO 75% or more full */
+#define SPI_CTL_FIFO2   0x0002/* FCWM: TFIFO 50% or more 
empty or RFIFO 50% or more full */
+#define SPI_CTL_FMODE   0x0004/* Fast-mode Enable */
+#define SPI_CTL_MIOM0x0030/* Multiple I/O Mode */
+#define SPI_CTL_MIO_DIS 0x/* MIOM: Disable */
+#define SPI_CTL_MIO_DUAL0x0010/* MIOM: Enable DIOM (Dual 
I/O Mode) */
+#define SPI_CTL_MIO_QUAD0x0020/* MIOM: Enable QUAD (Quad 
SPI Mode) */
+#define SPI_CTL_SOSI0x0040/* Start on MOSI */
+/* SPI_RX_CONTROL */
+#define SPI_RXCTL_REN   0x0001/* Receive Channel Enable */
+#define SPI_RXCTL_RTI   0x0004/* Receive Transfer Initiate 
*/
+#define SPI_RXCTL_RWCEN 0x0008/* Receive Word Counter 
Enable */
+#define SPI_RXCTL_RDR   0x0070/* Receive Data Request */
+#define SPI_RXCTL_RDR_DIS   0x/* RDR: Disabled */
+#define SPI_RXCTL_RDR_NE0x0010/* RDR: RFIFO not empty */
+#define SPI_RXCTL_RDR_250x0020/* RDR: RFIFO 25% full */
+#define SPI_RXCTL_RDR_500x0030/* RDR: RFIFO 50% full */
+#define SPI_RXCTL_RDR_750x0040/* RDR: RFIFO 75% full */
+#define SPI_RXCTL_RDR_FULL  0x0050/* RDR: RFIFO full */
+#define SPI_RXCTL_RDO   0x0100/* Receive Data Over-Run */
+#define SPI_RXCTL_RRWM  0x3000/* FIFO Regular Water-Mark */
+#define SPI_RXCTL_RWM_0 0x/* 

[U-Boot] [PATCH 16/16] Blackfin: update license to Clear BSD license.

2012-08-07 Thread Bob Liu
From: Sonic Zhang sonic.zh...@analog.com

Per the request from ADI Legal.

Signed-off-by: Sonic Zhang sonic.zh...@analog.com
Signed-off-by: Bob Liu lliu...@gmail.com
---
 arch/blackfin/Clear_BSD.txt|   33 
 arch/blackfin/cpu/bootcount.c  |2 +-
 arch/blackfin/cpu/os_log.c |2 +-
 arch/blackfin/include/asm/mach-bf506/anomaly.h |3 +--
 arch/blackfin/include/asm/mach-bf518/anomaly.h |3 +--
 arch/blackfin/include/asm/mach-bf527/anomaly.h |3 +--
 arch/blackfin/include/asm/mach-bf533/anomaly.h |3 +--
 arch/blackfin/include/asm/mach-bf537/anomaly.h |3 +--
 arch/blackfin/include/asm/mach-bf538/anomaly.h |3 +--
 arch/blackfin/include/asm/mach-bf548/anomaly.h |3 +--
 arch/blackfin/include/asm/mach-bf561/anomaly.h |3 +--
 arch/blackfin/include/asm/mach-bf609/anomaly.h |3 +--
 12 files changed, 44 insertions(+), 20 deletions(-)
 create mode 100644 arch/blackfin/Clear_BSD.txt

diff --git a/arch/blackfin/Clear_BSD.txt b/arch/blackfin/Clear_BSD.txt
new file mode 100644
index 000..bfa4b37
--- /dev/null
+++ b/arch/blackfin/Clear_BSD.txt
@@ -0,0 +1,33 @@
+The Clear BSD license:
+
+Copyright (c) 2012, Analog Devices, Inc.  All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted (subject to the limitations in the
+disclaimer below) provided that the following conditions are met:
+
+* Redistributions of source code must retain the above copyright
+   notice, this list of conditions and the following disclaimer.
+
+* Redistributions in binary form must reproduce the above copyright
+   notice, this list of conditions and the following disclaimer in the
+   documentation and/or other materials provided with the
+   distribution.
+
+* Neither the name of Analog Devices, Inc.  nor the names of its
+   contributors may be used to endorse or promote products derived
+   from this software without specific prior written permission.
+
+NO EXPRESS OR IMPLIED LICENSES TO ANY PARTY'S PATENT RIGHTS ARE
+GRANTED BY THIS LICENSE.  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT
+HOLDERS AND CONTRIBUTORS AS IS AND ANY EXPRESS OR IMPLIED
+WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
+BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE
+OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN
+IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
diff --git a/arch/blackfin/cpu/bootcount.c b/arch/blackfin/cpu/bootcount.c
index 6cf6dd5..83e8546 100644
--- a/arch/blackfin/cpu/bootcount.c
+++ b/arch/blackfin/cpu/bootcount.c
@@ -3,7 +3,7 @@
  *
  * Copyright (c) 2010 Analog Devices Inc.
  *
- * Licensed under the 2-clause BSD.
+ * Licensed under the Clear BSD.
  */
 
 /* This version uses one 32bit storage and combines the magic/count */
diff --git a/arch/blackfin/cpu/os_log.c b/arch/blackfin/cpu/os_log.c
index e1c8e29..51501f7 100644
--- a/arch/blackfin/cpu/os_log.c
+++ b/arch/blackfin/cpu/os_log.c
@@ -3,7 +3,7 @@
  *
  * Copyright (c) 2009 Analog Devices Inc.
  *
- * Licensed under the 2-clause BSD.
+ * Licensed under the Clear BSD.
  */
 
 #include common.h
diff --git a/arch/blackfin/include/asm/mach-bf506/anomaly.h 
b/arch/blackfin/include/asm/mach-bf506/anomaly.h
index 5b3227a..00d5e43 100644
--- a/arch/blackfin/include/asm/mach-bf506/anomaly.h
+++ b/arch/blackfin/include/asm/mach-bf506/anomaly.h
@@ -6,8 +6,7 @@
  * DO NOT EDIT THIS FILE
  *
  * Copyright 2004-2011 Analog Devices Inc.
- * Licensed under the ADI BSD license.
- *   https://docs.blackfin.uclinux.org/doku.php?id=adi_bsd
+ * Licensed under the Clear BSD license.
  */
 
 /* This file should be up to date with:
diff --git a/arch/blackfin/include/asm/mach-bf518/anomaly.h 
b/arch/blackfin/include/asm/mach-bf518/anomaly.h
index 56383f7..845e6bc 100644
--- a/arch/blackfin/include/asm/mach-bf518/anomaly.h
+++ b/arch/blackfin/include/asm/mach-bf518/anomaly.h
@@ -6,8 +6,7 @@
  * DO NOT EDIT THIS FILE
  *
  * Copyright 2004-2011 Analog Devices Inc.
- * Licensed under the ADI BSD license.
- *   https://docs.blackfin.uclinux.org/doku.php?id=adi_bsd
+ * Licensed under the Clear BSD license.
  */
 
 /* This file should be up to date with:
diff --git a/arch/blackfin/include/asm/mach-bf527/anomaly.h 
b/arch/blackfin/include/asm/mach-bf527/anomaly.h
index 6884706..aa14110 100644
--- a/arch/blackfin/include/asm/mach-bf527/anomaly.h
+++ b/arch/blackfin/include/asm/mach-bf527/anomaly.h
@@ -6,8 +6,7 @@
  * DO NOT EDIT THIS FILE
  *
  * Copyright 2004-2011 Analog Devices Inc.
- * 

[U-Boot] [PATCH 14/16] Blackfin: setup SMC if user desires it

2012-08-07 Thread Bob Liu
From: Mike Frysinger vap...@gentoo.org

The static memory controller is how people connect flashes to newer
Blackfin processors, so add knobs for people to program settings if
they so desire.

Signed-off-by: Mike Frysinger vap...@gentoo.org
Signed-off-by: Sonic Zhang sonic.zh...@analog.com
Signed-off-by: Bob Liu lliu...@gmail.com
---
 arch/blackfin/cpu/initcode.h |   51 ++
 1 file changed, 47 insertions(+), 4 deletions(-)

diff --git a/arch/blackfin/cpu/initcode.h b/arch/blackfin/cpu/initcode.h
index d263ab3..0b8c033 100644
--- a/arch/blackfin/cpu/initcode.h
+++ b/arch/blackfin/cpu/initcode.h
@@ -50,13 +50,12 @@ program_async_controller(ADI_BOOT_DATA *bs)
serial_putc('a');
 
 #ifdef __ADSPBF60x__
-
-#else /* __ADSPBF60x__ */
-
/* Program the async banks controller. */
+#ifdef EBIU_AMGCTL
bfin_write_EBIU_AMBCTL0(CONFIG_EBIU_AMBCTL0_VAL);
bfin_write_EBIU_AMBCTL1(CONFIG_EBIU_AMBCTL1_VAL);
bfin_write_EBIU_AMGCTL(CONFIG_EBIU_AMGCTL_VAL);
+#endif
 
serial_putc('b');
 
@@ -73,8 +72,52 @@ program_async_controller(ADI_BOOT_DATA *bs)
 # endif
 #endif
 
-#endif
serial_putc('c');
+
+#else  /* __ADSPBF60x__ */
+   /* Program the static memory controller. */
+# ifdef CONFIG_SMC_GCTL_VAL
+   bfin_write_SMC_GCTL(CONFIG_SMC_GCTL_VAL);
+# endif
+# ifdef CONFIG_SMC_B0CTL_VAL
+   bfin_write_SMC_B0CTL(CONFIG_SMC_B0CTL_VAL);
+# endif
+# ifdef CONFIG_SMC_B0TIM_VAL
+   bfin_write_SMC_B0TIM(CONFIG_SMC_B0TIM_VAL);
+# endif
+# ifdef CONFIG_SMC_B0ETIM_VAL
+   bfin_write_SMC_B0ETIM(CONFIG_SMC_B0ETIM_VAL);
+# endif
+# ifdef CONFIG_SMC_B1CTL_VAL
+   bfin_write_SMC_B1CTL(CONFIG_SMC_B1CTL_VAL);
+# endif
+# ifdef CONFIG_SMC_B1TIM_VAL
+   bfin_write_SMC_B1TIM(CONFIG_SMC_B1TIM_VAL);
+# endif
+# ifdef CONFIG_SMC_B1ETIM_VAL
+   bfin_write_SMC_B1ETIM(CONFIG_SMC_B1ETIM_VAL);
+# endif
+# ifdef CONFIG_SMC_B2CTL_VAL
+   bfin_write_SMC_B2CTL(CONFIG_SMC_B2CTL_VAL);
+# endif
+# ifdef CONFIG_SMC_B2TIM_VAL
+   bfin_write_SMC_B2TIM(CONFIG_SMC_B2TIM_VAL);
+# endif
+# ifdef CONFIG_SMC_B2ETIM_VAL
+   bfin_write_SMC_B2ETIM(CONFIG_SMC_B2ETIM_VAL);
+# endif
+# ifdef CONFIG_SMC_B3CTL_VAL
+   bfin_write_SMC_B3CTL(CONFIG_SMC_B3CTL_VAL);
+# endif
+# ifdef CONFIG_SMC_B3TIM_VAL
+   bfin_write_SMC_B3TIM(CONFIG_SMC_B3TIM_VAL);
+# endif
+# ifdef CONFIG_SMC_B3ETIM_VAL
+   bfin_write_SMC_B3ETIM(CONFIG_SMC_B3ETIM_VAL);
+# endif
+
+#endif
+   serial_putc('d');
 }
 
 #endif
-- 
1.7.9.5


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


[U-Boot] [PATCH 15/16] Blackfin: Bf60x: add resume from hibernate

2012-08-07 Thread Bob Liu
From: Steven Miao real...@gmail.com

Add Bf60x resume from hibernate support

Signed-off-by: Steven Miao real...@gmail.com
Signed-off-by: Sonic Zhang sonic.zh...@analog.com
Signed-off-by: Bob Liu lliu...@gmail.com
---
 arch/blackfin/cpu/initcode.c |   46 ++
 1 file changed, 46 insertions(+)

diff --git a/arch/blackfin/cpu/initcode.c b/arch/blackfin/cpu/initcode.c
index c68302f..0640c81 100644
--- a/arch/blackfin/cpu/initcode.c
+++ b/arch/blackfin/cpu/initcode.c
@@ -507,6 +507,11 @@ maybe_self_refresh(ADI_BOOT_DATA *bs)
return false;
 
 #ifdef __ADSPBF60x__
+   /* resume from hibernate, return false let ddr initialize */
+   if ((bfin_read32(DPM0_STAT)  0xF0) == 0x50) {
+   serial_putc('b');
+   return false;
+   }
 
 #else /* __ADSPBF60x__ */
 
@@ -821,6 +826,7 @@ program_memory_controller(ADI_BOOT_DATA *bs, bool 
put_into_srfs)
while (!(bfin_read_DMC0_STAT()  DLLCALDONE))
continue;
serial_putc('!');
+
 #else /* __ADSPBF60x__ */
 
/* Program the external memory controller before we come out of
@@ -888,7 +894,46 @@ check_hibernation(ADI_BOOT_DATA *bs, u16 vr_ctl, bool 
put_into_srfs)
return;
 
serial_putc('b');
+#ifdef __ADSPBF60x__
+   if (bfin_read32(DPM0_RESTORE0) != 0) {
+   uint32_t reg = bfin_read_DMC0_CTL();
+   reg = ~0x8;
+   bfin_write_DMC0_CTL(reg);
+
+   while ((bfin_read_DMC0_STAT()  0x8))
+   continue;
+   while (!(bfin_read_DMC0_STAT()  0x1))
+   continue;
+
+   serial_putc('z');
+   volatile uint32_t *hibernate_magic = bfin_read32(DPM0_RESTORE4);
+   __builtin_bfin_ssync(); /* make sure memory controller is done 
*/
+   if (hibernate_magic[0] == 0xDEADBEEF) {
+   serial_putc('c');
+
+   __builtin_bfin_ssync();
+
+   bfin_write_EVT15(hibernate_magic[1]);
+   bfin_write_IMASK(EVT_IVG15);
+   __asm__ __volatile__ (
+   /* load reti early to avoid anomaly 281 */
+   reti = %2;
+   /* clear hibernate magic */
+   [%0] = %1;
+   /* load stack pointer */
+   SP = [%0 + 8];
+   /* lower ourselves from reset ivg to ivg15 */
+   raise 15;
+   nop;nop;nop;
+   rti;
+   :
+   : p(hibernate_magic), d(0x2000 /* jump.s 0 
*/), d(0xffa0)
+   );
+   }
 
+
+   }
+#else
/* Are we coming out of hibernate (suspend to memory) ?
 * The memory layout is:
 * 0x0: hibernate magic for anomaly 307 (0xDEADBEEF)
@@ -920,6 +965,7 @@ check_hibernation(ADI_BOOT_DATA *bs, u16 vr_ctl, bool 
put_into_srfs)
}
serial_putc('d');
}
+#endif
 
serial_putc('e');
 }
-- 
1.7.9.5


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


[U-Boot] patman patches

2012-08-07 Thread Ilya Yanok
Hi guys,

Is it a good place to post patman patches? Or should I go to some chromium
list?

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


Re: [U-Boot] patman patches

2012-08-07 Thread Stefano Babic
On 07/08/2012 10:54, Ilya Yanok wrote:
 Hi guys,
 

Hi Ilya,

 Is it a good place to post patman patches? Or should I go to some chromium
 list?

IMHO here is the best place, patman is integrated in u-boot and your
patches can be discussed on this ML - my 2 cents.

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-53 Fax: +49-8142-66989-80 Email: sba...@denx.de
=
___
U-Boot mailing list
U-Boot@lists.denx.de
http://lists.denx.de/mailman/listinfo/u-boot


Re: [U-Boot] patman patches

2012-08-07 Thread Ilya Yanok
Hi Stefano,

On Tue, Aug 7, 2012 at 12:57 PM, Stefano Babic sba...@denx.de wrote:

 On 07/08/2012 10:54, Ilya Yanok wrote:
  Hi guys,
 

 Hi Ilya,

  Is it a good place to post patman patches? Or should I go to some
 chromium
  list?

 IMHO here is the best place, patman is integrated in u-boot and your
 patches can be discussed on this ML - my 2 cents.


Ok, I'll post some then.

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


Re: [U-Boot] [PATCH v1 1/6] mxs: reorganize source directory for easy sharing of code in i.MXS SoCs

2012-08-07 Thread Stefano Babic
On 05/08/2012 21:05, Otavio Salvador wrote:
 Most code can be shared between i.MX23 and i.MX28 as both are from
 i.MXS family; this source directory structure makes easy to share code
 among them.
 
 Signed-off-by: Otavio Salvador ota...@ossystems.com.br
 ---

Whole series applied to u-boot-imx, thanks.

Best regards,
Stefano Babic

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


Re: [U-Boot] [PATCH 1/4] MX28: Fix up the MMC driver DMA mode

2012-08-07 Thread Stefano Babic
On 07/07/2012 09:25, Marek Vasut wrote:
 The DMA mode didn't properly configure the DMA_ENABLE bit in CTRL1.
 Also, it was using SSP0 DMA channel for all SSP devices.
 
 Signed-off-by: Marek Vasut ma...@denx.de
 Cc: Wolfgang Denk w...@denx.de
 Cc: Stefano Babic sba...@denx.de
 Cc: Fabio Estevam feste...@freescale.com
 Cc: Andy Fleming aflem...@freescale.com
 ---

Whole series applied to u-boot-imx, thanks.

Best regards,
Stefano Babic

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


[U-Boot] [PATCH 1/2] ARM: OMAP4/5: Remove dead code against CONFIG_SYS_CLOCKS_ENABLE_ALL

2012-08-07 Thread Jassi Brar
The commit
 f3f98bb0 : ARM: OMAP4/5: Do not configure non essential pads, clocks, dplls
removed the config option aimed towards moving that stuff into kernel, which
renders some code unreachable. Remove that code.

Signed-off-by: Jassi Brar jaswinder.si...@linaro.org
---
Hi,
 The commit f3f98bb0 seems to suggest we want to move these settings
into the kernel, but perhaps we should also evaluate the option of
making these inits fully board specific but in u-boot?

Thanks.

 arch/arm/cpu/armv7/omap-common/clocks-common.c |   47 -
 arch/arm/cpu/armv7/omap4/clocks.c  |   84 ---
 arch/arm/cpu/armv7/omap5/clocks.c  |   87 
 arch/arm/include/asm/arch-omap4/clocks.h   |1 -
 arch/arm/include/asm/arch-omap5/clocks.h   |1 -
 5 files changed, 0 insertions(+), 220 deletions(-)

diff --git a/arch/arm/cpu/armv7/omap-common/clocks-common.c 
b/arch/arm/cpu/armv7/omap-common/clocks-common.c
index b1fd277..fc14465 100644
--- a/arch/arm/cpu/armv7/omap-common/clocks-common.c
+++ b/arch/arm/cpu/armv7/omap-common/clocks-common.c
@@ -326,49 +326,6 @@ static void setup_dplls(void)
 #endif
 }
 
-#ifdef CONFIG_SYS_CLOCKS_ENABLE_ALL
-static void setup_non_essential_dplls(void)
-{
-   u32 abe_ref_clk;
-   const struct dpll_params *params;
-
-   /* IVA */
-   clrsetbits_le32(prcm-cm_bypclk_dpll_iva,
-   CM_BYPCLK_DPLL_IVA_CLKSEL_MASK, DPLL_IVA_CLKSEL_CORE_X2_DIV_2);
-
-   params = get_iva_dpll_params();
-   do_setup_dpll(prcm-cm_clkmode_dpll_iva, params, DPLL_LOCK, iva);
-
-   /* Configure ABE dpll */
-   params = get_abe_dpll_params();
-#ifdef CONFIG_SYS_OMAP_ABE_SYSCK
-   abe_ref_clk = CM_ABE_PLL_REF_CLKSEL_CLKSEL_SYSCLK;
-#else
-   abe_ref_clk = CM_ABE_PLL_REF_CLKSEL_CLKSEL_32KCLK;
-   /*
-* We need to enable some additional options to achieve
-* 196.608MHz from 32768 Hz
-*/
-   setbits_le32(prcm-cm_clkmode_dpll_abe,
-   CM_CLKMODE_DPLL_DRIFTGUARD_EN_MASK|
-   CM_CLKMODE_DPLL_RELOCK_RAMP_EN_MASK|
-   CM_CLKMODE_DPLL_LPMODE_EN_MASK|
-   CM_CLKMODE_DPLL_REGM4XEN_MASK);
-   /* Spend 4 REFCLK cycles at each stage */
-   clrsetbits_le32(prcm-cm_clkmode_dpll_abe,
-   CM_CLKMODE_DPLL_RAMP_RATE_MASK,
-   1  CM_CLKMODE_DPLL_RAMP_RATE_SHIFT);
-#endif
-
-   /* Select the right reference clk */
-   clrsetbits_le32(prcm-cm_abe_pll_ref_clksel,
-   CM_ABE_PLL_REF_CLKSEL_CLKSEL_MASK,
-   abe_ref_clk  CM_ABE_PLL_REF_CLKSEL_CLKSEL_SHIFT);
-   /* Lock the dpll */
-   do_setup_dpll(prcm-cm_clkmode_dpll_abe, params, DPLL_LOCK, abe);
-}
-#endif
-
 void do_scale_tps62361(int gpio, u32 reg, u32 volt_mv)
 {
u32 step;
@@ -584,10 +541,6 @@ void prcm_init(void)
enable_basic_clocks();
scale_vcores();
setup_dplls();
-#ifdef CONFIG_SYS_CLOCKS_ENABLE_ALL
-   setup_non_essential_dplls();
-   enable_non_essential_clocks();
-#endif
break;
default:
break;
diff --git a/arch/arm/cpu/armv7/omap4/clocks.c 
b/arch/arm/cpu/armv7/omap4/clocks.c
index 5bd0a88..b3fc652 100644
--- a/arch/arm/cpu/armv7/omap4/clocks.c
+++ b/arch/arm/cpu/armv7/omap4/clocks.c
@@ -431,87 +431,3 @@ void enable_basic_uboot_clocks(void)
 clk_modules_explicit_en_essential,
 1);
 }
-
-/*
- * Enable non-essential clock domains, modules and
- * do some additional special settings needed
- */
-void enable_non_essential_clocks(void)
-{
-   u32 *const clk_domains_non_essential[] = {
-   prcm-cm_mpu_m3_clkstctrl,
-   prcm-cm_ivahd_clkstctrl,
-   prcm-cm_dsp_clkstctrl,
-   prcm-cm_dss_clkstctrl,
-   prcm-cm_sgx_clkstctrl,
-   prcm-cm1_abe_clkstctrl,
-   prcm-cm_c2c_clkstctrl,
-   prcm-cm_cam_clkstctrl,
-   prcm-cm_dss_clkstctrl,
-   prcm-cm_sdma_clkstctrl,
-   0
-   };
-
-   u32 *const clk_modules_hw_auto_non_essential[] = {
-   prcm-cm_l3instr_l3_3_clkctrl,
-   prcm-cm_l3instr_l3_instr_clkctrl,
-   prcm-cm_l3instr_intrconn_wp1_clkctrl,
-   prcm-cm_l3init_hsi_clkctrl,
-   0
-   };
-
-   u32 *const clk_modules_explicit_en_non_essential[] = {
-   prcm-cm1_abe_aess_clkctrl,
-   prcm-cm1_abe_pdm_clkctrl,
-   prcm-cm1_abe_dmic_clkctrl,
-   prcm-cm1_abe_mcasp_clkctrl,
-   prcm-cm1_abe_mcbsp1_clkctrl,
-   prcm-cm1_abe_mcbsp2_clkctrl,
-   prcm-cm1_abe_mcbsp3_clkctrl,
-   prcm-cm1_abe_slimbus_clkctrl,
-   prcm-cm1_abe_timer5_clkctrl,
-   prcm-cm1_abe_timer6_clkctrl,
- 

[U-Boot] [PATCH 2/2] ARM: OMAP4/5: Remove dead code against CONFIG_SYS_ENABLE_PADS_ALL

2012-08-07 Thread Jassi Brar
The commit
f3f98bb0 : ARM: OMAP4/5: Do not configure non essential pads, clocks, dplls
removed the config option aimed towards moving that stuff into kernel, which
renders some code unreachable. Remove that code.

Signed-off-by: Jassi Brar jaswinder.si...@linaro.org
---
 arch/arm/cpu/armv7/omap-common/hwinit-common.c |6 -
 arch/arm/include/asm/arch-omap4/sys_proto.h|1 -
 arch/arm/include/asm/arch-omap5/sys_proto.h|1 -
 board/ti/omap5_evm/evm.c   |   11 -
 board/ti/omap5_evm/mux_data.h  |  234 
 board/ti/panda/panda.c |   28 ---
 board/ti/panda/panda_mux_data.h|  186 ---
 board/ti/sdp4430/sdp.c |   18 --
 board/ti/sdp4430/sdp4430_mux_data.h|  197 
 9 files changed, 0 insertions(+), 682 deletions(-)

diff --git a/arch/arm/cpu/armv7/omap-common/hwinit-common.c 
b/arch/arm/cpu/armv7/omap-common/hwinit-common.c
index 459ebb5..077fc27 100644
--- a/arch/arm/cpu/armv7/omap-common/hwinit-common.c
+++ b/arch/arm/cpu/armv7/omap-common/hwinit-common.c
@@ -51,16 +51,10 @@ static void set_mux_conf_regs(void)
set_muxconf_regs_essential();
break;
case OMAP_INIT_CONTEXT_UBOOT_AFTER_SPL:
-#ifdef CONFIG_SYS_ENABLE_PADS_ALL
-   set_muxconf_regs_non_essential();
-#endif
break;
case OMAP_INIT_CONTEXT_UBOOT_FROM_NOR:
case OMAP_INIT_CONTEXT_UBOOT_AFTER_CH:
set_muxconf_regs_essential();
-#ifdef CONFIG_SYS_ENABLE_PADS_ALL
-   set_muxconf_regs_non_essential();
-#endif
break;
}
 }
diff --git a/arch/arm/include/asm/arch-omap4/sys_proto.h 
b/arch/arm/include/asm/arch-omap4/sys_proto.h
index d633573..90befa1 100644
--- a/arch/arm/include/asm/arch-omap4/sys_proto.h
+++ b/arch/arm/include/asm/arch-omap4/sys_proto.h
@@ -37,7 +37,6 @@ void watchdog_init(void);
 u32 get_device_type(void);
 void do_set_mux(u32 base, struct pad_conf_entry const *array, int size);
 void set_muxconf_regs_essential(void);
-void set_muxconf_regs_non_essential(void);
 void sr32(void *, u32, u32, u32);
 u32 wait_on_value(u32, u32, void *, u32);
 void sdelay(unsigned long);
diff --git a/arch/arm/include/asm/arch-omap5/sys_proto.h 
b/arch/arm/include/asm/arch-omap5/sys_proto.h
index 74feb90..9a49393 100644
--- a/arch/arm/include/asm/arch-omap5/sys_proto.h
+++ b/arch/arm/include/asm/arch-omap5/sys_proto.h
@@ -38,7 +38,6 @@ void watchdog_init(void);
 u32 get_device_type(void);
 void do_set_mux(u32 base, struct pad_conf_entry const *array, int size);
 void set_muxconf_regs_essential(void);
-void set_muxconf_regs_non_essential(void);
 void sr32(void *, u32, u32, u32);
 u32 wait_on_value(u32, u32, void *, u32);
 void sdelay(unsigned long);
diff --git a/board/ti/omap5_evm/evm.c b/board/ti/omap5_evm/evm.c
index c8dfdf8..4b61819 100644
--- a/board/ti/omap5_evm/evm.c
+++ b/board/ti/omap5_evm/evm.c
@@ -80,17 +80,6 @@ void set_muxconf_regs_essential(void)
   sizeof(struct pad_conf_entry));
 }
 
-void set_muxconf_regs_non_essential(void)
-{
-   do_set_mux(CONTROL_PADCONF_CORE, core_padconf_array_non_essential,
-  sizeof(core_padconf_array_non_essential) /
-  sizeof(struct pad_conf_entry));
-
-   do_set_mux(CONTROL_PADCONF_WKUP, wkup_padconf_array_non_essential,
-  sizeof(wkup_padconf_array_non_essential) /
-  sizeof(struct pad_conf_entry));
-}
-
 #if !defined(CONFIG_SPL_BUILD)  defined(CONFIG_GENERIC_MMC)
 int board_mmc_init(bd_t *bis)
 {
diff --git a/board/ti/omap5_evm/mux_data.h b/board/ti/omap5_evm/mux_data.h
index a82795d..c5af6cd 100644
--- a/board/ti/omap5_evm/mux_data.h
+++ b/board/ti/omap5_evm/mux_data.h
@@ -67,238 +67,4 @@ const struct pad_conf_entry wkup_padconf_array_essential[] 
= {
 
 };
 
-const struct pad_conf_entry core_padconf_array_non_essential[] = {
-
-   {C2C_DATAIN0, (IEN | M0)},/*  C2C_DATAIN0   */
-   {C2C_DATAIN1, (IEN | M0)},/*  C2C_DATAIN1   */
-   {C2C_DATAIN2, (IEN | M0)},/*  C2C_DATAIN2   */
-   {C2C_DATAIN3, (IEN | M0)},/*  C2C_DATAIN3   */
-   {C2C_DATAIN4, (IEN | M0)},/*  C2C_DATAIN4   */
-   {C2C_DATAIN5, (IEN | M0)},/*  C2C_DATAIN5   */
-   {C2C_DATAIN6, (IEN | M0)},/*  C2C_DATAIN6   */
-   {C2C_DATAIN7, (IEN | M0)},/*  C2C_DATAIN7   */
-   {C2C_CLKIN1,  (IEN | M0)},/*  C2C_CLKIN1*/
-   {C2C_CLKIN0,  (IEN | M0)},/*  C2C_CLKIN0*/
-   {C2C_CLKOUT0, (M0)},/*  C2C_CLKOUT0   */
-   {C2C_CLKOUT1, (M0)},/*  C2C_CLKOUT1   */
-   {C2C_DATAOUT0, (M0)},/*  C2C_DATAOUT0  */
-   {C2C_DATAOUT1, (M0)},/*  C2C_DATAOUT1  */
-   {C2C_DATAOUT2, (M0)},/*  C2C_DATAOUT2  */
-   {C2C_DATAOUT3, (M0)},/*  C2C_DATAOUT3  */
-   {C2C_DATAOUT4, (M0)},/*  C2C_DATAOUT4  */
-   {C2C_DATAOUT5, (M0)},/*  C2C_DATAOUT5  */

Re: [U-Boot] [PATCH 2/2] vision2: do not overwrite the console

2012-08-07 Thread Stefano Babic
On 05/08/2012 19:31, Fabio Estevam wrote:
 From: Fabio Estevam fabio.este...@freescale.com
 
 On this board, the console is always set to the serial line.
 Do not allow to overwrite it when video is enabled.
 
 Signed-off-by: Fabio Estevam fabio.este...@freescale.com
 ---

Applied to u-boot-imx, thanks.

Best regards,
Stefano Babic



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


Re: [U-Boot] [PATCH 1/2] mx51evk: do not overwrite the console

2012-08-07 Thread Stefano Babic
On 05/08/2012 19:31, Fabio Estevam wrote:
 From: Fabio Estevam fabio.este...@freescale.com
 
 On this board, the console is always set to the serial line.
 Do not allow to overwrite it when video is enabled.
 
 Signed-off-by: Fabio Estevam fabio.este...@freescale.com
 ---

Applied to u-boot-imx, thanks.

Best regards,
Stefano Babic


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


Re: [U-Boot] [PATCH V2] MX28: Add SchulerControl SC_SPS_1 platform

2012-08-07 Thread Stefano Babic
On 05/08/2012 12:37, Marek Vasut wrote:
 This i.MX28 platform supports the following:
 * 2x FEC ethernet
 * USB on USBH0
 * I2C EEPROM
 * SPI NVRAM
 * LEDs
 
 Signed-off-by: Marek Vasut ma...@denx.de
 ---
  board/schulercontrol/sc_sps_1/Makefile   |   47 +++
  board/schulercontrol/sc_sps_1/sc_sps_1.c |  113 
  board/schulercontrol/sc_sps_1/spl_boot.c |  165 
  boards.cfg   |1 +
  include/configs/sc_sps_1.h   |  208 
 ++
  5 files changed, 534 insertions(+)
  create mode 100644 board/schulercontrol/sc_sps_1/Makefile
  create mode 100644 board/schulercontrol/sc_sps_1/sc_sps_1.c
  create mode 100644 board/schulercontrol/sc_sps_1/spl_boot.c
  create mode 100644 include/configs/sc_sps_1.h
 

You forget the MAINTAINER file

Stefano



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


[U-Boot] [PATCH 1/4] patman: fix end of changes detection

2012-08-07 Thread Ilya Yanok
Changes may end in '---' line or Signoff line (generated by
git format-patch) in case of Series-changes: lines being
the last ones in commit message. So detect it properly.

Signed-off-by: Ilya Yanok ilya.ya...@cogentembedded.com
---
 tools/patman/patchstream.py |6 ++
 1 file changed, 6 insertions(+)

diff --git a/tools/patman/patchstream.py b/tools/patman/patchstream.py
index be40af3..036b129 100644
--- a/tools/patman/patchstream.py
+++ b/tools/patman/patchstream.py
@@ -36,6 +36,9 @@ re_remove = re.compile('^BUG=|^TEST=|^Change-Id:|^Review URL:'
 # Lines which are allowed after a TEST= line
 re_allowed_after_test = re.compile('^Signed-off-by:')
 
+# Signoffs
+re_signoff = re.compile('^Signed-off-by:')
+
 # The start of the cover letter
 re_cover = re.compile('^Cover-letter:')
 
@@ -207,6 +210,9 @@ class PatchStream:
 if is_blank:
 # Blank line ends this change list
 self.in_change = 0
+elif line == '---' or re_signoff.match(line):
+self.in_change = 0
+out = self.ProcessLine(line)
 else:
 self.series.AddChange(self.in_change, self.commit, line)
 self.skip_blank = False
-- 
1.7.9.5

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


[U-Boot] [PATCH 0/4] Some patman fixes

2012-08-07 Thread Ilya Yanok
Patman is the great tool but I've found it nearly unusable for me.
First of all I need to work with multiple signoffs in commits,
then I'd like to use multiline changelog entries and I accostomed
to putting changelog enties to the bottom of the commit.

These patches fix changelog processing and disables additional
signoff and changelog processing.


Ilya Yanok (4):
  patman: fix end of changes detection
  patman: don't pick changes while processing patches
  patman: don't mess with changelog
  patman: don't mess with signoffs

 tools/patman/patchstream.py |   22 ++
 tools/patman/series.py  |5 ++---
 2 files changed, 12 insertions(+), 15 deletions(-)

-- 
1.7.9.5

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


[U-Boot] [PATCH 2/4] patman: don't pick changes while processing patches

2012-08-07 Thread Ilya Yanok
We already got all changes from git log output and the comment
to the ProcessLine function clearly states that 'patch' mode
is not for scanning tags.

Signed-off-by: Ilya Yanok ilya.ya...@cogentembedded.com
---
 tools/patman/patchstream.py |3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/tools/patman/patchstream.py b/tools/patman/patchstream.py
index 036b129..3de32d5 100644
--- a/tools/patman/patchstream.py
+++ b/tools/patman/patchstream.py
@@ -214,7 +214,8 @@ class PatchStream:
 self.in_change = 0
 out = self.ProcessLine(line)
 else:
-self.series.AddChange(self.in_change, self.commit, line)
+if self.is_log:
+self.series.AddChange(self.in_change, self.commit, line)
 self.skip_blank = False
 
 # Detect Series-xxx tags
-- 
1.7.9.5

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


[U-Boot] [PATCH 3/4] patman: don't mess with changelog

2012-08-07 Thread Ilya Yanok
Don't try to sort and uniq changelog entries as this breaks
multiline entries. It will be better to add some real multi-line
support but for now just preserve the entries as is.

Signed-off-by: Ilya Yanok ilya.ya...@cogentembedded.com
---
 tools/patman/series.py |5 ++---
 1 file changed, 2 insertions(+), 3 deletions(-)

diff --git a/tools/patman/series.py b/tools/patman/series.py
index 05d9e73..4e7cb71 100644
--- a/tools/patman/series.py
+++ b/tools/patman/series.py
@@ -154,10 +154,9 @@ class Series(dict):
 for this_commit, text in self.changes[change]:
 if commit and this_commit != commit:
 continue
-if text not in out:
-out.append(text)
+out.append(text)
 if out:
-out = ['Changes in v%d:' % change] + sorted(out)
+out = ['Changes in v%d:' % change] + out
 if need_blank:
 out = [''] + out
 final += out
-- 
1.7.9.5

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


[U-Boot] [PATCH 4/4] patman: don't mess with signoffs

2012-08-07 Thread Ilya Yanok
Currently patman assumes that there should be only one Signoff line
and this is obviously incorrect: we often have to work with patches
containing other people signoffs. Moreover, it's really desirable
to preserve the comments between signoffs.

So until some sophisticated signoff processing will be developed I
suggest just don't mess with signoffs at all and treat them like
plain text lines. The only drawback I've found so far is the case
where you have a patch with someones else signoff but not yours and
also have to patman tags under signoff line. In this case you will
get extra empty line between signoffs.

Signed-off-by: Ilya Yanok ilya.ya...@cogentembedded.com
---
 tools/patman/patchstream.py |   13 ++---
 1 file changed, 2 insertions(+), 11 deletions(-)

diff --git a/tools/patman/patchstream.py b/tools/patman/patchstream.py
index 3de32d5..0503bac 100644
--- a/tools/patman/patchstream.py
+++ b/tools/patman/patchstream.py
@@ -46,7 +46,7 @@ re_cover = re.compile('^Cover-letter:')
 re_series = re.compile('^Series-(\w*): *(.*)')
 
 # Commit tags that we want to collect and keep
-re_tag = re.compile('^(Tested-by|Acked-by|Signed-off-by|Cc): (.*)')
+re_tag = re.compile('^(Tested-by|Acked-by|Cc): (.*)')
 
 # The start of a new commit in the git log
 re_commit = re.compile('^commit (.*)')
@@ -241,15 +241,8 @@ class PatchStream:
 
 # Detect tags in the commit message
 elif tag_match:
-# Onlly allow a single signoff tag
-if tag_match.group(1) == 'Signed-off-by':
-if self.signoff:
-self.warn.append('Patch has more than one Signed-off-by '
-'tag')
-self.signoff += [line]
-
 # Remove Tested-by self, since few will take much notice
-elif (tag_match.group(1) == 'Tested-by' and
+if (tag_match.group(1) == 'Tested-by' and
 tag_match.group(2).find(os.getenv('USER') + '@') != -1):
 self.warn.append(Ignoring %s % line)
 elif tag_match.group(1) == 'Cc':
@@ -288,8 +281,6 @@ class PatchStream:
 
 # Output the tags (signeoff first), then change list
 out = []
-if self.signoff:
-out += self.signoff
 log = self.series.MakeChangeLog(self.commit)
 out += self.FormatTags(self.tags)
 out += [line] + log
-- 
1.7.9.5

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


[U-Boot] [PATCH V3] MX28: Add SchulerControl SC_SPS_1 platform

2012-08-07 Thread Marek Vasut
This i.MX28 platform supports the following:
* 2x FEC ethernet
* USB on USBH0
* I2C EEPROM
* SPI NVRAM
* LEDs

Signed-off-by: Marek Vasut ma...@denx.de
---
 MAINTAINERS  |1 +
 board/schulercontrol/sc_sps_1/Makefile   |   47 +++
 board/schulercontrol/sc_sps_1/sc_sps_1.c |  113 
 board/schulercontrol/sc_sps_1/spl_boot.c |  165 
 boards.cfg   |1 +
 include/configs/sc_sps_1.h   |  208 ++
 6 files changed, 535 insertions(+)
 create mode 100644 board/schulercontrol/sc_sps_1/Makefile
 create mode 100644 board/schulercontrol/sc_sps_1/sc_sps_1.c
 create mode 100644 board/schulercontrol/sc_sps_1/spl_boot.c
 create mode 100644 include/configs/sc_sps_1.h

V2: Removed u-boot.bd in favor of shared file
V3: Add missing maintainers entry

diff --git a/MAINTAINERS b/MAINTAINERS
index 2bd22cc..7ef4451 100644
--- a/MAINTAINERS
+++ b/MAINTAINERS
@@ -895,6 +895,7 @@ Marek Vasut marek.va...@gmail.com
vpac270 xscale/pxa
zipitz2 xscale/pxa
m28evk  i.MX28
+   sc_sps_1i.MX28
efikamx i.MX51
efikasb i.MX51
 
diff --git a/board/schulercontrol/sc_sps_1/Makefile 
b/board/schulercontrol/sc_sps_1/Makefile
new file mode 100644
index 000..24a1003
--- /dev/null
+++ b/board/schulercontrol/sc_sps_1/Makefile
@@ -0,0 +1,47 @@
+#
+# (C) Copyright 2000-2012
+# 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
+
+ifndef CONFIG_SPL_BUILD
+COBJS  := sc_sps_1.o
+else
+COBJS  := spl_boot.o
+endif
+
+SRCS   := $(COBJS:.o=.c)
+OBJS   := $(addprefix $(obj),$(COBJS))
+
+$(LIB):$(obj).depend $(OBJS)
+   $(call cmd_link_o_target, $(OBJS))
+
+#
+
+# defines $(obj).depend target
+include $(SRCTREE)/rules.mk
+
+sinclude $(obj).depend
+
+#
diff --git a/board/schulercontrol/sc_sps_1/sc_sps_1.c 
b/board/schulercontrol/sc_sps_1/sc_sps_1.c
new file mode 100644
index 000..0fee289
--- /dev/null
+++ b/board/schulercontrol/sc_sps_1/sc_sps_1.c
@@ -0,0 +1,113 @@
+/*
+ * SchulerControl GmbH, SC_SPS_1 module
+ *
+ * Copyright (C) 2012 Marek Vasut ma...@denx.de
+ * on behalf of DENX Software Engineering GmbH
+ *
+ * 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/gpio.h
+#include asm/io.h
+#include asm/arch/imx-regs.h
+#include asm/arch/iomux-mx28.h
+#include asm/arch/clock.h
+#include asm/arch/sys_proto.h
+#include linux/mii.h
+#include miiphy.h
+#include netdev.h
+#include errno.h
+
+DECLARE_GLOBAL_DATA_PTR;
+
+/*
+ * Functions
+ */
+int board_early_init_f(void)
+{
+   /* IO0 clock at 480MHz */
+   mx28_set_ioclk(MXC_IOCLK0, 48);
+   /* IO1 clock at 480MHz */
+   mx28_set_ioclk(MXC_IOCLK1, 48);
+
+   /* SSP0 clock at 96MHz */
+   mx28_set_sspclk(MXC_SSPCLK0, 96000, 0);
+   /* SSP2 clock at 96MHz */
+   mx28_set_sspclk(MXC_SSPCLK2, 96000, 0);
+
+#ifdef CONFIG_CMD_USB
+   mxs_iomux_setup_pad(MX28_PAD_AUART1_CTS__USB0_OVERCURRENT);
+   mxs_iomux_setup_pad(MX28_PAD_AUART2_TX__GPIO_3_9 |
+   MXS_PAD_4MA | MXS_PAD_3V3 | MXS_PAD_NOPULL);
+   

Re: [U-Boot] [PATCH 1/4] MX28: Fix up the MMC driver DMA mode

2012-08-07 Thread Marek Vasut
Dear Stefano Babic,

 On 06/08/2012 23:23, Marek Vasut wrote:
  Dear Marek Vasut,
  
  The DMA mode didn't properly configure the DMA_ENABLE bit in CTRL1.
  Also, it was using SSP0 DMA channel for all SSP devices.
  
  Signed-off-by: Marek Vasut ma...@denx.de
  Cc: Wolfgang Denk w...@denx.de
  Cc: Stefano Babic sba...@denx.de
  Cc: Fabio Estevam feste...@freescale.com
  Cc: Andy Fleming aflem...@freescale.com
  
  Stefano, can you please apply these? They fix trouble and improve the
  platform and I ain't getting no reply from Andy and they shouldn't
  colide with anything in his tree.
 
 Ok - changes are only related to the MX28 driver. Maybe the patches
 should be in any case merged into u-boot-imx and not into u-boot-mmc.

They should definitelly go through u-boot-mmc, I'm just circumventing the 
system 
here really, since I didn't get reply from Andy for a while.

 I am often unsure which custodian should take care of patches when they
 spread across more as one area.

Andy (mmc) in this case ;-)

 I will merge them now.
 
 Best regards,
 Stefano

Best regards,
Marek Vasut
___
U-Boot mailing list
U-Boot@lists.denx.de
http://lists.denx.de/mailman/listinfo/u-boot


[U-Boot] [PATCH] am335x_evm: enable SMSC PHY driver

2012-08-07 Thread Ilya Yanok
Beaglebone uses SMSC PHY which works incorrectly with generic PHY
driver so enable SMSC PHY driver to fix networking problems on
Beaglebone.

Signed-off-by: Ilya Yanok ilya.ya...@cogentembedded.com
---
 include/configs/am335x_evm.h |1 +
 1 file changed, 1 insertion(+)

diff --git a/include/configs/am335x_evm.h b/include/configs/am335x_evm.h
index 69ab076..c827ebf 100644
--- a/include/configs/am335x_evm.h
+++ b/include/configs/am335x_evm.h
@@ -242,5 +242,6 @@
 #define CONFIG_NET_MULTI
 #define CONFIG_PHY_GIGE
 #define CONFIG_PHYLIB
+#define CONFIG_PHY_SMSC
 
 #endif /* ! __CONFIG_AM335X_EVM_H */
-- 
1.7.9.5

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


[U-Boot] [PATCH 2/2] serial: uartlite: Init all uartlites for serial multi

2012-08-07 Thread Michal Simek
Initialize all possible uartlites and return the first
initialized port. For static configuration is initialization
done in userial_ports array.

Signed-off-by: Michal Simek mon...@monstr.eu
---
 drivers/serial/serial_xuartlite.c |   34 +++---
 1 files changed, 19 insertions(+), 15 deletions(-)

diff --git a/drivers/serial/serial_xuartlite.c 
b/drivers/serial/serial_xuartlite.c
index 3a38f9e..2bdb68b 100644
--- a/drivers/serial/serial_xuartlite.c
+++ b/drivers/serial/serial_xuartlite.c
@@ -89,11 +89,17 @@ int uartlite_serial_tstc(const int port)
return in_be32(regs-status)  SR_RX_FIFO_VALID_DATA;
 }
 
+static int uartlite_serial_init(const int port)
+{
+   if (userial_ports[port])
+   return 0;
+   return -1;
+}
+
 #if !defined(CONFIG_SERIAL_MULTI)
 int serial_init(void)
 {
-   /* FIXME: Nothing for now. We should initialize fifo, etc */
-   return 0;
+   return uartlite_serial_init(0);
 }
 
 void serial_setbrg(void)
@@ -126,7 +132,7 @@ int serial_tstc(void)
 /* Multi serial device functions */
 #define DECLARE_ESERIAL_FUNCTIONS(port) \
int userial##port##_init(void) \
-   { return(0); } \
+   { return uartlite_serial_init(port); } \
void userial##port##_setbrg(void) {} \
int userial##port##_getc(void) \
{ return uartlite_serial_getc(port); } \
@@ -163,17 +169,15 @@ struct serial_device uartlite_serial3_device =
 
 __weak struct serial_device *default_serial_console(void)
 {
-# ifdef XILINX_UARTLITE_BASEADDR
-   return uartlite_serial0_device;
-# endif /* XILINX_UARTLITE_BASEADDR */
-# ifdef XILINX_UARTLITE_BASEADDR1
-   return uartlite_serial1_device;
-# endif /* XILINX_UARTLITE_BASEADDR1 */
-# ifdef XILINX_UARTLITE_BASEADDR2
-   return uartlite_serial2_device;
-# endif /* XILINX_UARTLITE_BASEADDR2 */
-# ifdef XILINX_UARTLITE_BASEADDR3
-   return uartlite_serial3_device;
-# endif /* XILINX_UARTLITE_BASEADDR3 */
+   if (userial_ports[0])
+   return uartlite_serial0_device;
+   if (userial_ports[1])
+   return uartlite_serial1_device;
+   if (userial_ports[2])
+   return uartlite_serial2_device;
+   if (userial_ports[3])
+   return uartlite_serial3_device;
+
+   return NULL;
 }
 #endif /* CONFIG_SERIAL_MULTI */
-- 
1.7.0.4

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


[U-Boot] [PATCH 1/2] serial: Support serial multi for Microblaze

2012-08-07 Thread Michal Simek
enable serial multi for Microblaze.

Signed-off-by: Michal Simek mon...@monstr.eu
---
 include/serial.h |3 ++-
 1 files changed, 2 insertions(+), 1 deletions(-)

diff --git a/include/serial.h b/include/serial.h
index 5173499..9475779 100644
--- a/include/serial.h
+++ b/include/serial.h
@@ -31,7 +31,8 @@ extern struct serial_device *default_serial_console(void);
defined(CONFIG_MB86R0x) || defined(CONFIG_MPC5xxx) || \
defined(CONFIG_MPC83xx) || defined(CONFIG_MPC85xx) || \
defined(CONFIG_MPC86xx) || defined(CONFIG_SYS_SC520) || \
-   defined(CONFIG_TEGRA2) || defined(CONFIG_SYS_COREBOOT)
+   defined(CONFIG_TEGRA2) || defined(CONFIG_SYS_COREBOOT) || \
+   defined(CONFIG_MICROBLAZE)
 extern struct serial_device serial0_device;
 extern struct serial_device serial1_device;
 #if defined(CONFIG_SYS_NS16550_SERIAL)
-- 
1.7.0.4

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


[U-Boot] [PATCH] phy: Add support for Marvell 88E1118R

2012-08-07 Thread Michal Simek
Marvell 88E1118R has different uid then 88E1118.

Signed-off-by: Michal Simek mon...@monstr.eu
CC: Andy Fleming aflem...@freescale.com
CC: Zang Roy-R61911 tie-fei.z...@freescale.com
CC: Kumar Gala ga...@kernel.crashing.org
---
 drivers/net/phy/marvell.c |   11 +++
 1 files changed, 11 insertions(+), 0 deletions(-)

diff --git a/drivers/net/phy/marvell.c b/drivers/net/phy/marvell.c
index e51e799..4b27198 100644
--- a/drivers/net/phy/marvell.c
+++ b/drivers/net/phy/marvell.c
@@ -425,6 +425,16 @@ static struct phy_driver M88E1118_driver = {
.shutdown = genphy_shutdown,
 };
 
+static struct phy_driver M88E1118R_driver = {
+   .name = Marvell 88E1118R,
+   .uid = 0x1410e40,
+   .mask = 0xff0,
+   .features = PHY_GBIT_FEATURES,
+   .config = m88e1118_config,
+   .startup = m88e1118_startup,
+   .shutdown = genphy_shutdown,
+};
+
 static struct phy_driver M88E1121R_driver = {
.name = Marvell 88E1121R,
.uid = 0x1410cb0,
@@ -461,6 +471,7 @@ int phy_marvell_init(void)
phy_register(M88E1145_driver);
phy_register(M88E1121R_driver);
phy_register(M88E1118_driver);
+   phy_register(M88E1118R_driver);
phy_register(M88ES_driver);
phy_register(M88E1011S_driver);
 
-- 
1.7.0.4

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


Re: [U-Boot] [PATCH 01/11 v2] snowball: Add support for ux500 based snowball board

2012-08-07 Thread Linus Walleij
On Fri, Aug 3, 2012 at 11:05 PM,  mathieu.poir...@linaro.org wrote:

 From: Mathieu J. Poirier mathieu.poir...@linaro.org

 Signed-off-by: Mathieu Poirier mathieu.poir...@linaro.org
 Signed-off-by: John Rigby john.ri...@linaro.org

Acked-by: Linus Walleij linus.wall...@linaro.org

For this entire series.

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


[U-Boot] [PATCH] arm:exynos: Enable data cache at exynos based processors.

2012-08-07 Thread Lukasz Majewski
This patch enables the L1 data cache for systems based on Samsung
Exynos processor.

Signed-off-by: Lukasz Majewski l.majew...@samsung.com
Signed-off-by: Kyungmin Park kyungmin.p...@samsung.com
Cc: Minkyu Kang mk7.k...@samsung.com
---
 arch/arm/cpu/armv7/exynos/soc.c |8 
 1 files changed, 8 insertions(+), 0 deletions(-)

diff --git a/arch/arm/cpu/armv7/exynos/soc.c b/arch/arm/cpu/armv7/exynos/soc.c
index dcfcec2..ab65b8d 100644
--- a/arch/arm/cpu/armv7/exynos/soc.c
+++ b/arch/arm/cpu/armv7/exynos/soc.c
@@ -28,3 +28,11 @@ void reset_cpu(ulong addr)
 {
writel(0x1, samsung_get_base_swreset());
 }
+
+#ifndef CONFIG_SYS_DCACHE_OFF
+void enable_caches(void)
+{
+   /* Enable D-cache. I-cache is already enabled in start.S */
+   dcache_enable();
+}
+#endif
-- 
1.7.2.3

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


[U-Boot] [PATCH] arm:cache:trats: Enable PL310 L2 Cache Controller at TRATS Samsung board

2012-08-07 Thread Lukasz Majewski
Enable the PL310 L2 cache controller at TRATS Samsung board.

Signed-off-by: Lukasz Majewski l.majew...@samsung.com
Signed-off-by: Kyungmin Park kyungmin.p...@samsung.com
Cc: Minkyu Kang mk7.k...@samsung.com
---
 include/configs/trats.h |6 --
 1 files changed, 4 insertions(+), 2 deletions(-)

diff --git a/include/configs/trats.h b/include/configs/trats.h
index 9cd1292..9c31f47 100644
--- a/include/configs/trats.h
+++ b/include/configs/trats.h
@@ -42,8 +42,10 @@
 #define CONFIG_DISPLAY_CPUINFO
 #define CONFIG_DISPLAY_BOARDINFO
 
-/* Keep L2 Cache Disabled */
-#define CONFIG_SYS_L2CACHE_OFF
+#ifndef CONFIG_SYS_L2CACHE_OFF
+#define CONFIG_SYS_L2_PL310
+#define CONFIG_SYS_PL310_BASE  0x10502000
+#endif
 
 #define CONFIG_SYS_SDRAM_BASE  0x4000
 #define CONFIG_SYS_TEXT_BASE   0x6330
-- 
1.7.2.3

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


Re: [U-Boot] [RESEND PATCH v2] i.MX28: bug fixes in PMU configuration code

2012-08-07 Thread Stefano Babic
On 07/08/2012 16:56, Stathis Voukelatos wrote:
 Signed-off-by: Stathis Voukelatos stathis.voukela...@linn.co.uk
 Cc: Stefano Babic sba...@denx.de
 Cc: Marek Vasut marek.va...@gmail.com
 ---

Applied to u-boot-imx, thanks.

Best regards,
Stefano Babic

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


[U-Boot] [GIT PULL] Pull request: u-boot-imx

2012-08-07 Thread Stefano Babic
Hi Albert,

please pull from u-boot-imx, thanks.


The following changes since commit 8abcd8ab962cd5fb2a4c025e7c7b62a9faf4aa08:

  DaVinci DA8xx: fix set_cpu_clk_info() (2012-08-05 22:02:40 +0200)

are available in the git repository at:

  git://www.denx.de/git/u-boot-imx.git master

for you to fetch changes up to c031cea4c7f5af2aba58e8883eb5cca871213d1b:

  MX28: Add SchulerControl SC_SPS_1 platform (2012-08-07 17:49:55 +0200)


Fabio Estevam (3):
  mx28evk: Turn on caches
  mx51evk: do not overwrite the console
  vision2: do not overwrite the console

Marek Vasut (9):
  MX28: SPI: Refactor spi_xfer a bit
  MX28: SPI: Pull out the PIO transfer function
  MX28: SPI: Add DMA transfer support
  MX28: Fix up the MMC driver DMA mode
  MX28: Split out the PIO and DMA transfer functions
  MX28: Transfer small blocks via PIO in MXS MMC
  MX28: Fix MXS MMC DMA issues
  MX28: Move the u-boot.bd info CPUDIR/SOCDIR
  MX28: Add SchulerControl SC_SPS_1 platform

Otavio Salvador (9):
  imx: Use a clear identification of an unidentified CPU type
  MX28: extend print_cpuinfo() to use chip information
  MX28: use a clear name for DDR2 initialization
  mxs: reorganize source directory for easy sharing of code in i.MXS
SoCs
  mxs: prefix register acessor macros with 'mxs' prefix
  mxs: prefix register structs with 'mxs' prefix
  mxs: Reowork SPL to use 'mxs' prefix for methods
  mxs: Clarify why we poweroff in case of brownout in 5v conflict
  mxs: rename mx28.c to mxs.c as it is common to i.MX233 and i.MX28 SoCs

Stathis Voukelatos (1):
  i.MX28: bug fixes in PMU configuration code

Stefano Babic (1):
  MX5: mx53loco: do not overwrite the console

Veli-Pekka Peltola (1):
  Add support for Bluegiga APX4 Development Kit

 MAINTAINERS|5 +
 Makefile   |2 +-
 arch/arm/cpu/arm926ejs/{mx28 = mxs}/Makefile  |2 +-
 arch/arm/cpu/arm926ejs/{mx28 = mxs}/clock.c   |   40 +--
 arch/arm/cpu/arm926ejs/{mx28 = mxs}/iomux.c   |6 +-
 arch/arm/cpu/arm926ejs/{mx28/mx28.c = mxs/mxs.c}  |   72 +++--
 .../arm926ejs/{mx28/mx28_init.h = mxs/mxs_init.h} |   14 +-
 arch/arm/cpu/arm926ejs/{mx28 = mxs}/spl_boot.c|   20 +-
 .../cpu/arm926ejs/{mx28 = mxs}/spl_lradc_init.c   |   10 +-
 .../arm/cpu/arm926ejs/{mx28 = mxs}/spl_mem_init.c |   64 ++---
 .../cpu/arm926ejs/{mx28 = mxs}/spl_power_init.c   |  274
++--
 arch/arm/cpu/arm926ejs/{mx28 = mxs}/start.S   |0
 arch/arm/cpu/arm926ejs/{mx28 = mxs}/timer.c   |8 +-
 .../arm/cpu/arm926ejs/{mx28 = mxs}/u-boot-spl.lds |2 +-
 .../arm/cpu/arm926ejs/mxs}/u-boot.bd   |0
 arch/arm/cpu/armv7/imx-common/cpu.c|4 +-
 .../include/asm/{arch-mx28 = arch-mxs}/clock.h|0
 arch/arm/include/asm/{arch-mx28 = arch-mxs}/dma.h |0
 .../arm/include/asm/{arch-mx28 = arch-mxs}/gpio.h |0
 .../include/asm/{arch-mx28 = arch-mxs}/imx-regs.h |0
 .../asm/{arch-mx28 = arch-mxs}/iomux-mx28.h   |0
 .../include/asm/{arch-mx28 = arch-mxs}/iomux.h|0
 .../asm/{arch-mx28 = arch-mxs}/regs-apbh.h|  256
+-
 .../asm/{arch-mx28 = arch-mxs}/regs-base.h|0
 .../include/asm/{arch-mx28 = arch-mxs}/regs-bch.h |   44 ++--
 .../asm/{arch-mx28 = arch-mxs}/regs-clkctrl.h |   60 ++---
 .../asm/{arch-mx28 = arch-mxs}/regs-common.h  |   34 +--
 .../asm/{arch-mx28 = arch-mxs}/regs-digctl.h  |   56 ++--
 .../asm/{arch-mx28 = arch-mxs}/regs-gpmi.h|   28 +-
 .../include/asm/{arch-mx28 = arch-mxs}/regs-i2c.h |   30 +--
 .../asm/{arch-mx28 = arch-mxs}/regs-lcdif.h   |   66 ++---
 .../asm/{arch-mx28 = arch-mxs}/regs-lradc.h   |   50 ++--
 .../asm/{arch-mx28 = arch-mxs}/regs-ocotp.h   |   88 +++
 .../asm/{arch-mx28 = arch-mxs}/regs-pinctrl.h |  170 ++--
 .../asm/{arch-mx28 = arch-mxs}/regs-power.h   |   30 +--
 .../include/asm/{arch-mx28 = arch-mxs}/regs-rtc.h |   30 +--
 .../include/asm/{arch-mx28 = arch-mxs}/regs-ssp.h |   42 +--
 .../asm/{arch-mx28 = arch-mxs}/regs-timrot.h  |   40 +--
 .../include/asm/{arch-mx28 = arch-mxs}/regs-usb.h |2 +-
 .../asm/{arch-mx28 = arch-mxs}/regs-usbphy.h  |   22 +-
 .../asm/{arch-mx28 = arch-mxs}/sys_proto.h|   10 +-
 board/bluegiga/apx4devkit/Makefile |   47 
 board/bluegiga/apx4devkit/apx4devkit.c |  150 +++
 board/bluegiga/apx4devkit/spl_boot.c   |  164 
 board/denx/m28evk/m28evk.c |4 +-
 board/denx/m28evk/spl_boot.c   |2 +-
 board/freescale/mx28evk/iomux.c|2 +-
 board/freescale/mx28evk/mx28evk.c  |4 +-
 board/freescale/mx28evk/u-boot.bd  |   14 -
 board/freescale/mx51evk/mx51evk.c  

Re: [U-Boot] pull request for u-boot-tegra/master

2012-08-07 Thread Tom Warren
Albert,

 -Original Message-
 From: Albert ARIBAUD [mailto:albert.u.b...@aribaud.net]
 Sent: Monday, August 06, 2012 11:53 PM
 To: Allen Martin
 Cc: Tom Warren; Tom Warren; si...@theia.denx.de; u-boot@lists.denx.de;
 Stephen Warren
 Subject: Re: [U-Boot] pull request for u-boot-tegra/master
 
 Hi Allen,
 
 On Mon, 6 Aug 2012 15:46:22 -0700, Allen Martin amar...@nvidia.com wrote:
-Original Message-
From: Albert ARIBAUD [mailto:albert.u.b...@aribaud.net]
Sent: Sunday, August 05, 2012 1:01 PM
To: Albert ARIBAUD
Cc: Tom Warren; si...@theia.denx.de; u-boot@lists.denx.de; Stephen
Warren; Tom Warren
Subject: Re: [U-Boot] pull request for u-boot-tegra/master
   
Hi Albert,
   
On Sun, 5 Aug 2012 21:46:21 +0200, Albert ARIBAUD
albert.u.b...@aribaud.net wrote:
 Hi Tom,

 On Fri, 3 Aug 2012 16:35:40 -0700, Tom Warren
 twarren.nvi...@gmail.com
wrote:
  Albert,
 
  Has this been pulled into ARM master? I don't think I saw a
  response from you, but I might have missed it.

 Sorry Tom, but I have been unavailable for some time and
 especially on jul 30 and 31, so no, it has not been pulled in.
 :(

 I am pulling it in right now, but I have sparse access to
 Internet right
now.
   
Seems like f414d013c5e129e66c04ff699bd60b34894d3d38 breaks a lot
of builds with the stock Ubuntu linaro toolchain, e.g.
   
--
--
--
   
$ ./MAKEALL jornada
Configuring for jornada board...
make: *** [jornada_config] Error 1
arm-linux-gnueabi-size: './u-boot': No such file
make: *** No rule to make target `include/autoconf.mk', needed by
 `depend'.
Stop.
make: *** Waiting for unfinished jobs
   
 
  I think I found the problem.  For some reason I don't fully understand
  when a board doesn't have ${soc} defined the following code in mkconfig:
 
  ( echo ARCH   = ${arch}
  if [ ! -z $spl_cpu ] ; then
  echo 'ifeq ($(CONFIG_SPL_BUILD),y)'
  echo CPU= ${spl_cpu}
  echo else
  echo CPU= ${cpu}
  echo endif
  else
  echo CPU= ${cpu}
  fi
  echo BOARD  = ${board}
 
  [ ${vendor} ]  echo VENDOR = ${vendor}
  [ ${soc}]  echo SOC= ${soc} )  config.mk
 
  causes the subshell to return a nonzero exit status.  I think the
  behavior may change depending on what shell you have /bin/sh pointing
  to.  Can you try out the following fix to verify?  I'll put together a
  proper patch in the mean time
 
  diff --git a/mkconfig b/mkconfig
  index 07031c6..d3363c6 100755
  --- a/mkconfig
  +++ b/mkconfig
  @@ -144,7 +144,8 @@ fi
   echo BOARD  = ${board}
 
   [ ${vendor} ]  echo VENDOR = ${vendor}
  -[ ${soc}]  echo SOC= ${soc} )  config.mk
  +[ ${soc}]  echo SOC= ${soc}
  +exit 0 )  config.mk
 
   # Assign board directory to BOARDIR variable  if [ -z ${vendor} ] ;
  then
 
 Seems to work with this fix applied on top of the current tegra/master.
 
 Tom, can you fix the branch so that the original commit (f414d013...)
 contains the fix above, rather than just adding the fix on top of the
 branch? That'll help any bisecting through this branch's commits.

Will do. I'll send a new pull request when I've fixed  uploaded a new 
u-boot-tegra/master.

Thanks,

Tom
 
 Also, Allen:
 
  --
  - This email message is for the sole use of the intended
  recipient(s) and may contain confidential information.  Any
  unauthorized review, use, disclosure or distribution is prohibited.
  If you are not the intended recipient, please contact the sender by
  reply email and destroy all copies of the original message.
  --
  -
 
 Can this be removed from future e-mails to the list?
 
 Amicalement,
 --
 Albert.
-- 
nvpublic
___
U-Boot mailing list
U-Boot@lists.denx.de
http://lists.denx.de/mailman/listinfo/u-boot


Re: [U-Boot] pull request for u-boot-tegra/master

2012-08-07 Thread Tom Warren
Albert,

Please pull u-boot-tegra/master into ARM master. I've rebased to your
current TOT and slipstreamed in the mkconfig fix. Thanks!

The following changes since commit 8abcd8ab962cd5fb2a4c025e7c7b62a9faf4aa08:
  Laurence Withers (1):
DaVinci DA8xx: fix set_cpu_clk_info()

are available in the git repository at:

  git://git.denx.de/u-boot-tegra master

Allen Martin (15):
  tegra20: rename tegra2 - tegra20
  tegra20: move tegra20 SoC code to arch/arm/cpu/tegra20-common
  tegra20: rename CONFIG_MACH_TEGRA_GENERIC
  tegra20: tec: add tegra20-common-post.h
  tegra20: make board mkdir commands unconditional
  mkconfig: add support for SPL CPU
  ARM: Fix arm720t SPL build
  tegra20: remove timer_init from SPL build
  ARM: add tegra20 support to arm720t
  tegra20: add u-boot-*-tegra.bin targets
  tegra20: move SDRAM param save to later in boot
  tegra20: enable SPL for tegra20 boards
  arm: enable libgcc build for SPL
  spl: fix SPL build of private libgcc
  tegra20: Remove armv4t build flags

 MAINTAINERS|   18 ++--
 Makefile   |   26 
 arch/arm/cpu/arm720t/cpu.c |2 +
 arch/arm/cpu/arm720t/interrupts.c  |5 +
 arch/arm/cpu/arm720t/start.S   |   19 +++-
 .../cpu/{armv7/tegra2 = arm720t/tegra20}/Makefile |   28 +---
 .../arch-tegra2 = cpu/arm720t/tegra20}/board.h|   11 +-
 .../{armv7/tegra2 = arm720t/tegra20}/config.mk|   12 --
 .../{armv7/tegra2/ap20.c = arm720t/tegra20/cpu.c} |  148 ++--
 .../ap20.h = cpu/arm720t/tegra20/cpu.h}   |   15 +--
 arch/arm/cpu/arm720t/tegra20/spl.c |  132 +
 arch/arm/cpu/armv7/start.S |2 -
 arch/arm/cpu/armv7/{tegra2 = tegra20}/Makefile|   15 +--
 .../cpu/armv7/{tegra2 = tegra20}/cmd_enterrcm.c   |4 +-
 arch/arm/cpu/armv7/{tegra2 = tegra20}/config.mk   |   12 --
 arch/arm/cpu/armv7/{tegra2 = tegra20}/usb.c   |2 +-
 .../cpu/{armv7/tegra2 = tegra20-common}/Makefile  |   29 ++---
 arch/arm/cpu/tegra20-common/ap20.c |  131 +
 .../cpu/{armv7/tegra2 = tegra20-common}/board.c   |   39 ++
 .../cpu/{armv7/tegra2 = tegra20-common}/clock.c   |   10 +-
 .../cpu/{armv7/tegra2 = tegra20-common}/crypto.c  |0
 .../cpu/{armv7/tegra2 = tegra20-common}/crypto.h  |0
 .../arm/cpu/{armv7/tegra2 = tegra20-common}/emc.c |2 +-
 .../cpu/{armv7/tegra2 = tegra20-common}/funcmux.c |2 +-
 .../tegra2 = tegra20-common}/lowlevel_init.S  |0
 .../cpu/{armv7/tegra2 = tegra20-common}/pinmux.c  |4 +-
 .../arm/cpu/{armv7/tegra2 = tegra20-common}/pmu.c |2 +-
 .../{armv7/tegra2 = tegra20-common}/sys_info.c|2 +-
 .../cpu/{armv7/tegra2 = tegra20-common}/timer.c   |2 +-
 .../{armv7/tegra2 = tegra20-common}/warmboot.c|   18 ++--
 .../tegra2 = tegra20-common}/warmboot_avp.c   |4 +-
 .../tegra2 = tegra20-common}/warmboot_avp.h   |0
 .../asm/{arch-tegra2 = arch-tegra20}/ap20.h   |4 +-
 .../asm/{arch-tegra2 = arch-tegra20}/apb_misc.h   |0
 .../asm/{arch-tegra2 = arch-tegra20}/board.h  |0
 .../asm/{arch-tegra2 = arch-tegra20}/clk_rst.h|0
 .../asm/{arch-tegra2 = arch-tegra20}/clock.h  |0
 .../asm/{arch-tegra2 = arch-tegra20}/emc.h|0
 .../asm/{arch-tegra2 = arch-tegra20}/flow.h   |0
 .../asm/{arch-tegra2 = arch-tegra20}/funcmux.h|2 +-
 .../asm/{arch-tegra2 = arch-tegra20}/fuse.h   |0
 .../asm/{arch-tegra2 = arch-tegra20}/gp_padctrl.h |2 +-
 .../asm/{arch-tegra2 = arch-tegra20}/gpio.h   |2 +-
 arch/arm/include/asm/arch-tegra20/hardware.h   |   29 
 .../asm/{arch-tegra2 = arch-tegra20}/mmc.h|8 +-
 .../asm/{arch-tegra2 = arch-tegra20}/pinmux.h |0
 .../asm/{arch-tegra2 = arch-tegra20}/pmc.h|0
 .../asm/{arch-tegra2 = arch-tegra20}/pmu.h|0
 .../asm/{arch-tegra2 = arch-tegra20}/scu.h|0
 .../{arch-tegra2 = arch-tegra20}/sdram_param.h|0
 .../asm/{arch-tegra2 = arch-tegra20}/sys_proto.h  |4 +-
 .../tegra2.h = arch-tegra20/tegra20.h}|   18 ++--
 .../asm/{arch-tegra2 = arch-tegra20}/tegra_i2c.h  |2 +-
 .../asm/{arch-tegra2 = arch-tegra20}/tegra_spi.h  |4 +-
 .../asm/{arch-tegra2 = arch-tegra20}/timer.h  |6 +-
 .../uart-spi-switch.h  |0
 .../asm/{arch-tegra2 = arch-tegra20}/uart.h   |0
 .../asm/{arch-tegra2 = arch-tegra20}/usb.h|0
 .../asm/{arch-tegra2 = arch-tegra20}/warmboot.h   |0
 arch/arm/lib/Makefile  |2 +-
 board/avionic-design/common/tamonten.c |4 +-
 .../dts/{tegra2-medcom.dts = tegra20-medcom.dts}  |0
 .../dts/{tegra2-plutux.dts = tegra20-plutux.dts}  |0
 .../dts/{tegra2-tec.dts = tegra20-tec.dts}|0
 

[U-Boot] [PATCH] ext2fs: fix warning: 'blocknxt' may be used uninitialized with gcc 4.2

2012-08-07 Thread Tom Rini
The above warning was introduced originally in 436da3c ext2load:
increase read speed and fixed for newer toolchains in b803273 ext2fs:
fix warning: 'blocknxt' may be used uninitialized.  This change did not
fix the warning with gcc 4.2, as found in ELDK 4.2.

If we rework the while loop to initalize blocknxt before entering the
warning really goes away.  Tested on am335x with an approx 7mb file and
crc32 in U-Boot befor and after this change.

Cc: Wolfgang Denk w...@denx.de
Cc: Eric Nelson eric.nel...@boundarydevices.com
Cc: Thierry Reding thierry.red...@avionic-design.de
Cc: Jason Cooper u-b...@lakedaemon.net
Cc: Andreas Bießmann andreas.de...@googlemail.com
Cc: Reinhard Arlt reinhard.a...@esd-electronics.com
Cc: Kim Phillips kim.phill...@freescale.com
Signed-off-by: Tom Rini tr...@ti.com
---
 fs/ext2/ext2fs.c |4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/fs/ext2/ext2fs.c b/fs/ext2/ext2fs.c
index 182f0ac..418404e 100644
--- a/fs/ext2/ext2fs.c
+++ b/fs/ext2/ext2fs.c
@@ -440,9 +440,8 @@ int ext2fs_read_file
/* grab middle blocks in one go */
if (i != pos / blocksize  i  blockcnt - 1  blockcnt  3) {
int oldblk = blknr;
-   int blocknxt;
+   int blocknxt = ext2fs_read_block(node, i + 1);
while (i  blockcnt - 1) {
-   blocknxt = ext2fs_read_block(node, i + 1);
if (blocknxt == (oldblk + 1)) {
oldblk = blocknxt;
i++;
@@ -450,6 +449,7 @@ int ext2fs_read_file
blocknxt = ext2fs_read_block(node, i);
break;
}
+   blocknxt = ext2fs_read_block(node, i);
}
 
if (oldblk == blknr)
-- 
1.7.9.5

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


Re: [U-Boot] [PATCH] tegra20: add back USE_PRIVATE_LIBGCC

2012-08-07 Thread Stephen Warren
On 08/06/2012 06:19 PM, Lucas Stach wrote:
 As discussed here [http://patchwork.ozlabs.org/patch/158202/] we want to
 use USE_PRIVATE_LIBGCC still.
 
 However commit 5286f1ce dropped it regardless. Adding this back fixes a
 hang while handing over from SPL to U-Boot on Colibri T20.

This probably makes sense, but Allen should comment on this.

I wonder why I haven't seen any issue with this; perhaps SPL on all the
boards I tested ended up not using any libgcc functions? But in that
case, why would the Colibri board end up using them?
___
U-Boot mailing list
U-Boot@lists.denx.de
http://lists.denx.de/mailman/listinfo/u-boot


Re: [U-Boot] [PATCH 1/2] tegra: init MMC from common board init

2012-08-07 Thread Stephen Warren
On 08/06/2012 07:18 PM, Lucas Stach wrote:

There's no description here justifying why you want this change.

I don't think the change is correct; in arch/arm/lib/board.c,
board_init_r() calls drivers/mmc/mmc.c:mmc_initialize() which calls
board_mmc_init(). With this patch, won't this function get called twice?

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


[U-Boot] Please pull u-boot-ti/master

2012-08-07 Thread Tom Rini
Hello,

The following changes since commit 8abcd8ab962cd5fb2a4c025e7c7b62a9faf4aa08:

  DaVinci DA8xx: fix set_cpu_clk_info() (2012-08-05 22:02:40 +0200)

are available in the git repository at:

  git://git.denx.de/u-boot-ti next

for you to fetch changes up to a47233a30055660ad64d865f1fde19503ed02696:

  am335x_evm: enable SMSC PHY driver (2012-08-07 10:07:22 -0700)


Enric Balletb?? i Serra (1):
  OMAP3: fix DRAM size for IGEP-based boards.

Ilya Yanok (1):
  am335x_evm: enable SMSC PHY driver

 board/isee/igep0020/igep0020.c |6 +++---
 board/isee/igep0030/igep0030.c |6 +++---
 include/configs/am335x_evm.h   |1 +
 3 files changed, 7 insertions(+), 6 deletions(-)

-- 
Tom


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


Re: [U-Boot] [PATCH] OMAP3: fix DRAM size for IGEP-based boards.

2012-08-07 Thread Tom Rini
On Sun, Aug 05, 2012 at 07:27:30PM +0200, Javier Martinez Canillas wrote:
 On Sun, Aug 5, 2012 at 12:55 PM, Enric Balletbo i Serra
 eballe...@gmail.com wrote:
  The total RAM size of the IGEP-based boards is 512MiB not 1GiB, the
  LPDDR memory consist on two dies of 256MiB.
 
  Signed-off-by: Enric Balletbo i Serra eballe...@gmail.com
  ---
   board/isee/igep0020/igep0020.c |6 +++---
   board/isee/igep0030/igep0030.c |6 +++---
   2 files changed, 6 insertions(+), 6 deletions(-)
 
  diff --git a/board/isee/igep0020/igep0020.c b/board/isee/igep0020/igep0020.c
  index a4d099a..a8257a3 100644
  --- a/board/isee/igep0020/igep0020.c
  +++ b/board/isee/igep0020/igep0020.c
  @@ -77,19 +77,19 @@ void get_board_mem_timings(u32 *mcfg, u32 *ctrla, u32 
  *ctrlb, u32 *rfr_ctrl,
   {
  *mr = MICRON_V_MR_165;
   #ifdef CONFIG_BOOT_NAND
  -   *mcfg = MICRON_V_MCFG_200(512  20);
  +   *mcfg = MICRON_V_MCFG_200(256  20);
  *ctrla = MICRON_V_ACTIMA_200;
  *ctrlb = MICRON_V_ACTIMB_200;
  *rfr_ctrl = SDP_3430_SDRC_RFR_CTRL_200MHz;
   #else
  if (get_cpu_family() == CPU_OMAP34XX) {
  -   *mcfg = NUMONYX_V_MCFG_165(512  20);
  +   *mcfg = NUMONYX_V_MCFG_165(256  20);
  *ctrla = NUMONYX_V_ACTIMA_165;
  *ctrlb = NUMONYX_V_ACTIMB_165;
  *rfr_ctrl = SDP_3430_SDRC_RFR_CTRL_165MHz;
 
  } else {
  -   *mcfg = NUMONYX_V_MCFG_200(512  20);
  +   *mcfg = NUMONYX_V_MCFG_200(256  20);
  *ctrla = NUMONYX_V_ACTIMA_200;
  *ctrlb = NUMONYX_V_ACTIMB_200;
  *rfr_ctrl = SDP_3430_SDRC_RFR_CTRL_200MHz;
  diff --git a/board/isee/igep0030/igep0030.c b/board/isee/igep0030/igep0030.c
  index 4f8b645..107cb7f 100644
  --- a/board/isee/igep0030/igep0030.c
  +++ b/board/isee/igep0030/igep0030.c
  @@ -64,19 +64,19 @@ void get_board_mem_timings(u32 *mcfg, u32 *ctrla, u32 
  *ctrlb, u32 *rfr_ctrl,
   {
  *mr = MICRON_V_MR_165;
   #ifdef CONFIG_BOOT_NAND
  -   *mcfg = MICRON_V_MCFG_200(512  20);
  +   *mcfg = MICRON_V_MCFG_200(256  20);
  *ctrla = MICRON_V_ACTIMA_200;
  *ctrlb = MICRON_V_ACTIMB_200;
  *rfr_ctrl = SDP_3430_SDRC_RFR_CTRL_200MHz;
   #else
  if (get_cpu_family() == CPU_OMAP34XX) {
  -   *mcfg = NUMONYX_V_MCFG_165(512  20);
  +   *mcfg = NUMONYX_V_MCFG_165(256  20);
  *ctrla = NUMONYX_V_ACTIMA_165;
  *ctrlb = NUMONYX_V_ACTIMB_165;
  *rfr_ctrl = SDP_3430_SDRC_RFR_CTRL_165MHz;
 
  } else {
  -   *mcfg = NUMONYX_V_MCFG_200(512  20);
  +   *mcfg = NUMONYX_V_MCFG_200(256  20);
  *ctrla = NUMONYX_V_ACTIMA_200;
  *ctrlb = NUMONYX_V_ACTIMB_200;
  *rfr_ctrl = SDP_3430_SDRC_RFR_CTRL_200MHz;
  --
  1.7.9.5
 
 
 Hi Enric,
 
 I missed that on the original patch, thanks for fixing it.
 
 Tested-by: Javier Martinez Canillas jav...@dowhile0.org

Applied to u-boot-ti/master, thanks!

-- 
Tom


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


Re: [U-Boot] [PATCH] tegra20: add back USE_PRIVATE_LIBGCC

2012-08-07 Thread Lucas Stach
Am Dienstag, den 07.08.2012, 11:00 -0600 schrieb Stephen Warren:
 On 08/06/2012 06:19 PM, Lucas Stach wrote:
  As discussed here [http://patchwork.ozlabs.org/patch/158202/] we want to
  use USE_PRIVATE_LIBGCC still.
  
  However commit 5286f1ce dropped it regardless. Adding this back fixes a
  hang while handing over from SPL to U-Boot on Colibri T20.
 
 This probably makes sense, but Allen should comment on this.
 
 I wonder why I haven't seen any issue with this; perhaps SPL on all the
 boards I tested ended up not using any libgcc functions? But in that
 case, why would the Colibri board end up using them?
 
Could also be a toolchain issue. My normal workflow uses a toolchain
without a libgcc, as we didn't needed it to this point.
After porting over my changes to the new SPL boot I had to switch to a
CodeSourcery toolchain containing a libgcc. So I'm not entirely sure
where the problem lies, as I varied codebase and toolchain at one. But I
confirmed that this patch works with both of my toolchains.

So yes, I'm really in favour of some comments.

Thanks,
Lucas

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


Re: [U-Boot] [PATCH] am335x_evm: enable SMSC PHY driver

2012-08-07 Thread Tom Rini
On Tue, Aug 07, 2012 at 02:50:08PM +0400, Ilya Yanok wrote:

 Beaglebone uses SMSC PHY which works incorrectly with generic PHY
 driver so enable SMSC PHY driver to fix networking problems on
 Beaglebone.
 
 Signed-off-by: Ilya Yanok ilya.ya...@cogentembedded.com

Applied to u-boot-ti/master, thanks!

-- 
Tom


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


Re: [U-Boot] [PATCH 2/2] tegra: convert gpio_config_uart to weak symbol

2012-08-07 Thread Stephen Warren
On 08/06/2012 07:18 PM, Lucas Stach wrote:
 Most boards don't need this fixup hook. To avoid a lot of empty
 implementations in board files convert it to a weak symbol.

This seems OK on the surface, but I think there may be more opportunity
for cleanup here.

In board/nvidia/common/board.c, I see both of the following:

board_init:

#ifdef CONFIG_SPI_UART_SWITCH
gpio_config_uart();
#endif


board_early_init_f:

/* Initialize periph GPIOs */
gpio_early_init();
#ifdef CONFIG_SPI_UART_SWITCH
gpio_early_init_uart();
#else
gpio_config_uart();
#endif

and in arch/arm/cpu/arm720t/tegra20/spl.c:

board_init_f:

#ifdef CONFIG_SPI_UART_SWITCH
gpio_early_init_uart();
#else
gpio_config_uart();
#endif

It sure seems like we don't need to call those two init function all
those times. Perhaps we can clarify which of the functions are actually
needed at all, and when they should be called.
___
U-Boot mailing list
U-Boot@lists.denx.de
http://lists.denx.de/mailman/listinfo/u-boot


[U-Boot] kernel upgradation 2.6.23 to 2.6.35.13 with old U-boot 1.3.0 version

2012-08-07 Thread rajeshvangari vangari
Hi,

I have MPC8313E-RDB board on which U-boot 1.3.0(along with patches) and
kernel 2.6.23(along with patches) are running.

Now, i would like to upgrade the kernel from 2.6.23 to 2.6.35.13 with old
U-boot 1.3.0(along with patches), i am facing problem in loading firmware
and ethernet interfaces like eth0/eth1 : are not attached to PHY.

Is that i have to upgrade also U-boot also to latest version?
If so what version of u-boot is compatiable with linux kernel 2.6.35.13.

Please let me know what is the issue.
ASAP.

-- 
Thanks  Regards,
Rajesh Vangari.
___
U-Boot mailing list
U-Boot@lists.denx.de
http://lists.denx.de/mailman/listinfo/u-boot


[U-Boot] [RESEND PATCH v2] i.MX28: bug fixes in PMU configuration code

2012-08-07 Thread Stathis Voukelatos
Signed-off-by: Stathis Voukelatos stathis.voukela...@linn.co.uk
Cc: Stefano Babic sba...@denx.de
Cc: Marek Vasut marek.va...@gmail.com
---

Changes for v2:
- White space cleanup

 arch/arm/cpu/arm926ejs/mx28/spl_power_init.c |   12 ++--
 1 files changed, 6 insertions(+), 6 deletions(-)

diff --git a/arch/arm/cpu/arm926ejs/mx28/spl_power_init.c 
b/arch/arm/cpu/arm926ejs/mx28/spl_power_init.c
index 4b09b0c..cc71af8 100644
--- a/arch/arm/cpu/arm926ejs/mx28/spl_power_init.c
+++ b/arch/arm/cpu/arm926ejs/mx28/spl_power_init.c
@@ -716,7 +716,7 @@ int mx28_get_vddio_power_source_off(void)
tmp = readl(power_regs-hw_power_vddioctrl);
if (tmp  POWER_VDDIOCTRL_DISABLE_FET) {
if ((tmp  POWER_VDDIOCTRL_LINREG_OFFSET_MASK) ==
-   POWER_VDDDCTRL_LINREG_OFFSET_0STEPS) {
+   POWER_VDDIOCTRL_LINREG_OFFSET_0STEPS) {
return 1;
}
}
@@ -724,7 +724,7 @@ int mx28_get_vddio_power_source_off(void)
if (!(readl(power_regs-hw_power_5vctrl) 
POWER_5VCTRL_ENABLE_DCDC)) {
if ((tmp  POWER_VDDIOCTRL_LINREG_OFFSET_MASK) ==
-   POWER_VDDDCTRL_LINREG_OFFSET_0STEPS) {
+   POWER_VDDIOCTRL_LINREG_OFFSET_0STEPS) {
return 1;
}
}
@@ -772,7 +772,7 @@ void mx28_power_set_vddio(uint32_t new_target, uint32_t 
new_brownout)
uint32_t cur_target, diff, bo_int = 0;
uint32_t powered_by_linreg = 0;
 
-   new_brownout = new_target - new_brownout;
+   new_brownout = (new_target - new_brownout + 25) / 50;
 
cur_target = readl(power_regs-hw_power_vddioctrl);
cur_target = POWER_VDDIOCTRL_TRG_MASK;
@@ -858,8 +858,8 @@ void mx28_power_set_vddio(uint32_t new_target, uint32_t 
new_brownout)
}
 
clrsetbits_le32(power_regs-hw_power_vddioctrl,
-   POWER_VDDDCTRL_BO_OFFSET_MASK,
-   new_brownout  POWER_VDDDCTRL_BO_OFFSET_OFFSET);
+   POWER_VDDIOCTRL_BO_OFFSET_MASK,
+   new_brownout  POWER_VDDIOCTRL_BO_OFFSET_OFFSET);
 }
 
 void mx28_power_set_vddd(uint32_t new_target, uint32_t new_brownout)
@@ -869,7 +869,7 @@ void mx28_power_set_vddd(uint32_t new_target, uint32_t 
new_brownout)
uint32_t cur_target, diff, bo_int = 0;
uint32_t powered_by_linreg = 0;
 
-   new_brownout = new_target - new_brownout;
+   new_brownout = (new_target - new_brownout + 12) / 25;
 
cur_target = readl(power_regs-hw_power_vdddctrl);
cur_target = POWER_VDDDCTRL_TRG_MASK;
-- 
1.7.2.5

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


[U-Boot] [PATCH] Save/restore global data pointer on API boundary

2012-08-07 Thread Leif Lindholm

Most architectures keep the global data pointer (gd) in a register.
When using the external app API, because they are calling us rather
than we calling them, this register can be corrupted.

The attached (trivial) patch saves the gd pointer at api_init(),
and restores it on every entry to syscall(). This may want to be
put behind an ifdef for those architectures that don't use a
dedicated register.

Signed-off-by: Leif Lindholm leif.lindh...@arm.com
---
diff --git a/api/api.c b/api/api.c
index a3bf60a..b911270 100644
--- a/api/api.c
+++ b/api/api.c
@@ -33,6 +33,8 @@

 #include api_private.h

+DECLARE_GLOBAL_DATA_PTR;
+
 #define DEBUG
 #undef DEBUG

@@ -600,6 +602,13 @@ static int API_display_clear(va_list ap)
 static cfp_t calls_table[API_MAXCALL] = { NULL, };

 /*
+ * The global data pointer is held in a register on most if not all
+ * architectures. Its value is not retained across the API boundary,
+ * so must be manually restored.
+ */
+static void volatile *gd_backup;
+
+/*
  * The main syscall entry point - this is not reentrant, only one call is
  * serviced until finished.
  *
@@ -620,6 +629,8 @@ int syscall(int call, int *retval, ...)
va_list ap;
int rv;

+   gd = gd_backup;
+
if (call  0 || call = calls_no) {
debugf(invalid call #%d\n, call);
return 0;
@@ -686,6 +697,7 @@ void api_init(void)
sig-checksum = crc32(0, (unsigned char *)sig,
  sizeof(struct api_signature));
debugf(syscall entry: 0x%08x\n, sig-syscall);
+   gd_backup = gd;
 }

 void platform_set_mr(struct sys_info *si, unsigned long start, unsigned long 
size,

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


[U-Boot] u-boot script question

2012-08-07 Thread Sridhar Addagada
I'm using spare bytes of the nvram of the RTC chip to determine which of my two 
kernels should be booted. Trying to scrip that in u-boot script I'm doing the 
following.
1. Load 200010 with 0 (mw.b 200010 0)
2. Load 200014 with value from nvram (i2c read 68 15 1 200014)
3. if cmp.b 200010 200014 1; then run boot0; else run boot1;fi

Is it possible to compare the contents of the memory location with a 
constant like if test #200010 == 1; then run boot0; else run boot1;fi

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


Re: [U-Boot] pull request for u-boot-tegra/master

2012-08-07 Thread Allen Martin
On Mon, Aug 06, 2012 at 11:53:03PM -0700, Albert ARIBAUD wrote:
 Hi Allen,
 
 Also, Allen:
  
  ---
  This email message is for the sole use of the intended recipient(s) and may 
  contain
  confidential information.  Any unauthorized review, use, disclosure or 
  distribution
  is prohibited.  If you are not the intended recipient, please contact the 
  sender by
  reply email and destroy all copies of the original message.
  ---
 
 Can this be removed from future e-mails to the list?

My bad, the nvpublic in my .signature prevents our mail server from
adding the legal crap, but I must have accidentaly snipped it.

Thank you for finding the regression also, sorry I didn't find it
myself.

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


Re: [U-Boot] [PATCH 1/2] tegra: init MMC from common board init

2012-08-07 Thread Lucas Stach
Am Dienstag, den 07.08.2012, 11:04 -0600 schrieb Stephen Warren:
 On 08/06/2012 07:18 PM, Lucas Stach wrote:
 
 There's no description here justifying why you want this change.
 
 I don't think the change is correct; in arch/arm/lib/board.c,
 board_init_r() calls drivers/mmc/mmc.c:mmc_initialize() which calls
 board_mmc_init(). With this patch, won't this function get called twice?
 
Please disregard this patch. It was only needed because of an error on
my side.

Sorry for the inconvenience.

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


Re: [U-Boot] [PATCH] tegra20: add back USE_PRIVATE_LIBGCC

2012-08-07 Thread Allen Martin
On Tue, Aug 07, 2012 at 10:09:00AM -0700, Lucas Stach wrote:
 Am Dienstag, den 07.08.2012, 11:00 -0600 schrieb Stephen Warren:
  On 08/06/2012 06:19 PM, Lucas Stach wrote:
   As discussed here [http://patchwork.ozlabs.org/patch/158202/] we want to
   use USE_PRIVATE_LIBGCC still.
   
   However commit 5286f1ce dropped it regardless. Adding this back fixes a
   hang while handing over from SPL to U-Boot on Colibri T20.
  
  This probably makes sense, but Allen should comment on this.
  
  I wonder why I haven't seen any issue with this; perhaps SPL on all the
  boards I tested ended up not using any libgcc functions? But in that
  case, why would the Colibri board end up using them?
  
 Could also be a toolchain issue. My normal workflow uses a toolchain
 without a libgcc, as we didn't needed it to this point.
 After porting over my changes to the new SPL boot I had to switch to a
 CodeSourcery toolchain containing a libgcc. So I'm not entirely sure
 where the problem lies, as I varied codebase and toolchain at one. But I
 confirmed that this patch works with both of my toolchains.
 
 So yes, I'm really in favour of some comments.

What's the CodeSourcery toolchain you're using?  The
USE_PRIVATE_LIBGCC was used to prevent armv5 instructions from the
toolchain's libgcc from getting into the code that executes on the AVP
which is an arm7tdmi (armv4t).  Since all the code that runs on the
AVP is built separately now as part of the SPL, using the toolchain's
libgcc should work for the main u-boot build.  USE_PRIVATE_LIBGCC is
still turned on for the SPL build.

I've tested the following toolchains on ventana and seaboard tegra20
platforms:

gcc 4.4.6 arm7tdmi-linux-gnueabi built with crosstool-ng
gcc 4.4.6 cortex_a9-linux-gnueabi built with crosstool-ng
gcc 4.6.1 cortex_a9-linux-gnueabi built with crosstool-ng

Tell me what CodeSourcery version you're using and I'll test it here
as well and see if I can reproduce the problem.

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


Re: [U-Boot] [PATCH] tegra20: add back USE_PRIVATE_LIBGCC

2012-08-07 Thread Lucas Stach
Hi Allen,

Am Dienstag, den 07.08.2012, 10:43 -0700 schrieb Allen Martin:
 On Tue, Aug 07, 2012 at 10:09:00AM -0700, Lucas Stach wrote:
  Am Dienstag, den 07.08.2012, 11:00 -0600 schrieb Stephen Warren:
   On 08/06/2012 06:19 PM, Lucas Stach wrote:
As discussed here [http://patchwork.ozlabs.org/patch/158202/] we want to
use USE_PRIVATE_LIBGCC still.

However commit 5286f1ce dropped it regardless. Adding this back fixes a
hang while handing over from SPL to U-Boot on Colibri T20.
   
   This probably makes sense, but Allen should comment on this.
   
   I wonder why I haven't seen any issue with this; perhaps SPL on all the
   boards I tested ended up not using any libgcc functions? But in that
   case, why would the Colibri board end up using them?
   
  Could also be a toolchain issue. My normal workflow uses a toolchain
  without a libgcc, as we didn't needed it to this point.
  After porting over my changes to the new SPL boot I had to switch to a
  CodeSourcery toolchain containing a libgcc. So I'm not entirely sure
  where the problem lies, as I varied codebase and toolchain at one. But I
  confirmed that this patch works with both of my toolchains.
  
  So yes, I'm really in favour of some comments.
 
 What's the CodeSourcery toolchain you're using?  The
 USE_PRIVATE_LIBGCC was used to prevent armv5 instructions from the
 toolchain's libgcc from getting into the code that executes on the AVP
 which is an arm7tdmi (armv4t).  Since all the code that runs on the
 AVP is built separately now as part of the SPL, using the toolchain's
 libgcc should work for the main u-boot build.  USE_PRIVATE_LIBGCC is
 still turned on for the SPL build.
 
 I've tested the following toolchains on ventana and seaboard tegra20
 platforms:
 
 gcc 4.4.6 arm7tdmi-linux-gnueabi built with crosstool-ng
 gcc 4.4.6 cortex_a9-linux-gnueabi built with crosstool-ng
 gcc 4.6.1 cortex_a9-linux-gnueabi built with crosstool-ng
 
 Tell me what CodeSourcery version you're using and I'll test it here
 as well and see if I can reproduce the problem.
 
I used CodeSourcery arm-2011.09-70-arm-none-linux-gnueabi to test this.

And to answer Tom's question: the failure was that the real U-Boot would
not come up after the SPL. All I could see was the one line printed by
the SPL and nothing more.

Thanks,
Lucas


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


[U-Boot] [PATCH] tegra20: usb: rework set_host_mode

2012-08-07 Thread Lucas Stach
This allows for two things:
- VBus GPIO may be used on other ports than the OTG one
- VBus GPIO may be low active if specified by DT

Signed-off-by: Lucas Stach d...@lynxeye.de
CC: Stephen Warren swar...@wwwdotorg.org
CC: Tom Warren twar...@nvidia.com
---
 arch/arm/cpu/armv7/tegra20/usb.c | 35 +++
 1 Datei geändert, 19 Zeilen hinzugefügt(+), 16 Zeilen entfernt(-)

diff --git a/arch/arm/cpu/armv7/tegra20/usb.c b/arch/arm/cpu/armv7/tegra20/usb.c
index 84260e6..77966e5 100644
--- a/arch/arm/cpu/armv7/tegra20/usb.c
+++ b/arch/arm/cpu/armv7/tegra20/usb.c
@@ -137,24 +137,27 @@ static const u8 utmip_elastic_limit = 16;
 /* UTMIP High Speed Sync Start Delay */
 static const u8 utmip_hs_sync_start_delay = 9;
 
-/* Put the port into host mode (this only works for OTG ports) */
+/* Put the port into host mode */
 static void set_host_mode(struct fdt_usb *config)
 {
-   if (config-dr_mode == DR_MODE_OTG) {
-   /* Check whether remote host from USB1 is driving VBus */
-   if (readl(config-reg-phy_vbus_sensors)  VBUS_VLD_STS)
-   return;
-
-   /*
-* If not driving, we set the GPIO to enable VBUS. We assume
-* that the pinmux is set up correctly for this.
-*/
-   if (fdt_gpio_isvalid(config-vbus_gpio)) {
-   fdtdec_setup_gpio(config-vbus_gpio);
-   gpio_direction_output(config-vbus_gpio.gpio, 1);
-   debug(set_host_mode: GPIO %d high\n,
- config-vbus_gpio.gpio);
-   }
+   /*
+* If we are an OTG port, check if remote host is driving VBus and
+* bail out in this case.
+*/
+   if (config-dr_mode == DR_MODE_OTG 
+   (readl(config-reg-phy_vbus_sensors)  VBUS_VLD_STS))
+   return;
+
+   /*
+* If not driving, we set the GPIO to enable VBUS. We assume
+* that the pinmux is set up correctly for this.
+*/
+   if (fdt_gpio_isvalid(config-vbus_gpio)) {
+   fdtdec_setup_gpio(config-vbus_gpio);
+   gpio_direction_output(config-vbus_gpio.gpio,
+   (config-vbus_gpio.flags  FDT_GPIO_ACTIVE_LOW) 
? 0 : 1);
+   debug(set_host_mode: GPIO %d %s\n, config-vbus_gpio.gpio,
+ (config-vbus_gpio.flags  FDT_GPIO_ACTIVE_LOW) ? low : 
high);
}
 }
 
-- 
1.7.11.2

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


Re: [U-Boot] kernel upgradation 2.6.23 to 2.6.35.13 with old U-boot 1.3.0 version

2012-08-07 Thread Wolfgang Denk
Dear Rajesh,

In message CAHGpkNj+E7QY7HKCJ4=BoGvOdW9vu=peib9azqzfqsoy3kw...@mail.gmail.com 
you wrote:
 
 I have MPC8313E-RDB board on which U-boot 1.3.0(along with patches) and
 kernel 2.6.23(along with patches) are running.
 
 Now, i would like to upgrade the kernel from 2.6.23 to 2.6.35.13 with old
 U-boot 1.3.0(along with patches), i am facing problem in loading firmware
 and ethernet interfaces like eth0/eth1 : are not attached to PHY.
 
 Is that i have to upgrade also U-boot also to latest version?

This makes a lot of sense in any case.

 If so what version of u-boot is compatiable with linux kernel 2.6.35.13.

Just use the latest version (top o git tree) or at least latest
release, v2012.07.

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 value of marriage is not that adults produce children, but  that
children produce adults.- Peter De Vries
___
U-Boot mailing list
U-Boot@lists.denx.de
http://lists.denx.de/mailman/listinfo/u-boot


Re: [U-Boot] [PATCH] Save/restore global data pointer on API boundary

2012-08-07 Thread Wolfgang Denk
Dear Leif Lindholm,

In message 50214a38.3000...@arm.com you wrote:
 Most architectures keep the global data pointer (gd) in a register.

This may, or may not be.  You should not make any assumptions on how
gd is implemented.

 When using the external app API, because they are calling us rather
 than we calling them, this register can be corrupted.

How can this be?  The caller should always use the same register
convention as we do - otherwise we are in a much deeper trouble.
It is up to the caller to make sure it uses the published API (resp.
ABI).

 The attached (trivial) patch saves the gd pointer at api_init(),
 and restores it on every entry to syscall(). This may want to be
 put behind an ifdef for those architectures that don't use a
 dedicated register.

This is wrong.  You make assumptions here why may be correct, but may
be wrong as well.  If we were to implement this, you would have to
make sure it always works, no matter how gd is implemented on a
specific board / platform.   But I doubt this is the right approach.
This should be done by the caller.


BTW:  Please also note that there are a few coding style errors.
Checkpatch says:

WARNING: Use of volatile is usually wrong: see 
Documentation/volatile-considered-harmful.txt
WARNING: please, no spaces at the start of a line (2 x)


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
If the odds are a million to one against something occuring,  chances
are 50-50 it will.
___
U-Boot mailing list
U-Boot@lists.denx.de
http://lists.denx.de/mailman/listinfo/u-boot


Re: [U-Boot] u-boot script question

2012-08-07 Thread Wolfgang Denk
Dear Sridhar Addagada,

In message 1344359350.57879.yahoomail...@web162902.mail.bf1.yahoo.com you 
wrote:

 Is it possible to compare the contents of the memory location with a 
 constant like if test #200010 == 1; then run boot0; else run boot1;fi

Yes, this is possible.  For example:

if itest.b *200010 == 1; then run boot0; else run boot1; fi

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 Empire didn't encourage its subjects to go far away, in case they
saw things that might disturb them. For the same reason it had  built
a  wall  around  the  entire country, patrolled by the Heavenly Guard
whose main function was to tread heavily on the fingers of any  inha-
bitants who felt they might like to step outside for five minutes for
a breath of fresh air.  - Terry Pratchett, _Mort_
___
U-Boot mailing list
U-Boot@lists.denx.de
http://lists.denx.de/mailman/listinfo/u-boot


Re: [U-Boot] [PATCH] tegra20: add back USE_PRIVATE_LIBGCC

2012-08-07 Thread Wolfgang Denk
Dear Lucas Stach,

In message 1344298788-7059-1-git-send-email-...@lynxeye.de you wrote:
 As discussed here [http://patchwork.ozlabs.org/patch/158202/] we want to
 use USE_PRIVATE_LIBGCC still.
 
 However commit 5286f1ce dropped it regardless. Adding this back fixes a
 hang while handing over from SPL to U-Boot on Colibri T20.
 
 Signed-off-by: Lucas Stach d...@lynxeye.de
 CC: Stephen Warren swar...@wwwdotorg.org
 CC: Tom Warren twar...@nvidia.com
 ---
  arch/arm/cpu/armv7/tegra20/config.mk | 2 ++
  1 Datei geändert, 2 Zeilen hinzugefügt(+)
 
 diff --git a/arch/arm/cpu/armv7/tegra20/config.mk 
 b/arch/arm/cpu/armv7/tegra20/config.mk
 index 6432e75..e666f6b 100644
 --- a/arch/arm/cpu/armv7/tegra20/config.mk
 +++ b/arch/arm/cpu/armv7/tegra20/config.mk
 @@ -23,4 +23,6 @@
  # Foundation, Inc., 59 Temple Place, Suite 330, Boston,
  # MA 02111-1307 USA
  #
 +USE_PRIVATE_LIBGCC = yes

NAK.

USE_PRIVATE_LIBGCC is a workaround for broken tool chains only.  It
must never be automatically set for any configuration.

If you know of tool chains that require this, then complain there and
have the bugs fixed with hteir upstream.

Yes, I know this may be painful to you, and it _shall_ be painful, so
that you finally take some action to have the tool chains fixed that
need so.

I will not accept anything like this in mainline.  Sorry.

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
Status quo. Latin for the mess we're in.
___
U-Boot mailing list
U-Boot@lists.denx.de
http://lists.denx.de/mailman/listinfo/u-boot


Re: [U-Boot] [PATCH] ext2fs: fix warning: 'blocknxt' may be used uninitialized with gcc 4.2

2012-08-07 Thread Wolfgang Denk
Dear Tom Rini,

In message 1344358714-14032-1-git-send-email-tr...@ti.com you wrote:
 The above warning was introduced originally in 436da3c ext2load:
 increase read speed and fixed for newer toolchains in b803273 ext2fs:
 fix warning: 'blocknxt' may be used uninitialized.  This change did not
 fix the warning with gcc 4.2, as found in ELDK 4.2.
 
 If we rework the while loop to initalize blocknxt before entering the
 warning really goes away.  Tested on am335x with an approx 7mb file and
 crc32 in U-Boot befor and after this change.
 
 Cc: Wolfgang Denk w...@denx.de
 Cc: Eric Nelson eric.nel...@boundarydevices.com
 Cc: Thierry Reding thierry.red...@avionic-design.de
 Cc: Jason Cooper u-b...@lakedaemon.net
 Cc: Andreas Bießmann andreas.de...@googlemail.com
 Cc: Reinhard Arlt reinhard.a...@esd-electronics.com
 Cc: Kim Phillips kim.phill...@freescale.com
 Signed-off-by: Tom Rini tr...@ti.com
 ---
  fs/ext2/ext2fs.c |4 ++--
  1 file changed, 2 insertions(+), 2 deletions(-)

Applied, thanks.

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
I know engineers. They love to change things. - Dr. McCoy
___
U-Boot mailing list
U-Boot@lists.denx.de
http://lists.denx.de/mailman/listinfo/u-boot


Re: [U-Boot] [RESEND PATCH v2] i.MX28: bug fixes in PMU configuration code

2012-08-07 Thread Marek Vasut
Dear Stathis Voukelatos,

 Signed-off-by: Stathis Voukelatos stathis.voukela...@linn.co.uk
 Cc: Stefano Babic sba...@denx.de
 Cc: Marek Vasut marek.va...@gmail.com
 ---

Thanks for the patch and your effort !

btw. how did you find it ? :)

Best regards,
Marek Vasut
___
U-Boot mailing list
U-Boot@lists.denx.de
http://lists.denx.de/mailman/listinfo/u-boot


Re: [U-Boot] [PATCH v2 1/7] microblaze: Add support for device tree driven board configuration

2012-08-07 Thread Stephan Linz
Am Montag, den 06.08.2012, 09:46 +0200 schrieb Michal Simek: 
 This is minimum code required to be able to use device-tree
 for u-boot initialization.
 Currently only for device driver initialization.
 
 Linker script change ensures DTB to be aligned
 for both options CONFIG_OF_EMBED and CONFIG_OF_SEPARATE.
 
 Signed-off-by: Michal Simek mon...@monstr.eu
 CC: Simon Glass s...@chromium.org
 

Acked-by: Stephan Linz l...@li-pro.net

Tested with AXI systems on Avnet S6LX150T and S6LX9 micro-evaluation.

 ---
 v2: Show message about DTB address in bootlog
 ---
  arch/microblaze/config.mk |2 ++
  arch/microblaze/cpu/u-boot.lds|1 +
  arch/microblaze/include/asm/global_data.h |1 +
  arch/microblaze/lib/board.c   |   24 
  4 files changed, 28 insertions(+), 0 deletions(-)
 
 diff --git a/arch/microblaze/config.mk b/arch/microblaze/config.mk
 index aca79e2..b4935f0 100644
 --- a/arch/microblaze/config.mk
 +++ b/arch/microblaze/config.mk
 @@ -31,3 +31,5 @@ CONFIG_STANDALONE_LOAD_ADDR ?= 0x80F0
  PLATFORM_CPPFLAGS += -ffixed-r31 -D__microblaze__
  
  LDSCRIPT ?= $(SRCTREE)/$(CPUDIR)/u-boot.lds
 +
 +CONFIG_ARCH_DEVICE_TREE := microblaze
 diff --git a/arch/microblaze/cpu/u-boot.lds b/arch/microblaze/cpu/u-boot.lds
 index ee41145..d033a28 100644
 --- a/arch/microblaze/cpu/u-boot.lds
 +++ b/arch/microblaze/cpu/u-boot.lds
 @@ -45,6 +45,7 @@ SECTIONS
   .data ALIGN(0x4):
   {
   __data_start = .;
 + dts/libdts.o (.data)
   *(.data)
   __data_end = .;
   }
 diff --git a/arch/microblaze/include/asm/global_data.h 
 b/arch/microblaze/include/asm/global_data.h
 index 6e8537c..e802e4e 100644
 --- a/arch/microblaze/include/asm/global_data.h
 +++ b/arch/microblaze/include/asm/global_data.h
 @@ -43,6 +43,7 @@ typedef struct  global_data {
   unsigned long   precon_buf_idx; /* Pre-Console buffer index */
  #endif
   unsigned long   env_addr;   /* Address  of Environment struct */
 + const void  *fdt_blob;  /* Our device tree, NULL if none */
   unsigned long   env_valid;  /* Checksum of Environment valid? */
   unsigned long   fb_base;/* base address of frame buffer */
   void**jt;   /* jump table */
 diff --git a/arch/microblaze/lib/board.c b/arch/microblaze/lib/board.c
 index b80250a..942e18c 100644
 --- a/arch/microblaze/lib/board.c
 +++ b/arch/microblaze/lib/board.c
 @@ -34,6 +34,7 @@
  #include net.h
  #include asm/processor.h
  #include asm/microblaze_intc.h
 +#include fdtdec.h
  
  DECLARE_GLOBAL_DATA_PTR;
  
 @@ -63,6 +64,9 @@ typedef int (init_fnc_t) (void);
  
  init_fnc_t *init_sequence[] = {
   env_init,
 +#ifdef CONFIG_OF_CONTROL
 + fdtdec_check_fdt,
 +#endif
   serial_init,
   console_init_f,
  #ifdef CONFIG_SYS_GPIO_0
 @@ -103,6 +107,17 @@ void board_init (void)
  
   monitor_flash_len = __end - __text_start;
  
 +#ifdef CONFIG_OF_EMBED
 + /* Get a pointer to the FDT */
 + gd-fdt_blob = _binary_dt_dtb_start;
 +#elif defined CONFIG_OF_SEPARATE
 + /* FDT is at end of image */
 + gd-fdt_blob = (void *)__end;
 +#endif
 + /* Allow the early environment to override the fdt address */
 + gd-fdt_blob = (void *)getenv_ulong(fdtcontroladdr, 16,
 + (uintptr_t)gd-fdt_blob);
 +
   /*
* The Malloc area is immediately below the monitor copy in DRAM
* aka CONFIG_SYS_MONITOR_BASE - Note there is no need for reloc_off
 @@ -121,6 +136,15 @@ void board_init (void)
   }
   }
  
 +#ifdef CONFIG_OF_CONTROL
 + /* For now, put this check after the console is ready */
 + if (fdtdec_prepare_fdt()) {
 + panic(** CONFIG_OF_CONTROL defined but no FDT - please see 
 + doc/README.fdt-control);
 + } else
 + printf(DTB: 0x%x\n, (u32)gd-fdt_blob);
 +#endif
 +
   puts (SDRAM :\n);
   printf (\t\tIcache:%s\n, icache_status() ? ON : OFF);
   printf (\t\tDcache:%s\n, dcache_status() ? ON : OFF);

-- 
Viele Grüße,
Stephan Linz
__
MB-Ref: http://www.li-pro.de/xilinx_mb:mbref:start
OpenDCC: http://www.li-pro.net/opendcc.phtml
PC/M: http://www.li-pro.net/pcm.phtml
Sourceforge: http://sourceforge.net/users/slz
Gitorious: https://gitorious.org/~slz

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


Re: [U-Boot] [PATCH v2 2/7] microblaze: board: Remove compilation warning

2012-08-07 Thread Stephan Linz
Am Montag, den 06.08.2012, 09:46 +0200 schrieb Michal Simek: 
 Variable is used when CONFIG_SYS_FLASH_CHECKSUM is used.
 
 Warning log:
 board.c: In function 'board_init':
 board.c:101: warning: unused variable 's'
 
 Signed-off-by: Michal Simek mon...@monstr.eu
 

Acked-by: Stephan Linz l...@li-pro.net

 ---
 v2: Use __mabe_unused prefix
 ---
  arch/microblaze/lib/board.c |3 ++-
  1 files changed, 2 insertions(+), 1 deletions(-)
 
 diff --git a/arch/microblaze/lib/board.c b/arch/microblaze/lib/board.c
 index 942e18c..b5f21d8 100644
 --- a/arch/microblaze/lib/board.c
 +++ b/arch/microblaze/lib/board.c
 @@ -32,6 +32,7 @@
  #include stdio_dev.h
  #include serial.h
  #include net.h
 +#include linux/compiler.h
  #include asm/processor.h
  #include asm/microblaze_intc.h
  #include fdtdec.h
 @@ -91,7 +92,7 @@ void board_init (void)
   gd = (gd_t *) (CONFIG_SYS_SDRAM_BASE + CONFIG_SYS_GBL_DATA_OFFSET);
   bd = (bd_t *) (CONFIG_SYS_SDRAM_BASE + CONFIG_SYS_GBL_DATA_OFFSET \
   - GENERATED_BD_INFO_SIZE);
 - char *s;
 + __maybe_unused char *s;
  #if defined(CONFIG_CMD_FLASH)
   ulong flash_size = 0;
  #endif

-- 
Viele Grüße,
Stephan Linz
__
MB-Ref: http://www.li-pro.de/xilinx_mb:mbref:start
OpenDCC: http://www.li-pro.net/opendcc.phtml
PC/M: http://www.li-pro.net/pcm.phtml
Sourceforge: http://sourceforge.net/users/slz
Gitorious: https://gitorious.org/~slz

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


Re: [U-Boot] [PATCH v2 3/7] microblaze: intc: Registering interrupt should return value

2012-08-07 Thread Stephan Linz
Am Montag, den 06.08.2012, 09:46 +0200 schrieb Michal Simek: 
 Return value to find out if un/registration was succesful.
 
 Signed-off-by: Michal Simek mon...@monstr.eu
 
 ---
 v2: Add comment to header file to describe parameters and return codes
 ---
  arch/microblaze/cpu/interrupts.c  |   16 +---
  arch/microblaze/include/asm/microblaze_intc.h |   11 ++-
  2 files changed, 19 insertions(+), 8 deletions(-)
 
 diff --git a/arch/microblaze/cpu/interrupts.c 
 b/arch/microblaze/cpu/interrupts.c
 index ee67082..08f6bad 100644
 --- a/arch/microblaze/cpu/interrupts.c
 +++ b/arch/microblaze/cpu/interrupts.c
 @@ -91,14 +91,13 @@ static void disable_one_interrupt(int irq)
  #endif
  }
  
 -/* adding new handler for interrupt */
 -void install_interrupt_handler (int irq, interrupt_handler_t * hdlr, void 
 *arg)
 +int install_interrupt_handler(int irq, interrupt_handler_t *hdlr, void *arg)
  {
   struct irq_action *act;
   /* irq out of range */
   if ((irq  0) || (irq  irq_no)) {
   puts (IRQ out of range\n);
 - return;
 + return -1;
   }
   act = vecs[irq];
   if (hdlr) { /* enable */
 @@ -106,11 +105,14 @@ void install_interrupt_handler (int irq, 
 interrupt_handler_t * hdlr, void *arg)
   act-arg = arg;
   act-count = 0;
   enable_one_interrupt (irq);
 - } else {/* disable */
 - act-handler = (interrupt_handler_t *) def_hdlr;
 - act-arg = (void *)irq;
 - disable_one_interrupt (irq);
 + return 0;
   }
 +
 + /* Disable */
 + act-handler = (interrupt_handler_t *) def_hdlr;
 + act-arg = (void *)irq;
 + disable_one_interrupt(irq);
 + return 1;
  }
  
  /* initialization interrupt controller - hardware */
 diff --git a/arch/microblaze/include/asm/microblaze_intc.h 
 b/arch/microblaze/include/asm/microblaze_intc.h
 index 6142b9c..e9640f5 100644
 --- a/arch/microblaze/include/asm/microblaze_intc.h
 +++ b/arch/microblaze/include/asm/microblaze_intc.h
 @@ -39,7 +39,16 @@ struct irq_action {
   int count; /* number of interrupt */
  };
  
 -void install_interrupt_handler (int irq, interrupt_handler_t * hdlr,
 +/**
 + * Register and unregister interrupt handler rutines
 + *
 + * @param irqIRQ number
 + * @param hdlr   Interrupt handler rutine
 + * @param argPointer to argument which is passed to int. handler 
 rutine
 + * @return   0 if registration pass, 1 if unregistration pass,
 + *   or an error code  0 otherwise
 + */
 +int install_interrupt_handler(int irq, interrupt_handler_t *hdlr,
  void *arg);

Hi Michal,

why not two different functions here, one for registration, another one
for unregistration? To mee it is puzzling to use a 'install' function
for unregistration ...

... whatever, you should evaluate the return code in fsl_init2() too.

 
  int interrupts_init(void);


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


Re: [U-Boot] [PATCH v2 4/7] microblaze: intc: Coding style cleanup

2012-08-07 Thread Stephan Linz
Am Montag, den 06.08.2012, 09:46 +0200 schrieb Michal Simek: 
 Just coding style cleanup.
 Remove unneeded externs.
 
 Signed-off-by: Michal Simek mon...@monstr.eu
 Acked-by: Simon Glass s...@chromium.org
 

Acked-by: Stephan Linz l...@li-pro.net

 --
 v2: Rebase - depends on previous intc patch
 ---
  arch/microblaze/cpu/interrupts.c |   26 +-
  1 files changed, 13 insertions(+), 13 deletions(-)
 
 diff --git a/arch/microblaze/cpu/interrupts.c 
 b/arch/microblaze/cpu/interrupts.c
 index 08f6bad..7f2ee64 100644
 --- a/arch/microblaze/cpu/interrupts.c
 +++ b/arch/microblaze/cpu/interrupts.c
 @@ -32,15 +32,12 @@
  
  #undef DEBUG_INT
  
 -extern void microblaze_disable_interrupts (void);
 -extern void microblaze_enable_interrupts (void);
 -
 -void enable_interrupts (void)
 +void enable_interrupts(void)
  {
   MSRSET(0x2);
  }
  
 -int disable_interrupts (void)
 +int disable_interrupts(void)
  {
   unsigned int msr;
  
 @@ -58,20 +55,21 @@ microblaze_intc_t *intc;
  /* default handler */
  static void def_hdlr(void)
  {
 - puts (def_hdlr\n);
 + puts(def_hdlr\n);
  }
  
  static void enable_one_interrupt(int irq)
  {
   int mask;
   int offset = 1;
 +
   offset = irq;
   mask = intc-ier;
   intc-ier = (mask | offset);
  #ifdef DEBUG_INT
 - printf (Enable one interrupt irq %x - mask %x,ier %x\n, offset, mask,
 + printf(Enable one interrupt irq %x - mask %x,ier %x\n, offset, mask,
   intc-ier);
 - printf (INTC isr %x, ier %x, iar %x, mer %x\n, intc-isr, intc-ier,
 + printf(INTC isr %x, ier %x, iar %x, mer %x\n, intc-isr, intc-ier,
   intc-iar, intc-mer);
  #endif
  }
 @@ -80,13 +78,14 @@ static void disable_one_interrupt(int irq)
  {
   int mask;
   int offset = 1;
 +
   offset = irq;
   mask = intc-ier;
   intc-ier = (mask  ~offset);
  #ifdef DEBUG_INT
 - printf (Disable one interrupt irq %x - mask %x,ier %x\n, irq, mask,
 + printf(Disable one interrupt irq %x - mask %x,ier %x\n, irq, mask,
   intc-ier);
 - printf (INTC isr %x, ier %x, iar %x, mer %x\n, intc-isr, intc-ier,
 + printf(INTC isr %x, ier %x, iar %x, mer %x\n, intc-isr, intc-ier,
   intc-iar, intc-mer);
  #endif
  }
 @@ -94,9 +93,10 @@ static void disable_one_interrupt(int irq)
  int install_interrupt_handler(int irq, interrupt_handler_t *hdlr, void *arg)
  {
   struct irq_action *act;
 +
   /* irq out of range */
   if ((irq  0) || (irq  irq_no)) {
 - puts (IRQ out of range\n);
 + puts(IRQ out of range\n);
   return -1;
   }
   act = vecs[irq];
 @@ -124,7 +124,7 @@ static void intc_init(void)
   /* XIntc_Start - hw_interrupt enable and all interrupt enable */
   intc-mer = 0x3;
  #ifdef DEBUG_INT
 - printf (INTC isr %x, ier %x, iar %x, mer %x\n, intc-isr, intc-ier,
 + printf(INTC isr %x, ier %x, iar %x, mer %x\n, intc-isr, intc-ier,
   intc-iar, intc-mer);
  #endif
  }
 @@ -159,7 +159,7 @@ int interrupts_init(void)
   return 0;
  }
  
 -void interrupt_handler (void)
 +void interrupt_handler(void)
  {
   int irqs = intc-ivr;   /* find active interrupt */
   int mask = 1;

-- 
Viele Grüße,
Stephan Linz
__
MB-Ref: http://www.li-pro.de/xilinx_mb:mbref:start
OpenDCC: http://www.li-pro.net/opendcc.phtml
PC/M: http://www.li-pro.net/pcm.phtml
Sourceforge: http://sourceforge.net/users/slz
Gitorious: https://gitorious.org/~slz

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


Re: [U-Boot] [PATCH v2 5/7] microblaze: timer: Prepare for device-tree initialization

2012-08-07 Thread Stephan Linz
Hi Michal,

looks fine, but ... (see below)

Am Montag, den 06.08.2012, 09:46 +0200 schrieb Michal Simek: 
 microblaze: Fix CONFIG_SYS_HZ usage in board config
 
 Do not use hardcoded value. Use CONFIG_SYS_HZ instead.
 Separate static configuration to single block.
 
 Signed-off-by: Michal Simek mon...@monstr.eu
 
 ---
 v2: Fix irq type irq == -1 means no IRQ
 ---
  arch/microblaze/cpu/timer.c|   69 ---
  arch/microblaze/include/asm/microblaze_timer.h |3 +
  arch/microblaze/lib/board.c|5 --
  include/configs/microblaze-generic.h   |   12 +
  4 files changed, 41 insertions(+), 48 deletions(-)
 
 diff --git a/arch/microblaze/cpu/timer.c b/arch/microblaze/cpu/timer.c
 index cc6b897..1330401 100644
 --- a/arch/microblaze/cpu/timer.c
 +++ b/arch/microblaze/cpu/timer.c
 @@ -27,42 +27,30 @@
  #include asm/microblaze_intc.h
  
  volatile int timestamp = 0;
 +microblaze_timer_t *tmr;
  
 -#ifdef CONFIG_SYS_TIMER_0
  ulong get_timer (ulong base)
  {
 - return (timestamp - base);
 + if (tmr)
 + return timestamp - base;
 + return timestamp++ - base;
  }
 -#else
 -ulong get_timer (ulong base)
 -{
 - return (timestamp++ - base);
 -}
 -#endif
  
 -#ifdef CONFIG_SYS_TIMER_0
  void __udelay(unsigned long usec)
  {
 - int i;
 + u32 i;
  
 - i = get_timer(0);
 - while ((get_timer(0) - i)  (usec / 1000))
 - ;
 + if (tmr) {
 + i = get_timer(0);
 + while ((get_timer(0) - i)  (usec / 1000))
 + ;
 + } else {
 + for (i = 0; i  (usec * XILINX_CLOCK_FREQ / 1000); i++)
 + ;
 + }
  }
 -#else
 -void __udelay(unsigned long usec)
 -{
 - unsigned int i;
  
 - for (i = 0; i  (usec * CONFIG_XILINX_CLOCK_FREQ / 1000); i++)
 - ;
 -}
 -#endif
 -
 -#ifdef CONFIG_SYS_TIMER_0
 -microblaze_timer_t *tmr = (microblaze_timer_t *) (CONFIG_SYS_TIMER_0_ADDR);
 -
 -void timer_isr (void *arg)
 +static void timer_isr(void *arg)
  {
   timestamp++;
   tmr-control = tmr-control | TIMER_INTERRUPT;
 @@ -70,15 +58,30 @@ void timer_isr (void *arg)
  
  int timer_init (void)
  {
 - tmr-loadreg = CONFIG_SYS_TIMER_0_PRELOAD;
 - tmr-control = TIMER_INTERRUPT | TIMER_RESET;
 - tmr-control =
 - TIMER_ENABLE | TIMER_ENABLE_INTR | TIMER_RELOAD | TIMER_DOWN_COUNT;
 - timestamp = 0;
 - install_interrupt_handler (CONFIG_SYS_TIMER_0_IRQ, timer_isr, (void 
 *)tmr);
 + int irq = -1;
 + u32 preload = 0;
 + u32 ret = 0;
 +
 +#if defined(CONFIG_SYS_TIMER_0_ADDR)  defined(CONFIG_SYS_INTC_0_NUM)
 + preload = XILINX_CLOCK_FREQ / CONFIG_SYS_HZ;
 + irq = CONFIG_SYS_TIMER_0_IRQ;
 + tmr = (microblaze_timer_t *) (CONFIG_SYS_TIMER_0_ADDR);
 +#endif
 +
 + if (tmr  preload  irq = 0) {
 + tmr-loadreg = preload;
 + tmr-control = TIMER_INTERRUPT | TIMER_RESET;
 + tmr-control = TIMER_ENABLE | TIMER_ENABLE_INTR |\
 + TIMER_RELOAD | TIMER_DOWN_COUNT;
 + timestamp = 0;
 + ret = install_interrupt_handler (irq, timer_isr, (void *)tmr);
 + if (ret)
 + tmr = NULL;
 + }
 +
 + /* No problem if timer is not found/initialized */
   return 0;
  }
 -#endif
  
  /*
   * This function is derived from PowerPC code (read timebase as long long).
 diff --git a/arch/microblaze/include/asm/microblaze_timer.h 
 b/arch/microblaze/include/asm/microblaze_timer.h
 index 844c8db..28e8b02 100644
 --- a/arch/microblaze/include/asm/microblaze_timer.h
 +++ b/arch/microblaze/include/asm/microblaze_timer.h
 @@ -39,3 +39,6 @@ typedef volatile struct microblaze_timer_t {
   int loadreg; /* load register TLR */
   int counter; /* timer/counter register */
  } microblaze_timer_t;
 +
 +int timer_init(void);
 +
 diff --git a/arch/microblaze/lib/board.c b/arch/microblaze/lib/board.c
 index b5f21d8..fde109f 100644
 --- a/arch/microblaze/lib/board.c
 +++ b/arch/microblaze/lib/board.c
 @@ -42,9 +42,6 @@ DECLARE_GLOBAL_DATA_PTR;
  #ifdef CONFIG_SYS_GPIO_0
  extern int gpio_init (void);
  #endif
 -#ifdef CONFIG_SYS_TIMER_0
 -extern int timer_init (void);
 -#endif
  #ifdef CONFIG_SYS_FSL_2
  extern void fsl_init2 (void);
  #endif
 @@ -74,9 +71,7 @@ init_fnc_t *init_sequence[] = {
   gpio_init,
  #endif
   interrupts_init,
 -#ifdef CONFIG_SYS_TIMER_0
   timer_init,
 -#endif
  #ifdef CONFIG_SYS_FSL_2
   fsl_init2,
  #endif
 diff --git a/include/configs/microblaze-generic.h 
 b/include/configs/microblaze-generic.h
 index 1266cf7..21ddb2b 100644
 --- a/include/configs/microblaze-generic.h
 +++ b/include/configs/microblaze-generic.h
 @@ -115,19 +115,11 @@
  #endif
  
  /* timer */
 -#ifdef XILINX_TIMER_BASEADDR
 -# if (XILINX_TIMER_IRQ != -1)
 -#  define CONFIG_SYS_TIMER_0 1
 +#if defined(XILINX_TIMER_BASEADD)  defined(XILINX_TIMER_IRQ)

typo here 

Re: [U-Boot] [PATCH v2 6/7] microblaze: Clean microblaze initialization

2012-08-07 Thread Stephan Linz
Am Montag, den 06.08.2012, 09:46 +0200 schrieb Michal Simek: 
 Move board specific function to board_init function in board/ folder
 Remove externs from generic board.c
 Use board_init_f function in board.c file.
 
 Signed-off-by: Michal Simek mon...@monstr.eu
 

Acked-by: Stephan Linz l...@li-pro.net

Tested with AXI systems on Avnet S6LX150T and S6LX9 micro-evaluation.

 ---
 v2: Remove global pointer
 Define board_init function in header
 ---
  arch/microblaze/cpu/start.S|2 +-
  arch/microblaze/include/asm/processor.h|3 +++
  arch/microblaze/lib/board.c|   17 +++--
  .../xilinx/microblaze-generic/microblaze-generic.c |9 +
  4 files changed, 16 insertions(+), 15 deletions(-)
 
 diff --git a/arch/microblaze/cpu/start.S b/arch/microblaze/cpu/start.S
 index 8a2f634..8564c4e 100644
 --- a/arch/microblaze/cpu/start.S
 +++ b/arch/microblaze/cpu/start.S
 @@ -149,7 +149,7 @@ clear_bss:
   cmp r6, r5, r4 /* check if we have reach the end */
   bneir6, 2b
  3:   /* jumping to board_init */
 - braiboard_init
 + braiboard_init_f
  1:   bri 1b
  
  /*
 diff --git a/arch/microblaze/include/asm/processor.h 
 b/arch/microblaze/include/asm/processor.h
 index 2295d0a..2c4d5ff 100644
 --- a/arch/microblaze/include/asm/processor.h
 +++ b/arch/microblaze/include/asm/processor.h
 @@ -28,4 +28,7 @@
  extern char __end[];
  extern char __text_start[];
  
 +/* Microblaze board initialization function */
 +void board_init(void);
 +
  #endif /* __ASM_MICROBLAZE_PROCESSOR_H */
 diff --git a/arch/microblaze/lib/board.c b/arch/microblaze/lib/board.c
 index fde109f..b450367 100644
 --- a/arch/microblaze/lib/board.c
 +++ b/arch/microblaze/lib/board.c
 @@ -39,13 +39,6 @@
  
  DECLARE_GLOBAL_DATA_PTR;
  
 -#ifdef CONFIG_SYS_GPIO_0
 -extern int gpio_init (void);
 -#endif
 -#ifdef CONFIG_SYS_FSL_2
 -extern void fsl_init2 (void);
 -#endif
 -
  /*
   * All attempts to come up with a common initialization sequence
   * that works for all boards and architectures failed: some of the
 @@ -67,20 +60,14 @@ init_fnc_t *init_sequence[] = {
  #endif
   serial_init,
   console_init_f,
 -#ifdef CONFIG_SYS_GPIO_0
 - gpio_init,
 -#endif
   interrupts_init,
   timer_init,
 -#ifdef CONFIG_SYS_FSL_2
 - fsl_init2,
 -#endif
   NULL,
  };
  
  unsigned long monitor_flash_len;
  
 -void board_init (void)
 +void board_init_f(ulong not_used)
  {
   bd_t *bd;
   init_fnc_t **init_fnc_ptr;
 @@ -189,6 +176,8 @@ void board_init (void)
   /* Initialize the console (after the relocation and devices init) */
   console_init_r();
  
 + board_init();
 +
   /* Initialize from environment */
   load_addr = getenv_ulong(loadaddr, 16, load_addr);
  
 diff --git a/board/xilinx/microblaze-generic/microblaze-generic.c 
 b/board/xilinx/microblaze-generic/microblaze-generic.c
 index a1e2bfe..b75e62c 100644
 --- a/board/xilinx/microblaze-generic/microblaze-generic.c
 +++ b/board/xilinx/microblaze-generic/microblaze-generic.c
 @@ -28,6 +28,7 @@
  #include common.h
  #include config.h
  #include netdev.h
 +#include asm/processor.h
  #include asm/microblaze_intc.h
  #include asm/asm.h
  
 @@ -69,6 +70,14 @@ int fsl_init2 (void) {
  }
  #endif
  
 +void board_init(void)
 +{
 + gpio_init();
 +#ifdef CONFIG_SYS_FSL_2
 + fsl_init2();
 +#endif
 +}
 +
  int board_eth_init(bd_t *bis)
  {
   int ret = 0;

-- 
Viele Grüße,
Stephan Linz
__
MB-Ref: http://www.li-pro.de/xilinx_mb:mbref:start
OpenDCC: http://www.li-pro.net/opendcc.phtml
PC/M: http://www.li-pro.net/pcm.phtml
Sourceforge: http://sourceforge.net/users/slz
Gitorious: https://gitorious.org/~slz

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


Re: [U-Boot] [PATCH v2 7/7] microblaze: board: Use bi_flashstart instead of CONFIG_SYS_FLASH_BASE

2012-08-07 Thread Stephan Linz
Am Montag, den 06.08.2012, 09:46 +0200 schrieb Michal Simek: 
 Prepare for device-tree driven configuration.
 
 Signed-off-by: Michal Simek mon...@monstr.eu
 

Acked-by: Stephan Linz l...@li-pro.net

Tested with AXI systems on Avnet S6LX150T and S6LX9 micro-evaluation.

 ---
 v2: Move bi_flashsize and bi_flashoffset from other patch
 ---
  arch/microblaze/lib/board.c |   10 ++
  1 files changed, 6 insertions(+), 4 deletions(-)
 
 diff --git a/arch/microblaze/lib/board.c b/arch/microblaze/lib/board.c
 index b450367..674b573 100644
 --- a/arch/microblaze/lib/board.c
 +++ b/arch/microblaze/lib/board.c
 @@ -136,9 +136,8 @@ void board_init_f(ulong not_used)
  #if defined(CONFIG_CMD_FLASH)
   puts (Flash: );
   bd-bi_flashstart = CONFIG_SYS_FLASH_BASE;
 - if (0  (flash_size = flash_init ())) {
 - bd-bi_flashsize = flash_size;
 - bd-bi_flashoffset = CONFIG_SYS_FLASH_BASE + flash_size;
 + flash_size = flash_init();
 + if (bd-bi_flashstart  flash_size  0) {
  # ifdef CONFIG_SYS_FLASH_CHECKSUM
   print_size (flash_size, );
   /*
 @@ -149,13 +148,16 @@ void board_init_f(ulong not_used)
   s = getenv (flashchecksum);
   if (s  (*s == 'y')) {
   printf (  CRC: %08X,
 - crc32 (0, (const unsigned char *) 
 CONFIG_SYS_FLASH_BASE, flash_size)
 + crc32(0, (const u8 *)bd-bi_flashstart,
 + flash_size)
   );
   }
   putc ('\n');
  # else   /* !CONFIG_SYS_FLASH_CHECKSUM */
   print_size (flash_size, \n);
  # endif /* CONFIG_SYS_FLASH_CHECKSUM */
 + bd-bi_flashsize = flash_size;
 + bd-bi_flashoffset = bd-bi_flashstart + flash_size;
   } else {
   puts (Flash init FAILED);
   bd-bi_flashstart = 0;

-- 
Viele Grüße,
Stephan Linz
__
MB-Ref: http://www.li-pro.de/xilinx_mb:mbref:start
OpenDCC: http://www.li-pro.net/opendcc.phtml
PC/M: http://www.li-pro.net/pcm.phtml
Sourceforge: http://sourceforge.net/users/slz
Gitorious: https://gitorious.org/~slz

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


Re: [U-Boot] [PATCH] tegra20: add back USE_PRIVATE_LIBGCC

2012-08-07 Thread Allen Martin
On Tue, Aug 07, 2012 at 10:53:00AM -0700, Lucas Stach wrote:
 Hi Allen,
 
  Tell me what CodeSourcery version you're using and I'll test it here
  as well and see if I can reproduce the problem.
  
 I used CodeSourcery arm-2011.09-70-arm-none-linux-gnueabi to test this.
 
 And to answer Tom's question: the failure was that the real U-Boot would
 not come up after the SPL. All I could see was the one line printed by
 the SPL and nothing more.
 

I'm able to reproduce this on seaboard with the CodeSourcery
arm-2011.09-70-arm-none-linux-gnueabi.  I tried adding back
USE_PRIVATE_LIBGCC=yes and I'm still seeing it fail the same way
though, so maybe what I'm seeing is different or it's a combination of
things.  Regardless I have a JTAG debugger on the system so I'll drill
down until I figure out what's wrong.

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


Re: [U-Boot] [PATCH] tegra20: usb: rework set_host_mode

2012-08-07 Thread Stephen Warren
On 08/07/2012 12:19 PM, Lucas Stach wrote:
 This allows for two things:
 - VBus GPIO may be used on other ports than the OTG one
 - VBus GPIO may be low active if specified by DT

Hmmm. Why would the board have control over whether VBUS is asserted if
the port isn't intended to operate in OTG mode?

Perhaps power-saving? In that case, I wonder if representing this as a
regulator rather than as a VBUS GPIO would make more sense?

But irrespective of those questions, I'm inclined to think the patch is
probably OK.
___
U-Boot mailing list
U-Boot@lists.denx.de
http://lists.denx.de/mailman/listinfo/u-boot


Re: [U-Boot] [PATCH] tegra20: usb: rework set_host_mode

2012-08-07 Thread Lucas Stach
Am Dienstag, den 07.08.2012, 14:21 -0600 schrieb Stephen Warren:
 On 08/07/2012 12:19 PM, Lucas Stach wrote:
  This allows for two things:
  - VBus GPIO may be used on other ports than the OTG one
  - VBus GPIO may be low active if specified by DT
 
 Hmmm. Why would the board have control over whether VBUS is asserted if
 the port isn't intended to operate in OTG mode?
 
 Perhaps power-saving? In that case, I wonder if representing this as a
 regulator rather than as a VBUS GPIO would make more sense?
 
 But irrespective of those questions, I'm inclined to think the patch is
 probably OK.
 
On Colibri the second USB Port is powered down by default and only
powered up if we are really going to use it. And the GPIO does exactly
what it tells you from it's name: turn on VBus by triggering the USB
power switch.
Thinking about a regulator for this in U-Boot is a bit of an overkill,
for the Linux kernel this might be another story.

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


Re: [U-Boot] [PATCH] disk/partition: Fix the depend for all the partitions file

2012-08-07 Thread Wolfgang Denk
Dear Zhong Hongbo,

In message 1342860534-4710-1-git-send-email-bocui...@gmail.com you wrote:
 From: Zhong Hongbo bocui...@gmail.com
 
 all the patitions should depend CONFIG_PARTITIONS, no the
 CONFIG_CMD_$(device). The device symbol may be SATA, SCSI,
 USB, MMC, SYSTEMACE. Or else when the filesystem command be
 enabled, But board's configure file can not include any
 CONFIG_CMD_$(device), The u-boot will fail build. For example:
 CONFIG_CMD_EXT2 is defined in smdk6400.h, but the boards can
 not define any disk device. The error of build as following:
 ---

It appears some text is missing here - most of all you SoB line...

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
Vor allem kein Gedanke! Nichts ist kompromittierender als ein  Gedan-
ke!- Friedrich Wilhelm Nietzsche _Der Fall Wagner_ (1888)
___
U-Boot mailing list
U-Boot@lists.denx.de
http://lists.denx.de/mailman/listinfo/u-boot


Re: [U-Boot] early_malloc outline

2012-08-07 Thread Wolfgang Denk
Dear Tomas,

In message caeb7qlananotlqfzpaj2nmgndpv6qinczntvbz6fhg2yv99...@mail.gmail.com 
you wrote:
 Dear Wolfgang,
 
 On Wed, Aug 1, 2012 at 9:09 PM, Wolfgang Denk w...@denx.de wrote:
 
  Hm... I have to admit that I am not really happy about such an
  explanation.  The statement that other guys want something is not
  exactly an explanation of a concept that I can understand, and without
  being able to understand it, I don't buy it.
 
 I wanted to say that this is outcome of an informal discussion with
 Marek Vasut, Pavel Hermann and Viktor Krivak, who are working on
 different parts of DM (and perhaps I should say that it is our school
 project to implement driver model for U-Boot, which is not relevant
 information to the current discussion, but it may explain why we
 closely cooperate on DM among ourselves). Statements like I/we want
 were not any notices nor decisions nor whatever final but rather
 wishes or ideas (mine or from others). Although we have elaborate
 outline of DM and supporting subsystems it is still subject to
 changes.

As long as you don't actually EXPLAIN the rationale behind any
suggestions or decisions, it is impossible to comment (otherwise we
run the rist to repeat all your previous discussions, and this would
be just a waste of time).

So please explain your concepts, and the rationale.

 Each early heap (assuming we can have more than one contiguous early
 heaps as Graeme suggested) has a pointer to the beginning (and it is
 valid only before relocation and before caches are enabled). I can
 memcpy() the used part of the early heap somewhere else and preserve
 the original heap beginning pointer (I have in mind preservation of
 the pointers in GD; it is implementation detail indeed, but I would
 rather note this in order make sure that I am not working with false
 assumption about possibility of preserving pointers like that). Then I
 can compute copied_heap_address = original_address +
 (copied_heap_begin - original_heap_begin).

Sure you can copy the content.

But relocation means that you have to add the address difference
(aka relocation offset) to _all_ pointers pointing into this area.
And there is no way to keep track of _all_ such pointers.


I am convinced that you _cannot_ reliably relocate the malloc arena if
you use the standard malloc//calloc/free interface for early
allocation.

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
No problem is insoluble.
-- Dr. Janet Wallace, The Deadly Years, stardate 3479.4
___
U-Boot mailing list
U-Boot@lists.denx.de
http://lists.denx.de/mailman/listinfo/u-boot


Re: [U-Boot] [PATCH] spi: Fix merge conflicts - Makefile

2012-08-07 Thread Wolfgang Denk
Dear Michal Simek,

In message 1344001064-762-1-git-send-email-mon...@monstr.eu you wrote:
 The patch spi: tegra2: rename tegra2_spi.* to tegra_spi.*
 (sha1: edffa63d3d6e76991998789f9fcbaa483731ca65)
 renamed tegra2_spi.c to tegra_spi.c
 
 and the patch Merge branch 'master' of git://git.denx.de/u-boot-microblaze
 (sha1: d978780b2e676c005460cd561f4f15b5220bdf49)
 
 has wrongly resolved confict.
 
 This patch fix it.
 
 Signed-off-by: Michal Simek mon...@monstr.eu
 ---
  drivers/spi/Makefile |1 -
  1 files changed, 0 insertions(+), 1 deletions(-)

Applied, thanks.

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
He is truly wise who gains wisdom from another's mishap.
___
U-Boot mailing list
U-Boot@lists.denx.de
http://lists.denx.de/mailman/listinfo/u-boot


Re: [U-Boot] [PATCH v2] README: Reference nand monitor commands in U-Boot README

2012-08-07 Thread Wolfgang Denk
Dear Karl O. Pinc,

In message 1344009441-854-1-git-send-email-...@meme.com you wrote:
 Reference nand monitor commands in U-Boot README
 
 Signed-off-by: Karl O. Pinc k...@meme.com
 ---
 Resend of patch to ease review/commit process.
 
 Changes for v2:
   - include a commit message
   - Change message subject to README: instead of cosmetic:
 
  README |1 +
  1 files changed, 1 insertions(+), 0 deletions(-)
 
 diff --git a/README b/README
 index fb9d904..6bb5992 100644
 --- a/README
 +++ b/README
 @@ -3725,6 +3725,7 @@ saveenv - save environment variables to persistent 
 storage
  protect - enable or disable FLASH write protection
  erase- erase FLASH memory
  flinfo   - print FLASH memory information
 +nand - NAND memory operations (see doc/README.nand)
  bdinfo   - print Board Info structure
  iminfo   - print header information for application image
  coninfo - print console devices and informations

While we are at it - can we please sort this list, as recent versions
of U-Boot would do?

Thanks.

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
If I ever needed a brain transplant, I'd choose a teenager's  because
I'd want a brain that had never been used.
___
U-Boot mailing list
U-Boot@lists.denx.de
http://lists.denx.de/mailman/listinfo/u-boot


Re: [U-Boot] [PATCH] MAINTAINERS: cleanup for km ppc boards

2012-08-07 Thread Wolfgang Denk
Dear Holger Brunck,

In message 1344255393-18421-1-git-send-email-holger.bru...@keymile.com you 
wrote:
 Signed-off-by: Holger Brunck holger.bru...@keymile.com
 cc: Heiko Schocher h...@denx.de
 cc: Valentin Longchamp valentin.longch...@keymile.com
 cc: Gerlando Falauto gerlando.fala...@keymile.com
 
 ---
  MAINTAINERS |6 +++---
  1 files changed, 3 insertions(+), 3 deletions(-)

Applied, thanks.

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
Celestial navigation is based on the premise that the  Earth  is  the
center  of  the  universe.  The  premise is wrong, but the navigation
works. An incorrect model can be a useful tool.   - Kelvin Throop III
___
U-Boot mailing list
U-Boot@lists.denx.de
http://lists.denx.de/mailman/listinfo/u-boot


Re: [U-Boot] [PATCH 1/2] serial: Support serial multi for Microblaze

2012-08-07 Thread Stephan Linz
Am Dienstag, den 07.08.2012, 14:20 +0200 schrieb Michal Simek: 
 enable serial multi for Microblaze.
 
 Signed-off-by: Michal Simek mon...@monstr.eu

Acked-by: Stephan Linz l...@li-pro.net

 ---
  include/serial.h |3 ++-
  1 files changed, 2 insertions(+), 1 deletions(-)
 
 diff --git a/include/serial.h b/include/serial.h
 index 5173499..9475779 100644
 --- a/include/serial.h
 +++ b/include/serial.h
 @@ -31,7 +31,8 @@ extern struct serial_device *default_serial_console(void);
   defined(CONFIG_MB86R0x) || defined(CONFIG_MPC5xxx) || \
   defined(CONFIG_MPC83xx) || defined(CONFIG_MPC85xx) || \
   defined(CONFIG_MPC86xx) || defined(CONFIG_SYS_SC520) || \
 - defined(CONFIG_TEGRA2) || defined(CONFIG_SYS_COREBOOT)
 + defined(CONFIG_TEGRA2) || defined(CONFIG_SYS_COREBOOT) || \
 + defined(CONFIG_MICROBLAZE)
  extern struct serial_device serial0_device;
  extern struct serial_device serial1_device;
  #if defined(CONFIG_SYS_NS16550_SERIAL)

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


Re: [U-Boot] [PATCH 2/2] serial: uartlite: Init all uartlites for serial multi

2012-08-07 Thread Stephan Linz
Am Dienstag, den 07.08.2012, 14:20 +0200 schrieb Michal Simek: 
 Initialize all possible uartlites and return the first
 initialized port. For static configuration is initialization
 done in userial_ports array.
 
 Signed-off-by: Michal Simek mon...@monstr.eu

Acked-by: Stephan Linz l...@li-pro.net

Tested with AXI system on Avnet S6LX9 micro-evaluation.

 ---
  drivers/serial/serial_xuartlite.c |   34 +++---
  1 files changed, 19 insertions(+), 15 deletions(-)
 
 diff --git a/drivers/serial/serial_xuartlite.c 
 b/drivers/serial/serial_xuartlite.c
 index 3a38f9e..2bdb68b 100644
 --- a/drivers/serial/serial_xuartlite.c
 +++ b/drivers/serial/serial_xuartlite.c
 @@ -89,11 +89,17 @@ int uartlite_serial_tstc(const int port)
   return in_be32(regs-status)  SR_RX_FIFO_VALID_DATA;
  }
  
 +static int uartlite_serial_init(const int port)
 +{
 + if (userial_ports[port])
 + return 0;
 + return -1;
 +}
 +
  #if !defined(CONFIG_SERIAL_MULTI)
  int serial_init(void)
  {
 - /* FIXME: Nothing for now. We should initialize fifo, etc */
 - return 0;
 + return uartlite_serial_init(0);
  }
  
  void serial_setbrg(void)
 @@ -126,7 +132,7 @@ int serial_tstc(void)
  /* Multi serial device functions */
  #define DECLARE_ESERIAL_FUNCTIONS(port) \
   int userial##port##_init(void) \
 - { return(0); } \
 + { return uartlite_serial_init(port); } \
   void userial##port##_setbrg(void) {} \
   int userial##port##_getc(void) \
   { return uartlite_serial_getc(port); } \
 @@ -163,17 +169,15 @@ struct serial_device uartlite_serial3_device =
  
  __weak struct serial_device *default_serial_console(void)
  {
 -# ifdef XILINX_UARTLITE_BASEADDR
 - return uartlite_serial0_device;
 -# endif /* XILINX_UARTLITE_BASEADDR */
 -# ifdef XILINX_UARTLITE_BASEADDR1
 - return uartlite_serial1_device;
 -# endif /* XILINX_UARTLITE_BASEADDR1 */
 -# ifdef XILINX_UARTLITE_BASEADDR2
 - return uartlite_serial2_device;
 -# endif /* XILINX_UARTLITE_BASEADDR2 */
 -# ifdef XILINX_UARTLITE_BASEADDR3
 - return uartlite_serial3_device;
 -# endif /* XILINX_UARTLITE_BASEADDR3 */
 + if (userial_ports[0])
 + return uartlite_serial0_device;
 + if (userial_ports[1])
 + return uartlite_serial1_device;
 + if (userial_ports[2])
 + return uartlite_serial2_device;
 + if (userial_ports[3])
 + return uartlite_serial3_device;
 +
 + return NULL;
  }
  #endif /* CONFIG_SERIAL_MULTI */


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


[U-Boot] [PATCH] spi: xilinx: Remove unused variable

2012-08-07 Thread Stephan Linz
Warning is:

xilinx_spi.c: In function 'spi_setup_slave':
xilinx_spi.c:81: warning: unused variable 'regs'

Signed-off-by: Stephan Linz l...@li-pro.net
CC: Michal Simek mon...@monstr.eu
---
 drivers/spi/xilinx_spi.c |1 -
 1 files changed, 0 insertions(+), 1 deletions(-)

diff --git a/drivers/spi/xilinx_spi.c b/drivers/spi/xilinx_spi.c
index e563c19..52a4134 100644
--- a/drivers/spi/xilinx_spi.c
+++ b/drivers/spi/xilinx_spi.c
@@ -78,7 +78,6 @@ struct spi_slave *spi_setup_slave(unsigned int bus, unsigned 
int cs,
  unsigned int max_hz, unsigned int mode)
 {
struct xilinx_spi_slave *xilspi;
-   struct xilinx_spi_reg *regs;
 
if (!spi_cs_is_valid(bus, cs)) {
printf(XILSPI error: %s: unsupported bus %d / cs %d\n,
-- 
1.7.0.4

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


Re: [U-Boot] [Pull request] u-boot-onenand

2012-08-07 Thread Wolfgang Denk
Dear Lukasz Majewski,

In message 20120806112735.05fd945f@amdc308.digital.local you wrote:
 Hi Wolfgang,
 
 Please pull following commits:
 
 
 The following changes since commit
 56249fea3d5e32cddcd9160e51ec93a9c4327c6b:
 
   powerpc/82xx: adapt SDRAM settings for mgcoge3ne (2012-07-31 22:36:38
   +0200)
 
 are available in the git repository at:
   git://git.denx.de/u-boot-onenand.git master
 
 David du Colombier (1):
   env_onenand: set ONENAND_MAX_ENV_SIZE to CONFIG_ENV_SIZE
 
  common/env_onenand.c |2 +-
  1 files changed, 1 insertions(+), 1 deletions(-)

Applied, thanks.

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
A student of  probability  soon  realizes  that  by  its  nature  the
billion-to-one  chance  crops  up nine times out of ten, and that the
greatest odds boil down to a double-sided statement: it will  happen,
or it will not. - Terry Pratchett, _The Dark Side of the Sun_
___
U-Boot mailing list
U-Boot@lists.denx.de
http://lists.denx.de/mailman/listinfo/u-boot


Re: [U-Boot] [PATCH] tegra20: usb: rework set_host_mode

2012-08-07 Thread Stephen Warren
On 08/07/2012 02:35 PM, Lucas Stach wrote:
 Am Dienstag, den 07.08.2012, 14:21 -0600 schrieb Stephen Warren:
 On 08/07/2012 12:19 PM, Lucas Stach wrote:
 This allows for two things:
 - VBus GPIO may be used on other ports than the OTG one
 - VBus GPIO may be low active if specified by DT

 Hmmm. Why would the board have control over whether VBUS is asserted if
 the port isn't intended to operate in OTG mode?

 Perhaps power-saving? In that case, I wonder if representing this as a
 regulator rather than as a VBUS GPIO would make more sense?

 But irrespective of those questions, I'm inclined to think the patch is
 probably OK.

 On Colibri the second USB Port is powered down by default and only
 powered up if we are really going to use it. And the GPIO does exactly
 what it tells you from it's name: turn on VBus by triggering the USB
 power switch.

It's probably fine to do this; the kernel also unconditionally sets up
the VBUS GPIO irrespective of USB port mode.

 Thinking about a regulator for this in U-Boot is a bit of an overkill,
 for the Linux kernel this might be another story.

Device tree content isn't supposed to be influence by the consumer; it
should be identical irrespective of which bootloader/OS/... is using it.

So, in the future I expect this to be reworked to get rid of the
vbus-gpio property and replace it with a regulator.
___
U-Boot mailing list
U-Boot@lists.denx.de
http://lists.denx.de/mailman/listinfo/u-boot


Re: [U-Boot] [PATCH] Enable the EMAC clock in at91_macb_hw_init().

2012-08-07 Thread Andreas Bießmann
Dear Markus Hubig,

On 01.08.12 21:49, Markus Hubig wrote:
 Signed-off-by: Markus Hubig mhu...@imko.de
 Cc: Andreas Bießmann andreas.de...@googlemail.com
 ---

applied to u-boot-atmel, thanks.

Best regards

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


Re: [U-Boot] [PATCH] MAINTAINERS: fix entry of Ilko Iliev

2012-08-07 Thread Andreas Bießmann
Dear Andreas Bießmann,

On 01.08.12 22:56, Andreas Bießmann wrote:
 These boards have ARM cores, move to the ARM section.
 
 Signed-off-by: Andreas Bießmann andreas.de...@googlemail.com
 ---

applied to u-boot-atmel, thanks.

Best regards

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


Re: [U-Boot] [PATCH] MAINTAINERS: fix Andreas Bießmann AVR32 entry

2012-08-07 Thread Andreas Bießmann
Dear Andreas Bießmann,

On 01.08.12 23:12, Andreas Bießmann wrote:
 The grasshopper board is a avr32 based device and belongs therefore to the 
 avr32
 section.
 
 Signed-off-by: Andreas Bießmann andreas.de...@googlemail.com
 ---

applied to u-boot-atmel, thanks.

Best regards

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


Re: [U-Boot] [PATCH v6] at91: Add support for taskit AT91SAM9G20 boards.

2012-08-07 Thread Andreas Bießmann
Dear Markus Hubig,

On 06.08.12 19:48, Markus Hubig wrote:
 This adds support for the AT91SAM9G20 boards by taskit GmbH.
 Both boards, Stamp9G20 and PortuxG20, are integrated in one
 file. PortuxG20 is basically a SBC built around the Stamp9G20.
 
 Signed-off-by: Markus Hubig mhu...@imko.de
 Cc: Andreas Bießmann andreas.de...@googlemail.com
 ---

applied to u-boot-atmel, thanks

Best regards

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


Re: [U-Boot] [PATCH] tegra20: add back USE_PRIVATE_LIBGCC

2012-08-07 Thread Allen Martin
On Tue, Aug 07, 2012 at 10:53:00AM -0700, Lucas Stach wrote:
 Hi Allen,
 
 And to answer Tom's question: the failure was that the real U-Boot would
 not come up after the SPL. All I could see was the one line printed by
 the SPL and nothing more.

I think I found the problem.  It's the following code from start.S:

ENTRY(cpu_init_crit)
   /*
* Jump to board specific initialization...
* The Mask ROM will have already initialized
* basic memory. Go here to bump up clock rate and handle
* wake up conditions.
*/
   mov ip, lr  @ persevere link reg across
   call
   bl  lowlevel_init   @ go setup pll,mux,memory
   mov lr, ip  @ restore link
   mov pc, lr  @ back to my caller
ENDPROC(cpu_init_crit)


The ip register is not preserved across function calls, and the
CodeSourcery compiler is using it in lowlevel_init or one of the
functions it calls.  This code was there before the SPL changes, but
wasn't being called because CONFIG_SKIP_LOWLEVEL_INIT was set, but now
it isn't.

Lucas, can you try the following change?  I tested it on seaboard with
CodeSourcery arm-2011.09-70-arm-none-linux-gnueabi and I'm able to
boot a kernel.

Tom if this works we probably want to get it into your pull request to
Albert.  CodeSourcery toolchain is probably used by a lot of people.

-Allen


diff --git a/arch/arm/cpu/armv7/start.S b/arch/arm/cpu/armv7/start.S
index 2506f27..02e47fa 100644
--- a/arch/arm/cpu/armv7/start.S
+++ b/arch/arm/cpu/armv7/start.S
@@ -152,7 +152,7 @@ reset:
/* the mask ROM code should have PLL and others stable */
 #ifndef CONFIG_SKIP_LOWLEVEL_INIT
bl  cpu_init_cp15
-   bl  cpu_init_crit
+   bl  lowlevel_init   @ go setup pll,mux,memory
 #endif

 /* Set stackpointer in internal RAM to call board_init_f */
@@ -339,29 +339,6 @@ ENTRY(cpu_init_cp15)
mov pc, lr  @ back to my caller
 ENDPROC(cpu_init_cp15)

-#ifndef CONFIG_SKIP_LOWLEVEL_INIT
-/*
- *
- * CPU_init_critical registers
- *
- * setup important registers
- * setup memory timing
- *
- */
-ENTRY(cpu_init_crit)
-   /*
-* Jump to board specific initialization...
-* The Mask ROM will have already initialized
-* basic memory. Go here to bump up clock rate and handle
-* wake up conditions.
-*/
-   mov ip, lr  @ persevere link reg across
-call
-   bl  lowlevel_init   @ go setup pll,mux,memory
-   mov lr, ip  @ restore link
-   mov pc, lr  @ back to my caller
-ENDPROC(cpu_init_crit)
-#endif
-
 #ifndef CONFIG_SPL_BUILD
 /*
  *


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


[U-Boot] Please pull u-boot-atmel/master

2012-08-07 Thread Andreas Bießmann
The following changes since commit 8abcd8ab962cd5fb2a4c025e7c7b62a9faf4aa08:

  DaVinci DA8xx: fix set_cpu_clk_info() (2012-08-05 22:02:40 +0200)

are available in the git repository at:

  git://git.denx.de/u-boot-atmel.git master

for you to fetch changes up to 17cda15fa6fb3ab2433bed951dad5c4ab30d8cbc:

  at91: Add support for taskit AT91SAM9G20 boards. (2012-08-07 23:47:29 +0200)


Andreas Bießmann (3):
  doc/git-mailrc: update at91 and avr32
  MAINTAINERS: fix entry of Ilko Iliev
  MAINTAINERS: fix Andreas Bießmann AVR32 entry

Bo Shen (1):
  arm : Atmel : add at91sam9x5ek board support

Markus Hubig (2):
  Enable the EMAC clock in at91_macb_hw_init().
  at91: Add support for taskit AT91SAM9G20 boards.

 MAINTAINERS|   23 +-
 arch/arm/cpu/arm926ejs/at91/Makefile   |1 +
 arch/arm/cpu/arm926ejs/at91/at91sam9260_devices.c  |4 +
 arch/arm/cpu/arm926ejs/at91/at91sam9x5_devices.c   |  232 
 arch/arm/cpu/arm926ejs/at91/clock.c|   12 +-
 arch/arm/include/asm/arch-at91/at91sam9_matrix.h   |2 +
 arch/arm/include/asm/arch-at91/at91sam9x5.h|  170 
 arch/arm/include/asm/arch-at91/at91sam9x5_matrix.h |   91 ++
 arch/arm/include/asm/arch-at91/hardware.h  |2 +
 board/atmel/at91sam9x5ek/Makefile  |   52 
 board/atmel/at91sam9x5ek/at91sam9x5ek.c|  293 
 board/atmel/at91sam9x5ek/config.mk |1 +
 board/taskit/stamp9g20/Makefile|   53 
 board/taskit/stamp9g20/led.c   |  138 +
 board/taskit/stamp9g20/stamp9g20.c |  191 +
 boards.cfg |3 +
 doc/git-mailrc |5 +-
 drivers/net/macb.c |4 +-
 include/configs/at91sam9x5ek.h |  183 
 include/configs/stamp9g20.h|  266 ++
 20 files changed, 1713 insertions(+), 13 deletions(-)
 create mode 100644 arch/arm/cpu/arm926ejs/at91/at91sam9x5_devices.c
 create mode 100644 arch/arm/include/asm/arch-at91/at91sam9x5.h
 create mode 100644 arch/arm/include/asm/arch-at91/at91sam9x5_matrix.h
 create mode 100644 board/atmel/at91sam9x5ek/Makefile
 create mode 100644 board/atmel/at91sam9x5ek/at91sam9x5ek.c
 create mode 100644 board/atmel/at91sam9x5ek/config.mk
 create mode 100644 board/taskit/stamp9g20/Makefile
 create mode 100644 board/taskit/stamp9g20/led.c
 create mode 100644 board/taskit/stamp9g20/stamp9g20.c
 create mode 100644 include/configs/at91sam9x5ek.h
 create mode 100644 include/configs/stamp9g20.h
___
U-Boot mailing list
U-Boot@lists.denx.de
http://lists.denx.de/mailman/listinfo/u-boot


Re: [U-Boot] [PATCH] tegra20: add back USE_PRIVATE_LIBGCC

2012-08-07 Thread Lucas Stach
Am Dienstag, den 07.08.2012, 15:28 -0700 schrieb Allen Martin:
 On Tue, Aug 07, 2012 at 10:53:00AM -0700, Lucas Stach wrote:
  Hi Allen,
  
  And to answer Tom's question: the failure was that the real U-Boot would
  not come up after the SPL. All I could see was the one line printed by
  the SPL and nothing more.
 
 I think I found the problem.  It's the following code from start.S:
 
 ENTRY(cpu_init_crit)
/*
 * Jump to board specific initialization...
 * The Mask ROM will have already initialized
 * basic memory. Go here to bump up clock rate and handle
 * wake up conditions.
 */
mov ip, lr  @ persevere link reg across
call
bl  lowlevel_init   @ go setup pll,mux,memory
mov lr, ip  @ restore link
mov pc, lr  @ back to my caller
 ENDPROC(cpu_init_crit)
 
 
 The ip register is not preserved across function calls, and the
 CodeSourcery compiler is using it in lowlevel_init or one of the
 functions it calls.  This code was there before the SPL changes, but
 wasn't being called because CONFIG_SKIP_LOWLEVEL_INIT was set, but now
 it isn't.
 
 Lucas, can you try the following change?  I tested it on seaboard with
 CodeSourcery arm-2011.09-70-arm-none-linux-gnueabi and I'm able to
 boot a kernel.

Yes I can confirm this fixes the issue without further workarounds.
Thanks, and:

Tested-by: Lucas Stach d...@lynxeye.de
 
 Tom if this works we probably want to get it into your pull request to
 Albert.  CodeSourcery toolchain is probably used by a lot of people.
 
 -Allen
 
 
 diff --git a/arch/arm/cpu/armv7/start.S b/arch/arm/cpu/armv7/start.S
 index 2506f27..02e47fa 100644
 --- a/arch/arm/cpu/armv7/start.S
 +++ b/arch/arm/cpu/armv7/start.S
 @@ -152,7 +152,7 @@ reset:
 /* the mask ROM code should have PLL and others stable */
  #ifndef CONFIG_SKIP_LOWLEVEL_INIT
 bl  cpu_init_cp15
 -   bl  cpu_init_crit
 +   bl  lowlevel_init   @ go setup pll,mux,memory
  #endif
 
  /* Set stackpointer in internal RAM to call board_init_f */
 @@ -339,29 +339,6 @@ ENTRY(cpu_init_cp15)
 mov pc, lr  @ back to my caller
  ENDPROC(cpu_init_cp15)
 
 -#ifndef CONFIG_SKIP_LOWLEVEL_INIT
 -/*
 - *
 - * CPU_init_critical registers
 - *
 - * setup important registers
 - * setup memory timing
 - *
 - */
 -ENTRY(cpu_init_crit)
 -   /*
 -* Jump to board specific initialization...
 -* The Mask ROM will have already initialized
 -* basic memory. Go here to bump up clock rate and handle
 -* wake up conditions.
 -*/
 -   mov ip, lr  @ persevere link reg across
 -call
 -   bl  lowlevel_init   @ go setup pll,mux,memory
 -   mov lr, ip  @ restore link
 -   mov pc, lr  @ back to my caller
 -ENDPROC(cpu_init_crit)
 -#endif
 -
  #ifndef CONFIG_SPL_BUILD
  /*
   *
 
 


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


  1   2   >