Re: [U-Boot] [U-Boot-v2][PATCH] imx27: nandboot with 2k pages

2008-12-12 Thread Sascha Hauer
Hi Frederic,

The patches look good in general, but unfortunately you mailer turned
tabs into spaces and wrapped long lines, so the patches do not apply.
Can you send them again please?

one comment inline.

Thanks
  Sascha

On Thu, Dec 11, 2008 at 02:14:41PM +0100, frederic Rodo wrote:
> Signed-off-by:Frederic Rodo 
> ---
>  drivers/nand/nand_imx.c |   94
> +--
>  include/asm-arm/arch-imx/imx-nand.h |2 +-
>  2 files changed, 79 insertions(+), 17 deletions(-)
> 
> diff --git a/drivers/nand/nand_imx.c b/drivers/nand/nand_imx.c
> index f7f50b0..3bf67de 100644
> --- a/drivers/nand/nand_imx.c
> +++ b/drivers/nand/nand_imx.c
> @@ -1090,26 +1090,74 @@ static struct driver_d imx_nand_driver = {
>  
>  static void __nand_boot_init nfc_addr(struct imx_nand_host *host, u32 offs)
>  {
> -send_addr(host, offs & 0xff);
> -send_addr(host, (offs >> 9) & 0xff);
> -send_addr(host, (offs >> 17) & 0xff);
> -send_addr(host, (offs >> 25) & 0xff);
> +if (!host->pagesize_2k) {

Can you turn this into positive logic?

> +send_addr(host, offs & 0xff);
> +send_addr(host, (offs >> 9) & 0xff);
> +send_addr(host, (offs >> 17) & 0xff);
> +send_addr(host, (offs >> 25) & 0xff);
> +} else {
> +/* imx27 Nand flash controller can only read full 2k page */
> +send_addr(host, 0);
> +send_addr(host, 0);
> +send_addr(host, (offs >> 11) & 0xff);
> +send_addr(host, (offs >> 19) & 0xff);
> +/* FIXME: add another send_addr for nandflash > 1Gbit
> + * if (read electronic signature byte 5 > 1 Gbit)
> + *send_addr(host, (offs >> 28) & 0xff);
> + */
> +
> +/* send read start command */
> +send_cmd(host, NAND_CMD_READSTART);
> +}
>  }
>  
> -static int __nand_boot_init block_is_bad(struct imx_nand_host *host,
> u32 offs)
> +static int __nand_boot_init block_is_bad(struct imx_nand_host *host,
> u32 offs,
> + u32 pagesize)
>  {
> -send_cmd(host, NAND_CMD_READOOB);
> -nfc_addr(host, offs);
> -send_read_page(host, 0, 1);
> -
> -return (readw(host->regs + SPARE_AREA0) & 0xff) == 0xff ? 0 : 1;
> +if (!host->pagesize_2k) {

dito

> +send_cmd(host, NAND_CMD_READOOB);
> +nfc_addr(host, offs);
> +send_read_page(host, 0, 1);
> +if ((readw(host->regs + SPARE_AREA0) & 0xff) != 0xff)
> +return 1;
> +} else {
> +/* The AdvancedToolKit Mark the two first page of each block */
> +/* check first page */
> +send_cmd(host, NAND_CMD_READ0);
> +nfc_addr(host, offs);
> +send_read_page(host, 0, 1);
> +send_read_page(host, 1, 1);
> +send_read_page(host, 2, 1);
> +send_read_page(host, 3, 1);
> +
> +if (readw(host->regs + NFC_ECC_STATUS_RESULT) & 0xa)
> +return 1;
> +
> +if ((readw(host->regs + SPARE_AREA0 + 4) & 0xFF00) != 0xFF00)
> +return 1;
> +
> +/* check second page */
> +send_cmd(host, NAND_CMD_READ0);
> +nfc_addr(host, offs + pagesize);
> +send_read_page(host, 0, 1);
> +send_read_page(host, 1, 1);
> +send_read_page(host, 2, 1);
> +send_read_page(host, 3, 1);
> +
> +if (readw(host->regs + NFC_ECC_STATUS_RESULT) & 0xa)
> +return 1;
> +
> +if ((readw(host->regs + SPARE_AREA0 + 4) & 0xFF00) != 0xFF00)
> +return 1;
> +   
> +}
> +return 0;
>  }
>  
> -void __nand_boot_init imx_nand_load_image(void *dest, int size, int
> pagesize,
> -int blocksize)
> +void __nand_boot_init imx_nand_load_image(void *dest, int size, int
> blocksize)
>  {
>  struct imx_nand_host host;
> -u32 tmp, page, block;
> +u32 tmp, page, block, pagesize;
>  
>  PCCR1 |= PCCR1_NFC_BAUDEN;
>  
> @@ -1117,6 +1165,10 @@ void __nand_boot_init imx_nand_load_image(void
> *dest, int size, int pagesize,
>  case GPCR_BOOT_8BIT_NAND_2k:
>  case GPCR_BOOT_16BIT_NAND_2k:
>  host.pagesize_2k = 1;
> +pagesize = 2048;
> +break;
> +default:
> +pagesize = 512;
>  }
>  
>  host.regs = (void __iomem *)IMX_NFC_BASE;
> @@ -1134,14 +1186,19 @@ void __nand_boot_init imx_nand_load_image(void
> *dest, int size, int pagesize,
>  /* Unlock Block Command for given address range */
>  writew(0x4, host.regs + NFC_WRPROT);
>  
> +/* clear all operation  */
> +writew(0x8000, host.regs + NFC_CONFIG1);
> +
> +/* enable ECC, disable spare only and interrupt */
>  tmp = readw(host.regs + NFC_CONFIG1);
> -tmp |= NFC_ECC_EN;
> +tmp |= NFC_ECC_EN | NFC_INT_MSK;
> +tmp &= ~ NFC_SP_EN;
>  writew(tmp, host.regs + NFC_CONFIG1);
>  
>  block = page = 0;
>  
>  while (1) {
> -if (!block_is_bad(&host, block * blocksize)) {
> +if (!block_is_bad(&host, block * blocksize, pagesize)) {
>  page = 0;
>  while (pa

[U-Boot] [RFC USB PATCH] USB ehci fix and test on ixp4xx hardware

2008-12-12 Thread Michael Trimarchi
EHCI fix code and ixp4xx test.
USB ehci configuration parameter:

#define CONFIG_CMD_USB  1
#define CONFIG_USB_STORAGE  1
#define CONFIG_USB_EHCI
#define CONFIG_USB_EHCI_IXP4XX  1
#define CONFIG_EHCI_IS_TDI  1
#define CONFIG_EHCI_DESC_BIG_ENDIAN 1
#define CONFIG_EHCI_MMIO_BIG_ENDIAN 1
#define CONFIG_SYS_USB_EHCI_MAX_ROOT_PORTS 2
#define CONFIG_LEGACY_USB_INIT_SEQ  1

2 USB Device(s) found
   scanning bus for storage devices... 0 Storage Device(s) found
=> usb tree

Device Tree:
  1  Hub (1.5MBit/s, 0mA)
  |  u-boot EHCI Host Controller
  |
  |+-2  Mass Storage (12MBit/s, 100mA)
   Sony Storage Media 0C07040930296

=>

Signed-off-by: Michael Trimarchi 

---
 drivers/usb/usb_ehci.h  |   49 ++
 drivers/usb/usb_ehci_core.c |  122 ++
 2 files changed, 102 insertions(+), 69 deletions(-)

diff --git a/drivers/usb/usb_ehci.h b/drivers/usb/usb_ehci.h
index 90b137a..9e8e7b2 100644
--- a/drivers/usb/usb_ehci.h
+++ b/drivers/usb/usb_ehci.h
@@ -1,5 +1,6 @@
 /*-
  * Copyright (c) 2007-2008, Juniper Networks, Inc.
+ * Copyright (c) 2008, Michael Trimarchi 
  * All rights reserved.
  *
  * This program is free software; you can redistribute it and/or
@@ -21,6 +22,10 @@
 #ifndef USB_EHCI_H
 #define USB_EHCI_H
 
+#if !defined(CONFIG_SYS_USB_EHCI_MAX_ROOT_PORTS)
+#error "USB EHCI define MAX_ROOT_PORTS"
+#endif
+
 /* (shifted) direction/type/recipient from the USB 2.0 spec, table 9.2 */
 #define DeviceRequest \
((USB_DIR_IN | USB_TYPE_STANDARD | USB_RECIP_DEVICE) << 8)
@@ -45,10 +50,12 @@ struct ehci_hccr {
 #define HC_LENGTH(p)   (((p) >> 0) & 0x00ff)
 #define HC_VERSION(p)  (((p) >> 16) & 0x)
uint32_t cr_hcsparams;
+#define HCS_PPC(p) ((p) & (1 << 4))
+#define HCS_INDICATOR(p)((p) & (1 << 16)) /* Port indicators */
 #define HCS_N_PORTS(p) (((p) >> 0) & 0xf)
uint32_t cr_hccparams;
uint8_t cr_hcsp_portrt[8];
-};
+} __attribute__ ((packed));
 
 struct ehci_hcor {
uint32_t or_usbcmd;
@@ -71,9 +78,9 @@ struct ehci_hcor {
uint32_t _reserved_[9];
uint32_t or_configflag;
 #define FLAG_CF(1 << 0)/* true:  we'll support "high 
speed" */
-   uint32_t or_portsc[2];
+   uint32_t or_portsc[CONFIG_SYS_USB_EHCI_MAX_ROOT_PORTS];
uint32_t or_systune;
-};
+} __attribute__ ((packed));
 
 #define USBMODE0x68/* USB Device mode */
 #define USBMODE_SDIS   (1 << 3)/* Stream disable */
@@ -123,26 +130,24 @@ struct usb_linux_config_descriptor {
 #define cpu_to_hc32(x) cpu_to_le32((x))
 #endif
 
-#define EHCI_PS_WKOC_E 0x0040  /* RW wake on over current */
-#define EHCI_PS_WKDSCNNT_E 0x0020  /* RW wake on disconnect */
-#define EHCI_PS_WKCNNT_E   0x0010  /* RW wake on connect */
-#define EHCI_PS_PTC0x000f  /* RW port test control */
-#define EHCI_PS_PIC0xc000  /* RW port indicator control */
-#define EHCI_PS_PO 0x2000  /* RW port owner */
-#define EHCI_PS_PP 0x1000  /* RW,RO port power */
-#define EHCI_PS_LS 0x0c00  /* RO line status */
-#define EHCI_PS_PR 0x0100  /* RW port reset */
-#define EHCI_PS_SUSP   0x0080  /* RW suspend */
-#define EHCI_PS_FPR0x0040  /* RW force port resume */
-#define EHCI_PS_OCC0x0020  /* RWC over current change */
-#define EHCI_PS_OCA0x0010  /* RO over current active */
-#define EHCI_PS_PEC0x0008  /* RWC port enable change */
-#define EHCI_PS_PE 0x0004  /* RW port enable */
-#define EHCI_PS_CSC0x0002  /* RWC connect status change */
-#define EHCI_PS_CS 0x0001  /* RO connect status */
+#define EHCI_PS_WKOC_E (1 << 22)   /* RW wake on over current */
+#define EHCI_PS_WKDSCNNT_E (1 << 21)   /* RW wake on disconnect */
+#define EHCI_PS_WKCNNT_E   (1 << 20)   /* RW wake on connect */
+#define EHCI_PS_PO (1 << 13)   /* RW port owner */
+#define EHCI_PS_PP (1 << 12)   /* RW,RO port power */
+#define EHCI_PS_LS (3 << 10)   /* RO line status */
+#define EHCI_PS_PR (1 << 8)/* RW port reset */
+#define EHCI_PS_SUSP   (1 << 7)/* RW suspend */
+#define EHCI_PS_FPR(1 << 6)/* RW force port resume */
+#define EHCI_PS_OCC(1 << 5)/* RWC over current change */
+#define EHCI_PS_OCA(1 << 4)/* RO over current active */
+#define EHCI_PS_PEC(1 << 3)/* RWC port enable change */
+#define EHCI_PS_PE (1 << 2)/* RW port enable */
+#define EHCI_PS_CSC(1 << 1)/* RWC connect status change */
+#define EHCI_PS_CS

Re: [U-Boot] EHCI last patch

2008-12-12 Thread Stefan Roese
Hi Michael,

On Friday 12 December 2008, michael wrote:
> In the last ehci patch I add myself in the author of the code. I'm not
> sure if it possible. I change
> the codes and test it but I don't know if the change are sufficient.

You added yourself not as author but you added your Copyright. With all the 
work you have done to this code lately I'm pretty sure that this is ok.

Thanks for all your work on this. And please don't forget to add the EHCI-PCI 
support as well.

Best regards,
Stefan

=
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] [RFC USB PATCH] USB ehci fix and test on ixp4xx hardware

2008-12-12 Thread Jean-Christophe PLAGNIOL-VILLARD
On 11:00 Fri 12 Dec , Michael Trimarchi wrote:
> EHCI fix code and ixp4xx test.
> USB ehci configuration parameter:
> 
> #define CONFIG_CMD_USB  1
> #define CONFIG_USB_STORAGE  1
> #define CONFIG_USB_EHCI
> #define CONFIG_USB_EHCI_IXP4XX  1
> #define CONFIG_EHCI_IS_TDI  1
> #define CONFIG_EHCI_DESC_BIG_ENDIAN 1
> #define CONFIG_EHCI_MMIO_BIG_ENDIAN 1
> #define CONFIG_SYS_USB_EHCI_MAX_ROOT_PORTS 2
> #define CONFIG_LEGACY_USB_INIT_SEQ  1
> 
> 2 USB Device(s) found
>scanning bus for storage devices... 0 Storage Device(s) found
> => usb tree
> 
> Device Tree:
>   1  Hub (1.5MBit/s, 0mA)
>   |  u-boot EHCI Host Controller
>   |
>   |+-2  Mass Storage (12MBit/s, 100mA)
>Sony Storage Media 0C07040930296
> 
> =>
> 
> Signed-off-by: Michael Trimarchi 
> 
> ---
>  drivers/usb/usb_ehci.h  |   49 ++
>  drivers/usb/usb_ehci_core.c |  122 ++
>  2 files changed, 102 insertions(+), 69 deletions(-)
> 
> diff --git a/drivers/usb/usb_ehci.h b/drivers/usb/usb_ehci.h
> index 90b137a..9e8e7b2 100644
> --- a/drivers/usb/usb_ehci.h
> +++ b/drivers/usb/usb_ehci.h
> @@ -1,5 +1,6 @@
>  /*-
>   * Copyright (c) 2007-2008, Juniper Networks, Inc.
> + * Copyright (c) 2008, Michael Trimarchi 
please remove you do not do enough modification to claim the copytight
>   * All rights reserved.
>   *
>   * This program is free software; you can redistribute it and/or
> @@ -21,6 +22,10 @@
>  #ifndef USB_EHCI_H
>  #define USB_EHCI_H
>  
> +#if !defined(CONFIG_SYS_USB_EHCI_MAX_ROOT_PORTS)
> +#error "USB EHCI define MAX_ROOT_PORTS"
> +#endif
I'll prefer this
#if !defined(CONFIG_SYS_USB_EHCI_MAX_ROOT_PORTS)
#define CONFIG_SYS_USB_EHCI_MAX_ROOT_PORTS  2
#endif

other wise you must update everyone
> +
>  /* (shifted) direction/type/recipient from the USB 2.0 spec, table 9.2 */
>  #define DeviceRequest \
>   ((USB_DIR_IN | USB_TYPE_STANDARD | USB_RECIP_DEVICE) << 8)
> @@ -45,10 +50,12 @@ struct ehci_hccr {
>  #define HC_LENGTH(p) (((p) >> 0) & 0x00ff)
>  #define HC_VERSION(p)(((p) >> 16) & 0x)
>   uint32_t cr_hcsparams;
> +#define HCS_PPC(p)   ((p) & (1 << 4))
> +#define HCS_INDICATOR(p)((p) & (1 << 16)) /* Port indicators */
   
whitespace please fix
>  #define HCS_N_PORTS(p)   (((p) >> 0) & 0xf)
>   uint32_t cr_hccparams;
>   uint8_t cr_hcsp_portrt[8];
> -};
> +} __attribute__ ((packed));
>  
>  struct ehci_hcor {
>   uint32_t or_usbcmd;
> @@ -71,9 +78,9 @@ struct ehci_hcor {
>   uint32_t _reserved_[9];
>   uint32_t or_configflag;
>  #define FLAG_CF  (1 << 0)/* true:  we'll support "high 
> speed" */
> - uint32_t or_portsc[2];
> + uint32_t or_portsc[CONFIG_SYS_USB_EHCI_MAX_ROOT_PORTS];
>   uint32_t or_systune;
> -};
> +} __attribute__ ((packed));
>  
>  #define USBMODE  0x68/* USB Device mode */
>  #define USBMODE_SDIS (1 << 3)/* Stream disable */
> @@ -123,26 +130,24 @@ struct usb_linux_config_descriptor {
>  #define cpu_to_hc32(x)   cpu_to_le32((x))
>  #endif
>  
> -#define EHCI_PS_WKOC_E   0x0040  /* RW wake on over 
> current */
> -#define EHCI_PS_WKDSCNNT_E   0x0020  /* RW wake on disconnect */
> -#define EHCI_PS_WKCNNT_E 0x0010  /* RW wake on connect */
> -#define EHCI_PS_PTC  0x000f  /* RW port test control */
> -#define EHCI_PS_PIC  0xc000  /* RW port indicator control */
> -#define EHCI_PS_PO   0x2000  /* RW port owner */
> -#define EHCI_PS_PP   0x1000  /* RW,RO port power */
> -#define EHCI_PS_LS   0x0c00  /* RO line status */
> -#define EHCI_PS_PR   0x0100  /* RW port reset */
> -#define EHCI_PS_SUSP 0x0080  /* RW suspend */
> -#define EHCI_PS_FPR  0x0040  /* RW force port resume */
> -#define EHCI_PS_OCC  0x0020  /* RWC over current change */
> -#define EHCI_PS_OCA  0x0010  /* RO over current active */
> -#define EHCI_PS_PEC  0x0008  /* RWC port enable change */
> -#define EHCI_PS_PE   0x0004  /* RW port enable */
> -#define EHCI_PS_CSC  0x0002  /* RWC connect status change */
> -#define EHCI_PS_CS   0x0001  /* RO connect status */
> +#define EHCI_PS_WKOC_E   (1 << 22)   /* RW wake on over 
> current */
> +#define EHCI_PS_WKDSCNNT_E   (1 << 21)   /* RW wake on disconnect */
> +#define EHCI_PS_WKCNNT_E (1 << 20)   /* RW wake on connect */
> +#define EHCI_PS_PO   (1 << 13)   /* RW port owner */
> +#define EHCI_PS_PP   (1 << 12)   /* RW,RO port power */
> +#define EHCI_PS_LS   (3 << 10)   /* RO line status */
> +#define EHCI_PS_PR   (1 << 8)/* RW port reset */
> +#define EHCI_PS_SUSP   

Re: [U-Boot] [RFC USB PATCH] USB ehci fix and test on ixp4xx hardware

2008-12-12 Thread Stefan Roese
On Friday 12 December 2008, Jean-Christophe PLAGNIOL-VILLARD wrote:
> On 11:00 Fri 12 Dec , Michael Trimarchi wrote:



> > diff --git a/drivers/usb/usb_ehci.h b/drivers/usb/usb_ehci.h
> > index 90b137a..9e8e7b2 100644
> > --- a/drivers/usb/usb_ehci.h
> > +++ b/drivers/usb/usb_ehci.h
> > @@ -1,5 +1,6 @@
> >  /*-
> >   * Copyright (c) 2007-2008, Juniper Networks, Inc.
> > + * Copyright (c) 2008, Michael Trimarchi 
>
> please remove you do not do enough modification to claim the copytight

Jean-Christophe, did you follow Michael's EHCI patches from the last days? He 
did quite a lot of work in this driver (e.g. big endian support etc). 
Definitely enough for adding his Copyright here from my point of view.

Best regards,
Stefan

=
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] [RFC USB PATCH] USB ehci fix and test on ixp4xx?hardware

2008-12-12 Thread Jean-Christophe PLAGNIOL-VILLARD
On 11:39 Fri 12 Dec , Stefan Roese wrote:
> On Friday 12 December 2008, Jean-Christophe PLAGNIOL-VILLARD wrote:
> > On 11:00 Fri 12 Dec , Michael Trimarchi wrote:
> 
> 
> 
> > > diff --git a/drivers/usb/usb_ehci.h b/drivers/usb/usb_ehci.h
> > > index 90b137a..9e8e7b2 100644
> > > --- a/drivers/usb/usb_ehci.h
> > > +++ b/drivers/usb/usb_ehci.h
> > > @@ -1,5 +1,6 @@
> > >  /*-
> > >   * Copyright (c) 2007-2008, Juniper Networks, Inc.
> > > + * Copyright (c) 2008, Michael Trimarchi 
> >
> > please remove you do not do enough modification to claim the copytight
> 
> Jean-Christophe, did you follow Michael's EHCI patches from the last days? He 
not too much sorry I've seen after his e-mail
I've miss the Author due different e-amil name "Michael" somtimes and full
namy otherwise
> did quite a lot of work in this driver (e.g. big endian support etc). 
> Definitely enough for adding his Copyright here from my point of view.
sure

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


Re: [U-Boot] [RFC USB PATCH] USB ehci fix and test on ixp4xx hardware

2008-12-12 Thread michael
Hi,

Jean-Christophe PLAGNIOL-VILLARD wrote:
> On 11:00 Fri 12 Dec , Michael Trimarchi wrote:
>   
>> EHCI fix code and ixp4xx test.
>> USB ehci configuration parameter:
>>
>> #define CONFIG_CMD_USB  1
>> #define CONFIG_USB_STORAGE  1
>> #define CONFIG_USB_EHCI
>> #define CONFIG_USB_EHCI_IXP4XX  1
>> #define CONFIG_EHCI_IS_TDI  1
>> #define CONFIG_EHCI_DESC_BIG_ENDIAN 1
>> #define CONFIG_EHCI_MMIO_BIG_ENDIAN 1
>> #define CONFIG_SYS_USB_EHCI_MAX_ROOT_PORTS 2
>> #define CONFIG_LEGACY_USB_INIT_SEQ  1
>>
>> 2 USB Device(s) found
>>scanning bus for storage devices... 0 Storage Device(s) found
>> => usb tree
>>
>> Device Tree:
>>   1  Hub (1.5MBit/s, 0mA)
>>   |  u-boot EHCI Host Controller
>>   |
>>   |+-2  Mass Storage (12MBit/s, 100mA)
>>Sony Storage Media 0C07040930296
>>
>> =>
>>
>> Signed-off-by: Michael Trimarchi 
>>
>> ---
>>  drivers/usb/usb_ehci.h  |   49 ++
>>  drivers/usb/usb_ehci_core.c |  122 
>> ++
>>  2 files changed, 102 insertions(+), 69 deletions(-)
>>
>> diff --git a/drivers/usb/usb_ehci.h b/drivers/usb/usb_ehci.h
>> index 90b137a..9e8e7b2 100644
>> --- a/drivers/usb/usb_ehci.h
>> +++ b/drivers/usb/usb_ehci.h
>> @@ -1,5 +1,6 @@
>>  /*-
>>   * Copyright (c) 2007-2008, Juniper Networks, Inc.
>> + * Copyright (c) 2008, Michael Trimarchi 
>> 
> please remove you do not do enough modification to claim the copytight
>   
Ok, I do few changes before, but if you think that they aren't a lot, 
I'll remove it.
>>   * All rights reserved.
>>   *
>>   * This program is free software; you can redistribute it and/or
>> @@ -21,6 +22,10 @@
>>  #ifndef USB_EHCI_H
>>  #define USB_EHCI_H
>>  
>> +#if !defined(CONFIG_SYS_USB_EHCI_MAX_ROOT_PORTS)
>> +#error "USB EHCI define MAX_ROOT_PORTS"
>> +#endif
>> 
> I'll prefer this
> #if !defined(CONFIG_SYS_USB_EHCI_MAX_ROOT_PORTS)
> #define CONFIG_SYS_USB_EHCI_MAX_ROOT_PORTS2
> #endif
>
> other wise you must update everyone
>   
ok
>> +
>>  /* (shifted) direction/type/recipient from the USB 2.0 spec, table 9.2 */
>>  #define DeviceRequest \
>>  ((USB_DIR_IN | USB_TYPE_STANDARD | USB_RECIP_DEVICE) << 8)
>> @@ -45,10 +50,12 @@ struct ehci_hccr {
>>  #define HC_LENGTH(p)(((p) >> 0) & 0x00ff)
>>  #define HC_VERSION(p)   (((p) >> 16) & 0x)
>>  uint32_t cr_hcsparams;
>> +#define HCS_PPC(p)  ((p) & (1 << 4))
>> +#define HCS_INDICATOR(p)((p) & (1 << 16)) /* Port indicators */
>> 
>  
> whitespace please fix
>   
ok

>>  #define HCS_N_PORTS(p)  (((p) >> 0) & 0xf)
>>  uint32_t cr_hccparams;
>>  uint8_t cr_hcsp_portrt[8];
>> -};
>> +} __attribute__ ((packed));
>>  
>>  struct ehci_hcor {
>>  uint32_t or_usbcmd;
>> @@ -71,9 +78,9 @@ struct ehci_hcor {
>>  uint32_t _reserved_[9];
>>  uint32_t or_configflag;
>>  #define FLAG_CF (1 << 0)/* true:  we'll support "high 
>> speed" */
>> -uint32_t or_portsc[2];
>> +uint32_t or_portsc[CONFIG_SYS_USB_EHCI_MAX_ROOT_PORTS];
>>  uint32_t or_systune;
>> -};
>> +} __attribute__ ((packed));
>>  
>>  #define USBMODE 0x68/* USB Device mode */
>>  #define USBMODE_SDIS(1 << 3)/* Stream disable */
>> @@ -123,26 +130,24 @@ struct usb_linux_config_descriptor {
>>  #define cpu_to_hc32(x)  cpu_to_le32((x))
>>  #endif
>>  
>> -#define EHCI_PS_WKOC_E  0x0040  /* RW wake on over 
>> current */
>> -#define EHCI_PS_WKDSCNNT_E  0x0020  /* RW wake on disconnect */
>> -#define EHCI_PS_WKCNNT_E0x0010  /* RW wake on connect */
>> -#define EHCI_PS_PTC 0x000f  /* RW port test control */
>> -#define EHCI_PS_PIC 0xc000  /* RW port indicator control */
>> -#define EHCI_PS_PO  0x2000  /* RW port owner */
>> -#define EHCI_PS_PP  0x1000  /* RW,RO port power */
>> -#define EHCI_PS_LS  0x0c00  /* RO line status */
>> -#define EHCI_PS_PR  0x0100  /* RW port reset */
>> -#define EHCI_PS_SUSP0x0080  /* RW suspend */
>> -#define EHCI_PS_FPR 0x0040  /* RW force port resume */
>> -#define EHCI_PS_OCC 0x0020  /* RWC over current change */
>> -#define EHCI_PS_OCA 0x0010  /* RO over current active */
>> -#define EHCI_PS_PEC 0x0008  /* RWC port enable change */
>> -#define EHCI_PS_PE  0x0004  /* RW port enable */
>> -#define EHCI_PS_CSC 0x0002  /* RWC connect status change */
>> -#define EHCI_PS_CS  0x0001  /* RO connect status */
>> +#define EHCI_PS_WKOC_E  (1 << 22)   /* RW wake on over 
>> current */
>> +#define EHCI_PS_WKDSCNNT_E  (1 << 21)   /* RW wake on disconnect */
>> +#define EHCI_PS_WKCNNT_E(1 << 20)   /* RW wake on connect */
>> +#define EHCI_

Re: [U-Boot] [RFC USB PATCH] USB ehci fix and test on ixp4xx hardware

2008-12-12 Thread Remy Bohmer
Hello All,

>> please remove you do not do enough modification to claim the copytight
> Jean-Christophe, did you follow Michael's EHCI patches from the last days? He
> did quite a lot of work in this driver (e.g. big endian support etc).
> Definitely enough for adding his Copyright here from my point of view.

I agree on this with Stefan.

Kind Regards,

Remy

>
> Best regards,
> Stefan
>
> =
> 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
>
___
U-Boot mailing list
U-Boot@lists.denx.de
http://lists.denx.de/mailman/listinfo/u-boot


[U-Boot] [RFC USB PATCH V2] USB ehci fix and test on ixp4xx hardware

2008-12-12 Thread Michael Trimarchi
EHCI fix code and ixp4xx test.
USB ehci configuration parameter:

#define CONFIG_CMD_USB  1
#define CONFIG_USB_STORAGE  1
#define CONFIG_USB_EHCI
#define CONFIG_USB_EHCI_IXP4XX  1
#define CONFIG_EHCI_IS_TDI  1
#define CONFIG_EHCI_DESC_BIG_ENDIAN 1
#define CONFIG_EHCI_MMIO_BIG_ENDIAN 1
#define CONFIG_SYS_USB_EHCI_MAX_ROOT_PORTS 2
#define CONFIG_LEGACY_USB_INIT_SEQ  1

2 USB Device(s) found
   scanning bus for storage devices... 0 Storage Device(s) found
=> usb tree

Device Tree:
  1  Hub (1.5MBit/s, 0mA)
  |  u-boot EHCI Host Controller
  |
  |+-2  Mass Storage (12MBit/s, 100mA)
   Sony Storage Media 0C07040930296

=>

Signed-off-by: Michael Trimarchi 
---
 drivers/usb/usb_ehci.h  |   51 ++
 drivers/usb/usb_ehci_core.c |  127 ++-
 2 files changed, 106 insertions(+), 72 deletions(-)

diff --git a/drivers/usb/usb_ehci.h b/drivers/usb/usb_ehci.h
index 90b137a..b72498b 100644
--- a/drivers/usb/usb_ehci.h
+++ b/drivers/usb/usb_ehci.h
@@ -1,5 +1,6 @@
 /*-
  * Copyright (c) 2007-2008, Juniper Networks, Inc.
+ * Copyright (c) 2008, Michael Trimarchi 
  * All rights reserved.
  *
  * This program is free software; you can redistribute it and/or
@@ -21,6 +22,10 @@
 #ifndef USB_EHCI_H
 #define USB_EHCI_H
 
+#if !defined(CONFIG_SYS_USB_EHCI_MAX_ROOT_PORTS)
+#define CONFIG_SYS_USB_EHCI_MAX_ROOT_PORTS 2
+#endif
+
 /* (shifted) direction/type/recipient from the USB 2.0 spec, table 9.2 */
 #define DeviceRequest \
((USB_DIR_IN | USB_TYPE_STANDARD | USB_RECIP_DEVICE) << 8)
@@ -45,10 +50,12 @@ struct ehci_hccr {
 #define HC_LENGTH(p)   (((p) >> 0) & 0x00ff)
 #define HC_VERSION(p)  (((p) >> 16) & 0x)
uint32_t cr_hcsparams;
+#define HCS_PPC(p) ((p) & (1 << 4))
+#define HCS_INDICATOR(p)   ((p) & (1 << 16)) /* Port indicators */
 #define HCS_N_PORTS(p) (((p) >> 0) & 0xf)
uint32_t cr_hccparams;
uint8_t cr_hcsp_portrt[8];
-};
+} __attribute__ ((packed));
 
 struct ehci_hcor {
uint32_t or_usbcmd;
@@ -71,9 +78,9 @@ struct ehci_hcor {
uint32_t _reserved_[9];
uint32_t or_configflag;
 #define FLAG_CF(1 << 0)/* true:  we'll support "high 
speed" */
-   uint32_t or_portsc[2];
+   uint32_t or_portsc[CONFIG_SYS_USB_EHCI_MAX_ROOT_PORTS];
uint32_t or_systune;
-};
+} __attribute__ ((packed));
 
 #define USBMODE0x68/* USB Device mode */
 #define USBMODE_SDIS   (1 << 3)/* Stream disable */
@@ -123,26 +130,24 @@ struct usb_linux_config_descriptor {
 #define cpu_to_hc32(x) cpu_to_le32((x))
 #endif
 
-#define EHCI_PS_WKOC_E 0x0040  /* RW wake on over current */
-#define EHCI_PS_WKDSCNNT_E 0x0020  /* RW wake on disconnect */
-#define EHCI_PS_WKCNNT_E   0x0010  /* RW wake on connect */
-#define EHCI_PS_PTC0x000f  /* RW port test control */
-#define EHCI_PS_PIC0xc000  /* RW port indicator control */
-#define EHCI_PS_PO 0x2000  /* RW port owner */
-#define EHCI_PS_PP 0x1000  /* RW,RO port power */
-#define EHCI_PS_LS 0x0c00  /* RO line status */
-#define EHCI_PS_PR 0x0100  /* RW port reset */
-#define EHCI_PS_SUSP   0x0080  /* RW suspend */
-#define EHCI_PS_FPR0x0040  /* RW force port resume */
-#define EHCI_PS_OCC0x0020  /* RWC over current change */
-#define EHCI_PS_OCA0x0010  /* RO over current active */
-#define EHCI_PS_PEC0x0008  /* RWC port enable change */
-#define EHCI_PS_PE 0x0004  /* RW port enable */
-#define EHCI_PS_CSC0x0002  /* RWC connect status change */
-#define EHCI_PS_CS 0x0001  /* RO connect status */
+#define EHCI_PS_WKOC_E (1 << 22)   /* RW wake on over current */
+#define EHCI_PS_WKDSCNNT_E (1 << 21)   /* RW wake on disconnect */
+#define EHCI_PS_WKCNNT_E   (1 << 20)   /* RW wake on connect */
+#define EHCI_PS_PO (1 << 13)   /* RW port owner */
+#define EHCI_PS_PP (1 << 12)   /* RW,RO port power */
+#define EHCI_PS_LS (3 << 10)   /* RO line status */
+#define EHCI_PS_PR (1 << 8)/* RW port reset */
+#define EHCI_PS_SUSP   (1 << 7)/* RW suspend */
+#define EHCI_PS_FPR(1 << 6)/* RW force port resume */
+#define EHCI_PS_OCC(1 << 5)/* RWC over current change */
+#define EHCI_PS_OCA(1 << 4)/* RO over current active */
+#define EHCI_PS_PEC(1 << 3)/* RWC port enable change */
+#define EHCI_PS_PE (1 << 2)/* RW port enable */
+#define EHCI_PS_CSC(1 << 1)/* RWC connect status change */
+#define EHCI_PS_CS (1 << 0

[U-Boot] EHCI last patch

2008-12-12 Thread michael
Hi all,

In the last ehci patch I add myself in the author of the code. I'm not 
sure if it possible. I change
the codes and test it but I don't know if the change are sufficient.

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


Re: [U-Boot] problem doing rebase in fresh git.denx.de/u-boot.git clone

2008-12-12 Thread Peter Vollmer
Dear Wolfgang,
On Thu, 11 Dec 2008 21:54:13 +0100, Wolfgang Denk  wrote:
> In message  you wrote:
>> > What exactly do you expect this command to do?
> You showed us a sequence  of  two  commands:  git-clone  followed  by
> git-rebase, and complain that it doesn't wor as expected.
>
> You are missing something - either, you miss to describe some
> additional steps you did between these two commands (in which case we
> have no chance to comment at all), or you miss how git works.

Sorry if I failed to give a clear explanation, I'll try again.

1) Lets say this is a simplified part of the commit log after I cloned the  
repo and created my branch with "git checkout -b bisect v2008.10"

tag_v1.3.3
commitA
commitB
commitC
tag_v2008.10

2) then I commit my own patches at the top with "git am  
0001-myPatch1.patch 0002-myPatch2.patch"

tag_v1.3.3
commitA
commitB
commitC
tag_v2008.10
myPatch1
myPatch2

3) then I try to "git rebase -i v1.3.3" to reorder the commits in my  
branch in the following way (which failed):

tag_v1.3.3
commitA
myPatch1
commitB
myPatch2
commitC
tag_v2008.10

4) After that I wanted to do a git bisect between tag_v1.3.3 and  
tag_v2008.10 to find the commit when my port stops working.

> If you have a patchset against v1.3.3, my approach would be to create
> a branch, for example like this:
>
>   git-checkout -b my-test-branch v1.3.3
>
> then apply the patches, commit these, and then (with "my-test-branch"
> checked out), you could try a "git-rebase -i master".

I see, this would move my patches from after tag_v1.3.3 up to HEAD, but  
what I tried to accomplish was to distribute them back in the timeline to  
make bisect work at each point between v1.3.3 and v2008.10.

Lets say there is the commit

commit 0e8d158664a913392cb01fb11a948d83f72e105e
Author: Jean-Christophe PLAGNIOL-VILLARD 
Date:   Wed Sep 10 22:48:06 2008 +0200

 rename CFG_ENV macros to CONFIG_ENV

 Signed-off-by: Jean-Christophe PLAGNIOL-VILLARD 

and I have a patch "rename_CFG_ENV_to_CONFIG_ENV_myBoard.patch", so I  
would like to put it directly after above commit, so u-boot compiles  
before and after these two patches during the bisect process.

But I already managed to do it using git merge. Thanks for your help and  
sorry for the confusion :)

Best Regards

-- 
Peter Vollmer
Software Engineer

Innominate Security Technologies AG
protecting industrial networks
Albert-Einstein-Str. 14
D-12489 Berlin
www.innominate.com
___
U-Boot mailing list
U-Boot@lists.denx.de
http://lists.denx.de/mailman/listinfo/u-boot


[U-Boot] [HELP]uboot 1.3.4 can't work on my MPC8548 board

2008-12-12 Thread hank peng
Hi:
I downloaded uboot 1.3.4 and build it successfully, but it can't work
on my MPC8548 board. There is no output message after power on. I use
USB TAB to trace where the problem is and find that cpu died during
relocation of CCSRBAR in cpu_init_early_f function. Is there anyone
who also finds this problem, or maybe is it due to my hardware's
problem?

-- 
The simplest is not all best but the best is surely the simplest!
___
U-Boot mailing list
U-Boot@lists.denx.de
http://lists.denx.de/mailman/listinfo/u-boot


[U-Boot] [PATCH] part_efi: Fix partition size calculation due to inclusive ending LBA.

2008-12-12 Thread Richard Retanubun
>From b24eaf52ade5e5f1e94243f727d4c0f6d0fccdf5 Mon Sep 17 00:00:00 2001
From: Richard Retanubun 
Date: Fri, 12 Dec 2008 10:23:45 -0500
Subject: [PATCH] The ending LBA is inclusive. Hence, the partition size should 
be
 ((ending-LBA + 1) - starting-LBA) to get the proper partition size.

This is confirmed against the results from the parted tool.
(e.g. use parted /dev/sda -s unit S print) and observe the size.

Signed-off-by: Richard Retanubun 
---
Hi Wolfgang,

Apologies for the 'custodianship' assumption audacity :)
Let me know if there is a more proper 'channel' for this 
and I'll stop bugging you.

 disk/part_efi.c |4 +++-
 1 files changed, 3 insertions(+), 1 deletions(-)

