[U-Boot] [PATCH v3] mpc83xx: update LCRR register handling

2009-08-27 Thread Heiko Schocher
MPC8379E RM says (10-34):
Once LCRR[CLKDIV] is written, the register should be read, and then
an isync should be executed.
So update this in code.
Also define a LCRR mask for processors, which uses not all bits
in the LCRR register (as for example mpc832x did).

Signed-off-by: Heiko Schocher h...@denx.de
---
changes since v1:
- added comment from DaveLiu. moved LCRR setting to
  cpu_init_r()

changes since v2:
  - added comment from Kim Phillips
changed LCRR_MASK to 0x7fff
use clrsetbits()

 cpu/mpc83xx/cpu_init.c |   17 +
 include/mpc83xx.h  |5 +
 2 files changed, 18 insertions(+), 4 deletions(-)

diff --git a/cpu/mpc83xx/cpu_init.c b/cpu/mpc83xx/cpu_init.c
index ea4f2af..c51924f 100644
--- a/cpu/mpc83xx/cpu_init.c
+++ b/cpu/mpc83xx/cpu_init.c
@@ -23,8 +23,8 @@
 #include common.h
 #include mpc83xx.h
 #include ioports.h
-#ifdef CONFIG_USB_EHCI_FSL
 #include asm/io.h
+#ifdef CONFIG_USB_EHCI_FSL
 #include usb/ehci-fsl.h
 #endif

@@ -193,9 +193,6 @@ void cpu_init_f (volatile immap_t * im)
 */
im-reset.rmr = (RMR_CSRE  (1RMR_CSRE_SHIFT));

-   /* LCRR - Clock Ratio Register (10.3.1.16) */
-   im-lbus.lcrr = CONFIG_SYS_LCRR;
-
/* Enable Time Base  Decrimenter ( so we will have udelay() )*/
im-sysconf.spcr |= SPCR_TBEN;

@@ -329,8 +326,20 @@ void cpu_init_f (volatile immap_t * im)

 int cpu_init_r (void)
 {
+   volatile immap_t *im = (volatile immap_t *)CONFIG_SYS_IMMR;
 #ifdef CONFIG_QE
uint qe_base = CONFIG_SYS_IMMR + 0x0010; /* QE immr base */
+#endif
+
+   /* LCRR - Clock Ratio Register (10.3.1.16) */
+   clrsetbits_be32(im-lbus.lcrr, LCRR_MASK, CONFIG_SYS_LCRR);
+   /* MPC8379E RM 10-34 says after writting this register
+* the register should be reread and an isync should be
+* executed.
+*/
+   in_be32(im-lbus.lcrr);
+
+#ifdef CONFIG_QE
qe_init(qe_base);
qe_reset();
 #endif
diff --git a/include/mpc83xx.h b/include/mpc83xx.h
index 44115c9..15440b5 100644
--- a/include/mpc83xx.h
+++ b/include/mpc83xx.h
@@ -198,6 +198,7 @@
 #define SICRL_URT_CTPR 0x0600
 #define SICRL_IRQ_CTPR 0x00C0

+#define LCRR_MASK  0x7fff
 #elif defined(CONFIG_MPC8313)
 /* SICRL bits - MPC8313 specific */
 #define SICRL_LBC  0x3000
@@ -1200,6 +1201,10 @@

 #define PEX_GCLK_RATIO 0x440

+#if !defined(LCRR_MASK)
+#define LCRR_MASK  0x
+#endif
+
 #ifndef __ASSEMBLY__
 struct pci_region;
 void mpc83xx_pci_init(int num_buses, struct pci_region **reg, int warmboot);
-- 
1.6.0.6

-- 
DENX Software Engineering GmbH, MD: Wolfgang Denk  Detlev Zundel
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
___
U-Boot mailing list
U-Boot@lists.denx.de
http://lists.denx.de/mailman/listinfo/u-boot


Re: [U-Boot] [PATCH 3/7] eSPI: add eSPI controller support

2009-08-27 Thread Hu Mingkai-B21284
 

 -Original Message-
 From: u-boot-boun...@lists.denx.de 
 [mailto:u-boot-boun...@lists.denx.de] On Behalf Of Mike Frysinger
 Sent: Thursday, August 27, 2009 1:54 PM
 To: Hu Mingkai-B21284
 Cc: u-boot@lists.denx.de; Fleming Andy-AFLEMING
 Subject: Re: [U-Boot] [PATCH 3/7] eSPI: add eSPI controller support
 
 On Wednesday 26 August 2009 23:01:52 Hu Mingkai-B21284 wrote:
  From: Mike Frysinger [mailto:vap...@gentoo.org]
   On Monday 16 March 2009 04:56:22 Hu Mingkai-B21284 wrote:
But the eSPI controller integrate the chip select into the 
controller itself, it use the transfer length to control the 
duration of the chip select signal.
  
   so you must tell the controller ahead of time how many bytes are 
   going to be transferred ?  this sounds like a retarded hardware 
   implementation to me.  how exactly do you support 
 arbitrary transfer 
   lengths ?
 
  IIRC every transaction byte length control every transaction.
 
 but what if you dont know the length of the transaction ahead 
 of time ?  if you look at the spi flash framework, it'll 
 write a few bytes (like the opcode to read the status 
 register) and then it'll just keep reading 1 byte at a time 
 (polling the status register).  there is no way of knowing 
 the length ahead of time.  most of the SPI code in u-boot 
 operates this way.
 

So the driver use the length passed by SPI flash read function.
If the length is greater than the max value that is limited by the
transaction length register's bitfiled, the driver couldn't read
anything.
We'll dig into this issue for the furture.

The spi_flash_cmd_* function split the transfer into two steps: 
first the command transfer and then the data transfer. At the 
first step, the transfer length is set to the command 
 length, and 
when transferred the command, the chip select will be 
 negated, so 
the eSPI controller thinks the transfer is cancelled 
 and doesn't transfer the data again.
  
   the transfer state is passed in via the flags parameter.
   this way the SPI controller knows when a transfer starts
   (SPI_XFER_BEGIN) and when it ends (SPI_XFER_END).
 
  As above, we can't use the start/end flags parameter.
 
 then your controller wont be able to work with most (any?) of 
 the code in u- boot.  you need to reject every transfer that 
 snt done with both BEGIN and END flags set.
Looks like now.
 -mike
 

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


Re: [U-Boot] [PATCH 3/7] eSPI: add eSPI controller support

2009-08-27 Thread Mike Frysinger
On Thursday 27 August 2009 02:27:30 Hu Mingkai-B21284 wrote:
  but what if you dont know the length of the transaction ahead
  of time ?  if you look at the spi flash framework, it'll
  write a few bytes (like the opcode to read the status
  register) and then it'll just keep reading 1 byte at a time
  (polling the status register).  there is no way of knowing
  the length ahead of time.  most of the SPI code in u-boot
  operates this way.

 So the driver use the length passed by SPI flash read function.
 If the length is greater than the max value that is limited by the
 transaction length register's bitfiled, the driver couldn't read
 anything.

the length used by the first read covers just the length of the opcode, not 
any of the data returned by the part

as long as your driver rejects all of these things, it'll be detected at 
runtime and it should be fine to merge
-mike


signature.asc
Description: This is a digitally signed message part.
___
U-Boot mailing list
U-Boot@lists.denx.de
http://lists.denx.de/mailman/listinfo/u-boot


Re: [U-Boot] [PATCH 3/7] eSPI: add eSPI controller support

2009-08-27 Thread Hu Mingkai-B21284
 

 -Original Message-
 From: Mike Frysinger [mailto:vap...@gentoo.org] 
 Sent: Thursday, August 27, 2009 2:43 PM
 To: Hu Mingkai-B21284
 Cc: u-boot@lists.denx.de; Fleming Andy-AFLEMING
 Subject: Re: [U-Boot] [PATCH 3/7] eSPI: add eSPI controller support
 
 On Thursday 27 August 2009 02:27:30 Hu Mingkai-B21284 wrote:
   but what if you dont know the length of the transaction ahead of 
   time ?  if you look at the spi flash framework, it'll write a few 
   bytes (like the opcode to read the status
   register) and then it'll just keep reading 1 byte at a 
 time (polling 
   the status register).  there is no way of knowing the 
 length ahead 
   of time.  most of the SPI code in u-boot operates this way.
 
  So the driver use the length passed by SPI flash read function.
  If the length is greater than the max value that is limited by the 
  transaction length register's bitfiled, the driver couldn't read 
  anything.
 
 the length used by the first read covers just the length of 
 the opcode, not any of the data returned by the part
 
 as long as your driver rejects all of these things, it'll be 
 detected at runtime and it should be fine to merge -mike
 

So the driver combine the opcode length and the data length together,
then pass to spi_xfer(for eSPI) . When return the read results, skip the
first opcode length bytes.

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


Re: [U-Boot] [PATCH 3/7] eSPI: add eSPI controller support

2009-08-27 Thread Mike Frysinger
On Thursday 27 August 2009 02:59:34 Hu Mingkai-B21284 wrote:
 From: Mike Frysinger [mailto:vap...@gentoo.org]
  On Thursday 27 August 2009 02:27:30 Hu Mingkai-B21284 wrote:
but what if you dont know the length of the transaction ahead of
time ?  if you look at the spi flash framework, it'll write a few
bytes (like the opcode to read the status
register) and then it'll just keep reading 1 byte at a time (polling
the status register).  there is no way of knowing the length ahead
of time.  most of the SPI code in u-boot operates this way.
  
   So the driver use the length passed by SPI flash read function.
   If the length is greater than the max value that is limited by the
   transaction length register's bitfiled, the driver couldn't read
   anything.
 
  the length used by the first read covers just the length of
  the opcode, not any of the data returned by the part
 
  as long as your driver rejects all of these things, it'll be
  detected at runtime and it should be fine to merge -mike

 So the driver combine the opcode length and the data length together,
 then pass to spi_xfer(for eSPI) . When return the read results, skip the
 first opcode length bytes.

you dont get it ... there is no data length.  the code does:

spi_write(~3 bytes for opcode, BEGIN flag);
while (1) {
spi_read(read 1 data byte);
check_result();
}
end_spi_transaction();

there is no data length which means your controller cannot support the SPI 
flash framework
-mike


signature.asc
Description: This is a digitally signed message part.
___
U-Boot mailing list
U-Boot@lists.denx.de
http://lists.denx.de/mailman/listinfo/u-boot


[U-Boot] problem with read only nanad

2009-08-27 Thread alex889

Hi,
I'm working on a system having 2 NAND chips,
the first one has the U-Boot and a basic firmware, and is read only,
and the second has a new firmware.
when the second chip is empty, the system should boot from the first chip.
but it gives me many errors, probably related to the fact that it's
readonly, 
does the u-boot tries to write something to the nand during startup?
how can i solve this issue?

thanks in advance
Alex
-- 
View this message in context: 
http://www.nabble.com/-U-Boot--problem-with-read-only-nanad-tp25167230p25167230.html
Sent from the Uboot - Users mailing list archive at Nabble.com.

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


