Skip to contentSkip to conversation

Add Highbank platform

PATCH Superseded Rob Herring 5 participants 42 messages Jun 28, 2011 – Oct 24, 2011

Subsystems (3)
lore
Share & tools
lore
#0 lore raw

v4 cover Add Highbank platform

From: Rob Herring <[email protected]>

This series enables non-PCI AHCI controllers and adds support for Calxeda Highbank platform which uses the AHCI changes.

Changes from v3:
- Added Highbank to MAINTAINERS
- Added back patch to fix CONFIG_SKIP_LOWLEVEL_INIT (mistakenly dropped from v2)

Wolfgang, Albert,

Can you apply these to your trees for v2011.09? All review comments have been addressed.

Rob

Rob Herring (6):
ARM: add missing CONFIG_SKIP_LOWLEVEL_INIT for armv7
ARM: Add Calxeda Highbank platform
arm: add __ilog2 function
scsi/ahci: ata id little endian fix scsi/ahci: add support for non-PCI controllers
ARM: highbank: Add AHCI support

 MAINTAINERS                           |    4 +
 arch/arm/cpu/armv7/highbank/Makefile  |   46 ++++++++++++
 arch/arm/cpu/armv7/highbank/config.mk |    4 +
 arch/arm/cpu/armv7/highbank/timer.c   |  124 +++++++++++++++++++++++++++++++++
 arch/arm/cpu/armv7/start.S            |    2 +
 arch/arm/include/asm/bitops.h         |    9 +++
 board/highbank/Makefile               |   49 +++++++++++++
 board/highbank/highbank.c             |   58 +++++++++++++++
 boards.cfg                            |    1 +
 common/cmd_scsi.c                     |    6 +-
 drivers/block/ahci.c                  |   72 ++++++++++++++++---
 include/ahci.h                        |    4 +
 include/configs/highbank.h            |  112 +++++++++++++++++++++++++++++
 include/scsi.h                        |    1 +
 14 files changed, 480 insertions(+), 12 deletions(-)
 create mode 100644 arch/arm/cpu/armv7/highbank/Makefile
 create mode 100644 arch/arm/cpu/armv7/highbank/config.mk
 create mode 100644 arch/arm/cpu/armv7/highbank/timer.c
 create mode 100644 board/highbank/Makefile
 create mode 100644 board/highbank/highbank.c
 create mode 100644 include/configs/highbank.h
Signature · 1 line
1.7.4.1
#1 lore raw

PATCH v4 1/6 ARM: add missing CONFIG_SKIP_LOWLEVEL_INIT for armv7

From: Rob Herring <[email protected]>

cpu_init_crit can be skipped, but the code is still enabled requiring a platform to supply lowlevel_init.

Cc Albert ARIBAUD <[email protected]>
---
 arch/arm/cpu/armv7/start.S |    2 ++
 1 files changed, 2 insertions(+), 0 deletions(-)
arch/arm/cpu/armv7/start.S +2 -0
index d91ae12..ec54125 100644
@@ -275,6 +275,7 @@ _rel_dyn_end_ofs:
 _dynsym_start_ofs:
 	.word __dynsym_start - _start
 
