--- trunk/src/include/devices.h 2007/10/08 16:19:23 20 +++ trunk/src/include/devices.h 2007/10/08 16:19:37 22 @@ -28,7 +28,7 @@ * SUCH DAMAGE. * * - * $Id: devices.h,v 1.194 2005/11/22 02:07:40 debug Exp $ + * $Id: devices.h,v 1.207 2006/02/18 17:55:25 debug Exp $ * * Memory mapped devices. * @@ -76,6 +76,11 @@ int dev_dec_ioasic_access(struct cpu *cpu, struct memory *mem, uint64_t relative_addr, unsigned char *data, size_t len, int writeflag, void *); struct dec_ioasic_data *dev_dec_ioasic_init(struct cpu *cpu, struct memory *mem, uint64_t baseaddr, int rackmount_flag); +/* dev_algor.c: */ +struct algor_data { + uint64_t base_addr; +}; + /* dev_asc.c: */ #define DEV_ASC_DEC_LENGTH 0x40000 #define DEV_ASC_PICA_LENGTH 0x1000 @@ -150,6 +155,7 @@ struct cons_data { int console_handle; int irq_nr; + int in_use; }; /* dev_colorplanemask.c: */ @@ -211,12 +217,15 @@ #define DEV_FB_LENGTH 0x3c0000 /* 3c0000 to not colide with */ /* turbochannel rom, */ /* otherwise size = 4MB */ +/* Type: */ #define VFB_GENERIC 0 #define VFB_HPC 1 #define VFB_DEC_VFB01 2 #define VFB_DEC_VFB02 3 #define VFB_DEC_MAXINE 4 #define VFB_PLAYSTATION2 5 +/* Extra flags: */ +#define VFB_REVERSE_START 0x10000 struct vfb_data { int vfb_type; @@ -243,6 +252,8 @@ /* RGB palette for <= 8 bit modes: (r,g,b bytes for each) */ unsigned char rgb_palette[256 * 3]; + void (*redraw_func)(struct vfb_data *, int, int); + /* These should always be in sync: */ unsigned char *framebuffer; struct fb_window *fb_window; @@ -286,6 +297,17 @@ uint32_t fiq_enable; }; +/* dev_gc.c: */ +struct gc_data { + int reassert_irq; + uint32_t status_hi; + uint32_t status_lo; + uint32_t enable_hi; + uint32_t enable_lo; +}; +struct gc_data *dev_gc_init(struct machine *, struct memory *, uint64_t addr, + int reassert_irq); + /* dev_gt.c: */ #define DEV_GT_LENGTH 0x1000 int dev_gt_access(struct cpu *cpu, struct memory *mem, uint64_t relative_addr, @@ -293,6 +315,20 @@ struct pci_data *dev_gt_init(struct machine *machine, struct memory *mem, uint64_t baseaddr, int irq_nr, int pciirq, int type); +/* dev_i80321.c: */ +struct i80321_data { + /* Interrupt Controller */ + int reassert_irq; + uint32_t status; + uint32_t enable; + + uint32_t pci_addr; + struct pci_data *pci_bus; + + /* Memory Controller: */ + uint32_t mcu_reg[0x100 / sizeof(uint32_t)]; +}; + /* dev_jazz.c: */ #define DEV_JAZZ_LENGTH 0x280 struct jazz_data { @@ -593,7 +629,7 @@ struct mace_data *dev_mace_init(struct memory *mem, uint64_t baseaddr, int irqnr); #define DEV_MACEPCI_LENGTH 0x1000 int dev_macepci_access(struct cpu *cpu, struct memory *mem, uint64_t relative_addr, unsigned char *data, size_t len, int writeflag, void *); -struct pci_data *dev_macepci_init(struct memory *mem, uint64_t baseaddr, int pciirq); +struct pci_data *dev_macepci_init(struct machine *machine, struct memory *mem, uint64_t baseaddr, int pciirq); #define DEV_SGI_MEC_LENGTH 0x1000 int dev_sgi_mec_access(struct cpu *cpu, struct memory *mem, uint64_t relative_addr, unsigned char *data, size_t len, int writeflag, void *); void dev_sgi_mec_init(struct machine *machine, struct memory *mem, uint64_t baseaddr, int irq_nr, unsigned char *macaddr); @@ -624,6 +660,17 @@ int slot_nr, uint64_t baseaddr, uint64_t endaddr, char *device_name, int irq); +/* dev_uninorth.c: */ +struct pci_data *dev_uninorth_init(struct machine *machine, struct memory *mem, + uint64_t addr, int irqbase, int pciirq); + +/* dev_v3.c: */ +struct v3_data { + struct pci_data *pci_data; + uint16_t lb_map0; +}; +struct v3_data *dev_v3_init(struct machine *, struct memory *); + /* dev_vga.c: */ int dev_vga_access(struct cpu *cpu, struct memory *mem, uint64_t relative_addr, unsigned char *data, size_t len, int writeflag, void *); @@ -636,7 +683,7 @@ int cpumodel; int kiu_console_handle; - int kiu_offset; + uint32_t kiu_offset; int kiu_irq_nr; int kiu_int_assert; int d0; @@ -669,13 +716,6 @@ int dev_wdsc_access(struct cpu *cpu, struct memory *mem, uint64_t relative_addr, unsigned char *data, size_t len, int writeflag, void *); void dev_wdsc_init(struct machine *machine, struct memory *mem, uint64_t baseaddr, int controller_nr, int irq_nr); -/* dev_zs.c: */ -#define DEV_ZS_LENGTH 0x10 -int dev_zs_access(struct cpu *cpu, struct memory *mem, uint64_t relative_addr, - unsigned char *data, size_t len, int writeflag, void *); -int dev_zs_init(struct machine *machine, struct memory *mem, uint64_t baseaddr, - int irq_nr, int addrmult, char *name); - /* lk201.c: */ struct lk201_data { int use_fb;