[U-Boot] [PATCH] vexpress/v8: Add support for SMSC91C111 integrated MAC and PHY module

This patch enables ethernet support in ARMv8 foundation model. The ARMv8 foundation model supports a SMSC91C111 integrated MAC and PHY module which is present at base address 0x01A000000.
The patch has been tested on ARMv8 foundation model by running ping/tftp between the foundation model and the host PC via a bridged network.
Signed-off-by: Bhupesh Sharma bhupesh.sharma@freescale.com --- This patch is based on the ARMv8 support related patches sent out by David Feng. The V5 of this patchset from David can be found here: http://u-boot.10912.n7.nabble.com/PATCH-v5-0-4-arm64-patch-td161939.html
To test the ethernet functionality on a ARMv8 foundation model:
- Launch the model with BRIDGED networking option: --network=bridged
- This will create an ethernet interface (eth0) inside the model and an interface ARM0 on the Host PC.
- Assign appropriate IP addresses: ~ On Host: $ ifconfig ARM0 10.10.10.11 ~ On foundation model: VExpress# setenv ipaddr 10.10.10.10 VExpress# setenv gatewayip 10.10.10.11 VExpress# setenv serverip 10.10.10.11
- Now try out ping/tftp tests.
board/armltd/vexpress64/vexpress64.c | 14 ++++++++++++++ include/configs/vexpress_aemv8a.h | 4 ++++ 2 files changed, 18 insertions(+)
diff --git a/board/armltd/vexpress64/vexpress64.c b/board/armltd/vexpress64/vexpress64.c index 4febece..3bebdbd 100644 --- a/board/armltd/vexpress64/vexpress64.c +++ b/board/armltd/vexpress64/vexpress64.c @@ -77,3 +77,17 @@ void __gpio_request(unsigned gpio, const char *label) } void gpio_request(unsigned gpio, const char *label) __attribute__((weak, alias("__gpio_request"))); + +/* + * Board specific ethernet initialization routine. + */ +int board_eth_init(bd_t *bis) +{ + int rc = 0; + +#ifdef CONFIG_SMC91111 + rc = smc91111_initialize(0, CONFIG_SMC91111_BASE); +#endif + + return rc; +} diff --git a/include/configs/vexpress_aemv8a.h b/include/configs/vexpress_aemv8a.h index d207d00..8e309b3 100644 --- a/include/configs/vexpress_aemv8a.h +++ b/include/configs/vexpress_aemv8a.h @@ -118,6 +118,10 @@ /* Size of malloc() pool */ #define CONFIG_SYS_MALLOC_LEN (CONFIG_ENV_SIZE + 128 * 1024)
+/* SMSC91C111 Ethernet Configuration */ +#define CONFIG_SMC91111 1 +#define CONFIG_SMC91111_BASE (0x01A000000) + /* PL011 Serial Configuration */ #define CONFIG_PL011_SERIAL #define CONFIG_PL011_CLOCK 24000000

-----原始邮件----- 发件人: "Bhupesh Sharma" bhupesh.sharma@freescale.com 发送时间: 2013年9月4日 星期三 收件人: u-boot@lists.denx.de 抄送: trini@ti.com, fenghua@phytium.com.cn, "Bhupesh Sharma" bhupesh.sharma@freescale.com 主题: [PATCH] vexpress/v8: Add support for SMSC91C111 integrated MAC and PHY module
This patch enables ethernet support in ARMv8 foundation model. The ARMv8 foundation model supports a SMSC91C111 integrated MAC and PHY module which is present at base address 0x01A000000.
The patch has been tested on ARMv8 foundation model by running ping/tftp between the foundation model and the host PC via a bridged network.
Signed-off-by: Bhupesh Sharma bhupesh.sharma@freescale.com
This patch is based on the ARMv8 support related patches sent out by David Feng. The V5 of this patchset from David can be found here: http://u-boot.10912.n7.nabble.com/PATCH-v5-0-4-arm64-patch-td161939.html
To test the ethernet functionality on a ARMv8 foundation model:
Launch the model with BRIDGED networking option: --network=bridged
This will create an ethernet interface (eth0) inside the model and an interface ARM0 on the Host PC.
Assign appropriate IP addresses: ~ On Host: $ ifconfig ARM0 10.10.10.11 ~ On foundation model: VExpress# setenv ipaddr 10.10.10.10 VExpress# setenv gatewayip 10.10.10.11 VExpress# setenv serverip 10.10.10.11
Now try out ping/tftp tests.
board/armltd/vexpress64/vexpress64.c | 14 ++++++++++++++ include/configs/vexpress_aemv8a.h | 4 ++++ 2 files changed, 18 insertions(+)
diff --git a/board/armltd/vexpress64/vexpress64.c b/board/armltd/vexpress64/vexpress64.c index 4febece..3bebdbd 100644 --- a/board/armltd/vexpress64/vexpress64.c +++ b/board/armltd/vexpress64/vexpress64.c @@ -77,3 +77,17 @@ void __gpio_request(unsigned gpio, const char *label) } void gpio_request(unsigned gpio, const char *label) __attribute__((weak, alias("__gpio_request")));
+/*
- Board specific ethernet initialization routine.
- */
+int board_eth_init(bd_t *bis) +{
- int rc = 0;
+#ifdef CONFIG_SMC91111
- rc = smc91111_initialize(0, CONFIG_SMC91111_BASE);
+#endif
- return rc;
+} diff --git a/include/configs/vexpress_aemv8a.h b/include/configs/vexpress_aemv8a.h index d207d00..8e309b3 100644 --- a/include/configs/vexpress_aemv8a.h +++ b/include/configs/vexpress_aemv8a.h @@ -118,6 +118,10 @@ /* Size of malloc() pool */ #define CONFIG_SYS_MALLOC_LEN (CONFIG_ENV_SIZE + 128 * 1024)
+/* SMSC91C111 Ethernet Configuration */ +#define CONFIG_SMC91111 1 +#define CONFIG_SMC91111_BASE (0x01A000000)
/* PL011 Serial Configuration */ #define CONFIG_PL011_SERIAL
#define CONFIG_PL011_CLOCK 24000000
1.7.10.4
That's great!

