From 0ee84b88b78bce425190d8cd7adf4c30cba0c2f0 Mon Sep 17 00:00:00 2001 From: Ed Swarthout Date: Tue, 24 Feb 2009 02:37:59 -0600 Subject: [PATCH 1/4] Fix mpc85xx ddr-gen3 ddr_sdram_cfg. Commit e1be0d25, "32bit BUg fix for DDR2 on 8572" prevented other sdram_cfg bits (such as ecc and self_refresh_in_sleep) from being set. Signed-off-by: Ed Swarthout --- cpu/mpc85xx/ddr-gen3.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/cpu/mpc85xx/ddr-gen3.c b/cpu/mpc85xx/ddr-gen3.c index 8dc2b3a..99c325a 100644 --- a/cpu/mpc85xx/ddr-gen3.c +++ b/cpu/mpc85xx/ddr-gen3.c @@ -79,8 +79,8 @@ void fsl_ddr_set_memctl_regs(const fsl_ddr_cfg_regs_t *regs, out_be32(&ddr->ddr_sdram_rcw_1, regs->ddr_sdram_rcw_1); out_be32(&ddr->ddr_sdram_rcw_2, regs->ddr_sdram_rcw_2); - /* Do not enable the memory */ - temp_sdram_cfg = in_be32(&ddr->sdram_cfg); + /* Set, but do not enable the memory */ + temp_sdram_cfg = regs->ddr_sdram_cfg; temp_sdram_cfg &= ~(SDRAM_CFG_MEM_EN); out_be32(&ddr->sdram_cfg, temp_sdram_cfg); /* From 48c2b7bb432da84fcce05b4db6efad0be73a93dc Mon Sep 17 00:00:00 2001 From: Andy Fleming Date: Fri, 6 Mar 2009 19:05:52 -0600 Subject: [PATCH 2/4] fsl: Remove unnecessary debug printfs These were left in accidentally, and are not really useful unless the code is as broken as it was when it was being developed. Signed-off-by: Andy Fleming --- board/freescale/common/sgmii_riser.c | 3 --- 1 file changed, 3 deletions(-) diff --git a/board/freescale/common/sgmii_riser.c b/board/freescale/common/sgmii_riser.c index aeacb91..4f40a1d 100644 --- a/board/freescale/common/sgmii_riser.c +++ b/board/freescale/common/sgmii_riser.c @@ -47,7 +47,6 @@ void fsl_sgmii_riser_fdt_fixup(void *fdt) const char *model; const char *path; - printf("Updating PHY address for %s\n", dev->name); if (!strstr(dev->name, "eTSEC")) continue; @@ -64,7 +63,6 @@ void fsl_sgmii_riser_fdt_fixup(void *fdt) model = fdt_getprop(fdt, enet_node, "model", NULL); - printf("%s's model is %s\n", enet, model); /* * We only want to do this to eTSECs. On some platforms * there are more than one type of gianfar-style ethernet @@ -84,7 +82,6 @@ void fsl_sgmii_riser_fdt_fixup(void *fdt) priv = dev->priv; - printf("Device flags are %x\n", priv->flags); if (priv->flags & TSEC_SGMII) fdt_setprop_cell(fdt, phynode, "reg", priv->phyaddr); } From 49b5aff491bd574935ecaf8545152066a25eff3d Mon Sep 17 00:00:00 2001 From: "ksi@koi8.net" Date: Mon, 23 Feb 2009 10:53:13 -0800 Subject: [PATCH 3/4] Add eTSEC 1/2 IO override control (corrected) This adds tsec12ioovcr to include/asm-ppc/immap_85xx.h (was reserved.) Signed-off-by: Sergey Kubushyn --- include/asm-ppc/immap_85xx.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/include/asm-ppc/immap_85xx.h b/include/asm-ppc/immap_85xx.h index 7b97fe0..094fb9c 100644 --- a/include/asm-ppc/immap_85xx.h +++ b/include/asm-ppc/immap_85xx.h @@ -1667,7 +1667,7 @@ typedef struct ccsr_gur { uint lbiuiplldcr0; /* 0xe0f1c -- LBIU PLL Debug Reg 0 */ uint lbiuiplldcr1; /* 0xe0f20 -- LBIU PLL Debug Reg 1 */ uint ddrioovcr; /* 0xe0f24 - DDR IO Override Control */ - uint res14; /* 0xe0f28 */ + uint tsec12ioovcr; /* 0xe0f28 - eTSEC 1/2 IO override control */ uint tsec34ioovcr; /* 0xe0f2c - eTSEC 3/4 IO override control */ char res15[61648]; /* 0xe0f30 to 0xefffff */ } ccsr_gur_t; From 0452352df118bc9dd684a056aaaa5fb4aed1178a Mon Sep 17 00:00:00 2001 From: Paul Gortmaker Date: Mon, 9 Mar 2009 18:07:53 -0500 Subject: [PATCH 4/4] tsec: report when there is no vendor specific PHY support Commit af1c2b84 added a generic phy support, with an ID of zero and a 32 bit mask; meaning that it will match on any PHY ID. The problem is that there is a test that checked if a matching PHY was found, and if not, it printed the non-matching ID. But since there will always be a match (on the generic PHY, worst case), this test will never trip. In the case of a misconfigured PHY address, or of a PHY that isn't explicitly supported outside of the generic support, you will never see the ID of 0xffffffff, or the ID of the real (but unsupported) chip. It will silently fall through onto the generic support. This change makes that test useful again, and ensures that the selection of generic PHY support doesn't happen without some sort of notice. It also makes it explicitly clear that the generic PHY must be last in the PHY table. Signed-off-by: Paul Gortmaker Acked-by: Andy Fleming --- drivers/net/tsec.c | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/drivers/net/tsec.c b/drivers/net/tsec.c index 1f5d1b4..399116f 100644 --- a/drivers/net/tsec.c +++ b/drivers/net/tsec.c @@ -1624,7 +1624,7 @@ struct phy_info *phy_info[] = { &phy_info_VSC8601, &phy_info_dp83865, &phy_info_rtl8211b, - &phy_info_generic, + &phy_info_generic, /* must be last; has ID 0 and 32 bit mask */ NULL }; @@ -1656,9 +1656,8 @@ struct phy_info *get_phy_info(struct eth_device *dev) } } - if (theInfo == NULL) { - printf("%s: PHY id %x is not supported!\n", dev->name, phy_ID); - return NULL; + if (theInfo == &phy_info_generic) { + printf("%s: No support for PHY id %x; assuming generic\n", dev->name, phy_ID); } else { debug("%s: PHY is %s (%x)\n", dev->name, theInfo->name, phy_ID); }