[OpenBIOS] [PATCHv2 5/6] escc.c: add DBDMA addresses to reg property

Mark Cave-Ayland mark.cave-ayland at ilande.co.uk
Sat Feb 20 18:18:35 CET 2016


These are required for MacOS to locate the serial port.

Signed-off-by: Mark Cave-Ayland <mark.cave-ayland>
---
 openbios-devel/drivers/escc.c |   14 +++++++++++++-
 1 file changed, 13 insertions(+), 1 deletion(-)

diff --git a/openbios-devel/drivers/escc.c b/openbios-devel/drivers/escc.c
index ebfe242..3dd5174 100644
--- a/openbios-devel/drivers/escc.c
+++ b/openbios-devel/drivers/escc.c
@@ -389,6 +389,14 @@ escc_add_channel(const char *path, const char *node, phys_addr_t addr,
     ucell offset;
     int index;
     int legacy;
+    
+    int dbdma_offsets[2][2] = {
+        /* ch-b */
+        { 0x6, 0x7 },
+        /* ch-a */
+        { 0x4, 0x5 }
+    };
+    
     int reg_offsets[2][2][3] = {
         {
             /* ch-b */
@@ -450,7 +458,11 @@ escc_add_channel(const char *path, const char *node, phys_addr_t addr,
     props[3] = 0x1;
     props[4] = offset + reg_offsets[legacy][index][2];
     props[5] = 0x1;
-    set_property(dnode, "reg", (char *)&props, 6 * sizeof(cell));
+    props[6] = 0x8000 + dbdma_offsets[index][0] * 0x100;
+    props[7] = 0x100;
+    props[8] = 0x8000 + dbdma_offsets[index][1] * 0x100;
+    props[9] = 0x100;
+    set_property(dnode, "reg", (char *)&props, 10 * sizeof(cell));
 
     props[0] = addr + offset + reg_offsets[legacy][index][0];
     OLDWORLD(set_property(dnode, "AAPL,address",
-- 
1.7.10.4




More information about the OpenBIOS mailing list