Skip to contentSkip to conversation

powerpc: add support for the Freescale P1022DS reference board

PATCH New Timur Tabi 5 participants 7 messages Jun 14, 2010 – Jul 14, 2010 PowerPC

lore
Share & tools
lore

Timur Tabi

author
#0 lore raw

PATCH v3 1/1 powerpc: add support for the Freescale P1022DS reference board

Add basic suport for the Freescale P1022DS reference board.

Specifics:

1) 36-bit only
2) Booting from NOR flash only
3) Environment stored in NOR flash only
4) No SPI support
5) No DIU support

---

This patch is for the 'next' branch.

v3: Fixed minor issues, ported to new makefile format

v2: addresses most of Wolfgang's concerns.
DIU support removed so that it can be reworked later

This depends on the following patches:

Move ICS CLK chip frequenty calculation code into a common board library
fsl: add LAW target to fsl_pci_info structure

 MAINTAINERS                             |    1 +
 MAKEALL                                 |    1 +
 arch/powerpc/cpu/mpc85xx/Makefile       |    1 +
 arch/powerpc/cpu/mpc85xx/p1022_serdes.c |  166 +++++++++++
 arch/powerpc/include/asm/fsl_serdes.h   |    2 +
 board/freescale/common/Makefile         |    1 +
 board/freescale/p1022ds/Makefile        |   39 +++
 board/freescale/p1022ds/config.mk       |   14 +
 board/freescale/p1022ds/ddr.c           |  106 +++++++
 board/freescale/p1022ds/law.c           |   21 ++
 board/freescale/p1022ds/p1022ds.c       |  285 +++++++++++++++++++
 board/freescale/p1022ds/tlb.c           |   76 +++++
 boards.cfg                              |    1 +
 include/configs/P1022DS.h               |  470 +++++++++++++++++++++++++++++++
 14 files changed, 1184 insertions(+), 0 deletions(-)
 create mode 100644 arch/powerpc/cpu/mpc85xx/p1022_serdes.c
 create mode 100644 board/freescale/p1022ds/Makefile
 create mode 100644 board/freescale/p1022ds/config.mk
 create mode 100644 board/freescale/p1022ds/ddr.c
 create mode 100644 board/freescale/p1022ds/law.c
 create mode 100644 board/freescale/p1022ds/p1022ds.c
 create mode 100644 board/freescale/p1022ds/tlb.c
 create mode 100644 include/configs/P1022DS.h
MAINTAINERS +1 -0
index 7a13d28..d702f0d 100644
@@ -437,6 +437,7 @@ Timur Tabi <[email protected]>
 
 	MPC8349E-mITX	MPC8349
 	MPC8349E-mITX-GP MPC8349
+	P1022DS		P1022
 
 Erik Theisen <[email protected]>
 
MAKEALL +1 -0
index 2527352..858f7d4 100755
@@ -406,6 +406,7 @@ LIST_85xx="		\
 	MPC8569MDS_NAND \
 	MPC8572DS	\
 	MPC8572DS_36BIT	\
+	P1022DS		\
 	P2020DS		\
 	P2020DS_36BIT	\
 	P1011RDB	\
arch/powerpc/cpu/mpc85xx/Makefile +1 -0
index f064fee..a481326 100644
@@ -63,6 +63,7 @@ COBJS-$(CONFIG_CPM2)	+= ether_fcc.o
 COBJS-$(CONFIG_OF_LIBFDT) += fdt.o
 COBJS-$(CONFIG_MP)	+= mp.o
 COBJS-$(CONFIG_MPC8536) += mpc8536_serdes.o
+COBJS-$(CONFIG_P1022)	+= p1022_serdes.o
 COBJS-$(CONFIG_PCI)	+= pci.o
 COBJS-$(CONFIG_QE)	+= qe_io.o
 COBJS-$(CONFIG_CPM2)	+= serial_scc.o
arch/powerpc/cpu/mpc85xx/p1022_serdes.c new file +166 -0

166 lines not on this page · raw message

arch/powerpc/include/asm/fsl_serdes.h +2 -0
index d4839f4..2056532 100644
@@ -45,4 +45,6 @@ enum srds_prtcl {
 
 int is_serdes_configured(enum srds_prtcl device);
 
+const char *serdes_slot_name(enum srds_prtcl device);
+
 #endif /* __FSL_SERDES_H */
board/freescale/common/Makefile +1 -0
index d18445b..5436bd6 100644
@@ -42,6 +42,7 @@ COBJS-$(CONFIG_MPC8541CDS)	+= cds_pci_ft.o
 COBJS-$(CONFIG_MPC8548CDS)	+= cds_pci_ft.o
 COBJS-$(CONFIG_MPC8555CDS)	+= cds_pci_ft.o
 
+COBJS-$(CONFIG_P1022DS)		+= ics307_clk.o
 COBJS-$(CONFIG_P2020DS)		+= ics307_clk.o
 
 SRCS	:= $(SOBJS:.o=.S) $(COBJS-y:.o=.c)
board/freescale/p1022ds/Makefile new file +39 -0
new file mode 100644
index 0000000..8ede2d6
@@ -0,0 +1,39 @@
+#
+# Copyright 2010 Freescale Semiconductor, Inc.
+#
+# This program is free software; you can redistribute it and/or modify it
+# under the terms of the GNU General Public License as published by the Free
+# Software Foundation; either version 2 of the License, or (at your option)
+# any later version.
+#
+
+include $(TOPDIR)/config.mk
+
+LIB	= $(obj)lib$(BOARD).a
+
+COBJS-y	+= $(BOARD).o
+COBJS-y	+= ddr.o
+COBJS-y	+= law.o
+COBJS-y	+= tlb.o
+
+SRCS	:= $(SOBJS:.o=.S) $(COBJS-y:.o=.c)
+OBJS	:= $(addprefix $(obj),$(COBJS-y))
+SOBJS	:= $(addprefix $(obj),$(SOBJS))
+
+$(LIB):	$(obj).depend $(OBJS) $(SOBJS)
+	$(AR) $(ARFLAGS) $@ $(OBJS)
+
+clean:
+	rm -f $(OBJS) $(SOBJS)
+
+distclean:	clean
+	rm -f $(LIB) core *.bak .depend
+
+#########################################################################
+
+# defines $(obj).depend target
+include $(SRCTREE)/rules.mk
+
+sinclude $(obj).depend
+
+#########################################################################
board/freescale/p1022ds/config.mk new file +14 -0
new file mode 100644
index 0000000..4581d20
@@ -0,0 +1,14 @@
+#
+# Copyright 2010 Freescale Semiconductor, Inc.
+#
+# This program is free software; you can redistribute it and/or modify it
+# under the terms of the GNU General Public License as published by the Free
+# Software Foundation; either version 2 of the License, or (at your option)
+# any later version.
+#
+
+ifndef TEXT_BASE
+TEXT_BASE = 0xeff80000
+endif
+
+RESET_VECTOR_ADDRESS = 0xeffffffc
board/freescale/p1022ds/ddr.c new file +106 -0

106 lines not on this page · raw message

board/freescale/p1022ds/law.c new file +21 -0
new file mode 100644
index 0000000..b23b8f9
@@ -0,0 +1,21 @@
+/*
+ * Copyright 2010 Freescale Semiconductor, Inc.
+ * Authors: Srikanth Srinivasan <[email protected]>
+ *          Timur Tabi <[email protected]>
+ *
+ * This program is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License as published by the Free
+ * Software Foundation; either version 2 of the License, or (at your option)
+ * any later version.
+ */
+
+#include <common.h>
+#include <asm/fsl_law.h>
+#include <asm/mmu.h>
+
+struct law_entry law_table[] = {
+	SET_LAW(CONFIG_SYS_FLASH_BASE_PHYS, LAW_SIZE_256M, LAW_TRGT_IF_LBC),
+	SET_LAW(PIXIS_BASE_PHYS, LAW_SIZE_4K, LAW_TRGT_IF_LBC),
+};
+
+int num_law_entries = ARRAY_SIZE(law_table);
board/freescale/p1022ds/p1022ds.c new file +285 -0

285 lines not on this page · raw message

board/freescale/p1022ds/tlb.c new file +76 -0

76 lines not on this page · raw message

boards.cfg +1 -0
index e54673e..bc75536 100644
@@ -333,6 +333,7 @@ MPC8560ADS	powerpc	mpc85xx		mpc8560ads	freescale
 MPC8568MDS	powerpc	mpc85xx		mpc8568mds	freescale
 XPEDITE5200	powerpc	mpc85xx		xpedite5200	xes
 XPEDITE5370	powerpc	mpc85xx		xpedite5370	xes
+P1022DS		powerpc	mpc85xx		p1022ds		freescale
 sbc8641d	powerpc	mpc86xx
 MPC8610HPCD	powerpc	mpc86xx		mpc8610hpcd	freescale
 XPEDITE5170	powerpc	mpc86xx		xpedite5170	xes
include/configs/P1022DS.h new file +470 -0

470 lines not on this page · raw message

Signature · 1 line
1.7.0.1
#1 lore raw

PATCH v3 1/1 powerpc: add support for the Freescale P1022DS reference board

Kumar, please don't forget this patch.

Quoted 11 lines · Timur Tabi

Add basic suport for the Freescale P1022DS reference board.

Specifics:

1) 36-bit only
2) Booting from NOR flash only
3) Environment stored in NOR flash only
4) No SPI support
5) No DIU support

