diff options
author | Miod Vallat <miod@cvs.openbsd.org> | 2012-03-28 20:44:24 +0000 |
---|---|---|
committer | Miod Vallat <miod@cvs.openbsd.org> | 2012-03-28 20:44:24 +0000 |
commit | 6ea0ed8392999d052b79785548a577d7e55b7184 (patch) | |
tree | b4c5fb05563150bb09cc3d203971a18a2b5277bc /sys/arch/mips64/include | |
parent | b71835f84a40d614f56816274c2400a719e82600 (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.h | 3 | ||||
-rw-r--r-- | sys/arch/mips64/include/cpu.h | 5 |
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); |