All of lore.kernel.org
 help / color / mirror / Atom feed
* MPC8266ADS patch
@ 2003-09-11  0:50 Curtis, Allen
  2003-09-11  3:44 ` Dan Malek
  0 siblings, 1 reply; 7+ messages in thread
From: Curtis, Allen @ 2003-09-11  0:50 UTC (permalink / raw)
  To: PPC Embedded


Here is a patch to make MPC8266ADS its own platform. Instead of creating a
new platforms/ads8266.h header, I could have inserted conditional compiles
into the ads8260.h for the memory map differences.

Note: This is enough to get the kernel to build, boot and run. There are
other issues that still need to be addressed.

Thanks


# This is a BitKeeper generated patch for the following project:
# Project Name: Linux 2.4 for PowerPC development tree
# This patch format is intended for GNU patch command version 2.5 or higher.
# This patch includes the following deltas:
#	           ChangeSet	1.1380  -> 1.1381
#	arch/ppc/platforms/Makefile	1.45    -> 1.46
#	  arch/ppc/config.in	1.206   -> 1.207
#	arch/ppc/boot/simple/embed_config.c	1.33    -> 1.34
#	arch/ppc/boot/simple/m8260_tty.c	1.3     -> 1.4
#	include/asm-ppc/mpc8260.h	1.17    -> 1.18
#	               (new)	        -> 1.1
arch/ppc/platforms/ads8266.h
#
# The following is the BitKeeper ChangeSet Log
# --------------------------------------------
# 03/09/09	curtisa@irvsoftws21.devdom.local
<mailto:curtisa@irvsoftws21.devdom.local> 	1.1381
# Fixed MPC8266ADS platform configuration and build
# --------------------------------------------
#
diff -Nru a/arch/ppc/boot/simple/embed_config.c
b/arch/ppc/boot/simple/embed_config.c
--- a/arch/ppc/boot/simple/embed_config.c	Tue Sep  9 16:43:58 2003
+++ b/arch/ppc/boot/simple/embed_config.c	Tue Sep  9 16:43:58 2003
@@ -616,7 +616,7 @@
  }
#endif /* RPX6 for testing */
*	#ifdef CONFIG_ADS8260
		+#if defined(CONFIG_ADS8260) || defined(CONFIG_ADS8266)
		void
		embed_config(bd_t **bdp)
	{
	diff -Nru a/arch/ppc/boot/simple/m8260_tty.c
b/arch/ppc/boot/simple/m8260_tty.c
	--- a/arch/ppc/boot/simple/m8260_tty.c	Tue Sep  9 16:43:58 2003
	+++ b/arch/ppc/boot/simple/m8260_tty.c	Tue Sep  9 16:43:58 2003
	@@ -46,7 +46,7 @@
		*/
		while (cp->cp_cpcr & CPM_CR_FLG);
*	#ifdef CONFIG_ADS8260
	+#if defined(CONFIG_ADS8260) || defined(CONFIG_ADS8266)
		/* Enable the RS-232 transceivers.
		*/
		*(volatile uint *)(BCSR_ADDR + 4) &=
	diff -Nru a/arch/ppc/config.in b/arch/ppc/config.in
	--- a/arch/ppc/config.in	Tue Sep  9 16:43:58 2003
	+++ b/arch/ppc/config.in	Tue Sep  9 16:43:58 2003
	@@ -61,6 +61,7 @@
		define_bool CONFIG_SERIAL_CONSOLE y
	   choice 'Machine Type'	\
		"ADS8260	CONFIG_ADS8260	\
*	ADS8266	CONFIG_ADS8266	\
  	EST8260	CONFIG_EST8260	\
  	SBS8260	CONFIG_SBS8260	\
  	RPXSUPER	CONFIG_RPX6	\
diff -Nru a/arch/ppc/platforms/Makefile b/arch/ppc/platforms/Makefile
--- a/arch/ppc/platforms/Makefile	Tue Sep  9 16:43:58 2003
+++ b/arch/ppc/platforms/Makefile	Tue Sep  9 16:43:58 2003
@@ -64,7 +64,7 @@
ifeq ($(CONFIG_8260),y)
obj-$(CONFIG_PCI)		+= mpc8260_pci9.o
endif
*	ifeq ($(CONFIG_ADS8260),y)
+ifeq ($(CONFIG_ADS8266),y)
obj-$(CONFIG_PCI)		+= mpc8266ads_pci.o
endif
obj-$(CONFIG_ALL_PPC)		+= pmac_pic.o pmac_setup.o pmac_time.o \
diff -Nru a/arch/ppc/platforms/ads8266.h b/arch/ppc/platforms/ads8266.h
--- /dev/null	Wed Dec 31 16:00:00 1969
+++ b/arch/ppc/platforms/ads8266.h	Tue Sep  9 16:43:58 2003
@@ -0,0 +1,87 @@
+
+/*
+ * A collection of structures, addresses, and values associated with + *
the Motorola MPC8266ADS-PCI board.
+ * Copied from the RPX-Classic and SBS8260 stuff.
+ *
+ * Copyright © 2001 Dan Malek (dan@mvista.com <mailto:dan@mvista.com> )
+ */
+#ifdef __KERNEL__
+#ifndef __MACH_ADS8266_DEFS
+#define __MACH_ADS8266_DEFS
+
+#include <linux/config.h>
+
+#include <asm/ppcboot.h>
+
+/* Memory map is configured by the PROM startup.
+ * We just map a few things we need.  The CSR is actually 4 byte-wide + *
registers that can be accessed as 8-, 16-, or 32-bit values.
+ */
+#define IMAP_ADDR		((uint)0xf0000000)
+#define BCSR_ADDR		((uint)0x04500000)
+#define BCSR_SIZE		((uint)(32 * 1024))
+
+/* The ADS8260 has 16, 32-bit wide control/status registers, accessed + *
only on word boundaries.
+ * Not all are used (yet), or are interesting to us (yet).
+ */
+
+/* Things of interest in the CSR.
+*/
+#define BCSR1_FETHIEN		((uint)0x08000000)	/* 0 == enable */
+#define BCSR1_FETH_RST		((uint)0x04000000)	/* 0 == reset */
+#define BCSR1_RS232_EN1		((uint)0x02000000)	/* 0 ==
enable */
+#define BCSR1_RS232_EN2		((uint)0x01000000)	/* 0 ==
enable */
+
+#define PHY_INTERRUPT	SIU_INT_IRQ7
+
+#ifdef CONFIG_PCI
+/* PCI interrupt controller */
+#define PCI_INT_STAT_REG	0x04730000
+#define PCI_INT_MASK_REG	0x04730004
+#define PIRQA			(NR_SIU_INTS + 0)
+#define PIRQB			(NR_SIU_INTS + 1)
+#define PIRQC			(NR_SIU_INTS + 2)
+#define PIRQD			(NR_SIU_INTS + 3)
+
+/*
+ * PCI memory map definitions for MPC8266ADS-PCI.
+ *
+ * processor view
+ *	local address		PCI address		target
+ *	0x80000000-0x9FFFFFFF	0x80000000-0x9FFFFFFF	PCI mem with
prefetch
+ *	0xA0000000-0xBFFFFFFF	0xA0000000-0xBFFFFFFF	PCI mem w/o prefetch
+ *	0xF4000000-0xF7FFFFFF	0x00000000-0x03FFFFFF	PCI IO
+ *
+ * PCI master view
+ *	local address		PCI address		target
+ *	0x00000000-0x1FFFFFFF	0x00000000-0x1FFFFFFF	MPC8266 local memory
+ */
+
+/* window for a PCI master to access MPC8266 memory */
+#define PCI_SLV_MEM_LOCAL	0x00000000	/* Local base */
+#define PCI_SLV_MEM_BUS		0x00000000	/* PCI base */
+
+/* window for the processor to access PCI memory with prefetching */
+#define PCI_MSTR_MEM_LOCAL	0x80000000	/* Local base */
+#define PCI_MSTR_MEM_BUS	0x80000000	/* PCI base   */
+#define PCI_MSTR_MEM_SIZE	0x20000000	/* 512MB */
+
+/* window for the processor to access PCI memory without prefetching */
+#define PCI_MSTR_MEMIO_LOCAL	0xA0000000	/* Local base */
+#define PCI_MSTR_MEMIO_BUS	0xA0000000	/* PCI base   */
+#define PCI_MSTR_MEMIO_SIZE	0x20000000	/* 512MB */
+
+/* window for the processor to access PCI I/O */
+#define PCI_MSTR_IO_LOCAL	0xF4000000	/* Local base */
+#define PCI_MSTR_IO_BUS         0x00000000	/* PCI base   */
+#define PCI_MSTR_IO_SIZE        0x04000000	/* 64MB */
+
+#define _IO_BASE		PCI_MSTR_IO_LOCAL
+#define _ISA_MEM_BASE		PCI_MSTR_MEMIO_LOCAL
+#define PCI_DRAM_OFFSET		PCI_SLV_MEM_BUS
+#endif /* CONFIG_PCI */
+
+#endif /* __MACH_ADS8266_DEFS */
+#endif /* __KERNEL__ */
diff -Nru a/include/asm-ppc/mpc8260.h b/include/asm-ppc/mpc8260.h
--- a/include/asm-ppc/mpc8260.h	Tue Sep  9 16:43:58 2003
+++ b/include/asm-ppc/mpc8260.h	Tue Sep  9 16:43:58 2003
@@ -28,6 +28,10 @@
#include <platforms/ads8260.h>
#endif

+#ifdef CONFIG_ADS8266
+#include <platforms/ads8266.h>
+#endif
+
#ifdef CONFIG_WILLOW
#include <platforms/willow.h>
#endif


** Sent via the linuxppc-embedded mail list. See http://lists.linuxppc.org/

^ permalink raw reply	[flat|nested] 7+ messages in thread

end of thread, other threads:[~2003-09-12 15:50 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2003-09-11  0:50 MPC8266ADS patch Curtis, Allen
2003-09-11  3:44 ` Dan Malek
2003-09-11  7:18   ` Rakesh Jagota
2003-09-11  7:44     ` PPC 405 Rakesh Jagota
2003-09-11 13:37     ` Andrew H Pham
2003-09-12  5:11       ` Rakesh Jagota
2003-09-12 15:50   ` MPC8266ADS patch Tom Rini

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.