summaryrefslogtreecommitdiff
path: root/sys/arch/mips64/include
diff options
context:
space:
mode:
authorMiod Vallat <miod@cvs.openbsd.org>2012-03-28 20:44:24 +0000
committerMiod Vallat <miod@cvs.openbsd.org>2012-03-28 20:44:24 +0000
commit6ea0ed8392999d052b79785548a577d7e55b7184 (patch)
treeb4c5fb05563150bb09cc3d203971a18a2b5277bc /sys/arch/mips64/include
parentb71835f84a40d614f56816274c2400a719e82600 (diff)
Work in progress support for the SGI Indigo, Indigo 2 and Indy systems
(IP20, IP22, IP24) in 64-bit mode, adapated from NetBSD. Currently limited to headless operation, input and video drivers will get ported soon. Should work on all R4000, R4440 and R5000 based systems. L2 cache on R5000SC Indy not supported yet (coming soon), R4600 not supported yet either (coming soon as well). Tested to boot multiuser on: Indigo2 R4000SC, Indy R4000PC, Indy R4000SC, Indy R5000SC, Indigo2 R4400SC. There are still glitches in the Ethernet driver which are being looked at. Expansion support is limited to the GIO E++ board; GIO boards with PCI-GIO bridges not ported yet due to the lack of hardware, and this kind of driver does not port blindly. Most of this work comes from NetBSD, polishing and integration work, as well as putting as many ``R4x00 in 64-bit mode'' erratas as necessary, by yours truly. More work is coming, as well as trying to get some easy way to boot install kernels (as older PROM can only boot ECOFF binaries, which won't do for the kernel).
Diffstat (limited to 'sys/arch/mips64/include')
-rw-r--r--sys/arch/mips64/include/arcbios.h3
-rw-r--r--sys/arch/mips64/include/cpu.h5
2 files changed, 6 insertions, 2 deletions
diff --git a/sys/arch/mips64/include/arcbios.h b/sys/arch/mips64/include/arcbios.h
index 51e6f00b014..112bbaf2f2c 100644
--- a/sys/arch/mips64/include/arcbios.h
+++ b/sys/arch/mips64/include/arcbios.h
@@ -1,4 +1,4 @@
-/* $OpenBSD: arcbios.h,v 1.18 2011/06/05 20:58:46 miod Exp $ */
+/* $OpenBSD: arcbios.h,v 1.19 2012/03/28 20:44:23 miod Exp $ */
/*-
* Copyright (c) 1996 M. Warner Losh. All rights reserved.
*
@@ -419,6 +419,7 @@ typedef struct arc_param_blk_64
#define ARCBIOS_PAGE_SIZE 4096
extern int bios_is_32bit;
+extern int bios_consrate;
extern char bios_enaddr[20];
extern char bios_console[30];
extern char bios_graphics[6];
diff --git a/sys/arch/mips64/include/cpu.h b/sys/arch/mips64/include/cpu.h
index 5a079b54e11..59b0760382b 100644
--- a/sys/arch/mips64/include/cpu.h
+++ b/sys/arch/mips64/include/cpu.h
@@ -1,4 +1,4 @@
-/* $OpenBSD: cpu.h,v 1.77 2012/03/25 13:52:52 miod Exp $ */
+/* $OpenBSD: cpu.h,v 1.78 2012/03/28 20:44:23 miod Exp $ */
/*-
* Copyright (c) 1992, 1993
@@ -560,6 +560,7 @@ uint32_t cp0_get_config_2(void);
uint32_t cp0_get_config_3(void);
uint32_t cp0_get_prid(void);
void cp0_set_compare(u_int);
+void cp0_set_config(uint32_t);
u_int cp1_get_prid(void);
void tlb_set_page_mask(uint32_t);
void tlb_set_pid(int);
@@ -580,6 +581,8 @@ void save_fpu(void);
int fpe_branch_emulate(struct proc *, struct trap_frame *, uint32_t,
vaddr_t);
+int guarded_read_1(paddr_t, uint8_t *);
+int guarded_read_2(paddr_t, uint16_t *);
int guarded_read_4(paddr_t, uint32_t *);
int guarded_write_4(paddr_t, uint32_t);