You can subscribe to this list here.
2000 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
(6) |
Sep
(2) |
Oct
(43) |
Nov
(4) |
Dec
(12) |
---|---|---|---|---|---|---|---|---|---|---|---|---|
2001 |
Jan
(78) |
Feb
(97) |
Mar
(29) |
Apr
(2) |
May
(22) |
Jun
(38) |
Jul
(11) |
Aug
(27) |
Sep
(40) |
Oct
(2) |
Nov
(17) |
Dec
(8) |
2002 |
Jan
|
Feb
(2) |
Mar
(1) |
Apr
(480) |
May
(456) |
Jun
(12) |
Jul
|
Aug
(1) |
Sep
|
Oct
(18) |
Nov
(3) |
Dec
(6) |
2003 |
Jan
|
Feb
(18) |
Mar
(1) |
Apr
|
May
(6) |
Jun
(147) |
Jul
(7) |
Aug
(3) |
Sep
(235) |
Oct
(10) |
Nov
(2) |
Dec
(1) |
2004 |
Jan
|
Feb
|
Mar
|
Apr
|
May
(1) |
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
From: Andy P. <at...@us...> - 2002-04-09 11:07:28
|
Update of /cvsroot/linux-vax/kernel-2.4/include/asm-mips/pmc In directory usw-pr-cvs1:/tmp/cvs-serv23111/include/asm-mips/pmc Log Message: Directory /cvsroot/linux-vax/kernel-2.4/include/asm-mips/pmc added to the repository |
From: Andy P. <at...@us...> - 2002-04-09 10:57:17
|
Update of /cvsroot/linux-vax/kernel-2.4/fs/jbd In directory usw-pr-cvs1:/tmp/cvs-serv20249/fs/jbd Log Message: Directory /cvsroot/linux-vax/kernel-2.4/fs/jbd added to the repository |
From: Andy P. <at...@us...> - 2002-04-09 10:57:06
|
Update of /cvsroot/linux-vax/kernel-2.4/fs/ext3 In directory usw-pr-cvs1:/tmp/cvs-serv20187/fs/ext3 Log Message: Directory /cvsroot/linux-vax/kernel-2.4/fs/ext3 added to the repository |
From: Andy P. <at...@us...> - 2002-04-09 10:56:56
|
Update of /cvsroot/linux-vax/kernel-2.4/fs/intermezzo In directory usw-pr-cvs1:/tmp/cvs-serv20145/fs/intermezzo Log Message: Directory /cvsroot/linux-vax/kernel-2.4/fs/intermezzo added to the repository |
From: Andy P. <at...@us...> - 2002-04-09 10:56:47
|
Update of /cvsroot/linux-vax/kernel-2.4/fs/inflate_fs In directory usw-pr-cvs1:/tmp/cvs-serv20097/fs/inflate_fs Log Message: Directory /cvsroot/linux-vax/kernel-2.4/fs/inflate_fs added to the repository |
From: Andy P. <at...@us...> - 2002-04-09 10:56:29
|
Update of /cvsroot/linux-vax/kernel-2.4/fs/jffs2 In directory usw-pr-cvs1:/tmp/cvs-serv20038/fs/jffs2 Log Message: Directory /cvsroot/linux-vax/kernel-2.4/fs/jffs2 added to the repository |
From: Andy P. <at...@us...> - 2002-04-09 10:56:13
|
Update of /cvsroot/linux-vax/kernel-2.4/fs/freevxfs In directory usw-pr-cvs1:/tmp/cvs-serv19970/fs/freevxfs Log Message: Directory /cvsroot/linux-vax/kernel-2.4/fs/freevxfs added to the repository |
From: Dave A. <ai...@us...> - 2002-03-05 22:40:53
|
Update of /cvsroot/linux-vax/kernel-2.4/arch/vax/kernel In directory usw-pr-cvs1:/tmp/cvs-serv26630 Modified Files: cpu_ka46.c Log Message: DA: move floating point unit enable back further in boot Index: cpu_ka46.c =================================================================== RCS file: /cvsroot/linux-vax/kernel-2.4/arch/vax/kernel/cpu_ka46.c,v retrieving revision 1.9 retrieving revision 1.10 diff -u -r1.9 -r1.10 --- cpu_ka46.c 15 Dec 2001 12:21:58 -0000 1.9 +++ cpu_ka46.c 5 Mar 2002 22:40:47 -0000 1.10 @@ -74,6 +74,9 @@ ka46_cache_enable(); mv_ka46.sidex = *(unsigned int *)RIGEL_SIDEX_ADDR; + + __mtpr(PR_ACCS,2); /* Enable floating points */ + printk("ka46: enabled floating point\n"); } void ka46_post_vm_init(void) @@ -132,8 +135,6 @@ vsbus_setup(); #endif /* CONFIG_VSBUS */ - __mtpr(PR_ACCS,2); /* Enable floating points */ - printk("ka46: enabled floating point\n"); /* initialise the DMA area */ ka46_dma_init(); } |
From: Richard B. <rb...@us...> - 2002-02-04 22:56:53
|
Update of /cvsroot/linux-vax/kernel-2.4/drivers/vsbus In directory usw-pr-cvs1:/tmp/cvs-serv13138/drivers/vsbus Modified Files: vsbus.c Log Message: Added code to use new KA55 define for base registers Index: vsbus.c =================================================================== RCS file: /cvsroot/linux-vax/kernel-2.4/drivers/vsbus/vsbus.c,v retrieving revision 1.7 retrieving revision 1.8 diff -u -r1.7 -r1.8 --- vsbus.c 2001/11/12 23:54:44 1.7 +++ vsbus.c 2002/02/04 22:56:50 1.8 @@ -15,6 +15,7 @@ #include <asm/mv.h> #include <asm/ka43.h> extern struct vax_mv mv_ka46; +extern struct vax_mv mv_ka55; struct vsbus { struct vs_cpu *vs_cpu_ptr; @@ -26,21 +27,21 @@ { unsigned long irqs; - sys_vs.vs_cpu_ptr=(void *)ioremap(VSA_BASE_REGS, 128); + if (!is_ka55()) + sys_vs.vs_cpu_ptr=(void *)ioremap(VSA_BASE_REGS, 128); + else + sys_vs.vs_cpu_ptr=(void *)ioremap(VSA_KA55_BASE_REGS,128); sys_vs.vs_mask=sys_vs.vs_cpu_ptr->vc_intreq; - printk("vsbus: interrupt mask %x\n", sys_vs.vs_mask); irqs=probe_irq_on(); - + sys_vs.vs_cpu_ptr->vc_intmsk=0; sys_vs.vs_cpu_ptr->vc_intclr=0xFF; - // printk("vsbus: Getting Interrupt Mask\n"); mdelay(1000); sys_vs.vs_mask=sys_vs.vs_cpu_ptr->vc_intreq; - + /* switch off all interrupts for now */ sys_vs.vs_cpu_ptr->vc_intmsk=0; /*~sys_vs.vs_mask;*/ probe_irq_off(irqs); - printk("vsbus: interrupt mask %x\n", sys_vs.vs_mask); return 0; } @@ -85,3 +86,6 @@ } int is_ka46(void) { return (mv==&mv_ka46); } + +int is_ka55(void) { return (mv==&mv_ka55); } + |
From: Richard B. <rb...@us...> - 2002-02-04 22:55:53
|
Update of /cvsroot/linux-vax/kernel-2.4/include/asm-vax In directory usw-pr-cvs1:/tmp/cvs-serv12846/include/asm Modified Files: vsa.h Log Message: Added include for location of VSbus base registers for KA55 machines (3100/85) Index: vsa.h =================================================================== RCS file: /cvsroot/linux-vax/kernel-2.4/include/asm-vax/vsa.h,v retrieving revision 1.5 retrieving revision 1.6 diff -u -r1.5 -r1.6 --- vsa.h 2001/07/31 17:33:26 1.5 +++ vsa.h 2002/02/04 22:55:49 1.6 @@ -36,4 +36,5 @@ #define VSA_BASE_REGS 0x20080000 +#define VSA_KA55_BASE_REGS 0x25c00000 #endif |
From: Dave A. <ai...@us...> - 2001-12-15 12:30:25
|
Update of /cvsroot/linux-vax/kernel-2.4/Documentation/vax In directory usw-pr-cvs1:/tmp/cvs-serv16947/Documentation/vax Added Files: ptrace.txt Log Message: DA: ptrace info --- NEW FILE --- ptrace implementation for VAX (c) Dave Airlie 2001 ============================= Howto get the PC? The PC of the programming under debugging is stored on its kernel stack when it is context switched. The PC stored in the PCB is the vax_switch_to PC, not the user space codes current position. getreg/putreg use the stack top value to work out the pt_regs structures location and point into this. the calculation is taken from the process.c code for creating the stack. SINGLESTEP The single step code enables the T bit in the PSL for tracing, and the trace pending handler causes a SIGTRAP. |
From: Dave A. <ai...@us...> - 2001-12-15 12:29:32
|
Update of /cvsroot/linux-vax/kernel-2.4/arch/vax In directory usw-pr-cvs1:/tmp/cvs-serv16776/arch/vax Modified Files: config.in Log Message: DA: add not working qualifier Index: config.in =================================================================== RCS file: /cvsroot/linux-vax/kernel-2.4/arch/vax/config.in,v retrieving revision 1.9 retrieving revision 1.10 diff -u -r1.9 -r1.10 --- config.in 2001/12/15 12:20:56 1.9 +++ config.in 2001/12/15 12:29:30 1.10 @@ -114,7 +114,7 @@ comment 'SCSI low-level drivers' dep_tristate 'NCR53C80 Scsi Driver (used in VAXstation/MicroVAX 3100 family) ' CONFIG_SCSI_VAX_5380 $CONFIG_SCSI - dep_tristate 'NCR53C94 Scsi Driver (used in VAXstation 4000 family) ' CONFIG_SCSI_VAX_53C94 $CONFIG_SCSI + dep_tristate 'NCR53C94 Scsi Driver (used in VAXstation 4000 family) (NOT WORKING) ' CONFIG_SCSI_VAX_53C94 $CONFIG_SCSI fi endmenu |
From: Dave A. <ai...@us...> - 2001-12-15 12:28:27
|
Update of /cvsroot/linux-vax/kernel-2.4/drivers/scsi In directory usw-pr-cvs1:/tmp/cvs-serv16633 Added Files: vax_esp.c vax_esp.h Log Message: DA: import of stuff before laptop nuking --- NEW FILE --- /* * vax_esp.c: Driver for SCSI chips on VAXStation 4000/200 * * based on dec_esp.c: * VAX support by David Airlie * * TURBOchannel changes by Harald Koerfgen * PMAZ-A support by David Airlie * * based on jazz_esp.c: * Copyright (C) 1997 Thomas Bogendoerfer (tsb...@al...) * * jazz_esp is based on David S. Miller's ESP driver and cyber_esp */ #include <linux/kernel.h> #include <linux/delay.h> #include <linux/types.h> #include <linux/string.h> #include <linux/slab.h> #include <linux/blk.h> #include <linux/proc_fs.h> #include <linux/stat.h> #include "scsi.h" #include "hosts.h" #include "NCR53C9x.h" #include "vax_esp.h" #include <asm/irq.h> #include <asm/dma.h> #include <asm/pgtable.h> static int dma_bytes_sent(struct NCR_ESP *esp, int fifo_count); static void dma_drain(struct NCR_ESP *esp); static int dma_can_transfer(struct NCR_ESP *esp, Scsi_Cmnd * sp); static void dma_dump_state(struct NCR_ESP *esp); static void dma_init_read(struct NCR_ESP *esp, __u32 vaddress, int length); static void dma_init_write(struct NCR_ESP *esp, __u32 vaddress, int length); static void dma_ints_off(struct NCR_ESP *esp); static void dma_ints_on(struct NCR_ESP *esp); static int dma_irq_p(struct NCR_ESP *esp); static int dma_ports_p(struct NCR_ESP *esp); static void dma_setup(struct NCR_ESP *esp, __u32 addr, int count, int write); static void dma_mmu_get_scsi_one(struct NCR_ESP *esp, Scsi_Cmnd * sp); static void dma_mmu_get_scsi_sgl(struct NCR_ESP *esp, Scsi_Cmnd * sp); static void dma_advance_sg(Scsi_Cmnd * sp); #if 0 volatile unsigned char *scsi_pmaz_dma_ptrs_tc[ESP_NCMD]; unsigned char scsi_pmaz_dma_buff_used[ESP_NCMD]; #endif unsigned char scsi_cur_buff = 1; /* Leave space for command buffer */ __u32 esp_virt_buffer; int scsi_current_length = 0; volatile unsigned char cmd_buffer[16]; volatile unsigned char pmaz_cmd_buffer[16]; /* This is where all commands are put * before they are trasfered to the ESP chip * via PIO. */ volatile unsigned long *scsi_dma_ptr; volatile unsigned long *scsi_next_ptr; volatile unsigned long *scsi_scr; volatile unsigned long *ioasic_ssr; volatile unsigned long *scsi_sdr0; volatile unsigned long *scsi_sdr1; static void scsi_dma_int(int, void *, struct pt_regs *); /***************************************************************** Detection */ int vax_esp_detect(Scsi_Host_Template * tpnt) { struct NCR_ESP *esp; struct ConfigDev *esp_dev; unsigned long scsi_base; //#if INTERNAL_SCSI scsi_base = 0x200c0080; //#endif esp_dev = 0; esp = esp_allocate(tpnt, (void *) esp_dev); #if 0 scsi_dma_ptr = (unsigned long *) (system_base + IOCTL + SCSI_DMA_P); scsi_next_ptr = (unsigned long *) (system_base + IOCTL + SCSI_DMA_BP); scsi_scr = (unsigned long *) (system_base + IOCTL + SCSI_SCR); ioasic_ssr = (unsigned long *) (system_base + IOCTL + SSR); scsi_sdr0 = (unsigned long *) (system_base + IOCTL + SCSI_SDR0); scsi_sdr1 = (unsigned long *) (system_base + IOCTL + SCSI_SDR1); #endif /* Do command transfer with programmed I/O */ esp->do_pio_cmds = 1; /* Required functions */ esp->dma_bytes_sent = &dma_bytes_sent; esp->dma_can_transfer = &dma_can_transfer; esp->dma_dump_state = &dma_dump_state; esp->dma_init_read = &dma_init_read; esp->dma_init_write = &dma_init_write; esp->dma_ints_off = &dma_ints_off; esp->dma_ints_on = &dma_ints_on; esp->dma_irq_p = &dma_irq_p; esp->dma_ports_p = &dma_ports_p; esp->dma_setup = &dma_setup; /* Optional functions */ esp->dma_barrier = 0; esp->dma_drain = &dma_drain; esp->dma_invalidate = 0; esp->dma_irq_entry = 0; esp->dma_irq_exit = 0; esp->dma_poll = 0; esp->dma_reset = 0; esp->dma_led_off = 0; esp->dma_led_on = 0; /* virtual DMA functions */ esp->dma_mmu_get_scsi_one = &dma_mmu_get_scsi_one; esp->dma_mmu_get_scsi_sgl = &dma_mmu_get_scsi_sgl; esp->dma_mmu_release_scsi_one = 0; esp->dma_mmu_release_scsi_sgl = 0; esp->dma_advance_sg = &dma_advance_sg; /* SCSI chip speed */ esp->cfreq = 25000000; /* * we don't give the address of DMA channel, but the number * of DMA channel, so we can use the jazz DMA functions * */ esp->dregs = 0; /* ESP register base */ esp->eregs = (struct ESP_regs *) (scsi_base); /* Set the command buffer */ esp->esp_command = (volatile unsigned char *) cmd_buffer; /* get virtual dma address for command buffer */ // esp->esp_command_dvma = (__u32) KSEG1ADDR((volatile unsigned char *) cmd_buffer); // esp->irq = SCSI_INT; esp->irq = 255; request_irq(esp->irq, esp_intr, SA_INTERRUPT, "NCR 53C94 SCSI", NULL); // request_irq(SCSI_DMA_INT, scsi_dma_int, SA_INTERRUPT, "JUNKIO SCSI DMA", // NULL); esp->scsi_id = 7; /* Check for differential SCSI-bus */ esp->diff = 0; esp_initialize(esp); } #if 0 if (TURBOCHANNEL) { while ((slot = search_tc_card("PMAZ_AA")) >= 0) { claim_tc_card(slot); mem_start = get_tc_base_addr(slot); esp_dev = 0; esp = esp_allocate(tpnt, (void *) esp_dev); esp->dregs = 0; esp->eregs = (struct ESP_regs *) (mem_start + DEC_SCSI_SREG); esp->do_pio_cmds = 1; /* Set the command buffer */ esp->esp_command = (volatile unsigned char *) pmaz_cmd_buffer; /* get virtual dma address for command buffer */ esp->esp_command_dvma = (__u32) KSEG0ADDR((volatile unsigned char *) pmaz_cmd_buffer); buffer = (volatile unsigned char *) (mem_start + DEC_SCSI_SRAM); scsi_pmaz_dma_ptr_tc = (volatile int *) (mem_start + DEC_SCSI_DMAREG); for (i = 0; i < ESP_NCMD; i++) { scsi_pmaz_dma_ptrs_tc[i] = (volatile unsigned char *) (buffer + ESP_TGT_DMA_SIZE * i); } scsi_pmaz_dma_buff_used[0] = 1; esp->cfreq = get_tc_speed(); esp->irq = get_tc_irq_nr(slot); /* Required functions */ esp->dma_bytes_sent = &dma_bytes_sent; esp->dma_can_transfer = &dma_can_transfer; esp->dma_dump_state = &dma_dump_state; esp->dma_init_read = &pmaz_dma_init_read; esp->dma_init_write = &pmaz_dma_init_write; esp->dma_ints_off = &pmaz_dma_ints_off; esp->dma_ints_on = &pmaz_dma_ints_on; esp->dma_irq_p = &dma_irq_p; esp->dma_ports_p = &dma_ports_p; esp->dma_setup = &pmaz_dma_setup; /* Optional functions */ esp->dma_barrier = 0; esp->dma_drain = &pmaz_dma_drain; esp->dma_invalidate = 0; esp->dma_irq_entry = 0; esp->dma_irq_exit = 0; esp->dma_poll = 0; esp->dma_reset = 0; esp->dma_led_off = 0; esp->dma_led_on = 0; esp->dma_mmu_get_scsi_one = pmaz_dma_mmu_get_scsi_one; esp->dma_mmu_get_scsi_sgl = 0; esp->dma_mmu_release_scsi_one = 0; esp->dma_mmu_release_scsi_sgl = 0; esp->dma_advance_sg = 0; request_irq(esp->irq, esp_intr, SA_INTERRUPT, "PMAZ_AA", NULL); esp->scsi_id = 7; esp->diff = 0; esp_initialize(esp); } #endif } if(nesps) { printk("ESP: Total of %d ESP hosts found, %d actually in use.\n", nesps, esps_in_use); esps_running = esps_in_use; return esps_in_use; } else return 0; } /************************************************************* DMA Functions */ static void scsi_dma_int(int irq, void *dev_id, struct pt_regs *regs) { extern volatile unsigned int *isr; unsigned int dummy; #if 0 if (*isr & SCSI_PTR_LOADED) { /* next page */ *scsi_next_ptr = ((*scsi_dma_ptr + PAGE_SIZE) & PAGE_MASK) << 3; *isr &= ~SCSI_PTR_LOADED; } else { if (*isr & SCSI_PAGOVRRUN) *isr &= ~SCSI_PAGOVRRUN; if (*isr & SCSI_DMA_MEMRDERR) { printk("Got unexpected SCSI DMA Interrupt! < "); printk("SCSI_DMA_MEMRDERR "); printk(">\n"); *isr &= ~SCSI_DMA_MEMRDERR; } } /* * This routine will only work on IOASIC machines * so we can avoid an indirect function call here * and flush the writeback buffer the fast way */ // dummy = *isr; // dummy = *isr; #endif } static int dma_bytes_sent(struct NCR_ESP *esp, int fifo_count) { return fifo_count; } static void dma_drain(struct NCR_ESP *esp) { unsigned long nw = *scsi_scr; // unsigned short *p = KSEG1ADDR((unsigned short *) ((*scsi_dma_ptr) >> 3)); /* * Is there something in the dma buffers left? */ if (nw) { switch (nw) { case 1: *p = (unsigned short) *scsi_sdr0; break; case 2: *p++ = (unsigned short) (*scsi_sdr0); *p = (unsigned short) ((*scsi_sdr0) >> 16); break; case 3: *p++ = (unsigned short) (*scsi_sdr0); *p++ = (unsigned short) ((*scsi_sdr0) >> 16); *p = (unsigned short) (*scsi_sdr1); break; default: printk("Strange: %d words in dma buffer left\n", (int) nw); break; } } } static int dma_can_transfer(struct NCR_ESP *esp, Scsi_Cmnd * sp) { return sp->SCp.this_residual;; } static void dma_dump_state(struct NCR_ESP *esp) { /* ESPLOG(("esp%d: dma -- enable <%08x> residue <%08x\n", esp->esp_id, vdma_get_enable((int)esp->dregs), vdma_get_resdiue((int)esp->dregs))); */ } static void dma_init_read(struct NCR_ESP *esp, __u32 vaddress, int length) { extern volatile unsigned int *isr; unsigned int dummy; #if 0 if (vaddress & 3) panic("dec_efs.c: unable to handle partial word transfers, yet..."); dma_cache_wback_inv((unsigned long) phys_to_virt(vaddress), length); *ioasic_ssr &= ~SCSI_DMA_EN; *scsi_scr = 0; *scsi_dma_ptr = vaddress << 3; /* prepare for next page */ *scsi_next_ptr = ((vaddress + PAGE_SIZE) & PAGE_MASK) << 3; *ioasic_ssr |= (SCSI_DMA_DIR | SCSI_DMA_EN); /* * see above */ dummy = *isr; dummy = *isr; #endif } static void dma_init_write(struct NCR_ESP *esp, __u32 vaddress, int length) { #if 0 extern volatile unsigned int *isr; unsigned int dummy; if (vaddress & 3) panic("dec_efs.c: unable to handle partial word transfers, yet..."); dma_cache_wback_inv((unsigned long) phys_to_virt(vaddress), length); *ioasic_ssr &= ~(SCSI_DMA_DIR | SCSI_DMA_EN); *scsi_scr = 0; *scsi_dma_ptr = vaddress << 3; /* prepare for next page */ *scsi_next_ptr = ((vaddress + PAGE_SIZE) & PAGE_MASK) << 3; *ioasic_ssr |= SCSI_DMA_EN; /* * see above */ dummy = *isr; dummy = *isr; #endif } static void dma_ints_off(struct NCR_ESP *esp) { // disable_irq(SCSI_DMA_INT); } static void dma_ints_on(struct NCR_ESP *esp) { // enable_irq(SCSI_DMA_INT); } static int dma_irq_p(struct NCR_ESP *esp) { return (esp->eregs->esp_status & ESP_STAT_INTR); } static int dma_ports_p(struct NCR_ESP *esp) { /* * FIXME: what's this good for? */ return 1; } static void dma_setup(struct NCR_ESP *esp, __u32 addr, int count, int write) { /* * On the Sparc, DMA_ST_WRITE means "move data from device to memory" * so when (write) is true, it actually means READ! */ #if 0 if (write) { dma_init_read(esp, addr, count); } else { dma_init_write(esp, addr, count); } #endif } /* * These aren't used yet */ static void dma_mmu_get_scsi_one(struct NCR_ESP *esp, Scsi_Cmnd * sp) { sp->SCp.have_data_in = PHYSADDR(sp->SCp.buffer); sp->SCp.ptr = (char *) ((unsigned long) sp->SCp.have_data_in); } static void dma_mmu_get_scsi_sgl(struct NCR_ESP *esp, Scsi_Cmnd * sp) { int sz = sp->SCp.buffers_residual; struct mmu_sglist *sg = (struct mmu_sglist *) sp->SCp.buffer; #if 0 while (sz >= 0) { sg[sz].dvma_addr = PHYSADDR(sg[sz].addr); sz--; } sp->SCp.ptr = (char *) ((unsigned long) sp->SCp.buffer->dvma_address); #endif } static void dma_advance_sg(Scsi_Cmnd * sp) { sp->SCp.ptr = (char *) ((unsigned long) sp->SCp.buffer->dvma_address); } #if 0 static void pmaz_dma_drain(struct NCR_ESP *esp) { memcpy((void *) (KSEG0ADDR(esp_virt_buffer)), (void *) scsi_pmaz_dma_ptrs_tc[scsi_cur_buff], scsi_current_length); } static void pmaz_dma_init_read(struct NCR_ESP *esp, __u32 vaddress, int length) { if (length > ESP_TGT_DMA_SIZE) length = ESP_TGT_DMA_SIZE; *scsi_pmaz_dma_ptr_tc = TC_ESP_DMA_ADDR(scsi_pmaz_dma_ptrs_tc[scsi_cur_buff]); esp_virt_buffer = vaddress; scsi_current_length = length; } static void pmaz_dma_init_write(struct NCR_ESP *esp, __u32 vaddress, int length) { memcpy((void *)scsi_pmaz_dma_ptrs_tc[scsi_cur_buff], KSEG0ADDR((void *) vaddress), length); *scsi_pmaz_dma_ptr_tc = TC_ESP_DMAR_WRITE | TC_ESP_DMA_ADDR(scsi_pmaz_dma_ptrs_tc[scsi_cur_buff]); } static void pmaz_dma_ints_off(struct NCR_ESP *esp) { } static void pmaz_dma_ints_on(struct NCR_ESP *esp) { } static void pmaz_dma_setup(struct NCR_ESP *esp, __u32 addr, int count, int write) { /* * On the Sparc, DMA_ST_WRITE means "move data from device to memory" * so when (write) is true, it actually means READ! */ if (write) { pmaz_dma_init_read(esp, addr, count); } else { pmaz_dma_init_write(esp, addr, count); } } static void pmaz_dma_mmu_release_scsi_one(struct NCR_ESP *esp, Scsi_Cmnd * sp) { int x; for (x = 1; x < 6; x++) if (sp->SCp.have_data_in == PHYSADDR(scsi_pmaz_dma_ptrs_tc[x])) scsi_pmaz_dma_buff_used[x] = 0; } static void pmaz_dma_mmu_get_scsi_one(struct NCR_ESP *esp, Scsi_Cmnd * sp) { sp->SCp.have_data_in = (int) sp->SCp.ptr = (char *) KSEG0ADDR((sp->request_buffer)); } #endif --- NEW FILE --- /* vax_esp.h: Defines and structures for the VS SCSI driver. * * VS changes Copyright (C) 2001 David Airlie * * based on dec_esp.h: * VAXstation changes Copyright (C) 1998 Harald Koerfgen * and David Airlie * * based on jazz_esp.h: * Copyright (C) 1997 Thomas Bogendoerfer (tsb...@al...) */ #ifndef VAX_ESP_H #define VAX_ESP_H #include "NCR53C9x.h" #define VAX_SCSI_SREG 0 #define VAX_SCSI_DMAREG 0x40000 #define VAX_SCSI_SRAM 0x80000 #define VAX_SCSI_DIAG 0xC0000 extern int vax_esp_detect(struct SHT *); extern const char *esp_info(struct Scsi_Host *); extern int esp_queue(Scsi_Cmnd *, void (*done)(Scsi_Cmnd *)); extern int esp_command(Scsi_Cmnd *); extern int esp_abort(Scsi_Cmnd *); extern int esp_reset(Scsi_Cmnd *, unsigned int); extern int esp_proc_info(char *buffer, char **start, off_t offset, int length, int hostno, int inout); #define SCSI_VAX_ESP { \ proc_name: "esp", \ proc_info: &esp_proc_info, \ name: "NCR53C94", \ detect: vax_esp_detect, \ info: esp_info, \ command: esp_command, \ queuecommand: esp_queue, \ abort: esp_abort, \ reset: esp_reset, \ can_queue: 7, \ this_id: 7, \ sg_tablesize: SG_ALL, \ cmd_per_lun: 1, \ use_clustering: DISABLE_CLUSTERING, } #endif /* VAX_ESP_H */ |
From: Dave A. <ai...@us...> - 2001-12-15 12:27:41
|
Update of /cvsroot/linux-vax/kernel-2.4/drivers/scsi In directory usw-pr-cvs1:/tmp/cvs-serv16521 Modified Files: Makefile Log Message: DA: add 53c94 make support Index: Makefile =================================================================== RCS file: /cvsroot/linux-vax/kernel-2.4/drivers/scsi/Makefile,v retrieving revision 1.2 retrieving revision 1.3 diff -u -r1.2 -r1.3 --- Makefile 2001/01/17 16:00:11 1.2 +++ Makefile 2001/12/15 12:27:38 1.3 @@ -110,6 +110,7 @@ obj-$(CONFIG_JAZZ_ESP) += NCR53C9x.o jazz_esp.o obj-$(CONFIG_SUN3X_ESP) += NCR53C9x.o sun3x_esp.o obj-$(CONFIG_SCSI_VAX_5380) += vax-5380.o +obj-$(CONFIG_SCSI_VAX_53C94) += NCR53C9x.o vax_esp.o obj-$(CONFIG_SCSI_DEBUG) += scsi_debug.o obj-$(CONFIG_SCSI_FCAL) += fcal.o @@ -126,7 +127,7 @@ scsi_obsolete.o scsi_queue.o scsi_lib.o \ scsi_merge.o scsi_dma.o scsi_scan.o \ scsi_syms.o - + sr_mod-objs := sr.o sr_ioctl.o sr_vendor.o initio-objs := ini9100u.o i91uscsi.o a100u2w-objs := inia100.o i60uscsi.o |
From: Dave A. <ai...@us...> - 2001-12-15 12:24:02
|
Update of /cvsroot/linux-vax/kernel-2.4/arch/vax/kernel In directory usw-pr-cvs1:/tmp/cvs-serv15809 Modified Files: interrupt.c Log Message: DA: align with what other archs seem to look like .. thought this might fix the missing signal... it doesn't Index: interrupt.c =================================================================== RCS file: /cvsroot/linux-vax/kernel-2.4/arch/vax/kernel/interrupt.c,v retrieving revision 1.22 retrieving revision 1.23 diff -u -r1.22 -r1.23 --- interrupt.c 2001/11/09 23:48:40 1.22 +++ interrupt.c 2001/12/15 12:23:58 1.23 @@ -396,6 +396,7 @@ vec_num = handler - stray_handlers; + if (autoprobing && vec_num >= FIRST_ADAPTER_VECTOR) { stray_handlers[vec_num].flags |= STRAY_EXCEPTION_FIRED; return 0; @@ -458,13 +459,14 @@ status = dispatch_irq(regs, vec); irq_exit(cpu); - if (status) { - if (softirq_active(cpu)&softirq_mask(cpu)) { - do_softirq(); - } - } restore_flags(flags); + // if (status) { + if (softirq_active(cpu)&softirq_mask(cpu)) { + do_softirq(); + // } + } + } static inline void do_exception(struct pt_regs *regs, struct irqvector *vec, void *excep_info) @@ -484,7 +486,7 @@ void do_irq_excep(struct pt_regs *regs, void *inside_vec, void *excep_info) { struct irqvector *vec; - + int cpu; vec = (struct irqvector *)(inside_vec - offsetof(struct irqvector, excep_info_size)); @@ -505,15 +507,17 @@ } ret_from_sys_call: - if (in_softirq()) { - do_softirq(); + cpu=smp_processor_id(); + if (softirq_active(cpu)&softirq_mask(cpu)) { + do_softirq(); goto ret_from_intr; } goto ret_with_reschedule; ret_from_exception: - if (in_softirq()) { - do_softirq(); + cpu=smp_processor_id(); + if (softirq_active(cpu)&softirq_mask(cpu)) { + do_softirq(); } ret_from_intr: @@ -535,6 +539,7 @@ /* FIXME: oldset? */ do_signal(0,regs); } + // printk("syscall: out of c code\n"); done: } |
From: Dave A. <ai...@us...> - 2001-12-15 12:22:01
|
Update of /cvsroot/linux-vax/kernel-2.4/arch/vax/kernel In directory usw-pr-cvs1:/tmp/cvs-serv15526 Modified Files: cpu_ka46.c Log Message: DA: well NetBSD do this and say that's what it those Index: cpu_ka46.c =================================================================== RCS file: /cvsroot/linux-vax/kernel-2.4/arch/vax/kernel/cpu_ka46.c,v retrieving revision 1.8 retrieving revision 1.9 diff -u -r1.8 -r1.9 --- cpu_ka46.c 2001/09/14 20:30:21 1.8 +++ cpu_ka46.c 2001/12/15 12:21:58 1.9 @@ -131,6 +131,9 @@ #ifdef CONFIG_VSBUS vsbus_setup(); #endif /* CONFIG_VSBUS */ + + __mtpr(PR_ACCS,2); /* Enable floating points */ + printk("ka46: enabled floating point\n"); /* initialise the DMA area */ ka46_dma_init(); } @@ -147,11 +150,12 @@ printk(KERN_ERR "KA46 DMA unable to allocate map\n"); return; } + /* Map all 16MB of I/O space to low 16MB of memory (the GFP_DMA region)*/ base_addr = ioremap(KA46_DMAMAP,0x4); *base_addr = (unsigned int)ka46_dmamap; for (i = 0; i < 0x8000; i++) ka46_dmamap[i] = 0x80000000 | i; iounmap(base_addr); - + return; } |
From: Dave A. <ai...@us...> - 2001-12-15 12:21:00
|
Update of /cvsroot/linux-vax/kernel-2.4/arch/vax In directory usw-pr-cvs1:/tmp/cvs-serv15325 Modified Files: config.in Log Message: DA: add config entry for NCR53C94 driver.. no code just config stuff Index: config.in =================================================================== RCS file: /cvsroot/linux-vax/kernel-2.4/arch/vax/config.in,v retrieving revision 1.8 retrieving revision 1.9 diff -u -r1.8 -r1.9 --- config.in 2001/09/14 21:52:15 1.8 +++ config.in 2001/12/15 12:20:56 1.9 @@ -114,6 +114,7 @@ comment 'SCSI low-level drivers' dep_tristate 'NCR53C80 Scsi Driver (used in VAXstation/MicroVAX 3100 family) ' CONFIG_SCSI_VAX_5380 $CONFIG_SCSI + dep_tristate 'NCR53C94 Scsi Driver (used in VAXstation 4000 family) ' CONFIG_SCSI_VAX_53C94 $CONFIG_SCSI fi endmenu |
From: Dave A. <ai...@us...> - 2001-12-15 12:16:48
|
Update of /cvsroot/linux-vax/kernel-2.4/include/asm-vax In directory usw-pr-cvs1:/tmp/cvs-serv14354 Modified Files: delay.h Log Message: DA: laptop cleanup .. check in any pending patches Index: delay.h =================================================================== RCS file: /cvsroot/linux-vax/kernel-2.4/include/asm-vax/delay.h,v retrieving revision 1.2 retrieving revision 1.3 diff -u -r1.2 -r1.3 --- delay.h 2001/01/26 00:27:00 1.2 +++ delay.h 2001/12/15 12:16:45 1.3 @@ -1,6 +1,9 @@ #ifndef _VAX_DELAY_H #define _VAX_DELAY_H + +#include <asm/param.h> /* for HZ */ + extern unsigned long loops_per_sec; @@ -15,7 +18,7 @@ extern __inline__ void __delay(unsigned long loops) { - __asm__ __volatile__("1:\tsobgtr %0, 1b\n" : "=r" (loops) : "0" (loops)); + __asm__ __volatile__("1:\tsobgtr %0, 1b\n" : "=r" (loops) : "0" (loops)); } /* |
From: Dave A. <ai...@us...> - 2001-11-23 21:26:43
|
Update of /cvsroot/linux-vax/kernel-2.4/arch/vax/kernel In directory usw-pr-cvs1:/tmp/cvs-serv2477 Modified Files: signal.c Log Message: DA: no-one else seems to lock the kernel here Index: signal.c =================================================================== RCS file: /cvsroot/linux-vax/kernel-2.4/arch/vax/kernel/signal.c,v retrieving revision 1.8 retrieving revision 1.9 diff -u -r1.8 -r1.9 --- signal.c 2001/09/11 19:23:38 1.8 +++ signal.c 2001/11/23 21:26:39 1.9 @@ -757,7 +757,7 @@ /* FALLTHRU */ default: - lock_kernel(); + //lock_kernel(); sigaddset(¤t->pending.signal, signr); recalc_sigpending(current); current->flags |= PF_SIGNALED; |
From: Dave A. <ai...@us...> - 2001-11-17 00:05:02
|
Update of /cvsroot/linux-vax/kernel-2.4/arch/vax/boot In directory usw-pr-cvs1:/tmp/cvs-serv15968/arch/vax/boot Modified Files: cpu_sel.S Log Message: DA: fix typo Index: cpu_sel.S =================================================================== RCS file: /cvsroot/linux-vax/kernel-2.4/arch/vax/boot/cpu_sel.S,v retrieving revision 1.5 retrieving revision 1.6 diff -u -r1.5 -r1.6 --- cpu_sel.S 2001/11/15 06:12:19 1.5 +++ cpu_sel.S 2001/11/17 00:04:59 1.6 @@ -165,7 +165,7 @@ vax_soc: #specific check for value of sid for VXT2000 - extv $SOC_SID_TYPE_SHIFT, $SOC_SIDEX_TYPE_SIZE, cpu_sid, r0 + extv $SOC_SIDEX_TYPE_SHIFT, $SOC_SIDEX_TYPE_SIZE, cpu_sid, r0 cmpl $SOC_SIDEX_TYPE_VXT, r0 beql soc_vxt |
From: Richard B. <rb...@us...> - 2001-11-15 06:12:22
|
Update of /cvsroot/linux-vax/kernel-2.4/arch/vax/boot In directory usw-pr-cvs1:/tmp/cvs-serv16323 Modified Files: cpu_sel.S Log Message: Support for VXT cpu (based on type detection) Index: cpu_sel.S =================================================================== RCS file: /cvsroot/linux-vax/kernel-2.4/arch/vax/boot/cpu_sel.S,v retrieving revision 1.4 retrieving revision 1.5 diff -u -r1.4 -r1.5 --- cpu_sel.S 2001/11/15 00:27:48 1.4 +++ cpu_sel.S 2001/11/15 06:12:19 1.5 @@ -165,7 +165,8 @@ vax_soc: #specific check for value of sid for VXT2000 - cmpl $VAX_CPU_VXT, cpu_sid + extv $SOC_SID_TYPE_SHIFT, $SOC_SIDEX_TYPE_SIZE, cpu_sid, r0 + cmpl $SOC_SIDEX_TYPE_VXT, r0 beql soc_vxt # Extract subtype from SID |
From: Richard B. <rb...@us...> - 2001-11-15 06:11:28
|
Update of /cvsroot/linux-vax/kernel-2.4/include/asm-vax In directory usw-pr-cvs1:/tmp/cvs-serv16231 Modified Files: vaxcpu.h Log Message: Support for VXT systems Index: vaxcpu.h =================================================================== RCS file: /cvsroot/linux-vax/kernel-2.4/include/asm-vax/vaxcpu.h,v retrieving revision 1.3 retrieving revision 1.4 diff -u -r1.3 -r1.4 --- vaxcpu.h 2001/02/06 00:15:42 1.3 +++ vaxcpu.h 2001/11/15 06:11:24 1.4 @@ -45,8 +45,8 @@ /* SOC */ #define VAX_CPU_660 0x14000006 /* VAXserver 4000-200 (KA660-B) */ +#define VAX_CPU_VXT 0x14000006 /* VXT2000 - from NetBSD */ - /*****************************************************************************/ /* Definitions for MicroVAX I family CPUs */ @@ -239,6 +239,9 @@ * NOTE: These were just copied from the CVAX (KA640/650/655) above * so we can't be sure they are right. Can anyone with a tech * manual confirm these? + * + * SIDEX for VXT2000 is 08040002 + * */ #define SOC_SIDEX_ADDR 0x20040004 @@ -249,6 +252,7 @@ /* Values for SYS_TYPE field in SIDEX */ #define SOC_SIDEX_TYPE_Q22 1 +#define SOC_SIDEX_TYPE_VXT 8 /* MVaxII chip system */ /* Interpretation of the remainder of the SIDEX (bits 23:0) */ |
From: Richard B. <rb...@us...> - 2001-11-15 00:27:51
|
Update of /cvsroot/linux-vax/kernel-2.4/arch/vax/boot In directory usw-pr-cvs1:/tmp/cvs-serv21274 Modified Files: cpu_sel.S Log Message: Added support for VXT cpu from VXT2000 Index: cpu_sel.S =================================================================== RCS file: /cvsroot/linux-vax/kernel-2.4/arch/vax/boot/cpu_sel.S,v retrieving revision 1.3 retrieving revision 1.4 diff -u -r1.3 -r1.4 --- cpu_sel.S 2001/02/06 00:15:42 1.3 +++ cpu_sel.S 2001/11/15 00:27:48 1.4 @@ -164,6 +164,10 @@ /* SOC support */ vax_soc: +#specific check for value of sid for VXT2000 + cmpl $VAX_CPU_VXT, cpu_sid + beql soc_vxt + # Extract subtype from SID extv $SOC_Q22_SUBTYPE_SHIFT, $SOC_Q22_SUBTYPE_SIZE, cpu_sid, r0 @@ -179,6 +183,10 @@ soc_ka660: moval mv_ka660, mv + rsb + +soc_vxt: + moval mv_vxt, mv rsb /***************************************************************************/ |
From: Richard B. <rb...@us...> - 2001-11-15 00:27:03
|
Update of /cvsroot/linux-vax/kernel-2.4/arch/vax/kernel In directory usw-pr-cvs1:/tmp/cvs-serv21012 Modified Files: Makefile Added Files: cpu_vxt.c Log Message: Added "support" for VXT cpu from VXT2000 workstation - probably won't work yet --- NEW FILE --- /* * This file contains machine vector handlers for the * VXT CPU in the VXT2000 machines. * * From mailing list messages the SID is 14000006 but NetBSD uses 14000008. */ #include <linux/types.h> /* For NULL */ #include <linux/kernel.h> /* For printk */ #include <asm/mtpr.h> #include <asm/mv.h> #include <asm/simple_io.h> #include <asm/vaxcpu.h> void vxt_pre_vm_init(void); void vxt_post_vm_init(void); const char *vxt_cpu_type_str(void); struct vxt_machine_vector { struct vax_mv mv; unsigned int sidex; }; struct vxt_machine_vector mv_vxt = { { vxt_pre_vm_init, vxt_post_vm_init, mtpr_putchar, /* pre_vm_putchar */ mtpr_getchar, /* pre_vm_getchar */ mtpr_putchar, /* post_vm_putchar */ mtpr_getchar, /* post_vm_getchar */ NULL, /* console_init */ NULL, /* reboot */ NULL, /* halt */ NULL, /* mcheck - machine check */ NULL, /* init_devices */ vxt_cpu_type_str } }; void vxt_pre_vm_init(void) { mv_vxt.sidex = *(unsigned int *)SOC_SIDEX_ADDR; } void vxt_post_vm_init(void) { register_console(&vax_console); } const char *vxt_cpu_type_str(void) { return "VXT2000"; } Index: Makefile =================================================================== RCS file: /cvsroot/linux-vax/kernel-2.4/arch/vax/kernel/Makefile,v retrieving revision 1.8 retrieving revision 1.9 diff -u -r1.8 -r1.9 --- Makefile 2001/10/28 23:54:18 1.8 +++ Makefile 2001/11/15 00:27:00 1.9 @@ -17,7 +17,8 @@ syscall.o signal.o semaphore.o vax_dev_init.o\ init_task.o reboot.o cpu_generic.o \ cpu_ka630.o cpu_ka640.o cpu_ka650.o cpu_ka660.o \ - cpu_ka410.o cpu_ka42.o cpu_ka43.o cpu_ka46.o cpu_ka55.o + cpu_ka410.o cpu_ka42.o cpu_ka43.o cpu_ka46.o cpu_ka55.o \ + cpu_vxt.o OX_OBJS := MX_OBJS := |
From: Dave A. <ai...@us...> - 2001-11-14 09:13:27
|
Update of /cvsroot/linux-vax/kernel-2.4/arch/vax/kernel In directory usw-pr-cvs1:/tmp/cvs-serv26007/arch/vax/kernel Modified Files: ptrace.c Log Message: DA: fix SP and clean up warnings Index: ptrace.c =================================================================== RCS file: /cvsroot/linux-vax/kernel-2.4/arch/vax/kernel/ptrace.c,v retrieving revision 1.5 retrieving revision 1.6 diff -u -r1.5 -r1.6 --- ptrace.c 2001/11/13 23:31:16 1.5 +++ ptrace.c 2001/11/14 09:13:23 1.6 @@ -65,13 +65,17 @@ static int putreg(struct task_struct *child, unsigned long regno, unsigned long value) { - unsigned long retval = ~0UL; struct pt_regs *regs_ptr; regs_ptr = ptrace_find_vax_regs(child); if (!regs_ptr) return 0; + if ((regno>>2) == PT_SP) + { + child->thread.pcb.usp = value; + return 0; + } switch(regno >> 2) { case 0 ... 16: // retval = *(((unsigned long *)regs_ptr) + (regno>>2)); @@ -79,7 +83,7 @@ // *(unsigned long *)((&child->thread.pcb)+4+(regno>>2))=value; break; default: - printk("putreg for %d failed\n", regno); + printk("putreg for %lu failed\n", regno); break; } @@ -98,12 +102,17 @@ if (!regs_ptr) return 0; + if ((regno>>2) == PT_SP) + { + retval = child->thread.pcb.usp; + return retval; + } switch(regno >> 2) { case 0 ... 16: retval = *(((unsigned long *)regs_ptr) + (regno>>2)); break; default: - printk("getreg for %d failed\n", regno); + printk("getreg for %lu failed\n", regno); retval=0; break; } @@ -286,7 +295,7 @@ child->ptrace |= PT_DTRACE; tmp = getreg(child, PT_PSL<<2); - psl = &tmp; + psl = (struct psl_fields *)&tmp; psl->t=1; putreg(child, PT_PSL<<2, *(unsigned long *)psl); // printk("tmp is %8lX, psl is now %8lX\n", tmp, *(unsigned long *)psl); |