This makes Qi consistent with current SHR boot script. It assigns MAC
specified on the identity partition to device and the next address to
host.
---
 src/cpu/s3c2442/gta02.c |   27 +++++++++++++++++++++++++--
 1 files changed, 25 insertions(+), 2 deletions(-)

diff --git a/src/cpu/s3c2442/gta02.c b/src/cpu/s3c2442/gta02.c
index e9bc0a3..ae62158 100644
--- a/src/cpu/s3c2442/gta02.c
+++ b/src/cpu/s3c2442/gta02.c
@@ -558,6 +558,22 @@ void post_serial_init_gta02(void)
                puts("BATTERY CONDITION LOW\n");
 }
 
+/*
+ * Increment a hexadecimal digit represented by char,
+ * return 1 if overflow occured
+ */
+char inc_hexchar(char * p)
+{
+       if (*p == '9')
+               *p = 'A';
+       else if (*p != 'F')
+               (*p)++;
+       else {
+               *p = 0;
+               return 1;
+       }
+       return 0;
+}
 
 /*
  * create and append device-specific Linux kernel commandline
@@ -632,10 +648,17 @@ char * append_device_specific_cmdline_gta02(char * 
cmdline)
 
        mac[len] = '\0';
 
-       cmdline += strlen(strcpy(cmdline, " g_ether.host_addr="));
+       cmdline += strlen(strcpy(cmdline, " g_ether.dev_addr="));
        cmdline += strlen(strcpy(cmdline, &mac[2]));
 
-       cmdline += strlen(strcpy(cmdline, " g_ether.dev_addr="));
+       if (inc_hexchar(&mac[18]))
+               if (inc_hexchar(&mac[17]))
+                       if (inc_hexchar(&mac[15]))
+                               if (inc_hexchar(&mac[14]))
+                                       if (inc_hexchar(&mac[12]))
+                                               inc_hexchar(&mac[11]);
+
+       cmdline += strlen(strcpy(cmdline, " g_ether.host_addr="));
        cmdline += strlen(strcpy(cmdline, &mac[2]));
        *cmdline++ = ' ' ;
 bail:
-- 
1.6.0.6


Reply via email to