NetBSD/sys/arch/next68k/next68k/nextrom.h

255 lines
7.0 KiB
Objective-C

/* $NetBSD: nextrom.h,v 1.6 1999/03/24 23:15:59 dbj Exp $ */
/*
* Copyright (c) 1998 Darrin B. Jewell
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
* 1. Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
* 2. Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
* 3. All advertising materials mentioning features or use of this software
* must display the following acknowledgement:
* This product includes software developed by Darrin B. Jewell
* 4. The name of the author may not be used to endorse or promote products
* derived from this software without specific prior written permission
*
* THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
* IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
* OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
* IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
* NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
* DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
* THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
* THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
#ifndef NEXTROM_H_INCLUDED
#define NEXTROM_H_INCLUDED
#define MG_simm 0
#define MG_flags 4
#define MG_sid 6
#define MG_pagesize 10
#define MG_mon_stack 14
#define MG_vbr 18
#define MG_nvram 22
#define MG_inetntoa 54
#define MG_inputline 72
#define MG_region 200
#define MG_alloc_base 232
#define MG_alloc_brk 236
#define MG_boot_dev 240
#define MG_boot_arg 244
#define MG_boot_info 248
#define MG_boot_file 252
#define MG_bootfile 256
#define MG_boot_how 320
#define MG_km 324
#define MG_km_flags 368
#define MG_mon_init 370
#define MG_si 374
#define MG_time 378
#define MG_sddp 382
#define MG_dgp 386
#define MG_s5cp 390
#define MG_odc 394
#define MG_odd 398
#define MG_radix 402
#define MG_dmachip 404
#define MG_diskchip 408
#define MG_intrstat 412
#define MG_intrmask 416
#define MG_nofault 420
#define MG_fmt 424
#define MG_addr 426
#define MG_na 458
#define MG_mx 462
#define MG_my 466
#define MG_cursor_save 470
#define MG_getc 726
#define MG_try_getc 730
#define MG_putc 734
#define MG_alert 738
#define MG_alert_confirm 742
#define MG_alloc 746
#define MG_boot_slider 750
#define MG_eventc 754
#define MG_event_high 758
#define MG_animate 762
#define MG_anim_time 766
#define MG_scsi_intr 770
#define MG_scsi_intrarg 774
#define MG_minor 778
#define MG_seq 780
#define MG_anim_run 782
#define MG_major 786
#define MG_con_slot 844
#define MG_con_fbnum 845
#define MG_con_map_vaddr0 860
#define MG_con_map_vaddr1 872
#define MG_con_map_vaddr2 884
#define MG_con_map_vaddr3 896
#define MG_con_map_vaddr4 908
#define MG_con_map_vaddr5 920
/*
* Darrin B Jewell <jewell@mit.edu> Mon Jan 19 13:17:20 1998
* I made up these:
*/
#define MG_clientetheraddr 788
#define MG_machine_type 936
#define MG_board_rev 937
#if 0
/*
* The ROM monitor uses the old structure alignment for backward
* compatibility with previous ROMs. The old alignment is enabled
* with the following pragma. The kernel uses the "MG" macro to
* construct an old alignment offset into the mon_global structure.
* The kernel file <mon/assym.h> should be copied from the "assym.h"
* found in the build directory of the current ROM release.
* It will contain the proper old alignment offset constants.
*/
#if MONITOR
#pragma CC_OLD_STORAGE_LAYOUT_ON
#else MONITOR
#import <mon/assym.h>
#define MG(type, off) \
((type) ((u_int) (mg) + off))
#endif MONITOR
#import <mon/nvram.h>
#import <mon/region.h>
#import <mon/tftp.h>
#import <mon/sio.h>
#import <mon/animate.h>
#import <mon/kmreg.h>
#import <next/cpu.h>
#import <next/machparam.h>
#define LMAX 128
#define NBOOTFILE 64
#define NADDR 8
struct mon_global {
char mg_simm[N_SIMM]; /* MUST BE FIRST (accesed early by locore) */
char mg_flags; /* MUST BE SECOND */
#define MGF_LOGINWINDOW 0x80
#define MGF_UART_SETUP 0x40
#define MGF_UART_STOP 0x20
#define MGF_UART_TYPE_AHEAD 0x10
#define MGF_ANIM_RUN 0x08
#define MGF_SCSI_INTR 0x04
#define MGF_KM_EVENT 0x02
#define MGF_KM_TYPE_AHEAD 0x01
u_int mg_sid, mg_pagesize, mg_mon_stack, mg_vbr;
struct nvram_info mg_nvram;
char mg_inetntoa[18];
char mg_inputline[LMAX];
struct mon_region mg_region[N_SIMM];
caddr_t mg_alloc_base, mg_alloc_brk;
char *mg_boot_dev, *mg_boot_arg, *mg_boot_info, *mg_boot_file;
char mg_bootfile[NBOOTFILE];
enum SIO_ARGS mg_boot_how;
struct km_mon km;
int mon_init;
struct sio *mg_si;
int mg_time;
char *mg_sddp;
char *mg_dgp;
char *mg_s5cp;
char *mg_odc, *mg_odd;
char mg_radix;
int mg_dmachip;
int mg_diskchip;
volatile int *mg_intrstat;
volatile int *mg_intrmask;
void (*mg_nofault)();
char fmt;
int addr[NADDR], na;
int mx, my; /* mouse location */
u_int cursor_save[2][32];
int (*mg_getc)(), (*mg_try_getc)(), (*mg_putc)();
int (*mg_alert)(), (*mg_alert_confirm)();
caddr_t (*mg_alloc)();
int (*mg_boot_slider)();
volatile u_char *eventc_latch;
volatile u_int event_high;
struct animation *mg_animate;
int mg_anim_time;
void (*mg_scsi_intr)();
int mg_scsi_intrarg;
short mg_minor, mg_seq;
int (*mg_anim_run)();
short mg_major;
char *mg_clientetheraddr;
int mg_console_i;
int mg_console_o;
#define CONS_I_KBD 0
#define CONS_I_SCC_A 1
#define CONS_I_SCC_B 2
#define CONS_I_NET 3
#define CONS_O_BITMAP 0
#define CONS_O_SCC_A 1
#define CONS_O_SCC_B 2
#define CONS_O_NET 3
char *test_msg;
/* Next entry should be km_coni. Mach depends on this! */
struct km_console_info km_coni; /* Console configuration info. See kmreg.h */
char *mg_fdgp;
char mg_machine_type, mg_board_rev;
int (*mg_as_tune)();
int mg_flags2;
#define MGF2_PARITY 0x80000000
};
struct mon_global *restore_mg();
caddr_t mon_alloc();
#endif /* if 0 */
#define N_SIMM 4 /* number of SIMMs in machine */
/* SIMM types */
#define SIMM_SIZE 0x03
#define SIMM_SIZE_EMPTY 0x00
#define SIMM_SIZE_16MB 0x01
#define SIMM_SIZE_4MB 0x02
#define SIMM_SIZE_1MB 0x03
#define SIMM_PAGE_MODE 0x04
#define SIMM_PARITY 0x08 /* ?? */
/* Space for onboard RAM
*/
#define MAX_PHYS_SEGS N_SIMM+1
/* Machine types, used in both assembler and C sources. */
#define NeXT_CUBE 0
#define NeXT_WARP9 1
#define NeXT_X15 2
#define NeXT_WARP9C 3
#define NeXT_TURBO_COLOR 5 /* probed witnessed */
#define ROM_STACK_SIZE (8192 - 2048)
extern u_char rom_enetaddr[];
extern u_char rom_boot_dev[];
extern u_char rom_boot_arg[];
extern u_char rom_boot_info[];
extern u_char rom_boot_file[];
extern u_char rom_bootfile[];
extern char rom_machine_type;
extern u_int monbootflag;
#endif /* NEXTROM_H_INCLUDED */