Main Page | Alphabetical List | Data Structures | Directories | File List | Data Fields | Globals

sys_nautilus.c File Reference

#include <linux/kernel.h>
#include <linux/types.h>
#include <linux/mm.h>
#include <linux/sched.h>
#include <linux/pci.h>
#include <linux/init.h>
#include <linux/reboot.h>
#include <linux/mc146818rtc.h>
#include <asm/ptrace.h>
#include <asm/system.h>
#include <asm/dma.h>
#include <asm/irq.h>
#include <asm/bitops.h>
#include <asm/mmu_context.h>
#include <asm/io.h>
#include <asm/pci.h>
#include <asm/pgtable.h>
#include <asm/core_irongate.h>
#include <asm/hwrpb.h>
#include "proto.h"
#include "irq.h"
#include "bios32.h"
#include "machvec.h"

Include dependency graph for sys_nautilus.c:

Go to the source code of this file.

Defines

#define dev2hose(d)   (bus2hose[(d)->bus->number]->pci_hose_index)
#define EV6__I_STAT__PAR   ( 1 << 29 )
#define EV6__MM_STAT__DC_TAG_PERR   ( 1 << 10 )
#define EV6__DC_STAT__SEO   ( 1 << 4 )
#define EV6__DC_STAT__ECC_ERR_LD   ( 1 << 3 )
#define EV6__DC_STAT__ECC_ERR_ST   ( 1 << 2 )
#define EV6__DC_STAT__TPERR_P1   ( 1 << 1 )
#define EV6__DC_STAT__TPERR_P0   ( 1 )
#define EV6__C_STAT__BC_PERR   ( 0x01 )
#define EV6__C_STAT__DC_PERR   ( 0x02 )
#define EV6__C_STAT__DSTREAM_MEM_ERR   ( 0x03 )
#define EV6__C_STAT__DSTREAM_BC_ERR   ( 0x04 )
#define EV6__C_STAT__DSTREAM_DC_ERR   ( 0x05 )
#define EV6__C_STAT__PROBE_BC_ERR0   ( 0x06 )
#define EV6__C_STAT__PROBE_BC_ERR1   ( 0x07 )
#define EV6__C_STAT__ISTREAM_MEM_ERR   ( 0x0B )
#define EV6__C_STAT__ISTREAM_BC_ERR   ( 0x0C )
#define EV6__C_STAT__DSTREAM_MEM_DBL   ( 0x13 )
#define EV6__C_STAT__DSTREAM_BC_DBL   ( 0x14 )
#define EV6__C_STAT__ISTREAM_MEM_DBL   ( 0x1B )
#define EV6__C_STAT__ISTREAM_BC_DBL   ( 0x1C )

Functions

static void nautilus_update_irq_hw (unsigned long irq, unsigned long mask, int unmask_p)
static void __init nautilus_init_irq (void)
static void __init nautilus_pci_fixup (void)
void nautilus_kill_arch (int mode, char *restart_cmd)
static int ev6_syn2bit (unsigned long c0, unsigned long c1)
static void ev6_crd_interp (char *interp, struct el_common_EV6_mcheck *L)
static void ev6_mchk_interp (char *interp, struct el_common_EV6_mcheck *L)
static void ev6_cpu_machine_check (unsigned long vector, struct el_common_EV6_mcheck *L, struct pt_regs *regs)
static void naut_sys_machine_check (unsigned long vector, unsigned long la_ptr, struct pt_regs *regs)
void nautilus_machine_check (unsigned long vector, unsigned long la_ptr, struct pt_regs *regs)

Variables

static const unsigned char ev6_bit_to_syndrome [72]
static const char * interr = ""
static const char * slotb = ""
static const char * membus = ""
alpha_machine_vector nautilus_mv __initmv


Define Documentation

#define dev2hose d   )     (bus2hose[(d)->bus->number]->pci_hose_index)
 

Definition at line 52 of file sys_nautilus.c.

#define EV6__C_STAT__BC_PERR   ( 0x01 )
 

Definition at line 174 of file sys_nautilus.c.

Referenced by ev6_mchk_interp().

#define EV6__C_STAT__DC_PERR   ( 0x02 )
 

