Blame SOURCES/0189-include-grub-cmos.h-Handle-high-CMOS-addresses-on-sp.patch

f96e0b
From f7afdfb1d4cc6b8843e11069cb1601caaca50c73 Mon Sep 17 00:00:00 2001
f96e0b
From: Vladimir 'phcoder' Serbinenko <phcoder@gmail.com>
f96e0b
Date: Sat, 2 Mar 2013 23:59:05 +0100
f96e0b
Subject: [PATCH 189/482] 	* include/grub/cmos.h: Handle high CMOS
f96e0b
 addresses on sparc64.
f96e0b
f96e0b
---
f96e0b
 ChangeLog           | 4 ++++
f96e0b
 include/grub/cmos.h | 8 ++++----
f96e0b
 2 files changed, 8 insertions(+), 4 deletions(-)
f96e0b
f96e0b
diff --git a/ChangeLog b/ChangeLog
f96e0b
index 93a8a93..ea87229 100644
f96e0b
--- a/ChangeLog
f96e0b
+++ b/ChangeLog
f96e0b
@@ -1,5 +1,9 @@
f96e0b
 2013-03-02  Vladimir Serbinenko  <phcoder@gmail.com>
f96e0b
 
f96e0b
+	* include/grub/cmos.h: Handle high CMOS addresses on sparc64.
f96e0b
+
f96e0b
+2013-03-02  Vladimir Serbinenko  <phcoder@gmail.com>
f96e0b
+
f96e0b
 	* include/grub/mips/loongson/cmos.h: Fix high CMOS addresses.
f96e0b
 
f96e0b
 2013-03-02  Vladimir Serbinenko  <phcoder@gmail.com>
f96e0b
diff --git a/include/grub/cmos.h b/include/grub/cmos.h
f96e0b
index aa2b233..56ccc71 100644
f96e0b
--- a/include/grub/cmos.h
f96e0b
+++ b/include/grub/cmos.h
f96e0b
@@ -103,8 +103,8 @@ grub_cmos_read (grub_uint8_t index, grub_uint8_t *val)
f96e0b
       if (err)
f96e0b
 	return err;
f96e0b
     }
f96e0b
-  grub_cmos_port[0] = index;
f96e0b
-  *val = grub_cmos_port[1];
f96e0b
+  grub_cmos_port[((index & 0x80) >> 6) | 0] = index & 0x7f;
f96e0b
+  *val = grub_cmos_port[((index & 0x80) >> 6) | 1];
f96e0b
   return GRUB_ERR_NONE;
f96e0b
 }
f96e0b
 
f96e0b
@@ -118,8 +118,8 @@ grub_cmos_write (grub_uint8_t index, grub_uint8_t val)
f96e0b
       if (err)
f96e0b
 	return err;
f96e0b
     }
f96e0b
-  grub_cmos_port[0] = index;
f96e0b
-  grub_cmos_port[1] = val;
f96e0b
+  grub_cmos_port[((index & 0x80) >> 6) | 0] = index;
f96e0b
+  grub_cmos_port[((index & 0x80) >> 6) | 1] = val;
f96e0b
   return GRUB_ERR_NONE;
f96e0b
 }
f96e0b
 
f96e0b
-- 
f96e0b
1.8.2.1
f96e0b