diff options
author | Helge Deller <deller@gmx.de> | 2024-01-14 18:28:48 +0100 |
---|---|---|
committer | Helge Deller <deller@gmx.de> | 2024-01-14 18:28:48 +0100 |
commit | 42bd4933a1cee75184bbf5347f5203769fd7f70d (patch) | |
tree | ca22b61e4e7fb191bef7157e6672fd075e9c7350 | |
parent | 0882f2e6d80aea2f59dc2ae6c4d8fa21c015b7a9 (diff) | |
download | seabios-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.S | 2 | ||||
-rw-r--r-- | src/parisc/parisc.c | 8 |
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; |