snapdragon: added MAC generation functions

Add support for generation of unique MAC address
that is derived from board serial.
Algorithm for generation of MAC taken from LK.

Signed-off-by: Ramon Fried <ramon.fried@gmail.com>
This commit is contained in:
Ramon Fried 2018-08-03 16:25:36 +03:00 committed by Tom Rini
parent 86e5e42946
commit e0b04a1525
2 changed files with 17 additions and 0 deletions

View File

@ -8,5 +8,6 @@
#define MISC_H
u32 msm_board_serial(void);
void msm_generate_mac_addr(u8 *mac);
#endif

View File

@ -35,3 +35,19 @@ u32 msm_board_serial(void)
return UNSTUFF_BITS(mmc_dev->cid, 16, 32);
}
void msm_generate_mac_addr(u8 *mac)
{
int i;
char sn[9];
snprintf(sn, 8, "%08x", msm_board_serial());
/* fill in the mac with serialno, use locally adminstrated pool */
mac[0] = 0x02;
mac[1] = 00;
for (i = 3; i >= 0; i--) {
mac[i + 2] = simple_strtoul(&sn[2 * i], NULL, 16);
sn[2 * i] = 0;
}
}