Skip to contentSkip to conversation

8xx platform definitions

RFC PATCH In review Vitaly Bordug 2 participants 3 messages Aug 19, 2005

lore
Share & tools
lore
#0 lore raw

RFC PATCH 1/2 8xx platform definitions

This is preliminary version of 8xx platform definitions. Currently sys section contains only MPC885 and MPC866. Working example of board-specific setup will follow.

Signature · 2 lines
Sincerely,
Vitaly

8xx platform stuff

---
commit e4c1c9d34899352dd332c63dea090e8ba9bbe757
tree 1b6484c6cac83d6e851854fe5c73357e014f2819
parent 7e49f04f36830c7d1ee442447e46dba3a0a1b58d
author Vitaly Bordug <[email protected]> Fri, 19 Aug 2005 16:37:50 +0400 committer Vitaly Bordug <[email protected]> Fri, 19 Aug 2005 16:37:50 +0400

 arch/ppc/syslib/Makefile         |    3 
 arch/ppc/syslib/mpc8xx_devices.c |  274 ++++++++++++++++++++++++++++++++++++++
 arch/ppc/syslib/mpc8xx_sys.c     |   61 ++++++++
 include/asm-ppc/mpc8xx.h         |   20 +++
 include/asm-ppc/ppc_sys.h        |    2 
 5 files changed, 359 insertions(+), 1 deletions(-)
arch/ppc/syslib/Makefile +2 -1
@@ -34,7 +34,8 @@ ifeq ($(CONFIG_40x),y)
 obj-$(CONFIG_PCI)		+= indirect_pci.o pci_auto.o ppc405_pci.o
 endif
 endif
-obj-$(CONFIG_8xx)		+= m8xx_setup.o ppc8xx_pic.o $(wdt-mpc8xx-y)
+obj-$(CONFIG_8xx)		+= m8xx_setup.o ppc8xx_pic.o $(wdt-mpc8xx-y) \
+				   ppc_sys.o mpc8xx_devices.o mpc8xx_sys.o
 ifeq ($(CONFIG_8xx),y)
 obj-$(CONFIG_PCI)		+= qspan_pci.o i8259.o
 endif
arch/ppc/syslib/mpc8xx_devices.c new file +274 -0

274 lines not on this page · raw message

arch/ppc/syslib/mpc8xx_sys.c new file +77 -0

83 lines not on this page · raw message

include/asm-ppc/ppc_sys.h +2 -0
@@ -25,6 +25,8 @@
 #include <asm/mpc83xx.h>
 #elif defined(CONFIG_85xx)
 #include <asm/mpc85xx.h>
+#elif defined(CONFIG_8xx)
+#include <asm/mpc8xx.h>
 #elif defined(CONFIG_PPC_MPC52xx)
 #include <asm/mpc52xx.h>
 #elif defined(CONFIG_MPC10X_BRIDGE)
#1 lore raw
Quoted 30 lines · Vitaly Bordug
arch/ppc/syslib/mpc8xx_devices.c new file +30 -0
+#define MPC8xx_INT_FEC1		SIU_LEVEL1
+#define MPC8xx_INT_FEC2		SIU_LEVEL3
+
+#define MPC8xx_INT_SCC1		(CPM_IRQ_OFFSET + CPMVEC_SCC1)
+#define MPC8xx_INT_SCC2		(CPM_IRQ_OFFSET + CPMVEC_SCC2)
+#define MPC8xx_INT_SCC3		(CPM_IRQ_OFFSET + CPMVEC_SCC3)
+#define MPC8xx_INT_SCC4		(CPM_IRQ_OFFSET + CPMVEC_SCC4)
+#define MPC8xx_INT_SMC1		(CPM_IRQ_OFFSET + CPMVEC_SMC1)
+#define MPC8xx_INT_SMC2		(CPM_IRQ_OFFSET + CPMVEC_SMC2)
+
+/* Offset from IMMAP base address */
+#define MPC8xx_SCC1_OFFSET	(0xa00)
+#define MPC8xx_SCC1_SIZE	(0x18)
+#define MPC8xx_SCC2_OFFSET	(0xa20)
+#define MPC8xx_SCC2_SIZE	(0x18)
+#define MPC8xx_SCC3_OFFSET	(0xa40)
+#define MPC8xx_SCC3_SIZE	(0x18)
+#define MPC8xx_SCC4_OFFSET	(0xa60)
+#define MPC8xx_SCC4_SIZE	(0x18)
+#define MPC8xx_SMC1_OFFSET	(0xa82)
+#define MPC8xx_SMC1_SIZE	(0x0f)
+#define MPC8xx_SMC2_OFFSET	(0xa92)
+#define MPC8xx_SMC2_SIZE	(0x0d)
+#define MPC8xx_FEC1_OFFSET	(0xe00)
+#define MPC8xx_FEC1_SIZE	(0x88)
+#define MPC8xx_FEC2_OFFSET	(0x1e00)
+#define MPC8xx_FEC2_SIZE	(0x88)
+
+#define MPC8xx_DPARAM_SCC1_OFFSET	(0x3C00)
+#define MPC8xx_DPARAM_SCC1_SIZE	(0x80)