[U-Boot] U-BOOT quiet build

2009-08-27 Thread Michal Simek
Hi All,

how to do quiet U-BOOT build?

Mike: I think I saw in past any command which do it. Am I right?

Thanks,
Michal

-- 
Michal Simek, Ing. (M.Eng)
w: www.monstr.eu p: +42-0-721842854
Maintainer of Linux kernel 2.6 Microblaze Linux - http://www.monstr.eu/fdt/
Microblaze U-BOOT custodian
___
U-Boot mailing list
U-Boot@lists.denx.de
http://lists.denx.de/mailman/listinfo/u-boot


Re: [U-Boot] U-BOOT quiet build

2009-08-27 Thread Mike Frysinger
On Thursday 27 August 2009 03:48:52 Michal Simek wrote:
 how to do quiet U-BOOT build?

you mean quiet build like you see with Linux/busybox/uClibc/etc..., u-boot 
doesnt support it.  Wolfgang rejected the idea.

there is silent build like anything else ... use make's -s flag
-mike


signature.asc
Description: This is a digitally signed message part.
___
U-Boot mailing list
U-Boot@lists.denx.de
http://lists.denx.de/mailman/listinfo/u-boot


Re: [U-Boot] U-BOOT quiet build

2009-08-27 Thread Wolfgang Denk
Dear Mike Frysinger,

In message 200908270409.16115.vap...@gentoo.org you wrote:

 you mean quiet build like you see with Linux/busybox/uClibc/etc..., u-boot
 doesnt support it.  Wolfgang rejected the idea.

That's not correct. I did not reject the _idea_.

I just rejected the implementation. I think it is fundamentally wrong
and broken to implement this feature which seems to be high valued in
many projects again and again and again in each and every project's
Makefile code.

Instead, it should be implemented once where it actually belongs: in
the make tool itself, so that _all_ projects can benefit from it
without adding complexity and increased build times to their
Makefiles.

But like in so many cases people rather copy  paste code around
without actually thinking.

 there is silent build like anything else ... use make's -s flag

...or run ./MAKEALL name which has the added benefit of keeping
full log files in the LOG/ directory in case anything should go
wrong.

Best regards,

Wolfgang Denk

-- 
DENX Software Engineering GmbH, MD: Wolfgang Denk  Detlev Zundel
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: (+49)-8142-66989-10 Fax: (+49)-8142-66989-80 Email: w...@denx.de
Probably the best operating system in the world  is  the  [operating
system] made for the PDP-11 by Bell Laboratories.
   - Ted Nelson, October 1977
___
U-Boot mailing list
U-Boot@lists.denx.de
http://lists.denx.de/mailman/listinfo/u-boot


Re: [U-Boot] [PATCH v4] use common code for Matrix Vision boards

2009-08-27 Thread André Schwarz
On Wed, 2009-08-26 at 21:46 +0200, Wolfgang Denk wrote:
 Dear =?ISO-8859-1?Q?Andr=E9?= Schwarz,
 
 In message 1250682092.22118.8.ca...@swa-m460 you wrote:
  clean up existing boards (mvBC-P/MPC5200 and mvBL-M7/MPC8343)
  by using common code.
  
  
  Signed-off-by: Andr=C3=A9 Schwarz andre.schw...@matrix-vision.de
  ---
  
  Wolfgang,
  this is my current diff against your latest master repository - I'm
  unable to split it anymore.
  Unfortunately the e1000 is currently not working on the mvBC-P but this
  is due to changes in drivers/net/e1000.c ... using the last released
  version is working fine. Will contact the maintainer to fix it.
  Hopefully you'll nevertheless apply this patch so that everybody using
  the boards can get up-to-date again.
 
 Sorry for the late reply.
 
 ...
  diff --git a/board/matrix_vision/mvbc_p/mvbc_p_autoscript
  b/board/matrix_vision/mvbc_p/mvbc_p_autoscript
  index 5cee6c5..1102354 100644
  --- a/board/matrix_vision/mvbc_p/mvbc_p_autoscript
  +++ b/board/matrix_vision/mvbc_p/mvbc_p_autoscript
  @@ -5,7 +5,7 @@ setenv bootdtb bootm \${kernel_boot} \
  ${mv_initrd_addr_ram} \${mv_dtb_addr_ram}
   setenv ramkernel setenv kernel_boot \${loadaddr}
   setenv flashkernel setenv kernel_boot \${mv_kernel_addr}
   setenv cpird cp \${mv_initrd_addr} \${mv_initrd_addr_ram} \
  ${mv_initrd_length}
  -setenv bootfromflash run flashkernel cpird ramparam addcons e1000para
  bootdtb
  +setenv bootfromflash run flashkernel cpird ramparam addcons e1000para
  addprofile bootdtb
 
 
 Patch is linewrapped here and elsewhere and thus cannot be applied.

bloody eMail client :-(
The patch file definitely is *not* linewrapped.

 
 Please fix and resubmit. Make sure to use git-send-email for sending.

I'll set up git-send-email and try to send the very same patch file.
Hopefully it will work as expected - sorry for the mess ...


Regards,
André

 
 Thanks.
 
 Best regards,
 
 Wolfgang Denk
 



MATRIX VISION GmbH, Talstrasse 16, DE-71570 Oppenweiler
Registergericht: Amtsgericht Stuttgart, HRB 271090
Geschaeftsfuehrer: Gerhard Thullner, Werner Armingeon, Uwe Furtner, 
Hans-Joachim Reich
___
U-Boot mailing list
U-Boot@lists.denx.de
http://lists.denx.de/mailman/listinfo/u-boot


[U-Boot] [PATCH v5] use common code for Matrix Vision boards

2009-08-27 Thread Andre Schwarz

clean up existing boards (mvBC-P/MPC5200 and mvBL-M7/MPC8343) by using common 
code.

MATRIX VISION GmbH, Talstrasse 16, DE-71570 Oppenweiler
Registergericht: Amtsgericht Stuttgart, HRB 271090
Geschaeftsfuehrer: Gerhard Thullner, Werner Armingeon, Uwe Furtner, 
Hans-Joachim Reich
___
U-Boot mailing list
U-Boot@lists.denx.de
http://lists.denx.de/mailman/listinfo/u-boot


[U-Boot] [PATCH v5] use common code for Matrix Vision boards

2009-08-27 Thread Andre Schwarz
diff --git a/board/matrix_vision/mvbc_p/mvbc_p.c 
b/board/matrix_vision/mvbc_p/mvbc_p.c
index a300342..0cbe900 100644
--- a/board/matrix_vision/mvbc_p/mvbc_p.c
+++ b/board/matrix_vision/mvbc_p/mvbc_p.c
@@ -39,6 +39,7 @@
 #include asm/io.h
 #include fpga.h
 #include mvbc_p.h
+#include ../common/mv_common.h
 
 #define SDRAM_MODE 0x00CD
 #define SDRAM_CONTROL  0x504F
@@ -134,23 +135,6 @@ void mvbc_init_gpio(void)
printf(sint_gpioe  : 0x%08x\n, gpio-sint_gpioe);
 }
 