Signature · 2 lines
Timur Tabi
Linux kernel developer at Freescale
#2 lore raw

PATCH v3 1/1 powerpc: add support for the Freescale P1022DS reference board

Quoted 7 lines · Timur Tabi

Kumar, please don't forget this patch.

Quoted 4 lines · Timur Tabi

Add basic suport for the Freescale P1022DS reference board.

Specifics:

Quoted 11 lines
Quoted 7 lines

1) 36-bit only
2) Booting from NOR flash only
3) Environment stored in NOR flash only
4) No SPI support
5) No DIU support

Signature · 2 lines
Timur Tabi
Linux kernel developer at Freescale

Sure, can you update against 85xx upstream tree. Some Makefile changes will break this patch.

- k

#3 lore raw

PATCH v3 1/1 powerpc: add support for the Freescale P1022DS reference board

Quoted 4 lines · Kumar Gala
Quoted 1 line · Timur Tabi

Kumar, please don't forget this patch.

It applies against Wolfgang's 'next' branch. Have you updated your branch to pull in the new Makefile code?

Signature · 2 lines
Timur Tabi
Linux kernel developer at Freescale
#4 lore raw

PATCH v3 1/1 powerpc: add support for the Freescale P1022DS reference board

In reply to Kumar Gala
Quoted 16 lines · Kumar Gala
Quoted 13 lines · Timur Tabi

Kumar, please don't forget this patch.

Quoted 10 lines · Timur Tabi

Add basic suport for the Freescale P1022DS reference board.

Specifics:

1) 36-bit only
2) Booting from NOR flash only
3) Environment stored in NOR flash only
4) No SPI support
5) No DIU support

Quoted 7 lines
Quoted 5 lines
Quoted 1 line
Signature · 2 lines
Timur Tabi
Linux kernel developer at Freescale

Sure, can you update against 85xx upstream tree. Some Makefile changes will break this patch.

Ignore me. I realized once I started looking further you had already made this patch against 'next'.

- k

Applied
#5 lore raw

PATCH v3 1/1 powerpc: add support for the Freescale P1022DS reference board

In reply to Timur Tabi
Quoted 17 lines · Timur Tabi

Add basic suport for the Freescale P1022DS reference board.

Specifics:

1) 36-bit only
2) Booting from NOR flash only
3) Environment stored in NOR flash only
4) No SPI support
5) No DIU support

---

This patch is for the 'next' branch.

v3: Fixed minor issues, ported to new makefile format

Quoted 7 lines

v2: addresses most of Wolfgang's concerns.
DIU support removed so that it can be reworked later

This depends on the following patches:

Move ICS CLK chip frequenty calculation code into a common board library
fsl: add LAW target to fsl_pci_info structure

applied to 85xx

- k

#6 lore raw

PATCH v3 1/1 powerpc: add support for the Freescale P1022DS reference board

In reply to Timur Tabi

Dear Timur Tabi,

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

Add basic suport for the Freescale P1022DS reference board.

Specifics:

1) 36-bit only
2) Booting from NOR flash only
3) Environment stored in NOR flash only
4) No SPI support

...

Quoted 13 lines
board/freescale/p1022ds/p1022ds.c new file +13 -0
+int checkboard(void)
+{
+	u8 sw;
+
+	puts("Board: P1022DS ");
+
+	printf("Sys ID: 0x%02x, Sys Ver: 0x%02x, FPGA Ver: 0x%02x, ",
+		in_8(&pixis->id), in_8(&pixis->arch), in_8(&pixis->scver));
+
+	sw = in_8(&PIXIS_SW(PIXIS_LBMAP_SWITCH));
+
+	switch ((sw & PIXIS_LBMAP_MASK) >> 6) {
+		case 0:

board/freescale/p1022ds/p1022ds.c line 73

Quoted 10 lines
board/freescale/p1022ds/p1022ds.c new file +10 -0
+			printf ("vBank: %u\n", ((sw & 0x30) >> 4));
+			break;
+		case 1:
+			printf ("NAND\n");
+			break;
+		case 2:
+		case 3:
+			puts ("Promjet\n");
+			break;
+	}

Incorrect indentation.

Best regards,

Wolfgang Denk

Signature · 4 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
On a clear disk you can seek forever.