Definition at line 175 of file sys_nautilus.c.

Referenced by ev6_mchk_interp().

#define EV6__C_STAT__DSTREAM_BC_DBL   ( 0x14 )
 

Definition at line 184 of file sys_nautilus.c.

Referenced by ev6_mchk_interp().

#define EV6__C_STAT__DSTREAM_BC_ERR   ( 0x04 )
 

Definition at line 177 of file sys_nautilus.c.

Referenced by ev6_crd_interp().

#define EV6__C_STAT__DSTREAM_DC_ERR   ( 0x05 )
 

Definition at line 178 of file sys_nautilus.c.

Referenced by ev6_crd_interp().

#define EV6__C_STAT__DSTREAM_MEM_DBL   ( 0x13 )
 

Definition at line 183 of file sys_nautilus.c.

Referenced by ev6_mchk_interp().

#define EV6__C_STAT__DSTREAM_MEM_ERR   ( 0x03 )
 

Definition at line 176 of file sys_nautilus.c.

Referenced by ev6_crd_interp().

#define EV6__C_STAT__ISTREAM_BC_DBL   ( 0x1C )
 

Definition at line 186 of file sys_nautilus.c.

Referenced by ev6_mchk_interp().

#define EV6__C_STAT__ISTREAM_BC_ERR   ( 0x0C )
 

Definition at line 182 of file sys_nautilus.c.

Referenced by ev6_crd_interp(), and ev6_mchk_interp().

#define EV6__C_STAT__ISTREAM_MEM_DBL   ( 0x1B )
 

Definition at line 185 of file sys_nautilus.c.

Referenced by ev6_mchk_interp().

#define EV6__C_STAT__ISTREAM_MEM_ERR   ( 0x0B )
 

Definition at line 181 of file sys_nautilus.c.

Referenced by ev6_crd_interp(), and ev6_mchk_interp().

#define EV6__C_STAT__PROBE_BC_ERR0   ( 0x06 )
 

Definition at line 179 of file sys_nautilus.c.

Referenced by ev6_crd_interp().

#define EV6__C_STAT__PROBE_BC_ERR1   ( 0x07 )
 

Definition at line 180 of file sys_nautilus.c.

Referenced by ev6_crd_interp().

#define EV6__DC_STAT__ECC_ERR_LD   ( 1 << 3 )
 

Definition at line 166 of file sys_nautilus.c.

Referenced by ev6_crd_interp().

#define EV6__DC_STAT__ECC_ERR_ST   ( 1 << 2 )
 

Definition at line 167 of file sys_nautilus.c.

Referenced by ev6_crd_interp().

#define EV6__DC_STAT__SEO   ( 1 << 4 )
 

Definition at line 165 of file sys_nautilus.c.

Referenced by ev6_mchk_interp().

#define EV6__DC_STAT__TPERR_P0   ( 1 )
 

Definition at line 169 of file sys_nautilus.c.

Referenced by ev6_mchk_interp().

#define EV6__DC_STAT__TPERR_P1   ( 1 << 1 )
 

Definition at line 168 of file sys_nautilus.c.

Referenced by ev6_mchk_interp().

#define EV6__I_STAT__PAR   ( 1 << 29 )
 

Definition at line 155 of file sys_nautilus.c.

Referenced by ev6_crd_interp().

#define EV6__MM_STAT__DC_TAG_PERR   ( 1 << 10 )
 

Definition at line 160 of file sys_nautilus.c.

Referenced by ev6_crd_interp().


Function Documentation

static void ev6_cpu_machine_check unsigned long  vector,
struct el_common_EV6_mcheck L,
struct pt_regs regs
[static]
 

Definition at line 386 of file sys_nautilus.c.