+#ifndef CONFIG_SKIP_LOWLEVEL_INIT
 /*************************************************************************
  *
  * CPU_init_critical registers
@@ -311,6 +312,7 @@ cpu_init_crit:
 	bl	lowlevel_init		@ go setup pll,mux,memory
 	mov	lr, ip			@ restore link
 	mov	pc, lr			@ back to my caller
+#endif
 /*
  *************************************************************************
  *
Signature · 1 line
1.7.4.1
#2 lore raw

PATCH v4 2/6 ARM: Add Calxeda Highbank platform

In reply to Rob Herring

From: Rob Herring <[email protected]>

Add basic support for Calxeda Highbank platform. Only minimal support to boot is included.

---
 MAINTAINERS                           |    4 +
 arch/arm/cpu/armv7/highbank/Makefile  |   46 ++++++++++++
 arch/arm/cpu/armv7/highbank/config.mk |    4 +
 arch/arm/cpu/armv7/highbank/timer.c   |  124 +++++++++++++++++++++++++++++++++
 board/highbank/Makefile               |   49 +++++++++++++
 board/highbank/highbank.c             |   49 +++++++++++++
 boards.cfg                            |    1 +
 include/configs/highbank.h            |  101 +++++++++++++++++++++++++++
 8 files changed, 378 insertions(+), 0 deletions(-)
 create mode 100644 arch/arm/cpu/armv7/highbank/Makefile
 create mode 100644 arch/arm/cpu/armv7/highbank/config.mk
 create mode 100644 arch/arm/cpu/armv7/highbank/timer.c
 create mode 100644 board/highbank/Makefile
 create mode 100644 board/highbank/highbank.c
 create mode 100644 include/configs/highbank.h
MAINTAINERS +4 -0
index 2bba7b4..515347d 100644
@@ -225,6 +225,10 @@ Wolfgang Grandegger <[email protected]>
 	IPHASE4539	MPC8260
 	SCM		MPC8260
 
+Rob Herring <[email protected]>
+
+	highbank	highbank
+
 Klaus Heydeck <[email protected]>
 
 	KUP4K		MPC855
arch/arm/cpu/armv7/highbank/Makefile new file +46 -0

46 lines not on this page · raw message

arch/arm/cpu/armv7/highbank/config.mk new file +4 -0
new file mode 100644
index 0000000..5ed5c39
@@ -0,0 +1,4 @@
+STANDALONE_LOAD_ADDR = 0x100000
+
+PLATFORM_CPPFLAGS += -march=armv7-a
+
arch/arm/cpu/armv7/highbank/timer.c new file +124 -0

124 lines not on this page · raw message

board/highbank/Makefile new file +49 -0

49 lines not on this page · raw message

board/highbank/highbank.c new file +49 -0

49 lines not on this page · raw message

boards.cfg +1 -0
index dfefc3f..b7eda53 100644
@@ -135,6 +135,7 @@ omap5912osk                  arm         arm926ejs   -                   ti
 edminiv2                     arm         arm926ejs   -                   LaCie          orion5x
 dkb			     arm         arm926ejs   -                   Marvell        pantheon
 ca9x4_ct_vxp                 arm         armv7       vexpress            armltd
+highbank                     arm         armv7       highbank            -              highbank
 efikamx                      arm         armv7       efikamx             -              mx5		mx51evk:IMX_CONFIG=board/efikamx/imximage.cfg
 mx51evk                      arm         armv7       mx51evk             freescale      mx5		mx51evk:IMX_CONFIG=board/freescale/mx51evk/imximage.cfg
 mx53evk                      arm         armv7       mx53evk             freescale      mx5		mx53evk:IMX_CONFIG=board/freescale/mx53evk/imximage.cfg
include/configs/highbank.h new file +101 -0

101 lines not on this page · raw message

Signature · 1 line
1.7.4.1
#3 lore raw

PATCH v4 3/6 arm: add __ilog2 function

In reply to Rob Herring

From: Rob Herring <[email protected]>

Add __ilog2 function for ARM. Needed for ahci.c

Cc Albert ARIBAUD <[email protected]>
---
 arch/arm/include/asm/bitops.h |    9 +++++++++
 1 files changed, 9 insertions(+), 0 deletions(-)
arch/arm/include/asm/bitops.h +9 -0
index 270f163..0420182 100644
@@ -106,6 +106,15 @@ static inline int test_bit(int nr, const void * addr)
     return ((unsigned char *) addr)[nr >> 3] & (1U << (nr & 7));
 }
 
+extern __inline__ int __ilog2(unsigned int x)
+{
+	int ret;
+
+	asm("clz\t%0, %1" : "=r" (ret) : "r" (x));
+	ret = 31 - ret;
+	return ret;
+}
+
 /*
  * ffz = Find First Zero in word. Undefined if no zero exists,
  * so code should check against ~0UL first..
Signature · 1 line
1.7.4.1
#4 lore raw

PATCH v4 3/6 arm: add __ilog2 function

Dear Rob Herring,

Quoted 15 lines · In message <[email protected]> you wrote:

From: Rob Herring <[email protected]>

Add __ilog2 function for ARM. Needed for ahci.c

Cc Albert ARIBAUD <[email protected]>
---
 arch/arm/include/asm/bitops.h |    9 +++++++++
 1 files changed, 9 insertions(+), 0 deletions(-)
arch/arm/include/asm/bitops.h +0 -0
index 270f163..0420182 100644

arch/arm/include/asm/bitops.h static inline int test_bit(int nr, const void * addr) · line 109

Quoted 4 lines
arch/arm/include/asm/bitops.h +1 -0
@@ -106,6 +106,15 @@ static inline int test_bit(int nr, const void * addr)
     return ((unsigned char *) addr)[nr >> 3] & (1U << (nr & 7));
 }
 
+extern __inline__ int __ilog2(unsigned int x)

checkpatch says: WARNING: plain inline is preferred over __inline__

Best regards,

Wolfgang Denk

Signature · 5 lines
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: wd at denx.de
"The X11 source code style is ATROCIOUS and should not be used  as  a
model."                                                   - Doug Gwyn
#5 lore raw

PATCH v4 3/6 arm: add __ilog2 function

Wolfgang,

Quoted 21 lines · Wolfgang Denk

Dear Rob Herring,

Quoted 18 lines · In message <[email protected]> you wrote:

From: Rob Herring <[email protected]>

Add __ilog2 function for ARM. Needed for ahci.c

Cc Albert ARIBAUD <[email protected]>
---
 arch/arm/include/asm/bitops.h |    9 +++++++++
 1 files changed, 9 insertions(+), 0 deletions(-)
arch/arm/include/asm/bitops.h +0 -0
index 270f163..0420182 100644
@@ -106,6 +106,15 @@ static inline int test_bit(int nr, const void * addr)
     return ((unsigned char *) addr)[nr >> 3] & (1U << (nr & 7));
 }
 
Quoted 4 lines

arch/arm/include/asm/bitops.h static inline int test_bit(int nr, const void * addr) · line 109

Quoted 1 line
arch/arm/include/asm/bitops.h +1 -0
+extern __inline__ int __ilog2(unsigned int x)

checkpatch says: WARNING: plain inline is preferred over __inline__

Sorry about this. I thought I was running checkpatch, but there was a problem in my script I used and it was failing silently.

Rob

#6 lore raw

PATCH 3/6 arm: add __ilog2 function

In reply to Rob Herring

Hi Rob,

Quoted 15 lines · Rob Herring

From: Rob Herring<[email protected]>

Add __ilog2 function for ARM. Needed for ahci.c

Cc Albert ARIBAUD<[email protected]>
---
  arch/arm/include/asm/bitops.h |    9 +++++++++
  1 files changed, 9 insertions(+), 0 deletions(-)
arch/arm/include/asm/bitops.h +0 -0
index 270f163..0420182 100644

arch/arm/include/asm/bitops.h static inline int test_bit(int nr, const void * addr) · line 113

Quoted 8 lines
arch/arm/include/asm/bitops.h +5 -0
@@ -106,6 +106,15 @@ static inline int test_bit(int nr, const void * addr)
      return ((unsigned char *) addr)[nr>>  3]&  (1U<<  (nr&  7));
  }
 
+extern __inline__ int __ilog2(unsigned int x)
+{
+	int ret;
+
+	asm("clz\t%0, %1" : "=r" (ret) : "r" (x));

I tried doing the same sometime back for the same need. I had to abandon it because CLZ seems to be added only in ARMv5. And at least one ARMv7 SoC uses -march=armv4 while building.

best regards,
Aneesh

#7 lore raw

PATCH v4 3/6 arm: add __ilog2 function

Dear Aneesh V,

Quoted 4 lines · In message <[email protected]> you wrote:

I tried doing the same sometime back for the same need. I had to abandon it because CLZ seems to be added only in ARMv5. And at least one ARMv7 SoC uses -march=armv4 while building.

Does this setting make any sense, or should we fix that?

Best regards,

Wolfgang Denk

Signature · 5 lines
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: wd at denx.de
Time is fluid ... like a river with currents, eddies, backwash.
	-- Spock, "The City on the Edge of Forever", stardate 3134.0
#8 lore raw

PATCH 3/6 arm: add __ilog2 function

Dear Wolfgang,

Quoted 9 lines · Wolfgang Denk

Dear Aneesh V,

Quoted 4 lines · In message<[email protected]> you wrote:

I tried doing the same sometime back for the same need. I had to abandon it because CLZ seems to be added only in ARMv5. And at least one ARMv7 SoC uses -march=armv4 while building.

Does this setting make any sense, or should we fix that?

Looks like it makes sense. Here is what the comment says in arch/arm/cpu/armv7/tegra2/config.mk

# Use ARMv4 for Tegra2 - initial code runs on the AVP, which is an ARM7TDI. PLATFORM_CPPFLAGS += -march=armv4

Even if we could fix this, Rob is adding the API for all 'arm', which I feel is not correct.

best regards,
Aneesh

#9 lore raw

PATCH v4 3/6 arm: add __ilog2 function

Dear Aneesh V,

Quoted 6 lines · In message <[email protected]> you wrote:

Looks like it makes sense. Here is what the comment says in arch/arm/cpu/armv7/tegra2/config.mk

# Use ARMv4 for Tegra2 - initial code runs on the AVP, which is an ARM7TDI. PLATFORM_CPPFLAGS += -march=armv4

I'm not sure what "initial code" here means - all of U-Boot?

Quoted 2 lines

Even if we could fix this, Rob is adding the API for all 'arm', which I feel is not correct.

Agreed. But then, it's the overwhelming majority that could use this code.

Best regards,

Wolfgang Denk

Signature · 7 lines
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: wd at denx.de
It's certainly  convenient  the  way  the  crime  (or  condition)  of
stupidity   carries   with   it  its  own  punishment,  automatically
admisistered without remorse, pity, or prejudice. :-)
         -- Tom Christiansen in <[email protected]>
#10 lore raw

PATCH v4 3/6 arm: add __ilog2 function

Le 05/07/2011 13:17, Wolfgang Denk a ?crit :

Quoted 10 lines

Dear Aneesh V,

Quoted 6 lines · In message<[email protected]> you wrote:

Looks like it makes sense. Here is what the comment says in arch/arm/cpu/armv7/tegra2/config.mk

# Use ARMv4 for Tegra2 - initial code runs on the AVP, which is an ARM7TDI. PLATFORM_CPPFLAGS += -march=armv4

Quoted 7 lines

I'm not sure what "initial code" here means - all of U-Boot?

Quoted 2 lines

Even if we could fix this, Rob is adding the API for all 'arm', which I feel is not correct.

Agreed. But then, it's the overwhelming majority that could use this code.

Maybe we could condition this __ilog2 definition on whether we build for armv4 (and below) or armv5t (or above)?

Quoted 3 lines

Best regards,

Wolfgang Denk

Amicalement,

Signature · 1 line
Albert.
#11 lore raw

PATCH v2 1/1 arm: add __ilog2 function

In reply to Rob Herring

From: Rob Herring <[email protected]>

Add __ilog2 function for ARM. Needed for ahci.c

Cc Albert ARIBAUD <[email protected]>

---
Performance here is not critical, so I'm changing this to use the C version.

v2 changes:
- Change __inline__ to inline.
- Use generic_fls function instead of clz asm so it works with ARMv4.

 arch/arm/include/asm/bitops.h |    5 +++++
 1 files changed, 5 insertions(+), 0 deletions(-)
arch/arm/include/asm/bitops.h +5 -0
index 270f163..879e20e 100644
@@ -106,6 +106,11 @@ static inline int test_bit(int nr, const void * addr)
     return ((unsigned char *) addr)[nr >> 3] & (1U << (nr & 7));
 }
 
+static inline int __ilog2(unsigned int x)
+{
+	return generic_fls(x) - 1;
+}
+
 /*
  * ffz = Find First Zero in word. Undefined if no zero exists,
  * so code should check against ~0UL first..
Signature · 1 line
1.7.4.1
#13 lore raw

PATCH v4 4/6 scsi/ahci: ata id little endian fix

In reply to Rob Herring

From: Rob Herring <[email protected]>

The ata id string always needs swapping, not just on BE machines.

---
 drivers/block/ahci.c |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)
drivers/block/ahci.c +1 -1
index a3ca2dc..d431c5a 100644
@@ -468,7 +468,7 @@ static char *ata_id_strcpy(u16 *target, u16 *src, int len)
 {
 	int i;
 	for (i = 0; i < len / 2; i++)
-		target[i] = le16_to_cpu(src[i]);
+		target[i] = swab16(src[i]);
 	return (char *)target;
 }
 
Signature · 1 line
1.7.4.1
#14 lore raw

PATCH v4 5/6 scsi/ahci: add support for non-PCI controllers

In reply to Rob Herring

From: Rob Herring <[email protected]>

Add support for AHCI controllers that are not PCI based.

---
 common/cmd_scsi.c    |    6 +++-
 drivers/block/ahci.c |   70 +++++++++++++++++++++++++++++++++++++++++++------
 include/ahci.h       |    4 +++
 include/scsi.h       |    1 +
 4 files changed, 70 insertions(+), 11 deletions(-)
common/cmd_scsi.c +4 -2
index be4fe74..25a8299 100644
@@ -47,7 +47,8 @@
 #define SCSI_DEV_ID  0x5288
 
 #else
-#error no scsi device defined
+#define SCSI_VEND_ID 0
+#define SCSI_DEV_ID  0
 #endif
 
 
@@ -174,7 +175,7 @@ removable:
 		scsi_curr_dev = -1;
 }
 
-
+#ifdef CONFIG_PCI
 void scsi_init(void)
 {
 	int busdevfunc;
@@ -192,6 +193,7 @@ void scsi_init(void)
 	scsi_low_level_init(busdevfunc);
 	scsi_scan(1);
 }
+#endif
 
 block_dev_desc_t * scsi_get_dev(int dev)
 {
drivers/block/ahci.c +61 -9

149 lines not on this page · raw message

include/ahci.h +4 -0
index 0c6bbbd..c0a0a47 100644
@@ -25,6 +25,8 @@
 #ifndef _AHCI_H_
 #define _AHCI_H_
 
+#include <pci.h>
+
 #define AHCI_PCI_BAR		0x24
 #define AHCI_MAX_SG		56 /* hardware max is 64K */
 #define AHCI_CMD_SLOT_SZ	32
