Commit c91999bb authored by Kumar Gala's avatar Kumar Gala Committed by Linus Torvalds

[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: default avatarKumar Gala <kumar.gala@freescale.com>
Signed-off-by: default avatarAndrew Morton <akpm@osdl.org>
Signed-off-by: default avatarLinus Torvalds <torvalds@osdl.org>
parent 5b37b700
This diff is collapsed.
...@@ -21,6 +21,11 @@ config MPC8540_ADS ...@@ -21,6 +21,11 @@ config MPC8540_ADS
help help
This option enables support for the MPC 8540 ADS evaluation board. This option enables support for the MPC 8540 ADS evaluation board.
config MPC8548_CDS
bool "Freescale MPC8548 CDS"
help
This option enablese support for the MPC8548 CDS evaluation board.
config MPC8555_CDS config MPC8555_CDS
bool "Freescale MPC8555 CDS" bool "Freescale MPC8555 CDS"
help help
...@@ -53,6 +58,11 @@ config MPC8540 ...@@ -53,6 +58,11 @@ config MPC8540
depends on MPC8540_ADS depends on MPC8540_ADS
default y default y
config MPC8548
bool
depends on MPC8548_CDS
default y
config MPC8555 config MPC8555
bool bool
depends on MPC8555_CDS depends on MPC8555_CDS
......
...@@ -2,6 +2,7 @@ ...@@ -2,6 +2,7 @@
# Makefile for the PowerPC 85xx linux kernel. # Makefile for the PowerPC 85xx linux kernel.
# #
obj-$(CONFIG_MPC8540_ADS) += mpc85xx_ads_common.o mpc8540_ads.o obj-$(CONFIG_MPC8540_ADS) += mpc85xx_ads_common.o mpc8540_ads.o
obj-$(CONFIG_MPC8548_CDS) += mpc85xx_cds_common.o
obj-$(CONFIG_MPC8555_CDS) += mpc85xx_cds_common.o obj-$(CONFIG_MPC8555_CDS) += mpc85xx_cds_common.o
obj-$(CONFIG_MPC8560_ADS) += mpc85xx_ads_common.o mpc8560_ads.o obj-$(CONFIG_MPC8560_ADS) += mpc85xx_ads_common.o mpc8560_ads.o
obj-$(CONFIG_SBC8560) += sbc85xx.o sbc8560.o obj-$(CONFIG_SBC8560) += sbc85xx.o sbc8560.o
......
...@@ -480,21 +480,47 @@ mpc85xx_cds_setup_arch(void) ...@@ -480,21 +480,47 @@ mpc85xx_cds_setup_arch(void)
/* setup the board related information for the enet controllers */ /* setup the board related information for the enet controllers */
pdata = (struct gianfar_platform_data *) ppc_sys_get_pdata(MPC85xx_TSEC1); pdata = (struct gianfar_platform_data *) ppc_sys_get_pdata(MPC85xx_TSEC1);
pdata->board_flags = FSL_GIANFAR_BRD_HAS_PHY_INTR; if (pdata) {
pdata->interruptPHY = MPC85xx_IRQ_EXT5; pdata->board_flags = FSL_GIANFAR_BRD_HAS_PHY_INTR;
pdata->phyid = 0; pdata->interruptPHY = MPC85xx_IRQ_EXT5;
/* fixup phy address */ pdata->phyid = 0;
pdata->phy_reg_addr += binfo->bi_immr_base; /* fixup phy address */
memcpy(pdata->mac_addr, binfo->bi_enetaddr, 6); pdata->phy_reg_addr += binfo->bi_immr_base;
memcpy(pdata->mac_addr, binfo->bi_enetaddr, 6);
}
pdata = (struct gianfar_platform_data *) ppc_sys_get_pdata(MPC85xx_TSEC2); pdata = (struct gianfar_platform_data *) ppc_sys_get_pdata(MPC85xx_TSEC2);
pdata->board_flags = FSL_GIANFAR_BRD_HAS_PHY_INTR; if (pdata) {
pdata->interruptPHY = MPC85xx_IRQ_EXT5; pdata->board_flags = FSL_GIANFAR_BRD_HAS_PHY_INTR;
pdata->phyid = 1; pdata->interruptPHY = MPC85xx_IRQ_EXT5;
/* fixup phy address */ pdata->phyid = 1;
pdata->phy_reg_addr += binfo->bi_immr_base; /* fixup phy address */
memcpy(pdata->mac_addr, binfo->bi_enet1addr, 6); pdata->phy_reg_addr += binfo->bi_immr_base;
memcpy(pdata->mac_addr, binfo->bi_enet1addr, 6);
}
pdata = (struct gianfar_platform_data *) ppc_sys_get_pdata(MPC85xx_eTSEC1);
if (pdata) {
pdata->board_flags = FSL_GIANFAR_BRD_HAS_PHY_INTR;
pdata->interruptPHY = MPC85xx_IRQ_EXT5;
pdata->phyid = 0;
/* fixup phy address */
pdata->phy_reg_addr += binfo->bi_immr_base;
memcpy(pdata->mac_addr, binfo->bi_enetaddr, 6);
}
pdata = (struct gianfar_platform_data *) ppc_sys_get_pdata(MPC85xx_eTSEC2);
if (pdata) {
pdata->board_flags = FSL_GIANFAR_BRD_HAS_PHY_INTR;
pdata->interruptPHY = MPC85xx_IRQ_EXT5;
pdata->phyid = 1;
/* fixup phy address */
pdata->phy_reg_addr += binfo->bi_immr_base;
memcpy(pdata->mac_addr, binfo->bi_enet1addr, 6);
}
ppc_sys_device_remove(MPC85xx_eTSEC3);
ppc_sys_device_remove(MPC85xx_eTSEC4);
#ifdef CONFIG_BLK_DEV_INITRD #ifdef CONFIG_BLK_DEV_INITRD
if (initrd_start) if (initrd_start)
......
...@@ -107,6 +107,7 @@ obj-$(CONFIG_83xx) += ipic.o ppc83xx_setup.o ppc_sys.o \ ...@@ -107,6 +107,7 @@ obj-$(CONFIG_83xx) += ipic.o ppc83xx_setup.o ppc_sys.o \
ifeq ($(CONFIG_83xx),y) ifeq ($(CONFIG_83xx),y)
obj-$(CONFIG_PCI) += indirect_pci.o pci_auto.o obj-$(CONFIG_PCI) += indirect_pci.o pci_auto.o
endif endif
obj-$(CONFIG_MPC8548_CDS) += todc_time.o
obj-$(CONFIG_MPC8555_CDS) += todc_time.o obj-$(CONFIG_MPC8555_CDS) += todc_time.o
obj-$(CONFIG_PPC_MPC52xx) += mpc52xx_setup.o mpc52xx_pic.o \ obj-$(CONFIG_PPC_MPC52xx) += mpc52xx_setup.o mpc52xx_pic.o \
mpc52xx_sys.o mpc52xx_devices.o ppc_sys.o mpc52xx_sys.o mpc52xx_devices.o ppc_sys.o
......
...@@ -133,7 +133,7 @@ mpc85xx_halt(void) ...@@ -133,7 +133,7 @@ mpc85xx_halt(void)
#ifdef CONFIG_PCI #ifdef CONFIG_PCI
#if defined(CONFIG_MPC8555_CDS) #if defined(CONFIG_MPC8555_CDS) || defined(CONFIG_MPC8548_CDS)
extern void mpc85xx_cds_enable_via(struct pci_controller *hose); extern void mpc85xx_cds_enable_via(struct pci_controller *hose);
extern void mpc85xx_cds_fixup_via(struct pci_controller *hose); extern void mpc85xx_cds_fixup_via(struct pci_controller *hose);
#endif #endif
...@@ -308,14 +308,14 @@ mpc85xx_setup_hose(void) ...@@ -308,14 +308,14 @@ mpc85xx_setup_hose(void)
ppc_md.pci_exclude_device = mpc85xx_exclude_device; ppc_md.pci_exclude_device = mpc85xx_exclude_device;
#if defined(CONFIG_MPC8555_CDS) #if defined(CONFIG_MPC8555_CDS) || defined(CONFIG_MPC8548_CDS)
/* Pre pciauto_bus_scan VIA init */ /* Pre pciauto_bus_scan VIA init */
mpc85xx_cds_enable_via(hose_a); mpc85xx_cds_enable_via(hose_a);
#endif #endif
hose_a->last_busno = pciauto_bus_scan(hose_a, hose_a->first_busno); hose_a->last_busno = pciauto_bus_scan(hose_a, hose_a->first_busno);
#if defined(CONFIG_MPC8555_CDS) #if defined(CONFIG_MPC8555_CDS) || defined(CONFIG_MPC8548_CDS)
/* Post pciauto_bus_scan VIA fixup */ /* Post pciauto_bus_scan VIA fixup */
mpc85xx_cds_fixup_via(hose_a); mpc85xx_cds_fixup_via(hose_a);
#endif #endif
......
...@@ -25,7 +25,7 @@ ...@@ -25,7 +25,7 @@
#ifdef CONFIG_MPC8540_ADS #ifdef CONFIG_MPC8540_ADS
#include <platforms/85xx/mpc8540_ads.h> #include <platforms/85xx/mpc8540_ads.h>
#endif #endif
#ifdef CONFIG_MPC8555_CDS #if defined(CONFIG_MPC8555_CDS) || defined(CONFIG_MPC8548_CDS)
#include <platforms/85xx/mpc8555_cds.h> #include <platforms/85xx/mpc8555_cds.h>
#endif #endif
#ifdef CONFIG_MPC8560_ADS #ifdef CONFIG_MPC8560_ADS
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment