aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGerd Hoffmann <kraxel@redhat.com>2013-11-26 14:10:25 +0100
committerGerd Hoffmann <kraxel@redhat.com>2013-12-04 10:59:35 +0100
commit3ecdc492ce1f2b7308dde85f1aba6a582a68f3cc (patch)
treef14cdc488aad9266786aefaa9fd6a67ca5223b4e
parent4a0f366ac380af50849ca5a03cdbc8fa3ac2781c (diff)
downloadseabios-3ecdc492ce1f2b7308dde85f1aba6a582a68f3cc.zip
seabios-3ecdc492ce1f2b7308dde85f1aba6a582a68f3cc.tar.gz
seabios-3ecdc492ce1f2b7308dde85f1aba6a582a68f3cc.tar.bz2
ahci: alloc structs in high memory
With ahci running in 32bit mode we can also allocate the (ahci private) data structures in high memory. This reduces the real mode memory footprint as we only need to move struct ahci_port_s (which contains struct drive_s) to fseg in case the port probe was successful. Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
-rw-r--r--src/hw/ahci.c6
1 files changed, 3 insertions, 3 deletions
diff --git a/src/hw/ahci.c b/src/hw/ahci.c
index 5984c1c..687cc7d 100644
--- a/src/hw/ahci.c
+++ b/src/hw/ahci.c
@@ -403,9 +403,9 @@ static struct ahci_port_s* ahci_port_realloc(struct ahci_port_s *port)
free(port->list);
free(port->fis);
free(port->cmd);
- port->list = memalign_low(1024, 1024);
- port->fis = memalign_low(256, 256);
- port->cmd = memalign_low(256, 256);
+ port->list = memalign_high(1024, 1024);
+ port->fis = memalign_high(256, 256);
+ port->cmd = memalign_high(256, 256);
ahci_port_writel(port->ctrl, port->pnr, PORT_LST_ADDR, (u32)port->list);
ahci_port_writel(port->ctrl, port->pnr, PORT_FIS_ADDR, (u32)port->fis);