[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