@@ -187,4 +189,6 @@ struct ahci_probe_ent {
 	u32	link_port_map; /*linkup port map*/
 };
 
+int ahci_init(u32 base);
+ 
 #endif
include/scsi.h +1 -0
index aaafc9c..c52759c 100644
@@ -185,6 +185,7 @@ void scsi_low_level_init(int busdevfunc);
  * functions residing inside cmd_scsi.c
  */
 void scsi_init(void);
+void scsi_scan(int mode);
 
 
 #define SCSI_IDENTIFY					0xC0  /* not used */
Signature · 1 line
1.7.4.1
#15 lore raw

PATCH v4 5/6 scsi/ahci: add support for non-PCI controllers

Dear Rob Herring,

Quoted 18 lines · In message <[email protected]> you wrote:

From: Rob Herring <[email protected]>

Add support for AHCI controllers that are not PCI based.

---
 common/cmd_scsi.c    |    6 +++-
 drivers/block/ahci.c |   70 +++++++++++++++++++++++++++++++++++++++++++------
 include/ahci.h       |    4 +++
 include/scsi.h       |    1 +
 4 files changed, 70 insertions(+), 11 deletions(-)
common/cmd_scsi.c +0 -0
index be4fe74..25a8299 100644

common/cmd_scsi.c line 52

Quoted 7 lines
common/cmd_scsi.c +2 -1
@@ -47,7 +47,8 @@
 #define SCSI_DEV_ID  0x5288
 
 #else
-#error no scsi device defined
+#define SCSI_VEND_ID 0
+#define SCSI_DEV_ID  0
 #endif

I'm not sure if this is a good idea. Please explain.

Also, checkpatch says:

ERROR: trailing whitespace
WARNING: please, no spaces at the start of a line
#287: FILE: include/ahci.h:193:
+ $

common/cmd_scsi.c static void ahci_print_info(struct ahci_probe_ent *probe_ent) · line 232

Quoted 12 lines
common/cmd_scsi.c +4 -1
+#ifdef CONFIG_PCI
 	pci_read_config_word(pdev, 0x0a, &cc);
 	if (cc == 0x0101)
 		scc_s = "IDE";
@@ -222,7 +227,9 @@ static void ahci_print_info(struct ahci_probe_ent *probe_ent)
 		scc_s = "RAID";
 	else
 		scc_s = "unknown";
-
+#else
+	scc_s = "SATA";
+#endif

Is SATA really the only possible option here?

Quoted 2 lines
common/cmd_scsi.c +2 -0
+int ahci_init(u32 base)
+{

...

Quoted 1 line

+}

Should this always be compiled in?

Best regards,

Wolfgang Denk

Signature · 8 lines
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: wd at denx.de
Ill-chosen abstraction is particularly evident in the design  of  the
ADA  runtime  system.  The  interface to the ADA runtime system is so
opaque that it is impossible to model  or  predict  its  performance,
making it effectively useless for real-time systems.
                              - Marc D.  Donner and David H. Jameson.
#16 lore raw

PATCH 5/6 scsi/ahci: add support for non-PCI controllers

Wolfgang,

Quoted 23 lines · Wolfgang Denk

Dear Rob Herring,

Quoted 20 lines · In message <[email protected]> you wrote:

From: Rob Herring <[email protected]>

Add support for AHCI controllers that are not PCI based.

---
 common/cmd_scsi.c    |    6 +++-
 drivers/block/ahci.c |   70 +++++++++++++++++++++++++++++++++++++++++++------
 include/ahci.h       |    4 +++
 include/scsi.h       |    1 +
 4 files changed, 70 insertions(+), 11 deletions(-)
common/cmd_scsi.c +0 -0
index be4fe74..25a8299 100644
@@ -47,7 +47,8 @@
 #define SCSI_DEV_ID  0x5288
 
Quoted 7 lines

common/cmd_scsi.c line 52

Quoted 5 lines
common/cmd_scsi.c +2 -1
 #else
-#error no scsi device defined
+#define SCSI_VEND_ID 0
+#define SCSI_DEV_ID  0
 #endif

I'm not sure if this is a good idea. Please explain.

This is the PCI ID and is only used here:

common/cmd_scsi.c:183:
busdevfunc=pci_find_device(SCSI_VEND_ID,SCSI_DEV_ID,0); /* get PCI Device ID */

For a non-PCI AHCI controller, there is no id. For PCI, I don't think 0 is a valid vendor ID anyway.

Quoted 8 lines

Also, checkpatch says:

ERROR: trailing whitespace
WARNING: please, no spaces at the start of a line
#287: FILE: include/ahci.h:193:
+ $

Quoted 14 lines

common/cmd_scsi.c static void ahci_print_info(struct ahci_probe_ent *probe_ent) · line 232

Quoted 12 lines
common/cmd_scsi.c +4 -1
+#ifdef CONFIG_PCI
 	pci_read_config_word(pdev, 0x0a, &cc);
 	if (cc == 0x0101)
 		scc_s = "IDE";
@@ -222,7 +227,9 @@ static void ahci_print_info(struct ahci_probe_ent *probe_ent)
 		scc_s = "RAID";
 	else
 		scc_s = "unknown";
-
+#else
+	scc_s = "SATA";
+#endif

Is SATA really the only possible option here?

Well I suppose anything is possible, but for embbedded SOCs with AHCI I've seen, they are SATA only. It's purely informational.

Quoted 7 lines
Quoted 3 lines
common/cmd_scsi.c +2 -0
+int ahci_init(u32 base)
+{

...

Quoted 1 line

+}

Should this always be compiled in?

I can add a config option CONFIG_SCSI_AHCI_PLAT. Perhaps this would be better than using CONFIG_PCI as I suppose you could have non-PCI AHCI controller on a platform with PCI.

Rob

#17 lore raw

PATCH v4 5/6 scsi/ahci: add support for non-PCI controllers

Dear Rob,

Quoted 8 lines · In message <[email protected]> you wrote:
Quoted 7 lines

common/cmd_scsi.c line 52

Quoted 5 lines
common/cmd_scsi.c +2 -1
-#error no scsi device defined
+#define SCSI_VEND_ID 0
+#define SCSI_DEV_ID  0
 #endif

I'm not sure if this is a good idea. Please explain.

Quoted 8 lines

This is the PCI ID and is only used here:

common/cmd_scsi.c:183:
busdevfunc=pci_find_device(SCSI_VEND_ID,SCSI_DEV_ID,0); /* get PCI Device ID */

For a non-PCI AHCI controller, there is no id. For PCI, I don't think 0 is a valid vendor ID anyway.

I think we should rather skip the respective parts of the code instead of inserting invalid vendor IDs.

Quoted 5 lines
Quoted 1 line

Should this always be compiled in?

I can add a config option CONFIG_SCSI_AHCI_PLAT. Perhaps this would be better than using CONFIG_PCI as I suppose you could have non-PCI AHCI controller on a platform with PCI.

Yes, please.

Best regards,

Wolfgang Denk

Signature · 6 lines
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: wd at denx.de
... bacteriological warfare ... hard to believe we were once foolish
enough to play around with that.
	-- McCoy, "The Omega Glory", stardate unknown
#18 lore raw

PATCH v3 1/1 scsi/ahci: add support for non-PCI controllers

In reply to Rob Herring

From: Rob Herring <[email protected]>

Add support for AHCI controllers that are not PCI based.

---
changes in v2:
- fix checkpatch.pl warnings/errors
- fix label indentation
- simplify "sizeof(hd_driveid_t *) * AHCI_MAX_PORTS" to "sizeof(ataid)"
- Add function prototypes for ahci_init and scsi_scan

changes in v3:
- Introduce CONFIG_SCSI_AHCI_PLAT and replace CONFIG_PCI with it in ahci.c
- Make no SCSI_DEV_ID and SCSI_VEND_ID only okay if CONFIG_SCSI_AHCI_PLAT is defined.
- fix checkpatch.pl warnings/errors (again...)

 common/cmd_scsi.c    |    5 ++-
 drivers/block/ahci.c |   70 ++++++++++++++++++++++++++++++++++++++++++++-----
 include/ahci.h       |    4 +++
 include/scsi.h       |    1 +
 4 files changed, 70 insertions(+), 10 deletions(-)
common/cmd_scsi.c +3 -2
index be4fe74..352781b 100644
@@ -46,7 +46,7 @@
 #define SCSI_VEND_ID 0x10b9
 #define SCSI_DEV_ID  0x5288
 
