summaryrefslogtreecommitdiff
path: root/net
diff options
context:
space:
mode:
authorHaixiang Bao <haixiang.bao@amlogic.com>2016-04-06 00:47:35 -0700
committerHaixiang Bao <haixiang.bao@amlogic.com>2016-04-06 00:48:09 -0700
commit915c6e873e1253ed9e0b008610a7fd7436f2730e (patch)
tree2103bb53f48dd056419dc0a4a53c27e597cd1d9b /net
parentb9ccb92ce9fff5faa7957ed6214b25511b80500a (diff)
downloadu-boot-odroid-c1-915c6e873e1253ed9e0b008610a7fd7436f2730e.tar.gz
This commit will cause gxb_skt_v1 and other 3 uboot config
compile fail! Revert "PD#119623: eth: use random mac if not burn This change is for all platform, yanjie.guo verified it on P200 compile pass for all board config." This reverts commit d7dcad8a93485570243d115c62c87c1bdf31eed1. Change-Id: I555c6009e35abce82387f42254b7782e2dcfbbff
Diffstat (limited to 'net')
-rw-r--r--net/eth.c115
1 files changed, 20 insertions, 95 deletions
diff --git a/net/eth.c b/net/eth.c
index 3da162d74c..eac4f7b3d0 100644
--- a/net/eth.c
+++ b/net/eth.c
@@ -11,11 +11,6 @@
#include <miiphy.h>
#include <phy.h>
#include <asm/errno.h>
-#include <amlogic/keyunify.h>
-#ifdef CONFIG_RANDOM_ETHADDR
-#include <asm/arch/io.h>
-#include <asm/arch/secure_apb.h>
-#endif
void eth_parse_enetaddr(const char *addr, uchar *enetaddr)
{
@@ -163,105 +158,35 @@ static int eth_address_set(unsigned char *addr)
return memcmp(addr, "\0\0\0\0\0\0", 6);
}
-#ifdef CONFIG_RANDOM_ETHADDR
-static inline void eth_hw_addr_random(struct eth_device *dev)
-{
- unsigned int tmp = readl(P_RNG_DATA);
-
- dev->enetaddr[0] = tmp&0xFF;
- dev->enetaddr[1] = (tmp>>8)&0xFF;
- dev->enetaddr[2] = (tmp>>16)&0xFF;
- dev->enetaddr[3] = (tmp>>24)&0xFF;
-
- tmp = readl(P_RNG_DATA);
-
- dev->enetaddr[4] = tmp&0xFF;
- dev->enetaddr[5] = (tmp>>8)&0xFF;
-
- dev->enetaddr[0] &= 0xFE;
- dev->enetaddr[0] |= 0x02;
-}
-#endif
-
-static int eth_get_efuse_mac(struct eth_device *dev)
-{
-#define MAC_MAX_LEN 17
- int i = 0;
- int err = 0, exist = 0;
- ssize_t keysize = 0;
- const char* seedNum = "0x1234";
- unsigned char buf[MAC_MAX_LEN+1] = {0};
-
- err = key_unify_init(seedNum, NULL);
- if (err)
- return err;
-
- err = key_unify_query_exist("mac", &exist);
- if (err || (!exist))
- return -EEXIST;
-
- err = key_unify_query_size("mac", &keysize);
- if (err)
- return err;
-
- if (keysize != MAC_MAX_LEN) {
- return -EINVAL;
- }
-
- err = key_unify_read("mac", buf, keysize);
- if (err)
- return err;
-
- for (i=0; i<6; i++) {
- buf[i*3 + 2] = '\0';
- dev->enetaddr[i] = simple_strtoul((char *)&buf[i*3], NULL, 16);
- }
-
- return key_unify_uninit();
-}
-
int eth_write_hwaddr(struct eth_device *dev, const char *base_name,
int eth_number)
{
unsigned char env_enetaddr[6];
int ret = 0;
- eth_get_efuse_mac(dev);
+ eth_getenv_enetaddr_by_index(base_name, eth_number, env_enetaddr);
- if (is_valid_ether_addr(dev->enetaddr)) {
- eth_setenv_enetaddr_by_index(base_name, eth_number,
- dev->enetaddr);
- } else {
-#ifdef CONFIG_RANDOM_ETHADDR
- eth_hw_addr_random(dev);
- eth_setenv_enetaddr_by_index(base_name, eth_number,
+ if (eth_address_set(env_enetaddr)) {
+ if (eth_address_set(dev->enetaddr) &&
+ memcmp(dev->enetaddr, env_enetaddr, 6)) {
+ printf("\nWarning: %s MAC addresses don't match:\n",
+ dev->name);
+ printf("Address in SROM is %pM\n",
dev->enetaddr);
-#endif
-
- eth_getenv_enetaddr_by_index(base_name, eth_number, env_enetaddr);
-
- if (eth_address_set(env_enetaddr)) {
- if (eth_address_set(dev->enetaddr) &&
- memcmp(dev->enetaddr, env_enetaddr, 6)) {
- printf("\nWarning: %s MAC addresses don't match:\n",
- dev->name);
- printf("Address in SROM is %pM\n",
- dev->enetaddr);
- printf("Address in environment is %pM\n",
- env_enetaddr);
- }
-
- memcpy(dev->enetaddr, env_enetaddr, 6);
- } else if (is_valid_ether_addr(dev->enetaddr)) {
- eth_setenv_enetaddr_by_index(base_name, eth_number,
- dev->enetaddr);
- printf("\nWarning: %s using MAC address from net device\n",
- dev->name);
- } else if (!(eth_address_set(dev->enetaddr))) {
- printf("\nError: %s address not set.\n",
- dev->name);
- return -EINVAL;
+ printf("Address in environment is %pM\n",
+ env_enetaddr);
}
+
+ memcpy(dev->enetaddr, env_enetaddr, 6);
+ } else if (is_valid_ether_addr(dev->enetaddr)) {
+ eth_setenv_enetaddr_by_index(base_name, eth_number,
+ dev->enetaddr);
+ printf("\nWarning: %s using MAC address from net device\n",
+ dev->name);
+ } else if (!(eth_address_set(dev->enetaddr))) {
+ printf("\nError: %s address not set.\n",
+ dev->name);
+ return -EINVAL;
}
if (dev->write_hwaddr && !eth_mac_skip(eth_number)) {