arch/ppc/syslib/mpc8xx_devices.c line 74

Quoted 10 lines
arch/ppc/syslib/mpc8xx_devices.c new file +10 -0
+#define MPC8xx_DPARAM_SCC2_OFFSET	(0x3D00)
+#define MPC8xx_DPARAM_SCC2_SIZE	(0x80)
+#define MPC8xx_DPARAM_SCC3_OFFSET	(0x3E00)
+#define MPC8xx_DPARAM_SCC3_SIZE	(0x80)
+#define MPC8xx_DPARAM_SCC4_OFFSET	(0x3F00)
+#define MPC8xx_DPARAM_SCC4_SIZE	(0x80)
+#define MPC8xx_DPARAM_SMC1_OFFSET	(0x3E80)
+#define MPC8xx_DPARAM_SMC1_SIZE	(0x40)
+#define MPC8xx_DPARAM_SMC2_OFFSET	(0x3F80)
+#define MPC8xx_DPARAM_SMC2_SIZE	(0x40)

All of these #defines should already be in a header file somewhere, and if they aren't, should be in the generic CPM header file. Please clean this up.

Thanks.

	-- Dan
#2 lore raw
Quoted 49 lines · Dan Malek
Quoted 30 lines · Vitaly Bordug
arch/ppc/syslib/mpc8xx_devices.c new file +30 -0
+#define MPC8xx_INT_FEC1        SIU_LEVEL1
+#define MPC8xx_INT_FEC2        SIU_LEVEL3
+
+#define MPC8xx_INT_SCC1        (CPM_IRQ_OFFSET + CPMVEC_SCC1)
+#define MPC8xx_INT_SCC2        (CPM_IRQ_OFFSET + CPMVEC_SCC2)
+#define MPC8xx_INT_SCC3        (CPM_IRQ_OFFSET + CPMVEC_SCC3)
+#define MPC8xx_INT_SCC4        (CPM_IRQ_OFFSET + CPMVEC_SCC4)
+#define MPC8xx_INT_SMC1        (CPM_IRQ_OFFSET + CPMVEC_SMC1)
+#define MPC8xx_INT_SMC2        (CPM_IRQ_OFFSET + CPMVEC_SMC2)
+
+/* Offset from IMMAP base address */
+#define MPC8xx_SCC1_OFFSET    (0xa00)
+#define MPC8xx_SCC1_SIZE    (0x18)
+#define MPC8xx_SCC2_OFFSET    (0xa20)
+#define MPC8xx_SCC2_SIZE    (0x18)
+#define MPC8xx_SCC3_OFFSET    (0xa40)
+#define MPC8xx_SCC3_SIZE    (0x18)
+#define MPC8xx_SCC4_OFFSET    (0xa60)
+#define MPC8xx_SCC4_SIZE    (0x18)
+#define MPC8xx_SMC1_OFFSET    (0xa82)
+#define MPC8xx_SMC1_SIZE    (0x0f)
+#define MPC8xx_SMC2_OFFSET    (0xa92)
+#define MPC8xx_SMC2_SIZE    (0x0d)
+#define MPC8xx_FEC1_OFFSET    (0xe00)
+#define MPC8xx_FEC1_SIZE    (0x88)
+#define MPC8xx_FEC2_OFFSET    (0x1e00)
+#define MPC8xx_FEC2_SIZE    (0x88)
+
+#define MPC8xx_DPARAM_SCC1_OFFSET    (0x3C00)
+#define MPC8xx_DPARAM_SCC1_SIZE    (0x80)

arch/ppc/syslib/mpc8xx_devices.c line 74

Quoted 10 lines
arch/ppc/syslib/mpc8xx_devices.c new file +10 -0
+#define MPC8xx_DPARAM_SCC2_OFFSET    (0x3D00)
+#define MPC8xx_DPARAM_SCC2_SIZE    (0x80)
+#define MPC8xx_DPARAM_SCC3_OFFSET    (0x3E00)
+#define MPC8xx_DPARAM_SCC3_SIZE    (0x80)
+#define MPC8xx_DPARAM_SCC4_OFFSET    (0x3F00)
+#define MPC8xx_DPARAM_SCC4_SIZE    (0x80)
+#define MPC8xx_DPARAM_SMC1_OFFSET    (0x3E80)
+#define MPC8xx_DPARAM_SMC1_SIZE    (0x40)
+#define MPC8xx_DPARAM_SMC2_OFFSET    (0x3F80)
+#define MPC8xx_DPARAM_SMC2_SIZE    (0x40)

All of these #defines should already be in a header file somewhere, and if they aren't, should be in the generic CPM header file. Please clean this up.

Quoted 5 lines

Thanks.

    -- Dan

I am going to move interrupts to the generic CPM header file, others I guess may be cleanup'ed, with replace respective defines in the source by pure numbers (as was done previously for PQ2 platform stuff).

Signature · 2 lines
Sincerely,
Vitaly