[BSP][qemu-a9] auto generate mac address from host
This commit is contained in:
parent
9eef644169
commit
4f521a0c95
|
@ -41,3 +41,4 @@ settings/
|
||||||
*.uvguix*
|
*.uvguix*
|
||||||
cconfig.h
|
cconfig.h
|
||||||
.settings
|
.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 <rtthread.h>
|
||||||
#include <netif/ethernetif.h>
|
#include <netif/ethernetif.h>
|
||||||
#include <lwipopts.h>
|
#include <lwipopts.h>
|
||||||
|
#include <automac.h>
|
||||||
|
|
||||||
#define MAX_ADDR_LEN 6
|
#define MAX_ADDR_LEN 6
|
||||||
#define SMC911X_EMAC_DEVICE(eth) (struct eth_device_smc911x*)(eth)
|
#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);
|
smc911x_reg_write(&_emac, INT_CFG, INT_CFG_IRQ_POL | INT_CFG_IRQ_TYPE);
|
||||||
|
|
||||||
/* test MAC address */
|
/* test MAC address */
|
||||||
_emac.enetaddr[0] = 0x52;
|
_emac.enetaddr[0] = AUTOMAC0;
|
||||||
_emac.enetaddr[1] = 0x54;
|
_emac.enetaddr[1] = AUTOMAC1;
|
||||||
_emac.enetaddr[2] = 0x00;
|
_emac.enetaddr[2] = AUTOMAC2;
|
||||||
_emac.enetaddr[3] = 0x11;
|
_emac.enetaddr[3] = AUTOMAC3;
|
||||||
_emac.enetaddr[4] = 0x22;
|
_emac.enetaddr[4] = AUTOMAC4;
|
||||||
_emac.enetaddr[5] = 0x33;
|
_emac.enetaddr[5] = AUTOMAC5;
|
||||||
|
|
||||||
#ifdef RT_USING_DEVICE_OPS
|
#ifdef RT_USING_DEVICE_OPS
|
||||||
_emac.parent.parent.ops = &smc911x_emac_ops;
|
_emac.parent.parent.ops = &smc911x_emac_ops;
|
||||||
|
|
|
@ -1,5 +1,29 @@
|
||||||
import os
|
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
|
# toolchains options
|
||||||
ARCH='arm'
|
ARCH='arm'
|
||||||
CPU='cortex-a'
|
CPU='cortex-a'
|
||||||
|
|
Loading…
Reference in New Issue