Hi:
  I work on one board based on at9g25evk board now. I find one issue that phy 
IC isn't reset, so network can't work. Only the different crystal with evk 
board is connected to PHY IC. I copy the phy-reset part of at9260 to at9g25. It 
can work now. Please the maintainer of at9gx5 check this. The modification I do 
is as below:


+
+#ifdef CONFIG_MACB
+int at91sam9x5ek_macb_hw_init(void)
+{
+        struct at91_pmc *pmc = (struct at91_pmc *)ATMEL_BASE_PMC;
+        struct at91_port *pioa = (struct at91_port *)ATMEL_BASE_PIOA;
+       struct at91_rstc *rstc = (struct at91_rstc *)ATMEL_BASE_RSTC;
+       unsigned long erstl;
+
+        /* Enable EMAC clock */
+        writel(1 << ATMEL_ID_EMAC0, &pmc->pcer);
+
+       erstl = readl(&rstc->mr) & AT91_RSTC_MR_ERSTL_MASK;
+
+       /* Need to reset PHY -> 500ms reset */
+       writel(AT91_RSTC_KEY | AT91_RSTC_MR_ERSTL(13) |
+                       AT91_RSTC_MR_URSTEN, &rstc->mr);
+
+       writel(AT91_RSTC_KEY | AT91_RSTC_CR_EXTRST, &rstc->cr);
+
+       /* Wait for end hardware reset */
+       while (!(readl(&rstc->sr) & AT91_RSTC_SR_NRSTL))
+               ;
+
+       /* Restore NRST value */
+       writel(AT91_RSTC_KEY | erstl | AT91_RSTC_MR_URSTEN,
+                       &rstc->mr);
+
+       at91_macb_hw_init();
+}
+#endif


 
Best Regards,
Alex
_______________________________________________
U-Boot mailing list
[email protected]
http://lists.denx.de/mailman/listinfo/u-boot

Reply via email to