hi Bhupesh, I want to incoporate this patch to the arm64 patch so that it is more complete. My I have your authorization?
Best Regards, David
-----原始邮件----- 发件人: "Bhupesh Sharma" bhupesh.sharma@freescale.com 发送时间: 2013年9月4日 星期三 收件人: u-boot@lists.denx.de 抄送: trini@ti.com, fenghua@phytium.com.cn, "Bhupesh Sharma" bhupesh.sharma@freescale.com 主题: [PATCH] vexpress/v8: Add support for SMSC91C111 integrated MAC and PHY module
This patch enables ethernet support in ARMv8 foundation model. The ARMv8 foundation model supports a SMSC91C111 integrated MAC and PHY module which is present at base address 0x01A000000.
The patch has been tested on ARMv8 foundation model by running ping/tftp between the foundation model and the host PC via a bridged network.
Signed-off-by: Bhupesh Sharma bhupesh.sharma@freescale.com
This patch is based on the ARMv8 support related patches sent out by David Feng. The V5 of this patchset from David can be found here: http://u-boot.10912.n7.nabble.com/PATCH-v5-0-4-arm64-patch-td161939.html
To test the ethernet functionality on a ARMv8 foundation model:
Launch the model with BRIDGED networking option: --network=bridged
This will create an ethernet interface (eth0) inside the model and an interface ARM0 on the Host PC.
Assign appropriate IP addresses: ~ On Host: $ ifconfig ARM0 10.10.10.11 ~ On foundation model: VExpress# setenv ipaddr 10.10.10.10 VExpress# setenv gatewayip 10.10.10.11 VExpress# setenv serverip 10.10.10.11
Now try out ping/tftp tests.
board/armltd/vexpress64/vexpress64.c | 14 ++++++++++++++ include/configs/vexpress_aemv8a.h | 4 ++++ 2 files changed, 18 insertions(+)
diff --git a/board/armltd/vexpress64/vexpress64.c b/board/armltd/vexpress64/vexpress64.c index 4febece..3bebdbd 100644 --- a/board/armltd/vexpress64/vexpress64.c +++ b/board/armltd/vexpress64/vexpress64.c @@ -77,3 +77,17 @@ void __gpio_request(unsigned gpio, const char *label) } void gpio_request(unsigned gpio, const char *label) __attribute__((weak, alias("__gpio_request")));
+/*
- Board specific ethernet initialization routine.
- */
+int board_eth_init(bd_t *bis) +{
- int rc = 0;
+#ifdef CONFIG_SMC91111
- rc = smc91111_initialize(0, CONFIG_SMC91111_BASE);
+#endif
- return rc;
+} diff --git a/include/configs/vexpress_aemv8a.h b/include/configs/vexpress_aemv8a.h index d207d00..8e309b3 100644 --- a/include/configs/vexpress_aemv8a.h +++ b/include/configs/vexpress_aemv8a.h @@ -118,6 +118,10 @@ /* Size of malloc() pool */ #define CONFIG_SYS_MALLOC_LEN (CONFIG_ENV_SIZE + 128 * 1024)
+/* SMSC91C111 Ethernet Configuration */ +#define CONFIG_SMC91111 1 +#define CONFIG_SMC91111_BASE (0x01A000000)
/* PL011 Serial Configuration */ #define CONFIG_PL011_SERIAL
#define CONFIG_PL011_CLOCK 24000000
1.7.10.4
participants (2)
-
Bhupesh Sharma
-
FengHua