mirror of
git://projects.qi-hardware.com/openwrt-xburst.git
synced 2024-12-26 01:18:58 +02:00
[adm5120] fix mac address setup on RouterBOARDs
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@9713 3c298f89-4303-0410-b956-a3cf2f4a3e73
This commit is contained in:
parent
10d5da709b
commit
0bebc59f0a
@ -64,8 +64,6 @@
|
|||||||
#define RB153_GPIO_CF_RDY ADM5120_GPIO_P1L1
|
#define RB153_GPIO_CF_RDY ADM5120_GPIO_P1L1
|
||||||
#define RB153_GPIO_CF_WT ADM5120_GPIO_P0L0
|
#define RB153_GPIO_CF_WT ADM5120_GPIO_P0L0
|
||||||
|
|
||||||
extern struct rb_hard_settings rb_hs;
|
|
||||||
|
|
||||||
/*--------------------------------------------------------------------------*/
|
/*--------------------------------------------------------------------------*/
|
||||||
|
|
||||||
static struct adm5120_pci_irq rb1xx_pci_irqs[] __initdata = {
|
static struct adm5120_pci_irq rb1xx_pci_irqs[] __initdata = {
|
||||||
@ -219,9 +217,13 @@ static void __init rb1xx_mac_setup(void)
|
|||||||
{
|
{
|
||||||
int i, j;
|
int i, j;
|
||||||
|
|
||||||
for (i = 0; i < rb_hs.mac_count; i++) {
|
if (!rb_hs.mac_base)
|
||||||
for (j = 0; j < RB_MAC_SIZE; j++)
|
return;
|
||||||
adm5120_eth_macs[i][j] = rb_hs.macs[i][j];
|
|
||||||
|
for (i = 0; i < 6; i++) {
|
||||||
|
for (j = 0; j < 5; j++)
|
||||||
|
adm5120_eth_macs[i][j] = rb_hs.mac_base[j];
|
||||||
|
adm5120_eth_macs[i][5] = rb_hs.mac_base[5]+i;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -37,7 +37,6 @@
|
|||||||
#include "prom_read.h"
|
#include "prom_read.h"
|
||||||
|
|
||||||
struct rb_hard_settings rb_hs;
|
struct rb_hard_settings rb_hs;
|
||||||
EXPORT_SYMBOL(rb_hs);
|
|
||||||
static int rb_found;
|
static int rb_found;
|
||||||
|
|
||||||
static int __init routerboot_load_hs(u8 *buf, u16 buflen)
|
static int __init routerboot_load_hs(u8 *buf, u16 buflen)
|
||||||
@ -86,15 +85,8 @@ static int __init routerboot_load_hs(u8 *buf, u16 buflen)
|
|||||||
rb_hs.mac_count = prom_read_le32(buf);
|
rb_hs.mac_count = prom_read_le32(buf);
|
||||||
break;
|
break;
|
||||||
case RB_ID_MAC_ADDRESS_PACK:
|
case RB_ID_MAC_ADDRESS_PACK:
|
||||||
rb_hs.mac_count = len/RB_MAC_SIZE;
|
if ((len / RB_MAC_SIZE) > 0)
|
||||||
if (rb_hs.mac_count > RB_MAX_MAC_COUNT)
|
rb_hs.mac_base = buf;
|
||||||
rb_hs.mac_count = RB_MAX_MAC_COUNT;
|
|
||||||
mac = buf;
|
|
||||||
for (i = 0; i < rb_hs.mac_count; i++) {
|
|
||||||
for (j = 0; j < RB_MAC_SIZE; j++)
|
|
||||||
rb_hs.macs[i][j] = mac[j];
|
|
||||||
mac += RB_MAC_SIZE;
|
|
||||||
}
|
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -26,7 +26,6 @@
|
|||||||
#define _ROUTERBOOT_H
|
#define _ROUTERBOOT_H
|
||||||
|
|
||||||
#define RB_MAC_SIZE 6
|
#define RB_MAC_SIZE 6
|
||||||
#define RB_MAX_MAC_COUNT 6
|
|
||||||
|
|
||||||
struct rb_bios_settings {
|
struct rb_bios_settings {
|
||||||
u32 hs_offs; /* hard settings offset */
|
u32 hs_offs; /* hard settings offset */
|
||||||
@ -41,7 +40,7 @@ struct rb_hard_settings {
|
|||||||
char *bios_ver; /* BIOS version */
|
char *bios_ver; /* BIOS version */
|
||||||
u32 mem_size; /* memory size in bytes */
|
u32 mem_size; /* memory size in bytes */
|
||||||
u32 mac_count; /* number of mac addresses */
|
u32 mac_count; /* number of mac addresses */
|
||||||
u8 macs[RB_MAC_SIZE][RB_MAX_MAC_COUNT]; /* mac addresses */
|
u8 *mac_base; /* mac address base */
|
||||||
};
|
};
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@ -134,4 +133,6 @@ struct rb_hard_settings {
|
|||||||
extern int routerboot_present(void) __init;
|
extern int routerboot_present(void) __init;
|
||||||
extern char *routerboot_get_boardname(void);
|
extern char *routerboot_get_boardname(void);
|
||||||
|
|
||||||
|
extern struct rb_hard_settings rb_hs;
|
||||||
|
|
||||||
#endif /* _ROUTERBOOT_H */
|
#endif /* _ROUTERBOOT_H */
|
||||||
|
Loading…
Reference in New Issue
Block a user