-#else
+#elif !defined(CONFIG_SCSI_AHCI_PLAT)
 #error no scsi device defined
 #endif
 
@@ -174,7 +174,7 @@ removable:
 		scsi_curr_dev = -1;
 }
 
-
+#ifdef CONFIG_PCI
 void scsi_init(void)
 {
 	int busdevfunc;
@@ -192,6 +192,7 @@ void scsi_init(void)
 	scsi_low_level_init(busdevfunc);
 	scsi_scan(1);
 }
+#endif
 
 block_dev_desc_t * scsi_get_dev(int dev)
 {
drivers/block/ahci.c +62 -8

149 lines not on this page · raw message

include/ahci.h +4 -0
index 0c6bbbd..465ea7f 100644
@@ -25,6 +25,8 @@
 #ifndef _AHCI_H_
 #define _AHCI_H_
 
+#include <pci.h>
+
 #define AHCI_PCI_BAR		0x24
 #define AHCI_MAX_SG		56 /* hardware max is 64K */
 #define AHCI_CMD_SLOT_SZ	32
@@ -187,4 +189,6 @@ struct ahci_probe_ent {
 	u32	link_port_map; /*linkup port map*/
 };
 
+int ahci_init(u32 base);
+
 #endif
include/scsi.h +1 -0
index aaafc9c..c52759c 100644
@@ -185,6 +185,7 @@ void scsi_low_level_init(int busdevfunc);
  * functions residing inside cmd_scsi.c
  */
 void scsi_init(void);
+void scsi_scan(int mode);
 
 
 #define SCSI_IDENTIFY					0xC0  /* not used */
Signature · 1 line
1.7.4.1
#19 lore raw

PATCH v3 1/1 scsi/ahci: add support for non-PCI controllers

Dear Rob Herring,

Quoted 20 lines · In message <[email protected]> you wrote:

From: Rob Herring <[email protected]>

Add support for AHCI controllers that are not PCI based.

---
changes in v2:
- fix checkpatch.pl warnings/errors
- fix label indentation
- simplify "sizeof(hd_driveid_t *) * AHCI_MAX_PORTS" to "sizeof(ataid)"
- Add function prototypes for ahci_init and scsi_scan

changes in v3:
- Introduce CONFIG_SCSI_AHCI_PLAT and replace CONFIG_PCI with it in ahci.c
- Make no SCSI_DEV_ID and SCSI_VEND_ID only okay if CONFIG_SCSI_AHCI_PLAT is defined.
- fix checkpatch.pl warnings/errors (again...)

Quoted 5 lines
 common/cmd_scsi.c    |    5 ++-
 drivers/block/ahci.c |   70 ++++++++++++++++++++++++++++++++++++++++++++-----
 include/ahci.h       |    4 +++
 include/scsi.h       |    1 +
 4 files changed, 70 insertions(+), 10 deletions(-)

Applied, thanks.

Best regards,

Wolfgang Denk

Signature · 5 lines
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: wd at denx.de
"To take a significant step forward, you must make a series of finite
improvements." - Donald J. Atwood, General Motors
#20 lore raw

PATCH v4 6/6 ARM: highbank: Add AHCI support

In reply to Rob Herring

From: Rob Herring <[email protected]>

This enables the AHCI driver on highbank platforms.

Cc Wolfgang Denk <[email protected]>
Cc Albert ARIBAUD <[email protected]>
---
 board/highbank/highbank.c  |    9 +++++++++
 include/configs/highbank.h |   11 +++++++++++
 2 files changed, 20 insertions(+), 0 deletions(-)
board/highbank/highbank.c +9 -0
index 9a0fc19..bec3d2f 100644
@@ -16,6 +16,8 @@
  */
 
 #include <common.h>
+#include <ahci.h>
+#include <scsi.h>
 
 #include <asm/sizes.h>
 
@@ -31,6 +33,13 @@ int board_init(void)
 	return 0;
 }
 
+int misc_init_r(void)
+{
+	ahci_init(0xffe08000);
+	scsi_scan(1);
+	return 0;
+}
+
 int dram_init(void)
 {
 	gd->ram_size = SZ_512M;
include/configs/highbank.h +11 -0
index 6e26848..0ae198d 100644
@@ -41,6 +41,15 @@
 #define CONFIG_BAUDRATE			38400
 #define CONFIG_SYS_BAUDRATE_TABLE	{ 9600, 19200, 38400, 57600, 115200 }
 
+#define CONFIG_MISC_INIT_R
+#define CONFIG_SCSI_AHCI
+#define CONFIG_SYS_SCSI_MAX_SCSI_ID	5
+#define CONFIG_SYS_SCSI_MAX_LUN		1
+#define CONFIG_SYS_SCSI_MAX_DEVICE	(CONFIG_SYS_SCSI_MAX_SCSI_ID * \
+					CONFIG_SYS_SCSI_MAX_LUN)
+
+#define CONFIG_DOS_PARTITION
+
 /*
  * Command line configuration.
  */
@@ -52,6 +61,8 @@
 #define CONFIG_CMD_ELF
 #define CONFIG_CMD_MEMORY
 #define CONFIG_CMD_LOADS