References el_common_EV6_mcheck::C_ADDR, el_common_EV6_mcheck::C_STAT, el_common_EV6_mcheck::C_STS, el_common_EV6_mcheck::DC0_SYNDROME, el_common_EV6_mcheck::DC1_SYNDROME, el_common_EV6_mcheck::DC_STAT, ev6_crd_interp(), ev6_mchk_interp(), el_common_EV6_mcheck::EXC_ADDR, el_common_EV6_mcheck::I_CTL, el_common_EV6_mcheck::I_STAT, el_common_EV6_mcheck::IER_CM, el_common_EV6_mcheck::ISUM, KERN_CRIT, el_common_EV6_mcheck::MCHK_Code, el_common_EV6_mcheck::MCHK_Frame_Rev, el_common_EV6_mcheck::MM_STAT, el_common_EV6_mcheck::PAL_BASE, pt_regs::pc, el_common_EV6_mcheck::PCTX, printk, pt_regs::r26, el_common_EV6_mcheck::RESERVED0, SCB_Q_PROCERR, SCB_Q_PROCMCHK, and sprintf().

Referenced by nautilus_machine_check().

Here is the call graph for this function:

static void ev6_crd_interp char *  interp,
struct el_common_EV6_mcheck L
[static]
 

Definition at line 234 of file sys_nautilus.c.

References el_common_EV6_mcheck::C_ADDR, el_common_EV6_mcheck::C_STAT, el_common_EV6_mcheck::DC0_SYNDROME, el_common_EV6_mcheck::DC1_SYNDROME, el_common_EV6_mcheck::DC_STAT, EV6__C_STAT__DSTREAM_BC_ERR, EV6__C_STAT__DSTREAM_DC_ERR, EV6__C_STAT__DSTREAM_MEM_ERR, EV6__C_STAT__ISTREAM_BC_ERR, EV6__C_STAT__ISTREAM_MEM_ERR, EV6__C_STAT__PROBE_BC_ERR0, EV6__C_STAT__PROBE_BC_ERR1, EV6__DC_STAT__ECC_ERR_LD, EV6__DC_STAT__ECC_ERR_ST, EV6__I_STAT__PAR, EV6__MM_STAT__DC_TAG_PERR, ev6_syn2bit(), el_common_EV6_mcheck::I_STAT, interr, membus, el_common_EV6_mcheck::MM_STAT, slotb, and sprintf().

Referenced by ev6_cpu_machine_check().

Here is the call graph for this function:

static void ev6_mchk_interp char *  interp,
struct el_common_EV6_mcheck L
[static]
 

Definition at line 314 of file sys_nautilus.c.

References el_common_EV6_mcheck::C_ADDR, el_common_EV6_mcheck::C_STAT, el_common_EV6_mcheck::DC0_SYNDROME, el_common_EV6_mcheck::DC1_SYNDROME, el_common_EV6_mcheck::DC_STAT, EV6__C_STAT__BC_PERR, EV6__C_STAT__DC_PERR, EV6__C_STAT__DSTREAM_BC_DBL, EV6__C_STAT__DSTREAM_MEM_DBL, EV6__C_STAT__ISTREAM_BC_DBL, EV6__C_STAT__ISTREAM_BC_ERR, EV6__C_STAT__ISTREAM_MEM_DBL, EV6__C_STAT__ISTREAM_MEM_ERR, EV6__DC_STAT__SEO, EV6__DC_STAT__TPERR_P0, EV6__DC_STAT__TPERR_P1, ev6_syn2bit(), interr, membus, slotb, and sprintf().

Referenced by ev6_cpu_machine_check().

Here is the call graph for this function:

static int ev6_syn2bit unsigned long  c0,
unsigned long  c1
[static]
 

Definition at line 209 of file sys_nautilus.c.

References bit, and ev6_bit_to_syndrome.

Referenced by ev6_crd_interp(), and ev6_mchk_interp().

static void naut_sys_machine_check unsigned long  vector,
unsigned long  la_ptr,
struct pt_regs regs
[static]
 

Definition at line 432 of file sys_nautilus.c.

References irongate_pci_clr_err(), pt_regs::pc, printk, and pt_regs::r26.

Referenced by nautilus_machine_check().

Here is the call graph for this function:

static void __init nautilus_init_irq void   )  [static]
 

Definition at line 68 of file sys_nautilus.c.

References alpha_using_srm, disable_irq, enable_irq, generic_kill_arch(), srm_device_interrupt(), and STANDARD_INIT_IRQ_PROLOG.

Here is the call graph for this function:

void nautilus_kill_arch int  mode,
char *  restart_cmd
 

Definition at line 89 of file sys_nautilus.c.

References __cli, __sti, CMOS_READ, CMOS_WRITE, halt, irongate_hose_read_config_byte(), irongate_hose_read_config_dword(), irongate_hose_write_config_byte(), LINUX_REBOOT_CMD_HALT, LINUX_REBOOT_CMD_POWER_OFF, LINUX_REBOOT_CMD_RESTART, outb, outl, outw, printk, RTC_CONTROL, RTC_FREQ_SELECT, RTC_INTR_FLAGS, RTC_PIE, v, x07, x10, x11, x43, x80, and xffff.

Here is the call graph for this function:

void nautilus_machine_check unsigned long  vector,
unsigned long  la_ptr,
struct pt_regs regs
 

Definition at line 445 of file sys_nautilus.c.

References draina, ev6_cpu_machine_check(), inb, IRONGATE0, KERN_CRIT, mb, naut_sys_machine_check(), outb, printk, SCB_Q_PROCERR, SCB_Q_PROCMCHK, SCB_Q_SYSERR, SCB_Q_SYSMCHK, temp, wrmces(), x300, x61, and x7.

Here is the call graph for this function:

static void __init nautilus_pci_fixup void   )  [static]
 

Definition at line 83 of file sys_nautilus.c.

static void nautilus_update_irq_hw unsigned long  irq,
unsigned long  mask,
int  unmask_p
[static]
 

Definition at line 55 of file sys_nautilus.c.

References outb.


Variable Documentation

struct alpha_machine_vector nautilus_mv __initmv
 

Initial value:

 {
        vector_name:            "NAUTILUS",
        DO_EV6_MMU,
        DO_DEFAULT_RTC,
        DO_IRONGATE_IO,
        DO_IRONGATE_BUS,
        machine_check:          nautilus_machine_check,
        max_dma_address:        ALPHA_NAUTILUS_MAX_DMA_ADDRESS,

        nr_irqs:                16,
        irq_probe_mask:         (_PROBE_MASK(16) & ~0x101UL),

        update_irq_hw:          nautilus_update_irq_hw,
        ack_irq:                generic_ack_irq,
        device_interrupt:       isa_device_interrupt,

        init_arch:              irongate_init_arch,
        init_irq:               nautilus_init_irq,
        init_pit:               generic_init_pit,
        pci_fixup:              nautilus_pci_fixup,
        kill_arch:              nautilus_kill_arch,
}

Definition at line 529 of file sys_nautilus.c.

const unsigned char ev6_bit_to_syndrome[72] [static]
 

Initial value:

{
    0xce, 0xcb, 0xd3, 0xd5, 0xd6, 0xd9, 0xda, 0xdc,     
    0x23, 0x25, 0x26, 0x29, 0x2a, 0x2c, 0x31, 0x34,     
    0x0e, 0x0b, 0x13, 0x15, 0x16, 0x19, 0x1a, 0x1c,     
    0xe3, 0xe5, 0xe6, 0xe9, 0xea, 0xec, 0xf1, 0xf4,     
    0x4f, 0x4a, 0x52, 0x54, 0x57, 0x58, 0x5b, 0x5d,     
    0xa2, 0xa4, 0xa7, 0xa8, 0xab, 0xad, 0xb0, 0xb5,     
    0x8f, 0x8a, 0x92, 0x94, 0x97, 0x98, 0x9b, 0x9d,     
    0x62, 0x64, 0x67, 0x68, 0x6b, 0x6d, 0x70, 0x75,     
    0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80      
}

Definition at line 195 of file sys_nautilus.c.

Referenced by ev6_syn2bit().

const char* interr = "" [static]
 

Definition at line 229 of file sys_nautilus.c.

Referenced by ev6_crd_interp(), and ev6_mchk_interp().

const char* membus = "" [static]
 

Definition at line 231 of file sys_nautilus.c.

Referenced by ev6_crd_interp(), and ev6_mchk_interp().

const char* slotb = "" [static]
 

Definition at line 230 of file sys_nautilus.c.

Referenced by ev6_crd_interp(), and ev6_mchk_interp().