From mboxrd@z Thu Jan 1 00:00:00 1970 From: Reinhard Meyer Date: Mon, 11 Apr 2011 13:05:57 +0200 Subject: [U-Boot] [PATCH] pm9g45_v1.3: make ethernet works In-Reply-To: <1296141314-9580-1-git-send-email-dimov@ronetix.at> References: <1296141314-9580-1-git-send-email-dimov@ronetix.at> Message-ID: <4DA2E095.4020209@emk-elektronik.de> List-Id: MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit To: u-boot@lists.denx.de Dear Asen Dimov, sorry for the late reply. This patch needs to be rebased on top of u-boot-atmel/next, also please observe the following comments: > Signed-off-by: Asen Dimov > --- > board/ronetix/pm9g45/pm9g45.c | 15 +++++++++++++++ > include/configs/pm9g45.h | 5 +++++ > 2 files changed, 20 insertions(+), 0 deletions(-) > > diff --git a/board/ronetix/pm9g45/pm9g45.c b/board/ronetix/pm9g45/pm9g45.c > index 79b7c9d..0e1d6b2 100644 > --- a/board/ronetix/pm9g45/pm9g45.c > +++ b/board/ronetix/pm9g45/pm9g45.c > @@ -96,6 +96,8 @@ static void pm9g45_nand_hw_init(void) > static void pm9g45_macb_hw_init(void) > { > at91_pmc_t *pmc = (at91_pmc_t *) AT91_PMC_BASE; New name: ATMEL_BASE_PMC > + at91_rstc_t *rstc = (at91_rstc_t *) AT91_RSTC_BASE; New name: ATMEL_BASE_RSTC > + unsigned long erstl; > > /* > * PD2 enables the 50MHz oscillator for Ethernet PHY > @@ -120,6 +122,19 @@ static void pm9g45_macb_hw_init(void) > at91_set_pio_pullup(AT91_PIO_PORTA, 12, 0); > at91_set_pio_pullup(AT91_PIO_PORTA, 13, 0); > > + erstl = readl(&rstc->mr) & AT91_RSTC_MR_ERSTL_MASK; > + > + /* Need to reset PHY -> 500ms reset */ > + writel(AT91_RSTC_KEY | AT91_RSTC_MR_ERSTL(0x0D) | > + 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); > + > /* Re-enable pull-up */ > at91_set_pio_pullup(AT91_PIO_PORTA, 15, 1); > at91_set_pio_pullup(AT91_PIO_PORTA, 12, 1); > diff --git a/include/configs/pm9g45.h b/include/configs/pm9g45.h > index ec51ccf..4d8089f 100644 > --- a/include/configs/pm9g45.h > +++ b/include/configs/pm9g45.h > @@ -125,6 +125,11 @@ > #define CONFIG_NET_MULTI 1 Please no "1" where the define has no numerical significance, e.g. tested by #ifdef > #define CONFIG_NET_RETRY_COUNT 20 > #define CONFIG_RESET_PHY_R 1 ditto > +#define CONFIG_MACB_SEARCH_PHY > +#define CONFIG_CMD_MII > +#define CONFIG_OVERWRITE_ETHADDR_ONCE > +/* MAC is Organizationally Unique Identifier + 3 octects user numbers */ > +#define CONFIG_ETHADDR "02:00:00:fe:ed:00" This is not an official OUI, neither should it be defined as a constant here... However I am not sure what the rules for boards are that apparently lack a storage medium for board-unique MAC adresses...? Wolfgang? > > /* USB */ > #define CONFIG_USB_ATMEL