aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHelge Deller <deller@gmx.de>2024-01-14 18:28:48 +0100
committerHelge Deller <deller@gmx.de>2024-01-14 18:28:48 +0100
commit42bd4933a1cee75184bbf5347f5203769fd7f70d (patch)
treeca22b61e4e7fb191bef7157e6672fd075e9c7350
parent0882f2e6d80aea2f59dc2ae6c4d8fa21c015b7a9 (diff)
downloadseabios-hppa-42bd4933a1cee75184bbf5347f5203769fd7f70d.zip
seabios-hppa-42bd4933a1cee75184bbf5347f5203769fd7f70d.tar.gz
seabios-hppa-42bd4933a1cee75184bbf5347f5203769fd7f70d.tar.bz2
Copy whole pdc entry function into low memory
-rw-r--r--src/parisc/head.S2
-rw-r--r--src/parisc/parisc.c8
2 files changed, 7 insertions, 3 deletions
diff --git a/src/parisc/head.S b/src/parisc/head.S
index 631c4c5..9e58477 100644
--- a/src/parisc/head.S
+++ b/src/parisc/head.S
@@ -450,6 +450,8 @@ ENTRY(pdc_entry_table)
load32 pdc_entry,%r1
clear_PSW_W
bv,n %r0(%r1)
+pdc_entry_table_end:
+ .export pdc_entry_table_end
END(pdc_entry_table)
ENTRY(iodc_entry_table)
diff --git a/src/parisc/parisc.c b/src/parisc/parisc.c
index 27bcf9f..8bc31b7 100644
--- a/src/parisc/parisc.c
+++ b/src/parisc/parisc.c
@@ -149,7 +149,8 @@ unsigned int tlb_entries = 256;
#define PARISC_SERIAL_CONSOLE PORT_SERIAL1
extern char pdc_entry;
-extern char pdc_entry_table[4*4];
+extern char pdc_entry_table;
+extern char pdc_entry_table_end;
extern char iodc_entry[512];
extern char iodc_entry_table[14*4];
@@ -3084,8 +3085,9 @@ void __VISIBLE start_parisc_firmware(void)
/* memset((void*)PAGE0, 0, sizeof(*PAGE0)); */
/* copy pdc_entry entry into low memory. */
- memcpy((void*)MEM_PDC_ENTRY, &pdc_entry_table, 4*4);
- flush_data_cache((char*)MEM_PDC_ENTRY, 4*4);
+ i = &pdc_entry_table_end - &pdc_entry_table;
+ memcpy((void*)MEM_PDC_ENTRY, &pdc_entry_table, i);
+ flush_data_cache((char*)MEM_PDC_ENTRY, i);
PAGE0->memc_cont = ram_size;
PAGE0->memc_phsize = ram_size;