Skip to contentSkip to conversation

CPCI750: Add CPCI-HD/2 support

PATCH Superseded Reinhard Arlt 2 participants 2 messages Aug 9, 2011 – Oct 6, 2011

v1 of 2 Superseded Latest is v2 →

lore
Share & tools
lore
#0 lore raw

PATCH 1/1 CPCI750: Add CPCI-HD/2 support

From: Reinhard Arlt <[email protected]>

This patch adds support for the esd CPCI-HD/2 board to u-boot for CPCI-CPU/750. As the primary devices on the CPCI-HD/2 board are connected to device 1 and 3, the device must be swaped.

--

board/esd/cpci750/ide.c +21 -1
index a3bd1b7..a615c4d 100644
@@ -31,6 +31,19 @@
 #include <pci.h>
 
 extern ulong ide_bus_offset[CONFIG_SYS_IDE_MAXBUS];
+int cpci_hd_type;
+
+int ata_device (int dev)
+{
+	int retval;
+
+	retval = (dev & 1) << 4;
+	if (cpci_hd_type == 2) {
+		retval ^= 1 << 4;
+	}
+	return retval;
+}
+
 
 int ide_preinit (void)
 {
@@ -39,14 +52,21 @@ int ide_preinit (void)
 	int l;
 
 	status = 1;
+	cpci_hd_type = 0;
 	if (CPCI750_SLAVE_TEST != 0)
 		return status;
 	for (l = 0; l < CONFIG_SYS_IDE_MAXBUS; l++) {
 		ide_bus_offset[l] = -ATA_STATUS;
 	}
 	devbusfn = pci_find_device (0x1103, 0x0004, 0);
-	if (devbusfn == -1)
+	if (devbusfn != -1) {
+		cpci_hd_type = 1;
+	} else {
 	        devbusfn = pci_find_device (0x1095, 0x3114, 0);
+		if (devbusfn != -1) {
+			cpci_hd_type = 2;
+		}
+	}
 	if (devbusfn != -1) {
 		ulong *ide_bus_offset_ptr;
 
include/ata.h +2 -0
index b51475d..3b2d737 100644
@@ -82,7 +82,9 @@
 /*
  * Device / Head Register Bits
  */
+#ifndef ATA_DEVICE
 #define ATA_DEVICE(x)	((x & 1)<<4)
+#endif /* ATA_DEVICE */
 #define ATA_LBA		0xE0
 
 /*
include/configs/CPCI750.h +11 -8
index 92ffaaa..899c40c 100644
@@ -188,6 +188,8 @@
 #define CONFIG_SYS_I2C_MULTI_EEPROMS
 #define CONFIG_SYS_I2C_SPEED	80000		/* I2C speed default */
 
+#define CONFIG_PRAM 0
+
 #define CONFIG_SYS_GT_DUAL_CPU			/* also for JTAG even with one cpu */
 #define CONFIG_SYS_LONGHELP			/* undef to save memory		*/
 #define CONFIG_SYS_PROMPT	"=> "		/* Monitor Command Prompt	*/
@@ -242,11 +244,6 @@
 
 #define CONFIG_SYS_TCLK		133000000
 
-/*#define CONFIG_SYS_750FX_HID0		0x8000c084*/
-#define CONFIG_SYS_750FX_HID0		0x80008484
-#define CONFIG_SYS_750FX_HID1		0x54800000
-#define CONFIG_SYS_750FX_HID2		0x00000000
-
 /*
  * Low Level Configuration Settings
  * (address mappings, register initial values, etc.)
@@ -458,7 +455,11 @@
 #define CONFIG_SYS_ATA_DATA_OFFSET	0x0000	/* Offset for data I/O			*/
 #define CONFIG_SYS_ATA_REG_OFFSET	0x0000	/* Offset for normal register accesses	*/
 #define CONFIG_SYS_ATA_ALT_OFFSET	0x0000	/* Offset for alternate registers	*/
-
+#ifndef __ASSEMBLY__
+int ata_device(int dev);
+#endif
+#define ATA_DEVICE(dev)                 ata_device(dev)
+#define CONFIG_ATAPI                    1
 
 /*----------------------------------------------------------------------
  * Initial BAT mappings
@@ -498,8 +499,8 @@
  * IBAT4 and DBAT4
  * FIXME: ingo disable BATs for Linux Kernel
  */
-#undef SETUP_HIGH_BATS_FX750		/* don't initialize BATS 4-7 */
-/*#define SETUP_HIGH_BATS_FX750*/		/* initialize BATS 4-7 */
+/* #undef SETUP_HIGH_BATS_FX750	*/	/* don't initialize BATS 4-7 */
+#define SETUP_HIGH_BATS_FX750		/* initialize BATS 4-7 */
 
 #ifdef SETUP_HIGH_BATS_FX750
 #define CONFIG_SYS_IBAT4L (CONFIG_SYS_SDRAM1_BASE | BATL_PP_RW | BATL_CACHEINHIBIT)
@@ -623,4 +624,6 @@
 #define CPCI750_ECC_TEST	(((in8(0xf0300000) & 0x02) == 0) ? 1 : 0)
 #define CONFIG_SYS_PLD_VER	0xf0e00000
 
+#define CONFIG_OF_LIBFDT 1
+
 #endif	/* __CONFIG_H */
#1 lore raw

PATCH 1/1 CPCI750: Add CPCI-HD/2 support

Dear Reinhard Arlt,

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

From: Reinhard Arlt <[email protected]>

This patch adds support for the esd CPCI-HD/2 board to u-boot for CPCI-CPU/750. As the primary devices on the CPCI-HD/2 board are connected to device 1 and 3, the device must be swaped.

--

Entry to MAINTAINERS?

Checkpatch says:

total: 0 errors, 2 warnings, 97 lines checked

Please clean up and resubmit. Thanks.

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
They weren't that important. They were merely at the top. The  people
who  really  run organizations are usually found several levels down,
where it's still possible to get things done.
                                      - Terry Pratchett, _Small Gods_