* [U-Boot] [PATCH] pm9g45_v1.3: make ethernet works
@ 2011-01-27 15:15 Asen Dimov
2011-02-04 7:46 ` RONETIX - Asen Dimov
2011-04-11 11:05 ` Reinhard Meyer
0 siblings, 2 replies; 3+ messages in thread
From: Asen Dimov @ 2011-01-27 15:15 UTC (permalink / raw)
To: u-boot
Signed-off-by: Asen Dimov <dimov@ronetix.at>
---
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;
+ at91_rstc_t *rstc = (at91_rstc_t *) AT91_RSTC_BASE;
+ 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
#define CONFIG_NET_RETRY_COUNT 20
#define CONFIG_RESET_PHY_R 1
+#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"
/* USB */
#define CONFIG_USB_ATMEL
--
1.5.5.6
^ permalink raw reply related [flat|nested] 3+ messages in thread* [U-Boot] [PATCH] pm9g45_v1.3: make ethernet works
2011-01-27 15:15 [U-Boot] [PATCH] pm9g45_v1.3: make ethernet works Asen Dimov
@ 2011-02-04 7:46 ` RONETIX - Asen Dimov
2011-04-11 11:05 ` Reinhard Meyer
1 sibling, 0 replies; 3+ messages in thread
From: RONETIX - Asen Dimov @ 2011-02-04 7:46 UTC (permalink / raw)
To: u-boot
Hello,
Asen Dimov with Message-Id:
<1296141314-9580-1-git-send-email-dimov@ronetix.at> wrote:
> Signed-off-by: Asen Dimov <dimov@ronetix.at>
> ---
> 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;
> + at91_rstc_t *rstc = (at91_rstc_t *) AT91_RSTC_BASE;
> + 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
> #define CONFIG_NET_RETRY_COUNT 20
> #define CONFIG_RESET_PHY_R 1
> +#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"
>
> /* USB */
> #define CONFIG_USB_ATMEL
>
is this fix lost or there is something wrong with it?
Regards,
Asen
^ permalink raw reply [flat|nested] 3+ messages in thread* [U-Boot] [PATCH] pm9g45_v1.3: make ethernet works
2011-01-27 15:15 [U-Boot] [PATCH] pm9g45_v1.3: make ethernet works Asen Dimov
2011-02-04 7:46 ` RONETIX - Asen Dimov
@ 2011-04-11 11:05 ` Reinhard Meyer
1 sibling, 0 replies; 3+ messages in thread
From: Reinhard Meyer @ 2011-04-11 11:05 UTC (permalink / raw)
To: u-boot
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 <dimov@ronetix.at>
> ---
> 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
^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2011-04-11 11:05 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2011-01-27 15:15 [U-Boot] [PATCH] pm9g45_v1.3: make ethernet works Asen Dimov
2011-02-04 7:46 ` RONETIX - Asen Dimov
2011-04-11 11:05 ` Reinhard Meyer
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox