[BSP][qemu-a9] auto generate mac address from host
This commit is contained in:
parent
9eef644169
commit
4f521a0c95
|
@ -41,3 +41,4 @@ settings/
|
|||
*.uvguix*
|
||||
cconfig.h
|
||||
.settings
|
||||
drivers/automac.h
|
||||
|
|
|
@ -0,0 +1,15 @@
|
|||
|
||||
#ifndef __MAC_AUTO_GENERATE_H__
|
||||
#define __MAC_AUTO_GENERATE_H__
|
||||
|
||||
/* Automatically generated file; DO NOT EDIT. */
|
||||
/* mac configure file for RT-Thread qemu */
|
||||
|
||||
#define AUTOMAC0 0x52
|
||||
#define AUTOMAC1 0x54
|
||||
#define AUTOMAC2 0x00
|
||||
#define AUTOMAC3 0x28
|
||||
#define AUTOMAC4 0xae
|
||||
#define AUTOMAC5 0xeb
|
||||
|
||||
#endif
|
|
@ -2,6 +2,7 @@
|
|||
#include <rtthread.h>
|
||||
#include <netif/ethernetif.h>
|
||||
#include <lwipopts.h>
|
||||
#include <automac.h>
|
||||
|
||||
#define MAX_ADDR_LEN 6
|
||||
#define SMC911X_EMAC_DEVICE(eth) (struct eth_device_smc911x*)(eth)
|
||||
|
@ -512,12 +513,12 @@ int smc911x_emac_hw_init(void)
|
|||
smc911x_reg_write(&_emac, INT_CFG, INT_CFG_IRQ_POL | INT_CFG_IRQ_TYPE);
|
||||
|
||||
/* test MAC address */
|
||||
_emac.enetaddr[0] = 0x52;
|
||||
_emac.enetaddr[1] = 0x54;
|
||||
_emac.enetaddr[2] = 0x00;
|
||||
_emac.enetaddr[3] = 0x11;
|
||||
_emac.enetaddr[4] = 0x22;
|
||||
_emac.enetaddr[5] = 0x33;
|
||||
_emac.enetaddr[0] = AUTOMAC0;
|
||||
_emac.enetaddr[1] = AUTOMAC1;
|
||||
_emac.enetaddr[2] = AUTOMAC2;
|
||||
_emac.enetaddr[3] = AUTOMAC3;
|
||||
_emac.enetaddr[4] = AUTOMAC4;
|
||||
_emac.enetaddr[5] = AUTOMAC5;
|
||||
|
||||
#ifdef RT_USING_DEVICE_OPS
|
||||
_emac.parent.parent.ops = &smc911x_emac_ops;
|
||||
|
|
|
@ -1,5 +1,29 @@
|
|||
import os
|
||||
|
||||
import uuid
|
||||
def get_mac_address():
|
||||
mac=uuid.UUID(int = uuid.getnode()).hex[-12:]
|
||||
return "#define AUTOMAC".join([str(e/2 + 1) + ' 0x' + mac[e:e+2] + '\n' for e in range(5,11,2)])
|
||||
|
||||
header = '''
|
||||
#ifndef __MAC_AUTO_GENERATE_H__
|
||||
#define __MAC_AUTO_GENERATE_H__
|
||||
|
||||
/* Automatically generated file; DO NOT EDIT. */
|
||||
/* mac configure file for RT-Thread qemu */
|
||||
|
||||
#define AUTOMAC0 0x52
|
||||
#define AUTOMAC1 0x54
|
||||
#define AUTOMAC2 0x00
|
||||
#define AUTOMAC'''
|
||||
|
||||
end = '''
|
||||
#endif
|
||||
'''
|
||||
|
||||
with open('drivers/automac.h', 'w') as f:
|
||||
f.write(header + get_mac_address() + end)
|
||||
|
||||
# toolchains options
|
||||
ARCH='arm'
|
||||
CPU='cortex-a'
|
||||
|
|
Loading…
Reference in New Issue