diff options
author | Kumar Gala <galak@freescale.com> | 2005-06-21 20:15:19 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@ppc970.osdl.org> | 2005-06-21 21:46:23 -0400 |
commit | c91999bba3ae8b21d4a965f19bf127bac3e5f7f2 (patch) | |
tree | 47efc16ee86b909b2054b8be54d6727c9a6eec33 /arch/ppc/platforms | |
parent | 5b37b700f7c491a9320f4e29472bbaf23dded8fd (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/Kconfig | 10 | ||||
-rw-r--r-- | arch/ppc/platforms/85xx/Makefile | 1 | ||||
-rw-r--r-- | arch/ppc/platforms/85xx/mpc85xx_cds_common.c | 50 |
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 | ||
24 | config MPC8548_CDS | ||
25 | bool "Freescale MPC8548 CDS" | ||
26 | help | ||
27 | This option enablese support for the MPC8548 CDS evaluation board. | ||
28 | |||
24 | config MPC8555_CDS | 29 | config 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 | ||
61 | config MPC8548 | ||
62 | bool | ||
63 | depends on MPC8548_CDS | ||
64 | default y | ||
65 | |||
56 | config MPC8555 | 66 | config 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 | # |
4 | obj-$(CONFIG_MPC8540_ADS) += mpc85xx_ads_common.o mpc8540_ads.o | 4 | obj-$(CONFIG_MPC8540_ADS) += mpc85xx_ads_common.o mpc8540_ads.o |
5 | obj-$(CONFIG_MPC8548_CDS) += mpc85xx_cds_common.o | ||
5 | obj-$(CONFIG_MPC8555_CDS) += mpc85xx_cds_common.o | 6 | obj-$(CONFIG_MPC8555_CDS) += mpc85xx_cds_common.o |
6 | obj-$(CONFIG_MPC8560_ADS) += mpc85xx_ads_common.o mpc8560_ads.o | 7 | obj-$(CONFIG_MPC8560_ADS) += mpc85xx_ads_common.o mpc8560_ads.o |
7 | obj-$(CONFIG_SBC8560) += sbc85xx.o sbc8560.o | 8 | obj-$(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) |