mirror of
https://github.com/AsahiLinux/u-boot
synced 2024-11-10 23:24:38 +00:00
sunxi: add gmac Ethernet support
Add support for the GMAC Ethernet controller on Allwinner A20 (sun7i) processors. Enable for the Cubietruck. Signed-off-by: Chen-Yu Tsai <wens@csie.org> Signed-off-by: Jens Kuske <jenskuske@gmail.com> Signed-off-by: Ian Campbell <ijc@hellion.org.uk> Reviewed-by: Marek Vasut <marex@denx.de> Reviewed-by: Tom Rini <trini@ti.com>
This commit is contained in:
parent
7d20d7eb13
commit
5835823da3
6 changed files with 75 additions and 1 deletions
|
@ -11,6 +11,8 @@
|
|||
*/
|
||||
|
||||
#include <common.h>
|
||||
#include <netdev.h>
|
||||
#include <miiphy.h>
|
||||
#include <serial.h>
|
||||
#ifdef CONFIG_SPL_BUILD
|
||||
#include <spl.h>
|
||||
|
@ -86,3 +88,24 @@ void enable_caches(void)
|
|||
dcache_enable();
|
||||
}
|
||||
#endif
|
||||
|
||||
#ifdef CONFIG_CMD_NET
|
||||
/*
|
||||
* Initializes on-chip ethernet controllers.
|
||||
* to override, implement board_eth_init()
|
||||
*/
|
||||
int cpu_eth_init(bd_t *bis)
|
||||
{
|
||||
int rc;
|
||||
|
||||
#ifdef CONFIG_SUNXI_GMAC
|
||||
rc = sunxi_gmac_initialize(bis);
|
||||
if (rc < 0) {
|
||||
printf("sunxi: failed to initialize gmac\n");
|
||||
return rc;
|
||||
}
|
||||
#endif
|
||||
|
||||
return 0;
|
||||
}
|
||||
#endif
|
||||
|
|
|
@ -9,4 +9,5 @@
|
|||
# SPDX-License-Identifier: GPL-2.0+
|
||||
#
|
||||
obj-y += board.o
|
||||
obj-$(CONFIG_SUNXI_GMAC) += gmac.o
|
||||
obj-$(CONFIG_CUBIETRUCK) += dram_cubietruck.o
|
||||
|
|
32
board/sunxi/gmac.c
Normal file
32
board/sunxi/gmac.c
Normal file
|
@ -0,0 +1,32 @@
|
|||
#include <common.h>
|
||||
#include <netdev.h>
|
||||
#include <miiphy.h>
|
||||
#include <asm/gpio.h>
|
||||
#include <asm/io.h>
|
||||
#include <asm/arch/clock.h>
|
||||
#include <asm/arch/gpio.h>
|
||||
|
||||
int sunxi_gmac_initialize(bd_t *bis)
|
||||
{
|
||||
int pin;
|
||||
struct sunxi_ccm_reg *const ccm =
|
||||
(struct sunxi_ccm_reg *)SUNXI_CCM_BASE;
|
||||
|
||||
/* Set up clock gating */
|
||||
setbits_le32(&ccm->ahb_gate1, 0x1 << AHB_GATE_OFFSET_GMAC);
|
||||
|
||||
/* Set MII clock */
|
||||
setbits_le32(&ccm->gmac_clk_cfg, CCM_GMAC_CTRL_TX_CLK_SRC_INT_RGMII |
|
||||
CCM_GMAC_CTRL_GPIT_RGMII);
|
||||
|
||||
/* Configure pin mux settings for GMAC */
|
||||
for (pin = SUNXI_GPA(0); pin <= SUNXI_GPA(16); pin++) {
|
||||
/* skip unused pins in RGMII mode */
|
||||
if (pin == SUNXI_GPA(9) || pin == SUNXI_GPA(14))
|
||||
continue;
|
||||
sunxi_gpio_set_cfgpin(pin, SUN7I_GPA0_GMAC);
|
||||
sunxi_gpio_set_drv(pin, 3);
|
||||
}
|
||||
|
||||
return designware_initialize(SUNXI_GMAC_BASE, PHY_INTERFACE_MODE_RGMII);
|
||||
}
|
|
@ -379,7 +379,7 @@ Active arm armv7 rmobile renesas lager
|
|||
Active arm armv7 s5pc1xx samsung goni s5p_goni - Przemyslaw Marczak <p.marczak@samsung.com>
|
||||
Active arm armv7 s5pc1xx samsung smdkc100 smdkc100 - Minkyu Kang <mk7.kang@samsung.com>
|
||||
Active arm armv7 socfpga altera socfpga socfpga_cyclone5 - -
|
||||
Active arm armv7 sunxi - sunxi Cubietruck_FEL sun7i:CUBIETRUCK,SPL_FEL -
|
||||
Active arm armv7 sunxi - sunxi Cubietruck_FEL sun7i:CUBIETRUCK,SPL_FEL,SUNXI_GMAC,RGMII -
|
||||
Active arm armv7 u8500 st-ericsson snowball snowball - Mathieu Poirier <mathieu.poirier@linaro.org>
|
||||
Active arm armv7 u8500 st-ericsson u8500 u8500_href - -
|
||||
Active arm armv7 vf610 freescale vf610twr vf610twr vf610twr:IMX_CONFIG=board/freescale/vf610twr/imximage.cfg Alison Wang <b18965@freescale.com>
|
||||
|
|
|
@ -127,6 +127,23 @@
|
|||
|
||||
#define CONFIG_CONS_INDEX 1 /* UART0 */
|
||||
|
||||
#ifdef CONFIG_SUNXI_GMAC
|
||||
#define CONFIG_DESIGNWARE_ETH /* GMAC can use designware driver */
|
||||
#define CONFIG_DW_AUTONEG
|
||||
#define CONFIG_PHY_GIGE /* GMAC can use gigabit PHY */
|
||||
#define CONFIG_PHY_ADDR 1
|
||||
#define CONFIG_MII /* MII PHY management */
|
||||
#define CONFIG_PHYLIB
|
||||
#endif
|
||||
|
||||
#ifdef CONFIG_CMD_NET
|
||||
#define CONFIG_CMD_NFS
|
||||
#define CONFIG_CMD_DNS
|
||||
#define CONFIG_NETCONSOLE
|
||||
#define CONFIG_BOOTP_DNS2
|
||||
#define CONFIG_BOOTP_SEND_HOSTNAME
|
||||
#endif
|
||||
|
||||
#if !defined CONFIG_ENV_IS_IN_MMC && \
|
||||
!defined CONFIG_ENV_IS_IN_NAND && \
|
||||
!defined CONFIG_ENV_IS_IN_FAT && \
|
||||
|
|
|
@ -78,6 +78,7 @@ int sh_eth_initialize(bd_t *bis);
|
|||
int skge_initialize(bd_t *bis);
|
||||
int smc91111_initialize(u8 dev_num, int base_addr);
|
||||
int smc911x_initialize(u8 dev_num, int base_addr);
|
||||
int sunxi_gmac_initialize(bd_t *bis);
|
||||
int sunxi_wemac_initialize(bd_t *bis);
|
||||
int tsi108_eth_initialize(bd_t *bis);
|
||||
int uec_standard_init(bd_t *bis);
|
||||
|
|
Loading…
Reference in a new issue