+#define CONFIG_CMD_SCSI
+#define CONFIG_CMD_EXT2
 
 #define CONFIG_BOOTDELAY		2
 /*
Signature · 1 line
1.7.4.1
#21 lore raw

v4 cover Add Highbank platform

In reply to Rob Herring

Hi Rob,

Le 28/06/2011 17:39, Rob Herring a ?crit :

Quoted 10 lines

From: Rob Herring<[email protected]>

This series enables non-PCI AHCI controllers and adds support for Calxeda Highbank platform which uses the AHCI changes.

Changes from v3:
- Added Highbank to MAINTAINERS
- Added back patch to fix CONFIG_SKIP_LOWLEVEL_INIT (mistakenly dropped from v2)

Quoted 6 lines

Wolfgang, Albert,

Can you apply these to your trees for v2011.09? All review comments have been addressed.

Rob

Seems like there are no additional comments and most of the code is for ARM without any other custodian involved, so:

... and I'll pull it in u-boot-arm/master once the current ARM pull request is processed.

Amicalement,

Signature · 1 line
Albert.
#22 lore raw

v4 cover Add Highbank platform

Dear Albert ARIBAUD,

Quoted 2 lines · In message <[email protected]> you wrote:

Seems like there are no additional comments and most of the code is for

There are not much additional comments because Rob's patches should all be ignored, or do you have the time to find out which of this versions is what, and what he actually changed?

It seems he did not even run checkpatch.

Quoted 5 lines

... and I'll pull it in u-boot-arm/master once the current ARM pull

request is processed.

I'm not sure if this is a good idea.

Best regards,

Wolfgang Denk

Signature · 6 lines
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: wd at denx.de
egrep patterns are full regular expressions; it uses a fast  determi-
nistic algorithm that sometimes needs exponential space.
- unix manuals
#23 lore raw

v4 cover Add Highbank platform

Hi Wolfgang,

Le 04/07/2011 12:28, Wolfgang Denk a ?crit :

Quoted 12 lines

Dear Albert ARIBAUD,

Quoted 2 lines · In message<[email protected]> you wrote:

Seems like there are no additional comments and most of the code is for

There are not much additional comments because Rob's patches should all be ignored, or do you have the time to find out which of this versions is what, and what he actually changed?

It seems he did not even run checkpatch.

Quoted 7 lines
Quoted 5 lines

... and I'll pull it in u-boot-arm/master once the current ARM pull

request is processed.

I'm not sure if this is a good idea.

Understood.

Quoted 3 lines

Best regards,

Wolfgang Denk

Amicalement,

Signature · 1 line
Albert.
#24 lore raw

v4 cover Add Highbank platform

In reply to Rob Herring

Dear Rob Herring,

Quoted 10 lines · In message <[email protected]> you wrote:

From: Rob Herring <[email protected]>

This series enables non-PCI AHCI controllers and adds support for Calxeda Highbank platform which uses the AHCI changes.

Changes from v3:
- Added Highbank to MAINTAINERS
- Added back patch to fix CONFIG_SKIP_LOWLEVEL_INIT (mistakenly dropped from v2)

Quoted 4 lines

Wolfgang, Albert,

Can you apply these to your trees for v2011.09? All review comments have been addressed.

I have to admit that I dislike the way you are working.

If I'm not wrong, there have been several versions of your patches around, but you repost again and again without any indication that these are reposts, nor what exactly has been changed between versions. For example, I see three different posts here:

06/11 Rob Herring [U-Boot] [PATCH 8/8] ARM: Add Calxeda Highbank platform

             http://article.gmane.org/gmane.comp.boot-loaders.u-boot/101435
06/21 Rob Herring        [U-Boot] [PATCH 1/5] ARM: Add Calxeda Highbank platform
             http://article.gmane.org/gmane.comp.boot-loaders.u-boot/101867
06/28 Rob Herring        [U-Boot] [PATCH 2/6] ARM: Add Calxeda Highbank platform
             http://article.gmane.org/gmane.comp.boot-loaders.u-boot/102124

None of these adheres to the requirements as documented here:
http://www.denx.de/wiki/view/U-Boot/Patches#Sending_updated_patch_versions

Please be aware that NOT documentaing what you changed means that all (potential) reviewers of your code have to spend additional time figuring out what you might have changed, and checking back in the history if you really implemented all earlier review comments. Speaking for me, I must state that being notoriously short of time I am not willing to waste additional time on such postings, so I tend to ignore them.

In short: please stick to the rules if you want your patches to go into mainline.

Best regards,

Wolfgang Denk

Signature · 6 lines
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: wd at denx.de
... bacteriological warfare ... hard to believe we were once foolish
enough to play around with that.
	-- McCoy, "The Omega Glory", stardate unknown
#25 lore raw

v4 cover Add Highbank platform

Wolfgang,

Quoted 43 lines · Wolfgang Denk

Dear Rob Herring,

Quoted 10 lines · In message <[email protected]> you wrote:

From: Rob Herring <[email protected]>

This series enables non-PCI AHCI controllers and adds support for Calxeda Highbank platform which uses the AHCI changes.

Changes from v3:
- Added Highbank to MAINTAINERS
- Added back patch to fix CONFIG_SKIP_LOWLEVEL_INIT (mistakenly dropped from v2)

Quoted 4 lines

Wolfgang, Albert,

Can you apply these to your trees for v2011.09? All review comments have been addressed.

I have to admit that I dislike the way you are working.

If I'm not wrong, there have been several versions of your patches around, but you repost again and again without any indication that these are reposts, nor what exactly has been changed between versions. For example, I see three different posts here:

06/11 Rob Herring [U-Boot] [PATCH 8/8] ARM: Add Calxeda Highbank platform

             http://article.gmane.org/gmane.comp.boot-loaders.u-boot/101435
06/21 Rob Herring        [U-Boot] [PATCH 1/5] ARM: Add Calxeda Highbank platform
             http://article.gmane.org/gmane.comp.boot-loaders.u-boot/101867
06/28 Rob Herring        [U-Boot] [PATCH 2/6] ARM: Add Calxeda Highbank platform
             http://article.gmane.org/gmane.comp.boot-loaders.u-boot/102124

None of these adheres to the requirements as documented here:
http://www.denx.de/wiki/view/U-Boot/Patches#Sending_updated_patch_versions

Please be aware that NOT documentaing what you changed means that all (potential) reviewers of your code have to spend additional time figuring out what you might have changed, and checking back in the history if you really implemented all earlier review comments. Speaking for me, I must state that being notoriously short of time I am not willing to waste additional time on such postings, so I tend to ignore them.

Quoted 3 lines

In short: please stick to the rules if you want your patches to go into mainline.

Sorry about this. I will follow this more closely going forward. Much of the significant change was to the series itself and less so the content itself. I added Highbank support based on you wanting to see a platform use the AHCI changes. Then I dropped the SDHCI changes as another "common" implementation appeared on the list and it will take some time to sort out.

The history for "ARM: Add Calxeda Highbank platform" is:
v2:
- Move SATA and MMC board init to separate patches
- Fix DRAM size setup
v3:
- Add maintainer

I can repost it if you like with the history, but I'd like to get any review comments from you first.

Up until my last post, the following patches have had no comments and no changes. They were only reposted as part of the whole series:

ARM: add missing CONFIG_SKIP_LOWLEVEL_INIT for armv7
arm: add __ilog2 function
scsi/ahci: ata id little endian fix

I have posted v2 of "arm: add __ilog2 function" and v3 of "scsi/ahci:
add support for non-PCI controllers" as a replies to the prior versions.

http://article.gmane.org/gmane.comp.boot-loaders.u-boot/102679
http://article.gmane.org/gmane.comp.boot-loaders.u-boot/102775

Regards,
Rob

#26 lore raw

PATCH v4 1/1 ARM: Add Calxeda Highbank platform

In reply to Rob Herring

From: Rob Herring <[email protected]>

Add basic support for Calxeda Highbank platform. Only minimal support with serial and SATA are included.

---

changes in v4:
- Rebase to current mainline (d50a8f45c9a640b3bcbd0ede91f83c8646cca018)
- Add back SATA support to inital patch as dependencies are all in mainline

changes in v3:
- Add hignbank to MAINTAINERS

changes in v2:
- Set DRAM size to correct value
- split SATA and SD enabling to separate patches

 MAINTAINERS                           |    4 +
 arch/arm/cpu/armv7/highbank/Makefile  |   46 ++++++++++++
 arch/arm/cpu/armv7/highbank/config.mk |    4 +
 arch/arm/cpu/armv7/highbank/timer.c   |  124 +++++++++++++++++++++++++++++++++
 board/highbank/Makefile               |   49 +++++++++++++
 board/highbank/highbank.c             |   58 +++++++++++++++
 boards.cfg                            |    1 +
 include/configs/highbank.h            |  113 ++++++++++++++++++++++++++++++
 8 files changed, 399 insertions(+), 0 deletions(-)
 create mode 100644 arch/arm/cpu/armv7/highbank/Makefile
 create mode 100644 arch/arm/cpu/armv7/highbank/config.mk
 create mode 100644 arch/arm/cpu/armv7/highbank/timer.c
 create mode 100644 board/highbank/Makefile
 create mode 100644 board/highbank/highbank.c
 create mode 100644 include/configs/highbank.h
MAINTAINERS +4 -0
index f8d8559..f06f12d 100644
@@ -219,6 +219,10 @@ Wolfgang Grandegger <[email protected]>
 	IPHASE4539	MPC8260
 	SCM		MPC8260
 
+Rob Herring <[email protected]>
+
+	highbank	highbank
+
 Klaus Heydeck <[email protected]>
 
 	KUP4K		MPC855
arch/arm/cpu/armv7/highbank/Makefile new file +46 -0

46 lines not on this page · raw message

arch/arm/cpu/armv7/highbank/config.mk new file +4 -0
new file mode 100644
index 0000000..5ed5c39
@@ -0,0 +1,4 @@
+STANDALONE_LOAD_ADDR = 0x100000
+
+PLATFORM_CPPFLAGS += -march=armv7-a
+
arch/arm/cpu/armv7/highbank/timer.c new file +124 -0

124 lines not on this page · raw message

board/highbank/Makefile new file +49 -0

49 lines not on this page · raw message

board/highbank/highbank.c new file +58 -0

58 lines not on this page · raw message

boards.cfg +1 -0
index 3e79c82..a2eff60 100644
@@ -140,6 +140,7 @@ omap5912osk                  arm         arm926ejs   -                   ti
 edminiv2                     arm         arm926ejs   -                   LaCie          orion5x
 dkb			     arm         arm926ejs   -                   Marvell        pantheon
 ca9x4_ct_vxp                 arm         armv7       vexpress            armltd
+highbank                     arm         armv7       highbank            -              highbank
 efikamx                      arm         armv7       efikamx             -              mx5		efikamx:IMX_CONFIG=board/efikamx/imximage.cfg
 mx51evk                      arm         armv7       mx51evk             freescale      mx5		mx51evk:IMX_CONFIG=board/freescale/mx51evk/imximage.cfg
 mx53ard                      arm         armv7       mx53ard             freescale      mx5		mx53ard:IMX_CONFIG=board/freescale/mx53ard/imximage_dd3.cfg
include/configs/highbank.h new file +113 -0

113 lines not on this page · raw message

Signature · 1 line
1.7.4.1
#27 lore raw

PATCH v4 1/1 ARM: Add Calxeda Highbank platform

Hi Rob,

Le 04/08/2011 22:22, Rob Herring a ?crit :

Quoted 14 lines

From: Rob Herring<[email protected]>

Add basic support for Calxeda Highbank platform. Only minimal support with serial and SATA are included.

---

changes in v4:
- Rebase to current mainline (d50a8f45c9a640b3bcbd0ede91f83c8646cca018)
- Add back SATA support to inital patch as dependencies are all in mainline

Quoted 6 lines

changes in v3:
- Add hignbank to MAINTAINERS

changes in v2:
- Set DRAM size to correct value
- split SATA and SD enabling to separate patches

Sorry, this does not seem to apply cleanly on top of current u-boot-arm/master. Can you rebase and submit a V5 patch (with history updated, stating that V5 is a rebase only)?

Thanks in advance and apologies for the delay.

Amicalement,

Signature · 1 line
Albert.
#28 lore raw

PATCH v5 1/1 ARM: Add Calxeda Highbank platform

In reply to Rob Herring

From: Rob Herring <[email protected]>

Add basic support for Calxeda Highbank platform. Only minimal support with serial and SATA are included.

---
changes in v5:
- Rebase to current u-boot-arm/master (5557e86bb0793012057d5462976c2a902bc629ac)

changes in v4:
- Rebase to current mainline (d50a8f45c9a640b3bcbd0ede91f83c8646cca018)
- Add back SATA support to inital patch as dependencies are all in mainline

changes in v3:
- Add hignbank to MAINTAINERS

changes in v2:
- Set DRAM size to correct value
- split SATA and SD enabling to separate patches

 MAINTAINERS                           |    4 +
 arch/arm/cpu/armv7/highbank/Makefile  |   46 ++++++++++++
 arch/arm/cpu/armv7/highbank/config.mk |    4 +
 arch/arm/cpu/armv7/highbank/timer.c   |  124 +++++++++++++++++++++++++++++++++
 board/highbank/Makefile               |   49 +++++++++++++
 board/highbank/highbank.c             |   58 +++++++++++++++
 boards.cfg                            |    1 +
 include/configs/highbank.h            |  113 ++++++++++++++++++++++++++++++
 8 files changed, 399 insertions(+), 0 deletions(-)
 create mode 100644 arch/arm/cpu/armv7/highbank/Makefile
 create mode 100644 arch/arm/cpu/armv7/highbank/config.mk
 create mode 100644 arch/arm/cpu/armv7/highbank/timer.c
 create mode 100644 board/highbank/Makefile
 create mode 100644 board/highbank/highbank.c
 create mode 100644 include/configs/highbank.h
MAINTAINERS +4 -0
index f895e9a..c383f6d 100644
@@ -219,6 +219,10 @@ Wolfgang Grandegger <[email protected]>
 	IPHASE4539	MPC8260
 	SCM		MPC8260
 
+Rob Herring <[email protected]>
+
+	highbank	highbank
+
 Klaus Heydeck <[email protected]>
 
 	KUP4K		MPC855
arch/arm/cpu/armv7/highbank/Makefile new file +46 -0

46 lines not on this page · raw message

arch/arm/cpu/armv7/highbank/config.mk new file +4 -0
new file mode 100644
index 0000000..5ed5c39
@@ -0,0 +1,4 @@
+STANDALONE_LOAD_ADDR = 0x100000
+
+PLATFORM_CPPFLAGS += -march=armv7-a
+
arch/arm/cpu/armv7/highbank/timer.c new file +124 -0

124 lines not on this page · raw message

board/highbank/Makefile new file +49 -0

49 lines not on this page · raw message

board/highbank/highbank.c new file +58 -0

58 lines not on this page · raw message

boards.cfg +1 -0
index c31114d..dfa405e 100644
@@ -173,6 +173,7 @@ dkb			     arm         arm926ejs   -                   Marvell        pantheon
 integratorap_cm946es         arm         arm946es    integrator          armltd         -               integratorap
 integratorcp_cm946es         arm         arm946es    integrator          armltd         -               integratorcp
 ca9x4_ct_vxp                 arm         armv7       vexpress            armltd
+highbank                     arm         armv7       highbank            -              highbank
 efikamx                      arm         armv7       efikamx             -              mx5		efikamx:IMX_CONFIG=board/efikamx/imximage.cfg
 mx51evk                      arm         armv7       mx51evk             freescale      mx5		mx51evk:IMX_CONFIG=board/freescale/mx51evk/imximage.cfg
 mx53ard                      arm         armv7       mx53ard             freescale      mx5		mx53ard:IMX_CONFIG=board/freescale/mx53ard/imximage_dd3.cfg
include/configs/highbank.h new file +113 -0

113 lines not on this page · raw message

Signature · 1 line
1.7.4.1
#29 lore raw

PATCH v5 1/1 ARM: Add Calxeda Highbank platform

Hi Rob,

Le 21/08/2011 15:16, Rob Herring a ?crit :

Quoted 9 lines

From: Rob Herring<[email protected]>

Add basic support for Calxeda Highbank platform. Only minimal support with serial and SATA are included.

---

This applies to u-boot-arm/master, with three empty lines at end of new files removed, but the compilation with ELDK 4.2 fails with:

uboot at lilith:~/src/u-boot-arm$ ./MAKEALL highbank Configuring for highbank board...
include/common.h:0: error: bad value (armv7-a) for -march= switch include/common.h:0: error: bad value (armv7-a) for -march= switch lib/asm-offsets.c:1: error: bad value (armv7-a) for -march= switch
make: *** [lib/asm-offsets.s] Erreur 1
arm-linux-size: './u-boot': No such file

--------------------- SUMMARY ---------------------------- Boards compiled: 1
Boards with warnings or errors: 1 ( highbank )
----------------------------------------------------------

Seems like ELDK 4.2 does not know armv7-a. Is it a requirement that this board build with this march flag?

Amicalement,

Signature · 1 line
Albert.
#30 lore raw

PATCH v5 1/1 ARM: Add Calxeda Highbank platform

Quoted 25 lines · Albert ARIBAUD

Hi Rob,

Le 21/08/2011 15:16, Rob Herring a ?crit :

Quoted 10 lines

From: Rob Herring<[email protected]>

Add basic support for Calxeda Highbank platform. Only minimal support with
serial and SATA are included.

---

This applies to u-boot-arm/master, with three empty lines at end of new files removed, but the compilation with ELDK 4.2 fails with:

uboot at lilith:~/src/u-boot-arm$ ./MAKEALL highbank Configuring for highbank board...
include/common.h:0: error: bad value (armv7-a) for -march= switch include/common.h:0: error: bad value (armv7-a) for -march= switch lib/asm-offsets.c:1: error: bad value (armv7-a) for -march= switch
make: *** [lib/asm-offsets.s] Erreur 1
arm-linux-size: './u-boot': No such file

Quoted 8 lines

--------------------- SUMMARY ---------------------------- Boards compiled: 1
Boards with warnings or errors: 1 ( highbank )
----------------------------------------------------------

Seems like ELDK 4.2 does not know armv7-a. Is it a requirement that this board build with this march flag?

With device tree, there are lots of endian conversions. With v7, those conversions are a single inline "rev" instruction vs. 10-20 assembly instructions. Since there is no state maintained in the fdt code, the conversions are done over and over.

So there's not a hard requirement, but it is something I will always set and I imagine others with v7 platforms will want to also. I think Tegra prevents doing this change globally.

Rob

#31 lore raw

PATCH v5 1/1 ARM: Add Calxeda Highbank platform

Albert,

Quoted 35 lines · Rob Herring
Quoted 25 lines · Albert ARIBAUD

Hi Rob,

Le 21/08/2011 15:16, Rob Herring a ?crit :

Quoted 10 lines

From: Rob Herring<[email protected]>

Add basic support for Calxeda Highbank platform. Only minimal support with
serial and SATA are included.

---

This applies to u-boot-arm/master, with three empty lines at end of new files removed, but the compilation with ELDK 4.2 fails with:

uboot at lilith:~/src/u-boot-arm$ ./MAKEALL highbank Configuring for highbank board...
include/common.h:0: error: bad value (armv7-a) for -march= switch include/common.h:0: error: bad value (armv7-a) for -march= switch lib/asm-offsets.c:1: error: bad value (armv7-a) for -march= switch
make: *** [lib/asm-offsets.s] Erreur 1
arm-linux-size: './u-boot': No such file

Quoted 8 lines

--------------------- SUMMARY ---------------------------- Boards compiled: 1
Boards with warnings or errors: 1 ( highbank )
----------------------------------------------------------

Seems like ELDK 4.2 does not know armv7-a. Is it a requirement that this board build with this march flag?

Quoted 9 lines

With device tree, there are lots of endian conversions. With v7, those conversions are a single inline "rev" instruction vs. 10-20 assembly instructions. Since there is no state maintained in the fdt code, the conversions are done over and over.

So there's not a hard requirement, but it is something I will always set and I imagine others with v7 platforms will want to also. I think Tegra prevents doing this change globally.

What do you want to do here?

arch/arm/cpu/armv7/highbank/config.mk can simply be deleted if you don't want to compile with armv7-a.

Rob

#32 lore raw

PATCH v5 1/1 ARM: Add Calxeda Highbank platform

Le 23/08/2011 16:32, Rob Herring a ?crit :

Quoted 48 lines

Albert,

Quoted 35 lines · Rob Herring
Quoted 25 lines · Albert ARIBAUD

Hi Rob,

Le 21/08/2011 15:16, Rob Herring a ?crit :

Quoted 10 lines

From: Rob Herring<[email protected]>

Add basic support for Calxeda Highbank platform. Only minimal support with
serial and SATA are included.

---

This applies to u-boot-arm/master, with three empty lines at end of new files removed, but the compilation with ELDK 4.2 fails with:

uboot at lilith:~/src/u-boot-arm$ ./MAKEALL highbank Configuring for highbank board...
include/common.h:0: error: bad value (armv7-a) for -march= switch include/common.h:0: error: bad value (armv7-a) for -march= switch lib/asm-offsets.c:1: error: bad value (armv7-a) for -march= switch
make: *** [lib/asm-offsets.s] Erreur 1
arm-linux-size: './u-boot': No such file

Quoted 8 lines

--------------------- SUMMARY ---------------------------- Boards compiled: 1
Boards with warnings or errors: 1 ( highbank )
----------------------------------------------------------

Seems like ELDK 4.2 does not know armv7-a. Is it a requirement that this board build with this march flag?

Quoted 9 lines

With device tree, there are lots of endian conversions. With v7, those conversions are a single inline "rev" instruction vs. 10-20 assembly instructions. Since there is no state maintained in the fdt code, the conversions are done over and over.

So there's not a hard requirement, but it is something I will always set and I imagine others with v7 platforms will want to also. I think Tegra prevents doing this change globally.

Quoted 4 lines

What do you want to do here?

arch/arm/cpu/armv7/highbank/config.mk can simply be deleted if you don't want to compile with armv7-a.

Well, it is more a question of which toolchain(s) we want supported in U-Boot. Denx ELDK is one of them I guess :) but now that ELDK 5.0 is out, I don't know if ELDK 4.2 support is still required.

(I am assuming that ELDK5.0 has armv7-a support here. Please correct me if not)

If ELDK4.2 must be supported, then I would suggest creating a configuration option to allow the use of armv7-a ISA, then the arch/arm/cpu/armv7/highbank/config.mk file would select armv7-a ISA based on this option, and then any ARMv7 compatible board that needs or wants to use this ISA can set this config option in its config header file.

If ELDK4.2 support is dropped (at least partially) then no change would be needed.

Wolfgang:, I think that toolchain support for ARM is more your choice than mine.

Quoted 1 line

Rob

Amicalement,

Signature · 1 line
Albert.
#33 lore raw

PATCH v5 1/1 ARM: Add Calxeda Highbank platform

Le 24/08/2011 10:37, Albert ARIBAUD a ?crit :

Quoted 61 lines

Le 23/08/2011 16:32, Rob Herring a ?crit :

Quoted 48 lines

Albert,

Quoted 35 lines · Rob Herring
Quoted 25 lines · Albert ARIBAUD

Hi Rob,

Le 21/08/2011 15:16, Rob Herring a ?crit :

Quoted 10 lines

From: Rob Herring<[email protected]>

Add basic support for Calxeda Highbank platform. Only minimal support with
serial and SATA are included.

---

This applies to u-boot-arm/master, with three empty lines at end of new files removed, but the compilation with ELDK 4.2 fails with:

uboot at lilith:~/src/u-boot-arm$ ./MAKEALL highbank Configuring for highbank board...
include/common.h:0: error: bad value (armv7-a) for -march= switch include/common.h:0: error: bad value (armv7-a) for -march= switch lib/asm-offsets.c:1: error: bad value (armv7-a) for -march= switch
make: *** [lib/asm-offsets.s] Erreur 1
arm-linux-size: './u-boot': No such file

Quoted 8 lines

--------------------- SUMMARY ---------------------------- Boards compiled: 1
Boards with warnings or errors: 1 ( highbank )
----------------------------------------------------------

Seems like ELDK 4.2 does not know armv7-a. Is it a requirement that this board build with this march flag?

Quoted 9 lines

With device tree, there are lots of endian conversions. With v7, those conversions are a single inline "rev" instruction vs. 10-20 assembly instructions. Since there is no state maintained in the fdt code, the conversions are done over and over.

So there's not a hard requirement, but it is something I will always set and I imagine others with v7 platforms will want to also. I think Tegra prevents doing this change globally.

Quoted 4 lines

What do you want to do here?

arch/arm/cpu/armv7/highbank/config.mk can simply be deleted if you don't want to compile with armv7-a.

Well, it is more a question of which toolchain(s) we want supported in U-Boot. Denx ELDK is one of them I guess :) but now that ELDK 5.0 is out, I don't know if ELDK 4.2 support is still required.

(I am assuming that ELDK5.0 has armv7-a support here. Please correct me if not)

Quoted 8 lines

If ELDK4.2 must be supported, then I would suggest creating a configuration option to allow the use of armv7-a ISA, then the arch/arm/cpu/armv7/highbank/config.mk file would select armv7-a ISA based on this option, and then any ARMv7 compatible board that needs or wants to use this ISA can set this config option in its config header file.

If ELDK4.2 support is dropped (at least partially) then no change would be needed.

... adding Wolfgang, this time...

Quoted 6 lines

Wolfgang:, I think that toolchain support for ARM is more your choice than mine.

Quoted 1 line

Rob

Amicalement,

Amicalement,

Signature · 1 line
Albert.
#34 lore raw

PATCH v5 1/1 ARM: Add Calxeda Highbank platform

In reply to Albert ARIBAUD

Dear Albert ARIBAUD,

Quoted 4 lines · In message <[email protected]> you wrote:

Well, it is more a question of which toolchain(s) we want supported in U-Boot. Denx ELDK is one of them I guess :) but now that ELDK 5.0 is out, I don't know if ELDK 4.2 support is still required.

It seems reasonable to support any gcc 4.x configuration.

Quoted 3 lines

If ELDK4.2 must be supported, then I would suggest creating a configuration option to allow the use of armv7-a ISA, then the arch/arm/cpu/armv7/highbank/config.mk file would select armv7-a ISA

I don't tink I want to accept a board specific config.mk for such apurpose. We want to get rid of thse config.mk files. Either ARMv7 based boards all need this option, or they all don;t need it. Thisis NOT a board specific feature.

Quoted 5 lines

If ELDK4.2 support is dropped (at least partially) then no change would be needed.

Wolfgang:, I think that toolchain support for ARM is more your choice than mine.

See above - I see no reason why we should abandon ELDK 4.2 when adding a new board - when all other boards with similar CPUs work just fine.

Best regards,

Wolfgang Denk

Signature · 5 lines
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: wd at denx.de
They say a little knowledge is a dangerous thing,  but it is not  one
half so bad as a lot of ignorance.   - Terry Pratchett, _Equal Rites_
#35 lore raw

PATCH 1/1 ARM: Add Calxeda Highbank platform

In reply to Rob Herring

From: Rob Herring <[email protected]>

Add basic support for Calxeda Highbank platform. Only minimal support with serial and SATA are included.

---
changes in v6:
- Remove arch/arm/cpu/armv7/highbank/config.mk
- Fix some whitespace errors (blank lines at EOF)

changes in v5:
- Rebase to current u-boot-arm/master (5557e86bb0793012057d5462976c2a902bc629ac)

changes in v4:
- Rebase to current mainline (d50a8f45c9a640b3bcbd0ede91f83c8646cca018)
- Add back SATA support to inital patch as dependencies are all in mainline

changes in v3:
- Add hignbank to MAINTAINERS

changes in v2:
- Set DRAM size to correct value
- split SATA and SD enabling to separate patches

 MAINTAINERS                          |    4 +
 arch/arm/cpu/armv7/highbank/Makefile |   46 +++++++++++++
 arch/arm/cpu/armv7/highbank/timer.c  |  123 ++++++++++++++++++++++++++++++++++
 board/highbank/Makefile              |   49 +++++++++++++
 board/highbank/highbank.c            |   57 ++++++++++++++++
 boards.cfg                           |    1 +
 include/configs/highbank.h           |  113 +++++++++++++++++++++++++++++++
 7 files changed, 393 insertions(+), 0 deletions(-)
 create mode 100644 arch/arm/cpu/armv7/highbank/Makefile
 create mode 100644 arch/arm/cpu/armv7/highbank/timer.c
 create mode 100644 board/highbank/Makefile
 create mode 100644 board/highbank/highbank.c
 create mode 100644 include/configs/highbank.h
MAINTAINERS +4 -0
index f895e9a..c383f6d 100644
@@ -219,6 +219,10 @@ Wolfgang Grandegger <[email protected]>
 	IPHASE4539	MPC8260
 	SCM		MPC8260
 
+Rob Herring <[email protected]>
+
+	highbank	highbank
+
 Klaus Heydeck <[email protected]>
 
 	KUP4K		MPC855
arch/arm/cpu/armv7/highbank/Makefile new file +46 -0

46 lines not on this page · raw message

arch/arm/cpu/armv7/highbank/timer.c new file +123 -0

123 lines not on this page · raw message

board/highbank/Makefile new file +49 -0

49 lines not on this page · raw message

board/highbank/highbank.c new file +57 -0

57 lines not on this page · raw message

boards.cfg +1 -0
index c31114d..dfa405e 100644
@@ -173,6 +173,7 @@ dkb			     arm         arm926ejs   -                   Marvell        pantheon
 integratorap_cm946es         arm         arm946es    integrator          armltd         -               integratorap
 integratorcp_cm946es         arm         arm946es    integrator          armltd         -               integratorcp
 ca9x4_ct_vxp                 arm         armv7       vexpress            armltd
+highbank                     arm         armv7       highbank            -              highbank
 efikamx                      arm         armv7       efikamx             -              mx5		efikamx:IMX_CONFIG=board/efikamx/imximage.cfg
 mx51evk                      arm         armv7       mx51evk             freescale      mx5		mx51evk:IMX_CONFIG=board/freescale/mx51evk/imximage.cfg
 mx53ard                      arm         armv7       mx53ard             freescale      mx5		mx53ard:IMX_CONFIG=board/freescale/mx53ard/imximage_dd3.cfg
include/configs/highbank.h new file +113 -0

113 lines not on this page · raw message

Signature · 1 line
1.7.4.1
#36 lore raw

PATCH 1/1 ARM: Add Calxeda Highbank platform

Dear Rob Herring,

Quoted 20 lines · In message <[email protected]> you wrote:

From: Rob Herring <[email protected]>

Add basic support for Calxeda Highbank platform. Only minimal support with serial and SATA are included.

---
changes in v6:
- Remove arch/arm/cpu/armv7/highbank/config.mk
- Fix some whitespace errors (blank lines at EOF)

changes in v5:
- Rebase to current u-boot-arm/master (5557e86bb0793012057d5462976c2a902bc629ac)

changes in v4:
- Rebase to current mainline (d50a8f45c9a640b3bcbd0ede91f83c8646cca018)
- Add back SATA support to inital patch as dependencies are all in mainline

Quoted 6 lines

changes in v3:
- Add hignbank to MAINTAINERS

changes in v2:
- Set DRAM size to correct value
- split SATA and SD enabling to separate patches

Which patch version is this, then? The Subject does not mention anything...

Best regards,

Wolfgang Denk

Signature · 6 lines
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: wd at denx.de
News is what a chap who doesn't care much  about  anything  wants  to
read. And it's only news until he's read it. After that it's dead.
                           - Evelyn Waugh _Scoop_ (1938) bk. 1, ch. 5
#37 lore raw

PATCH 1/1 ARM: Add Calxeda Highbank platform

Quoted 26 lines · Wolfgang Denk

Dear Rob Herring,

Quoted 23 lines · In message <[email protected]> you wrote:

From: Rob Herring <[email protected]>

Add basic support for Calxeda Highbank platform. Only minimal support with serial and SATA are included.

---
changes in v6:
- Remove arch/arm/cpu/armv7/highbank/config.mk
- Fix some whitespace errors (blank lines at EOF)

changes in v5:
- Rebase to current u-boot-arm/master (5557e86bb0793012057d5462976c2a902bc629ac)

changes in v4:
- Rebase to current mainline (d50a8f45c9a640b3bcbd0ede91f83c8646cca018)
- Add back SATA support to inital patch as dependencies are all in mainline

changes in v3:
- Add hignbank to MAINTAINERS

Quoted 7 lines
Quoted 3 lines

changes in v2:
- Set DRAM size to correct value
- split SATA and SD enabling to separate patches

Which patch version is this, then? The Subject does not mention anything...

Sorry, it's v6 as the change log says. I forgot to fix the subject.

Rob

#38 lore raw

PATCH 1/1 ARM: Add Calxeda Highbank platform

In reply to Rob Herring

Albert,

Quoted 20 lines · Rob Herring

From: Rob Herring <[email protected]>

Add basic support for Calxeda Highbank platform. Only minimal support with serial and SATA are included.

---
changes in v6:
- Remove arch/arm/cpu/armv7/highbank/config.mk
- Fix some whitespace errors (blank lines at EOF)

changes in v5:
- Rebase to current u-boot-arm/master (5557e86bb0793012057d5462976c2a902bc629ac)

changes in v4:
- Rebase to current mainline (d50a8f45c9a640b3bcbd0ede91f83c8646cca018)
- Add back SATA support to inital patch as dependencies are all in mainline

Quoted 7 lines

changes in v3:
- Add hignbank to MAINTAINERS

changes in v2:
- Set DRAM size to correct value
- split SATA and SD enabling to separate patches

Can you please merge this.

Regards,
Rob

#39 lore raw

PATCH 1/1 ARM: Add Calxeda Highbank platform

Hi Rob,

Le 04/10/2011 17:30, Rob Herring a ?crit :

Quoted 26 lines

Albert,

Quoted 23 lines · Rob Herring

From: Rob Herring<[email protected]>

Add basic support for Calxeda Highbank platform. Only minimal support with serial and SATA are included.

---
changes in v6:
- Remove arch/arm/cpu/armv7/highbank/config.mk
- Fix some whitespace errors (blank lines at EOF)

changes in v5:
- Rebase to current u-boot-arm/master (5557e86bb0793012057d5462976c2a902bc629ac)

changes in v4:
- Rebase to current mainline (d50a8f45c9a640b3bcbd0ede91f83c8646cca018)
- Add back SATA support to inital patch as dependencies are all in mainline

changes in v3:
- Add hignbank to MAINTAINERS

Quoted 6 lines
Quoted 4 lines

changes in v2:
- Set DRAM size to correct value
- split SATA and SD enabling to separate patches

Can you please merge this.

This does not apply on current u-boot-arm/master. Please rebase and submit -- and make sure you put "V7" in the subject tag. :)

Quoted 2 lines

Regards,
Rob

Amicalement,

Signature · 1 line
Albert.
#40 lore raw

PATCH v7 1/1 ARM: Add Calxeda Highbank platform

From: Rob Herring <[email protected]>

Add basic support for Calxeda Highbank platform. Only minimal support with serial and SATA are included.

---

changes in v7:
- Rebase to current master (4962e38 mkimage: adding support for Davinci AIS image)

changes in v6:
- Remove arch/arm/cpu/armv7/highbank/config.mk
- Fix some whitespace errors (blank lines at EOF)

changes in v5:
- Rebase to current u-boot-arm/master (5557e86bb0793012057d5462976c2a902bc629ac)

changes in v4:
- Rebase to current mainline (d50a8f45c9a640b3bcbd0ede91f83c8646cca018)
- Add back SATA support to inital patch as dependencies are all in mainline

changes in v3:
- Add hignbank to MAINTAINERS

changes in v2:
- Set DRAM size to correct value
- split SATA and SD enabling to separate patches

 MAINTAINERS                          |    4 +
 arch/arm/cpu/armv7/highbank/Makefile |   46 +++++++++++++
 arch/arm/cpu/armv7/highbank/timer.c  |  123 ++++++++++++++++++++++++++++++++++
 board/highbank/Makefile              |   49 +++++++++++++
 board/highbank/highbank.c            |   57 ++++++++++++++++
 boards.cfg                           |    1 +
 include/configs/highbank.h           |  113 +++++++++++++++++++++++++++++++
 7 files changed, 393 insertions(+), 0 deletions(-)
 create mode 100644 arch/arm/cpu/armv7/highbank/Makefile
 create mode 100644 arch/arm/cpu/armv7/highbank/timer.c
 create mode 100644 board/highbank/Makefile
 create mode 100644 board/highbank/highbank.c
 create mode 100644 include/configs/highbank.h
MAINTAINERS +4 -0
index f5168b0..a8b066e 100644
@@ -215,6 +215,10 @@ Wolfgang Grandegger <[email protected]>
 	IPHASE4539	MPC8260
 	SCM		MPC8260
 
+Rob Herring <[email protected]>
+
+	highbank	highbank
+
 Klaus Heydeck <[email protected]>
 
 	KUP4K		MPC855
arch/arm/cpu/armv7/highbank/Makefile new file +46 -0

46 lines not on this page · raw message

arch/arm/cpu/armv7/highbank/timer.c new file +123 -0

123 lines not on this page · raw message

board/highbank/Makefile new file +49 -0

49 lines not on this page · raw message

board/highbank/highbank.c new file +57 -0

57 lines not on this page · raw message

boards.cfg +1 -0
index bccb832..cac55fb 100644
@@ -161,6 +161,7 @@ dkb			     arm         arm926ejs   -                   Marvell        pantheon
 integratorap_cm946es         arm         arm946es    integrator          armltd         -               integratorap
 integratorcp_cm946es         arm         arm946es    integrator          armltd         -               integratorcp
 ca9x4_ct_vxp                 arm         armv7       vexpress            armltd
+highbank                     arm         armv7       highbank            -              highbank
 efikamx                      arm         armv7       efikamx             -              mx5		efikamx:MACH_TYPE=MACH_TYPE_MX51_EFIKAMX,IMX_CONFIG=board/efikamx/imximage_mx.cfg
 efikasb                      arm         armv7       efikamx             -              mx5		efikamx:MACH_TYPE=MACH_TYPE_MX51_EFIKASB,IMX_CONFIG=board/efikamx/imximage_sb.cfg
 mx51evk                      arm         armv7       mx51evk             freescale      mx5		mx51evk:IMX_CONFIG=board/freescale/mx51evk/imximage.cfg
include/configs/highbank.h new file +113 -0

113 lines not on this page · raw message

Signature · 1 line
1.7.5.4
#41 lore raw

PATCH v7 1/1 ARM: Add Calxeda Highbank platform

Hi Rob,

Le 24/10/2011 20:50, Rob Herring a ?crit :

Quoted 5 lines

From: Rob Herring<[email protected]>

Add basic support for Calxeda Highbank platform. Only minimal support with serial and SATA are included.

Quoted 7 lines

---

changes in v7:
- Rebase to current master (4962e38 mkimage: adding support for Davinci AIS image)

Applied to u-boot-arm/master (with manual adjustment to boards.cfg), thanks.

Amicalement,

Signature · 1 line
Albert.