[adm5120] load board's mac address on Compex devices
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@12302 3c298f89-4303-0410-b956-a3cf2f4a3e73master
parent
4860b69f71
commit
d643f55f46
|
@ -11,15 +11,19 @@
|
|||
|
||||
#include <linux/kernel.h>
|
||||
#include <linux/init.h>
|
||||
#include <linux/gpio.h>
|
||||
|
||||
#include <asm/bootinfo.h>
|
||||
#include <linux/gpio.h>
|
||||
|
||||
#include <asm/mach-adm5120/adm5120_info.h>
|
||||
#include <asm/mach-adm5120/adm5120_board.h>
|
||||
#include <asm/mach-adm5120/adm5120_platform.h>
|
||||
#include <asm/mach-adm5120/adm5120_irq.h>
|
||||
|
||||
#include <asm/mach-adm5120/prom/myloader.h>
|
||||
|
||||
#include "compex.h"
|
||||
|
||||
#define COMPEX_GPIO_DEV_MASK (1 << ADM5120_GPIO_PIN5)
|
||||
|
||||
static void switch_bank_gpio5(unsigned bank)
|
||||
|
@ -34,6 +38,18 @@ static void switch_bank_gpio5(unsigned bank)
|
|||
}
|
||||
}
|
||||
|
||||
void __init compex_mac_setup(void)
|
||||
{
|
||||
int i, j;
|
||||
|
||||
if (!myloader_present())
|
||||
return;
|
||||
|
||||
for (i = 0; i < 6; i++)
|
||||
for (j = 0; j < 6; j++)
|
||||
adm5120_eth_macs[i][j] = myloader_info.macs[i][j];
|
||||
}
|
||||
|
||||
void __init compex_generic_setup(void)
|
||||
{
|
||||
gpio_request(ADM5120_GPIO_PIN5, NULL); /* for flash A20 line */
|
||||
|
@ -43,4 +59,6 @@ void __init compex_generic_setup(void)
|
|||
adm5120_add_device_flash(0);
|
||||
|
||||
adm5120_add_device_gpio(COMPEX_GPIO_DEV_MASK);
|
||||
|
||||
compex_mac_setup();
|
||||
}
|
||||
|
|
|
@ -36,6 +36,7 @@ int __init myloader_present(void)
|
|||
struct mylo_system_params *sysp;
|
||||
struct mylo_board_params *boardp;
|
||||
struct mylo_partition_table *parts;
|
||||
int i;
|
||||
|
||||
if (myloader_found)
|
||||
goto out;
|
||||
|
@ -55,6 +56,12 @@ int __init myloader_present(void)
|
|||
myloader_info.svid = le32_to_cpu(sysp->svid);
|
||||
myloader_info.sdid = le32_to_cpu(sysp->sdid);
|
||||
|
||||
for (i = 0; i < MYLO_ETHADDR_COUNT; i++) {
|
||||
int j;
|
||||
for (j = 0; j < 6; j++)
|
||||
myloader_info.macs[i][j] = boardp->addr[i].mac[j];
|
||||
}
|
||||
|
||||
myloader_found = 1;
|
||||
|
||||
out:
|
||||
|
|
|
@ -170,6 +170,7 @@ struct myloader_info {
|
|||
u32 did;
|
||||
u32 svid;
|
||||
u32 sdid;
|
||||
uint8_t macs[MYLO_ETHADDR_COUNT][6];
|
||||
};
|
||||
|
||||
extern struct myloader_info myloader_info;
|
||||
|
|
Loading…
Reference in New Issue