aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHelge Deller <deller@gmx.de>2024-01-14 17:47:40 +0100
committerHelge Deller <deller@gmx.de>2024-01-14 17:47:40 +0100
commit2e6d3df0054dcc2634caa668acf0d7eaf8e6529c (patch)
tree3baa8bb3e9db27d3cf4a07b854d73253e106b9d5
parentfb167450bd1b1cb6ae2a7d345d8698a6ad75937a (diff)
downloadseabios-hppa-2e6d3df0054dcc2634caa668acf0d7eaf8e6529c.zip
seabios-hppa-2e6d3df0054dcc2634caa668acf0d7eaf8e6529c.tar.gz
seabios-hppa-2e6d3df0054dcc2634caa668acf0d7eaf8e6529c.tar.bz2
Fix serial & console I/O on 64-bit
-rw-r--r--src/output.c2
-rw-r--r--src/parisc/parisc.c8
2 files changed, 5 insertions, 5 deletions
diff --git a/src/output.c b/src/output.c
index f6ce8ae..6a8b556 100644
--- a/src/output.c
+++ b/src/output.c
@@ -122,7 +122,7 @@ putc(struct putcinfo *action, char c)
return;
}
-#if 0
+#if 1
void (*func)(struct putcinfo *info, char c) = GET_GLOBAL(action->func);
func(action, c);
#else
diff --git a/src/parisc/parisc.c b/src/parisc/parisc.c
index 42b8e31..86f80d1 100644
--- a/src/parisc/parisc.c
+++ b/src/parisc/parisc.c
@@ -989,10 +989,10 @@ static unsigned long parisc_serial_in(char *c, unsigned long maxchars)
} else
addr += 0x800;
while (count < maxchars) {
- u8 lsr = inb(addr+SEROFF_LSR);
+ u8 lsr = inb(F_EXTEND(addr+SEROFF_LSR));
if (lsr & 0x01) {
// Success - can read data
- *c++ = inb(addr+SEROFF_DATA);
+ *c++ = inb(F_EXTEND(addr+SEROFF_DATA));
count++;
}
if (timer_check(end))
@@ -1034,10 +1034,10 @@ static void parisc_serial_out(char c)
parisc_serial_out('\r');
for (;;) {
- u8 lsr = inb(addr+SEROFF_LSR);
+ u8 lsr = inb(F_EXTEND(addr+SEROFF_LSR));
if ((lsr & 0x60) == 0x60) {
// Success - can write data
- outb(c, addr+SEROFF_DATA);
+ outb(c, F_EXTEND(addr+SEROFF_DATA));
break;
}
}