* [U-Boot] [PATCH 0/2] Add usb eth support
@ 2013-10-19 6:49 Inderpal Singh
2013-10-19 6:49 ` [U-Boot] [PATCH 1/2] usb: ehci: exynos: set/reset hsic phys Inderpal Singh
` (2 more replies)
0 siblings, 3 replies; 12+ messages in thread
From: Inderpal Singh @ 2013-10-19 6:49 UTC (permalink / raw)
To: u-boot
From: Chander Kashyap <chander.kashyap@linaro.org>
Arndale board has AX88760, which is USB 2.0 Hub & USB 2.0 Ethernet Combo
controller, connected to HSIC Phy of USB host controller via USB3503 hub.
This patchset add support for this usb ethernet controllor.
Chander Kashyap (1):
exynos5: arndale: Add network support
Inderpal Singh (1):
usb: ehci: exynos: set/reset hsic phys
arch/arm/include/asm/arch-exynos/ehci.h | 14 +++++++++
board/samsung/arndale/arndale.c | 23 +++++++++++++++
drivers/usb/host/ehci-exynos.c | 48 +++++++++++++++++++++++++++++++
include/configs/arndale.h | 6 ++++
4 files changed, 91 insertions(+)
--
1.7.9.5
^ permalink raw reply [flat|nested] 12+ messages in thread
* [U-Boot] [PATCH 1/2] usb: ehci: exynos: set/reset hsic phys
2013-10-19 6:49 [U-Boot] [PATCH 0/2] Add usb eth support Inderpal Singh
@ 2013-10-19 6:49 ` Inderpal Singh
2013-10-19 6:49 ` [U-Boot] [PATCH 2/2] exynos5: arndale: Add network support Inderpal Singh
2013-11-19 5:39 ` [U-Boot] [PATCH 0/2] Add usb eth support Chander Kashyap
2 siblings, 0 replies; 12+ messages in thread
From: Inderpal Singh @ 2013-10-19 6:49 UTC (permalink / raw)
To: u-boot
The controller has 3 ports. The port0 is for USB 2.0 Phy, port1 and port2
are for HSIC phys. The usb 2.0 phy is already being setup. This patch
sets up the hsic phys.
Signed-off-by: Inderpal Singh <inderpal.singh@linaro.org>
---
arch/arm/include/asm/arch-exynos/ehci.h | 14 +++++++++++
drivers/usb/host/ehci-exynos.c | 39 +++++++++++++++++++++++++++++++
2 files changed, 53 insertions(+)
diff --git a/arch/arm/include/asm/arch-exynos/ehci.h b/arch/arm/include/asm/arch-exynos/ehci.h
index d79f25c..d2d70bd 100644
--- a/arch/arm/include/asm/arch-exynos/ehci.h
+++ b/arch/arm/include/asm/arch-exynos/ehci.h
@@ -29,6 +29,20 @@
#define EHCICTRL_ENAINCR8 (1 << 27)
#define EHCICTRL_ENAINCR16 (1 << 26)
+#define HSIC_CTRL_REFCLKSEL (0x2)
+#define HSIC_CTRL_REFCLKSEL_MASK (0x3)
+#define HSIC_CTRL_REFCLKSEL_SHIFT (23)
+
+#define HSIC_CTRL_REFCLKDIV_12 (0x24)
+#define HSIC_CTRL_REFCLKDIV_MASK (0x7f)
+#define HSIC_CTRL_REFCLKDIV_SHIFT (16)
+
+#define HSIC_CTRL_SIDDQ (0x1 << 6)
+#define HSIC_CTRL_FORCESLEEP (0x1 << 5)
+#define HSIC_CTRL_FORCESUSPEND (0x1 << 4)
+#define HSIC_CTRL_UTMISWRST (0x1 << 2)
+#define HSIC_CTRL_PHYSWRST (0x1 << 0)
+
/* Register map for PHY control */
struct exynos_usb_phy {
unsigned int usbphyctrl0;
diff --git a/drivers/usb/host/ehci-exynos.c b/drivers/usb/host/ehci-exynos.c
index 155677e..50fbf36 100644
--- a/drivers/usb/host/ehci-exynos.c
+++ b/drivers/usb/host/ehci-exynos.c
@@ -83,6 +83,8 @@ static int exynos_usb_parse_dt(const void *blob, struct exynos_ehci *exynos)
/* Setup the EHCI host controller. */
static void setup_usb_phy(struct exynos_usb_phy *usb)
{
+ u32 hsic_ctrl;
+
set_usbhost_mode(USB20_PHY_CFG_HOST_LINK_EN);
set_usbhost_phy_ctrl(POWER_USB_HOST_PHY_CTRL_EN);
@@ -107,6 +109,32 @@ static void setup_usb_phy(struct exynos_usb_phy *usb)
clrbits_le32(&usb->usbphyctrl0,
HOST_CTRL0_LINKSWRST |
HOST_CTRL0_UTMISWRST);
+
+ /* HSIC Phy Setting */
+ hsic_ctrl = (HSIC_CTRL_FORCESUSPEND |
+ HSIC_CTRL_FORCESLEEP |
+ HSIC_CTRL_SIDDQ);
+
+ clrbits_le32(&usb->hsicphyctrl1, hsic_ctrl);
+ clrbits_le32(&usb->hsicphyctrl2, hsic_ctrl);
+
+ hsic_ctrl = (((HSIC_CTRL_REFCLKDIV_12 & HSIC_CTRL_REFCLKDIV_MASK)
+ << HSIC_CTRL_REFCLKDIV_SHIFT)
+ | ((HSIC_CTRL_REFCLKSEL & HSIC_CTRL_REFCLKSEL_MASK)
+ << HSIC_CTRL_REFCLKSEL_SHIFT)
+ | HSIC_CTRL_UTMISWRST);
+
+ setbits_le32(&usb->hsicphyctrl1, hsic_ctrl);
+ setbits_le32(&usb->hsicphyctrl2, hsic_ctrl);
+
+ udelay(10);
+
+ clrbits_le32(&usb->hsicphyctrl1, HSIC_CTRL_PHYSWRST |
+ HSIC_CTRL_UTMISWRST);
+
+ clrbits_le32(&usb->hsicphyctrl2, HSIC_CTRL_PHYSWRST |
+ HSIC_CTRL_UTMISWRST);
+
udelay(20);
/* EHCI Ctrl setting */
@@ -120,6 +148,8 @@ static void setup_usb_phy(struct exynos_usb_phy *usb)
/* Reset the EHCI host controller. */
static void reset_usb_phy(struct exynos_usb_phy *usb)
{
+ u32 hsic_ctrl;
+
/* HOST_PHY reset */
setbits_le32(&usb->usbphyctrl0,
HOST_CTRL0_PHYSWRST |
@@ -128,6 +158,15 @@ static void reset_usb_phy(struct exynos_usb_phy *usb)
HOST_CTRL0_FORCESUSPEND |
HOST_CTRL0_FORCESLEEP);
+ /* HSIC Phy reset */
+ hsic_ctrl = (HSIC_CTRL_FORCESUSPEND |
+ HSIC_CTRL_FORCESLEEP |
+ HSIC_CTRL_SIDDQ |
+ HSIC_CTRL_PHYSWRST);
+
+ setbits_le32(&usb->hsicphyctrl1, hsic_ctrl);
+ setbits_le32(&usb->hsicphyctrl2, hsic_ctrl);
+
set_usbhost_phy_ctrl(POWER_USB_HOST_PHY_CTRL_DISABLE);
}
--
1.7.9.5
^ permalink raw reply related [flat|nested] 12+ messages in thread
* [U-Boot] [PATCH 2/2] exynos5: arndale: Add network support
2013-10-19 6:49 [U-Boot] [PATCH 0/2] Add usb eth support Inderpal Singh
2013-10-19 6:49 ` [U-Boot] [PATCH 1/2] usb: ehci: exynos: set/reset hsic phys Inderpal Singh
@ 2013-10-19 6:49 ` Inderpal Singh
2013-12-12 10:03 ` Marek Vasut
2013-11-19 5:39 ` [U-Boot] [PATCH 0/2] Add usb eth support Chander Kashyap
2 siblings, 1 reply; 12+ messages in thread
From: Inderpal Singh @ 2013-10-19 6:49 UTC (permalink / raw)
To: u-boot
From: Chander Kashyap <chander.kashyap@linaro.org>
Arndale board has AX88760, which is USB 2.0 Hub & USB 2.0 Ethernet Combo
controller, connected to HSIC Phy of USB host controller via USB3503 hub.
This patch implements a board specific board_usb_init function in ehci driver
to perform reset sequence for USB3503 hub and enables the relevant config
options for network to work.
Signed-off-by: Inderpal Singh <inderpal.singh@linaro.org>
Signed-off-by: Chander Kashyap <chander.kashyap@linaro.org>
---
board/samsung/arndale/arndale.c | 23 +++++++++++++++++++++++
drivers/usb/host/ehci-exynos.c | 9 +++++++++
include/configs/arndale.h | 6 ++++++
3 files changed, 38 insertions(+)
diff --git a/board/samsung/arndale/arndale.c b/board/samsung/arndale/arndale.c
index 052fecd..44f20b9 100644
--- a/board/samsung/arndale/arndale.c
+++ b/board/samsung/arndale/arndale.c
@@ -7,10 +7,23 @@
#include <common.h>
#include <asm/arch/pinmux.h>
#include <asm/arch/dwmmc.h>
+#include <asm/arch/gpio.h>
#include <asm/arch/power.h>
DECLARE_GLOBAL_DATA_PTR;
+#ifdef CONFIG_USB_EHCI_EXYNOS
+void board_usb_init(int value)
+{
+ struct exynos5_gpio_part1 *gpio = (struct exynos5_gpio_part1 *)
+ samsung_get_base_gpio_part1();
+
+ /* Configure gpios for usb 3503 hub's reset and connect */
+ s5p_gpio_direction_output(&gpio->x3, 5, value);
+ s5p_gpio_direction_output(&gpio->d1, 7, value);
+}
+#endif
+
int board_init(void)
{
gd->bd->bi_boot_params = (PHYS_SDRAM_1 + 0x100UL);
@@ -91,6 +104,16 @@ int board_early_init_f(void)
}
#endif
+#ifdef CONFIG_BOARD_LATE_INIT
+int board_late_init(void)
+{
+#ifdef CONFIG_PREBOOT
+ setenv("preboot", CONFIG_PREBOOT);
+ setenv("usbethaddr", "00:40:5c:26:0a:5b");
+#endif
+}
+#endif
+
#ifdef CONFIG_DISPLAY_BOARDINFO
int checkboard(void)
{
diff --git a/drivers/usb/host/ehci-exynos.c b/drivers/usb/host/ehci-exynos.c
index 50fbf36..cba450e 100644
--- a/drivers/usb/host/ehci-exynos.c
+++ b/drivers/usb/host/ehci-exynos.c
@@ -170,6 +170,11 @@ static void reset_usb_phy(struct exynos_usb_phy *usb)
set_usbhost_phy_ctrl(POWER_USB_HOST_PHY_CTRL_DISABLE);
}
+inline void __board_usb_init(int value)
+{
+}
+void board_usb_init(int) __attribute__((weak, alias("__board_usb_init")));
+
/*
* EHCI-initialization
* Create the appropriate control structures to manage
@@ -189,8 +194,12 @@ int ehci_hcd_init(int index, struct ehci_hccr **hccr, struct ehci_hcor **hcor)
ctx->hcd = (struct ehci_hccr *)samsung_get_base_usb_ehci();
#endif
+ board_usb_init(0);
+
setup_usb_phy(ctx->usb);
+ board_usb_init(1);
+
*hccr = ctx->hcd;
*hcor = (struct ehci_hcor *)((uint32_t) *hccr
+ HC_LENGTH(ehci_readl(&(*hccr)->cr_capbase)));
diff --git a/include/configs/arndale.h b/include/configs/arndale.h
index ed44a04..ea24661 100644
--- a/include/configs/arndale.h
+++ b/include/configs/arndale.h
@@ -116,6 +116,10 @@
#define CONFIG_USB_EHCI_EXYNOS
#define CONFIG_USB_STORAGE
+#define CONFIG_SYS_USB_EHCI_MAX_ROOT_PORTS 3
+#define CONFIG_USB_HOST_ETHER
+#define CONFIG_USB_ETHER_ASIX
+#define CONFIG_PREBOOT "usb start"
/* MMC SPL */
#define CONFIG_SPL
#define COPY_BL2_FNPTR_ADDR 0x02020030
@@ -179,6 +183,8 @@
#define CONFIG_ENV_IS_IN_MMC
#define CONFIG_SECURE_BL1_ONLY
+#define CONFIG_BOARD_LATE_INIT
+
/* Secure FW size configuration */
#ifdef CONFIG_SECURE_BL1_ONLY
#define CONFIG_SEC_FW_SIZE (8 << 10) /* 8KB */
--
1.7.9.5
^ permalink raw reply related [flat|nested] 12+ messages in thread
* [U-Boot] [PATCH 0/2] Add usb eth support
2013-10-19 6:49 [U-Boot] [PATCH 0/2] Add usb eth support Inderpal Singh
2013-10-19 6:49 ` [U-Boot] [PATCH 1/2] usb: ehci: exynos: set/reset hsic phys Inderpal Singh
2013-10-19 6:49 ` [U-Boot] [PATCH 2/2] exynos5: arndale: Add network support Inderpal Singh
@ 2013-11-19 5:39 ` Chander Kashyap
2013-12-02 10:21 ` Chander Kashyap
2 siblings, 1 reply; 12+ messages in thread
From: Chander Kashyap @ 2013-11-19 5:39 UTC (permalink / raw)
To: u-boot
Ping..
On 19 October 2013 12:19, Inderpal Singh <chander.kashyap@linaro.org> wrote:
> From: Chander Kashyap <chander.kashyap@linaro.org>
>
> Arndale board has AX88760, which is USB 2.0 Hub & USB 2.0 Ethernet Combo
> controller, connected to HSIC Phy of USB host controller via USB3503 hub.
>
> This patchset add support for this usb ethernet controllor.
>
> Chander Kashyap (1):
> exynos5: arndale: Add network support
>
> Inderpal Singh (1):
> usb: ehci: exynos: set/reset hsic phys
>
> arch/arm/include/asm/arch-exynos/ehci.h | 14 +++++++++
> board/samsung/arndale/arndale.c | 23 +++++++++++++++
> drivers/usb/host/ehci-exynos.c | 48 +++++++++++++++++++++++++++++++
> include/configs/arndale.h | 6 ++++
> 4 files changed, 91 insertions(+)
>
> --
> 1.7.9.5
>
--
with warm regards,
Chander Kashyap
^ permalink raw reply [flat|nested] 12+ messages in thread
* [U-Boot] [PATCH 0/2] Add usb eth support
2013-11-19 5:39 ` [U-Boot] [PATCH 0/2] Add usb eth support Chander Kashyap
@ 2013-12-02 10:21 ` Chander Kashyap
2013-12-12 8:24 ` Minkyu Kang
0 siblings, 1 reply; 12+ messages in thread
From: Chander Kashyap @ 2013-12-02 10:21 UTC (permalink / raw)
To: u-boot
Ping
On 19 November 2013 11:09, Chander Kashyap <chander.kashyap@linaro.org> wrote:
> Ping..
>
> On 19 October 2013 12:19, Inderpal Singh <chander.kashyap@linaro.org> wrote:
>> From: Chander Kashyap <chander.kashyap@linaro.org>
>>
>> Arndale board has AX88760, which is USB 2.0 Hub & USB 2.0 Ethernet Combo
>> controller, connected to HSIC Phy of USB host controller via USB3503 hub.
>>
>> This patchset add support for this usb ethernet controllor.
>>
>> Chander Kashyap (1):
>> exynos5: arndale: Add network support
>>
>> Inderpal Singh (1):
>> usb: ehci: exynos: set/reset hsic phys
>>
>> arch/arm/include/asm/arch-exynos/ehci.h | 14 +++++++++
>> board/samsung/arndale/arndale.c | 23 +++++++++++++++
>> drivers/usb/host/ehci-exynos.c | 48 +++++++++++++++++++++++++++++++
>> include/configs/arndale.h | 6 ++++
>> 4 files changed, 91 insertions(+)
>>
>> --
>> 1.7.9.5
>>
>
>
>
> --
> with warm regards,
> Chander Kashyap
--
with warm regards,
Chander Kashyap
^ permalink raw reply [flat|nested] 12+ messages in thread
* [U-Boot] [PATCH 0/2] Add usb eth support
2013-12-02 10:21 ` Chander Kashyap
@ 2013-12-12 8:24 ` Minkyu Kang
2013-12-12 10:04 ` Marek Vasut
0 siblings, 1 reply; 12+ messages in thread
From: Minkyu Kang @ 2013-12-12 8:24 UTC (permalink / raw)
To: u-boot
Dear Marek Vasut,
please check this patchset.
This patchset is delegated to you.
http://patchwork.ozlabs.org/patch/284845/
http://patchwork.ozlabs.org/patch/284839/
On 02/12/13 19:21, Chander Kashyap wrote:
> Ping
>
> On 19 November 2013 11:09, Chander Kashyap <chander.kashyap@linaro.org> wrote:
>> Ping..
>>
>> On 19 October 2013 12:19, Inderpal Singh <chander.kashyap@linaro.org> wrote:
>>> From: Chander Kashyap <chander.kashyap@linaro.org>
>>>
>>> Arndale board has AX88760, which is USB 2.0 Hub & USB 2.0 Ethernet Combo
>>> controller, connected to HSIC Phy of USB host controller via USB3503 hub.
>>>
>>> This patchset add support for this usb ethernet controllor.
>>>
>>> Chander Kashyap (1):
>>> exynos5: arndale: Add network support
>>>
>>> Inderpal Singh (1):
>>> usb: ehci: exynos: set/reset hsic phys
>>>
>>> arch/arm/include/asm/arch-exynos/ehci.h | 14 +++++++++
>>> board/samsung/arndale/arndale.c | 23 +++++++++++++++
>>> drivers/usb/host/ehci-exynos.c | 48 +++++++++++++++++++++++++++++++
>>> include/configs/arndale.h | 6 ++++
>>> 4 files changed, 91 insertions(+)
>>>
>>> --
>>> 1.7.9.5
>>>
>>
>>
>>
>> --
>> with warm regards,
>> Chander Kashyap
>
>
>
Thanks,
Minkyu Kang.
^ permalink raw reply [flat|nested] 12+ messages in thread
* [U-Boot] [PATCH 2/2] exynos5: arndale: Add network support
2013-10-19 6:49 ` [U-Boot] [PATCH 2/2] exynos5: arndale: Add network support Inderpal Singh
@ 2013-12-12 10:03 ` Marek Vasut
2013-12-14 14:00 ` Inderpal Singh
0 siblings, 1 reply; 12+ messages in thread
From: Marek Vasut @ 2013-12-12 10:03 UTC (permalink / raw)
To: u-boot
On Saturday, October 19, 2013 at 08:49:27 AM, Inderpal Singh wrote:
> From: Chander Kashyap <chander.kashyap@linaro.org>
>
> Arndale board has AX88760, which is USB 2.0 Hub & USB 2.0 Ethernet Combo
> controller, connected to HSIC Phy of USB host controller via USB3503 hub.
>
> This patch implements a board specific board_usb_init function in ehci
> driver to perform reset sequence for USB3503 hub and enables the relevant
> config options for network to work.
>
> Signed-off-by: Inderpal Singh <inderpal.singh@linaro.org>
> Signed-off-by: Chander Kashyap <chander.kashyap@linaro.org>
> ---
> board/samsung/arndale/arndale.c | 23 +++++++++++++++++++++++
> drivers/usb/host/ehci-exynos.c | 9 +++++++++
> include/configs/arndale.h | 6 ++++++
> 3 files changed, 38 insertions(+)
>
> diff --git a/board/samsung/arndale/arndale.c
> b/board/samsung/arndale/arndale.c index 052fecd..44f20b9 100644
> --- a/board/samsung/arndale/arndale.c
> +++ b/board/samsung/arndale/arndale.c
> @@ -7,10 +7,23 @@
> #include <common.h>
> #include <asm/arch/pinmux.h>
> #include <asm/arch/dwmmc.h>
> +#include <asm/arch/gpio.h>
> #include <asm/arch/power.h>
>
> DECLARE_GLOBAL_DATA_PTR;
>
> +#ifdef CONFIG_USB_EHCI_EXYNOS
> +void board_usb_init(int value)
> +{
> + struct exynos5_gpio_part1 *gpio = (struct exynos5_gpio_part1 *)
> + samsung_get_base_gpio_part1();
> +
> + /* Configure gpios for usb 3503 hub's reset and connect */
> + s5p_gpio_direction_output(&gpio->x3, 5, value);
> + s5p_gpio_direction_output(&gpio->d1, 7, value);
> +}
> +#endif
> +
> int board_init(void)
> {
> gd->bd->bi_boot_params = (PHYS_SDRAM_1 + 0x100UL);
> @@ -91,6 +104,16 @@ int board_early_init_f(void)
> }
> #endif
>
> +#ifdef CONFIG_BOARD_LATE_INIT
> +int board_late_init(void)
> +{
> +#ifdef CONFIG_PREBOOT
> + setenv("preboot", CONFIG_PREBOOT);
> + setenv("usbethaddr", "00:40:5c:26:0a:5b");
Why do you need these 'setenv' calls ? This logic seems completely broken. The
'preboot' env variable is set already by defining the CONFIG_PREBOOT and the
usbethaddr shall be set by user.
[...]
^ permalink raw reply [flat|nested] 12+ messages in thread
* [U-Boot] [PATCH 0/2] Add usb eth support
2013-12-12 8:24 ` Minkyu Kang
@ 2013-12-12 10:04 ` Marek Vasut
0 siblings, 0 replies; 12+ messages in thread
From: Marek Vasut @ 2013-12-12 10:04 UTC (permalink / raw)
To: u-boot
On Thursday, December 12, 2013 at 09:24:48 AM, Minkyu Kang wrote:
> Dear Marek Vasut,
>
> please check this patchset.
> This patchset is delegated to you.
>
> http://patchwork.ozlabs.org/patch/284845/
> http://patchwork.ozlabs.org/patch/284839/
I did check them now. The patches didn't have 'usb:' tag on them nor was I on
CC, so I missed them. Thanks for bringing them to my attention.
Best regards,
Marek Vasut
^ permalink raw reply [flat|nested] 12+ messages in thread
* [U-Boot] [PATCH 2/2] exynos5: arndale: Add network support
2013-12-12 10:03 ` Marek Vasut
@ 2013-12-14 14:00 ` Inderpal Singh
2013-12-14 14:20 ` Marek Vasut
0 siblings, 1 reply; 12+ messages in thread
From: Inderpal Singh @ 2013-12-14 14:00 UTC (permalink / raw)
To: u-boot
Hi Marek,
Thanks for the review.
On 12 December 2013 19:03, Marek Vasut <marex@denx.de> wrote:
> On Saturday, October 19, 2013 at 08:49:27 AM, Inderpal Singh wrote:
> > From: Chander Kashyap <chander.kashyap@linaro.org>
> >
> > Arndale board has AX88760, which is USB 2.0 Hub & USB 2.0 Ethernet Combo
> > controller, connected to HSIC Phy of USB host controller via USB3503 hub.
> >
> > This patch implements a board specific board_usb_init function in ehci
> > driver to perform reset sequence for USB3503 hub and enables the relevant
> > config options for network to work.
> >
> > Signed-off-by: Inderpal Singh <inderpal.singh@linaro.org>
> > Signed-off-by: Chander Kashyap <chander.kashyap@linaro.org>
> > ---
> > board/samsung/arndale/arndale.c | 23 +++++++++++++++++++++++
> > drivers/usb/host/ehci-exynos.c | 9 +++++++++
> > include/configs/arndale.h | 6 ++++++
> > 3 files changed, 38 insertions(+)
> >
> > diff --git a/board/samsung/arndale/arndale.c
> > b/board/samsung/arndale/arndale.c index 052fecd..44f20b9 100644
> > --- a/board/samsung/arndale/arndale.c
> > +++ b/board/samsung/arndale/arndale.c
> > @@ -7,10 +7,23 @@
> > #include <common.h>
> > #include <asm/arch/pinmux.h>
> > #include <asm/arch/dwmmc.h>
> > +#include <asm/arch/gpio.h>
> > #include <asm/arch/power.h>
> >
> > DECLARE_GLOBAL_DATA_PTR;
> >
> > +#ifdef CONFIG_USB_EHCI_EXYNOS
> > +void board_usb_init(int value)
> > +{
> > + struct exynos5_gpio_part1 *gpio = (struct exynos5_gpio_part1 *)
> > +
> samsung_get_base_gpio_part1();
> > +
> > + /* Configure gpios for usb 3503 hub's reset and connect */
> > + s5p_gpio_direction_output(&gpio->x3, 5, value);
> > + s5p_gpio_direction_output(&gpio->d1, 7, value);
> > +}
> > +#endif
> > +
> > int board_init(void)
> > {
> > gd->bd->bi_boot_params = (PHYS_SDRAM_1 + 0x100UL);
> > @@ -91,6 +104,16 @@ int board_early_init_f(void)
> > }
> > #endif
> >
> > +#ifdef CONFIG_BOARD_LATE_INIT
> > +int board_late_init(void)
> > +{
> > +#ifdef CONFIG_PREBOOT
> > + setenv("preboot", CONFIG_PREBOOT);
> > + setenv("usbethaddr", "00:40:5c:26:0a:5b");
>
> Why do you need these 'setenv' calls ? This logic seems completely broken.
> The
> 'preboot' env variable is set already by defining the CONFIG_PREBOOT and
> the
> usbethaddr shall be set by user.
>
Since arndale is a development board so this was done so that user
(developer) does not has to set usbethaddr on every boot. If its redundant
then I will remove this in the next version of the patchset.
Thanks,
Inder
> [...]
> _______________________________________________
> U-Boot mailing list
> U-Boot at lists.denx.de
> http://lists.denx.de/mailman/listinfo/u-boot
>
^ permalink raw reply [flat|nested] 12+ messages in thread
* [U-Boot] [PATCH 2/2] exynos5: arndale: Add network support
2013-12-14 14:00 ` Inderpal Singh
@ 2013-12-14 14:20 ` Marek Vasut
2013-12-14 14:28 ` Inderpal Singh
0 siblings, 1 reply; 12+ messages in thread
From: Marek Vasut @ 2013-12-14 14:20 UTC (permalink / raw)
To: u-boot
On Saturday, December 14, 2013 at 03:00:39 PM, Inderpal Singh wrote:
> Hi Marek,
>
> Thanks for the review.
>
> On 12 December 2013 19:03, Marek Vasut <marex@denx.de> wrote:
> > On Saturday, October 19, 2013 at 08:49:27 AM, Inderpal Singh wrote:
> > > From: Chander Kashyap <chander.kashyap@linaro.org>
> > >
> > > Arndale board has AX88760, which is USB 2.0 Hub & USB 2.0 Ethernet
> > > Combo controller, connected to HSIC Phy of USB host controller via
> > > USB3503 hub.
> > >
> > > This patch implements a board specific board_usb_init function in ehci
> > > driver to perform reset sequence for USB3503 hub and enables the
> > > relevant config options for network to work.
> > >
> > > Signed-off-by: Inderpal Singh <inderpal.singh@linaro.org>
> > > Signed-off-by: Chander Kashyap <chander.kashyap@linaro.org>
> > > ---
> > >
> > > board/samsung/arndale/arndale.c | 23 +++++++++++++++++++++++
> > > drivers/usb/host/ehci-exynos.c | 9 +++++++++
> > > include/configs/arndale.h | 6 ++++++
> > > 3 files changed, 38 insertions(+)
> > >
> > > diff --git a/board/samsung/arndale/arndale.c
> > > b/board/samsung/arndale/arndale.c index 052fecd..44f20b9 100644
> > > --- a/board/samsung/arndale/arndale.c
> > > +++ b/board/samsung/arndale/arndale.c
> > > @@ -7,10 +7,23 @@
> > >
> > > #include <common.h>
> > > #include <asm/arch/pinmux.h>
> > > #include <asm/arch/dwmmc.h>
> > >
> > > +#include <asm/arch/gpio.h>
> > >
> > > #include <asm/arch/power.h>
> > >
> > > DECLARE_GLOBAL_DATA_PTR;
> > >
> > > +#ifdef CONFIG_USB_EHCI_EXYNOS
> > > +void board_usb_init(int value)
> > > +{
> > > + struct exynos5_gpio_part1 *gpio = (struct exynos5_gpio_part1 *)
> > > +
> >
> > samsung_get_base_gpio_part1();
> >
> > > +
> > > + /* Configure gpios for usb 3503 hub's reset and connect */
> > > + s5p_gpio_direction_output(&gpio->x3, 5, value);
> > > + s5p_gpio_direction_output(&gpio->d1, 7, value);
> > > +}
> > > +#endif
> > > +
> > >
> > > int board_init(void)
> > > {
> > >
> > > gd->bd->bi_boot_params = (PHYS_SDRAM_1 + 0x100UL);
> > >
> > > @@ -91,6 +104,16 @@ int board_early_init_f(void)
> > >
> > > }
> > > #endif
> > >
> > > +#ifdef CONFIG_BOARD_LATE_INIT
> > > +int board_late_init(void)
> > > +{
> > > +#ifdef CONFIG_PREBOOT
> > > + setenv("preboot", CONFIG_PREBOOT);
> > > + setenv("usbethaddr", "00:40:5c:26:0a:5b");
> >
> > Why do you need these 'setenv' calls ? This logic seems completely
> > broken. The
> > 'preboot' env variable is set already by defining the CONFIG_PREBOOT and
> > the
> > usbethaddr shall be set by user.
>
> Since arndale is a development board so this was done so that user
> (developer) does not has to set usbethaddr on every boot. If its redundant
> then I will remove this in the next version of the patchset.
Can the user/developer/ ... just run:
=> setenv usbethaddr 00:11:22:33:44:fg
=> saveenv
on the U-Boot command line?
setenv("preboot", CONFIG_PREBOOT); is broken, the user might want to override
this variable, yet you don't allow him to as you always reset it back to default
value. If the board not loaded with a valid environment, a default env will be
used and if CONFIG_PREBOOT is defined in your include/configs/<board>.h , then
the 'preboot' variable will also be set to the default value so no need to set
it like so explicitly. You can reset a variable using "env default -f preboot'.
^ permalink raw reply [flat|nested] 12+ messages in thread
* [U-Boot] [PATCH 2/2] exynos5: arndale: Add network support
2013-12-14 14:20 ` Marek Vasut
@ 2013-12-14 14:28 ` Inderpal Singh
2013-12-14 17:14 ` Marek Vasut
0 siblings, 1 reply; 12+ messages in thread
From: Inderpal Singh @ 2013-12-14 14:28 UTC (permalink / raw)
To: u-boot
On 14 December 2013 23:20, Marek Vasut <marex@denx.de> wrote:
> On Saturday, December 14, 2013 at 03:00:39 PM, Inderpal Singh wrote:
> > Hi Marek,
> >
> > Thanks for the review.
> >
> > On 12 December 2013 19:03, Marek Vasut <marex@denx.de> wrote:
> > > On Saturday, October 19, 2013 at 08:49:27 AM, Inderpal Singh wrote:
> > > > From: Chander Kashyap <chander.kashyap@linaro.org>
> > > >
> > > > Arndale board has AX88760, which is USB 2.0 Hub & USB 2.0 Ethernet
> > > > Combo controller, connected to HSIC Phy of USB host controller via
> > > > USB3503 hub.
> > > >
> > > > This patch implements a board specific board_usb_init function in
> ehci
> > > > driver to perform reset sequence for USB3503 hub and enables the
> > > > relevant config options for network to work.
> > > >
> > > > Signed-off-by: Inderpal Singh <inderpal.singh@linaro.org>
> > > > Signed-off-by: Chander Kashyap <chander.kashyap@linaro.org>
> > > > ---
> > > >
> > > > board/samsung/arndale/arndale.c | 23 +++++++++++++++++++++++
> > > > drivers/usb/host/ehci-exynos.c | 9 +++++++++
> > > > include/configs/arndale.h | 6 ++++++
> > > > 3 files changed, 38 insertions(+)
> > > >
> > > > diff --git a/board/samsung/arndale/arndale.c
> > > > b/board/samsung/arndale/arndale.c index 052fecd..44f20b9 100644
> > > > --- a/board/samsung/arndale/arndale.c
> > > > +++ b/board/samsung/arndale/arndale.c
> > > > @@ -7,10 +7,23 @@
> > > >
> > > > #include <common.h>
> > > > #include <asm/arch/pinmux.h>
> > > > #include <asm/arch/dwmmc.h>
> > > >
> > > > +#include <asm/arch/gpio.h>
> > > >
> > > > #include <asm/arch/power.h>
> > > >
> > > > DECLARE_GLOBAL_DATA_PTR;
> > > >
> > > > +#ifdef CONFIG_USB_EHCI_EXYNOS
> > > > +void board_usb_init(int value)
> > > > +{
> > > > + struct exynos5_gpio_part1 *gpio = (struct exynos5_gpio_part1 *)
> > > > +
> > >
> > > samsung_get_base_gpio_part1();
> > >
> > > > +
> > > > + /* Configure gpios for usb 3503 hub's reset and connect */
> > > > + s5p_gpio_direction_output(&gpio->x3, 5, value);
> > > > + s5p_gpio_direction_output(&gpio->d1, 7, value);
> > > > +}
> > > > +#endif
> > > > +
> > > >
> > > > int board_init(void)
> > > > {
> > > >
> > > > gd->bd->bi_boot_params = (PHYS_SDRAM_1 + 0x100UL);
> > > >
> > > > @@ -91,6 +104,16 @@ int board_early_init_f(void)
> > > >
> > > > }
> > > > #endif
> > > >
> > > > +#ifdef CONFIG_BOARD_LATE_INIT
> > > > +int board_late_init(void)
> > > > +{
> > > > +#ifdef CONFIG_PREBOOT
> > > > + setenv("preboot", CONFIG_PREBOOT);
> > > > + setenv("usbethaddr", "00:40:5c:26:0a:5b");
> > >
> > > Why do you need these 'setenv' calls ? This logic seems completely
> > > broken. The
> > > 'preboot' env variable is set already by defining the CONFIG_PREBOOT
> and
> > > the
> > > usbethaddr shall be set by user.
> >
> > Since arndale is a development board so this was done so that user
> > (developer) does not has to set usbethaddr on every boot. If its
> redundant
> > then I will remove this in the next version of the patchset.
>
> Can the user/developer/ ... just run:
>
> => setenv usbethaddr 00:11:22:33:44:fg
> => saveenv
>
> on the U-Boot command line?
>
> setenv("preboot", CONFIG_PREBOOT); is broken, the user might want to
> override
> this variable, yet you don't allow him to as you always reset it back to
> default
> value. If the board not loaded with a valid environment, a default env
> will be
> used and if CONFIG_PREBOOT is defined in your include/configs/<board>.h ,
> then
> the 'preboot' variable will also be set to the default value so no need to
> set
> it like so explicitly. You can reset a variable using "env default -f
> preboot'.
>
Thanks a lot Marek for the explanation.
Will remove this in the next patchset.
Thanks,
Inder
^ permalink raw reply [flat|nested] 12+ messages in thread
* [U-Boot] [PATCH 2/2] exynos5: arndale: Add network support
2013-12-14 14:28 ` Inderpal Singh
@ 2013-12-14 17:14 ` Marek Vasut
0 siblings, 0 replies; 12+ messages in thread
From: Marek Vasut @ 2013-12-14 17:14 UTC (permalink / raw)
To: u-boot
On Saturday, December 14, 2013 at 03:28:57 PM, Inderpal Singh wrote:
> On 14 December 2013 23:20, Marek Vasut <marex@denx.de> wrote:
> > On Saturday, December 14, 2013 at 03:00:39 PM, Inderpal Singh wrote:
> > > Hi Marek,
> > >
> > > Thanks for the review.
> > >
> > > On 12 December 2013 19:03, Marek Vasut <marex@denx.de> wrote:
> > > > On Saturday, October 19, 2013 at 08:49:27 AM, Inderpal Singh wrote:
> > > > > From: Chander Kashyap <chander.kashyap@linaro.org>
> > > > >
> > > > > Arndale board has AX88760, which is USB 2.0 Hub & USB 2.0 Ethernet
> > > > > Combo controller, connected to HSIC Phy of USB host controller via
> > > > > USB3503 hub.
> > > > >
> > > > > This patch implements a board specific board_usb_init function in
> >
> > ehci
> >
> > > > > driver to perform reset sequence for USB3503 hub and enables the
> > > > > relevant config options for network to work.
> > > > >
> > > > > Signed-off-by: Inderpal Singh <inderpal.singh@linaro.org>
> > > > > Signed-off-by: Chander Kashyap <chander.kashyap@linaro.org>
> > > > > ---
> > > > >
> > > > > board/samsung/arndale/arndale.c | 23 +++++++++++++++++++++++
> > > > > drivers/usb/host/ehci-exynos.c | 9 +++++++++
> > > > > include/configs/arndale.h | 6 ++++++
> > > > > 3 files changed, 38 insertions(+)
> > > > >
> > > > > diff --git a/board/samsung/arndale/arndale.c
> > > > > b/board/samsung/arndale/arndale.c index 052fecd..44f20b9 100644
> > > > > --- a/board/samsung/arndale/arndale.c
> > > > > +++ b/board/samsung/arndale/arndale.c
> > > > > @@ -7,10 +7,23 @@
> > > > >
> > > > > #include <common.h>
> > > > > #include <asm/arch/pinmux.h>
> > > > > #include <asm/arch/dwmmc.h>
> > > > >
> > > > > +#include <asm/arch/gpio.h>
> > > > >
> > > > > #include <asm/arch/power.h>
> > > > >
> > > > > DECLARE_GLOBAL_DATA_PTR;
> > > > >
> > > > > +#ifdef CONFIG_USB_EHCI_EXYNOS
> > > > > +void board_usb_init(int value)
> > > > > +{
> > > > > + struct exynos5_gpio_part1 *gpio = (struct exynos5_gpio_part1
> > > > > *) +
> > > >
> > > > samsung_get_base_gpio_part1();
> > > >
> > > > > +
> > > > > + /* Configure gpios for usb 3503 hub's reset and connect */
> > > > > + s5p_gpio_direction_output(&gpio->x3, 5, value);
> > > > > + s5p_gpio_direction_output(&gpio->d1, 7, value);
> > > > > +}
> > > > > +#endif
> > > > > +
> > > > >
> > > > > int board_init(void)
> > > > > {
> > > > >
> > > > > gd->bd->bi_boot_params = (PHYS_SDRAM_1 + 0x100UL);
> > > > >
> > > > > @@ -91,6 +104,16 @@ int board_early_init_f(void)
> > > > >
> > > > > }
> > > > > #endif
> > > > >
> > > > > +#ifdef CONFIG_BOARD_LATE_INIT
> > > > > +int board_late_init(void)
> > > > > +{
> > > > > +#ifdef CONFIG_PREBOOT
> > > > > + setenv("preboot", CONFIG_PREBOOT);
> > > > > + setenv("usbethaddr", "00:40:5c:26:0a:5b");
> > > >
> > > > Why do you need these 'setenv' calls ? This logic seems completely
> > > > broken. The
> > > > 'preboot' env variable is set already by defining the CONFIG_PREBOOT
> >
> > and
> >
> > > > the
> > > > usbethaddr shall be set by user.
> > >
> > > Since arndale is a development board so this was done so that user
> > > (developer) does not has to set usbethaddr on every boot. If its
> >
> > redundant
> >
> > > then I will remove this in the next version of the patchset.
> >
> > Can the user/developer/ ... just run:
> >
> > => setenv usbethaddr 00:11:22:33:44:fg
> > => saveenv
> >
> > on the U-Boot command line?
> >
> > setenv("preboot", CONFIG_PREBOOT); is broken, the user might want to
> > override
> > this variable, yet you don't allow him to as you always reset it back to
> > default
> > value. If the board not loaded with a valid environment, a default env
> > will be
> > used and if CONFIG_PREBOOT is defined in your include/configs/<board>.h ,
> > then
> > the 'preboot' variable will also be set to the default value so no need
> > to set
> > it like so explicitly. You can reset a variable using "env default -f
> > preboot'.
>
> Thanks a lot Marek for the explanation.
> Will remove this in the next patchset.
Sure, HTH. Sorry I didn't review your patch, next time please at least add me to
the CC or add 'usb:' tag to the patch.
^ permalink raw reply [flat|nested] 12+ messages in thread
end of thread, other threads:[~2013-12-14 17:14 UTC | newest]
Thread overview: 12+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2013-10-19 6:49 [U-Boot] [PATCH 0/2] Add usb eth support Inderpal Singh
2013-10-19 6:49 ` [U-Boot] [PATCH 1/2] usb: ehci: exynos: set/reset hsic phys Inderpal Singh
2013-10-19 6:49 ` [U-Boot] [PATCH 2/2] exynos5: arndale: Add network support Inderpal Singh
2013-12-12 10:03 ` Marek Vasut
2013-12-14 14:00 ` Inderpal Singh
2013-12-14 14:20 ` Marek Vasut
2013-12-14 14:28 ` Inderpal Singh
2013-12-14 17:14 ` Marek Vasut
2013-11-19 5:39 ` [U-Boot] [PATCH 0/2] Add usb eth support Chander Kashyap
2013-12-02 10:21 ` Chander Kashyap
2013-12-12 8:24 ` Minkyu Kang
2013-12-12 10:04 ` Marek Vasut
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox