Re: [U-Boot] [PATCH 4/4] armv7: cache: remove flush on un-aligned invalidate

2011-08-11 Thread Aneesh V
On Wednesday 10 August 2011 11:41 PM, Anton Staaf wrote:
 On Tue, Aug 9, 2011 at 11:48 PM, Aneesh Vane...@ti.com  wrote:
 Hi Anton,

 On Tuesday 09 August 2011 10:09 PM, Anton Staaf wrote:

 I'm not sure what the larger context of this change is, but it seems
 like a bad idea to me.  There are a lot of locations in U-Boot that

 Please see this thread for the context.
 http://thread.gmane.org/gmane.comp.boot-loaders.u-boot/105113/focus=105135

 Ahh, I missed this thread (Its title became stale).  :)  But I
 completely agree with the outcome, we need to fix the unaligned buffer
 problem.


 will end up causing an unaligned invalidate (ext2 and dos file system
 code in particular).  And this change will cause those unaligned
 invalidates to possibly throw away stores to adjacent variables.  If

 No. Those partial cache-lines on the boundary are left alone. They are
 not invalidated. So, it still affects only the party calling the
 invalidate.

 Ahh, you are correct.  I missed that the change would cause fewer
 cache lines to be invalidated.  In this case I am much happier with
 this change.  In light of this I still think the warning is a little
 mild, since it means that the driver that called the invalidate is
 certainly going to get the wrong values.  Perhaps changing it to an
 error would be good (I realize that functionally it would be
 identical, but it would be more potent psychologically).  I don't
 think an assert is warranted in this case since as Albert points out
 it would prevent online debugging of U-Boot which is a very useful
 way of working.

Ok. I will change the warning to an error.

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


Re: [U-Boot] [PATCH v4] ARM926ejs: Add routines to invalidate D-Cache

2011-08-11 Thread Aneesh V
Hi Albert, Hong,

On Wednesday 10 August 2011 12:06 PM, Albert ARIBAUD wrote:
 Hi Hong Xu,

 Le 10/08/2011 08:17, Hong Xu a écrit :

 There are some ARM926 specific code in arch/arm/lib/cache.c; So I also
 put the stuff there. ;-) I think Albert Aribaud or the original
 contributor of cache part shall have clearer view.So, I'll keep neutral
 to hear more ideas.

 Basically, cache operations are CP15 commands which are defined for each
 ARM architecture, not for each ISA, so Marek is right about the best

I am not sure if this is the case. I just quickly had a look at the
ARMv5 and ARMv6 manuals. They are defining the CP15 instructions for
cache operations(section 5.6.2 in ARMv5 manual and section B6.6.5 in
the ARMv6 manual. And on first look, the CP15 operations look very
similar

So, I feel that we can benefit many boards if Hong's operations are
kept armv5/armv6 generic(you may have to carefully look at all
operations and make sure they are valid for both armv5/v6).

My suggestion would be to create a new file in arch/arm
/lib/cache_v5_v6.c and include this file in the build conditionally
based on a config flag like CONFIG_SYS_ARM_CACHE_V5_V6_SUPPORT or
something like that.  Any platform that wants to use these operations
can then just enable this flag.

BTW, ARMv7 is not really backward compatible in the way the operations
are done, because it provides the capability to find the levels of
caches and repeat the operations at all levels where as up to armv6 the
CP15 operations were only for Level 1.

I have not looked at the compatibility of ARMv4 operations.

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


Re: [U-Boot] [PATCH 8/9] DM9000: change some printf to use debug instead

2011-08-11 Thread Simon Schwarz
Dear Eric Jarrige,

On 08/10/2011 10:33 PM, Eric Jarrige wrote:
 Signed-off-by: Eric Jarrigeeric.jarr...@armadeus.org
 Cc: Ben Warrenbiggerbadder...@gmail.com
 ---
   drivers/net/dm9000x.c |8 
   1 files changed, 4 insertions(+), 4 deletions(-)

 diff --git a/drivers/net/dm9000x.c b/drivers/net/dm9000x.c
 index b5c5573..9cd0195 100644
 --- a/drivers/net/dm9000x.c
 +++ b/drivers/net/dm9000x.c
 @@ -232,7 +232,7 @@ dm9000_probe(void)
   id_val |= DM9000_ior(DM9000_PIDL)  16;
   id_val |= DM9000_ior(DM9000_PIDH)  24;
   if (id_val == DM9000_ID) {
 - printf(dm9000 i/o: 0x%x, id: 0x%x \n, CONFIG_DM9000_BASE,
 + DM9000_DBG(dm9000 i/o: 0x%x, id: 0x%x \n, CONFIG_DM9000_BASE,
  id_val);
   return 0;
   } else {
 @@ -298,19 +298,19 @@ static int dm9000_init(struct eth_device *dev, bd_t *bd)

   switch (io_mode) {
   case 0x0:  /* 16-bit mode */
 - printf(DM9000: running in 16 bit mode\n);
 + DM9000_DBG(DM9000: running in 16 bit mode\n);
snip

I'am just wondering: I see that DM9000_DBG is used all over dm9000 code 
- do you know the reason why not just use debug()?

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


Re: [U-Boot] [PATCH v4] ARM926ejs: Add routines to invalidate D-Cache

2011-08-11 Thread Marek Vasut
On Thursday, August 11, 2011 09:02:20 AM Aneesh V wrote:
 Hi Albert, Hong,
 
 On Wednesday 10 August 2011 12:06 PM, Albert ARIBAUD wrote:
  Hi Hong Xu,
  
  Le 10/08/2011 08:17, Hong Xu a écrit :
  There are some ARM926 specific code in arch/arm/lib/cache.c; So I also
  put the stuff there. ;-) I think Albert Aribaud or the original
  contributor of cache part shall have clearer view.So, I'll keep neutral
  to hear more ideas.
  
  Basically, cache operations are CP15 commands which are defined for each
  ARM architecture, not for each ISA, so Marek is right about the best
 
 I am not sure if this is the case. I just quickly had a look at the
 ARMv5 and ARMv6 manuals. They are defining the CP15 instructions for
 cache operations(section 5.6.2 in ARMv5 manual and section B6.6.5 in
 the ARMv6 manual. And on first look, the CP15 operations look very
 similar
 
 So, I feel that we can benefit many boards if Hong's operations are
 kept armv5/armv6 generic(you may have to carefully look at all
 operations and make sure they are valid for both armv5/v6).
 
 My suggestion would be to create a new file in arch/arm
 /lib/cache_v5_v6.c and include this file in the build conditionally
 based on a config flag like CONFIG_SYS_ARM_CACHE_V5_V6_SUPPORT or
 something like that.  Any platform that wants to use these operations
 can then just enable this flag.
 
 BTW, ARMv7 is not really backward compatible in the way the operations
 are done, because it provides the capability to find the levels of
 caches and repeat the operations at all levels where as up to armv6 the
 CP15 operations were only for Level 1.

That's actually not a bad idea, but we need to be definitelly 100% sure it'll 
work for all these different v5 and v6 cores !

 
 I have not looked at the compatibility of ARMv4 operations.
 
 best regards,
 Aneesh
___
U-Boot mailing list
U-Boot@lists.denx.de
http://lists.denx.de/mailman/listinfo/u-boot


Re: [U-Boot] [PATCH 8/9] DM9000: change some printf to use debug instead

2011-08-11 Thread Detlev Zundel
Hi Simon,

 Dear Eric Jarrige,

 On 08/10/2011 10:33 PM, Eric Jarrige wrote:
 Signed-off-by: Eric Jarrigeeric.jarr...@armadeus.org
 Cc: Ben Warrenbiggerbadder...@gmail.com
 ---
   drivers/net/dm9000x.c |8 
   1 files changed, 4 insertions(+), 4 deletions(-)

 diff --git a/drivers/net/dm9000x.c b/drivers/net/dm9000x.c
 index b5c5573..9cd0195 100644
 --- a/drivers/net/dm9000x.c
 +++ b/drivers/net/dm9000x.c
 @@ -232,7 +232,7 @@ dm9000_probe(void)
  id_val |= DM9000_ior(DM9000_PIDL)  16;
  id_val |= DM9000_ior(DM9000_PIDH)  24;
  if (id_val == DM9000_ID) {
 -printf(dm9000 i/o: 0x%x, id: 0x%x \n, CONFIG_DM9000_BASE,
 +DM9000_DBG(dm9000 i/o: 0x%x, id: 0x%x \n, CONFIG_DM9000_BASE,
 id_val);
  return 0;
  } else {
 @@ -298,19 +298,19 @@ static int dm9000_init(struct eth_device *dev, bd_t 
 *bd)

  switch (io_mode) {
  case 0x0:  /* 16-bit mode */
 -printf(DM9000: running in 16 bit mode\n);
 +DM9000_DBG(DM9000: running in 16 bit mode\n);
 snip

 I'am just wondering: I see that DM9000_DBG is used all over dm9000 code 
 - do you know the reason why not just use debug()?

Very likely only historical reasons as the code predates the DEBUG best
practice.  Bow that you've identified it, we should change it ;)

Cheers
  Detlev

-- 
It was actually a very beautiful thing to see a sunrise, cause' that's
such a calm time of day. It's a wonderful time of day  to get ready to
go to bed.
-- Richard M. Stallman
--
DENX Software Engineering GmbH,  MD: Wolfgang Denk  Detlev Zundel
HRB 165235 Munich,  Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: (+49)-8142-66989-40 Fax: (+49)-8142-66989-80 Email: d...@denx.de
___
U-Boot mailing list
U-Boot@lists.denx.de
http://lists.denx.de/mailman/listinfo/u-boot


Re: [U-Boot] [PATCH 3/9] apf9328: Add Armadeus Project board APF9328

2011-08-11 Thread Stefano Babic
On 08/10/2011 10:33 PM, Eric Jarrige wrote:
 Add Armadeus Project board APF9328
 
 Signed-off-by: Eric Jarrige eric.jarr...@armadeus.org
 Signed-off-by: Nicolas Colombain nicolas.colomb...@armadeus.com

Hi Eric,


 diff --git a/board/armadeus/apf9328/apf9328.c 
 b/board/armadeus/apf9328/apf9328.c
 new file mode 100644
 index 000..2250221
 --- /dev/null
 +++ b/board/armadeus/apf9328/apf9328.c
 @@ -0,0 +1,91 @@
 +/*
 + * (C) Copyright 2005-2011
 + * Nicolas Colombin tho...@users.sourceforge.net
 + * Eric Jarrige eric.jarr...@armadeus.org
 + * Copyright (C) 2004 Sascha Hauer, Synertronixx GmbH
 + *
 + * 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/arch/imx-regs.h
 +#include flash.h
 +#include netdev.h
 +#include apf9328fpga.h
 +
 +DECLARE_GLOBAL_DATA_PTR;
 +
 +int board_init(void)
 +{
 + gd-bd-bi_arch_number = CONFIG_MACH_TYPE;

Is there no MACH_TYPE for this board ? It is uncommon for an ARM board.
Should this board run Linux ?

 +void dram_init_banksize(void)
 +{
 +#if (CONFIG_NR_DRAM_BANKS  0)

I think you can get rid of this #ifdef, if you have no RAM at all you
cannot simply run u-boot.

 + * Miscellaneous intialization
 + */
 +int misc_init_r(void)
 +{
 + char *s;
 +
 +#if (CONFIG_FPGA)
 + apf9328_init_fpga();
 +#endif
 +
 +#if (CONFIG_DRIVER_DM9000)
 + imx_gpio_mode(GPIO_PORTB | GPIO_DR | GPIO_IN | 14);

Is there a reason to put this code here and not in board_eth_init ? It
is related to Ethernet and I am supposing this setup should be done
before dm9000_initialize.

 +
 +void show_boot_progress(int status)
 +{
 + return;
 +}

This function seems to me not very useful. Is it not better to drop it ?
It is not strictly required.
You set also #undef CONFIG_SHOW_BOOT_PROGRESS in the configuration file.


 +#if (CONFIG_FPGA)
 +DECLARE_GLOBAL_DATA_PTR;
 +/* Note that these are pointers to code that is in Flash.  They will be
 + * relocated at runtime.
 + * Spartan3 code is used to download our Spartan 3 :) code is compatible.
 + * Just take care about the file size
 +*/
 +Xilinx_Spartan3_Slave_Serial_fns fpga_fns = {
 + fpga_pre_fn,
 + fpga_pgm_fn,
 + fpga_clk_fn,
 + fpga_init_fn,
 + fpga_done_fn,
 + fpga_wr_fn,
 +};
 +
 +Xilinx_desc fpga[CONFIG_FPGA_COUNT] = {

Do you have more as one FPGA on your board ? And if this is true, they
share the same firmware ? (I see only one CONFIG_FIRMWARE_ADDR..)

 +/*
 + * Initialize the fpga.  Return 1 on success, 0 on failure.
 + */
 +int apf9328_init_fpga(void)
 +{
 + char *autoload = getenv(firmware_autoload);
 + int i, lout = 1;
 +
 + debug(%s:%d: Initialize FPGA interface (relocation offset= 0x%.8lx)\n,
 + __func__, __LINE__, gd-reloc_off);
 +
 + fpga_init();
 +
 + for (i = 0; i  CONFIG_FPGA_COUNT; i++) {
 + debug(%s:%d: Adding fpga %d\n, __func__, __LINE__, i);
 + fpga_add(fpga_xilinx, fpga[i]);
 + }
 +
 + if ((autoload)  (0 == strcmp(autoload, 1))) {
 + if (FPGA_SUCCESS != fpga_load(0, (void *)CONFIG_FIRMWARE_ADDR,

I am confused...you add in the configuration file a variable
firmware_addr=, and you set it as default to CONFIG_FIRMWARE_ADDR, but
you do not use this variable at all. Do you not shoul get the address
with getenv(firmware_addr) instead of the precompiled value ?

If you add some new CONFIG_ switches in U-Boot, you must document them
in the Readme file. However, CONFIG_FIRMWARE_* do not need to be global,
right ?

 +/*
 + * Spartan 3 FPGA configuration support for the APF9328 daughter board
 + */
 +
 +#include fpga.h
 +extern int apf9328_init_fpga(void);
 diff --git a/board/armadeus/apf9328/eeprom.c b/board/armadeus/apf9328/eeprom.c

It seems to much fo me to add a new file only for a single prototype.
and it is used only in apf9328fpga.c, as I can see.

 +
 +#include common.h
 +#include command.h
 +#include dm9000.h
 +
 +static int do_read_dm9000_eeprom(cmd_tbl_t *cmdtp, int flag, int argc,
 +  char * const argv[])
 +{
 + unsigned int i;
 + u8 data[2];
 +
 + for (i = 0; i  0x40; i++) {
 + if (!(i % 0x10))
 + printf(\n%08x:, i);
 + dm9000_read_srom_word(i, data);
 + printf( %02x%02x, data[1], data[0]);
 + }

Re: [U-Boot] [PATCH 2/9] mx1: add i2c registers

2011-08-11 Thread Stefano Babic
On 08/10/2011 10:33 PM, Eric Jarrige wrote:
 Add i2c registers for Freescale imx1/L/S
 
 Signed-off-by: Eric Jarrige eric.jarr...@armadeus.org
 Cc: Stefano Babic sba...@denx.de
 ---
  arch/arm/include/asm/arch-imx/imx-regs.h |   23 +++
  1 files changed, 23 insertions(+), 0 deletions(-)
 

Hi Eric,

  
 +/*
 + * I2C module
 + */
 +#define IADR   __REG(IMX_I2C_BASE + 0x000) /* I2C Address Register */
 +#define IFDR   __REG(IMX_I2C_BASE + 0x004) /* I2C Frequency Divider 
 Register*/
 +#define I2CR   __REG(IMX_I2C_BASE + 0x008) /* I2C Control Register */
 +#define I2SR   __REG(IMX_I2C_BASE + 0x00C) /* I2C Status Register */
 +#define I2DR   __REG(IMX_I2C_BASE + 0x010) /* I2C Data I/O Register */

See my comments on your [PATCH 3/9] apf9328: Add Armadeus Project board
APF9328. Access to registers must be done via accessors and __REG macro
should be removed.

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


Re: [U-Boot] [PATCH 5/9] apf9328: add default board configuration file

2011-08-11 Thread Stefano Babic
On 08/10/2011 10:33 PM, Eric Jarrige wrote:
 Signed-off-by: Eric Jarrige eric.jarr...@armadeus.org
 ---
  include/configs/apf9328.h | 1034 
 +
  1 files changed, 1034 insertions(+), 0 deletions(-)
  create mode 100644 include/configs/apf9328.h

Hi Eric,

 +
 +#ifndef __CONFIG_H
 +#define __CONFIG_H
 +
 +#define CONFIG_VERSION_VARIABLE
 +#define CONFIG_ENV_VERSION   4.0
 +#define CONFIG_IDENT_STRING   apf9328 patch 4.0

You add CONFIG_ without documenting them. If they are specific for your
board, you should use another name, or please add documentation to make
them available for other boards, too.

 +
 +#define CONFIG_ARM920T   1   /* this is an ARM920T CPU */

It is enough to #define a switch, without setting the value. This should
be only:

#define CONFIG_ARM920T  /* this is an ARM920T CPU */

This must be fixed globally.

 +#define CONFIG_IMX   1   /* in a Motorola MC9328MXL Chip */

Ditto, and so on..

 +/*
 + * Definition of u-boot build in commands. Check out CONFIG_CMD_DFL if
 + * neccessary in include/cmd_confdefs.h file. (Un)comment for getting
 + * functionality or size of u-boot code.
 + */
 +
 +#include config_cmd_default.h
 +
 +#define CONFIG_CMD_ASKENV/* ask for env variable */
 +#define CONFIG_CMD_BSP   /* Board Specific functions */
 +#define CONFIG_CMD_CACHE /* icache, dcache   */
 +#define CONFIG_CMD_DATE  /* support for RTC, date/time.. */
 +#define CONFIG_CMD_DHCP  /* DHCP Support */
 +#define CONFIG_CMD_DIAG  /* Diagnostics  */
 +#define CONFIG_CMD_EEPROM/* EEPROM read/write support*/
 +#define CONFIG_CMD_FLASH /* flinfo, erase, protect   */
 +#define CONFIG_CMD_I2C   /* I2C serial bus support   */
 +#define CONFIG_CMD_IMLS  /* List all found images*/

IMLS is already part of default commands

 +#define CONFIG_CMD_IMMAP /* IMMR dump support*/

Is this not specific for PowerQuick processor ?

 +#define CONFIG_EXTRA_ENV_SETTINGS \
 + env_version=  CONFIG_ENV_VERSION  \0\
 + fileaddr= MK_STR(CONFIG_SYS_LOAD_ADDR)\0\
 + filesize= MK_STR(CONFIG_SYS_MONITOR_LEN)  \0\

filesize is dynamically computed, you should not add it

 + ntpserverip=217.147.208.1\0   \

No fixed IP address, please, even if they are related to known NTP servers.

 +#define CONFIG_MACH_TYPE MACH_TYPE_APF9328

Why do you need it ? Is it not enough to use directly MACH_TYPE_APF9328 ?

 +#define CONFIG_ETHADDR

Not required, right ?

 +#define CONFIG_NETMASK   255.255.255.0
 +#define CONFIG_IPADDR192.168.000.10

Please drop fix ip address. They should not be part of mainline,

 +#define CONFIG_BOARD_NAMEapf9328
 +#define CONFIG_HOSTNAME  apf9328
 +#define CONFIG_GATEWAYIP 192.168.000.1
 +#define CONFIG_SERVERIP  192.168.000.2

Ditto

 +/*
 + * Malloc pool need to host env + 128 Kb reserve for other allocations.
 + */
 +#define CONFIG_SYS_MALLOC_LEN(CONFIG_ENV_SIZE + (12810))

I Think checkpatch will complain about missing spaces before and after 

 +#define CONFIG_STACKSIZE (12010)   /* stack size   */
 +
 +#ifdef CONFIG_USE_IRQ
 +#define CONFIG_STACKSIZE_IRQ (410) /* IRQ stack*/
 +#define CONFIG_STACKSIZE_FIQ (410) /* FIQ stack*/
 +#endif

Do you need IRQ ? It is undefined, you can drop this part


 +
 +/*
 +* Clocks configuration
 +*/
 +/*
 + * PLL configuration
 + *
 + * f_{dpll}=2*f{ref}*(MFI+MFN/(MFD+1))/(PD+1)
 + * f_ref=16,777216MHz
 + * 32768 Hz xtal
 + * 0x07B32DA5: 192.173
 + * 0x002a141f: 191,9944MHz
 + * 0x040b2007: 144MHz
 + * 0x0FB32DA5: 96.0864 MHz
 + * 0x042a141f: 96MHz
 + * 0x0811140d: 64MHz
 + * 0x040e200e: 150MHz
 + * 0x00321431: 200MHz
 + *
 + *16 MHz xtal
 + * 0x08001800: 64MHz mit 16er Quarz
 + * 0x04001800: 96MHz mit 16er Quarz
 + * 0x04002400: 144MHz mit 16er Quarz
 + *
 + * 31|x x x x|x x x x|x x x x|x x x x|x x x x|x x x x|x x x x|x x x 
 x| 0
 + *   |XXX|--PD---|---MFD-|XXX|--MFI--|-MFN---|
 + */
 +
 +#define CONFIG_SYS_OSC32 32768   /* 32768 or 32000 Hz crystal */
 +#undef   CONFIG_SYS_OSC16/* there is no external 16MHz external 
 clock */
 +
 +/* MPU CLOCK source before PLL   (should be named 
 CONFIG_SYS_SYS_CLK_FREQ) */
 +#define CONFIG_SYS_CLK_FREQ  (512*CONFIG_SYS_OSC32)
 +#define CONFIG_SYS_MPCTL0_VAL0x07B32DA5  /* 192.17 
 MHz */
 +#define CONFIG_SYS_MPCTL1_VAL0
 +
 +/* system clock source before PLL (should be named 
 CONFIG_SYS_SYSPLL_CLK_FREQ)*/
 +#ifndef CONFIG_SYS_OSC16
 +#define CONFIG_SYSPLL_CLK_FREQ   (512*CONFIG_SYS_OSC32)
 +#if (CONFIG_SYS_OSC32 == 32000)
 +#define CONFIG_SYS_SPCTL0_VAL0x043F1437  /* 96 

Re: [U-Boot] [PATCH 6/9] mx1: improve PLL freq computation

2011-08-11 Thread Stefano Babic
On 08/10/2011 10:33 PM, Eric Jarrige wrote:
 Improve PLL freq computation by using the full resolution of the PLL registers

Hi Eric,

 + return (2*(u64)sys_clk_freq * (mfi*(mfd+1) + mfn))/((mfd+1)*(pd+1));
 +}
  
 - return (2*(CONFIG_SYSPLL_CLK_FREQ10)*( (mfi10) + 
 (mfn10)/(mfd+1)))/(pd+1);

Please run checkpatch on your patches for V2. I have not yet done, but
this line will report missing spaces.

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


Re: [U-Boot] [PATCH 8/9] DM9000: change some printf to use debug instead

2011-08-11 Thread Stefano Babic
On 08/10/2011 10:33 PM, Eric Jarrige wrote:
 Signed-off-by: Eric Jarrige eric.jarr...@armadeus.org
 Cc: Ben Warren biggerbadder...@gmail.com
 ---
  drivers/net/dm9000x.c |8 
  1 files changed, 4 insertions(+), 4 deletions(-)

Hi Eric,

 - printf(dm9000 i/o: 0x%x, id: 0x%x \n, CONFIG_DM9000_BASE,
 + DM9000_DBG(dm9000 i/o: 0x%x, id: 0x%x \n, CONFIG_DM9000_BASE,
  id_val);

This is a good choice to get rid of nasty DM9000_DBG replacing it with
the general debug() !

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


Re: [U-Boot] [PATCH v3] i2c:gpio:s5p: I2C GPIO Software implementation (via soft_i2c)

2011-08-11 Thread Minkyu Kang
Dear Lukasz Majewski,

On 10 August 2011 18:21, Lukasz Majewski l.majew...@samsung.com wrote:
 This patch adds support for software I2C for GONI reference target.
 It adds support for access to GPIOs by number, not as it is present,
 by bank and offset.

 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
 Cc: Heiko Schocher h...@denx.de

 ---
 Changes for v2:
        - Generic GPIO code added to arch/arm/gpio.h
        - Platform dependent GPIO code added to board/samsung/goni.c
        - Code cleanup
 Changes for v3:
        - I2C GPIO common code added to drivers/gpio/s5p_gpio.c
        - i2c_init_board() function added(required by soft_i2c)
 ---
  arch/arm/include/asm/arch-s5pc1xx/gpio.h |   38 
 ++

Please adds s5pc2xx also.

  board/samsung/goni/goni.c                |   16 
  drivers/gpio/s5p_gpio.c                  |   24 +++
  include/configs/s5p_goni.h               |   14 +++
  4 files changed, 86 insertions(+), 6 deletions(-)

 diff --git a/arch/arm/include/asm/arch-s5pc1xx/gpio.h 
 b/arch/arm/include/asm/arch-s5pc1xx/gpio.h
 index 903de9c..619ba6f 100644
 --- a/arch/arm/include/asm/arch-s5pc1xx/gpio.h
 +++ b/arch/arm/include/asm/arch-s5pc1xx/gpio.h
 @@ -134,6 +134,41 @@ unsigned int s5p_gpio_get_value(struct s5p_gpio_bank 
 *bank, int gpio);
  void s5p_gpio_set_pull(struct s5p_gpio_bank *bank, int gpio, int mode);
  void s5p_gpio_set_drv(struct s5p_gpio_bank *bank, int gpio, int mode);
  void s5p_gpio_set_rate(struct s5p_gpio_bank *bank, int gpio, int mode);
 +struct s5p_gpio_bank *s5p_gpio_get_bank(int nr);
 +int s5p_gpio_get_pin(int nr);
 +
 +static inline int gpio_request(int gpio, const char *label)
 +{
 +       return 0;
 +}
 +
 +static inline int gpio_direction_input(int nr)
 +{
 +       s5p_gpio_direction_input(s5p_gpio_get_bank(nr),
 +                               s5p_gpio_get_pin(nr));
 +       return 0;
 +}
 +
 +static inline int gpio_direction_output(int nr, int value)
 +{
 +       s5p_gpio_direction_output(s5p_gpio_get_bank(nr),
 +                                s5p_gpio_get_pin(nr), value);
 +       return 0;
 +}
 +
 +static inline int gpio_get_value(int nr)
 +{
 +       return (int) s5p_gpio_get_value(s5p_gpio_get_bank(nr),
 +                                      s5p_gpio_get_pin(nr));
 +}
 +
 +static inline void gpio_set_value(int nr, int value)
 +{
 +       s5p_gpio_set_value(s5p_gpio_get_bank(nr),
 +                         s5p_gpio_get_pin(nr), value);
 +}
 +
 +extern struct s5pc110_gpio *s5p_gpio;
  #endif

  /* Pin configurations */
 @@ -155,4 +190,7 @@ void s5p_gpio_set_rate(struct s5p_gpio_bank *bank, int 
 gpio, int mode);
  #define GPIO_DRV_FAST  0x0
  #define GPIO_DRV_SLOW  0x1

 +/* GPIO pins per bank  */
 +#define GPIO_PER_BANK 8
 +
  #endif
 diff --git a/board/samsung/goni/goni.c b/board/samsung/goni/goni.c
 index e24cd29..354f5ad 100644
 --- a/board/samsung/goni/goni.c
 +++ b/board/samsung/goni/goni.c
 @@ -28,12 +28,12 @@

  DECLARE_GLOBAL_DATA_PTR;

 -static struct s5pc110_gpio *s5pc110_gpio;
 +struct s5pc110_gpio *s5p_gpio;

Why you removed the static?
And.. why you change s5pc110_gpio to s5p_gpio?
It is unrelated changes with this patch.


  int board_init(void)
  {
        /* Set Initial global variables */
 -       s5pc110_gpio = (struct s5pc110_gpio *)S5PC110_GPIO_BASE;
 +       s5p_gpio = (struct s5pc110_gpio *)S5PC110_GPIO_BASE;

        gd-bd-bi_arch_number = MACH_TYPE_GONI;
        gd-bd-bi_boot_params = PHYS_SDRAM_1 + 0x100;
 @@ -67,13 +67,17 @@ int checkboard(void)
  }
  #endif

 +#ifdef CONFIG_SOFT_I2C
 +void i2c_init_board(void) {}
 +#endif

Empty function?
then please undef CONFIG_SYS_I2C_INIT_BOARD.

 +
  #ifdef CONFIG_GENERIC_MMC
  int board_mmc_init(bd_t *bis)
  {
        int i;

        /* MASSMEMORY_EN: XMSMDATA7: GPJ2[7] output high */
 -       s5p_gpio_direction_output(s5pc110_gpio-j2, 7, 1);
 +       s5p_gpio_direction_output(s5p_gpio-j2, 7, 1);

unrelated change.


        /*
         * MMC0 GPIO
 @@ -86,11 +90,11 @@ int board_mmc_init(bd_t *bis)
                if (i == 2)
                        continue;
                /* GPG0[0:6] special function 2 */
 -               s5p_gpio_cfg_pin(s5pc110_gpio-g0, i, 0x2);
 +               s5p_gpio_cfg_pin(s5p_gpio-g0, i, 0x2);

ditto.

                /* GPG0[0:6] pull disable */
 -               s5p_gpio_set_pull(s5pc110_gpio-g0, i, GPIO_PULL_NONE);
 +               s5p_gpio_set_pull(s5p_gpio-g0, i, GPIO_PULL_NONE);

ditto.


                /* GPG0[0:6] drv 4x */
 -               s5p_gpio_set_drv(s5pc110_gpio-g0, i, GPIO_DRV_4X);
 +               s5p_gpio_set_drv(s5p_gpio-g0, i, GPIO_DRV_4X);

ditto.


        }

        return s5p_mmc_init(0, 4);
 diff --git a/drivers/gpio/s5p_gpio.c b/drivers/gpio/s5p_gpio.c
 index 2043859..e247b6f 100644
 --- a/drivers/gpio/s5p_gpio.c
 +++ b/drivers/gpio/s5p_gpio.c
 @@ -141,3 +141,27 @@ void 

Re: [U-Boot] [PATCH] gpio:samsung: s5p_ suffix add for GPIO functions (C210_universal)

2011-08-11 Thread Minkyu Kang
Dear Lukasz,

On 10 August 2011 18:18, Lukasz Majewski l.majew...@samsung.com wrote:
 This is a cosmetic patch, which is changing the gpio_ prefix to
 s5p_gpio_.

 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
 ---
  board/samsung/universal_c210/universal.c |   28 ++--
  1 files changed, 14 insertions(+), 14 deletions(-)

applied to u-boot-samsung

Thanks
Minkyu Kang
-- 
from. prom.
www.promsoft.net
___
U-Boot mailing list
U-Boot@lists.denx.de
http://lists.denx.de/mailman/listinfo/u-boot


[U-Boot] relocation problem

2011-08-11 Thread Cajus Hahn
Dear Marcel, Dear Reinhard,

I have the same problem with my board and the actual u-boot-atmel (git
from 5th Aug. 2011). It even looks like I am using the same board.
It is a in-circuit ICnova SAM9G45 OEM on a ADB1000 with a 5 display.

Actually I use the u-boot from in-circuit, which is a patched version
basing on u-boot from 2009. I would like to upgrade this old version to
the actual u-boot version. Some time ago somebody tried to get the
in-circuit patch into the u-boot mainstream, but the patch was rejected
because of not meeting the coding rules.

Marcel, can you give me a hint what you changed to get your
configuration running ? I used the latest code for the
at91sam9m10g45ek as reference and added/changed it.

Starting the old u-boot version with patches from in-circuit:
-

Start AT91Bootstrap

U-Boot 2009.11 (Jun 18 2011 - 19:57:09)

DRAM:  128 MB
Flash:  1 MB
NAND:  256 MiB
In:serial
Out:   serial
Err:   serial
MMC:   Atmel MCI: 0
Net:   macb0
Hit any key to stop autoboot:  0
ICnova


Starting u-boot-atmel (git) from 5th Aug. 2011:


Start AT91Bootstrap

U-Boot 2011.06 (Aug 10 2011 - 20:49:32)

U-Boot code: 73F0 - 73F45494  BSS: - 73F87110
CPU: AT91SAM9G45
Crystal frequency:   12 MHz
CPU clock:  400 MHz
Master clock :  133.333 MHz
monitor len: 00087110
ramsize: 0800
TLB table at: 77ff
Top of RAM usable for U-Boot at: 77ff
Reserving 540k for U-Boot at: 77f68000
Reserving 384k for malloc() at: 77f08000
Reserving 24 Bytes for Board Info at: 77f07fe8
Reserving 144 Bytes for Global Data at: 77f07f58
New Stack Pointer is: 77f07f48
RAM Configuration:
Bank #0: 7000 128 MiB
relocation Offset is: 04068000

no more output, it seems the relocation fails.
I have a #DEBUG in lib/board.c to get the above output.

Here is my configuration:

/*
 * Configuation settings for the ICNOVA ADB1000 with SAM9G45 OEM and 5 TFT.
 *
 * See file CREDITS for list of people who contributed to this
 * project.
 *
 * This program is free software; you can redistribute it and/or
 * modify it under the terms of the GNU General Public License as
 * published by the Free Software Foundation; either version 2 of
 * the License, or (at your option) any later version.
 *
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
 * GNU General Public License for more details.
 *
 * You should have received a copy of the GNU General Public License
 * along with this program; if not, write to the Free Software
 * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
 * MA 02111-1307 USA
 */

#ifndef __CONFIG_H
#define __CONFIG_H

#include asm/hardware.h

#define CONFIG_AT91_LEGACY
#define CONFIG_ATMEL_LEGACY /* required until (g)pio is fixed */

/* ARM asynchronous clock */
#define CONFIG_SYS_AT91_SLOW_CLOCK  32768
#define CONFIG_SYS_AT91_MAIN_CLOCK  1200 /* from 12 MHz crystal */
#define CONFIG_SYS_HZ   1000

#define CONFIG_AT91FAMILY
#define CONFIG_ARCH_CPU_INIT
#undef CONFIG_USE_IRQ   /* we don't need IRQ/FIQ stuff  */

#define CONFIG_CMDLINE_TAG  /* enable passing of ATAGs  */
#define CONFIG_SETUP_MEMORY_TAGS
#define CONFIG_INITRD_TAG
#define CONFIG_SKIP_LOWLEVEL_INIT
#define CONFIG_BOARD_EARLY_INIT_F
#define CONFIG_DISPLAY_CPUINFO

/* general purpose I/O */
#define CONFIG_ATMEL_LEGACY /* required until (g)pio is fixed */
#define CONFIG_AT91_GPIO
#define CONFIG_AT91_GPIO_PULLUP 1   /* keep pullups on peripheral pins */

/* serial console */
#define CONFIG_ATMEL_USART
#define CONFIG_USART_BASE   ATMEL_BASE_DBGU
#define CONFIG_USART_ID ATMEL_ID_SYS

/*
 * This needs to be defined for the OHCI code to work but it is defined as
 * ATMEL_ID_UHPHS in the CPU specific header files.
 */
#define ATMEL_ID_UHPATMEL_ID_UHPHS

/*
 * Specify the clock enable bit in the PMC_SCER register.
 */
#define ATMEL_PMC_UHP   AT91SAM926x_PMC_UHP

/* LCD */
#define CONFIG_LCD
#define LCD_BPP LCD_COLOR8
#define CONFIG_LCD_LOGO
#undef LCD_TEST_PATTERN
#define CONFIG_LCD_INFO
#define CONFIG_LCD_INFO_BELOW_LOGO
#define CONFIG_SYS_WHITE_ON_BLACK
#define CONFIG_ATMEL_LCD
#define CONFIG_ATMEL_LCD_RGB565
#define CONFIG_SYS_CONSOLE_IS_IN_ENV
/* board specific(not enough SRAM) */
#define CONFIG_ICNOVA_LCD_BASE  0x73E0

#define CONFIG_BOOTDELAY3

/*
 * Command line configuration.
 */
#include config_cmd_default.h
#define CONFIG_CMD_ASKENV
#define CONFIG_CMD_DHCP
#define CONFIG_CMD_USB
#define CONFIG_CMD_NAND
#define CONFIG_CMD_MTDPARTS
#define CONFIG_MTD_DEVICE
#define CONFIG_MTD_PARTITIONS
#define CONFIG_MTD_NAND_ECC_JFFS2
//#define CONFIG_CMD_UBIFS
#define CONFIG_CMD_PING
#define CONFIG_CMD_JFFS2
#define 

Re: [U-Boot] [PATCH] tsec: Configure the buffer descriptor bases to always include all of the descriptors

2011-08-11 Thread Sergei Shtylyov
Hello.

On 10-08-2011 11:12, Joe Hershberger wrote:

 Previously only the last N were included based on the current one in use.

 Signed-off-by: Joe Hershbergerjoe.hershber...@ni.com
 Cc: Joe Hershbergerjoe.hershber...@gmail.com
 Cc: Mingkai Humingkai...@freescale.com
 Cc: Andy Flemingaflem...@freescale.com
 Cc: Kumar Galaga...@kernel.crashing.org
 Cc: Detlev Zundeld...@denx.de
 ---
   drivers/net/tsec.c |4 ++--
   1 files changed, 2 insertions(+), 2 deletions(-)

 diff --git a/drivers/net/tsec.c b/drivers/net/tsec.c
 index 78ffc95..1805ca0 100644
 --- a/drivers/net/tsec.c
 +++ b/drivers/net/tsec.c
 @@ -250,8 +250,8 @@ static void startup_tsec(struct eth_device *dev)
   txIdx = 0;

   /* Point to the buffer descriptors */
 - out_be32(regs-tbase, (unsigned int)(rtx.txbd[txIdx]));
 - out_be32(regs-rbase, (unsigned int)(rtx.rxbd[rxIdx]));
 + out_be32(regs-tbase, (unsigned int)(rtx.txbd[0]));
 + out_be32(regs-rbase, (unsigned int)(rtx.rxbd[0]));

Note that  and [0] are not really needed.

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


Re: [U-Boot] [u-boot-release] [Patch v2] powerpc/eeprom: cleanup mac command

2011-08-11 Thread York Sun
On Wed, 2011-08-10 at 20:27 -0500, Tabi Timur-B04825 wrote:
 York Sun wrote:
  Change the help message to be more helpful. Print argument format.
  Fix MAX_NUM_PORTS to comply with v1 NXID format.
 
  Signed-off-by: York Sunyork...@freescale.com
 
 Could you also fix the commands so that they take a number in decimal 
 instead of hex?
 
 
  e.mac[index][i] = simple_strtoul(p, p, 16);
 
 ...
 
   e.mac_count = simple_strtoul(argv[2], NULL, 16);
 
 I know U-Boot uses hex for everything, but it doesn't make sense for 
 this command.


Yes, I can change it. But not all of them. We use hexadecimal for mac
address but not the count of ports. Please comment on my next version.

York



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


[U-Boot] [PATCH v3 3/4] armv7: stronger barrier for cache-maintenance operations

2011-08-11 Thread Aneesh V
set-way operations need a DSB after them to ensure the
operation is complete. DMB may not be enough. Use DSB
after all operations instead of DMB.

Signed-off-by: Aneesh V ane...@ti.com
---
 arch/arm/cpu/armv7/cache_v7.c |   12 ++--
 1 files changed, 6 insertions(+), 6 deletions(-)

diff --git a/arch/arm/cpu/armv7/cache_v7.c b/arch/arm/cpu/armv7/cache_v7.c
index 3e1e1bf..665f025 100644
--- a/arch/arm/cpu/armv7/cache_v7.c
+++ b/arch/arm/cpu/armv7/cache_v7.c
@@ -81,8 +81,8 @@ static void v7_inval_dcache_level_setway(u32 level, u32 
num_sets,
: : r (setway));
}
}
-   /* DMB to make sure the operation is complete */
-   CP15DMB;
+   /* DSB to make sure the operation is complete */
+   CP15DSB;
 }
 
 static void v7_clean_inval_dcache_level_setway(u32 level, u32 num_sets,
@@ -108,8 +108,8 @@ static void v7_clean_inval_dcache_level_setway(u32 level, 
u32 num_sets,
: : r (setway));
}
}
-   /* DMB to make sure the operation is complete */
-   CP15DMB;
+   /* DSB to make sure the operation is complete */
+   CP15DSB;
 }
 
 static void v7_maint_dcache_level_setway(u32 level, u32 operation)
@@ -227,8 +227,8 @@ static void v7_dcache_maint_range(u32 start, u32 stop, u32 
range_op)
break;
}
 
-   /* DMB to make sure the operation is complete */
-   CP15DMB;
+   /* DSB to make sure the operation is complete */
+   CP15DSB;
 }
 
 /* Invalidate TLB */
-- 
1.7.0.4

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


[U-Boot] [PATCH v3 1/4] arm: do not force d-cache enable on all boards

2011-08-11 Thread Aneesh V
c2dd0d45540397704de9b13287417d21049d34c6 added dcache_enable()
to board_init_r(). This enables d-cache for all ARM boards.
As a result some of the arm boards that are not cache-ready
are broken. Revert this change and allow platform code to
take the decision on d-cache enabling.

Also add some documentation for cache usage in ARM.

Signed-off-by: Aneesh V ane...@ti.com
---
V2:
 Updated with additional guidelines in the README.
---
 arch/arm/lib/board.c  |8 ++
 arch/arm/lib/cache.c  |   12 +++
 doc/README.arm-caches |   51 +
 include/common.h  |1 +
 4 files changed, 67 insertions(+), 5 deletions(-)
 create mode 100644 doc/README.arm-caches

diff --git a/arch/arm/lib/board.c b/arch/arm/lib/board.c
index 14a56f6..38a31d8 100644
--- a/arch/arm/lib/board.c
+++ b/arch/arm/lib/board.c
@@ -451,11 +451,9 @@ void board_init_r(gd_t *id, ulong dest_addr)
gd-flags |= GD_FLG_RELOC;  /* tell others: relocation done */
 
monitor_flash_len = _end_ofs;
-   /*
-* Enable D$:
-* I$, if needed, must be already enabled in start.S
-*/
-   dcache_enable();
+
+   /* Enable caches */
+   enable_caches();
 
debug(monitor flash len: %08lX\n, monitor_flash_len);
board_init();   /* Setup chipselects */
diff --git a/arch/arm/lib/cache.c b/arch/arm/lib/cache.c
index 92b61a2..b545fb7 100644
--- a/arch/arm/lib/cache.c
+++ b/arch/arm/lib/cache.c
@@ -53,3 +53,15 @@ void __flush_dcache_all(void)
 }
 void   flush_dcache_all(void)
__attribute__((weak, alias(__flush_dcache_all)));
+
+
+/*
+ * Default implementation of enable_caches()
+ * Real implementation should be in platform code
+ */
+void __enable_caches(void)
+{
+   puts(WARNING: Caches not enabled\n);
+}
+void enable_caches(void)
+   __attribute__((weak, alias(__enable_caches)));
diff --git a/doc/README.arm-caches b/doc/README.arm-caches
new file mode 100644
index 000..a833eee
--- /dev/null
+++ b/doc/README.arm-caches
@@ -0,0 +1,51 @@
+Disabling I-cache:
+- Set CONFIG_SYS_ICACHE_OFF
+
+Disabling D-cache:
+- Set CONFIG_SYS_DCACHE_OFF
+
+Enabling I-cache:
+- Make sure CONFIG_SYS_ICACHE_OFF is not set and call icache_enable().
+
+Enabling D-cache:
+- Make sure CONFIG_SYS_ICACHE_OFF is not set and call dcache_enable().
+
+Enabling Caches at System Startup:
+- Implement enable_caches() for your platform and enable the I-cache and
+  D-cache from this function. This function is called immediately
+  after relocation.
+
+Guidelines for Working with D-cache:
+
+Memory to Peripheral DMA:
+- Flush the buffer after the MPU writes the data and before the DMA is
+  initiated.
+
+Peripheral to Memory DMA:
+- Invalidate the buffer before starting the DMA. In case there are any dirty
+  lines from the DMA buffer in the cache, subsequent cache-line replacements
+  may corrupt the buffer in memory while the DMA is still going on. Cache-line
+  replacement can happen if the CPU tries to bring some other memory locations
+  into the cache while the DMA is going on.
+- Invalidate the buffer after the DMA is complete and before the MPU reads
+  it. This may be needed in addition to the invalidation before the DMA
+  mentioned above, because in some processors memory contents can spontaneously
+  come to the cache due to speculative memory access by the CPU. If this
+  happens with the DMA buffer while DMA is going on we have a coherency 
problem.
+
+Buffer Requirements:
+- Any buffer that is invalidated(that is, typically the peripheral to
+  memory DMA buffer) should be aligned to cache-line boundary both at
+  at the beginning and at the end of the buffer.
+- If the buffer is not cache-line aligned invalidation will be restricted
+  to the aligned part. That is, one cache-line at the respective boundary
+  may be left out while doing invalidation.
+
+Cleanup Before Linux:
+- cleanup_before_linux() should flush the D-cache, invalidate I-cache, and
+  disable MMU and caches.
+- The following sequence is advisable while disabling d-cache:
+  1. disable_dcache() - flushes and disables d-cache
+  2. invalidate_dcache_all() - invalid any entry that came to the cache
+   in the short period after the cache was flushed but before the
+   cache got disabled.
diff --git a/include/common.h b/include/common.h
index 12a1074..bd10f31 100644
--- a/include/common.h
+++ b/include/common.h
@@ -616,6 +616,7 @@ ulong   lcd_setmem (ulong);
 ulong  video_setmem (ulong);
 
 /* arch/$(ARCH)/lib/cache.c */
+void   enable_caches(void);
 void   flush_cache   (unsigned long, unsigned long);
 void   flush_dcache_all(void);
 void   flush_dcache_range(unsigned long start, unsigned long stop);
-- 
1.7.0.4

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


[U-Boot] [PATCH v3 4/4] armv7: cache: remove flush on un-aligned invalidate

2011-08-11 Thread Aneesh V
Remove the flush of boundary cache-lines done as part
of invalidate on a non cache-line boundary aligned
buffer

Also, print a warning when this situation is recognized.

Signed-off-by: Aneesh V ane...@ti.com
---
V2:
* New in V2
V3:
* error notification instead of warning on un-aligned invalidate
---
 arch/arm/cpu/armv7/cache_v7.c |   14 --
 arch/arm/lib/cache-pl310.c|   15 +--
 2 files changed, 17 insertions(+), 12 deletions(-)

diff --git a/arch/arm/cpu/armv7/cache_v7.c b/arch/arm/cpu/armv7/cache_v7.c
index 665f025..1b4e808 100644
--- a/arch/arm/cpu/armv7/cache_v7.c
+++ b/arch/arm/cpu/armv7/cache_v7.c
@@ -181,21 +181,23 @@ static void v7_dcache_inval_range(u32 start, u32 stop, 
u32 line_len)
u32 mva;
 
/*
-* If start address is not aligned to cache-line flush the first
-* line to prevent affecting somebody else's buffer
+* If start address is not aligned to cache-line do not
+* invalidate the first cache-line
 */
if (start  (line_len - 1)) {
-   v7_dcache_clean_inval_range(start, start + 1, line_len);
+   printf(ERROR: %s - start address is not aligned - 0x%08x\n,
+   __func__, start);
/* move to next cache line */
start = (start + line_len - 1)  ~(line_len - 1);
}
 
/*
-* If stop address is not aligned to cache-line flush the last
-* line to prevent affecting somebody else's buffer
+* If stop address is not aligned to cache-line do not
+* invalidate the last cache-line
 */
if (stop  (line_len - 1)) {
-   v7_dcache_clean_inval_range(stop, stop + 1, line_len);
+   printf(ERROR: %s - stop address is not aligned - 0x%08x\n,
+   __func__, stop);
/* align to the beginning of this cache line */
stop = ~(line_len - 1);
}
diff --git a/arch/arm/lib/cache-pl310.c b/arch/arm/lib/cache-pl310.c
index 36c629c..21d13f7 100644
--- a/arch/arm/lib/cache-pl310.c
+++ b/arch/arm/lib/cache-pl310.c
@@ -26,6 +26,7 @@
 #include asm/armv7.h
 #include asm/pl310.h
 #include config.h
+#include common.h
 
 struct pl310_regs *const pl310 = (struct pl310_regs *)CONFIG_SYS_PL310_BASE;
 
@@ -89,21 +90,23 @@ void v7_outer_cache_inval_range(u32 start, u32 stop)
u32 pa, line_size = 32;
 
/*
-* If start address is not aligned to cache-line flush the first
-* line to prevent affecting somebody else's buffer
+* If start address is not aligned to cache-line do not
+* invalidate the first cache-line
 */
if (start  (line_size - 1)) {
-   v7_outer_cache_flush_range(start, start + 1);
+   printf(ERROR: %s - start address is not aligned - 0x%08x\n,
+   __func__, start);
/* move to next cache line */
start = (start + line_size - 1)  ~(line_size - 1);
}
 
/*
-* If stop address is not aligned to cache-line flush the last
-* line to prevent affecting somebody else's buffer
+* If stop address is not aligned to cache-line do not
+* invalidate the last cache-line
 */
if (stop  (line_size - 1)) {
-   v7_outer_cache_flush_range(stop, stop + 1);
+   printf(ERROR: %s - stop address is not aligned - 0x%08x\n,
+   __func__, stop);
/* align to the beginning of this cache line */
stop = ~(line_size - 1);
}
-- 
1.7.0.4

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


[U-Boot] [PATCH v3 2/4] omap: enable caches at system start-up

2011-08-11 Thread Aneesh V
Signed-off-by: Aneesh V ane...@ti.com
---
 arch/arm/cpu/armv7/omap3/board.c |8 
 arch/arm/cpu/armv7/omap4/board.c |8 
 2 files changed, 16 insertions(+), 0 deletions(-)

diff --git a/arch/arm/cpu/armv7/omap3/board.c b/arch/arm/cpu/armv7/omap3/board.c
index 4aaf97b..2c3d7f3 100644
--- a/arch/arm/cpu/armv7/omap3/board.c
+++ b/arch/arm/cpu/armv7/omap3/board.c
@@ -402,3 +402,11 @@ void v7_outer_cache_disable(void)
omap3_update_aux_cr(0, 0x2);
 }
 #endif
+
+#ifndef CONFIG_SYS_DCACHE_OFF
+void enable_caches(void)
+{
+   /* Enable D-cache. I-cache is already enabled in start.S */
+   dcache_enable();
+}
+#endif
diff --git a/arch/arm/cpu/armv7/omap4/board.c b/arch/arm/cpu/armv7/omap4/board.c
index 5943d61..8f7c375 100644
--- a/arch/arm/cpu/armv7/omap4/board.c
+++ b/arch/arm/cpu/armv7/omap4/board.c
@@ -299,3 +299,11 @@ void v7_outer_cache_disable(void)
set_pl310_ctrl_reg(0);
 }
 #endif
+
+#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.0.4

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


[U-Boot] [PATCH v3 0/4] arm: changes in cache handling

2011-08-11 Thread Aneesh V
- Avoid enabling caches for all ARM boards
- Enable caches for omap3/4
- Stronger barrier for armv7 cache-maintenance operations.

V2:
* Rebased to latest HEAD of u-boot/master
* Improved the README
* Added a patch for removing the flush in invalidate
  and for printing a warning in such cases.

V3:
* Improve the error message on un-aligned invalidate

Aneesh V (4):
  arm: do not force d-cache enable on all boards
  omap: enable caches at system start-up
  armv7: stronger barrier for cache-maintenance operations
  armv7: cache: remove flush on un-aligned invalidate

 arch/arm/cpu/armv7/cache_v7.c|   26 ++-
 arch/arm/cpu/armv7/omap3/board.c |8 ++
 arch/arm/cpu/armv7/omap4/board.c |8 ++
 arch/arm/lib/board.c |8 ++---
 arch/arm/lib/cache-pl310.c   |   15 ++
 arch/arm/lib/cache.c |   12 +
 doc/README.arm-caches|   51 ++
 include/common.h |1 +
 8 files changed, 106 insertions(+), 23 deletions(-)
 create mode 100644 doc/README.arm-caches

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


[U-Boot] [PATCH 0/7] SPL Linux boot

2011-08-11 Thread Simon Schwarz
This addds direct Linux boot to SPL. It implements a savebp command to save 
ATAGS or FDT to NAND flash. The kernel image has to be in place for this!

checkpatch whines about not using strict_strtoull - since this is not available
I can't change this.

based on:
- The new SPL layout
- OMAP3 new SPL layout
  (http://article.gmane.org/gmane.comp.boot-loaders.u-boot/105260)

Related to:
- http://article.gmane.org/gmane.comp.boot-loaders.u-boot/102669

Simon Schwarz (7):
  arm: Add Prep subcommand support to bootm
  Add savebp command
  arm: Add savebp implementation for arm
  omap-common/spl: Add linux boot to SPL
  devkit8000/spl: init GPMC for dm9000 in SPL
  omap-common: Add NAND SPL linux booting
  omap-common: fixes BSS overwriting problem

 arch/arm/cpu/armv7/omap-common/spl.c  |   49 +++-
 arch/arm/cpu/armv7/omap-common/spl_nand.c |   63 +++
 arch/arm/include/asm/omap_common.h|2 +
 arch/arm/include/asm/savebp.h |   27 ++
 arch/arm/lib/Makefile |1 +
 arch/arm/lib/bootm.c  |  116 +++
 arch/arm/lib/savebp.c |   92 +
 board/timll/devkit8000/devkit8000.c   |   33 ++--
 common/Makefile   |1 +
 common/cmd_bootm.c|2 +-
 common/cmd_savebp.c   |  123 +
 include/command.h |5 +
 include/configs/devkit8000.h  |   14 +++-
 13 files changed, 446 insertions(+), 82 deletions(-)
 create mode 100644 arch/arm/include/asm/savebp.h
 create mode 100644 arch/arm/lib/savebp.c
 create mode 100644 common/cmd_savebp.c

-- 
1.7.4.1

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


[U-Boot] [PATCH 1/7] arm: Add Prep subcommand support to bootm

2011-08-11 Thread Simon Schwarz
Adds prep subcommand to bootm implementation of ARM. When bootm is called with
the subcommand prep the function stops right after ATAGS creation and before
announce_and_cleanup.

This is used in savebp command

Signed-off-by: Simon Schwarz simonschwarz...@gmail.com
---
 arch/arm/lib/bootm.c |  116 +++--
 common/cmd_bootm.c   |2 +-
 2 files changed, 65 insertions(+), 53 deletions(-)

diff --git a/arch/arm/lib/bootm.c b/arch/arm/lib/bootm.c
index 802e833..d3152ae 100644
--- a/arch/arm/lib/bootm.c
+++ b/arch/arm/lib/bootm.c
@@ -1,4 +1,7 @@
-/*
+/* Copyright (C) 2011
+ * Corscience GmbH  Co. KG - Simon Schwarz schw...@corscience.de
+ *  - Added prep subcommand support
+ *
  * (C) Copyright 2002
  * Sysgo Real-Time Solutions, GmbH www.elinos.com
  * Marius Groeger mgroe...@sysgo.de
@@ -55,7 +58,7 @@ static struct tag *params;
 
 static ulong get_sp(void);
 #if defined(CONFIG_OF_LIBFDT)
-static int bootm_linux_fdt(int machid, bootm_headers_t *images);
+static int bootm_linux_fdt(int machid, bootm_headers_t *images, int flag);
 #endif
 
 void arch_lmb_reserve(struct lmb *lmb)
@@ -98,63 +101,67 @@ int do_bootm_linux(int flag, int argc, char *argv[], 
bootm_headers_t *images)
bd_t*bd = gd-bd;
char*s;
int machid = bd-bi_arch_number;
-   void(*kernel_entry)(int zero, int arch, uint params);
+   void(*kernel_entry)(int zero, int arch, uint params) = NULL;
 
 #ifdef CONFIG_CMDLINE_TAG
char *commandline = getenv (bootargs);
 #endif
-
-   if ((flag != 0)  (flag != BOOTM_STATE_OS_GO))
-   return 1;
-
-   s = getenv (machid);
-   if (s) {
-   machid = simple_strtoul (s, NULL, 16);
-   printf (Using machid 0x%x from environment\n, machid);
-   }
-
-   show_boot_progress (15);
+   if ((flag != 0)  (!(flag  BOOTM_STATE_OS_GO ||
+flag  BOOTM_STATE_OS_PREP)))
+   return 1; /* subcommand not implemented */
+   else if ((flag == 0) || flag  BOOTM_STATE_OS_PREP) {
+   s = getenv(machid);
+   if (s) {
+   strict_strtoul(s, 16, (long unsigned int *) machid);
+   printf(Using machid 0x%x from environment\n, machid);
+   }
+
+   show_boot_progress(15);
 
 #ifdef CONFIG_OF_LIBFDT
-   if (images-ft_len)
-   return bootm_linux_fdt(machid, images);
+   if (images-ft_len)
+   return bootm_linux_fdt(machid, images, flag);
 #endif
 
-   kernel_entry = (void (*)(int, int, uint))images-ep;
+   kernel_entry = (void (*)(int, int, uint))images-ep;
 
-   debug (## Transferring control to Linux (at address %08lx) ...\n,
-  (ulong) kernel_entry);
+   debug(## Transferring control to Linux (at address %08lx) \
+   ...\n, (ulong) kernel_entry);
 
 #if defined (CONFIG_SETUP_MEMORY_TAGS) || \
 defined (CONFIG_CMDLINE_TAG) || \
 defined (CONFIG_INITRD_TAG) || \
 defined (CONFIG_SERIAL_TAG) || \
 defined (CONFIG_REVISION_TAG)
-   setup_start_tag (bd);
+   setup_start_tag(bd);
 #ifdef CONFIG_SERIAL_TAG
-   setup_serial_tag (params);
+   setup_serial_tag(params);
 #endif
 #ifdef CONFIG_REVISION_TAG
-   setup_revision_tag (params);
+   setup_revision_tag(params);
 #endif
 #ifdef CONFIG_SETUP_MEMORY_TAGS
-   setup_memory_tags (bd);
+   setup_memory_tags(bd);
 #endif
 #ifdef CONFIG_CMDLINE_TAG
-   setup_commandline_tag (bd, commandline);
+   setup_commandline_tag(bd, commandline);
 #endif
 #ifdef CONFIG_INITRD_TAG
-   if (images-rd_start  images-rd_end)
-   setup_initrd_tag (bd, images-rd_start, images-rd_end);
+   if (images-rd_start  images-rd_end)
+   setup_initrd_tag(bd, images-rd_start, images-rd_end);
 #endif
-   setup_end_tag(bd);
+   setup_end_tag(bd);
 #endif
+   if (flag  BOOTM_STATE_OS_PREP)
+   return 0;
+   }
 
-   announce_and_cleanup();
-
-   kernel_entry(0, machid, bd-bi_boot_params);
-   /* does not return */
+   if (flag == 0 || flag  BOOTM_STATE_OS_GO) {
+   announce_and_cleanup();
 
+   kernel_entry(0, machid, bd-bi_boot_params);
+   /* does not return */
+   }
return 1;
 }
 
@@ -174,10 +181,10 @@ static int fixup_memory_node(void *blob)
return fdt_fixup_memory_banks(blob, start, size, CONFIG_NR_DRAM_BANKS);
 }
 
-static int bootm_linux_fdt(int machid, bootm_headers_t *images)
+static int bootm_linux_fdt(int machid, bootm_headers_t *images, int flag)
 {
ulong rd_len;
-   void (*kernel_entry)(int zero, int dt_machid, void *dtblob);
+   void (*kernel_entry)(int zero, int dt_machid, void *dtblob) = NULL;
ulong of_size = images-ft_len;
char **of_flat_tree = 

[U-Boot] [PATCH 2/7] Add savebp command

2011-08-11 Thread Simon Schwarz
This adds a savebp command to the u-boot.

Related config:
CONFIG_CMD_SAVEBP
activate/deactivate the command
CONFIG_CMD_SAVEBP_NAND_OFS
Offset in NAND to use
CONFIG_SYS_NAND_SPL_KERNEL_OFFS
Offset in NAND of direct boot kernel image to use in SPL
CONFIG_SYS_SPL_ARGS_ADDR
Address where the kernel boot arguments are expected - this is normally
RAM-begin + 0x100
Signed-off-by: Simon Schwarz simonschwarz...@gmail.com
---
 common/Makefile  |1 +
 common/cmd_savebp.c  |  123 ++
 include/configs/devkit8000.h |6 ++
 3 files changed, 130 insertions(+), 0 deletions(-)
 create mode 100644 common/cmd_savebp.c

diff --git a/common/Makefile b/common/Makefile
index 124a427..0b42968 100644
--- a/common/Makefile
+++ b/common/Makefile
@@ -158,6 +158,7 @@ COBJS-$(CONFIG_USB_STORAGE) += usb_storage.o
 endif
 COBJS-$(CONFIG_CMD_XIMG) += cmd_ximg.o
 COBJS-$(CONFIG_YAFFS2) += cmd_yaffs2.o
+COBJS-$(CONFIG_CMD_SAVEBP) += cmd_savebp.o
 
 # others
 COBJS-$(CONFIG_DDR_SPD) += ddr_spd.o
diff --git a/common/cmd_savebp.c b/common/cmd_savebp.c
new file mode 100644
index 000..cc988fd
--- /dev/null
+++ b/common/cmd_savebp.c
@@ -0,0 +1,123 @@
+/* Copyright (C) 2011
+ * Corscience GmbH  Co. KG - Simon Schwarz schw...@corscience.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 common.h
+#include command.h
+
+#define TYPE_FDT   0
+#define TYPE_ATAGS 1
+
+static inline int str2off(const char *p, loff_t *num)
+{
+   char *endptr;
+
+   *num = simple_strtoull(p, endptr, 16);
+   return *p != '\0'  *endptr == '\0';
+}
+
+int do_savebp(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
+{
+   loff_t offset;
+   char *bootm_argsv[] = {do_bootm, xxx};
+   int img_type = TYPE_ATAGS;
+   int ret = 0;
+
+   /* - Validate args - */
+   switch (argc) {
+   case 3: /*2. arg offset */
+   if (!str2off(argv[2], offset)) {
+   printf('%s' is not a number\n, argv[2]);
+   return cmd_usage(cmdtp);
+   }
+   case 2: /* 1. arg atags or fdt */
+   if (!(strcmp(argv[1], fdt) || strcmp(argv[1], atags)))
+   return cmd_usage(cmdtp);
+   if (!strcmp(argv[1], fdt))
+   img_type = TYPE_FDT;
+   /* using standard offset */
+   offset = (loff_t)CONFIG_CMD_SAVEBP_NAND_OFS;
+   printf(using standard destination at: 0x%x\n,
+   (uint32_t)offset);
+   break;
+   default:
+   return cmd_usage(cmdtp);
+   }
+
+   /* - do the work - */
+   /* exec bootm_start as subcommand of do_bootm to init the images
+* data structure */
+   debug(exec bootm subcommand start\n);
+   bootm_argsv[1] = start;
+   ret = do_bootm(find_cmd(do_bootm), 0, 2, bootm_argsv);
+   debug(Subcommand start bootm retcode: %d\n, ret);
+
+   debug(exec bootm subcommand loados\n);
+   bootm_argsv[1] = loados;
+   ret = do_bootm(find_cmd(do_bootm), 0, 2, bootm_argsv);
+   debug(Subcommand loados bootm retcode: %d\n, ret);
+
+#ifdef CONFIG_SYS_BOOT_RAMDISK_HIGH
+   debug(exec bootm subcommand ramdisk\n);
+   bootm_argsv[1] = ramdisk;
+   ret = do_bootm(find_cmd(do_bootm), 0, 2, bootm_argsv);
+   debug(Subcommand ramdisk bootm retcode: %d\n, ret);
+#endif
+
+#ifdef CONFIG_OF_LIBFDT
+   if (img_type == TYPE_FDT) {
+   debug(exec bootm subcommand fdt\n);
+   bootm_argsv[1] = fdt;
+   ret = do_bootm(find_cmd(do_bootm), 0, 2, bootm_argsv);
+   debug(Subcommand fdt bootm retcode: %d\n, ret);
+   }
+#endif
+
+   debug(exec bootm subcommand cmdline\n);
+   bootm_argsv[1] = cmdline;
+   ret = do_bootm(find_cmd(do_bootm), 0, 2, bootm_argsv);
+   debug(Subcommand cmdline bootm retcode: %d\n, ret);
+
+   debug(exec bootm bdt cmdline\n);
+   bootm_argsv[1] = bdt;
+   ret = do_bootm(find_cmd(do_bootm), 0, 2, bootm_argsv);
+   debug(Subcommand bdt bootm retcode: %d\n, ret);
+
+   debug(exec bootm subcommand 

[U-Boot] [PATCH 4/7] omap-common/spl: Add linux boot to SPL

2011-08-11 Thread Simon Schwarz
This adds Linux booting to the SPL

Related CONFIGs:
CONFIG_SPL_OS_BOOT
Activates/Deactivates the OS booting feature
CONFIG_SPL_OS_BOOT_KEY
defines the IO-pin number u-boot switch - if pressed u-boot is booted
CONFIG_SYS_SPL_MACHID
Machine ID of the used board
CONFIG_SYS_NAND_SPL_KERNEL_OFFS
Offset in NAND of direct boot kernel image to use in SPL
CONFIG_SYS_SPL_ARGS_ADDR
Address where the kernel boot arguments are expected - this is normaly
RAM-begin + 0x100

Signed-off-by: Simon Schwarz simonschwarz...@gmail.com
---
 arch/arm/cpu/armv7/omap-common/spl.c |   48 -
 include/configs/devkit8000.h |7 +++-
 2 files changed, 51 insertions(+), 4 deletions(-)

diff --git a/arch/arm/cpu/armv7/omap-common/spl.c 
b/arch/arm/cpu/armv7/omap-common/spl.c
index c76fea6..9c22c7a 100644
--- a/arch/arm/cpu/armv7/omap-common/spl.c
+++ b/arch/arm/cpu/armv7/omap-common/spl.c
@@ -35,6 +35,7 @@
 #include asm/arch/mmc_host_def.h
 #include i2c.h
 #include image.h
+#include asm/omap_gpio.h
 
 DECLARE_GLOBAL_DATA_PTR;
 
@@ -63,6 +64,25 @@ void board_init_f(ulong dummy)
relocate_code(CONFIG_SPL_STACK, gdata, CONFIG_SPL_TEXT_BASE);
 }
 
+#ifdef CONFIG_SPL_OS_BOOT
+/* Return the value of the U-boot key
+ *
+ * RETURN
+ * 0 if not pressed
+ * positiv if pressed
+ */
+int spl_uboot_key(void)
+{
+   int val = 0;
+   if (!omap_request_gpio(CONFIG_SPL_OS_BOOT_KEY)) {
+   omap_set_gpio_direction(CONFIG_SPL_OS_BOOT_KEY, 1);
+   val = omap_get_gpio_datain(CONFIG_SPL_OS_BOOT_KEY);
+   omap_free_gpio(CONFIG_SPL_OS_BOOT_KEY);
+   }
+   return !val;
+}
+#endif  /* CONFIG_SPL_OS_BOOT */
+
 void spl_parse_image_header(const struct image_header *header)
 {
u32 header_size = sizeof(struct image_header);
@@ -90,7 +110,25 @@ void spl_parse_image_header(const struct image_header 
*header)
}
 }
 
-static void jump_to_image_no_args(void)
+#ifdef CONFIG_SPL_OS_BOOT
+/* This function jumps to an image with argument. Normally an FDT or ATAGS
+ * image.
+ * arg: Pointer to paramter image in RAM
+ */
+void jump_to_image_linux(void *arg)
+{
+   debug(Entering kernel arg pointer: 0x%X\n, arg);
+   typedef void (*image_entry_arg_t)(int, int, void *)
+   __attribute__ ((noreturn));
+   image_entry_arg_t image_entry =
+   (image_entry_arg_t) spl_image.entry_point;
+   /* cleanup_before_linux(); */ /*write SPL function for that*/
+   image_entry(0, CONFIG_SYS_SPL_MACHID, arg);
+}
+void jump_to_image_linux(void *) __attribute__ ((noreturn));
+#endif
+
+void jump_to_image_no_args(void)
 {
typedef void (*image_entry_noargs_t)(void)__attribute__ ((noreturn));
image_entry_noargs_t image_entry =
@@ -99,8 +137,8 @@ static void jump_to_image_no_args(void)
debug(image entry point: 0x%X\n, spl_image.entry_point);
image_entry();
 }
-
 void jump_to_image_no_args(void) __attribute__ ((noreturn));
+
 void board_init_r(gd_t *id, ulong dummy)
 {
u32 boot_device;
@@ -134,6 +172,12 @@ void board_init_r(gd_t *id, ulong dummy)
debug(Jumping to U-Boot\n);
jump_to_image_no_args();
break;
+#ifdef CONFIG_SPL_OS_BOOT
+   case IH_OS_LINUX:
+   debug(Jumping to Linux\n);
+   jump_to_image_linux((void *)CONFIG_SYS_SPL_ARGS_ADDR);
+   break;
+#endif
default:
puts(Unsupported OS image.. Jumping nevertheless..\n);
jump_to_image_no_args();
diff --git a/include/configs/devkit8000.h b/include/configs/devkit8000.h
index 4d0573c..3897ab4 100644
--- a/include/configs/devkit8000.h
+++ b/include/configs/devkit8000.h
@@ -38,7 +38,7 @@
 #define CONFIG_OMAP34301   /* which is in a 3430 */
 #define CONFIG_OMAP3_DEVKIT80001   /* working with DevKit8000 */
 
-#defineCONFIG_SYS_TEXT_BASE0x80008000
+#defineCONFIG_SYS_TEXT_BASE0x8010
 
 #define CONFIG_SDRC/* The chip has SDRC controller */
 
@@ -328,7 +328,7 @@
 #define CONFIG_SPL_MAX_SIZE0xB400  /* 45 K */
 #define CONFIG_SPL_STACK   LOW_LEVEL_SRAM_STACK
 
-#define CONFIG_SPL_BSS_START_ADDR  0x8000 /*CONFIG_SYS_SDRAM_BASE*/
+#define CONFIG_SPL_BSS_START_ADDR  0x8500 /* leave space for bootargs*/
 #define CONFIG_SPL_BSS_MAX_SIZE0x8
 
 /* NAND boot config */
@@ -358,6 +358,9 @@
 #define CONFIG_CMD_SAVEBP_WRITE_SIZE   0x400 /* 1024 byte */
 #define CONFIG_CMD_SAVEBP_NAND_OFS (CONFIG_SYS_NAND_SPL_KERNEL_OFFS+\
0x40)
+#define CONFIG_SPL_OS_BOOT
+#define CONFIG_SPL_OS_BOOT_KEY 26
+#define CONFIG_SYS_SPL_MACHID  MACH_TYPE_DEVKIT8000
 #define CONFIG_SYS_NAND_SPL_KERNEL_OFFS0x28
 #define CONFIG_SYS_SPL_ARGS_ADDR   (PHYS_SDRAM_1 + 0x100)
 #endif /* __CONFIG_H */
-- 
1.7.4.1


[U-Boot] [PATCH 3/7] arm: Add savebp implementation for arm

2011-08-11 Thread Simon Schwarz
This adds the savebp implementation to the arm platform.

Related CONFIGs:
CONFIG_CMD_SAVEBP_WRITE_SIZE defines the size of the image to write

Signed-off-by: Simon Schwarz simonschwarz...@gmail.com
---
 arch/arm/include/asm/savebp.h |   27 
 arch/arm/lib/Makefile |1 +
 arch/arm/lib/savebp.c |   92 +
 include/command.h |5 ++
 include/configs/devkit8000.h  |1 +
 5 files changed, 126 insertions(+), 0 deletions(-)
 create mode 100644 arch/arm/include/asm/savebp.h
 create mode 100644 arch/arm/lib/savebp.c

diff --git a/arch/arm/include/asm/savebp.h b/arch/arm/include/asm/savebp.h
new file mode 100644
index 000..3774e45
--- /dev/null
+++ b/arch/arm/include/asm/savebp.h
@@ -0,0 +1,27 @@
+/* Copyright (C) 2011
+ * Corscience GmbH  Co. KG - Simon Schwarz schw...@corscience.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
+ */
+#ifndef _SAVEBP_H_
+#define _SAVEBP_H_
+
+extern bootm_headers_t images;
+
+#endif /* _SAVEBP_H_ */
diff --git a/arch/arm/lib/Makefile b/arch/arm/lib/Makefile
index 300c8fa..abf7a6a 100644
--- a/arch/arm/lib/Makefile
+++ b/arch/arm/lib/Makefile
@@ -44,6 +44,7 @@ COBJS-y   += cache-cp15.o
 COBJS-$(CONFIG_SYS_L2_PL310) += cache-pl310.o
 COBJS-y+= interrupts.o
 COBJS-y+= reset.o
+COBJS-$(CONFIG_CMD_SAVEBP) += savebp.o
 SOBJS-$(CONFIG_USE_ARCH_MEMSET) += memset.o
 SOBJS-$(CONFIG_USE_ARCH_MEMCPY) += memcpy.o
 endif
diff --git a/arch/arm/lib/savebp.c b/arch/arm/lib/savebp.c
new file mode 100644
index 000..412f623
--- /dev/null
+++ b/arch/arm/lib/savebp.c
@@ -0,0 +1,92 @@
+/* Copyright (C) 2011
+ * Corscience GmbH  Co. KG - Simon Schwarz schw...@corscience.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 common.h
+#include command.h
+#include image.h
+
+#include nand.h
+#include asm/savebp.h
+
+#ifdef CONFIG_OMAP34XX
+#include asm/arch/sys_proto.h
+#endif
+
+DECLARE_GLOBAL_DATA_PTR;
+
+/* This function writes given bootparams to NAND flash
+ *  adr: Start adress of Kernel parameter image (ATAGS, FDT)
+ *  length: length of the image in byte
+ * off: offset in NAND flash
+ *
+ * borrowd heavily from common/cmd_nand.c
+ */
+static void boot_params_to_nand(u_char *adr, size_t length, loff_t off)
+{
+   nand_info_t *nand = nand_info[0]; /* use 0 as in SPL */
+   nand_erase_options_t opts;
+#ifdef CONFIG_OMAP34XX
+   omap_nand_switch_ecc(1); /* use hw ecc on omap for SPL compat */
+#endif
+   /* erase */
+   memset(opts, 0, sizeof(opts));
+   opts.offset = off;
+   opts.length = length;
+   opts.quiet = 1;
+   opts.spread = 1;
+   nand_erase_opts(nand, opts);
+
+   /* write */
+   if (nand_write_skip_bad(nand, off, length, adr, 0)) {
+   printf(FAILED!\n);
+   return;
+   }
+
+   printf(Written to offset 0x%llX, size: %d bytes\n,
+   off, length);
+}
+
+/* Saves FDT to NAND */
+int do_savebp_fdt(loff_t offset)
+{
+   /* XXX: Problem address of FDT is needed here... */
+   boot_params_to_nand((u_char *)images.ft_addr,
+   CONFIG_CMD_SAVEBP_WRITE_SIZE, offset);
+   return 0;
+}
+
+
+/* Saves ATAGS to NAND */
+int do_savebp_atags(loff_t offset)
+{
+   /* Vars */
+   bd_t *bd = gd-bd;
+
+   printf(write ATAGS to NAND...\n);
+
+   /* save em */
+   /* used fixed size - easier to read later just ignore garbage */
+   

[U-Boot] [PATCH 6/7] omap-common: Add NAND SPL linux booting

2011-08-11 Thread Simon Schwarz
This implements booting of Linux from NAND in SPL

Signed-off-by: Simon Schwarz simonschwarz...@gmail.com
---
 arch/arm/cpu/armv7/omap-common/spl_nand.c |   48 +++-
 1 files changed, 32 insertions(+), 16 deletions(-)

diff --git a/arch/arm/cpu/armv7/omap-common/spl_nand.c 
b/arch/arm/cpu/armv7/omap-common/spl_nand.c
index af02a59..06254b2 100644
--- a/arch/arm/cpu/armv7/omap-common/spl_nand.c
+++ b/arch/arm/cpu/armv7/omap-common/spl_nand.c
@@ -46,26 +46,42 @@ void spl_nand_load_image(void)
 
/*use CONFIG_SYS_TEXT_BASE as temporary storage area */
header = (struct image_header *)(CONFIG_SYS_TEXT_BASE);
+#ifdef CONFIG_SPL_OS_BOOT
+   if (!spl_uboot_key()) {
+   /* load parameter image */
+   nand_spl_load_image(CONFIG_CMD_SAVEBP_NAND_OFS ,
+   CONFIG_CMD_SAVEBP_WRITE_SIZE,
+   (void *)CONFIG_SYS_SPL_ARGS_ADDR);
 
+   /* load linux */
+   nand_spl_load_image(CONFIG_SYS_NAND_SPL_KERNEL_OFFS,
+   CONFIG_SYS_NAND_PAGE_SIZE, (void *)header);
+   spl_parse_image_header(header);
+   nand_spl_load_image(CONFIG_SYS_NAND_SPL_KERNEL_OFFS,
+   spl_image.size, (void *)spl_image.load_addr);
+   } else
+#endif
+   {
 #ifdef CONFIG_NAND_ENV_DST
-   nand_spl_load_image(CONFIG_ENV_OFFSET,
-   CONFIG_SYS_NAND_PAGE_SIZE, (void *)header);
-   spl_parse_image_header(header);
-   nand_spl_load_image(CONFIG_ENV_OFFSET, spl_image.size,
-   (void *)image_load_addr);
+   nand_spl_load_image(CONFIG_ENV_OFFSET,
+   CONFIG_SYS_NAND_PAGE_SIZE, (void *)header);
+   spl_parse_image_header(header);
+   nand_spl_load_image(CONFIG_ENV_OFFSET, spl_image.size,
+   (void *)spl_image.load_addr);
 #ifdef CONFIG_ENV_OFFSET_REDUND
-   nand_spl_load_image(CONFIG_ENV_OFFSET_REDUND,
-   CONFIG_SYS_NAND_PAGE_SIZE, (void *)header);
-   spl_parse_image_header(header);
-   nand_spl_load_image(CONFIG_ENV_OFFSET_REDUND, spl_image.size,
-   (void *)image_load_addr);
+   nand_spl_load_image(CONFIG_ENV_OFFSET_REDUND,
+   CONFIG_SYS_NAND_PAGE_SIZE, (void *)header);
+   spl_parse_image_header(header);
+   nand_spl_load_image(CONFIG_ENV_OFFSET_REDUND, spl_image.size,
+   (void *)spl_image.load_addr);
 #endif
 #endif
-   /* Load u-boot */
-   nand_spl_load_image(CONFIG_SYS_NAND_U_BOOT_OFFS,
-   CONFIG_SYS_NAND_PAGE_SIZE, (void *)header);
-   spl_parse_image_header(header);
-   nand_spl_load_image(CONFIG_SYS_NAND_U_BOOT_OFFS,
-   spl_image.size, (void *)spl_image.load_addr);
+   /* Load u-boot */
+   nand_spl_load_image(CONFIG_SYS_NAND_U_BOOT_OFFS,
+   CONFIG_SYS_NAND_PAGE_SIZE, (void *)header);
+   spl_parse_image_header(header);
+   nand_spl_load_image(CONFIG_SYS_NAND_U_BOOT_OFFS,
+   spl_image.size, (void *)spl_image.load_addr);
+   }
nand_deselect();
 }
-- 
1.7.4.1

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


[U-Boot] [PATCH 5/7] devkit8000/spl: init GPMC for dm9000 in SPL

2011-08-11 Thread Simon Schwarz
Linux crashes if the GPMC isn't configured for the dm9000.

Signed-off-by: Simon Schwarz simonschwarz...@gmail.com
---
 arch/arm/cpu/armv7/omap-common/spl.c |1 +
 arch/arm/include/asm/omap_common.h   |2 ++
 board/timll/devkit8000/devkit8000.c  |   33 -
 3 files changed, 27 insertions(+), 9 deletions(-)

diff --git a/arch/arm/cpu/armv7/omap-common/spl.c 
b/arch/arm/cpu/armv7/omap-common/spl.c
index 9c22c7a..0c38bbb 100644
--- a/arch/arm/cpu/armv7/omap-common/spl.c
+++ b/arch/arm/cpu/armv7/omap-common/spl.c
@@ -175,6 +175,7 @@ void board_init_r(gd_t *id, ulong dummy)
 #ifdef CONFIG_SPL_OS_BOOT
case IH_OS_LINUX:
debug(Jumping to Linux\n);
+   spl_board_prepare_for_linux();
jump_to_image_linux((void *)CONFIG_SYS_SPL_ARGS_ADDR);
break;
 #endif
diff --git a/arch/arm/include/asm/omap_common.h 
b/arch/arm/include/asm/omap_common.h
index 015cede..0906f49 100644
--- a/arch/arm/include/asm/omap_common.h
+++ b/arch/arm/include/asm/omap_common.h
@@ -77,6 +77,8 @@ u32 omap_boot_mode(void);
 
 /* SPL common function s*/
 void spl_parse_image_header(const struct image_header *header);
+int spl_uboot_key(void);
+void spl_board_prepare_for_linux(void);
 
 /* NAND SPL functions */
 void spl_nand_load_image(void);
diff --git a/board/timll/devkit8000/devkit8000.c 
b/board/timll/devkit8000/devkit8000.c
index 9b53742..3dd0eeb 100644
--- a/board/timll/devkit8000/devkit8000.c
+++ b/board/timll/devkit8000/devkit8000.c
@@ -62,6 +62,18 @@ int board_init(void)
return 0;
 }
 
+/* Configure GPMC registers for DM9000 */
+static void gpmc_dm9000_config(void)
+{
+   writel(NET_GPMC_CONFIG1, gpmc_cfg-cs[6].config1);
+   writel(NET_GPMC_CONFIG2, gpmc_cfg-cs[6].config2);
+   writel(NET_GPMC_CONFIG3, gpmc_cfg-cs[6].config3);
+   writel(NET_GPMC_CONFIG4, gpmc_cfg-cs[6].config4);
+   writel(NET_GPMC_CONFIG5, gpmc_cfg-cs[6].config5);
+   writel(NET_GPMC_CONFIG6, gpmc_cfg-cs[6].config6);
+   writel(NET_GPMC_CONFIG7, gpmc_cfg-cs[6].config7);
+}
+
 /*
  * Routine: misc_init_r
  * Description: Configure board specific parts
@@ -80,14 +92,7 @@ int misc_init_r(void)
 #endif
 
 #ifdef CONFIG_DRIVER_DM9000
-   /* Configure GPMC registers for DM9000 */
-   writel(NET_GPMC_CONFIG1, gpmc_cfg-cs[6].config1);
-   writel(NET_GPMC_CONFIG2, gpmc_cfg-cs[6].config2);
-   writel(NET_GPMC_CONFIG3, gpmc_cfg-cs[6].config3);
-   writel(NET_GPMC_CONFIG4, gpmc_cfg-cs[6].config4);
-   writel(NET_GPMC_CONFIG5, gpmc_cfg-cs[6].config5);
-   writel(NET_GPMC_CONFIG6, gpmc_cfg-cs[6].config6);
-   writel(NET_GPMC_CONFIG7, gpmc_cfg-cs[6].config7);
+   gpmc_dm9000_config();
 
/* Use OMAP DIE_ID as MAC address */
if (!eth_getenv_enetaddr(ethaddr, enetaddr)) {
@@ -119,7 +124,7 @@ void set_muxconf_regs(void)
MUX_DEVKIT8000();
 }
 
-#if defined(CONFIG_DRIVER_DM9000)  !defined(CONFIG_SPL_BUILD)
+#ifdef CONFIG_DRIVER_DM9000
 /*
  * Routine: board_eth_init
  * Description: Setting up the Ethernet hardware.
@@ -129,3 +134,13 @@ int board_eth_init(bd_t *bis)
return dm9000_initialize(bis);
 }
 #endif
+
+#ifdef CONFIG_SPL_OS_BOOT
+/* do board specific preperation before SPL
+ * Linux boot */
+void spl_board_prepare_for_linux(void)
+{
+   gpmc_dm9000_config();
+}
+
+#endif
-- 
1.7.4.1

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


[U-Boot] [PATCH 7/7] omap-common: fixes BSS overwriting problem

2011-08-11 Thread Simon Schwarz
spl_nand overwrote BSS section because it reads a whole block everytime. Now
loads the block to spare area and just copy the needed junk to destination.
Whole block read is necessary for ecc check!

Signed-off-by: Simon Schwarz simonschwarz...@gmail.com
---
 arch/arm/cpu/armv7/omap-common/spl_nand.c |   21 ++---
 1 files changed, 18 insertions(+), 3 deletions(-)

diff --git a/arch/arm/cpu/armv7/omap-common/spl_nand.c 
b/arch/arm/cpu/armv7/omap-common/spl_nand.c
index 06254b2..408892f 100644
--- a/arch/arm/cpu/armv7/omap-common/spl_nand.c
+++ b/arch/arm/cpu/armv7/omap-common/spl_nand.c
@@ -24,6 +24,7 @@
 #include asm/u-boot.h
 #include asm/utils.h
 #include asm/arch/sys_proto.h
+#include asm/io.h
 #include nand.h
 #include timestamp_autogenerated.h
 #include version_autogenerated.h
@@ -33,6 +34,7 @@
 void spl_nand_load_image(void)
 {
struct image_header *header;
+   int *src, *dst;
switch (omap_boot_mode()) {
case NAND_MODE_HW_ECC:
debug(spl: nand - using hw ecc\n);
@@ -49,16 +51,29 @@ void spl_nand_load_image(void)
 #ifdef CONFIG_SPL_OS_BOOT
if (!spl_uboot_key()) {
/* load parameter image */
-   nand_spl_load_image(CONFIG_CMD_SAVEBP_NAND_OFS ,
+   /* load to temp position since nand_spl_load_image reads
+* a whole block which is typically larger than
+* CONFIG_CMD_SAVEBP_WRITE_SIZE therefore may overwrite
+* following sections like BSS */
+   nand_spl_load_image(CONFIG_CMD_SAVEBP_NAND_OFS,
CONFIG_CMD_SAVEBP_WRITE_SIZE,
-   (void *)CONFIG_SYS_SPL_ARGS_ADDR);
+   (void *)CONFIG_SYS_TEXT_BASE);
+   /* copy to destintion */
+   for (dst = (int *)CONFIG_SYS_SPL_ARGS_ADDR,
+   src = (int *)CONFIG_SYS_TEXT_BASE;
+   src  (int *)(CONFIG_SYS_TEXT_BASE +
+   CONFIG_CMD_SAVEBP_WRITE_SIZE);
+   src++, dst++) {
+   writel(readl(src), dst);
+   }
 
/* load linux */
nand_spl_load_image(CONFIG_SYS_NAND_SPL_KERNEL_OFFS,
CONFIG_SYS_NAND_PAGE_SIZE, (void *)header);
spl_parse_image_header(header);
nand_spl_load_image(CONFIG_SYS_NAND_SPL_KERNEL_OFFS,
-   spl_image.size, (void *)spl_image.load_addr);
+   spl_image.size,
+   (void *)spl_image.load_addr - sizeof(header));
} else
 #endif
{
-- 
1.7.4.1

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


[U-Boot] [Patch v3] powerpc/eeprom: cleanup mac command

2011-08-11 Thread York Sun
Change the help message to be more helpful. Print argument format.
Fix MAX_NUM_PORTS to comply with v1 NXID format. Use decimal for port count.

Signed-off-by: York Sun york...@freescale.com
---
 board/freescale/common/sys_eeprom.c |4 ++--
 common/cmd_mac.c|   29 +
 2 files changed, 19 insertions(+), 14 deletions(-)

diff --git a/board/freescale/common/sys_eeprom.c 
b/board/freescale/common/sys_eeprom.c
index d2ed036..e139a34 100644
--- a/board/freescale/common/sys_eeprom.c
+++ b/board/freescale/common/sys_eeprom.c
@@ -34,7 +34,7 @@
 #endif
 
 #ifdef CONFIG_SYS_I2C_EEPROM_NXID
-#define MAX_NUM_PORTS  23
+#define MAX_NUM_PORTS  31
 #define NXID_VERSION   1
 #endif
 
@@ -398,7 +398,7 @@ int do_mac(cmd_tbl_t *cmdtp, int flag, int argc, char * 
const argv[])
set_date(argv[2]);
break;
case 'p':   /* MAC table size */
-   e.mac_count = simple_strtoul(argv[2], NULL, 16);
+   e.mac_count = simple_strtoul(argv[2], NULL, 10);
update_crc();
break;
case '0' ... '9':   /* mac 0 through mac 22 */
diff --git a/common/cmd_mac.c b/common/cmd_mac.c
index 1884c2a..bd9cc19 100644
--- a/common/cmd_mac.c
+++ b/common/cmd_mac.c
@@ -29,21 +29,26 @@ extern int do_mac(cmd_tbl_t *cmdtp, int flag, int argc, 
char * const argv[]);
 U_BOOT_CMD(
mac, 3, 1,  do_mac,
display and program the system ID and MAC addresses in EEPROM,
-   [read|save|id|num|errata|date|ports|0|1|2|3|4|5|6|7]\n
+   without argument\n
+   - show content of system ID and MAC addresses\n
read\n
-   - show content of EEPROM\n
+   - read EEPROM without showing\n
mac save\n
- save to the EEPROM\n
mac id\n
-   - program system id\n
-   mac num\n
-   - program system serial number\n
-   mac errata\n
-   - program errata data\n
-   mac date\n
-   - program date\n
-   mac ports\n
+   - program system id (fixed)\n
+   mac num string\n
+   - program string as system serial number\n
+   mac errata string\n
+   - program string as errata data\n
+   mac date YYMMDDhhmmss\n
+   - program timestamp\n
+   mac ports n\n
- program the number of ports\n
-   mac X\n
-   - program the MAC address for port X [X=0...7]
+   mac n XX:XX:XX:XX:XX:XX\n
+#ifdef CONFIG_SYS_I2C_EEPROM_NXID
+   - program the MAC address for port n [n=0...30]
+#else
+   - program the MAC address for port n [n=0...7]
+#endif
 );
-- 
1.7.0.4


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


Re: [U-Boot] [u-boot-release] [Patch v3] powerpc/eeprom: cleanup mac command

2011-08-11 Thread Tabi Timur-B04825
York Sun wrote:
 - e.mac_count = simple_strtoul(argv[2], NULL, 16);
 + e.mac_count = simple_strtoul(argv[2], NULL, 10);

You forgot the MAC address index.  There's another use of strtoul in the 
code that needs to be fixed.

Also, if you use 0 instead of 10, then it should be able to handle 
hex as well, just in case someone wants to use it.
___
U-Boot mailing list
U-Boot@lists.denx.de
http://lists.denx.de/mailman/listinfo/u-boot


[U-Boot] relocation problem (again)

2011-08-11 Thread Cajus Hahn
Dear Marcel, Dear Reinhard,

sorry I forgot to mention, that this is in reply to 
http://lists.denx.de/pipermail/u-boot/2011-January/084499.html

I have the same problem with my board and the actual u-boot-atmel (git
from 5th Aug. 2011). It even looks like I am using the same board.
It is a in-circuit ICnova SAM9G45 OEM on a ADB1000 with a 5 display.

Actually I use the u-boot from in-circuit, which is a patched version
basing on u-boot from 2009. I would like to upgrade this old version to
the actual u-boot version. Some time ago somebody tried to get the
in-circuit patch into the u-boot mainstream, but the patch was rejected
because of not meeting the coding rules.

Marcel, can you give me a hint what you changed to get your
configuration running ? I used the latest code for the
at91sam9m10g45ek as reference and added/changed it.

Starting the old u-boot version with patches from in-circuit:
-

Start AT91Bootstrap

U-Boot 2009.11 (Jun 18 2011 - 19:57:09)

DRAM:  128 MB
Flash:  1 MB
NAND:  256 MiB
In:serial
Out:   serial
Err:   serial
MMC:   Atmel MCI: 0
Net:   macb0
Hit any key to stop autoboot:  0
ICnova


Starting u-boot-atmel (git) from 5th Aug. 2011:


Start AT91Bootstrap

U-Boot 2011.06 (Aug 10 2011 - 20:49:32)

U-Boot code: 73F0 - 73F45494  BSS: - 73F87110
CPU: AT91SAM9G45
Crystal frequency:   12 MHz
CPU clock:  400 MHz
Master clock :  133.333 MHz
monitor len: 00087110
ramsize: 0800
TLB table at: 77ff
Top of RAM usable for U-Boot at: 77ff
Reserving 540k for U-Boot at: 77f68000
Reserving 384k for malloc() at: 77f08000
Reserving 24 Bytes for Board Info at: 77f07fe8
Reserving 144 Bytes for Global Data at: 77f07f58
New Stack Pointer is: 77f07f48
RAM Configuration:
Bank #0: 7000 128 MiB
relocation Offset is: 04068000

no more output, it seems the relocation fails.
I have a #DEBUG in lib/board.c to get the above output.

Here is my configuration:

/*
 * Configuation settings for the ICNOVA ADB1000 with SAM9G45 OEM and 5 TFT.
 *
 * See file CREDITS for list of people who contributed to this
 * project.
 *
 * This program is free software; you can redistribute it and/or
 * modify it under the terms of the GNU General Public License as
 * published by the Free Software Foundation; either version 2 of
 * the License, or (at your option) any later version.
 *
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
 * GNU General Public License for more details.
 *
 * You should have received a copy of the GNU General Public License
 * along with this program; if not, write to the Free Software
 * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
 * MA 02111-1307 USA
 */

#ifndef __CONFIG_H
#define __CONFIG_H

#include asm/hardware.h

#define CONFIG_AT91_LEGACY
#define CONFIG_ATMEL_LEGACY /* required until (g)pio is fixed */

/* ARM asynchronous clock */
#define CONFIG_SYS_AT91_SLOW_CLOCK  32768
#define CONFIG_SYS_AT91_MAIN_CLOCK  1200 /* from 12 MHz crystal */
#define CONFIG_SYS_HZ   1000

#define CONFIG_AT91FAMILY
#define CONFIG_ARCH_CPU_INIT
#undef CONFIG_USE_IRQ   /* we don't need IRQ/FIQ stuff  */

#define CONFIG_CMDLINE_TAG  /* enable passing of ATAGs  */
#define CONFIG_SETUP_MEMORY_TAGS
#define CONFIG_INITRD_TAG
#define CONFIG_SKIP_LOWLEVEL_INIT
#define CONFIG_BOARD_EARLY_INIT_F
#define CONFIG_DISPLAY_CPUINFO

/* general purpose I/O */
#define CONFIG_ATMEL_LEGACY /* required until (g)pio is fixed */
#define CONFIG_AT91_GPIO
#define CONFIG_AT91_GPIO_PULLUP 1   /* keep pullups on peripheral pins */

/* serial console */
#define CONFIG_ATMEL_USART
#define CONFIG_USART_BASE   ATMEL_BASE_DBGU
#define CONFIG_USART_ID ATMEL_ID_SYS

/*
 * This needs to be defined for the OHCI code to work but it is defined as
 * ATMEL_ID_UHPHS in the CPU specific header files.
 */
#define ATMEL_ID_UHPATMEL_ID_UHPHS

/*
 * Specify the clock enable bit in the PMC_SCER register.
 */
#define ATMEL_PMC_UHP   AT91SAM926x_PMC_UHP

/* LCD */
#define CONFIG_LCD
#define LCD_BPP LCD_COLOR8
#define CONFIG_LCD_LOGO
#undef LCD_TEST_PATTERN
#define CONFIG_LCD_INFO
#define CONFIG_LCD_INFO_BELOW_LOGO
#define CONFIG_SYS_WHITE_ON_BLACK
#define CONFIG_ATMEL_LCD
#define CONFIG_ATMEL_LCD_RGB565
#define CONFIG_SYS_CONSOLE_IS_IN_ENV
/* board specific(not enough SRAM) */
#define CONFIG_ICNOVA_LCD_BASE  0x73E0

#define CONFIG_BOOTDELAY3

/*
 * Command line configuration.
 */
#include config_cmd_default.h
#define CONFIG_CMD_ASKENV
#define CONFIG_CMD_DHCP
#define CONFIG_CMD_USB
#define CONFIG_CMD_NAND
#define CONFIG_CMD_MTDPARTS
#define CONFIG_MTD_DEVICE
#define CONFIG_MTD_PARTITIONS

Re: [U-Boot] Pull request: u-boot-arm/master -- updated

2011-08-11 Thread Aneesh V
Hi Albert, Sandeep

On Thursday 04 August 2011 10:34 PM, Albert ARIBAUD wrote:
 Hi Wolfgang,

 Here is my pull request for u-boot-arm/master, from which I did remove
 the wrongly applied commits that you indicated and in which all patches
 submitted before the merge window closure are taken into account.

 Developers, please direct complaints to me for any ARM-directed patches
 submitted before the window closure, and which is not accounted for at
 this point.

 Still to apply are  bugfix patches submitted after window closure as
 well as the UTF-8 conversion patch and the ARM board removal patch.

I hope you will be taking the following critical fixes for arm/omap:
1. http://marc.info/?l=u-bootm=131307370323792w=2
2. http://patchwork.ozlabs.org/patch/107678/
3. http://patchwork.ozlabs.org/patch/108865/

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


Re: [U-Boot] relocation problem

2011-08-11 Thread Reinhard Meyer
Dear Cajus Hahn,
 Dear Marcel, Dear Reinhard,
 
 I have the same problem with my board and the actual u-boot-atmel (git
 from 5th Aug. 2011). It even looks like I am using the same board.
 It is a in-circuit ICnova SAM9G45 OEM on a ADB1000 with a 5 display.
 
 Actually I use the u-boot from in-circuit, which is a patched version
 basing on u-boot from 2009. I would like to upgrade this old version to
 the actual u-boot version. Some time ago somebody tried to get the
 in-circuit patch into the u-boot mainstream, but the patch was rejected
 because of not meeting the coding rules.
 
 Marcel, can you give me a hint what you changed to get your
 configuration running ? I used the latest code for the
 at91sam9m10g45ek as reference and added/changed it.

First, let me clear up a thing:
Most ARM boards were runtime broken when relocation was introduced.
We additionally broke the AT91 boards by cleaning up the SoC
header and source files. This second brokenness has been removed by
the recent patches for most of the AT91 SoCs. What probably has not
been fixed in all cases is the brokeness due to the relocation.

It might well be, that boards build clean, but might not run beyond
relocation. You probably have such an issue.

Please refer to the doc/README.ARM-relocation.

Make sure TEXT_BASE is exactly the address where at91bootstrap loads
u-boot. Make sure that at91bootstrap loads the full u-boot image (u-boot
became larger quite a bit due to relocation and other changes).
Make sure that area is not overlapping the final location of the
relocated u-boot (top of RAM). The default at91bootstraps tend to load
the image already quite high into RAM, if relocation overlaps this,
you are doomed.

 
 Starting the old u-boot version with patches from in-circuit:
 -
 
 Start AT91Bootstrap
 
 U-Boot 2009.11 (Jun 18 2011 - 19:57:09)
 
 DRAM:  128 MB
 Flash:  1 MB
 NAND:  256 MiB
 In:serial
 Out:   serial
 Err:   serial
 MMC:   Atmel MCI: 0
 Net:   macb0
 Hit any key to stop autoboot:  0
 ICnova
 
 
 Starting u-boot-atmel (git) from 5th Aug. 2011:
 
 
 Start AT91Bootstrap
 
 U-Boot 2011.06 (Aug 10 2011 - 20:49:32)
 
 U-Boot code: 73F0 - 73F45494  BSS: - 73F87110

I do not see any TEXT_BASE definition in the files below.
Have you merged current u-boot with some old patches?

 CPU: AT91SAM9G45
 Crystal frequency:   12 MHz
 CPU clock:  400 MHz
 Master clock :  133.333 MHz
 monitor len: 00087110
 ramsize: 0800
 TLB table at: 77ff
 Top of RAM usable for U-Boot at: 77ff
 Reserving 540k for U-Boot at: 77f68000
 Reserving 384k for malloc() at: 77f08000
 Reserving 24 Bytes for Board Info at: 77f07fe8
 Reserving 144 Bytes for Global Data at: 77f07f58
 New Stack Pointer is: 77f07f48
 RAM Configuration:
 Bank #0: 7000 128 MiB
 relocation Offset is: 04068000
 
 no more output, it seems the relocation fails.
 I have a #DEBUG in lib/board.c to get the above output.
 
 Here is my configuration:
 
 /*
  * Configuation settings for the ICNOVA ADB1000 with SAM9G45 OEM and 5 TFT.
  *
  * See file CREDITS for list of people who contributed to this
  * project.
  *
  * This program is free software; you can redistribute it and/or
  * modify it under the terms of the GNU General Public License as
  * published by the Free Software Foundation; either version 2 of
  * the License, or (at your option) any later version.
  *
  * This program is distributed in the hope that it will be useful,
  * but WITHOUT ANY WARRANTY; without even the implied warranty of
  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
  * GNU General Public License for more details.
  *
  * You should have received a copy of the GNU General Public License
  * along with this program; if not, write to the Free Software
  * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
  * MA 02111-1307 USA
  */
 
 #ifndef __CONFIG_H
 #define __CONFIG_H
 
 #include asm/hardware.h

Where is the definition that an AT91SAM9G45 is used?
It MUST BE defined before hardware.h is included.

 
 #define CONFIG_AT91_LEGACY
 #define CONFIG_ATMEL_LEGACY   /* required until (g)pio is fixed */
 
 /* ARM asynchronous clock */
 #define CONFIG_SYS_AT91_SLOW_CLOCK  32768
 #define CONFIG_SYS_AT91_MAIN_CLOCK  1200 /* from 12 MHz crystal */
 #define CONFIG_SYS_HZ 1000
 
 #define CONFIG_AT91FAMILY
 #define CONFIG_ARCH_CPU_INIT
 #undef CONFIG_USE_IRQ /* we don't need IRQ/FIQ stuff  */
 
 #define CONFIG_CMDLINE_TAG/* enable passing of ATAGs  */
 #define CONFIG_SETUP_MEMORY_TAGS
 #define CONFIG_INITRD_TAG
 #define CONFIG_SKIP_LOWLEVEL_INIT
 #define CONFIG_BOARD_EARLY_INIT_F
 #define CONFIG_DISPLAY_CPUINFO
 
 /* general purpose I/O */
 #define CONFIG_ATMEL_LEGACY   /* required until (g)pio is fixed */
 #define CONFIG_AT91_GPIO
 #define CONFIG_AT91_GPIO_PULLUP   1   /* 

Re: [U-Boot] [u-boot-release] [Patch v3] powerpc/eeprom: cleanup mac command

2011-08-11 Thread York Sun
On Thu, 2011-08-11 at 09:55 -0500, Tabi Timur-B04825 wrote:
 York Sun wrote:
  -   e.mac_count = simple_strtoul(argv[2], NULL, 16);
  +   e.mac_count = simple_strtoul(argv[2], NULL, 10);
 
 You forgot the MAC address index.  There's another use of strtoul in the 
 code that needs to be fixed.

I didn't forget the index. It is base 10 already.

 
 Also, if you use 0 instead of 10, then it should be able to handle 
 hex as well, just in case someone wants to use it.

That's not a bad idea. I will change to 0 but leave the mac address as
hex.

York


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


Re: [U-Boot] relocation problem (again)

2011-08-11 Thread Reinhard Meyer
Dear Cajus Hahn,
 Dear Marcel, Dear Reinhard,
 
 sorry I forgot to mention, that this is in reply to 
 http://lists.denx.de/pipermail/u-boot/2011-January/084499.html

I suppose you have not followed the steps I pointed out then?

 
 I have the same problem with my board and the actual u-boot-atmel (git
 ...

Please do not repeat the same message.

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


[U-Boot] [Patch v4] powerpc/eeprom: cleanup mac command

2011-08-11 Thread York Sun
Change the help message to be more helpful. Print argument format.
Fix MAX_NUM_PORTS to comply with v1 NXID format. Accept hexadecimal and
decimal for port count and index.

Signed-off-by: York Sun york...@freescale.com
---
 board/freescale/common/sys_eeprom.c |8 
 common/cmd_mac.c|   29 +
 2 files changed, 21 insertions(+), 16 deletions(-)

diff --git a/board/freescale/common/sys_eeprom.c 
b/board/freescale/common/sys_eeprom.c
index d2ed036..bd3572b 100644
--- a/board/freescale/common/sys_eeprom.c
+++ b/board/freescale/common/sys_eeprom.c
@@ -34,7 +34,7 @@
 #endif
 
 #ifdef CONFIG_SYS_I2C_EEPROM_NXID
-#define MAX_NUM_PORTS  23
+#define MAX_NUM_PORTS  31
 #define NXID_VERSION   1
 #endif
 
@@ -398,11 +398,11 @@ int do_mac(cmd_tbl_t *cmdtp, int flag, int argc, char * 
const argv[])
set_date(argv[2]);
break;
case 'p':   /* MAC table size */
-   e.mac_count = simple_strtoul(argv[2], NULL, 16);
+   e.mac_count = simple_strtoul(argv[2], NULL, 0);
update_crc();
break;
-   case '0' ... '9':   /* mac 0 through mac 22 */
-   set_mac_address(simple_strtoul(argv[1], NULL, 10), argv[2]);
+   case '0' ... '9':   /* mac 0 through mac 31 */
+   set_mac_address(simple_strtoul(argv[1], NULL, 0), argv[2]);
break;
case 'h':   /* help */
default:
diff --git a/common/cmd_mac.c b/common/cmd_mac.c
index 1884c2a..bd9cc19 100644
--- a/common/cmd_mac.c
+++ b/common/cmd_mac.c
@@ -29,21 +29,26 @@ extern int do_mac(cmd_tbl_t *cmdtp, int flag, int argc, 
char * const argv[]);
 U_BOOT_CMD(
mac, 3, 1,  do_mac,
display and program the system ID and MAC addresses in EEPROM,
-   [read|save|id|num|errata|date|ports|0|1|2|3|4|5|6|7]\n
+   without argument\n
+   - show content of system ID and MAC addresses\n
read\n
-   - show content of EEPROM\n
+   - read EEPROM without showing\n
mac save\n
- save to the EEPROM\n
mac id\n
-   - program system id\n
-   mac num\n
-   - program system serial number\n
-   mac errata\n
-   - program errata data\n
-   mac date\n
-   - program date\n
-   mac ports\n
+   - program system id (fixed)\n
+   mac num string\n
+   - program string as system serial number\n
+   mac errata string\n
+   - program string as errata data\n
+   mac date YYMMDDhhmmss\n
+   - program timestamp\n
+   mac ports n\n
- program the number of ports\n
-   mac X\n
-   - program the MAC address for port X [X=0...7]
+   mac n XX:XX:XX:XX:XX:XX\n
+#ifdef CONFIG_SYS_I2C_EEPROM_NXID
+   - program the MAC address for port n [n=0...30]
+#else
+   - program the MAC address for port n [n=0...7]
+#endif
 );
-- 
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 8/9] DM9000: change some printf to use debug instead

2011-08-11 Thread Eric Jarrige
Hi Simon, Hi Detlev,

 Hi Simon,
 
 Dear Eric Jarrige,
 
 On 08/10/2011 10:33 PM, Eric Jarrige wrote:
 Signed-off-by: Eric Jarrigeeric.jarr...@armadeus.org
 Cc: Ben Warrenbiggerbadder...@gmail.com
 ---
  drivers/net/dm9000x.c |8 
  1 files changed, 4 insertions(+), 4 deletions(-)
 
 diff --git a/drivers/net/dm9000x.c b/drivers/net/dm9000x.c
 index b5c5573..9cd0195 100644
 --- a/drivers/net/dm9000x.c
 +++ b/drivers/net/dm9000x.c
 @@ -232,7 +232,7 @@ dm9000_probe(void)
 id_val |= DM9000_ior(DM9000_PIDL)  16;
 id_val |= DM9000_ior(DM9000_PIDH)  24;
 if (id_val == DM9000_ID) {
 -   printf(dm9000 i/o: 0x%x, id: 0x%x \n, CONFIG_DM9000_BASE,
 +   DM9000_DBG(dm9000 i/o: 0x%x, id: 0x%x \n, CONFIG_DM9000_BASE,
id_val);
 return 0;
 } else {
 @@ -298,19 +298,19 @@ static int dm9000_init(struct eth_device *dev, bd_t 
 *bd)
 
 switch (io_mode) {
 case 0x0:  /* 16-bit mode */
 -   printf(DM9000: running in 16 bit mode\n);
 +   DM9000_DBG(DM9000: running in 16 bit mode\n);
 snip
 
 I'am just wondering: I see that DM9000_DBG is used all over dm9000 code 
 - do you know the reason why not just use debug()?

dm9000 does not use debug() at all.
That's the reason to fix the printf issues as a first priority by using the 
DM9000_DBG.

 
 Very likely only historical reasons as the code predates the DEBUG best
 practice.  Bow that you've identified it, we should change it ;)
 
Cheers,
Eric

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


[U-Boot] Supplier LED Tube with UL

2011-08-11 Thread marine zeng
How are you?

I am Marine Maysun International ltd ofChina, our company isspecialized in 
manufacturing LED lighting products. If you interest in our products LED 
lighting, you can visit our website:  

  http://www.maysungroup.com


And now I offer a product: LED Tube

Length:600mm,900mm,1200mm,1500mm

LED Tube:T8/T10

Power: 8W,12W,15W,18W,22W

Certificate: CE ROHS / UL

I hope we will have the opportunity to cooperate in the future.

If you interest in our products, please contact me

Sincerely

Marine
--

MaySun International Limited

Add:ShiQi District,Zhongshan city,China P.O.Box:528400

E-mail:maysun...@hotmail.com sa...@maysungroup.com 

Skype:maysun100 MSN:maysun...@hotmail.com

Mob:+86-13925338032

Tel/Fax:+86-760-88856860  http://www.maysungroup.com

 

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


Re: [U-Boot] relocation problem (again)

2011-08-11 Thread Detlev Zundel
Hi Reinhard,

 Dear Cajus Hahn,
 Dear Marcel, Dear Reinhard,
 
 sorry I forgot to mention, that this is in reply to 
 http://lists.denx.de/pipermail/u-boot/2011-January/084499.html

 I suppose you have not followed the steps I pointed out then?

 
 I have the same problem with my board and the actual u-boot-atmel (git
 ...

 Please do not repeat the same message.

I have to admit that I'm responsible for this repetition.  The copy of
Cajus' mail that I received missed your address in the CC header, so I
told Cajus off-list to explicitely CC you to increase chances of you
reading the mail.  Of course this misleading instruction by myself led
to confusion and the repeated message.

So I take the blame for this, sorry.
  Detlev

-- 
To summarize:  It is a well known and lamented fact  that those people who
most want to  rule people are,  ipso facto, those  least suited  to do it.
To summarize the summary: anyone who is capable of getting themselves made
President should on no account be allowed to do the job.
  -- The Hitchhikers Guide To The Galaxy
--
DENX Software Engineering GmbH,  MD: Wolfgang Denk  Detlev Zundel
HRB 165235 Munich,  Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: (+49)-8142-66989-40 Fax: (+49)-8142-66989-80 Email: d...@denx.de
___
U-Boot mailing list
U-Boot@lists.denx.de
http://lists.denx.de/mailman/listinfo/u-boot


Re: [U-Boot] [PATCH] beagle: pass expansionboard name in bootargs

2011-08-11 Thread Jason Kridner
On Thu, Aug 11, 2011 at 1:47 AM, Joel A Fernandes agnel.j...@gmail.com wrote:
 From: Koen Kooi k-k...@ti.com


 Signed-off-by: Koen Kooi k...@dominion.thruhere.net
 Signed-off-by: Joel A Fernandes agnel.j...@gmail.com

Acked-by: Jason Kridner jkrid...@beagleboard.org

I've put Sandeep (TI maintainer) and Khasim (BeagleBoard u-boot owner) in copy.

 ---
  include/configs/omap3_beagle.h |    3 +++
  1 files changed, 3 insertions(+), 0 deletions(-)

 diff --git a/include/configs/omap3_beagle.h b/include/configs/omap3_beagle.h
 index 42575f1..c41d48e 100644
 --- a/include/configs/omap3_beagle.h
 +++ b/include/configs/omap3_beagle.h
 @@ -202,6 +202,7 @@
        usbtty=cdc_acm\0 \
        console=ttyS2,115200n8\0 \
        mpurate=auto\0 \
 +       buddy=none \
        vram=12M\0 \
        dvimode=1024x768MR-16@60\0 \
        defaultdisplay=dvi\0 \
 @@ -212,6 +213,7 @@
        nandrootfstype=jffs2\0 \
        mmcargs=setenv bootargs console=${console}  \
                mpurate=${mpurate}  \
 +               buddy=${buddy} \
                vram=${vram}  \
                omapfb.mode=dvi:${dvimode}  \
                omapdss.def_disp=${defaultdisplay}  \
 @@ -219,6 +221,7 @@
                rootfstype=${mmcrootfstype}\0 \
        nandargs=setenv bootargs console=${console}  \
                mpurate=${mpurate}  \
 +               buddy=${buddy} \
                vram=${vram}  \
                omapfb.mode=dvi:${dvimode}  \
                omapdss.def_disp=${defaultdisplay}  \
 --
 1.7.1

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

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


Re: [U-Boot] [PATCH] OMAP3 Beagle Pin Mux initialization glitch fix

2011-08-11 Thread Jason Kridner
On Thu, Aug 11, 2011 at 1:26 AM, Joel A Fernandes agnel.j...@gmail.com wrote:
 From: Bob Feretich bob.feret...@rafresearch.com

 From: Bob Feretich bob.feret...@rafresearch.com

 The below patch reverses the order of two segments in the board file.
 Output pins need to have their values initialized, before they are
 exposed to the logic outside the chip.

 Previous discussions:
 http://lists.denx.de/pipermail/u-boot/2011-March/088115.html

 Signed-off-by: Bob Feretich bob.feret...@rafresearch.com
 Signed-off-by: Joel A Fernandes agnel.j...@gmail.com

Acked-by: Jason Kridner jkrid...@beagleboard.org

+ Sandeep and Khasim

 ---
  board/ti/beagle/beagle.c |   12 ++--
  1 files changed, 6 insertions(+), 6 deletions(-)

 diff --git a/board/ti/beagle/beagle.c b/board/ti/beagle/beagle.c
 index ab50514..15d061a 100644
 --- a/board/ti/beagle/beagle.c
 +++ b/board/ti/beagle/beagle.c
 @@ -301,17 +301,17 @@ int misc_init_r(void)
        twl4030_power_init();
        twl4030_led_init(TWL4030_LED_LEDEN_LEDAON | TWL4030_LED_LEDEN_LEDBON);

 -       /* Configure GPIOs to output */
 -       writel(~(GPIO23 | GPIO10 | GPIO8 | GPIO2 | GPIO1), gpio6_base-oe);
 -       writel(~(GPIO31 | GPIO30 | GPIO29 | GPIO28 | GPIO22 | GPIO21 |
 -               GPIO15 | GPIO14 | GPIO13 | GPIO12), gpio5_base-oe);
 -
 -       /* Set GPIOs */
 +       /* Set GPIO states before they are made outputs */
        writel(GPIO23 | GPIO10 | GPIO8 | GPIO2 | GPIO1,
                gpio6_base-setdataout);
        writel(GPIO31 | GPIO30 | GPIO29 | GPIO28 | GPIO22 | GPIO21 |
                GPIO15 | GPIO14 | GPIO13 | GPIO12, gpio5_base-setdataout);

 +       /* Configure GPIOs to output */
 +       writel(~(GPIO23 | GPIO10 | GPIO8 | GPIO2 | GPIO1), gpio6_base-oe);
 +       writel(~(GPIO31 | GPIO30 | GPIO29 | GPIO28 | GPIO22 | GPIO21 |
 +               GPIO15 | GPIO14 | GPIO13 | GPIO12), gpio5_base-oe);
 +
        dieid_num_r();

        return 0;
 --
 1.7.1

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

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


Re: [U-Boot] [PATCH] beagleboard: add support for xM revision C

2011-08-11 Thread Jason Kridner
On Thu, Aug 11, 2011 at 1:50 AM, Joel A Fernandes agnel.j...@gmail.com wrote:
 From: Koen Kooi k...@dominion.thruhere.net


 Signed-off-by: Koen Kooi k...@dominion.thruhere.net
 Signed-off-by: Joel A Fernandes agnel.j...@gmail.com

Acked-by: Jason Kridner jkrid...@beagleboard.org

+ Sandeep and Khasim

 ---
  board/ti/beagle/beagle.c |   10 ++
  board/ti/beagle/beagle.h |    1 +
  2 files changed, 11 insertions(+), 0 deletions(-)

 diff --git a/board/ti/beagle/beagle.c b/board/ti/beagle/beagle.c
 index 15d061a..7768901 100644
 --- a/board/ti/beagle/beagle.c
 +++ b/board/ti/beagle/beagle.c
 @@ -216,6 +216,16 @@ int misc_init_r(void)
                                        TWL4030_PM_RECEIVER_VAUX2_DEV_GRP,
                                        TWL4030_PM_RECEIVER_DEV_GRP_P1);
                break;
 +       case REVISION_XM_C:
 +               printf(Beagle xM Rev C\n);
 +               setenv(beaglerev, xMC);
 +               MUX_BEAGLE_XM();
 +               /* Set VAUX2 to 1.8V for EHCI PHY */
 +               twl4030_pmrecv_vsel_cfg(TWL4030_PM_RECEIVER_VAUX2_DEDICATED,
 +                                       TWL4030_PM_RECEIVER_VAUX2_VSEL_18,
 +                                       TWL4030_PM_RECEIVER_VAUX2_DEV_GRP,
 +                                       TWL4030_PM_RECEIVER_DEV_GRP_P1);
 +               break;
        default:
                printf(Beagle unknown 0x%02x\n, get_board_revision());
                MUX_BEAGLE_XM();
 diff --git a/board/ti/beagle/beagle.h b/board/ti/beagle/beagle.h
 index a7401b1..04247cd 100644
 --- a/board/ti/beagle/beagle.h
 +++ b/board/ti/beagle/beagle.h
 @@ -39,6 +39,7 @@ const omap3_sysinfo sysinfo = {
  #define REVISION_C4    0x5
  #define REVISION_XM_A  0x0
  #define REVISION_XM_B  0x1
 +#define REVISION_XM_C  0x2

  /*
  * IEN  - Input Enable
 --
 1.7.1

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

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


Re: [U-Boot] [PATCH] OMAP: Remove omapfb.debug=y from Beagle and Overo env settings

2011-08-11 Thread Jason Kridner
On Thu, Aug 11, 2011 at 1:34 AM, Joel A Fernandes agnel.j...@gmail.com wrote:
 From: Steve Sakoman st...@sakoman.com


 The kernel DSS2 code is mature now, and keeping this setting hurts performance

 Signed-off-by: Steve Sakoman st...@sakoman.com

Acked-by: Jason Kridner jkrid...@beagleboard.org

+ Sandeep and Khasim

Joel, shouldn't we have your signed-off-by as well, since you are in
the delivery path?

 ---
  include/configs/omap3_beagle.h |    2 --
  include/configs/omap3_overo.h  |    2 --
  2 files changed, 0 insertions(+), 4 deletions(-)

 diff --git a/include/configs/omap3_beagle.h b/include/configs/omap3_beagle.h
 index 9fd80ed..42575f1 100644
 --- a/include/configs/omap3_beagle.h
 +++ b/include/configs/omap3_beagle.h
 @@ -214,7 +214,6 @@
                mpurate=${mpurate}  \
                vram=${vram}  \
                omapfb.mode=dvi:${dvimode}  \
 -               omapfb.debug=y  \
                omapdss.def_disp=${defaultdisplay}  \
                root=${mmcroot}  \
                rootfstype=${mmcrootfstype}\0 \
 @@ -222,7 +221,6 @@
                mpurate=${mpurate}  \
                vram=${vram}  \
                omapfb.mode=dvi:${dvimode}  \
 -               omapfb.debug=y  \
                omapdss.def_disp=${defaultdisplay}  \
                root=${nandroot}  \
                rootfstype=${nandrootfstype}\0 \
 diff --git a/include/configs/omap3_overo.h b/include/configs/omap3_overo.h
 index 242b317..0f64054 100644
 --- a/include/configs/omap3_overo.h
 +++ b/include/configs/omap3_overo.h
 @@ -170,7 +170,6 @@
                mpurate=${mpurate}  \
                vram=${vram}  \
                omapfb.mode=dvi:${dvimode}  \
 -               omapfb.debug=y  \
                omapdss.def_disp=${defaultdisplay}  \
                root=${mmcroot}  \
                rootfstype=${mmcrootfstype}\0 \
 @@ -178,7 +177,6 @@
                mpurate=${mpurate}  \
                vram=${vram}  \
                omapfb.mode=dvi:${dvimode}  \
 -               omapfb.debug=y  \
                omapdss.def_disp=${defaultdisplay}  \
                root=${nandroot}  \
                rootfstype=${nandrootfstype}\0 \
 --
 1.7.1

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

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


Re: [U-Boot] [u-boot-release] [Patch v3] powerpc/eeprom: cleanup mac command

2011-08-11 Thread Tabi Timur-B04825
I see two calls to simple_stroul, and both have 16 in them.

--
Timur Tabi
Linux kernel developer at Freescale


From: sun york-R58495
Sent: Thursday, August 11, 2011 10:03 AM
To: Tabi Timur-B04825
Cc: u-boot@lists.denx.de
Subject: Re: [u-boot-release] [Patch v3] powerpc/eeprom: cleanup mac command

On Thu, 2011-08-11 at 09:55 -0500, Tabi Timur-B04825 wrote:
 York Sun wrote:
  -   e.mac_count = simple_strtoul(argv[2], NULL, 16);
  +   e.mac_count = simple_strtoul(argv[2], NULL, 10);

 You forgot the MAC address index.  There's another use of strtoul in the
 code that needs to be fixed.

I didn't forget the index. It is base 10 already.


 Also, if you use 0 instead of 10, then it should be able to handle
 hex as well, just in case someone wants to use it.

That's not a bad idea. I will change to 0 but leave the mac address as
hex.

York


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


Re: [U-Boot] THANKS

2011-08-11 Thread Song Li
l am a Staff of Hang Seng Bank HongKong, I do not know if we can work
together in transferring $19,500,000.USD from my bank to you account.
Finally if you are interested I shall provide you with more details.
Email: song...@w.cn
___
U-Boot mailing list
U-Boot@lists.denx.de
http://lists.denx.de/mailman/listinfo/u-boot


Re: [U-Boot] [PATCH] OMAP: Remove omapfb.debug=y from Beagle and Overo env settings

2011-08-11 Thread Joel A Fernandes
On Thu, Aug 11, 2011 at 1:24 PM, Jason Kridner jkrid...@beagleboard.org wrote:
 On Thu, Aug 11, 2011 at 1:34 AM, Joel A Fernandes agnel.j...@gmail.com 
 wrote:
 From: Steve Sakoman st...@sakoman.com


 The kernel DSS2 code is mature now, and keeping this setting hurts 
 performance

 Signed-off-by: Steve Sakoman st...@sakoman.com

 Acked-by: Jason Kridner jkrid...@beagleboard.org

 + Sandeep and Khasim

 Joel, shouldn't we have your signed-off-by as well, since you are in
 the delivery path?


Sure, I will resubmit this once. I just hope that this patch is
applied in the same order I submitted it so that there are no merge
conflicts due to an out-of-order apply
___
U-Boot mailing list
U-Boot@lists.denx.de
http://lists.denx.de/mailman/listinfo/u-boot


[U-Boot] [PATCH v2] OMAP: Remove omapfb.debug=y from Beagle and Overo env settings

2011-08-11 Thread Joel A Fernandes
From: Steve Sakoman st...@sakoman.com

The kernel DSS2 code is mature now, and keeping this setting hurts performance

Signed-off-by: Steve Sakoman st...@sakoman.com
Signed-off-by: Joel A Fernandes agnel.j...@gmail.com
---
Changes since v1:
Added myself to SOB

 include/configs/omap3_beagle.h |2 --
 include/configs/omap3_overo.h  |2 --
 2 files changed, 0 insertions(+), 4 deletions(-)

diff --git a/include/configs/omap3_beagle.h b/include/configs/omap3_beagle.h
index 9fd80ed..42575f1 100644
--- a/include/configs/omap3_beagle.h
+++ b/include/configs/omap3_beagle.h
@@ -214,7 +214,6 @@
mpurate=${mpurate}  \
vram=${vram}  \
omapfb.mode=dvi:${dvimode}  \
-   omapfb.debug=y  \
omapdss.def_disp=${defaultdisplay}  \
root=${mmcroot}  \
rootfstype=${mmcrootfstype}\0 \
@@ -222,7 +221,6 @@
mpurate=${mpurate}  \
vram=${vram}  \
omapfb.mode=dvi:${dvimode}  \
-   omapfb.debug=y  \
omapdss.def_disp=${defaultdisplay}  \
root=${nandroot}  \
rootfstype=${nandrootfstype}\0 \
diff --git a/include/configs/omap3_overo.h b/include/configs/omap3_overo.h
index 242b317..0f64054 100644
--- a/include/configs/omap3_overo.h
+++ b/include/configs/omap3_overo.h
@@ -170,7 +170,6 @@
mpurate=${mpurate}  \
vram=${vram}  \
omapfb.mode=dvi:${dvimode}  \
-   omapfb.debug=y  \
omapdss.def_disp=${defaultdisplay}  \
root=${mmcroot}  \
rootfstype=${mmcrootfstype}\0 \
@@ -178,7 +177,6 @@
mpurate=${mpurate}  \
vram=${vram}  \
omapfb.mode=dvi:${dvimode}  \
-   omapfb.debug=y  \
omapdss.def_disp=${defaultdisplay}  \
root=${nandroot}  \
rootfstype=${nandrootfstype}\0 \
-- 
1.7.1

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


Re: [U-Boot] Prize Won

2011-08-11 Thread Claudette Moloney



From: Claudette Moloney
Sent: Thursday, August 11, 2011 1:03 PM
To: Claudette Moloney
Subject: Prize Won


This is a confidential message from the Microsoft/Yahoo Office, You have been 
approved by the Microsoft/Yahoo Foundation Payment Board to receive a cash 
grant of $552,000.00 Dollars E-mail us on: 
msoft-helpde...@hotmail.commailto:msoft-helpde...@hotmail.com

Contact Secertary- Mr. Wilson Harlings on this email: 
msoft-helpde...@hotmail.commailto:msoft-helpde...@hotmail.com

Provide him With
1. Full Name:
2. Address:
3. Tel/Mobile:
4. Occupation:
5. Date of Birth:
6. Payment number: G-900-94



Note: All response and Queries concerning your claims should be sent via email 
to :(msoft-helpde...@hotmail.commailto:msoft-helpde...@hotmail.com)





Claudette Moloney- Announcer



Get in the know by becoming a fan of the Imagine! Facebook page.
Click here: http://www.facebook.com/pages/Imagine/268474025494?ref=nf

DISCLAIMER: The information contained in or accompanying this email is the 
property of Imagine! and for the use of the stated recipient only, and may 
contain information that is confidential and/or privileged. It is intended only 
for the person or entity to which it is addressed or the agent thereof. Anyone 
else is prohibited from disclosing, copying, or disseminating the contents or 
attachments. If you have received this email by mistake, please destroy this 
message and inform the sender immediately by telephone, fax or email.
___
U-Boot mailing list
U-Boot@lists.denx.de
http://lists.denx.de/mailman/listinfo/u-boot


[U-Boot] [PATCH 0/1 V2] add support for mcf5307 cpu

2011-08-11 Thread Angelo Dureghello
Add support for mcf5307 cpu

V1 Initial wrong formatted patch
V2 Following general patch submission rules

 arch/m68k/cpu/mcf530x/Makefile |   48 +++
 arch/m68k/cpu/mcf530x/config.mk|   25 
 arch/m68k/cpu/mcf530x/cpu.c|   48 +++
 arch/m68k/cpu/mcf530x/cpu.h|   33 +
 arch/m68k/cpu/mcf530x/cpu_init.c   |  164 +++
 arch/m68k/cpu/mcf530x/interrupts.c |   42 ++
 arch/m68k/cpu/mcf530x/speed.c  |   36 +
 arch/m68k/cpu/mcf530x/start.S  |  253 
 arch/m68k/include/asm/immap_5307.h |   78 +++
 arch/m68k/include/asm/m5307.h  |  119 +
 10 files changed, 846 insertions(+), 0 deletions(-)
 create mode 100644 arch/m68k/cpu/mcf530x/Makefile
 create mode 100644 arch/m68k/cpu/mcf530x/config.mk
 create mode 100644 arch/m68k/cpu/mcf530x/cpu.c
 create mode 100644 arch/m68k/cpu/mcf530x/cpu.h
 create mode 100644 arch/m68k/cpu/mcf530x/cpu_init.c
 create mode 100644 arch/m68k/cpu/mcf530x/interrupts.c
 create mode 100644 arch/m68k/cpu/mcf530x/speed.c
 create mode 100644 arch/m68k/cpu/mcf530x/start.S
 create mode 100644 arch/m68k/include/asm/immap_5307.h
 create mode 100644 arch/m68k/include/asm/m5307.h

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


[U-Boot] [PATCH 1/1 V2] add support for mcf5307 cpu

2011-08-11 Thread Angelo Dureghello
Add cpu related files and memory map includes. Apply the related
minor changes to general coldfire architecture include files.

Signed-off-by: Angelo Dureghello sysa...@gmail.com
---
 arch/m68k/cpu/mcf530x/Makefile |   48 +++
 arch/m68k/cpu/mcf530x/config.mk|   25 
 arch/m68k/cpu/mcf530x/cpu.c|   48 +++
 arch/m68k/cpu/mcf530x/cpu.h|   33 +
 arch/m68k/cpu/mcf530x/cpu_init.c   |  164 +++
 arch/m68k/cpu/mcf530x/interrupts.c |   42 ++
 arch/m68k/cpu/mcf530x/speed.c  |   36 +
 arch/m68k/cpu/mcf530x/start.S  |  253 
 arch/m68k/include/asm/immap_5307.h |   78 +++
 arch/m68k/include/asm/m5307.h  |  119 +
 10 files changed, 846 insertions(+), 0 deletions(-)
 create mode 100644 arch/m68k/cpu/mcf530x/Makefile
 create mode 100644 arch/m68k/cpu/mcf530x/config.mk
 create mode 100644 arch/m68k/cpu/mcf530x/cpu.c
 create mode 100644 arch/m68k/cpu/mcf530x/cpu.h
 create mode 100644 arch/m68k/cpu/mcf530x/cpu_init.c
 create mode 100644 arch/m68k/cpu/mcf530x/interrupts.c
 create mode 100644 arch/m68k/cpu/mcf530x/speed.c
 create mode 100644 arch/m68k/cpu/mcf530x/start.S
 create mode 100644 arch/m68k/include/asm/immap_5307.h
 create mode 100644 arch/m68k/include/asm/m5307.h

diff --git a/arch/m68k/cpu/mcf530x/Makefile b/arch/m68k/cpu/mcf530x/Makefile
new file mode 100644
index 000..3c5a1c2
--- /dev/null
+++ b/arch/m68k/cpu/mcf530x/Makefile
@@ -0,0 +1,48 @@
+#
+# Copyright (c) 2011 Angelo Dureghello sysa...@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., 59 Temple Place, Suite 330, Boston,
+# MA 02111-1307 USA
+#
+
+include $(TOPDIR)/config.mk
+
+# CFLAGS += -DET_DEBUG
+
+LIB= $(obj)lib$(CPU).o
+
+START  = start.o
+COBJS  = interrupts.o cpu.o speed.o cpu_init.o
+
+SRCS   := $(START:.o=.S) $(SOBJS:.o=.S) $(COBJS:.o=.c)
+OBJS   := $(addprefix $(obj),$(SOBJS) $(COBJS))
+START  := $(addprefix $(obj),$(START))
+
+all:   $(obj).depend $(START) $(LIB)
+
+$(LIB):$(OBJS)
+   $(call cmd_link_o_target, $(OBJS))
+
+#
+
+# defines $(obj).depend target
+include $(SRCTREE)/rules.mk
+
+sinclude $(obj).depend
+
+#
diff --git a/arch/m68k/cpu/mcf530x/config.mk b/arch/m68k/cpu/mcf530x/config.mk
new file mode 100644
index 000..2ba1644
--- /dev/null
+++ b/arch/m68k/cpu/mcf530x/config.mk
@@ -0,0 +1,25 @@
+#
+# Copyright (c) 2011 Angelo Dureghello sysa...@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., 59 Temple Place, Suite 330, Boston,
+# MA 02111-1307 USA
+#
+
+PLATFORM_RELFLAGS += -ffixed-d7 -msep-data
+
+PLATFORM_CPPFLAGS += -m5307 -fPIC
diff --git a/arch/m68k/cpu/mcf530x/cpu.c b/arch/m68k/cpu/mcf530x/cpu.c
new file mode 100644
index 000..efd9cbd
--- /dev/null
+++ b/arch/m68k/cpu/mcf530x/cpu.c
@@ -0,0 +1,48 @@
+/*
+ * Copyright (c) 2011 Angelo Dureghello sysa...@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 

[U-Boot] [PATCH v4] USB: Add align(4) in __attribute__ ((packed)) for struct ehci_hccr and ehci_hcor

2011-08-11 Thread Joel A Fernandes
From: Jason Kridner jkrid...@beagleboard.org

Switched to align(4) to prevent byte access to soc registers in some gcc 
versions.

Credits have to go to Laine Walker-Avina lwalk...@ieee.org for finding the 
problem.

Signed-off-by: Jason Kridner jkrid...@beagleboard.org
Signed-off-by: Joel A Fernandes agnel.j...@gmail.com
Cc: Koen Kooi k-k...@ti.com
Cc: Alexander Holler hol...@ahsoftware.de
Cc: Sandeep Paulraj s-paul...@ti.com
Cc: Igor Grinberg grinb...@compulab.co.il
---
Changes for v2:
* Original and v2 were provided by Alexander Holler.
* v1 was http://patchwork.ozlabs.org/patch/89358/
* v2 was http://patchwork.ozlabs.org/patch/89362/

Changes for v3:
* Switched to align(4), rather than remove the attribute, per suggestion
  from Alexander.

Changes for v4:
* Modified commit summary and title to be more accurate

 drivers/usb/host/ehci.h |4 ++--
 1 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/drivers/usb/host/ehci.h b/drivers/usb/host/ehci.h
index 945ab64..3d0ad0c 100644
--- a/drivers/usb/host/ehci.h
+++ b/drivers/usb/host/ehci.h
@@ -55,7 +55,7 @@ struct ehci_hccr {
 #define HCS_N_PORTS(p) (((p)  0)  0xf)
uint32_t cr_hccparams;
uint8_t cr_hcsp_portrt[8];
-} __attribute__ ((packed));
+} __attribute__ ((packed, aligned(4)));
 
 struct ehci_hcor {
uint32_t or_usbcmd;
@@ -85,7 +85,7 @@ struct ehci_hcor {
 #define FLAG_CF(1  0)/* true:  we'll support high 
speed */
uint32_t or_portsc[CONFIG_SYS_USB_EHCI_MAX_ROOT_PORTS];
uint32_t or_systune;
-} __attribute__ ((packed));
+} __attribute__ ((packed, aligned(4)));
 
 #define USBMODE0x68/* USB Device mode */
 #define USBMODE_SDIS   (1  3)/* Stream disable */
-- 
1.7.1

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


Re: [U-Boot] [PATCH 6/9] mx1: improve PLL freq computation

2011-08-11 Thread Eric Jarrige
Hi Stefano,

On 11 août 2011, at 11:22, Stefano Babic wrote:

 On 08/10/2011 10:33 PM, Eric Jarrige wrote:
 Improve PLL freq computation by using the full resolution of the PLL 
 registers
 
 Hi Eric,
 
 +return (2*(u64)sys_clk_freq * (mfi*(mfd+1) + mfn))/((mfd+1)*(pd+1));
 +}
 
 -return (2*(CONFIG_SYSPLL_CLK_FREQ10)*( (mfi10) + 
 (mfn10)/(mfd+1)))/(pd+1);
 
 Please run checkpatch on your patches for V2. I have not yet done, but
 this line will report missing spaces.
 
I did it and had no error and no warning:

Here is the ourput of checkpatch.pl:

armadeus/buildroot/output/build/linux-3.0.1/scripts/checkpatch.pl 
../../../target/u-boot/git/09-arm920t-relocation.patch 
total: 0 errors, 0 warnings, 10 lines checked

../../../target/u-boot/git/09-arm920t-relocation.patch has no obvious style 
problems and is ready for submission.

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


Re: [U-Boot] [PATCH 2/9] mx1: add i2c registers

2011-08-11 Thread Eric Jarrige
Hi Stefano,

On 11 août 2011, at 10:52, Stefano Babic wrote:

 On 08/10/2011 10:33 PM, Eric Jarrige wrote:
 Add i2c registers for Freescale imx1/L/S
 
 Signed-off-by: Eric Jarrige eric.jarr...@armadeus.org
 Cc: Stefano Babic sba...@denx.de
 ---
 arch/arm/include/asm/arch-imx/imx-regs.h |   23 +++
 1 files changed, 23 insertions(+), 0 deletions(-)
 
 
 Hi Eric,
 
 
 +/*
 + * I2C module
 + */
 +#define IADR   __REG(IMX_I2C_BASE + 0x000) /* I2C Address Register */
 +#define IFDR   __REG(IMX_I2C_BASE + 0x004) /* I2C Frequency Divider 
 Register*/
 +#define I2CR   __REG(IMX_I2C_BASE + 0x008) /* I2C Control Register */
 +#define I2SR   __REG(IMX_I2C_BASE + 0x00C) /* I2C Status Register */
 +#define I2DR   __REG(IMX_I2C_BASE + 0x010) /* I2C Data I/O Register */
 
 See my comments on your [PATCH 3/9] apf9328: Add Armadeus Project board
 APF9328. Access to registers must be done via accessors and __REG macro
 should be removed.

Ok, I remove the i2c driver from the apf9328 set of patches
change the __REG macro to C struct and submit the i2c driver in a separate set 
of patches according to your comment in the [PATCH 3/9]

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


Re: [U-Boot] [PATCH 6/9] mx1: improve PLL freq computation

2011-08-11 Thread Eric Jarrige
Hi Stefano,
 
 On 11 août 2011, at 11:22, Stefano Babic wrote:
 
 On 08/10/2011 10:33 PM, Eric Jarrige wrote:
 Improve PLL freq computation by using the full resolution of the PLL 
 registers
 
 Hi Eric,
 
 +   return (2*(u64)sys_clk_freq * (mfi*(mfd+1) + mfn))/((mfd+1)*(pd+1));
 +}
 
 -   return (2*(CONFIG_SYSPLL_CLK_FREQ10)*( (mfi10) + 
 (mfn10)/(mfd+1)))/(pd+1);
 
 Please run checkpatch on your patches for V2. I have not yet done, but
 this line will report missing spaces.
 
 I did it and had no error and no warning:
 


Here is the report of checkpatch.pl on [PATCH 6/9] this time :

armadeus/buildroot/output/build/linux-3.0.1/scripts/checkpatch.pl 
../../../target/u-boot/git/06-mx1-pllclk.patch 
total: 0 errors, 0 warnings, 44 lines checked

../../../target/u-boot/git/06-mx1-pllclk.patch has no obvious style problems 
and is ready for submission.


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


Re: [U-Boot] [PATCH 3/9] apf9328: Add Armadeus Project board APF9328

2011-08-11 Thread Eric Jarrige
Hi Stefano,

 On 08/10/2011 10:33 PM, Eric Jarrige wrote:
 Add Armadeus Project board APF9328
 
 Signed-off-by: Eric Jarrige eric.jarr...@armadeus.org
 Signed-off-by: Nicolas Colombain nicolas.colomb...@armadeus.com
 
 Hi Eric,
 
 
 diff --git a/board/armadeus/apf9328/apf9328.c 
 b/board/armadeus/apf9328/apf9328.c
 new file mode 100644
 index 000..2250221
 --- /dev/null
 +++ b/board/armadeus/apf9328/apf9328.c
 @@ -0,0 +1,91 @@
 +/*
 + * (C) Copyright 2005-2011
 + * Nicolas Colombin tho...@users.sourceforge.net
 + * Eric Jarrige eric.jarr...@armadeus.org
 + * Copyright (C) 2004 Sascha Hauer, Synertronixx GmbH
 + *
 + * 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/arch/imx-regs.h
 +#include flash.h
 +#include netdev.h
 +#include apf9328fpga.h
 +
 +DECLARE_GLOBAL_DATA_PTR;
 +
 +int board_init(void)
 +{
 +gd-bd-bi_arch_number = CONFIG_MACH_TYPE;
 
 Is there no MACH_TYPE for this board ? It is uncommon for an ARM board.
 Should this board run Linux ?
The MACH_TYPE for this board is 906. This board runs linux and the integration 
in linux is on going.
 
 +void dram_init_banksize(void)
 +{
 +#if (CONFIG_NR_DRAM_BANKS  0)
 
 I think you can get rid of this #ifdef, if you have no RAM at all you
 cannot simply run u-boot.
Good point. I will fix it.

 
 + * Miscellaneous intialization
 + */
 +int misc_init_r(void)
 +{
 +char *s;
 +
 +#if (CONFIG_FPGA)
 +apf9328_init_fpga();
 +#endif
 +
 +#if (CONFIG_DRIVER_DM9000)
 +imx_gpio_mode(GPIO_PORTB | GPIO_DR | GPIO_IN | 14);
 
 Is there a reason to put this code here and not in board_eth_init ? It
 is related to Ethernet and I am supposing this setup should be done
 before dm9000_initialize.
The idea is to keep the configuration  of the CPU pins at one place and to keep 
the initialization of the ethernet controller in a separate function. 
Here this principle of segregation is not obvious as there is only one GPIO pin 
to configure.

 
 
 +
 +void show_boot_progress(int status)
 +{
 +return;
 +}
 
 This function seems to me not very useful. Is it not better to drop it ?
 It is not strictly required.
 You set also #undef CONFIG_SHOW_BOOT_PROGRESS in the configuration file.
Well I choosed to keep it in place in empty state to be the template for the 
final user to add their own debug method if needed.
If it is an issue I would prefer to define the CONFIG_SHOW_BOOT_PROGRESS in the 
configuration file than removing this empty show_boot_progress as the main 
purpose of the board is education and trainings on embedded developments.

 
 
 +#if (CONFIG_FPGA)
 +DECLARE_GLOBAL_DATA_PTR;
 +/* Note that these are pointers to code that is in Flash.  They will be
 + * relocated at runtime.
 + * Spartan3 code is used to download our Spartan 3 :) code is compatible.
 + * Just take care about the file size
 +*/
 +Xilinx_Spartan3_Slave_Serial_fns fpga_fns = {
 +fpga_pre_fn,
 +fpga_pgm_fn,
 +fpga_clk_fn,
 +fpga_init_fn,
 +fpga_done_fn,
 +fpga_wr_fn,
 +};
 +
 +Xilinx_desc fpga[CONFIG_FPGA_COUNT] = {
 
 Do you have more as one FPGA on your board ? And if this is true, they
 share the same firmware ? (I see only one CONFIG_FIRMWARE_ADDR..)
The APF9328 is a SOM therefore it possible to connect some other FPGA to the 
board. In such a situation the idea is to concatenate all the bitstream files 
in the firmware partition.
During the download process to the FPGAs the end of one FPGA download starts 
the download of the next one using the FPGA signal PRG_DONE.
So that it possible to have all firmware in only one partition and save memory 
space by using bitstream files.
To be honest I do not remember if someone use this feature on this board but 
that is . 

 
 +/*
 + * Initialize the fpga.  Return 1 on success, 0 on failure.
 + */
 +int apf9328_init_fpga(void)
 +{
 +char *autoload = getenv(firmware_autoload);
 +int i, lout = 1;
 +
 +debug(%s:%d: Initialize FPGA interface (relocation offset= 0x%.8lx)\n,
 +__func__, __LINE__, gd-reloc_off);
 +
 +fpga_init();
 +
 +for (i = 0; i  CONFIG_FPGA_COUNT; i++) {
 +debug(%s:%d: Adding fpga %d\n, __func__, __LINE__, i);
 +fpga_add(fpga_xilinx, fpga[i]);
 +}
 +
 +if ((autoload)  (0 == strcmp(autoload, 1))) {
 +if 

Re: [U-Boot] [PATCH v3] mips32: fix wrong loop bound in flush_cache()

2011-08-11 Thread Shinya Kuribayashi
Hi,

On 08/10/2011 04:11 PM, Yao Cheng wrote:
 The issue is found when calling flush_cache() with zero size argument.
 The bound of loop is miscalculated in this case and flush_cache() enters a 
 wrong flushing loop.
 To fix this issue I skipped the operations when size is found to be zero.

It feels like the last sentence is somewhat redundant (the diff output
speaks for itself), so omitted.  Other than that, the patch is ok and
queued up to u-boot-mips/master.  If no MIPS patches come up within a
couple of weeks, I'll make a pull request.

Thanks for your report,
___
U-Boot mailing list
U-Boot@lists.denx.de
http://lists.denx.de/mailman/listinfo/u-boot


[U-Boot] [PATCH 1/2] fdt: Add a fdt_set_node_status function

2011-08-11 Thread Chunhe Lan
Add a fdt_set_node_status function that will set the specified
node's status to the value contained in status. If the node
doesn't have status property that will be created.

Signed-off-by: Chunhe Lan chunhe@freescale.com
---
 common/fdt_support.c  |   17 -
 include/fdt_support.h |3 +++
 2 files changed, 19 insertions(+), 1 deletions(-)

diff --git a/common/fdt_support.c b/common/fdt_support.c
index 19b2ef6..384523b 100644
--- a/common/fdt_support.c
+++ b/common/fdt_support.c
@@ -2,7 +2,7 @@
  * (C) Copyright 2007
  * Gerald Van Baren, Custom IDEAS, vanba...@cideas.com
  *
- * Copyright 2010 Freescale Semiconductor, Inc.
+ * Copyright 2010-2011 Freescale Semiconductor, Inc.
  *
  * See file CREDITS for list of people who contributed to this
  * project.
@@ -904,6 +904,21 @@ void fdt_del_node_and_alias(void *blob, const char *alias)
fdt_delprop(blob, off, alias);
 }
 
+/*
+ * Sets the specified node's status to the value contained in status.
+ * If the first character of the specified path is / then we use
+ * alias as a path. Otherwise, we look for an alias of that name.
+ */
+void fdt_set_node_status(void *fdt, const char *alias, const char *status)
+{
+   const char *path = fdt_get_alias(fdt, alias);
+
+   if (!path)
+   path = alias;
+
+   do_fixup_by_path(fdt, path, status, status, strlen(status) + 1, 1);
+}
+
 /* Helper to read a big number; size is in cells (not bytes) */
 static inline u64 of_read_number(const __be32 *cell, int size)
 {
diff --git a/include/fdt_support.h b/include/fdt_support.h
index 863024f..74d7c83 100644
--- a/include/fdt_support.h
+++ b/include/fdt_support.h
@@ -2,6 +2,8 @@
  * (C) Copyright 2007
  * Gerald Van Baren, Custom IDEAS, vanba...@cideas.com
  *
+ * Copyright (C) 2011 Freescale Semiconductor, Inc.
+ *
  * See file CREDITS for list of people who contributed to this
  * project.
  *
@@ -85,6 +87,7 @@ int fdt_fixup_nor_flash_size(void *blob);
 
 void fdt_fixup_mtdparts(void *fdt, void *node_info, int node_info_size);
 void fdt_del_node_and_alias(void *blob, const char *alias);
+void fdt_set_node_status(void *fdt, const char *alias, const char *status);
 u64 fdt_translate_address(void *blob, int node_offset, const u32 *in_addr);
 int fdt_node_offset_by_compat_reg(void *blob, const char *compat,
phys_addr_t compat_off);
-- 
1.5.6.5


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


[U-Boot] [PATCH 2/2] powerpc/p1023rds: Enable nand node and disable nor node

2011-08-11 Thread Chunhe Lan
In the p1023rds, accessing exclusively nor flash or nand flash
device by BR0/OR0. When booting from nor flash, nand node is
disabled and nor node is enabled in the default dtb. So, when
booting from nand flash, nand node should be enabled and nor
node should be disabled.

Signed-off-by: Chunhe Lan chunhe@freescale.com
---
 board/freescale/p1023rds/p1023rds.c |   10 ++
 1 files changed, 10 insertions(+), 0 deletions(-)

diff --git a/board/freescale/p1023rds/p1023rds.c 
b/board/freescale/p1023rds/p1023rds.c
index 8cfd199..b3511a4 100644
--- a/board/freescale/p1023rds/p1023rds.c
+++ b/board/freescale/p1023rds/p1023rds.c
@@ -146,6 +146,14 @@ int board_eth_init(bd_t *bis)
return pci_eth_init(bis);
 }
 
+void fdt_fixup_flash(void *fdt)
+{
+#ifdef CONFIG_NAND_U_BOOT
+   fdt_set_node_status(fdt, nor_flash, disabled);
+   fdt_set_node_status(fdt, nand_flash, okay);
+#endif
+}
+
 #if defined(CONFIG_OF_BOARD_SETUP)
 void ft_board_setup(void *blob, bd_t *bd)
 {
@@ -158,5 +166,7 @@ void ft_board_setup(void *blob, bd_t *bd)
size = getenv_bootm_size();
 
fdt_fixup_memory(blob, (u64)base, (u64)size);
+
+   fdt_fixup_flash(blob);
 }
 #endif
-- 
1.5.6.5


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


[U-Boot] HONDA PROMOTION 2011

2011-08-11 Thread HONDA COMPANY UK

Your email has won £1,750,000.00 GBP Contact
richard_hcuk...@pkuit.com For More information.
Mr. Berenice Lopez (Program Co-ordinator.)

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