-void reset_environment(void)
-{
-   char *s, sernr[64];
-
-   printf(\n*** RESET ENVIRONMENT ***\n);
-   memset(sernr, 0, sizeof(sernr));
-   s = getenv(serial#);
-   if (s) {
-   printf(found serial# : %s\n, s);
-   strncpy(sernr, s, 64);
-   }
-   gd-env_valid = 0;
-   env_relocate();
-   if (s)
-   setenv(serial#, sernr);
-}
-
 int misc_init_r(void)
 {
char *s = getenv(reset_env);
@@ -166,7 +150,7 @@ int misc_init_r(void)
return 0;
}
printf( === FACTORY RESET ===\n);
-   reset_environment();
+   mv_reset_environment();
saveenv();
 
return -1;
@@ -206,19 +190,28 @@ void flash_afterinit(ulong size)
 void pci_mvbc_fixup_irq(struct pci_controller *hose, pci_dev_t dev)
 {
unsigned char line = 0xff;
+   char *s = getenv(pci_latency);
u32 base;
+   u8 val = 0;
+
+   if (s)
+   val = simple_strtoul(s, NULL, 16);
 
if (PCI_BUS(dev) == 0) {
switch (PCI_DEV (dev)) {
case 0xa: /* FPGA */
line = 3;
pci_hose_read_config_dword(hose, dev, 
PCI_BASE_ADDRESS_0, base);
-   printf(found FPA - enable arbitration\n);
+   printf(found FPGA - enable arbitration\n);
writel(0x03, (u32*)(base + 0x80c0));
writel(0xf0, (u32*)(base + 0x8080));
+   if (val)
+   pci_hose_write_config_byte(hose, dev, 
PCI_LATENCY_TIMER, val);
break;
case 0xb: /* LAN */
line = 2;
+   if (val)
+   pci_hose_write_config_byte(hose, dev, 
PCI_LATENCY_TIMER, val);
break;
case 0x1a:
break;
@@ -234,85 +227,31 @@ struct pci_controller hose = {
fixup_irq:pci_mvbc_fixup_irq
 };
 
-int mvbc_p_load_fpga(void)
-{
-   size_t data_size = 0;
-   void *fpga_data = NULL;
-   char *datastr = getenv(fpgadata);
-   char *sizestr = getenv(fpgadatasize);
-
-   if (datastr)
-   fpga_data = (void *)simple_strtoul(datastr, NULL, 16);
-   if (sizestr)
-   data_size = (size_t)simple_strtoul(sizestr, NULL, 16);
-
-   return fpga_load(0, fpga_data, data_size);
-}
-
 extern void pci_mpc5xxx_init(struct pci_controller *);
 
 void pci_init_board(void)
 {
-   char *s;
-   int load_fpga = 1;
-
mvbc_p_init_fpga();
-   s = getenv(skip_fpga);
-   if (s) {
-   printf(found 'skip_fpga' - FPGA _not_ loaded !\n);
-   load_fpga = 0;
-   }
-   if (load_fpga) {
-   printf(loading FPGA ... );
-   mvbc_p_load_fpga();
-   printf(done\n);
-   }
+   mv_load_fpga();
pci_mpc5xxx_init(hose);
 }
 
-u8 *dhcp_vendorex_prep(u8 *e)
-{
-   char *ptr;
-
-   /* DHCP vendor-class-identifier = 60 */
-   if ((ptr = getenv(dhcp_vendor-class-identifier))) {
-   *e++ = 60;
-   *e++ = strlen(ptr);
-   while (*ptr)
-   *e++ = *ptr++;
-   }
-   /* DHCP_CLIENT_IDENTIFIER = 61 */
-   if ((ptr = getenv(dhcp_client_id))) {
-   *e++ = 61;
-   *e++ = strlen(ptr);
-   while (*ptr)
-   *e++ = *ptr++;
-   }
-
-   return e;
-}
-
-u8 *dhcp_vendorex_proc (u8 *popt)
-{
-   return NULL;
-}
-
 void show_boot_progress(int val)
 {
struct mpc5xxx_gpio *gpio = (struct mpc5xxx_gpio*)MPC5XXX_GPIO;
 
switch(val) {
case 0: /* FPGA ok */
-   setbits_be32(gpio-simple_dvo, 0x80);
+   setbits_be32(gpio-simple_dvo, LED_G0);
break;
-   case 1:
-   setbits_be32(gpio-simple_dvo, 0x40);
+   case 65:
+   setbits_be32(gpio-simple_dvo, LED_G1);
break;
case 12:
-   setbits_be32(gpio-simple_dvo, 0x20);
+   setbits_be32(gpio-simple_dvo, LED_Y);
break;
case 15:
-   setbits_be32(gpio-simple_dvo, 0x10);
+   setbits_be32(gpio-simple_dvo, LED_R);
break;
default:
break;
diff --git a/board/matrix_vision/mvbc_p/mvbc_p.h 
b/board/matrix_vision/mvbc_p/mvbc_p.h
index 

Re: [U-Boot] U-BOOT quiet build

2009-08-27 Thread Mike Frysinger
On Thursday 27 August 2009 04:45:01 Wolfgang Denk wrote:
 Mike Frysinger wrote:
  you mean quiet build like you see with Linux/busybox/uClibc/etc...,
  u-boot doesnt support it.  Wolfgang rejected the idea.

 That's not correct. I did not reject the _idea_.

 I just rejected the implementation. I think it is fundamentally wrong
 and broken to implement this feature which seems to be high valued in
 many projects again and again and again in each and every project's
 Makefile code.

 Instead, it should be implemented once where it actually belongs: in
 the make tool itself, so that _all_ projects can benefit from it
 without adding complexity and increased build times to their
 Makefiles.

in reality, these equate to the same thing.  the make tool isnt going to 
implement this stuff since it's pretty much impossible to cover all cases.

automake has already integrated support so all automake-based packages get 
support for free.
-mike


signature.asc
Description: This is a digitally signed message part.
___
U-Boot mailing list
U-Boot@lists.denx.de
http://lists.denx.de/mailman/listinfo/u-boot


Re: [U-Boot] [PATCH v5] use common code for Matrix Vision boards

2009-08-27 Thread André Schwarz
On Thu, 2009-08-27 at 10:55 +0200, Andre Schwarz wrote:
 clean up existing boards (mvBC-P/MPC5200 and mvBL-M7/MPC8343) by using common 
 code.
 


huh - two eMails ... this is definitely *not* what I wanted to do. Try
to change the git-send-email behaviour.

Wolfgang, does the patch apply or is it still messed up ?




MATRIX VISION GmbH, Talstrasse 16, DE-71570 Oppenweiler
Registergericht: Amtsgericht Stuttgart, HRB 271090
Geschaeftsfuehrer: Gerhard Thullner, Werner Armingeon, Uwe Furtner, 
Hans-Joachim Reich
___
U-Boot mailing list
U-Boot@lists.denx.de
http://lists.denx.de/mailman/listinfo/u-boot


Re: [U-Boot] ARM926ej, trying to serve interrupt

2009-08-27 Thread Ricardo Martínez
Wolfang,

Thank you very much for your answer.

I've removed printf and any other dangerous code from do_irq. But it still
hangs. Only timer interrupt is enabled. Then, serial driver can't generate
interrupts. I've programmed timer to count 10secs and CPU hangs just then.

I think my problem is that I am assuming that when CPU is interrupted,
.irq: code in start.S is executed. Unfortunately, I don't quite understand
start.S code, neither ARM926 architecture. Maybe I'm missing something
important. Does ARM926 u-boot code by default support interrupt handling? Is
it necesary to configure it further?

Freescale's MPCxxx architectures include install_hdlr in order to register
an interrupt handler for a concrete source. In ARM926ej, I expect CPU to
automatically jump to do_irq when it is interrupted. Maybe, I'm being too
optimistic ;S

The code in start.S that I expect to get executed is.

irq:
get_irq_stack
irq_save_user_regs
bl  do_irq
irq_restore_user_regs

But I can't see why CPU would jump to that address when interrupted. In
other architectures, CPU jumps to a concrete address depending on interrupt
source. With install_hdlr we define where to jump after. This example makes
me think I'm missing a lot of things for ARM926...

Regards,
Ricardo


-Mensaje original-
De: Wolfgang Denk [mailto:w...@denx.de] 
Enviado el: miércoles, 26 de agosto de 2009 20:13
Para: Ricardo Martínez
CC: u-boot@lists.denx.de
Asunto: Re: [U-Boot] ARM926ej, trying to serve interrupt

Dear =?iso-8859-1?Q?Ricardo_Mart=EDnez?=,

In message
!!AAAYAJp7zGtD32xAi3bhcLYAeQ3CgAAAEOIGRX5gEblKkejr+11M
kvqba...@teltronic.es you wrote:

 I'm trying to printf something when one timer generates an interrupt.

Hm... there are certain things you can do in interrupt contect, amd certain
things you cannot do.

Remember that in standard C you can in a signal handler  only  modify
vailables  of  type  sigatomic_t  -  you  must  not  call any library
functions, you must noit call any system calls. Well, in  praxis  you will
probably  find  tat  system  calls  are  safe to call, and most library
functions can be used as well - but nly when you  know  their implementation
well enough to understand exactly what they are (not) doing.

Calling a printf() [which internally may need to allocate buffers, and thus
call malloc() and a lot of other complex functions] is something you must
never do ina signal handler.

Why do you think you can get away with the same here in U-Boot? Even in
interrupt contxt, which is probably even more restricitve?

 u-boot version is 1.3.4.

Old. OLD. I mean: OLD!!!  Please update.

 The problem is that when timer generates interrupt (reaches 0 after 
 several cycles), I expect default u-boot code do_irq, called from 
 .irq: address defined in start.S get executed. In that function is 
 where I want to printf anything to check it is working. But the whole 
 system hangs. When timer generates the interrupt, ARM9 hangs without 
 printing anything and normal execution is freezed.
  
 printf and serial driver work perfectly because I've checked the steps 
 above with prinft debugguing.

Is there any chance that the serial driver might be using interrupts, too,
and that you run into some nested interrupt  handling  which  is not or not
correctly supported by U-Boot?


Best regards,

Wolfgang Denk

-- 
DENX Software Engineering GmbH, MD: Wolfgang Denk  Detlev Zundel
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: (+49)-8142-66989-10 Fax: (+49)-8142-66989-80 Email: w...@denx.de After
a time, you may find that having is not so pleasing a thing, after all, as
wanting.  It is not logical, but it is often true.
-- Spock, Amok Time, stardate 3372.7

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


Re: [U-Boot] U-BOOT quiet build

2009-08-27 Thread Wolfgang Denk
Dear Mike Frysinger,

In message 200908270505.16659.vap...@gentoo.org you wrote:

  Instead, it should be implemented once where it actually belongs: in
  the make tool itself, so that _all_ projects can benefit from it
  without adding complexity and increased build times to their
  Makefiles.
 
 in reality, these equate to the same thing.  the make tool isnt going to 
 implement this stuff since it's pretty much impossible to cover all cases.

Really? Has such a proposal been submitted and turned down?

 automake has already integrated support so all automake-based packages get
 support for free.

I don't consider this a recommendation for automake or the makers of
automake. YMMV, of course.

Best regards,

Wolfgang Denk

-- 
DENX Software Engineering GmbH, MD: Wolfgang Denk  Detlev Zundel
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: (+49)-8142-66989-10 Fax: (+49)-8142-66989-80 Email: w...@denx.de
The POP3 server service depends on the SMTP  server  service,  which
failed to start because of the following error: The operation comple-
ted successfully. -- Windows NT Server v3.51
___
U-Boot mailing list
U-Boot@lists.denx.de
http://lists.denx.de/mailman/listinfo/u-boot


Re: [U-Boot] [PATCH v5] use common code for Matrix Vision boards

2009-08-27 Thread Wolfgang Denk
Dear =?ISO-8859-1?Q?Andr=E9?= Schwarz,

In message 1251364503.4053.7.ca...@swa-m460 you wrote:

 huh - two eMails ... this is definitely *not* what I wanted to do. Try
 to change the git-send-email behaviour.

You may want to use --dry-run initially, and then test with a
private address first.

 Wolfgang, does the patch apply or is it still messed up ?

The patch (in message 2) applies cleanly, but it has neither commit
message nor Signed-off-by: line (which is also not present in message
1).

Best regards,

Wolfgang Denk

-- 
DENX Software Engineering GmbH, MD: Wolfgang Denk  Detlev Zundel
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: (+49)-8142-66989-10 Fax: (+49)-8142-66989-80 Email: w...@denx.de
For those who like this sort of thing, this is the sort of thing they
like.   - Abraham Lincoln
___
U-Boot mailing list
U-Boot@lists.denx.de
http://lists.denx.de/mailman/listinfo/u-boot


Re: [U-Boot] U-BOOT quiet build

2009-08-27 Thread Michal Simek


Mike Frysinger wrote:
 On Thursday 27 August 2009 03:48:52 Michal Simek wrote:
 how to do quiet U-BOOT build?
 
 you mean quiet build like you see with Linux/busybox/uClibc/etc..., u-boot 
 doesnt support it.  Wolfgang rejected the idea.

yep, I meant quiet mode like is in linux kernel and full mode with V=1.

Michal


 
 there is silent build like anything else ... use make's -s flag
 -mike
 
 
 
 
 ___
 U-Boot mailing list
 U-Boot@lists.denx.de
 http://lists.denx.de/mailman/listinfo/u-boot

-- 
Michal Simek, Ing. (M.Eng)
w: www.monstr.eu p: +42-0-721842854
Maintainer of Linux kernel 2.6 Microblaze Linux - http://www.monstr.eu/fdt/
Microblaze U-BOOT custodian
___
U-Boot mailing list
U-Boot@lists.denx.de
http://lists.denx.de/mailman/listinfo/u-boot


Re: [U-Boot] [PATCH v3] mpc83xx: update LCRR register handling

2009-08-27 Thread Jerry Van Baren
Hi Heiko,

One minor critique, I had problems parsing the comment:

Heiko Schocher wrote:
 MPC8379E RM says (10-34):
 Once LCRR[CLKDIV] is written, the register should be read, and then
 an isync should be executed.
 So update this in code.
 Also define a LCRR mask for processors, which uses not all bits
   ^^^
Suggested change:
Also define a LCRR mask for processors to prevent setting any reserved 
bits in the LCRR register (as, for example, mpc832x did).

 in the LCRR register (as for example mpc832x did).
 
 Signed-off-by: Heiko Schocher h...@denx.de

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


Re: [U-Boot] U-BOOT quiet build

2009-08-27 Thread Wolfgang Denk
Dear Mike Frysinger,

In message 200908270643.12310.vap...@gentoo.org you wrote:
 
  Really? Has such a proposal been submitted and turned down?
 
 no idea, but i dont believe it is technically possible, thus it's a dead end 
 i'm not going to waste time on

Where exactly do you exect technical problems?

Best regards,

Wolfgang Denk

-- 
DENX Software Engineering GmbH, MD: Wolfgang Denk  Detlev Zundel
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: (+49)-8142-66989-10 Fax: (+49)-8142-66989-80 Email: w...@denx.de
As in certain cults it is possible to kill a process if you know  its
true name.  -- Ken Thompson and Dennis M. Ritchie
___
U-Boot mailing list
U-Boot@lists.denx.de
http://lists.denx.de/mailman/listinfo/u-boot


Re: [U-Boot] [PATCH v5] use common code for Matrix Vision boards

2009-08-27 Thread Wolfgang Denk
Dear =?ISO-8859-1?Q?Andr=E9?= Schwarz,

In message 1251374409.4053.28.ca...@swa-m460 you wrote:

 ok - checked various options to my private adress.

I'm not sure which options you need checking; all I usually do is

$ git send-email --to u-boot@lists.denx.de /tmp/patch 

 Although I have now a valid commit message and a Signed-off-by: git
 send-mail keeps sending 2 mails. The first one with the commit message
 and the second containing the patch itself.
 
 Any hints ?

And the file you feed in is something that was created using
git format-patch ?

Best regards,

Wolfgang Denk

-- 
DENX Software Engineering GmbH, MD: Wolfgang Denk  Detlev Zundel
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: (+49)-8142-66989-10 Fax: (+49)-8142-66989-80 Email: w...@denx.de
We want to create puppets that pull their own strings.   - Ann Marion
___
U-Boot mailing list
U-Boot@lists.denx.de
http://lists.denx.de/mailman/listinfo/u-boot


[U-Boot] [PATCH v6] use common code for Matrix Vision boards

2009-08-27 Thread André Schwarz
clean up existing boards (mvBC-P/MPC5200 and mvBL-M7/MPC8343) by using common 
code.

Signed-off-by: André Schwarz andre.schw...@matrix-vision.de
---

Wolfgang,

hopefully this is the last try - I'm close to nervous breakdown.
Applying the changes takes longer than actually doing them.
Of course this is due to me, I know.

Thanks for your patience,

André



 board/matrix_vision/mvbc_p/mvbc_p.c  |   97 +-
 board/matrix_vision/mvbc_p/mvbc_p.h  |2 +-
 board/matrix_vision/mvbc_p/mvbc_p_autoscript |   10 ++-
 board/matrix_vision/mvblm7/mvblm7.c  |   54 ++
 board/matrix_vision/mvblm7/mvblm7.h  |3 +-
 board/matrix_vision/mvblm7/pci.c |   35 ++
 include/configs/MVBC_P.h |2 +-
 include/configs/MVBLM7.h |   49 +
 8 files changed, 77 insertions(+), 175 deletions(-)

diff --git a/board/matrix_vision/mvbc_p/mvbc_p.c 
b/board/matrix_vision/mvbc_p/mvbc_p.c
index a300342..0cbe900 100644
--- a/board/matrix_vision/mvbc_p/mvbc_p.c
+++ b/board/matrix_vision/mvbc_p/mvbc_p.c
@@ -39,6 +39,7 @@
 #include asm/io.h
 #include fpga.h
 #include mvbc_p.h
+#include ../common/mv_common.h
 
 #define SDRAM_MODE 0x00CD
 #define SDRAM_CONTROL  0x504F
@@ -134,23 +135,6 @@ void mvbc_init_gpio(void)
printf(sint_gpioe  : 0x%08x\n, gpio-sint_gpioe);
 }
 
-void reset_environment(void)
-{
-   char *s, sernr[64];
-
-   printf(\n*** RESET ENVIRONMENT ***\n);
-   memset(sernr, 0, sizeof(sernr));
-   s = getenv(serial#);
-   if (s) {
-   printf(found serial# : %s\n, s);
-   strncpy(sernr, s, 64);
-   }
-   gd-env_valid = 0;
-   env_relocate();
-   if (s)
-   setenv(serial#, sernr);
-}
-
 int misc_init_r(void)
 {
char *s = getenv(reset_env);
@@ -166,7 +150,7 @@ int misc_init_r(void)
return 0;
}
printf( === FACTORY RESET ===\n);
-   reset_environment();
+   mv_reset_environment();
saveenv();
 
return -1;
@@ -206,19 +190,28 @@ void flash_afterinit(ulong size)
 void pci_mvbc_fixup_irq(struct pci_controller *hose, pci_dev_t dev)
 {
unsigned char line = 0xff;
+   char *s = getenv(pci_latency);
u32 base;
+   u8 val = 0;
+
+   if (s)
+   val = simple_strtoul(s, NULL, 16);
 
if (PCI_BUS(dev) == 0) {
switch (PCI_DEV (dev)) {
case 0xa: /* FPGA */
line = 3;
pci_hose_read_config_dword(hose, dev, 
PCI_BASE_ADDRESS_0, base);
-   printf(found FPA - enable arbitration\n);
+   printf(found FPGA - enable arbitration\n);
writel(0x03, (u32*)(base + 0x80c0));
writel(0xf0, (u32*)(base + 0x8080));
+   if (val)
+   pci_hose_write_config_byte(hose, dev, 
PCI_LATENCY_TIMER, val);
break;
case 0xb: /* LAN */
line = 2;
+   if (val)
+   pci_hose_write_config_byte(hose, dev, 
PCI_LATENCY_TIMER, val);
break;
case 0x1a:
break;
@@ -234,85 +227,31 @@ struct pci_controller hose = {
fixup_irq:pci_mvbc_fixup_irq
 };
 
-int mvbc_p_load_fpga(void)
-{
-   size_t data_size = 0;
-   void *fpga_data = NULL;
-   char *datastr = getenv(fpgadata);
-   char *sizestr = getenv(fpgadatasize);
-
-   if (datastr)
-   fpga_data = (void *)simple_strtoul(datastr, NULL, 16);
-   if (sizestr)
-   data_size = (size_t)simple_strtoul(sizestr, NULL, 16);
-
-   return fpga_load(0, fpga_data, data_size);
-}
-
 extern void pci_mpc5xxx_init(struct pci_controller *);
 
 void pci_init_board(void)
 {
-   char *s;
-   int load_fpga = 1;
-
mvbc_p_init_fpga();
-   s = getenv(skip_fpga);
-   if (s) {
-   printf(found 'skip_fpga' - FPGA _not_ loaded !\n);
-   load_fpga = 0;
-   }
-   if (load_fpga) {
-   printf(loading FPGA ... );
-   mvbc_p_load_fpga();
-   printf(done\n);
-   }
+   mv_load_fpga();
pci_mpc5xxx_init(hose);
 }
 
-u8 *dhcp_vendorex_prep(u8 *e)
-{
-   char *ptr;
-
-   /* DHCP vendor-class-identifier = 60 */
-   if ((ptr = getenv(dhcp_vendor-class-identifier))) {
-   *e++ = 60;
-   *e++ = strlen(ptr);
-   while (*ptr)
-   *e++ = *ptr++;
-   }
-   /* DHCP_CLIENT_IDENTIFIER = 61 */
-   if ((ptr = getenv(dhcp_client_id))) {
-   *e++ = 61;
-   *e++ = strlen(ptr);
-   while (*ptr)
-   *e++ = *ptr++;
-   }
-
-   return e;
-}
-
-u8 *dhcp_vendorex_proc (u8 *popt)
-{
- 

[U-Boot] [RFC] OMAP3: make TWL4030 optional for MMC driver

2009-08-27 Thread Matthias Ludwig
Upcoming boards may power MMC card themself without using
TWL4030, so make it optional by using define CONFIG_TWL4030_MMC.

Enable this for all existing OMAP3 boards.

Signed-off-by: Matthias Ludwig mlud...@ultratronik.de
---

Current OMAP3 MMC driver does require TWL4030 support to
be enabled as all OMAP3 boards are using this chip. I'd like
to push patches for a new board which does not has a TWL4030
and is caring about MMC power by itself.

So, my suggestion is to make the TWL4030 dependency optional.
Are there better ways to to this can using a new define
CONFIG_TWL4030_MMC?

 drivers/mmc/omap3_mmc.c |4 
 include/configs/omap3_beagle.h  |1 +
 include/configs/omap3_evm.h |1 +
 include/configs/omap3_overo.h   |1 +
 include/configs/omap3_pandora.h |1 +
 include/configs/omap3_zoom1.h   |1 +
 include/configs/omap3_zoom2.h   |1 +
 7 files changed, 10 insertions(+), 0 deletions(-)

diff --git a/drivers/mmc/omap3_mmc.c b/drivers/mmc/omap3_mmc.c
index 9e09434..0ed88cb 100644
--- a/drivers/mmc/omap3_mmc.c
+++ b/drivers/mmc/omap3_mmc.c
@@ -27,8 +27,10 @@
 #include fat.h
 #include mmc.h
 #include part.h
+#ifdef CONFIG_TWL4030_MMC
 #include i2c.h
 #include twl4030.h
+#endif
 #include asm/io.h
 #include asm/arch/mmc.h
 
@@ -63,7 +65,9 @@ unsigned char mmc_board_init(void)
 {
t2_t *t2_base = (t2_t *)T2_BASE;
 
+#ifdef CONFIG_TWL4030_MMC
twl4030_power_mmc_init();
+#endif
 
writel(readl(t2_base-pbias_lite) | PBIASLITEPWRDNZ1 |
PBIASSPEEDCTRL0 | PBIASLITEPWRDNZ0,
diff --git a/include/configs/omap3_beagle.h b/include/configs/omap3_beagle.h
index 61629f8..e1cb759 100644
--- a/include/configs/omap3_beagle.h
+++ b/include/configs/omap3_beagle.h
@@ -132,6 +132,7 @@
 /*
  * TWL4030
  */
+#define CONFIG_TWL4030_MMC 1
 #define CONFIG_TWL4030_POWER   1
 #define CONFIG_TWL4030_LED 1
 
diff --git a/include/configs/omap3_evm.h b/include/configs/omap3_evm.h
index 9f0f34b..b3c64a8 100644
--- a/include/configs/omap3_evm.h
+++ b/include/configs/omap3_evm.h
@@ -130,6 +130,7 @@
 /*
  * TWL4030
  */
+#define CONFIG_TWL4030_MMC 1
 #define CONFIG_TWL4030_POWER   1
 
 /*
diff --git a/include/configs/omap3_overo.h b/include/configs/omap3_overo.h
index 07a031b..983832d 100644
--- a/include/configs/omap3_overo.h
+++ b/include/configs/omap3_overo.h
@@ -118,6 +118,7 @@
 /*
  * TWL4030
  */
+#define CONFIG_TWL4030_MMC 1
 #define CONFIG_TWL4030_POWER   1
 #define CONFIG_TWL4030_LED 1
 
diff --git a/include/configs/omap3_pandora.h b/include/configs/omap3_pandora.h
index 1cfd7e9..0d87c71 100644
--- a/include/configs/omap3_pandora.h
+++ b/include/configs/omap3_pandora.h
@@ -121,6 +121,7 @@
 /*
  * TWL4030
  */
+#define CONFIG_TWL4030_MMC 1
 #define CONFIG_TWL4030_POWER   1
 #define CONFIG_TWL4030_LED 1
 
diff --git a/include/configs/omap3_zoom1.h b/include/configs/omap3_zoom1.h
index 61a41e7..1140052 100644
--- a/include/configs/omap3_zoom1.h
+++ b/include/configs/omap3_zoom1.h
@@ -128,6 +128,7 @@
 /*
  * TWL4030
  */
+#define CONFIG_TWL4030_MMC 1
 #define CONFIG_TWL4030_POWER   1
 #define CONFIG_TWL4030_LED 1
 
diff --git a/include/configs/omap3_zoom2.h b/include/configs/omap3_zoom2.h
index 03f92f5..40add99 100644
--- a/include/configs/omap3_zoom2.h
+++ b/include/configs/omap3_zoom2.h
@@ -149,6 +149,7 @@
 /*
  * TWL4030
  */
+#define CONFIG_TWL4030_MMC 1
 #define CONFIG_TWL4030_POWER   1
 #define CONFIG_TWL4030_LED 1
 
-- 
1.6.2.5

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


[U-Boot] [PATCH v2] Add ability for arch code to make changes before we boot

2009-08-27 Thread Kumar Gala
Added a arch_preboot_os() function that cpu specific code can implement to
allow for various modifications to the state of the machine right before
we boot.  This can be useful to setup register state to a specific
configuration.

Signed-off-by: Kumar Gala ga...@kernel.crashing.org
---
* Just renamed arch_preboot to arch_preboot_os

 common/cmd_bootm.c |   10 ++
 1 files changed, 10 insertions(+), 0 deletions(-)

diff --git a/common/cmd_bootm.c b/common/cmd_bootm.c
index 86c8122..365ceeb 100644
--- a/common/cmd_bootm.c
+++ b/common/cmd_bootm.c
@@ -166,6 +166,13 @@ void __arch_lmb_reserve(struct lmb *lmb)
 }
 void arch_lmb_reserve(struct lmb *lmb) __attribute__((weak, 
alias(__arch_lmb_reserve)));
 
+/* Allow for arch specific config before we boot */
+void __arch_preboot_os(void)
+{
+   /* please define platform specific arch_preboot_os() */
+}
+void arch_preboot_os(void) __attribute__((weak, alias(__arch_preboot_os)));
+
 #if defined(__ARM__)
   #define IH_INITRD_ARCH IH_ARCH_ARM
 #elif defined(__avr32__)
@@ -543,6 +550,7 @@ int do_bootm_subcommand (cmd_tbl_t *cmdtp, int flag, int 
argc, char *argv[])
break;
case BOOTM_STATE_OS_GO:
disable_interrupts();
+   arch_preboot_os();
boot_fn(BOOTM_STATE_OS_GO, argc, argv, images);
break;
}
@@ -673,6 +681,8 @@ int do_bootm (cmd_tbl_t *cmdtp, int flag, int argc, char 
*argv[])
return 1;
}
 
+   arch_preboot_os();
+
boot_fn(0, argc, argv, images);
 
show_boot_progress (-9);
-- 
1.6.0.6

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


Re: [U-Boot] [RFC] OMAP3: make TWL4030 optional for MMC driver

2009-08-27 Thread Tom
Maybe it would be better if the power_init function was removed from the 
common file and moved to the individual board files.  What do you think ?
Tom


Matthias Ludwig wrote:
 Upcoming boards may power MMC card themself without using
 TWL4030, so make it optional by using define CONFIG_TWL4030_MMC.

 Enable this for all existing OMAP3 boards.

 Signed-off-by: Matthias Ludwig mlud...@ultratronik.de
 ---

 Current OMAP3 MMC driver does require TWL4030 support to
 be enabled as all OMAP3 boards are using this chip. I'd like
 to push patches for a new board which does not has a TWL4030
 and is caring about MMC power by itself.

 So, my suggestion is to make the TWL4030 dependency optional.
 Are there better ways to to this can using a new define
 CONFIG_TWL4030_MMC?

  drivers/mmc/omap3_mmc.c |4 
  include/configs/omap3_beagle.h  |1 +
  include/configs/omap3_evm.h |1 +
  include/configs/omap3_overo.h   |1 +
  include/configs/omap3_pandora.h |1 +
  include/configs/omap3_zoom1.h   |1 +
  include/configs/omap3_zoom2.h   |1 +
  7 files changed, 10 insertions(+), 0 deletions(-)

 diff --git a/drivers/mmc/omap3_mmc.c b/drivers/mmc/omap3_mmc.c
 index 9e09434..0ed88cb 100644
 --- a/drivers/mmc/omap3_mmc.c
 +++ b/drivers/mmc/omap3_mmc.c
 @@ -27,8 +27,10 @@
  #include fat.h
  #include mmc.h
  #include part.h
 +#ifdef CONFIG_TWL4030_MMC
  #include i2c.h
  #include twl4030.h
 +#endif
  #include asm/io.h
  #include asm/arch/mmc.h
  
 @@ -63,7 +65,9 @@ unsigned char mmc_board_init(void)
  {
   t2_t *t2_base = (t2_t *)T2_BASE;
  
 +#ifdef CONFIG_TWL4030_MMC
   twl4030_power_mmc_init();
 +#endif
  
   writel(readl(t2_base-pbias_lite) | PBIASLITEPWRDNZ1 |
   PBIASSPEEDCTRL0 | PBIASLITEPWRDNZ0,
 diff --git a/include/configs/omap3_beagle.h b/include/configs/omap3_beagle.h
 index 61629f8..e1cb759 100644
 --- a/include/configs/omap3_beagle.h
 +++ b/include/configs/omap3_beagle.h
 @@ -132,6 +132,7 @@
  /*
   * TWL4030
   */
 +#define CONFIG_TWL4030_MMC   1
  #define CONFIG_TWL4030_POWER 1
  #define CONFIG_TWL4030_LED   1
  
 diff --git a/include/configs/omap3_evm.h b/include/configs/omap3_evm.h
 index 9f0f34b..b3c64a8 100644
 --- a/include/configs/omap3_evm.h
 +++ b/include/configs/omap3_evm.h
 @@ -130,6 +130,7 @@
  /*
   * TWL4030
   */
 +#define CONFIG_TWL4030_MMC   1
  #define CONFIG_TWL4030_POWER 1
  
  /*
 diff --git a/include/configs/omap3_overo.h b/include/configs/omap3_overo.h
 index 07a031b..983832d 100644
 --- a/include/configs/omap3_overo.h
 +++ b/include/configs/omap3_overo.h
 @@ -118,6 +118,7 @@
  /*
   * TWL4030
   */
 +#define CONFIG_TWL4030_MMC   1
  #define CONFIG_TWL4030_POWER 1
  #define CONFIG_TWL4030_LED   1
  
 diff --git a/include/configs/omap3_pandora.h b/include/configs/omap3_pandora.h
 index 1cfd7e9..0d87c71 100644
 --- a/include/configs/omap3_pandora.h
 +++ b/include/configs/omap3_pandora.h
 @@ -121,6 +121,7 @@
  /*
   * TWL4030
   */
 +#define CONFIG_TWL4030_MMC   1
  #define CONFIG_TWL4030_POWER 1
  #define CONFIG_TWL4030_LED   1
  
 diff --git a/include/configs/omap3_zoom1.h b/include/configs/omap3_zoom1.h
 index 61a41e7..1140052 100644
 --- a/include/configs/omap3_zoom1.h
 +++ b/include/configs/omap3_zoom1.h
 @@ -128,6 +128,7 @@
  /*
   * TWL4030
   */
 +#define CONFIG_TWL4030_MMC   1
  #define CONFIG_TWL4030_POWER 1
  #define CONFIG_TWL4030_LED   1
  
 diff --git a/include/configs/omap3_zoom2.h b/include/configs/omap3_zoom2.h
 index 03f92f5..40add99 100644
 --- a/include/configs/omap3_zoom2.h
 +++ b/include/configs/omap3_zoom2.h
 @@ -149,6 +149,7 @@
  /*
   * TWL4030
   */
 +#define CONFIG_TWL4030_MMC   1
  #define CONFIG_TWL4030_POWER 1
  #define CONFIG_TWL4030_LED   1
  
   

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


Re: [U-Boot] [RFC] OMAP3: make TWL4030 optional for MMC driver

2009-08-27 Thread Matthias Ludwig
 Maybe it would be better if the power_init function was removed from 
 the common file and moved to the individual board files.  What do you 
 think ?
 Tom

 Yes, sounds like a good idea.

I also agree, looks like the more generic approach.

Do you expect any problem when moving the call to twl4030_power_mmc_init
into misc_init_r (in board/omap3/*/*.c) (of course bellow I2C init)?

In a quick test it seem to work (at least compiles fine), but i cannot
test it at the moment due to lack of hardware.

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


Re: [U-Boot] [PATCH] fsl: simplify the mac id command, improve boot-time informational message

2009-08-27 Thread Timur Tabi
Wolfgang?  Are you okay with this part of my patch?

On Wed, Aug 19, 2009 at 9:40 AM, Kumar Galaga...@kernel.crashing.org wrote:

 On Aug 18, 2009, at 5:28 PM, Timur Tabi wrote:

 The mac id command took a 4-character parameter as the identifier
 string.
 However, for any given board, only one kind of identifier is
 acceptable, so it
 makes no sense to ask the user to type it in.  Instead, if the user
 enters
 mac id, the identifier (and also the version, if it's NXID) will
 automatically be set to the correct value.

 Improve the message that is displayed when EEPROM is read during
 boot.  It now
 displays EEPROM: and then either an error message or the EEPROM
 identifier
 if successful.

 If the identifier in EEPROM is valid, then always reject a bad CRC,
 even if the
 CRC field has not been initialized.

 Don't force the MAC address count to MAX_NUM_PORTS or less.  Forcing
 the value
 to be changed resulting in an in-memory copy that does not match
 what's in
 hardware, even though the user did not request that change.

 Finally, always update the CRC value in the in-memory copy after any
 field
 is changed, so that the CRC is always correct.

 Signed-off-by: Timur Tabi ti...@freescale.com
 ---
 board/freescale/common/sys_eeprom.c |   79 
 +--
 lib_ppc/board.c                     |    1 +
 2 files changed, 48 insertions(+), 32 deletions(-)

 [snip]

 diff --git a/lib_ppc/board.c b/lib_ppc/board.c
 index 6dd4d56..59a56d5 100644
 --- a/lib_ppc/board.c
 +++ b/lib_ppc/board.c
 @@ -889,6 +889,7 @@ void board_init_r (gd_t *id, ulong dest_addr)
 #endif

 #if defined (CONFIG_ID_EEPROM) || defined (CONFIG_SYS_I2C_MAC_OFFSET)
 +     puts(EEPROM: );
       mac_read_from_eeprom();
 #endif


 Wolfgang,

 Please ack this bit.

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




-- 
Timur Tabi
Linux kernel developer at Freescale
___
U-Boot mailing list
U-Boot@lists.denx.de
http://lists.denx.de/mailman/listinfo/u-boot


Re: [U-Boot] [RFC] OMAP3: make TWL4030 optional for MMC driver

2009-08-27 Thread Tom
Send me the patch, I will test it.
Tom

Matthias Ludwig wrote:
 Maybe it would be better if the power_init function was removed from 
 the common file and moved to the individual board files.  What do you 
 think ?
 Tom
   
 Yes, sounds like a good idea.
 

 I also agree, looks like the more generic approach.

 Do you expect any problem when moving the call to twl4030_power_mmc_init
 into misc_init_r (in board/omap3/*/*.c) (of course bellow I2C init)?

 In a quick test it seem to work (at least compiles fine), but i cannot
 test it at the moment due to lack of hardware.

 best regards,
 Matthias
   

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


Re: [U-Boot] [RFC] OMAP3: make TWL4030 optional for MMC driver

2009-08-27 Thread Matthias Ludwig
Hmm, i recently notice, that only EVM (which i modified for testing)
initialize I2C in misc_init_r... Is there a cause why this is handled
different for evm than for beagle/overo/zoom[12]/,...

Matthias

On Thu, Aug 27, 2009 at 09:45:48AM -0500, Tom wrote:
 Send me the patch, I will test it.
 Tom

 Matthias Ludwig wrote:
 Maybe it would be better if the power_init function was removed 
 from the common file and moved to the individual board files.  What 
 do you think ?
 Tom
   
 Yes, sounds like a good idea.
 

 I also agree, looks like the more generic approach.

 Do you expect any problem when moving the call to twl4030_power_mmc_init
 into misc_init_r (in board/omap3/*/*.c) (of course bellow I2C init)?

 In a quick test it seem to work (at least compiles fine), but i cannot
 test it at the moment due to lack of hardware.

 best regards,
 Matthias
   


-- 
Matthias Ludwig, Software Development
Ultratronik Entwicklungs GmbH, Gewerbestrasse 52, 82211 Herrsching, Germany
http://www.ultratronik.de  Tel: +49 8152 3709-356  Fax: +49 8152 5183
Registergericht Muenchen, HRB 55584
___
U-Boot mailing list
U-Boot@lists.denx.de
http://lists.denx.de/mailman/listinfo/u-boot


Re: [U-Boot] [RFC PATCH 2/3] net: add phylib implementation

2009-08-27 Thread Scott Wood
On Thu, Aug 27, 2009 at 01:54:47AM -0400, Mike Frysinger wrote:
 On Thursday 27 August 2009 01:11:32 Stefan Roese wrote:
  On Thursday 27 August 2009 03:55:57 Mike Frysinger wrote:
+int phy_init(void)
+{
+   /* Initialize the list */
+   INIT_LIST_HEAD(phy_drvs.list);
  
   does it really need to be dynamic ?  arent there static initializers so
   this can be done in .data ?
 
  Using static initializers fails on PPC because of the somewhat broken
  relocation. So this dynamic implementation is the preferred version, at
  least for PPC people.
 
 so the ppc port cant use the .data section at all ?  that doesnt sound 
 correct 
 to me.

We can't have initialized pointers in .data without manual runtime fixup. 
Only .text has relocation information.

Someone tried to get proper relocation working a while ago, but ran into
toolchain bugs.  Maybe current toolchains are better...

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


Re: [U-Boot] [RFC PATCH 1/3] net: rework the mii support

2009-08-27 Thread Ben Warren
On Wed, Aug 26, 2009 at 1:13 PM, Jean-Christophe PLAGNIOL-VILLARD 
plagn...@jcrosoft.com wrote:

 this rework is done in order to add a phylib and reduce and simplify the
 implementation of multi net_device support for the same driver precedently
 we pass the device name to the miiphy_read/write  co now we pass the
 mii_device instance of the mii bus all network driver are switch to this way
 we currently keep the old miiphy api by wrapping it to the new mii_device
 api until we have the phylib implementation and all the network driver using
 it Signed-off-by: Jean-Christophe PLAGNIOL-VILLARD ---


I'm not going to be able to give this stuff a thorough review for a few
days.  Please don't interpret silence as either ACK or NAK.  Initial glance
looks promising though...

Definitely please clean up the grammar as Mike suggests.

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


Re: [U-Boot] problem with read only nanad

2009-08-27 Thread Scott Wood
On Thu, Aug 27, 2009 at 12:32:50AM -0700, alex889 wrote:
 
 Hi,
 I'm working on a system having 2 NAND chips,
 the first one has the U-Boot and a basic firmware, and is read only,
 and the second has a new firmware.
 when the second chip is empty, the system should boot from the first chip.
 but it gives me many errors, probably related to the fact that it's
 readonly, 
 does the u-boot tries to write something to the nand during startup?
 how can i solve this issue?

Depending on what the NAND controller driver requests, it could be trying
to create an on-chip bad block table.  If your flash is read only, then
do not set NAND_USE_FLASH_BBT in the options -- or if you want to use an
existing BBT but not create one if absent, provide a BBT description that
lacks the NAND_BBT_CREATE option.

If that's not it, then tell us which controller it is, and what sort of
errors you're getting.

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


Re: [U-Boot] [RFC PATCH 2/3] net: add phylib implementation

2009-08-27 Thread Peter Tyser
On Thu, 2009-08-27 at 10:38 -0500, Scott Wood wrote:
 On Thu, Aug 27, 2009 at 01:54:47AM -0400, Mike Frysinger wrote:
  On Thursday 27 August 2009 01:11:32 Stefan Roese wrote:
   On Thursday 27 August 2009 03:55:57 Mike Frysinger wrote:
 +int phy_init(void)
 +{
 + /* Initialize the list */
 + INIT_LIST_HEAD(phy_drvs.list);
   
does it really need to be dynamic ?  arent there static initializers so
this can be done in .data ?
  
   Using static initializers fails on PPC because of the somewhat broken
   relocation. So this dynamic implementation is the preferred version, at
   least for PPC people.
  
  so the ppc port cant use the .data section at all ?  that doesnt sound 
  correct 
  to me.
 
 We can't have initialized pointers in .data without manual runtime fixup. 
 Only .text has relocation information.
 
 Someone tried to get proper relocation working a while ago, but ran into
 toolchain bugs.  Maybe current toolchains are better...

X-ES's board's in U-Boot fully relocate to SDRAM with the
CONFIG_RELOC_FIXUP_WORKS define and -mrelocatable compiler flag.  This
feature has worked with gcc-4.3.1/binutils-2.18.90 and
gcc-4.2.2/binutils-2.17.50.

Does anyone have a specific example of a toolchain that doesn't work?
It'd be great to get the issue figured out and get rid of all those
gd-reloc_off references that currently litter the code...

Peter

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


[U-Boot] PowerPC -mrelocatable

2009-08-27 Thread Scott Wood
Peter Tyser wrote:
 On Thu, 2009-08-27 at 10:38 -0500, Scott Wood wrote:
 Someone tried to get proper relocation working a while ago, but ran into
 toolchain bugs.  Maybe current toolchains are better...
 
 X-ES's board's in U-Boot fully relocate to SDRAM with the
 CONFIG_RELOC_FIXUP_WORKS define and -mrelocatable compiler flag.  This
 feature has worked with gcc-4.3.1/binutils-2.18.90 and
 gcc-4.2.2/binutils-2.17.50.
 
 Does anyone have a specific example of a toolchain that doesn't work?
 It'd be great to get the issue figured out and get rid of all those
 gd-reloc_off references that currently litter the code...

According to these e-mails:
http://lists.denx.de/pipermail/u-boot/2007-October/025937.html
http://lists.denx.de/pipermail/u-boot/2007-October/025941.html

it worked in (at least some) 4.0, but not (at least some) 3.x or 4.1.

If we're now at the point where current GCC works, and has for several 
releases, we should probably consider revisiting those patches.

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


Re: [U-Boot] RTC value corruption on QIL-A9G20 startup

2009-08-27 Thread William C. Landolina
 -Original Message-
 From: u-boot-boun...@lists.denx.de [mailto:u-boot-boun...@lists.denx.de] On 
 Behalf Of Albin Tonnerre
 Sent: Tuesday, August 25, 2009 12:49 PM
 To: u-boot@lists.denx.de
 Subject: Re: [U-Boot] RTC value corruption on QIL-A9G20 startup

 On Tue, Aug 25, 2009 at 08:51:56AM -0400, Stephen Caudle wrote :
  Hello Eric,
  
  On Tue, Aug 25, 2009 at 5:38 AM, Eric Bénarde...@eukrea.com wrote:
   isn't the RTC connected to the SPI chip select that the internal 
   firmware toggle on boot to probe for a SPI Flash ?
  
  That is certainly possible.  This problem went away for me when I 
  upgraded to the next branch.  Could the SPI dataflash code have been 
  removed between
  v2009.06 and next?  I'll look into this some more.  Thanks for the hint!

 Using the next branch doesn't help here. Anyway, the code Eric is referring 
 to is the firmware code the CPU  executes from its internal ROM very early 
 in the boot process, so you likely won't find anything remotely related to  
 this in U-Boot.

 Regards,
 --
 Albin Tonnerre, Free Electrons
 Kernel, drivers and embedded Linux development, consulting, training and 
 support.
 http://free-electrons.com

Has there been any resolution on this?  From what I can see (with scope and 
logic analyzer) the RTC seems to be corrupted by the DataFlash boot code built 
into the chip.  [The Calao board doesn't have the DataFlash memory and used the 
chip select for its RTC instead...]

Has anyone found a smoking gun inside U-Boot or will we have to wait for Calao 
to make boards with the RTC on a different chip select?

Thanks,
Bill Landolina
Technology Atlanta Corporation
500 Sugar Mill Road, Suite 202A
Atlanta, GA 30350

(404) 303-0446 (Voice)
(404) 303-0448 (FAX)
(678) 596-3625 (Cell)
w...@techatl.com




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


Re: [U-Boot] [RFC PATCH 2/3] net: add phylib implementation

2009-08-27 Thread Scott Wood
Mike Frysinger wrote:
 On Thursday 27 August 2009 11:38:07 Scott Wood wrote:
 On Thu, Aug 27, 2009 at 01:54:47AM -0400, Mike Frysinger wrote:
 On Thursday 27 August 2009 01:11:32 Stefan Roese wrote:
 On Thursday 27 August 2009 03:55:57 Mike Frysinger wrote:
 +int phy_init(void)
 +{
 +/* Initialize the list */
 +INIT_LIST_HEAD(phy_drvs.list);
 does it really need to be dynamic ?  arent there static initializers
 so this can be done in .data ?
 Using static initializers fails on PPC because of the somewhat broken
 relocation. So this dynamic implementation is the preferred version, at
 least for PPC people.
 so the ppc port cant use the .data section at all ?  that doesnt sound
 correct to me.
 We can't have initialized pointers in .data without manual runtime fixup.
 Only .text has relocation information.
 
 we're talking about a list structure and its initialized state, it isnt 
 pointing to anything.

It's pointing to itself.

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


Re: [U-Boot] [PATCH v3] mpc83xx: update LCRR register handling

2009-08-27 Thread Kim Phillips
On Thu, 27 Aug 2009 08:20:35 +0200
Heiko Schocher h...@denx.de wrote:

 MPC8379E RM says (10-34):
 Once LCRR[CLKDIV] is written, the register should be read, and then
 an isync should be executed.
 So update this in code.
 Also define a LCRR mask for processors, which uses not all bits
 in the LCRR register (as for example mpc832x did).
 
 Signed-off-by: Heiko Schocher h...@denx.de
 ---
 changes since v1:
 - added comment from DaveLiu. moved LCRR setting to
   cpu_init_r()
 
 changes since v2:
   - added comment from Kim Phillips
 changed LCRR_MASK to 0x7fff
 use clrsetbits()

Heiko - let's go with the SCCR approach of setting bits in the LCRR,
and have board config files only specify values for fields they're
modifying from the reset value for their processor (this can be
extended to 85xx-world).

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


Re: [U-Boot] R: R: R: USB EHCI driver

2009-08-27 Thread Mike Timmons
Thanks Francesco. Does your patch for 2009.03 go over another EHCI
patch for that version? Reason being, when I download 2009.03 I don't
see most of the files your patch applies to. I still think I am
missing something. I want to try to relpicate your success by applying
your patch as you did.

Group:
is there a particular u-boot version in which substantial ehci host
support was introduced within the drivers/usb/host directory? Any
history on this will help me better understand what is or is not
working (well) at this point.


I'm fighting a root_port_hub() reset issue on the 5121e, after taking
a patch from Francesco. I wedged his patch code into 2009.06.
Basically, it looks like all the cpu-specific code needs to do is map
the specific ehci register set on a particular cpu to a structure for
the ehci code to use. In short, there is not much to Francesco's patch
by way of protocol. He kindly did the register mapping via some
initialization code for the 5121e, although the patch was not a clean
fit so I hand entered what I needed to add.

My issue is within the detection/discovery logic, where I am detecting
a high-speed device (memory stick) via high-speed handshake, but I'm
failing to reset the root port hub.

I have a USB 2.0 analyzer. I see the successful high speed handshake
with my device (memory stick), but nothing after that due to the
internal root port hub issue.




On Tue, Aug 18, 2009 at 3:01 AM, Rendine
Francescofrancesco.rend...@valueteam.com wrote:
 Hi Mike,

 my patch for USB2.0 on MPC5121e is for u-boot-2009.03. I released for that 
 version, so it's reasonable that doesn't fit well on 2009.06.
 Regard to your problem and log, as soon as I have time, I see your problem.

 Regards,
 Francesco.


 -Messaggio originale-
 Da: Mike Timmons [mailto:michael.joseph.timm...@gmail.com]
 Inviato: lun 8/17/2009 4:04
 A: Rendine Francesco; u-boot@lists.denx.de
 Cc: Detlev Zundel; Mike Timmons
 Oggetto: Re: [U-Boot] R: R: USB EHCI driver

 All,
 I'm having trouble resetting my USB (virtual) root port hub following
 high speed handshake on the 5121e using USB0+UTMI on the mpc5121e. If
 anyone has any idea why root port hub reset typically fails, please
 advise. Thanks!

 Francesco,

 Thank you for your efforts on usb for the 5121e! I took your patch
 last week and applied it to u-boot-2009.06 the patch wasn't a perfect
 fit for some reason, but it was easy enough for me to extract the code
 from your patch file. What version did you intend the patch for, if
 not u-boot-2009.06?

 Regardless, I'm using a custom board based off the the ADS512101
 board. I complete your initialization step and it appears I get the
 5121e registers mapped correctly. USB start looks for devices, and I
 do see debug output to the console when I have a USB memory stick
 plugged in.

 I also have a USB analyzer, so I can see some action on the bus. However...

 It appears I am failing to reset the root port hub after the
 high-speed handshake between host and device (memory stick).

 My degree of USB ignorance is a painful limitation at this point. I'm
 tripping-through specs, the register set, and getting somewhat
 familiar with the sequencing, but I'm grinding my gears at this point.

 I attach a console log dump. A snippet of the log appears below,
 showing where/why the reset fails. I also attach a screen snap of my
 USB analyzer showing that some action is occurring on the wire between
 the host and the device (memory stick).

 This root port hub reset issue appears to be killing any subsequent
 device discovery efforts. I DID try the hack of ignoring the reset
 failure to see what happens. In this case I do see 2 devices
 detected in the console log (root hub plus my stick I presume), but I
 see no additional bus traffic on the analyzer so I figure the reset
 failure is my smoking gun.


 Any ideas?

 console log snippet (see attached full console log dump)

 hub_port_reset: resetting port 0...
 usb_control_msg: request: 0x3, requesttype: 0x23, value 0x4 index 0x1 length 
 0x0
 req=3 (0x3), type=35 (0x23), value=4, index=1
 Len is 0
 usb_control_msg: request: 0x0, requesttype: 0xA3, value 0x0 index 0x1 length 
 0x4
 req=0 (0x0), type=163 (0xa3), value=0, index=1
 portstatus 101, change 13, 12 Mb/s
 STAT_C_CONNECTION = 1 STAT_CONNECTION = 1  USB_PORT_STAT_ENABLE 0
 cannot reset port 1!?
 port 1 reset change
 usb_control_msg: request: 0x1, requesttype: 0x23, value 0x14 index 0x1 length 
 0x
 0
 req=1 (0x1), type=35 (0x23), value=20, index=1
 Len is 0
 1 USB Device(s) found
    scanning bus for storage devices... i=0
 i=1
 0 Storage Device(s) found
 =





 On Wed, Jun 24, 2009 at 4:08 AM, Rendine Francesco 
 francesco.rend...@valueteam.com wrote:

 Hi,

 thanks for your compliments, but I think that there is some work to do 
 about this driver to support OTG mode and gadget mode.
 For now I enabled support to host mode, and from my test does it work.

 I'm preparing the patch, and this will carry away some 

Re: [U-Boot] RTC value corruption on QIL-A9G20 startup

2009-08-27 Thread Eric Bénard
Hi Willian,

William C. Landolina a écrit :
 Has there been any resolution on this?  From what I can see (with
 scope and logic analyzer) the RTC seems to be corrupted by the
 DataFlash boot code built into the chip.  [The Calao board doesn't
 have the DataFlash memory and used the chip select for its RTC
 instead...]
 
 Has anyone found a smoking gun inside U-Boot or will we have to wait
 for Calao to make boards with the RTC on a different chip select?
 
u-boot is executed after the bootrom so there is nothing to do on the
software point of view. You can connect a RTC on the I2C ...

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


[U-Boot] [PATCH] Reset i2c slave devices during init on mpc5xxx cpus

2009-08-27 Thread Eric Millbrandt
Reset any i2c devices that may have been interrupted during a system reset.
Normally this would be accomplished by clocking the line until SCL and SDA
are released and then sending a start condtiion (From an Atmel datasheet).
There is no direct access to the i2c pins so instead create start commands
through the i2c interface.  Send a start command then delay for the SDA Hold
time, repeat this by disabling/enabling the bus a total of 9 times.

Signed-off-by: Eric Millbrandt emillbra...@dekaresearch.com
---

Heiko,

I was able to implement a i2c reset function with features common to all
mpc5xxx cpu.  Nothing was left from the first implementation, so I am
submitting this as a new patch.

Thanks
Eric

 README   |7 ++
 cpu/mpc5xxx/i2c.c|   49 ++
 include/configs/galaxy5200.h |1 +
 3 files changed, 57 insertions(+), 0 deletions(-)

diff --git a/README b/README
index 246ae2b..6ccb2fe 100644
--- a/README
+++ b/README
@@ -1366,6 +1366,13 @@ The following options need to be configured:
therefore be cleared to 0 (See, eg, MPC823e User's Manual
p.16-473). So, set CONFIG_SYS_I2C_SLAVE to 0.
 
+   CONFIG_SYS_I2C_INIT_MPC5XXX
+
+   When a board is reset during an i2c bus transfer
+   chips might think that the current transfer is still
+   in progress.  Reset the slave devices by sending start
+   commands until the slave device responds.
+
That's all that's required for CONFIG_HARD_I2C.
 
If you use the software i2c interface (CONFIG_SOFT_I2C)
diff --git a/cpu/mpc5xxx/i2c.c b/cpu/mpc5xxx/i2c.c
index 2341932..70a46be 100644
--- a/cpu/mpc5xxx/i2c.c
+++ b/cpu/mpc5xxx/i2c.c
@@ -207,6 +207,52 @@ static int receive_bytes(uchar chip, char *buf, int len)
return 0;
 }
 
+#if defined(CONFIG_SYS_I2C_INIT_MPC5XXX)
+
+#define FDR510(x) (u8) (((x  0x20)  3) | (x  0x3))
+#define FDR432(x) (u8) ((x  0x1C)  2)
+/*
+ * Reset any i2c devices that may have been interrupted during a system reset.
+ * Normally this would be accomplished by clocking the line until SCL and SDA
+ * are released and then sending a start condtiion (From an Atmel datasheet).
+ * There is no direct access to the i2c pins so instead create start commands
+ * through the i2c interface.  Send a start command then delay for the SDA Hold
+ * time, repeat this by disabling/enabling the bus a total of 9 times.
+ */
+static void send_reset()
+{
+   struct mpc5xxx_i2c *regs = (struct mpc5xxx_i2c *)I2C_BASE;
+   int i;
+   u32 delay;
+   u8 fdr;
+   int SDA_Tap[] = { 3, 3, 4, 4, 1, 1, 2, 2};
+   struct mpc5xxx_i2c_tap scltap[] = {
+   {4, 1},
+   {4, 2},
+   {6, 4},
+   {6, 8},
+   {14, 16},
+   {30, 32},
+   {62, 64},
+   {126, 128}
+   };
+
+   fdr = (u8)mpc_reg_in(regs-mfdr);
+
+   delay = scltap[FDR432(fdr)].scl2tap + ((SDA_Tap[FDR510(fdr)] - 1) * \
+   scltap[FDR432(fdr)].tap2tap) + 3;
+
+   for (i = 0; i  9; i++) {
+   mpc_reg_out(regs-mcr, I2C_EN|I2C_STA|I2C_TX, I2C_INIT_MASK);
+   udelay(delay);
+   mpc_reg_out(regs-mcr, 0, I2C_INIT_MASK);
+   udelay(delay);
+   }
+
+   mpc_reg_out(regs-mcr, I2C_EN, I2C_INIT_MASK);
+}
+#endif /* CONFIG_SYS_I2c_INIT_MPC5XXX */
+
 / I2C API /
 
 void i2c_init(int speed, int saddr)
@@ -225,6 +271,9 @@ void i2c_init(int speed, int saddr)
mpc_reg_out(regs-mcr, I2C_EN, I2C_INIT_MASK);
mpc_reg_out(regs-msr, 0, I2C_IF);
 
+#if defined(CONFIG_SYS_I2C_INIT_MPC5XXX)
+   send_reset();
+#endif
return;
 }
 
diff --git a/include/configs/galaxy5200.h b/include/configs/galaxy5200.h
index 8d530d8..2ba5f0f 100644
--- a/include/configs/galaxy5200.h
+++ b/include/configs/galaxy5200.h
@@ -110,6 +110,7 @@
 #define CONFIG_SYS_I2C_MODULE 2/* Select I2C module #1 or #2 */
 #define CONFIG_SYS_I2C_SPEED 10/* 100 kHz */
 #define CONFIG_SYS_I2C_SLAVE 0x7F
+#define CONFIG_SYS_I2C_INIT_MPC5XXX/* Reset devices on i2c bus */
 
 /*
  * EEPROM CAT24WC32 configuration
-- 
1.6.3.1


http://openwebmail.org - eem

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


[U-Boot] [PATCH] Add chip select region to galaxy5200

2009-08-27 Thread Eric Millbrandt
Add chip select region for an Epson S1D15313.

Signed-off-by: Eric Millbrandt emillbra...@dekaresearch.com
---
 include/configs/galaxy5200.h |5 +
 1 files changed, 5 insertions(+), 0 deletions(-)

diff --git a/include/configs/galaxy5200.h b/include/configs/galaxy5200.h
index eb2cae6..54c6b80 100644
--- a/include/configs/galaxy5200.h
+++ b/include/configs/galaxy5200.h
@@ -212,6 +212,11 @@
 #define CONFIG_SYS_CS1_SIZE0x9
 #define CONFIG_SYS_CS1_CFG 0x0002d900
 
+/* Chip Select configuration for Epson S1D13513 */
+#define CONFIG_SYS_CS3_START   0x1000
+#define CONFIG_SYS_CS3_SIZE0x103f
+#define CONFIG_SYS_CS3_CFG 0x3d10
+
 /*
  * Ethernet configuration
  */
-- 
1.6.3.1


http://openwebmail.org - eem

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


Re: [U-Boot] Pull request: nand flash next

2009-08-27 Thread Wolfgang Denk
Dear Scott Wood,

In message 20090826203829.ga25...@b07421-ec1.am.freescale.net you wrote:
 The following changes since commit d7f4d14a8b317857163ccf3d97e3b1a46ba2282e:
   Wolfgang Denk (1):
 Merge branch 'next' of git://www.denx.de/git/u-boot-coldfire into next
 
 are available in the git repository at:
 
   git://git.denx.de/u-boot-nand-flash.git next
 
 Heiko Schocher (1):
   83xx, kmeter1: added NAND support
 
 Ilya Yanok (1):
   mxc_nand: add nand driver for MX2/MX3
 
 Kyungmin Park (1):
   OneNAND: Remove unused read_spareram
 
 Matthias Kaehlcke (1):
   KB9202: Add NAND support
 
 Sandeep Paulraj (3):
   NAND: ADD page Parameter to all read_page/read_page_raw API's
   MTD:NAND: ADD new ECC mode NAND_ECC_HW_OOB_FIRST
   NAND: DaVinci: V2 Adding 4 BIT ECC support
 
  drivers/mtd/nand/Makefile|3 +
  drivers/mtd/nand/davinci_nand.c  |  284 ++-
  drivers/mtd/nand/fsl_elbc_nand.c |2 +-
  drivers/mtd/nand/kb9202_nand.c   |  150 +
  drivers/mtd/nand/kmeter1_nand.c  |  135 +
  drivers/mtd/nand/mxc_nand.c  |  880 
 ++
  drivers/mtd/nand/nand_base.c |   75 +++-
  drivers/mtd/onenand/onenand_base.c   |4 +-
  include/asm-arm/arch-davinci/emif_defs.h |   10 +
  include/configs/kmeter1.h|6 +
  include/linux/mtd/nand.h |5 +-
  include/linux/mtd/onenand.h  |3 +-
  12 files changed, 1540 insertions(+), 17 deletions(-)
  create mode 100644 drivers/mtd/nand/kb9202_nand.c
  create mode 100644 drivers/mtd/nand/kmeter1_nand.c
  create mode 100644 drivers/mtd/nand/mxc_nand.c

Applied, thanks.

Best regards,

Wolfgang Denk

-- 
DENX Software Engineering GmbH, MD: Wolfgang Denk  Detlev Zundel
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: (+49)-8142-66989-10 Fax: (+49)-8142-66989-80 Email: w...@denx.de
Memories of you remind me of you.   - Karl Lehenbauer
___
U-Boot mailing list
U-Boot@lists.denx.de
http://lists.denx.de/mailman/listinfo/u-boot


Re: [U-Boot] Please pull u-boot-mpc83xx.git

2009-08-27 Thread Wolfgang Denk
Dear Kim Phillips,

In message 20090826213528.ce5c76f5.kim.phill...@freescale.com you wrote:
 Hi Wolfgang Denk,
 
 Please pull a couple of minor fix patches for the upcoming release:
 
 The following changes since commit 85f9823cd74bd2d9a7854ca0b2244e43b5214e5a:
   Wolfgang Denk (1):
 Merge branch 'master' of git://git.denx.de/u-boot-ppc4xx
 
 are available in the git repository at:
 
   git://git.denx.de/u-boot-mpc83xx.git master
 
 Kim Phillips (2):
   mpc83xx: match dtb filename references to their dts equivalents in the 
 linux kernel
   mpc83xx: mpc8349itx - accommodate larger kernel sizes  unzero the 
 bootdelay
 
  include/configs/MPC8349EMDS.h |2 +-
  include/configs/MPC8349ITX.h  |6 +++---
  include/configs/MPC8360ERDK.h |2 +-
  3 files changed, 5 insertions(+), 5 deletions(-)

Applied, thanks.

Best regards,

Wolfgang Denk

-- 
DENX Software Engineering GmbH, MD: Wolfgang Denk  Detlev Zundel
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: (+49)-8142-66989-10 Fax: (+49)-8142-66989-80 Email: w...@denx.de
Remember that Beethoven wrote his first symphony in C ...
___
U-Boot mailing list
U-Boot@lists.denx.de
http://lists.denx.de/mailman/listinfo/u-boot


Re: [U-Boot] [PATCH v6] use common code for Matrix Vision boards

2009-08-27 Thread Wolfgang Denk
Dear =?ISO-8859-1?Q?Andr=E9?= Schwarz,

In message 1251377315.4053.39.ca...@swa-m460 you wrote:
 clean up existing boards (mvBC-P/MPC5200 and mvBL-M7/MPC8343) by using common 
 code.

Note (for next time): line too long.

 Signed-off-by: André Schwarz andre.schw...@matrix-vision.de
 ---

 Wolfgang,

 hopefully this is the last try - I'm close to nervous breakdown.

Why? Just because one patch?

 Applying the changes takes longer than actually doing them.

Yeah, that's true.

 Of course this is due to me, I know.

 Thanks for your patience,

And yours.

  board/matrix_vision/mvbc_p/mvbc_p.c  |   97 +--- 
 --
  board/matrix_vision/mvbc_p/mvbc_p.h  |2 +-
  board/matrix_vision/mvbc_p/mvbc_p_autoscript |   10 ++-
  board/matrix_vision/mvblm7/mvblm7.c  |   54 ++
  board/matrix_vision/mvblm7/mvblm7.h  |3 +-
  board/matrix_vision/mvblm7/pci.c |   35 ++
  include/configs/MVBC_P.h |2 +-
  include/configs/MVBLM7.h |   49 +
  8 files changed, 77 insertions(+), 175 deletions(-)

Applied. Thanks

Best regards,

Wolfgang Denk

-- 
DENX Software Engineering GmbH, MD: Wolfgang Denk  Detlev Zundel
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: (+49)-8142-66989-10 Fax: (+49)-8142-66989-80 Email: w...@denx.de
If a packet hits a pocket on a socket on a port,
And the bus is interrupted as a very last resort,
And the address of the memory makes your floppy disk abort,
Then the socket packet pocket has an error to report! - Ken Burchill?
___
U-Boot mailing list
U-Boot@lists.denx.de
http://lists.denx.de/mailman/listinfo/u-boot


Re: [U-Boot] [PATCH] Add chip select region to galaxy5200

2009-08-27 Thread Grant Likely
On Thu, Aug 27, 2009 at 4:11 PM, Eric
Millbrandtemillbra...@coldhaus.com wrote:
 Add chip select region for an Epson S1D15313.

 Signed-off-by: Eric Millbrandt emillbra...@dekaresearch.com
 ---
  include/configs/galaxy5200.h |    5 +
  1 files changed, 5 insertions(+), 0 deletions(-)

 diff --git a/include/configs/galaxy5200.h b/include/configs/galaxy5200.h
 index eb2cae6..54c6b80 100644
 --- a/include/configs/galaxy5200.h
 +++ b/include/configs/galaxy5200.h
 @@ -212,6 +212,11 @@
  #define CONFIG_SYS_CS1_SIZE            0x9
  #define CONFIG_SYS_CS1_CFG             0x0002d900

 +/* Chip Select configuration for Epson S1D13513 */
 +#define CONFIG_SYS_CS3_START           0x1000
 +#define CONFIG_SYS_CS3_SIZE            0x103f
 +#define CONFIG_SYS_CS3_CFG             0x3d10

This doesn't look right.  Shouldn't CONFIG_SYS_CS3_SIZE be 0x0040?
(Compare with SYS_CS1 above)

g.

-- 
Grant Likely, B.Sc., P.Eng.
Secret Lab Technologies Ltd.
___
U-Boot mailing list
U-Boot@lists.denx.de
http://lists.denx.de/mailman/listinfo/u-boot


Re: [U-Boot] RTC value corruption on QIL-A9G20 startup

2009-08-27 Thread Stephen Caudle
On Thu, Aug 27, 2009 at 1:48 PM, William C. Landolinaw...@techatl.com wrote:
 Has there been any resolution on this?  From what I can see (with scope and 
 logic analyzer) the RTC seems to be corrupted by the DataFlash boot code 
 built into the chip.  [The Calao board doesn't have the DataFlash memory and 
 used the chip select for its RTC instead...]

No resolution here.  I am still seeing the problem (even on the next
branch).  This definitely seems to be caused by the processor boot
ROM.

 Has anyone found a smoking gun inside U-Boot or will we have to wait for 
 Calao to make boards with the RTC on a different chip select?

I believe a hardware change is the only way to fix this problem.

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