diff options
-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; |