diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/parisc/hppa_hardware.h | 6 | ||||
-rw-r--r-- | src/parisc/parisc.c | 8 |
2 files changed, 9 insertions, 5 deletions
diff --git a/src/parisc/hppa_hardware.h b/src/parisc/hppa_hardware.h index 658757c..5edf577 100644 --- a/src/parisc/hppa_hardware.h +++ b/src/parisc/hppa_hardware.h @@ -25,7 +25,7 @@ #define LASI_GFX_HPA 0xf8000000 #define ARTIST_FB_ADDR 0xf9000000 #define CPU_HPA 0xfffb0000 -#define MEMORY_HPA 0xfffbf000 +#define MEMORY_HPA 0xfffff000 #define PCI_HPA DINO_HPA /* PCI bus */ #define IDE_HPA 0xf9000000 /* Boot disc controller */ @@ -38,10 +38,12 @@ #define PORT_PCI_CMD (PCI_HPA + DINO_PCI_ADDR) #define PORT_PCI_DATA (PCI_HPA + DINO_CONFIG_DATA) +#define FW_CFG_IO_BASE 0xfffa0000 + #define PORT_SERIAL1 (DINO_UART_HPA + 0x800) #define PORT_SERIAL2 (LASI_UART_HPA + 0x800) -#define HPPA_MAX_CPUS 8 /* max. number of SMP CPUs */ +#define HPPA_MAX_CPUS 16 /* max. number of SMP CPUs */ #define CPU_CLOCK_MHZ 250 /* emulate a 250 MHz CPU */ #define CPU_HPA_CR_REG 7 /* store CPU HPA in cr7 (SeaBIOS internal) */ diff --git a/src/parisc/parisc.c b/src/parisc/parisc.c index faedd28..b54e4be 100644 --- a/src/parisc/parisc.c +++ b/src/parisc/parisc.c @@ -992,12 +992,14 @@ static int pdc_coproc(unsigned int *arg) { unsigned long option = ARG1; unsigned long *result = (unsigned long *)ARG2; - unsigned char mask; + unsigned long mask; switch (option) { case PDC_COPROC_CFG: memset(result, 0, 32 * sizeof(unsigned long)); - mask = ~((1 << (8-smp_cpus))-1); - /* set bit per cpu in ccr_functional and ccr_present: */ + /* Set one bit per cpu in ccr_functional and ccr_present. + Ignore that specification only mentions 8 bits for cr10 + and set all FPUs functional */ + mask = -1UL; mtctl(mask, 10); /* initialize cr10 */ result[0] = mask; result[1] = mask; |