Skip to content
Snippets Groups Projects
Commit 21cc8cf3 authored by Troy Kisky's avatar Troy Kisky
Browse files

mx6: soc: add dev_id to mac_from_fuse value

parent 8d05f2de
No related branches found
No related tags found
No related merge requests found
...@@ -28,33 +28,36 @@ void imx_get_mac_from_fuse(int dev_id, unsigned char *mac) ...@@ -28,33 +28,36 @@ void imx_get_mac_from_fuse(int dev_id, unsigned char *mac)
struct imx_mac_fuse *fuse; struct imx_mac_fuse *fuse;
u32 offset; u32 offset;
bool has_second_mac; bool has_second_mac;
u32 value_high, value_low;
offset = is_mx6() ? MAC_FUSE_MX6_OFFSET : MAC_FUSE_MX7_OFFSET; offset = is_mx6() ? MAC_FUSE_MX6_OFFSET : MAC_FUSE_MX7_OFFSET;
fuse = (struct imx_mac_fuse *)(ulong)(OCOTP_BASE_ADDR + offset); fuse = (struct imx_mac_fuse *)(ulong)(OCOTP_BASE_ADDR + offset);
has_second_mac = is_mx7() || is_mx6sx() || is_mx6ul() || is_mx6ull(); has_second_mac = is_mx7() || is_mx6sx() || is_mx6ul() || is_mx6ull();
if (has_second_mac && dev_id == 1) { if (has_second_mac && dev_id == 1) {
u32 value = readl(&fuse->mac_addr2); value_high = readl(&fuse->mac_addr2);
value_low = readl(&fuse->mac_addr1) >> 16;
mac[0] = value >> 24;
mac[1] = value >> 16; value_low |= (value_high << 16);
mac[2] = value >> 8; value_high >>= 16;
mac[3] = value; if (value_low | value_high) {
dev_id--;
value = readl(&fuse->mac_addr1); goto valid;
mac[4] = value >> 24; }
mac[5] = value >> 16; }
value_high = readl(&fuse->mac_addr1);
} else { value_low = readl(&fuse->mac_addr0);
u32 value = readl(&fuse->mac_addr1); valid:
if ((dev_id > 0) && (value_low | value_high)) {
mac[0] = value >> 8; u32 prev = value_low;
mac[1] = value; value_low += dev_id;
if (value_low < prev)
value = readl(&fuse->mac_addr0); value_high++;
mac[2] = value >> 24;
mac[3] = value >> 16;
mac[4] = value >> 8;
mac[5] = value;
} }
mac[0] = value_high >> 8;
mac[1] = value_high;
mac[2] = value_low >> 24;
mac[3] = value_low >> 16;
mac[4] = value_low >> 8;
mac[5] = value_low;
} }
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment