12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455 |
- --- a/arch/mips/ath79/prom.c
- +++ b/arch/mips/ath79/prom.c
- @@ -19,6 +19,7 @@
- #include <asm/bootinfo.h>
- #include <asm/addrspace.h>
- #include <asm/fw/fw.h>
- +#include <asm/fw/myloader/myloader.h>
-
- #include "common.h"
-
- @@ -32,10 +33,44 @@ static void __init ath79_prom_append_cmd
- strlcat(arcs_cmdline, ath79_cmdline_buf, sizeof(arcs_cmdline));
- }
-
- +static int __init ath79_prom_init_myloader(void)
- +{
- + struct myloader_info *mylo;
- + char mac_buf[32];
- + unsigned char *mac;
- +
- + mylo = myloader_get_info();
- + if (!mylo)
- + return 0;
- +
- + switch (mylo->did) {
- + case DEVID_COMPEX_WP543:
- + ath79_prom_append_cmdline("board", "WP543");
- + break;
- + case DEVID_COMPEX_WPE72:
- + ath79_prom_append_cmdline("board", "WPE72");
- + break;
- + default:
- + pr_warn("prom: unknown device id: %x\n", mylo->did);
- + return 0;
- + }
- +
- + mac = mylo->macs[0];
- + snprintf(mac_buf, sizeof(mac_buf), "%02x:%02x:%02x:%02x:%02x:%02x",
- + mac[0], mac[1], mac[2], mac[3], mac[4], mac[5]);
- +
- + ath79_prom_append_cmdline("ethaddr", mac_buf);
- +
- + return 1;
- +}
- +
- void __init prom_init(void)
- {
- const char *env;
-
- + if (ath79_prom_init_myloader())
- + return;
- +
- fw_init_cmdline();
-
- env = fw_getenv("ethaddr");
|