ar71xx: add preliminary support for 3.3
[openwrt.git] / target / linux / ar71xx / patches-3.3 / 507-MIPS-ath79-prom-add-myloader-support.patch
diff --git a/target/linux/ar71xx/patches-3.3/507-MIPS-ath79-prom-add-myloader-support.patch b/target/linux/ar71xx/patches-3.3/507-MIPS-ath79-prom-add-myloader-support.patch
new file mode 100644 (file)
index 0000000..137bf6b
--- /dev/null
@@ -0,0 +1,55 @@
+--- a/arch/mips/ath79/prom.c
++++ b/arch/mips/ath79/prom.c
+@@ -16,6 +16,7 @@
+ #include <asm/bootinfo.h>
+ #include <asm/addrspace.h>
++#include <asm/fw/myloader/myloader.h>
+ #include "common.h"
+@@ -69,6 +70,34 @@ static const char * __init ath79_prom_fi
+       return ret;
+ }
++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;
++      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;
++}
++
+ static __init void ath79_prom_init_cmdline(int argc, char **argv)
+ {
+       int i;
+@@ -88,6 +117,9 @@ void __init prom_init(void)
+       const char *env;
+       char **envp;
++      if (ath79_prom_init_myloader())
++              return;
++
+       ath79_prom_init_cmdline(fw_arg0, (char **)fw_arg1);
+       envp = (char **)fw_arg2;
This page took 0.022211 seconds and 4 git commands to generate.