diff --git a/disk/part_efi.c b/disk/part_efi.c
index cc188ee..d8a8111 100644
--- a/disk/part_efi.c
+++ b/disk/part_efi.c
@@ -163,7 +163,9 @@ int get_partition_info_efi(block_dev_desc_t * dev_desc, int 
part,

/* The ulong casting limits the maximum disk size to 2 TB */
info->start = (ulong) le64_to_int((*pgpt_pte)[part - 1].starting_lba);
-   info->size = (ulong) le64_to_int((*pgpt_pte)[part - 1].ending_lba) - 
info->start;
+   /* The ending LBA is inclusive, to calculate size, add 1 to it */
+   info->size = ((ulong)le64_to_int((*pgpt_pte)[part - 1].ending_lba) + 1)
+- info->start;
info->blksz = GPT_BLOCK_SIZE;

sprintf((char *)info->name, "%s%d\n", GPT_ENTRY_NAME, part);
--
1.5.6.5






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


Re: [U-Boot] CFI: flash_write_cfiword() slow

2008-12-12 Thread Jens Gehrlein
Hi Wolfgang,

Wolfgang Denk schrieb:
> Dear Jens Gehrlein,
> 
> In message <490edd63.1010...@tqs.de> you wrote:
>> find_sector() loops through the sector table from the last sector to
>> the current sector. And the more sectors the device has, the slower
>> the algorithm becomes. And this process for every sector to be 
>> programmed. And yes, there are still devices around without (standard) 
>> write buffer, e.g. the Samsung K8P2815UQB.
> 
> A classic (and  trivial  to  implement)  approach  is  not  to  start
> searching  at  the  end, but at the last used sector (assuming search
> driection and direction of "growth" are  identical). 

Okay. Because I never have seen, that a flash has been written
backwards, as a prerequisite I have to change the loop from counting 
down to counting up. Any objections?

> This  way,  you
> will  typically  find  the  match either immediately or with a single
> step.
> 
> Maybe you want to give that a try...

I'm currently trying :-) Had some other projects in the meantime.

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


[U-Boot] dts to dtb generation

2008-12-12 Thread Marco Antônio Possamai
Hello, all.

I need to get my device-tree blob done, in order to pass it along with
the image I've created (bootm command). I'm kind of new on the dtb
concept and I'm not sure if I'm doing it right. Have read some stuff
about it, though.

What I got is that I have to generate a .dtb out of this source file
(lite5200b.dts). But I can't get my dtc to work.

I've downloaded the latest version
(http://jdl.com/software/dtc-latest.tgz) and done the make command, but
it points some errors during building. Check the snippet:

...

BISON dtc-parser.tab.c
 DEP dtc-parser.tab.c
 LEX dtc-lexer.lex.c
make: flex: Command not found
 DEP checks.c
 DEP srcpos.c
 DEP treesource.c
 DEP livetree.c
 DEP data.c
 DEP fstree.c
 DEP flattree.c
 DEP dtc.c
 LEX dtc-lexer.lex.c
make: flex: Command not found
CHK version_gen.h
UPD version_gen.h
 DEP dtc.c
 LEX dtc-lexer.lex.c
make: flex: Command not found
CHK version_gen.h
 CC dtc.o
...

And after the 'make install' command it reports the same 'flex: Command
not found':

LEX dtc-lexer.lex.c
make: flex: Command not found
CHK version_gen.h

I've visited the http://www.embeddedlinuxprimer.com/dtc for the howto
steps.

Well, I guess it didn't complete the install, the console bashes the dtc
as 'not found'.

I'm aware there must be some small detail I must be missing in order to
get it right, but I'd really appreciate a pointer here.


Thanks for the attention.


Marco Antônio Possamai

Universidade Federal de Santa Catarina

P.S: I'm also aware this is possibly not the right mailing list to ask about 
device-tree compilers... but I haven't found one specific for it. Sorry for the 
inconvenience.

-- 
Be Yourself @ mail.com!
Choose From 200+ Email Addresses
Get a Free Account at www.mail.com

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


Re: [U-Boot] dts to dtb generation

2008-12-12 Thread Jerry Van Baren
Marco Antônio Possamai wrote:
> Hello, all.
> 
> I need to get my device-tree blob done, in order to pass it along with
> the image I've created (bootm command). I'm kind of new on the dtb
> concept and I'm not sure if I'm doing it right. Have read some stuff
> about it, though.
> 
> What I got is that I have to generate a .dtb out of this source file
> (lite5200b.dts). But I can't get my dtc to work.
> 
> I've downloaded the latest version
> (http://jdl.com/software/dtc-latest.tgz) and done the make command, but
> it points some errors during building. Check the snippet:

Good.

> BISON dtc-parser.tab.c
>  DEP dtc-parser.tab.c
>  LEX dtc-lexer.lex.c
> make: flex: Command not found

Bad.  You are done at this point.

[snip]

> I'm aware there must be some small detail I must be missing in order to
> get it right, but I'd really appreciate a pointer here.
> 
> 
> Thanks for the attention.
> Marco Antônio Possamai

Hi Marco,

You are missing the flex package, and thus the "flex" command, on your 
system.  Flex is a lexical parser (classic name "lex").

You didn't say what your host's distribution is.  If it is debian, you 
need to install the flex package.  RH/SuSE may name their package 
differently (probably not).


Best regards,
gvb

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


Re: [U-Boot] dts to dtb generation

2008-12-12 Thread Detlev Zundel
Hi Marco,

> BISON dtc-parser.tab.c
>  DEP dtc-parser.tab.c
>  LEX dtc-lexer.lex.c
> make: flex: Command not found

Actually, I do not know, how an error message could be more clear than
that.  Obviously your Linux installation is missing the GNU lexical
scanner generator "flex".  It should be trivial to install that package
for the distro that you use.

Best wishes
  Detlev

-- 
Every time history repeats itself the price goes up.
--
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] FSL DDR @ 83xx

2008-12-12 Thread Jon Loeliger
Andre Schwarz wrote:

>> I don't believe anyone is currently working on getting the new ddr
>> code to be used w/83xx.  Feel free to submit patches that does this
>> and we will review them as they are posted.
>>
>> - k
> After spending few hours it seems to work basically.
> This is what I've done :
> 
> - add mpc8xxx(ddr/libddr.a to top level Makefile for 83xx
> - created mpc83xx/ddr-gen2.c and ported to meet ddr83xx_t
> - created board specific ddr.c for SPD accessor and basic setup.
> - created board specific ddr2_spd_eeprom_t (soldered memory)
> 
> The board config got these #defines :
> 
> #define CONFIG_FSL_DDR2
> #define CONFIG_DDR_SPD
> #define CONFIG_NUM_DDR_CONTROLLERS  1   -> this should go
> into mpc83xx header
> #define CONFIG_DIMM_SLOTS_PER_CTLR  1
> #define CONFIG_CHIP_SELECTS_PER_CTRL1
> 
> Since spd_sdram.o is always build (mpc83xx/Makefile) and the code is
> also activated by CONFIG_SPD_EEPROM
> we should find a reasonable way  to switch between "old" and "new" DDR
> code by some kind of #define.
> 
> Is this the way to go ?
> 

Yes, it is.  You will also need a per-board set of functions
to answer the "configuration issues" in a way similar to the
rest of the 85xx and 86xx boards.

You will have to carefully juggle the presence of the
"new" and "old" simultaneously (via CONFIG_FSL_DDR2, likely)
until all the 83xx boards are supported under the new mechanism.

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


Re: [U-Boot] FSL DDR @ 83xx

2008-12-12 Thread Jon Loeliger
Andre Schwarz wrote:

>> I don't believe anyone is currently working on getting the new ddr
>> code to be used w/83xx.  Feel free to submit patches that does this
>> and we will review them as they are posted.
>>
>> - k
> After spending few hours it seems to work basically.
> This is what I've done :
> 
> - add mpc8xxx(ddr/libddr.a to top level Makefile for 83xx
> - created mpc83xx/ddr-gen2.c and ported to meet ddr83xx_t
> - created board specific ddr.c for SPD accessor and basic setup.
> - created board specific ddr2_spd_eeprom_t (soldered memory)
> 
> The board config got these #defines :
> 
> #define CONFIG_FSL_DDR2
> #define CONFIG_DDR_SPD
> #define CONFIG_NUM_DDR_CONTROLLERS  1   -> this should go
> into mpc83xx header
> #define CONFIG_DIMM_SLOTS_PER_CTLR  1
> #define CONFIG_CHIP_SELECTS_PER_CTRL1
> 
> Since spd_sdram.o is always build (mpc83xx/Makefile) and the code is
> also activated by CONFIG_SPD_EEPROM
> we should find a reasonable way  to switch between "old" and "new" DDR
> code by some kind of #define.
> 
> Is this the way to go ?
> 

Yes, it is.  You will also need a per-board set of functions
to answer the "configuration issues" in a way similar to the
rest of the 85xx and 86xx boards.

You will have to carefully juggle the presence of the
"new" and "old" simultaneously (via CONFIG_FSL_DDR2, likely)
until all the 83xx boards are supported under the new mechanism.

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


Re: [U-Boot] FSL DDR @ 83xx

2008-12-12 Thread Jon Loeliger
Andre Schwarz wrote:

> mpc83xx/spd_sdram needs some fixes to work with latest chips :
> 
> 1.
> max_data_rate seems to be mishandled. Since it's twice the physical
> clock we need much higher vaues for calculating optimum caslat ... or
> use "max_bus_clock" instead. bus_clock seems to be reasonable since the
> SPD timing values refer to clock and/or clock cycle time.
> 
> if (max_data_rate >= 390 && max_data_rate < 460) { /* it is DDR 400 */
> 
> This is the top-level if -> DDR-333 gives max_data_rate = 666  and
> goes into
> 
> else if (max_data_rate >= 323) { /* it is DDR 333 */
> 
> Additionally the caslat reduction code should use "<=" and ">=" for the
> evaluation of clk_cycle2 and clk_cycle3. Otherwise it will only work for
> a specific memory with SPD contents.
> 
> To make it short :
> DDR-II-333 will be configured with caslat = 5 @ 133MHz Controller speed
> -> It would work fine with caslat = 3.
> 
> 2.
> Actually 3 bank adress bits are quite usual. This SPD values are not yet
> evaluated.
> 
> 3.
> Termination schemes (150/75/50 Ohm) and driver characteristics are not
> handled at all.
> Most boards would need this or may only run stable with the most
> conservative timings.
> 
> 
> Does it make sense to fix these things or is the "new" DDR code the way
> to go ?

Ultimately, one way or another, at the end of the day, when all
is said and done, the old way will be removed and the new way
will prevail.  You know.

So, yeah, all of these "per board" configurations will have to
be supplied in a new file like each of the 85xx and 86xx boards
have done.

HTH,
jdl

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


Re: [U-Boot] problem doing rebase in fresh git.denx.de/u-boot.git clone

2008-12-12 Thread Wolfgang Denk
Dear "Peter Vollmer",

In message  you wrote:
>
> 1) Lets say this is a simplified part of the commit log after I cloned the  
> repo and created my branch with "git checkout -b bisect v2008.10"

But that's wrong. You said, you patches were based on v1.3.3 - then you must 
branch off v1.3.3:

git-checkout -b your_branch v1.3.3


> tag_v1.3.3
> commitA
> commitB
> commitC
> tag_v2008.10

Will give:


tag_v1.3.3  x-- your_branch---+
commitA
commitB
commitC
tag_v2008.10

> 2) then I commit my own patches at the top with "git am  
> 0001-myPatch1.patch 0002-myPatch2.patch"
> 
> tag_v1.3.3
> commitA
> commitB
> commitC
> tag_v2008.10
> myPatch1
> myPatch2

That makes no sense, if your  patches  are  based  on  1.3.3  -  most
probably, they will not even apply correctly on top of v2008.10; what
you need is this:

tag_v1.3.3 x-- your_branch---+
commitA   myPatch1
commitB   myPatch2
commitC
tag_v2008.10


> 3) then I try to "git rebase -i v1.3.3" to reorder the commits in my  
> branch in the following way (which failed):

That's wrong again. Here you need to do a  "git  rebase  -i  master",
which  will  move  the point where you branched off the master branch
(marked in the pictures above with 'x') to the top of tree commit; if
successful, the result will then look like this:

> tag_v1.3.3
> commitA
> myPatch1
> commitB
> myPatch2
> commitC
> tag_v2008.10

tag_v1.3.3
commitA
commitB
commitC
tag_v2008.10 x-- your_branch---+
  myPatch1'
  myPatch2'


> 4) After that I wanted to do a git bisect between tag_v1.3.3 and  
> tag_v2008.10 to find the commit when my port stops working.

Using bisect makes absolutely no sense to me in this context.


> I see, this would move my patches from after tag_v1.3.3 up to HEAD, but  
> what I tried to accomplish was to distribute them back in the timeline to  
> make bisect work at each point between v1.3.3 and v2008.10.

You cannot go backward. You could only start  your  own  branch,  and
then  git-cherry-pick  one  patch  after  the  other  from the master
branch, and after each step clean up / add fixes as needed.

Then you can git-rebase -i your branch to consolidate patches.

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 human mind  ordinarily  operates  at  only  ten  percent  of  its
capacity. The rest is overhead for the operating system.
___
U-Boot mailing list
U-Boot@lists.denx.de
http://lists.denx.de/mailman/listinfo/u-boot


[U-Boot] FPGA programming driver architecture

2008-12-12 Thread Hugo Villeneuve
Hi,
I have written some code to program a FPGA in Linux, for two different types of 
boards: one uses a serial interface (SPI) and the second a parallel interface. 
I have been able to sucessfully program both boards. I'm now trying to clean my 
code and make it more generic, as well as better in line with the Linux driver 
model. I would also like to include it in the mainline kernel if there is 
interest.

Here is a description of the current architecture (refer to diagrams below): 
The fpgaload module controls one output GPIOs (PROG), and two input GPIOs (INIT 
and DONE). These GPIOs are specified in board setup code. Both fpgaload_ser and 
fpgaload_par modules export a single function to write a byte. The fpgaload 
driver is a char device to which we can write (/dev/fpgaload) to program a 
bitstream (FPGA firmware) inside the FPGA. The fpgaload driver will toggle the 
GPIOs to initiate programming and the then call the corresponding write_byte 
function based on the interface type specified in board setup code (serial or 
parallel, or any future interface desired).


FPGA serial bitstream loading architecture

+--+
| FPGA load driver |
| (fpgaload)   |
+--+
  | |
  |++
  || FPGA serial|
  || load driver|
  || (fpgaload_ser) |
  |++
  | |
  |+---+
  || SPI master|
  || controller driver |
  |+---+
  | |
  | |   Linux

  | |   HARDWARE
  | |spi
  | |
  |  +--+
  |  | SPI  |
  +->| Programming  |
   GPIOs | interface|
 +--+
FPGA


FPGA parallel bitstream loading architecture

+--+
| FPGA load driver |
| (fpgaload)   |
+--+
  | |
  |++
  || FPGA parallel  |
  || load driver|
  || (fpgaload_par) |
  |++
  | |
  | |   Linux

  | |   HARDWARE
  | |parallel
  | |
  |  +--+
  |  | Parallel |
  +->| Programming  |
   GPIOs | interface|
 +--+
FPGA


The problem with that approach is that when loading the fpgaload module with 
modprobe, it will automatically try to load the fpgaload_ser and fpgaload_par 
modules, even if only serial interface was specified in board setup code for 
example. This is not good when building a kernel for similar but different 
boards.

Probably a better approach would be for the fpgaload_Ser and fpgaload_par 
modules to register themselves with the fpgaload module. Then, should the 
fpgaload module be built using a BUS driver structure? Or anyone having any 
suggestions on how it should be implemented?

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


Re: [U-Boot] FPGA programming driver architecture

2008-12-12 Thread Hugo Villeneuve
On Fri, 12 Dec 2008 15:00:47 -0500
Hugo Villeneuve  wrote:

> Hi,
> I have written some code to program a FPGA in Linux...

Sorry, wrong mailing list :)

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


[U-Boot] [PATCH] mpc83xx: Size optimization of start.S

2008-12-12 Thread Ron Madrid
Currently there are in excess of 100 bytes located at the beginning of the image
built by start.S that are not being utilized.  This patch moves a few functions
into this part of the image.  This will create a greater number of *available*
bytes that can be used by board specific code in NAND builds and will decrease
the size of the assembled code in other builds.

Signed-off-by: Ron Madrid 
---
 cpu/mpc83xx/start.S |   77 ++-
 1 files changed, 39 insertions(+), 38 deletions(-)

diff --git a/cpu/mpc83xx/start.S b/cpu/mpc83xx/start.S
index cd566b2..b040e3b 100644
--- a/cpu/mpc83xx/start.S
+++ b/cpu/mpc83xx/start.S
@@ -108,6 +108,45 @@ version_string:
.ascii " (", __DATE__, " - ", __TIME__, ")"
.ascii " ", CONFIG_IDENT_STRING, "\0"
 
+   .align 2
+
+   .globl enable_addr_trans
+enable_addr_trans:
+   /* enable address translation */
+   mfmsr   r5
+   ori r5, r5, (MSR_IR | MSR_DR)
+   mtmsr   r5
+   isync
+   blr
+
+   .globl disable_addr_trans
+disable_addr_trans:
+   /* disable address translation */
+   mflrr4
+   mfmsr   r3
+   andi.   r0, r3, (MSR_IR | MSR_DR)
+   beqlr
+   andcr3, r3, r0
+   mtspr   SRR0, r4
+   mtspr   SRR1, r3
+   rfi
+
+   .globl get_pvr
+get_pvr:
+   mfspr   r3, PVR
+   blr
+
+   .globl  ppcDWstore
+ppcDWstore:
+   lfd 1, 0(r4)
+   stfd1, 0(r3)
+   blr
+
+   .globl  ppcDWload
+ppcDWload:
+   lfd 1, 0(r3)
+   stfd1, 0(r4)
+   blr
 
 #ifndef CONFIG_DEFAULT_IMMR
 #error CONFIG_DEFAULT_IMMR must be defined
@@ -697,27 +736,6 @@ setup_bats:
 
blr
 
-   .globl enable_addr_trans
-enable_addr_trans:
-   /* enable address translation */
-   mfmsr   r5
-   ori r5, r5, (MSR_IR | MSR_DR)
-   mtmsr   r5
-   isync
-   blr
-
-   .globl disable_addr_trans
-disable_addr_trans:
-   /* disable address translation */
-   mflrr4
-   mfmsr   r3
-   andi.   r0, r3, (MSR_IR | MSR_DR)
-   beqlr
-   andcr3, r3, r0
-   mtspr   SRR0, r4
-   mtspr   SRR1, r3
-   rfi
-
 /* Cache functions.
  *
  * Note: requires that all cache bits in
@@ -795,23 +813,6 @@ flush_dcache:
b   1b
 2: blr
 
-   .globl get_pvr
-get_pvr:
-   mfspr   r3, PVR
-   blr
-
-   .globl  ppcDWstore
-ppcDWstore:
-   lfd 1, 0(r4)
-   stfd1, 0(r3)
-   blr
-
-   .globl  ppcDWload
-ppcDWload:
-   lfd 1, 0(r3)
-   stfd1, 0(r4)
-   blr
-
 /*---*/
 
 /*
-- 
1.5.5.1

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


Re: [U-Boot] FPGA programming driver architecture

2008-12-12 Thread Wolfgang Denk
Dear Hugo Villeneuve,

In message <20081212150047.e3dbbbef.h...@hugovil.com> you wrote:
>
> I have written some code to program a FPGA in Linux, for two different types 
> of boards: one uses a serial interface (SPI) and the second a parallel 
> interface. I have been able to sucessfully program both boards. I'm now 
> trying to clean my code and make 
> it more generic, as well as better in line with the Linux driver model. I 
> would also like to include it in the mainline kernel if there is interest.

Your lines are way too long, and discussing Linux kernel code is off
topic here.

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
When all else fails, read the instructions.
___
U-Boot mailing list
U-Boot@lists.denx.de
http://lists.denx.de/mailman/listinfo/u-boot


Re: [U-Boot] [ubi] Please pull git://www.denx.de/git/u-boot-ubi.git

2008-12-12 Thread Wolfgang Denk
Dear Stefan Roese,

In message <200812091009.47977...@denx.de> you wrote:
> The following changes since commit 13d36ec849785453953d00220b2c7dc66644a3c2:
>   Wolfgang Denk (1):
> Merge branch 'master' of git://git.denx.de/u-boot-at91
> 
> are available in the git repository at:
> 
>   git://www.denx.de/git/u-boot-ubi.git master
> 
> Stefan Roese (3):
>   MTD: Fix problem based on non-working relocation (list head 
> mtd_partitions)
>   UBI: Enable re-initializing of the "ubi part" command
>   UBI: Fix size parsing in "ubi create"
> 
>  common/cmd_ubi.c|   13 -
>  drivers/mtd/mtdpart.c   |   10 +-
>  drivers/mtd/ubi/build.c |1 +
>  include/ubi_uboot.h |1 +
>  4 files changed, 23 insertions(+), 2 deletions(-)

Aplied, 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
Common sense and a sense of humor  are  the  same  thing,  moving  at
different speeds.  A sense of humor is just common sense, dancing.
- Clive James
___
U-Boot mailing list
U-Boot@lists.denx.de
http://lists.denx.de/mailman/listinfo/u-boot


Re: [U-Boot] [ubi] Please pull git://www.denx.de/git/u-boot-ubi.git

2008-12-12 Thread Wolfgang Denk
Dear Stefan Roese,

In message <200812101307.41102...@denx.de> you wrote:
> Hi Wolfgang,
> 
> this is an updated pull-request for the UBI repository. I added the latest 2 
> small 
> patches.
> 
> The following changes since commit 13d36ec849785453953d00220b2c7dc66644a3c2:
>   Wolfgang Denk (1):
> Merge branch 'master' of git://git.denx.de/u-boot-at91
> 
> are available in the git repository at:
> 
>   git://www.denx.de/git/u-boot-ubi.git master
> 
> Stefan Roese (5):
>   MTD: Fix problem based on non-working relocation (list head 
> mtd_partitions)
>   UBI: Enable re-initializing of the "ubi part" command
>   UBI: Fix size parsing in "ubi create"
>   UBI: Return -ENOMEM upon failing malloc
>   UBI: Set ubi_dev.type back to DEV_TYPE_NONE upon failing initialization
> 
>  common/cmd_ubi.c|   14 +-
>  drivers/mtd/mtdpart.c   |   10 +-
>  drivers/mtd/ubi/build.c |6 --
>  include/ubi_uboot.h |1 +
>  4 files changed, 27 insertions(+), 4 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
Unix is like a toll road on which you have to stop every 50  feet  to
pay another nickel. But hey! You only feel 5 cents poorer each time.
 - Larry Wall in <1992aug13.192357.15...@netlabs.com>
___
U-Boot mailing list
U-Boot@lists.denx.de
http://lists.denx.de/mailman/listinfo/u-boot


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

2008-12-12 Thread Wolfgang Denk
Dear Anatolij Gustschin,

In message <493eac54.9040...@denx.de> you wrote:
> 
> The following changes since commit 13d36ec849785453953d00220b2c7dc66644a3c2:
>   Wolfgang Denk (1):
> Merge branch 'master' of git://git.denx.de/u-boot-at91
> 
> are available in the git repository at:
> 
>   git://git.denx.de/u-boot-video.git master
> 
> Anatolij Gustschin (1):
>   video: fix FADS823 and RRvision compiling issues
> 
>  cpu/mpc8xx/video.c |2 --
>  1 files changed, 0 insertions(+), 2 deletions(-)

Done, 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
It is impractical for  the  standard  to  attempt  to  constrain  the
behavior  of code that does not obey the constraints of the standard.
  - Doug Gwyn
___
U-Boot mailing list
U-Boot@lists.denx.de
http://lists.denx.de/mailman/listinfo/u-boot


Re: [U-Boot] Pull request - microblaze

2008-12-12 Thread Wolfgang Denk
Dear Michal Simek,

In message <493f829d.9000...@monstr.eu> you wrote:
> 
> please pull these changes.
> 
> 
> The following changes since commit 97a24a78ee6f34b89b821cb70eda1cf34aa11d97:
>   Jerry Van Baren (1):
> libfdt: Fix redefined uintptr_t warning for USE_HOSTCC
> 
> are available in the git repository at:
> 
>   git://www.denx.de/git/u-boot-microblaze.git master
> 
> Michal Simek (4):
>   microblaze: Set up relocation is done
>   microblaze: Fix ml401 uart16550 setting
>   microblaze: Remove CONFIG_LIBFDT due to error in common files
>   microblaze: Remove XUPV2P board
> 
>  MAINTAINERS   |1 -
>  MAKEALL   |1 -
>  Makefile  |5 -
>  board/xilinx/xupv2p/Makefile  |   50 
>  board/xilinx/xupv2p/config.mk |   32 -
>  board/xilinx/xupv2p/u-boot.lds|   68 ---
>  board/xilinx/xupv2p/xparameters.h |   58 --
>  board/xilinx/xupv2p/xupv2p.c  |   49 
>  include/configs/ml401.h   |   18 ++--
>  include/configs/xupv2p.h  |  227 
> -
>  lib_microblaze/board.c|1 +
>  11 files changed, 11 insertions(+), 499 deletions(-)
>  delete mode 100644 board/xilinx/xupv2p/Makefile
>  delete mode 100644 board/xilinx/xupv2p/config.mk
>  delete mode 100644 board/xilinx/xupv2p/u-boot.lds
>  delete mode 100644 board/xilinx/xupv2p/xparameters.h
>  delete mode 100644 board/xilinx/xupv2p/xupv2p.c
>  delete mode 100644 include/configs/xupv2p.h

Done, 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
Q: How do you spell "onomatopoeia"?
A: The way it sounds.
___
U-Boot mailing list
U-Boot@lists.denx.de
http://lists.denx.de/mailman/listinfo/u-boot


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

2008-12-12 Thread Wolfgang Denk
Dear Nobuhiro Iwamatsu,

In message <20081210232023.5dd0283d.iwama...@nigauri.org> you wrote:
> 
> are available in the git repository at:
> 
>   git://git.denx.de/u-boot-sh.git master
> 
> Jean-Christophe PLAGNIOL-VILLARD (3):
>   sh: fix rsk7203 and MigoR out of tree build
>   sh: r2dplus/lowlevel_init: coding style fix
>   sh: r2dplus fix register access
> 
> Nobuhiro Iwamatsu (6):
>   sh: Update SuperH serial driver
>   sh: Update ms7722se board config
>   sh: Migo-R: Update BSC value
>   sh: Update sh timer function
>   sh: Changed value of CACHE_OC_NUM_ENTRIES and CACHE_OC_WAY_SHIFT
>   sh: Update sh2/sh2a timer
> 
>  Makefile  |4 +-
>  board/renesas/MigoR/lowlevel_init.S   |   32 +-
>  board/renesas/r2dplus/lowlevel_init.S |   44 +++---
>  cpu/sh2/Makefile  |2 +-
>  cpu/sh3/Makefile  |2 +-
>  cpu/sh3/time.c|  103 
> -
>  cpu/sh4/Makefile  |2 +-
>  cpu/sh4/time.c|   98 ---
>  drivers/pci/pci_sh7751.c  |4 +-
>  drivers/serial/serial_sh.c|2 +-
>  include/asm-sh/cpu_sh4.h  |7 ++
>  include/configs/ms7722se.h|3 +
>  lib_sh/Makefile   |6 ++-
>  lib_sh/time.c |   83 +--
>  cpu/sh2/time.c => lib_sh/time_sh2.c   |   16 --
>  15 files changed, 138 insertions(+), 270 deletions(-)
>  delete mode 100644 cpu/sh3/time.c
>  delete mode 100644 cpu/sh4/time.c
>  rename cpu/sh2/time.c => lib_sh/time_sh2.c (91%)

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
Without freedom of choice there is no creativity.
-- Kirk, "The return of the Archons", stardate 3157.4
___
U-Boot mailing list
U-Boot@lists.denx.de
http://lists.denx.de/mailman/listinfo/u-boot


Re: [U-Boot] [GIT PULL] MIPS updates

2008-12-12 Thread Wolfgang Denk
Dear Shinya Kuribayashi,

In message <493fda82.7000...@ruby.dti.ne.jp> you wrote:
> 
> The following changes since commit 2145188bea2df8f2b47a87ec3071b55027e8d0ae:
>   Ben Warren (1):
> Fix compile error in building MBX860T.
> 
> are available in the git repository at:
> 
>   git://git.denx.de/u-boot-mips.git master
> 
> Stefan Roese (4):
>   MIPS: Add onenand_init() to board.c and move nand_init()
>   MIPS: Add board_early_init_f() to init_sequence
>   MIPS: Add CONFIG_SKIP_LOWLEVEL_INIT
>   MIPS: Flush data cache upon relocation
> 
>  cpu/mips/start.S |   32 +---
>  lib_mips/board.c |   25 -
>  2 files changed, 45 insertions(+), 12 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
Perfection is reached, not when there is no longer anything  to  add,
but when there is no longer anything to take away.
   - Antoine de Saint-Exupery
___
U-Boot mailing list
U-Boot@lists.denx.de
http://lists.denx.de/mailman/listinfo/u-boot


Re: [U-Boot] [ppc4xx] Please pull git://www.denx.de/git/u-boot-ppc4xx.git

2008-12-12 Thread Wolfgang Denk
Dear Stefan Roese,

In message <200812101723.27445...@denx.de> you wrote:
> The following changes since commit 2145188bea2df8f2b47a87ec3071b55027e8d0ae:
>   Ben Warren (1):
> Fix compile error in building MBX860T.
> 
> are available in the git repository at:
> 
>   git://www.denx.de/git/u-boot-ppc4xx.git master
> 
> Matthias Fuchs (3):
>   ppc4xx: Update TEXT_BASE for CPCI405 boards
>   ppc4xx: Fix Ethernet PHY LED configuration on PMC440 boards
>   ppc4xx: Disable EEPROM write access on PMC440 boards
> 
> Stefan Roese (1):
>   ppc4xx: Remove some features from ALPR to fit into 256k again
> 
>  Makefile|5 +
>  board/esd/cpci405/config.mk |6 +-
>  board/esd/pmc440/pmc440.c   |   24 +++-
>  include/configs/CPCI405.h   |6 +++---
>  include/configs/alpr.h  |5 +
>  5 files changed, 25 insertions(+), 21 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
"The glory of creation is in its infinite diversity." "And in the way
our differences combine to create meaning and beauty."
-- Dr. Miranda Jones and Spock, "Is There in Truth No Beauty?",
   stardate 5630.8
___
U-Boot mailing list
U-Boot@lists.denx.de
http://lists.denx.de/mailman/listinfo/u-boot


[U-Boot] reducing u-boot.bin size

2008-12-12 Thread Fahd Abidi
Hello,
 
I am trying to reduce the size of the u-boot.bin file so that it fits
into a 256KB promjet. I disabled all the drivers that I didn't need and
have just kept the NOR driver but the binary size is still 512KB, it
seems to be a hard number coded in somewhere. I would have thought this
was the size of the .data section set somewhere in the linker script but
it does not appear to be so. Does anyone know where the image size can
be altered from?
 
Thanks,

Fahd Abidi
Sr. Field Application Engineer
Ultimate Solutions, Inc.

Your Single Source for Professional Development Tools and Embedded
Solutions
Ph: 978-455-3383 x255
Fx: 978-926-3091
Email: fab...@ultsol.com
Visit: http://www.ultsol.com   

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


Re: [U-Boot] FPGA programming driver architecture

2008-12-12 Thread Hugo Villeneuve
On Sat, 13 Dec 2008 00:10:26 +0100
Wolfgang Denk  wrote:

> Dear Hugo Villeneuve,
> 
> In message <20081212150047.e3dbbbef.h...@hugovil.com> you wrote:
> >
> > I have written some code to program a FPGA in Linux, for two
> > different types of boards: one uses a serial interface (SPI) and
> > the second a parallel interface. I have been able to sucessfully
> > program both boards. I'm now trying to clean my code and make it
> > more generic, as well as better in line with the Linux driver
> > model. I would also like to include it in the mainline kernel if
> > there is interest.
> 
> Your lines are way too long, and discussing Linux kernel code is off
> topic here.

You probably have missed the email I sent 30 seconds after having sent
the first one stating it was the wrong list. Please read your emails
carefully next time.

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


[U-Boot] [RFC][PATCH] Code Clean-up (weak functions)

2008-12-12 Thread Graeme Russ
This patch makes all definitions, declarations and usages of weak functions
consistent.

Signed-off-by: Graeme Russ 
---

WARNING: This patch hits a _lot_ of arches - Please

The following patch applies the following rules:

 - All functions are defined without __attribute__((weak)) in header files

 - All weak functions are declared as __function() in the source file with
   funtion() __attribute__((weak, alias("function"))); on the line immediately
   after the closing brace of __function() - for example:
 void __do_something (args)
 {
 ...some code...
 }
 do_something(args) __atttribute__((weak, alias("__do_something")));

- If the weak alias decleration exceeds 80 columns, the __attribute__ is placed
  on the following line, indented by one tab

- There is no purely weak functions and therfore no longer code like:
if (do_something)
  do_somthing();
  All instances have been replaced by empty functions with an alias. e.g.
 void __do_something (args) {}
 do_something(args) __atttribute__((weak, alias("__do_something")));

 board/incaip/incaip.c  |2 +-
 board/purple/purple.c  |2 +-
 board/tb0229/tb0229.c  |2 +-
 .../xilinx/ppc405-generic/xilinx_ppc405_generic.c  |1 -
 common/cmd_boot.c  |6 ++--
 common/cmd_bootm.c |6 +++-
 common/cmd_elf.c   |4 +-
 common/cmd_ide.c   |6 ++--
 common/cmd_log.c   |3 +-
 common/main.c  |3 +-
 common/serial.c|3 +-
 cpu/at32ap/cpu.c   |6 +++-
 cpu/blackfin/cpu.h |2 +-
 cpu/blackfin/reset.c   |6 +++-
 cpu/mips/cpu.c |8 +++---
 cpu/mpc8xxx/ddr/util.c |5 ++-
 cpu/ppc4xx/44x_spd_ddr.c   |3 +-
 cpu/ppc4xx/44x_spd_ddr2.c  |3 +-
 cpu/ppc4xx/4xx_pci.c   |3 +-
 cpu/ppc4xx/4xx_pcie.c  |2 +-
 cpu/ppc4xx/fdt.c   |3 +-
 drivers/mtd/cfi_flash.c|   24 +--
 drivers/net/mcfmii.c   |3 +-
 include/asm-avr32/arch-at32ap700x/clk.h|2 +-
 include/asm-mips/reboot.h  |2 +-
 include/common.h   |2 +-
 lib_arm/board.c|   21 +++-
 lib_ppc/board.c|6 +++-
 lib_ppc/interrupts.c   |4 +-
 29 files changed, 86 insertions(+), 57 deletions(-)

diff --git a/board/incaip/incaip.c b/board/incaip/incaip.c
index 3b30970..3ee3ac9 100644
--- a/board/incaip/incaip.c
+++ b/board/incaip/incaip.c
@@ -31,7 +31,7 @@

 extern uint incaip_get_cpuclk(void);

-void _machine_restart(void)
+void machine_restart(void)
 {
*INCA_IP_WDT_RST_REQ = 0x3f;
 }
diff --git a/board/purple/purple.c b/board/purple/purple.c
index 54bef65..c243487 100644
--- a/board/purple/purple.c
+++ b/board/purple/purple.c
@@ -54,7 +54,7 @@ extern intasc_serial_getc (void);
 extern int asc_serial_tstc (void);
 extern voidasc_serial_setbrg   (void);

-void _machine_restart(void)
+void machine_restart(void)
 {
void (*f)(void) = (void *) 0xbfc0;

diff --git a/board/tb0229/tb0229.c b/board/tb0229/tb0229.c
index d3f05b2..f74573b 100644
--- a/board/tb0229/tb0229.c
+++ b/board/tb0229/tb0229.c
@@ -16,7 +16,7 @@
 #include 
 #include 

-void _machine_restart(void)
+void machine_restart(void)
 {
void (*f)(void) = (void *) 0xbfc0;

diff --git a/board/xilinx/ppc405-generic/xilinx_ppc405_generic.c 
b/board/xilinx/ppc405-generic/xilinx_ppc405_generic.c
index 9bd1770..57ffdc8 100644
--- a/board/xilinx/ppc405-generic/xilinx_ppc405_generic.c
+++ b/board/xilinx/ppc405-generic/xilinx_ppc405_generic.c
@@ -25,7 +25,6 @@ ulong __get_PCI_freq(void)
 {
return 0;
 }
-
 ulong get_PCI_freq(void) __attribute__((weak, alias("__get_PCI_freq")));

 int __board_pre_init(void)
diff --git a/common/cmd_boot.c b/common/cmd_boot.c
index 6024ffe..7d77b8d 100644
--- a/common/cmd_boot.c
+++ b/common/cmd_boot.c
@@ -28,12 +28,12 @@
 #include 
 #include 

-/* Allow ports to override the default behavior */
-__attribute__((weak))
-unsigned long do_go_exec (ulong (*entry)(int, char *[]), int argc, char 
*argv[])
+unsigned long __do_go_exec (ulong (*entry)(int, char *[]), int argc, char 
*argv[])
 {
return entry (argc, argv);
 }
+unsigned long do_go_exec (ulong (*entry)(int, char *[]), int argc, char 
*argv[])
+   __attribute__((weak, alias