aboutsummaryrefslogtreecommitdiffstats
path: root/arch/ppc/platforms
diff options
context:
space:
mode:
authorKumar Gala <galak@freescale.com>2005-06-21 20:15:19 -0400
committerLinus Torvalds <torvalds@ppc970.osdl.org>2005-06-21 21:46:23 -0400
commitc91999bba3ae8b21d4a965f19bf127bac3e5f7f2 (patch)
tree47efc16ee86b909b2054b8be54d6727c9a6eec33 /arch/ppc/platforms
parent5b37b700f7c491a9320f4e29472bbaf23dded8fd (diff)
[PATCH] ppc32: Added preliminary support for the MPC8548 CDS board
Adds support for using the MPC8548 processor on the CDS reference board. Currently all the major busses (PCI, PCI-X, PCI-Express, sRIO) and eTSEC3 and eTSEC4 are not supported. Signed-off-by: Kumar Gala <kumar.gala@freescale.com> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Diffstat (limited to 'arch/ppc/platforms')
-rw-r--r--arch/ppc/platforms/85xx/Kconfig10
-rw-r--r--arch/ppc/platforms/85xx/Makefile1
-rw-r--r--arch/ppc/platforms/85xx/mpc85xx_cds_common.c50
3 files changed, 49 insertions, 12 deletions
diff --git a/arch/ppc/platforms/85xx/Kconfig b/arch/ppc/platforms/85xx/Kconfig
index ff92e38e7da1..c5bc2821d991 100644
--- a/arch/ppc/platforms/85xx/Kconfig
+++ b/arch/ppc/platforms/85xx/Kconfig
@@ -21,6 +21,11 @@ config MPC8540_ADS
21 help 21 help
22 This option enables support for the MPC 8540 ADS evaluation board. 22 This option enables support for the MPC 8540 ADS evaluation board.
23 23
24config MPC8548_CDS
25 bool "Freescale MPC8548 CDS"
26 help
27 This option enablese support for the MPC8548 CDS evaluation board.
28
24config MPC8555_CDS 29config MPC8555_CDS
25 bool "Freescale MPC8555 CDS" 30 bool "Freescale MPC8555 CDS"
26 help 31 help
@@ -53,6 +58,11 @@ config MPC8540
53 depends on MPC8540_ADS 58 depends on MPC8540_ADS
54 default y 59 default y
55 60
61config MPC8548
62 bool
63 depends on MPC8548_CDS
64 default y
65
56config MPC8555 66config MPC8555
57 bool 67 bool
58 depends on MPC8555_CDS 68 depends on MPC8555_CDS
diff --git a/arch/ppc/platforms/85xx/Makefile b/arch/ppc/platforms/85xx/Makefile
index 854fbd298ba2..efdf813108f2 100644
--- a/arch/ppc/platforms/85xx/Makefile
+++ b/arch/ppc/platforms/85xx/Makefile
@@ -2,6 +2,7 @@
2# Makefile for the PowerPC 85xx linux kernel. 2# Makefile for the PowerPC 85xx linux kernel.
3# 3#
4obj-$(CONFIG_MPC8540_ADS) += mpc85xx_ads_common.o mpc8540_ads.o 4obj-$(CONFIG_MPC8540_ADS) += mpc85xx_ads_common.o mpc8540_ads.o
5obj-$(CONFIG_MPC8548_CDS) += mpc85xx_cds_common.o
5obj-$(CONFIG_MPC8555_CDS) += mpc85xx_cds_common.o 6obj-$(CONFIG_MPC8555_CDS) += mpc85xx_cds_common.o
6obj-$(CONFIG_MPC8560_ADS) += mpc85xx_ads_common.o mpc8560_ads.o 7obj-$(CONFIG_MPC8560_ADS) += mpc85xx_ads_common.o mpc8560_ads.o
7obj-$(CONFIG_SBC8560) += sbc85xx.o sbc8560.o 8obj-$(CONFIG_SBC8560) += sbc85xx.o sbc8560.o
diff --git a/arch/ppc/platforms/85xx/mpc85xx_cds_common.c b/arch/ppc/platforms/85xx/mpc85xx_cds_common.c
index e7cfa498568c..2d04bf599d2f 100644
--- a/arch/ppc/platforms/85xx/mpc85xx_cds_common.c
+++ b/arch/ppc/platforms/85xx/mpc85xx_cds_common.c
@@ -480,21 +480,47 @@ mpc85xx_cds_setup_arch(void)
480 480
481 /* setup the board related information for the enet controllers */ 481 /* setup the board related information for the enet controllers */
482 pdata = (struct gianfar_platform_data *) ppc_sys_get_pdata(MPC85xx_TSEC1); 482 pdata = (struct gianfar_platform_data *) ppc_sys_get_pdata(MPC85xx_TSEC1);
483 pdata->board_flags = FSL_GIANFAR_BRD_HAS_PHY_INTR; 483 if (pdata) {
484 pdata->interruptPHY = MPC85xx_IRQ_EXT5; 484 pdata->board_flags = FSL_GIANFAR_BRD_HAS_PHY_INTR;
485 pdata->phyid = 0; 485 pdata->interruptPHY = MPC85xx_IRQ_EXT5;
486 /* fixup phy address */ 486 pdata->phyid = 0;
487 pdata->phy_reg_addr += binfo->bi_immr_base; 487 /* fixup phy address */
488 memcpy(pdata->mac_addr, binfo->bi_enetaddr, 6); 488 pdata->phy_reg_addr += binfo->bi_immr_base;
489 memcpy(pdata->mac_addr, binfo->bi_enetaddr, 6);
490 }
489 491
490 pdata = (struct gianfar_platform_data *) ppc_sys_get_pdata(MPC85xx_TSEC2); 492 pdata = (struct gianfar_platform_data *) ppc_sys_get_pdata(MPC85xx_TSEC2);
491 pdata->board_flags = FSL_GIANFAR_BRD_HAS_PHY_INTR; 493 if (pdata) {
492 pdata->interruptPHY = MPC85xx_IRQ_EXT5; 494 pdata->board_flags = FSL_GIANFAR_BRD_HAS_PHY_INTR;
493 pdata->phyid = 1; 495 pdata->interruptPHY = MPC85xx_IRQ_EXT5;
494 /* fixup phy address */ 496 pdata->phyid = 1;
495 pdata->phy_reg_addr += binfo->bi_immr_base; 497 /* fixup phy address */
496 memcpy(pdata->mac_addr, binfo->bi_enet1addr, 6); 498 pdata->phy_reg_addr += binfo->bi_immr_base;
499 memcpy(pdata->mac_addr, binfo->bi_enet1addr, 6);
500 }
501
502 pdata = (struct gianfar_platform_data *) ppc_sys_get_pdata(MPC85xx_eTSEC1);
503 if (pdata) {
504 pdata->board_flags = FSL_GIANFAR_BRD_HAS_PHY_INTR;
505 pdata->interruptPHY = MPC85xx_IRQ_EXT5;
506 pdata->phyid = 0;
507 /* fixup phy address */
508 pdata->phy_reg_addr += binfo->bi_immr_base;
509 memcpy(pdata->mac_addr, binfo->bi_enetaddr, 6);
510 }
511
512 pdata = (struct gianfar_platform_data *) ppc_sys_get_pdata(MPC85xx_eTSEC2);
513 if (pdata) {
514 pdata->board_flags = FSL_GIANFAR_BRD_HAS_PHY_INTR;
515 pdata->interruptPHY = MPC85xx_IRQ_EXT5;
516 pdata->phyid = 1;
517 /* fixup phy address */
518 pdata->phy_reg_addr += binfo->bi_immr_base;
519 memcpy(pdata->mac_addr, binfo->bi_enet1addr, 6);
520 }
497 521
522 ppc_sys_device_remove(MPC85xx_eTSEC3);
523 ppc_sys_device_remove(MPC85xx_eTSEC4);
498 524
499#ifdef CONFIG_BLK_DEV_INITRD 525#ifdef CONFIG_BLK_DEV_INITRD
500 if (initrd_start) 526 if (initrd_start)