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...> - 2001-09-16 15:13:14
|
Update of /cvsroot/linux-vax/kernel-2.4/drivers/char In directory usw-pr-cvs1:/tmp/cvs-serv32063/char Modified Files: dz.c Log Message: Slightly better irq handling. is_ka46 now can be used to switch on the fly between system dependent behaviour, so we can use the same kernel config on two machines. Index: dz.c =================================================================== RCS file: /cvsroot/linux-vax/kernel-2.4/drivers/char/dz.c,v retrieving revision 1.7 retrieving revision 1.8 diff -u -r1.7 -r1.8 --- dz.c 2001/08/14 21:25:43 1.7 +++ dz.c 2001/09/16 15:13:09 1.8 @@ -1301,7 +1301,7 @@ if ((line == DZ_KEYBOARD) || (line == DZ_MOUSE)) return -ENODEV; - printk("dz opening line %d\n",line); +// printk("dz opening line %d\n",line); info = lines[line]; info->count++; @@ -1490,11 +1490,16 @@ vsbus_disable_int(num); irq=autoirq_report(100); } -#else +#else +if (is_ka46()){ dz_vsbus_tx_int=4; dz_vsbus_rx_int=5; irq=149; - +} else { + dz_vsbus_tx_int=6; + dz_vsbus_rx_int=7; + irq=177; +} #endif printk("dz.c: using irq rx %d, irq tx %d\n", irq-1, irq); |
From: Dave A. <ai...@us...> - 2001-09-14 23:55:07
|
Update of /cvsroot/linux-vax/kernel-2.4/arch/vax/kernel In directory usw-pr-cvs1:/tmp/cvs-serv1485/arch/vax/kernel Modified Files: interrupt.c Log Message: DA: add a handler for XFC... Index: interrupt.c =================================================================== RCS file: /cvsroot/linux-vax/kernel-2.4/arch/vax/kernel/interrupt.c,v retrieving revision 1.18 retrieving revision 1.19 diff -u -r1.18 -r1.19 --- interrupt.c 2001/09/11 19:23:38 1.18 +++ interrupt.c 2001/09/14 23:55:03 1.19 @@ -166,6 +166,12 @@ machine_halt(); } + if (register_excep_handler(SCB_XFC, "reserved instruction (reserved_instr_handler)", reserved_instr_handler, 0, 0)) { + printk("Panic: unable to register reserved operand handler\n"); + machine_halt(); + } + + if (register_excep_handler(SCB_CHMK,"CHMK trap (syscall_handler)", syscall_handler, 1, 0)) { printk("Panic: unable to register syscall handler\n"); machine_halt(); |
From: Dave A. <ai...@us...> - 2001-09-14 21:52:18
|
Update of /cvsroot/linux-vax/kernel-2.4/arch/vax In directory usw-pr-cvs1:/tmp/cvs-serv12449 Modified Files: config.in defconfig Log Message: DA: damn have to use UID16 Index: config.in =================================================================== RCS file: /cvsroot/linux-vax/kernel-2.4/arch/vax/config.in,v retrieving revision 1.7 retrieving revision 1.8 diff -u -r1.7 -r1.8 --- config.in 2001/09/04 03:17:17 1.7 +++ config.in 2001/09/14 21:52:15 1.8 @@ -8,7 +8,9 @@ # Use this in the arch-independent sources to conditionally compile # in VAX-specific stuff (for example, in serial_console_init()) define_bool CONFIG_VAX y - + +define_bool CONFIG_UID16 y + mainmenu_option next_comment comment 'Code maturity level options' bool 'Prompt for development and/or incomplete code/drivers' CONFIG_EXPERIMENTAL Index: defconfig =================================================================== RCS file: /cvsroot/linux-vax/kernel-2.4/arch/vax/defconfig,v retrieving revision 1.7 retrieving revision 1.8 diff -u -r1.7 -r1.8 --- defconfig 2001/07/31 17:28:26 1.7 +++ defconfig 2001/09/14 21:52:15 1.8 @@ -2,6 +2,7 @@ # Automatically generated by make menuconfig: don't edit # CONFIG_VAX=y +CONFIG_UID16=y # # Code maturity level options |
From: Andy P. <at...@us...> - 2001-09-14 20:30:25
|
Update of /cvsroot/linux-vax/kernel-2.4/arch/vax/boot In directory usw-pr-cvs1:/tmp/cvs-serv28569/boot Modified Files: head.S Log Message: Some changes for scsi boot. Add low memory DMA mapping for KA46 so that lance will work Index: head.S =================================================================== RCS file: /cvsroot/linux-vax/kernel-2.4/arch/vax/boot/head.S,v retrieving revision 1.12 retrieving revision 1.13 diff -u -r1.12 -r1.13 --- head.S 2001/07/31 17:28:26 1.12 +++ head.S 2001/09/14 20:30:21 1.13 @@ -20,16 +20,25 @@ .globl start start: nop # relocation code, and stack setup required +# movzbl $0x41,r2 # want to see something early while i debug scsi boot. +# jsb 0x20040058 + nop + nop nop - nop - nop # disable memory mapping mtpr $0, $PR_MAPEN - + mtpr $31, $PR_IPL # save r11, ap and scbb movl ap, boot_ap movl r11, boot_r11 mfpr $PR_SCBB, boot_scb +# put the sp somewhere safe, over our bootblock in fact + moval start, r5 + subl2 $0x200, r5 + movl r5,sp + +# movzbl $0x42,r2 +# jsb 0x20040058 jsb identify_cpu @@ -50,7 +59,7 @@ # print the cpu type jsb crlf - movab msg_cpu_type, r10 + movab msg_cpu_type, r10 jsb printstr movl mv, r10 @@ -326,7 +335,7 @@ msg_starting_vm: .ascii "Starting VM\0" .align 1 - + # identify cpu .globl cpu_id cpu_id: |
From: Andy P. <at...@us...> - 2001-09-14 20:30:25
|
Update of /cvsroot/linux-vax/kernel-2.4/arch/vax/kernel In directory usw-pr-cvs1:/tmp/cvs-serv28569/kernel Modified Files: cpu_ka46.c setup.c Log Message: Some changes for scsi boot. Add low memory DMA mapping for KA46 so that lance will work Index: cpu_ka46.c =================================================================== RCS file: /cvsroot/linux-vax/kernel-2.4/arch/vax/kernel/cpu_ka46.c,v retrieving revision 1.7 retrieving revision 1.8 diff -u -r1.7 -r1.8 --- cpu_ka46.c 2001/07/31 17:28:26 1.7 +++ cpu_ka46.c 2001/09/14 20:30:21 1.8 @@ -10,7 +10,7 @@ #include <linux/types.h> /* For NULL */ #include <linux/kernel.h> /* For printk */ - +#include <linux/mm.h> #include <linux/config.h> #include <asm/mtpr.h> @@ -24,10 +24,11 @@ void ka46_cache_disable(void); void ka46_cache_clear(void); void ka46_cache_enable(void); - +void ka46_dma_init(void); void ka46_init_devices(void); const char *ka46_cpu_type_str(void); +unsigned long int *ka46_dmamap; struct ka46_machine_vector { struct vax_mv mv; @@ -130,4 +131,27 @@ #ifdef CONFIG_VSBUS vsbus_setup(); #endif /* CONFIG_VSBUS */ + /* initialise the DMA area */ + ka46_dma_init(); +} + +void ka46_dma_init(void) +{ + int i; + unsigned int *base_addr; + /* at present we just map all of the GFP_DMA region + * this is obviously wasteful */ + /* grab a block of 128kb */ + ka46_dmamap = (unsigned long int *)__get_free_pages(GFP_DMA, 5); + if (ka46_dmamap == NULL) { + 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; } Index: setup.c =================================================================== RCS file: /cvsroot/linux-vax/kernel-2.4/arch/vax/kernel/setup.c,v retrieving revision 1.15 retrieving revision 1.16 diff -u -r1.15 -r1.16 --- setup.c 2001/09/11 19:24:40 1.15 +++ setup.c 2001/09/14 20:30:21 1.16 @@ -68,6 +68,7 @@ * atp -- have a temporary one. * Shouldn't we use strcpy here? */ +// memcpy(command_line, "root=/dev/sda1 rw debug\0",24); memcpy(command_line, "root=/dev/nfs nfsroot=/tftpboot/vaxroot rw debug\0",55); *cmdline_p = command_line; /* Save unparsed command line copy for /proc/cmdline */ |
From: Dave A. <ai...@us...> - 2001-09-14 11:41:44
|
Update of /cvsroot/linux-vax/kernel-2.4/arch/vax/kernel In directory usw-pr-cvs1:/tmp/cvs-serv15088/kernel Modified Files: entry.S syscall.c Log Message: DA: fixup system calls .. Index: entry.S =================================================================== RCS file: /cvsroot/linux-vax/kernel-2.4/arch/vax/kernel/entry.S,v retrieving revision 1.7 retrieving revision 1.8 diff -u -r1.7 -r1.8 --- entry.S 2001/08/15 22:55:13 1.7 +++ entry.S 2001/09/14 11:41:41 1.8 @@ -268,19 +268,19 @@ .long sys_time .long sys_mknod .long sys_chmod /* 15 */ - .long sys_lchown + .long sys_lchown16 .long sys_ni_syscall /* old break syscall holder */ - .long sys_stat + .long sys_ni_syscall /* old stat syscall */ .long sys_lseek .long sys_getpid /* 20 */ .long sys_mount - .long sys_umount /* old umount syscall holder */ - .long sys_setuid - .long sys_getuid + .long sys_oldumount /* old umount syscall holder */ + .long sys_setuid16 + .long sys_getuid16 .long sys_stime /* 25 */ .long sys_ptrace .long sys_alarm - .long sys_fstat + .long sys_ni_syscall /* old fstat */ .long sys_pause .long sys_utime /* 30 */ .long sys_ni_syscall /* old stty syscall holder */ @@ -298,11 +298,11 @@ .long sys_times .long sys_ni_syscall /* old prof syscall holder */ .long sys_brk /* 45 */ - .long sys_setgid - .long sys_getgid + .long sys_setgid16 + .long sys_getgid16 .long sys_signal - .long sys_geteuid - .long sys_getegid /* 50 */ + .long sys_geteuid16 + .long sys_getegid16 /* 50 */ .long sys_acct .long sys_oldumount /* recycled never used phys() */ .long sys_ni_syscall /* old lock syscall holder */ @@ -322,32 +322,32 @@ .long sys_sigaction .long sys_sgetmask .long sys_ssetmask - .long sys_setreuid /* 70 */ - .long sys_setregid + .long sys_setreuid16 /* 70 */ + .long sys_setregid16 .long sys_sigsuspend .long sys_sigpending .long sys_sethostname .long sys_setrlimit /* 75 */ - .long sys_getrlimit + .long sys_old_getrlimit .long sys_getrusage .long sys_gettimeofday .long sys_settimeofday - .long sys_getgroups /* 80 */ - .long sys_setgroups - .long sys_select + .long sys_getgroups16 /* 80 */ + .long sys_setgroups16 + .long sys_ni_syscall /* old_select */ .long sys_symlink - .long sys_lstat + .long sys_ni_syscall /* was sys_lstat */ .long sys_readlink /* 85 */ .long sys_uselib .long sys_swapon .long sys_reboot .long sys_ni_syscall /* old readdir syscall holder */ - .long sys_mmap /* 90 */ + .long sys_mmap /* 90 */ .long sys_munmap .long sys_truncate .long sys_ftruncate .long sys_fchmod - .long sys_fchown /* 95 */ + .long sys_fchown16 /* 95 */ .long sys_getpriority .long sys_setpriority .long sys_ni_syscall /* old profil syscall holder */ @@ -390,8 +390,8 @@ .long sys_sysfs /* 135 */ .long sys_personality .long sys_ni_syscall /* for afs_syscall */ - .long sys_setfsuid - .long sys_setfsgid + .long sys_setfsuid16 + .long sys_setfsgid16 .long sys_llseek /* 140 */ .long sys_getdents .long sys_select @@ -416,14 +416,14 @@ .long sys_sched_rr_get_interval .long sys_nanosleep .long sys_mremap - .long sys_setresuid - .long sys_getresuid /* 165 */ + .long sys_setresuid16 + .long sys_getresuid16 /* 165 */ .long sys_ni_syscall /* 166 vm86 in i386 */ .long sys_query_module .long sys_poll .long sys_nfsservctl - .long sys_setresgid /* 170 */ - .long sys_getresgid + .long sys_setresgid16 /* 170 */ + .long sys_getresgid16 .long sys_prctl .long sys_rt_sigreturn .long sys_rt_sigaction @@ -434,7 +434,7 @@ .long sys_rt_sigsuspend .long sys_pread /* 180 */ .long sys_pwrite - .long sys_chown + .long sys_chown16 .long sys_getcwd .long sys_capget .long sys_capset /* 185 */ @@ -443,14 +443,45 @@ .long sys_ni_syscall /* streams1 */ .long sys_ni_syscall /* streams2 */ .long sys_vfork /* 190 */ - - /* + .long sys_getrlimit + .long sys_mmap2 + .long sys_truncate64 + .long sys_ftruncate64 + .long sys_stat64 /* 195 */ + .long sys_lstat64 + .long sys_fstat64 + .long sys_lchown + .long sys_getuid + .long sys_getgid /* 200 */ + .long sys_geteuid + .long sys_getegid + .long sys_setreuid + .long sys_setregid + .long sys_getgroups /* 205 */ + .long sys_setgroups + .long sys_fchown + .long sys_setresuid + .long sys_getresuid + .long sys_setresgid /* 210 */ + .long sys_getresgid + .long sys_chown + .long sys_setuid + .long sys_setgid + .long sys_setfsuid /* 215 */ + .long sys_setfsgid + .long sys_pivot_root + .long sys_mincore + .long sys_madvise + .long sys_getdents64 /* 220 */ + .long sys_fcntl64 + /* + * NOTE!! This doesn't have to be exact - we just have * to make sure we have _enough_ of the "sys_ni_syscall" * entries. Don't panic if you notice that this hasn't * been shrunk every time we add a new system call. */ - .rept NR_syscalls-190 + .rept NR_syscalls-221 .long sys_ni_syscall .endr Index: syscall.c =================================================================== RCS file: /cvsroot/linux-vax/kernel-2.4/arch/vax/kernel/syscall.c,v retrieving revision 1.7 retrieving revision 1.8 diff -u -r1.7 -r1.8 --- syscall.c 2001/09/02 20:48:39 1.7 +++ syscall.c 2001/09/14 11:41:41 1.8 @@ -244,3 +244,35 @@ return error; } +/* common code for old and new mmaps */ +static inline long do_mmap2( + unsigned long addr, unsigned long len, + unsigned long prot, unsigned long flags, + unsigned long fd, unsigned long pgoff) +{ + int error = -EBADF; + struct file * file = NULL; + + flags &= ~(MAP_EXECUTABLE | MAP_DENYWRITE); + if (!(flags & MAP_ANONYMOUS)) { + file = fget(fd); + if (!file) + goto out; + } + + down(¤t->mm->mmap_sem); + error = do_mmap_pgoff(file, addr, len, prot, flags, pgoff); + up(¤t->mm->mmap_sem); + + if (file) + fput(file); +out: + return error; +} + +asmlinkage long sys_mmap2(unsigned long addr, unsigned long len, + unsigned long prot, unsigned long flags, + unsigned long fd, unsigned long pgoff) +{ + return do_mmap2(addr, len, prot, flags, fd, pgoff); +} |
From: Dave A. <ai...@us...> - 2001-09-14 11:41:30
|
Update of /cvsroot/linux-vax/kernel-2.4/include/asm-vax In directory usw-pr-cvs1:/tmp/cvs-serv14869 Modified Files: unistd.h Log Message: DA: fixup system call numbers Index: unistd.h =================================================================== RCS file: /cvsroot/linux-vax/kernel-2.4/include/asm-vax/unistd.h,v retrieving revision 1.11 retrieving revision 1.12 diff -u -r1.11 -r1.12 --- unistd.h 2001/06/10 14:54:22 1.11 +++ unistd.h 2001/09/14 11:41:27 1.12 @@ -31,7 +31,7 @@ #define __NR_chmod 15 #define __NR_lchown 16 #define __NR_break 17 -#define __NR_oldstat 18 +//#define __NR_oldstat 18 #define __NR_lseek 19 #define __NR_getpid 20 #define __NR_mount 21 @@ -41,7 +41,7 @@ #define __NR_stime 25 #define __NR_ptrace 26 #define __NR_alarm 27 -#define __NR_oldfstat 28 +//#define __NR_oldfstat 28 #define __NR_pause 29 #define __NR_utime 30 #define __NR_stty 31 @@ -72,7 +72,7 @@ #define __NR_mpx 56 #define __NR_setpgid 57 #define __NR_ulimit 58 -#define __NR_oldolduname 59 +//#define __NR_oldolduname 59 #define __NR_umask 60 #define __NR_chroot 61 #define __NR_ustat 62 @@ -89,7 +89,7 @@ #define __NR_sigpending 73 #define __NR_sethostname 74 #define __NR_setrlimit 75 -#define __NR_getrlimit 76 +#define __NR_old_getrlimit 76 /* 2GB constrained rlimit */ #define __NR_getrusage 77 #define __NR_gettimeofday 78 #define __NR_settimeofday 79 @@ -97,7 +97,7 @@ #define __NR_setgroups 81 #define __NR_select 82 #define __NR_symlink 83 -#define __NR_oldlstat 84 +//#define __NR_oldlstat 84 #define __NR_readlink 85 #define __NR_uselib 86 #define __NR_swapon 87 @@ -122,11 +122,11 @@ #define __NR_stat 106 #define __NR_lstat 107 #define __NR_fstat 108 -#define __NR_olduname 109 -#define __NR_iopl 110 +//#define __NR_olduname 109 +//#define __NR_iopl 110 #define __NR_vhangup 111 #define __NR_idle 112 -#define __NR_vm86old 113 +//#define __NR_vm86old 113 #define __NR_wait4 114 #define __NR_swapoff 115 #define __NR_sysinfo 116 @@ -203,6 +203,39 @@ #define __NR_sendfile 187 #define __NR_getpmsg 188 /* some people actually want streams */ #define __NR_putpmsg 189 /* some people actually want streams */ +#define __NR_vfork 190 +#define __NR_getrlimit 191 /* SuS compliant getrlimit */ +#define __NR_mmap2 192 +#define __NR_truncate64 193 +#define __NR_ftruncate64 194 +#define __NR_stat64 195 +#define __NR_lstat64 196 +#define __NR_fstat64 197 +#define __NR_lchown32 198 +#define __NR_getuid32 199 +#define __NR_getgid32 200 +#define __NR_geteuid32 201 +#define __NR_getegid32 202 +#define __NR_setreuid32 203 +#define __NR_setregid32 204 +#define __NR_getgroups32 205 +#define __NR_setgroups32 206 +#define __NR_fchown32 207 +#define __NR_setresuid32 208 +#define __NR_getresuid32 209 +#define __NR_setresgid32 210 +#define __NR_getresgid32 211 +#define __NR_chown32 212 +#define __NR_setuid32 213 +#define __NR_setgid32 214 +#define __NR_setfsuid32 215 +#define __NR_setfsgid32 216 +#define __NR_pivot_root 217 +#define __NR_mincore 218 +#define __NR_madvise 219 +#define __NR_getdents64 220 +#define __NR_fcntl64 221 + /* user-visible error numbers are in the range -1 - -122: see <asm-i386/errno.h> */ |
From: Andy P. <at...@us...> - 2001-09-11 19:29:38
|
Update of /cvsroot/linux-vax/kernel-2.4/include/asm-vax/mm In directory usw-pr-cvs1:/tmp/cvs-serv24475/mm Modified Files: pgtable.h task.h Log Message: Last set of tweaks to task.h hopefully. Index: pgtable.h =================================================================== RCS file: /cvsroot/linux-vax/kernel-2.4/include/asm-vax/mm/pgtable.h,v retrieving revision 1.14 retrieving revision 1.15 diff -u -r1.14 -r1.15 --- pgtable.h 2001/07/31 17:33:26 1.14 +++ pgtable.h 2001/09/11 19:29:35 1.15 @@ -158,7 +158,6 @@ #define ZERO_PAGE(vaddr) (virt_to_page(empty_zero_page)) #define page_address(page) ((page)->virtual) -/* FIXME: check this */ /* Encode and de-code a swap entry */ #define SWP_TYPE(x) (((x).val >> 1) & 0x3f) #define SWP_OFFSET(x) ((x).val >> 8) Index: task.h =================================================================== RCS file: /cvsroot/linux-vax/kernel-2.4/include/asm-vax/mm/task.h,v retrieving revision 1.5 retrieving revision 1.6 diff -u -r1.5 -r1.6 --- task.h 2001/09/06 23:42:09 1.5 +++ task.h 2001/09/11 19:29:35 1.6 @@ -17,12 +17,12 @@ * you really want to allocate that much to a process, change PGD_SPECIAL below */ /* TASK_TXTMAX is the maximum program size */ -#define TASK_TXTMAX (16*1024*1024) +#define TASK_TXTMAX (6*1024*1024) /* TASK_MMAPMAX is the max space in P0 for the mmap() function , contiguous with TASK_TXTMAX - Its basically the amount of memory you give a process to play with */ -#define TASK_MMAPMAX (48*1024*1024) +#define TASK_MMAPMAX (58*1024*1024) /* TASK_STKMAX is the max space for the stack in P1 */ /* Like WSMAX above, the upper limit for this is set by PGD_SPECIAL below. If this @@ -36,7 +36,7 @@ * Think of this like balsetcnt on VMS. * -- this should also set/be set by the linux max task variable */ -#define TASK_MAXUPRC (32) +#define TASK_MAXUPRC (64) /* * This decides where the kernel will search for a free chunk of vm |
From: Andy P. <at...@us...> - 2001-09-11 19:29:38
|
Update of /cvsroot/linux-vax/kernel-2.4/include/asm-vax In directory usw-pr-cvs1:/tmp/cvs-serv24475 Modified Files: system.h Log Message: Last set of tweaks to task.h hopefully. Index: system.h =================================================================== RCS file: /cvsroot/linux-vax/kernel-2.4/include/asm-vax/system.h,v retrieving revision 1.3 retrieving revision 1.4 diff -u -r1.3 -r1.4 --- system.h 2001/01/23 23:55:57 1.3 +++ system.h 2001/09/11 19:29:35 1.4 @@ -146,7 +146,7 @@ struct __xchg_dummy { unsigned long a[100]; }; #define __xg(x) ((struct __xchg_dummy *)(x)) -static inline unsigned long __xchg(unsigned long x, void * ptr, int size) +static inline unsigned long __xchg(unsigned long x, volatile void * ptr, int size) { unsigned int fred; |
From: Andy P. <at...@us...> - 2001-09-11 19:28:00
|
Update of /cvsroot/linux-vax/kernel-2.4/arch/vax/boot In directory usw-pr-cvs1:/tmp/cvs-serv24125 Modified Files: startup.c Log Message: Compilation warnings removed. Index: startup.c =================================================================== RCS file: /cvsroot/linux-vax/kernel-2.4/arch/vax/boot/startup.c,v retrieving revision 1.1 retrieving revision 1.2 diff -u -r1.1 -r1.2 --- startup.c 2001/08/19 10:34:42 1.1 +++ startup.c 2001/09/11 19:27:57 1.2 @@ -21,6 +21,7 @@ unsigned int rpb_size = sizeof(struct rpb_struct); char *vax_linux_banner="Linux/VAX (lin...@mi...)\n"; extern void start_kernel(void); +extern void guard_int_stack(void); /* arch/vax/kernel/interrupt.c */ /* This is a transitionary function. When things are finally sorted * the only tasks this function will perform will relate to the interaction @@ -83,10 +84,10 @@ printk("CPU type: %s, SID: %08x\n", mv->cpu_type_str(), vax_cpu.sid); - printk("VM: mapped physical from %x to %x, iomap from %x\n", PAGE_OFFSET, PAGE_OFFSET+(max_hwpfn*512), IOMAP_START); - printk("VM: vmalloc from %x to %x\n", VMALLOC_START, VMALLOC_END); - printk("VM: ptemap from %x to %x for %d processes\n",TASKPTE_START, TASKPTE_END,TASK_MAXUPRC); - printk("calling start_kernel...\n"); + printk("VM: mapped physical from %x to %x, iomap from %lx\n", PAGE_OFFSET, PAGE_OFFSET+(max_hwpfn*512), IOMAP_START); + printk("VM: vmalloc from %lx to %lx\n", VMALLOC_START, VMALLOC_END); + printk("VM: ptemap from %lx to %lx for %d processes\n",TASKPTE_START, TASKPTE_END,TASK_MAXUPRC); + printk("calling start_kernel...\n\n"); start_kernel(); } |
From: Andy P. <at...@us...> - 2001-09-11 19:25:17
|
Update of /cvsroot/linux-vax/kernel-2.4/arch/vax/mm In directory usw-pr-cvs1:/tmp/cvs-serv22582 Modified Files: fault.c init.c ioremap.c Log Message: Cleanup compilation errors. Index: fault.c =================================================================== RCS file: /cvsroot/linux-vax/kernel-2.4/arch/vax/mm/fault.c,v retrieving revision 1.12 retrieving revision 1.13 diff -u -r1.12 -r1.13 --- fault.c 2001/09/06 23:40:41 1.12 +++ fault.c 2001/09/11 19:25:15 1.13 @@ -47,7 +47,7 @@ #define REASON_WRITE (1<<2) #undef VAX_MM_DEBUG -#define VAX_MM_DEBUG_USER_FAULTS +#undef VAX_MM_DEBUG_USER_FAULTS static void do_page_fault(struct accvio_info *info, struct pt_regs *regs) @@ -136,7 +136,7 @@ show_regs(regs); show_cpu_regs(); printk("\nStack dump\n"); - hex_dump((void *)((regs->fp&~0xf)-64), 768); + hex_dump((void *)((regs->fp&~0xf), 512); printk("do_page_fault: sending SIGSEGV\n"); #endif Index: init.c =================================================================== RCS file: /cvsroot/linux-vax/kernel-2.4/arch/vax/mm/init.c,v retrieving revision 1.17 retrieving revision 1.18 diff -u -r1.17 -r1.18 --- init.c 2001/09/02 20:50:16 1.17 +++ init.c 2001/09/11 19:25:15 1.18 @@ -53,8 +53,8 @@ pg0 = (pte_t *)SPT_BASE; /* set up pmd */ - swapper_pg_dir[2].pmd = swapper_pm_dir; - swapper_pg_dir[2].pmd2 = &swapper_pm_dir[1024]; + swapper_pg_dir[2].pmd = (unsigned int)swapper_pm_dir; + swapper_pg_dir[2].pmd2 = (unsigned int)&swapper_pm_dir[1024]; /* FIXME: I _really_ dont like this flag. */ pmd_val(swapper_pm_dir[PGD_SPECIAL]) = (unsigned long)swapper_pg_dir | 0x1; Index: ioremap.c =================================================================== RCS file: /cvsroot/linux-vax/kernel-2.4/arch/vax/mm/ioremap.c,v retrieving revision 1.5 retrieving revision 1.6 diff -u -r1.5 -r1.6 --- ioremap.c 2001/05/19 12:03:00 1.5 +++ ioremap.c 2001/09/11 19:25:15 1.6 @@ -142,7 +142,7 @@ return; } - p = GET_HWSPTE_VIRT(addr); + p = (pte_t *)GET_HWSPTE_VIRT(addr); if ((p < iomap_base) && (p >= (iomap_base + SPT_PTES_IOMAP))) { printk("iounmap: virtual addr 0x%08lx not in IOMAP region\n", |
From: Andy P. <at...@us...> - 2001-09-11 19:24:43
|
Update of /cvsroot/linux-vax/kernel-2.4/arch/vax/kernel In directory usw-pr-cvs1:/tmp/cvs-serv22363 Modified Files: setup.c Log Message: whoops, back command line change out. Index: setup.c =================================================================== RCS file: /cvsroot/linux-vax/kernel-2.4/arch/vax/kernel/setup.c,v retrieving revision 1.14 retrieving revision 1.15 diff -u -r1.14 -r1.15 --- setup.c 2001/09/11 19:23:38 1.14 +++ setup.c 2001/09/11 19:24:40 1.15 @@ -68,7 +68,7 @@ * atp -- have a temporary one. * Shouldn't we use strcpy here? */ - memcpy(command_line, "root=/dev/nfs nfsroot=/home/disk_vax/vaxroot rw debug\0",55); + memcpy(command_line, "root=/dev/nfs nfsroot=/tftpboot/vaxroot rw debug\0",55); *cmdline_p = command_line; /* Save unparsed command line copy for /proc/cmdline */ memcpy(saved_command_line, command_line, COMMAND_LINE_SIZE); |
From: Andy P. <at...@us...> - 2001-09-11 19:23:41
|
Update of /cvsroot/linux-vax/kernel-2.4/arch/vax/kernel In directory usw-pr-cvs1:/tmp/cvs-serv21502 Modified Files: interrupt.c process.c reboot.c regdump.c setup.c signal.c Log Message: Clean up compilation warnings Index: interrupt.c =================================================================== RCS file: /cvsroot/linux-vax/kernel-2.4/arch/vax/kernel/interrupt.c,v retrieving revision 1.17 retrieving revision 1.18 diff -u -r1.17 -r1.18 --- interrupt.c 2001/09/06 23:39:42 1.17 +++ interrupt.c 2001/09/11 19:23:38 1.18 @@ -23,6 +23,8 @@ #include "interrupt.h" /* Local, private definitions */ +int do_signal(sigset_t *oldset, struct pt_regs *regs); /* signal.c */ + unsigned char __attribute((__aligned__(PAGE_SIZE))) interrupt_stack[NR_CPUS][INT_STACK_SIZE]; union scb_and_device_vectors __attribute((__aligned__(PAGE_SIZE))) scb; @@ -294,7 +296,7 @@ void arith_handler(struct pt_regs *regs, void *excep_info) { int code = *(unsigned int *)(excep_info); - printk("Arithmetic Fault at PC=%8lx, %s, (code=%lx)\n",regs->pc,arith_faults[code],code); + printk("Arithmetic Fault at PC=%8lx, %s, (code=%x)\n",regs->pc,arith_faults[code],code); /* FIXME: need to code up the info for user handler */ if (user_mode(regs)) { force_sig(SIGFPE,current); Index: process.c =================================================================== RCS file: /cvsroot/linux-vax/kernel-2.4/arch/vax/kernel/process.c,v retrieving revision 1.12 retrieving revision 1.13 diff -u -r1.12 -r1.13 --- process.c 2001/09/02 20:48:39 1.12 +++ process.c 2001/09/11 19:23:38 1.13 @@ -109,12 +109,6 @@ struct new_thread_stack *child_stack; struct pt_regs *child_regs; void *stack_top; - pte_t *spte; - -// /* Place a guard page on page 3 */ -// spte=GET_SPTE_VIRT(p); -// spte+=2; -// set_pte(spte,pte_modify(*spte,PAGE_KRO)); /* stack top is at the end of the task_union - take the pointer, add in the size of task_union, Index: reboot.c =================================================================== RCS file: /cvsroot/linux-vax/kernel-2.4/arch/vax/kernel/reboot.c,v retrieving revision 1.3 retrieving revision 1.4 diff -u -r1.3 -r1.4 --- reboot.c 2001/07/31 17:28:26 1.3 +++ reboot.c 2001/09/11 19:23:38 1.4 @@ -17,6 +17,8 @@ #include <asm/mv.h> #include <asm/system.h> /* For HALT */ +extern void show_cpu_regs(void); + void machine_halt(void) { if (mv->halt == NULL) { Index: regdump.c =================================================================== RCS file: /cvsroot/linux-vax/kernel-2.4/arch/vax/kernel/regdump.c,v retrieving revision 1.4 retrieving revision 1.5 diff -u -r1.4 -r1.5 --- regdump.c 2001/09/01 12:21:15 1.4 +++ regdump.c 2001/09/11 19:23:38 1.5 @@ -108,7 +108,7 @@ if (i%4 == 0) { printk(" %08lx ", (unsigned long)(p+i)); } - if ((p+i)<PAGE_OFFSET){ + if ((unsigned int)(p+i)<PAGE_OFFSET){ if (get_user(x, p+i)) { printk(" --------"); } else { Index: setup.c =================================================================== RCS file: /cvsroot/linux-vax/kernel-2.4/arch/vax/kernel/setup.c,v retrieving revision 1.13 retrieving revision 1.14 diff -u -r1.13 -r1.14 --- setup.c 2001/09/02 20:48:39 1.13 +++ setup.c 2001/09/11 19:23:38 1.14 @@ -68,7 +68,7 @@ * atp -- have a temporary one. * Shouldn't we use strcpy here? */ - memcpy(command_line, "root=/dev/nfs nfsroot=/tftpboot/vaxroot rw debug\0",55); + memcpy(command_line, "root=/dev/nfs nfsroot=/home/disk_vax/vaxroot rw debug\0",55); *cmdline_p = command_line; /* Save unparsed command line copy for /proc/cmdline */ memcpy(saved_command_line, command_line, COMMAND_LINE_SIZE); @@ -100,7 +100,7 @@ bootmap_size = init_bootmem(0, max_pfn); - printk("bootmap size = %8.8x\n", bootmap_size); + printk("bootmap size = %8.8lx\n", bootmap_size); /* Available memory is now the region from the end of the bootmem bitmap to the start of the kernel and from the Index: signal.c =================================================================== RCS file: /cvsroot/linux-vax/kernel-2.4/arch/vax/kernel/signal.c,v retrieving revision 1.7 retrieving revision 1.8 diff -u -r1.7 -r1.8 --- signal.c 2001/09/06 23:39:42 1.7 +++ signal.c 2001/09/11 19:23:38 1.8 @@ -201,7 +201,6 @@ restore_sigcontext(struct pt_regs *regs, struct sigcontext *sc) { unsigned int err = 0; - unsigned long old_usp; /* restore the regs from &sc->regs (same as sc, since regs is first) * (sc is already checked for VERIFY_READ since the sigframe was @@ -449,7 +448,7 @@ regs->pc = (unsigned long) frame->retcode; /* what we enter NOW */ regs->fp = regs->sp; - regs->sp = frame; + regs->sp = (unsigned int)frame; __mtpr(frame,PR_USP); /* and into to the register, ready for REI */ #ifdef DEBUG_SIG @@ -574,7 +573,7 @@ /* Set up registers for signal handler */ regs->pc = (unsigned long) ka->sa.sa_handler; /* what we enter NOW */ - regs->sp = frame; /* what we enter LATER */ + regs->sp = (unsigned int)frame; /* what we enter LATER */ return; |
From: Andy P. <at...@us...> - 2001-09-06 23:42:12
|
Update of /cvsroot/linux-vax/kernel-2.4/include/asm-vax/mm In directory usw-pr-cvs1:/tmp/cvs-serv5546/mm Modified Files: task.h Log Message: Hopefully last change for task.h gcc now happy. Index: task.h =================================================================== RCS file: /cvsroot/linux-vax/kernel-2.4/include/asm-vax/mm/task.h,v retrieving revision 1.4 retrieving revision 1.5 diff -u -r1.4 -r1.5 --- task.h 2001/09/02 20:52:51 1.4 +++ task.h 2001/09/06 23:42:09 1.5 @@ -22,7 +22,7 @@ /* TASK_MMAPMAX is the max space in P0 for the mmap() function , contiguous with TASK_TXTMAX - Its basically the amount of memory you give a process to play with */ -#define TASK_MMAPMAX (64*1024*1024) +#define TASK_MMAPMAX (48*1024*1024) /* TASK_STKMAX is the max space for the stack in P1 */ /* Like WSMAX above, the upper limit for this is set by PGD_SPECIAL below. If this |
From: Andy P. <at...@us...> - 2001-09-06 23:40:44
|
Update of /cvsroot/linux-vax/kernel-2.4/arch/vax/mm In directory usw-pr-cvs1:/tmp/cvs-serv5308 Modified Files: fault.c Log Message: Add a new debugging define for debugging user page faults Index: fault.c =================================================================== RCS file: /cvsroot/linux-vax/kernel-2.4/arch/vax/mm/fault.c,v retrieving revision 1.11 retrieving revision 1.12 diff -u -r1.11 -r1.12 --- fault.c 2001/08/31 11:50:57 1.11 +++ fault.c 2001/09/06 23:40:41 1.12 @@ -47,6 +47,7 @@ #define REASON_WRITE (1<<2) #undef VAX_MM_DEBUG +#define VAX_MM_DEBUG_USER_FAULTS static void do_page_fault(struct accvio_info *info, struct pt_regs *regs) @@ -126,15 +127,19 @@ up(&mm->mmap_sem); if (user_mode(regs)) { - printk(KERN_ALERT "Unable to do USER paging request: " - "pid %d, virtual address %08lx, reason mask %08x, " +#ifdef VAX_MM_DEBUG_USER_FAULTS + printk(KERN_ALERT "Unable to do USER paging request: " + "pid %d, virtual address %08lx, reason mask %08x, " "PC %08x, PSL %08x\n", current->pid, address, reason, info->pc, info->psl); show_regs(regs); show_cpu_regs(); + printk("\nStack dump\n"); + hex_dump((void *)((regs->fp&~0xf)-64), 768); printk("do_page_fault: sending SIGSEGV\n"); +#endif force_sig(SIGSEGV, current); return; } |
From: Andy P. <at...@us...> - 2001-09-06 23:39:45
|
Update of /cvsroot/linux-vax/kernel-2.4/arch/vax/kernel In directory usw-pr-cvs1:/tmp/cvs-serv4874 Modified Files: interrupt.c interrupt.h signal.c Log Message: Add new fault handlers - change debugging level in signal.c Index: interrupt.c =================================================================== RCS file: /cvsroot/linux-vax/kernel-2.4/arch/vax/kernel/interrupt.c,v retrieving revision 1.16 retrieving revision 1.17 diff -u -r1.16 -r1.17 --- interrupt.c 2001/09/02 20:48:39 1.16 +++ interrupt.c 2001/09/06 23:39:42 1.17 @@ -51,8 +51,8 @@ { pte_t p, *q; unsigned char *t, *s; - t = &interrupt_stack[0]; - s = SPT_BASE; + t = (unsigned char *)&interrupt_stack[0]; + s = (unsigned char *)SPT_BASE; /* Do we need more than a page for the int stack? */ if (INT_STACK_SIZE <= PAGE_SIZE) { printk("Interrupt stack too small, must be > PAGE_SIZE\n"); @@ -61,7 +61,7 @@ /* FIXME: kenn - does this want to be a 4k page or a hardware page ? */ /* see include/asm/mm/pgtable.h */ /* q = (((unsigned long) &interrupt_stack[smp_processor_id()])-PAGE_OFFSET)>>PAGELET_SHIFT;*/ - q = GET_HWSPTE_VIRT(&interrupt_stack[smp_processor_id()]); + q = (pte_t *)GET_HWSPTE_VIRT(&interrupt_stack[smp_processor_id()]); /* Set first page of interrupt stack area to kernel read, thus @@ -69,7 +69,7 @@ to expand the interrupt stack before they can do any damage. */ /* if this is a 4k page - need to use set_pte here */ - p = __mk_pte(&interrupt_stack[smp_processor_id()],__pgprot(_PAGE_KR|_PAGE_VALID)); + p = __mk_pte((unsigned long int)&interrupt_stack[smp_processor_id()],__pgprot(_PAGE_KR|_PAGE_VALID)); /* debug hwpte calculations FIXME: remove */ /* asm("movl %0, r2\n" @@ -103,7 +103,7 @@ /* register the machine check handler. */ void register_mcheck_handler(void) { - extern void machine_check_handler(void); + extern void machine_check_handler(struct pt_regs *regs, void *unused); struct irqvector *vector; unsigned char *inside_vec; @@ -174,7 +174,18 @@ printk("Panic: unable to register corrected read handler\n"); machine_halt(); } - + + /* other faults */ + if (register_excep_handler(SCB_RESAM,"reserved addressing mode (resam_handler)", resam_handler, 0, 0)) { + printk("Panic: unable to register reserved addressing mode handler\n"); + machine_halt(); + } + if (register_excep_handler(SCB_ARITH,"arithmetic fault (arith_handler)", arith_handler, 1, 0)) { + printk("Panic: unable to register arithmetic fault handler\n"); + machine_halt(); + } + + } void init_IRQ(void) @@ -230,12 +241,66 @@ machine_halt(); } + +/* This is the handler for reserved addressing mode exceptions. + Eventually this will have to check if the fault was from user + mode or kernel mode and either throw a SIGILL or panic. */ + +void resam_handler(struct pt_regs *regs, void *unused) +{ + unsigned short instr = *(unsigned short *)(regs->pc); + + if ((instr == 0xfeff) || (instr == 0xfdff)) { + printk("\nKernel bugcheck at PC=%08lx\n", regs->pc); + } else { + printk("\nReserved addressing mode fault at PC=%08lx\n", regs->pc); + } + + printk("\nStack dump\n"); + hex_dump((void *)(regs->sp), 256); + show_regs(regs); + show_cpu_regs(); + + if (user_mode(regs)) { + force_sig(SIGILL,current); + return; + } + machine_halt(); +} + /* This is the handler for corrected memory read errors */ void corrected_read_handler(struct pt_regs *regs, void *unused) { printk("Corrected memory read error. " "RAM failing or cache incorrectly initialized?\n"); +} + +/* This is the handler for arithmetic faults */ +char *arith_faults[] = { + "none", + "Integer Overflow", + "Integer Division by Zero", + "Floating Overflow Trap", + "Floating or Decimal Division by Zero Trap", + "Floating Underflow Trap", + "Decimal Overflow", + "Subscript Range", + "Floating Overflow Fault", + "Floating or Decimal Division by Zero Fault", + "Floating Underflow Fault" +}; + +void arith_handler(struct pt_regs *regs, void *excep_info) +{ + int code = *(unsigned int *)(excep_info); + printk("Arithmetic Fault at PC=%8lx, %s, (code=%lx)\n",regs->pc,arith_faults[code],code); + /* FIXME: need to code up the info for user handler */ + if (user_mode(regs)) { + force_sig(SIGFPE,current); + return; + } + } Index: interrupt.h =================================================================== RCS file: /cvsroot/linux-vax/kernel-2.4/arch/vax/kernel/interrupt.h,v retrieving revision 1.5 retrieving revision 1.6 diff -u -r1.5 -r1.6 --- interrupt.h 2001/06/26 18:59:00 1.5 +++ interrupt.h 2001/09/06 23:39:42 1.6 @@ -65,3 +65,5 @@ extern void reserved_instr_handler(struct pt_regs *regs, void *excep_info); extern void corrected_read_handler(struct pt_regs *regs, void *excep_info); extern void syscall_handler(struct pt_regs *regs, void *excep_info); +extern void resam_handler(struct pt_regs *regs, void *unused); +extern void arith_handler(struct pt_regs *regs, void *excep_info); Index: signal.c =================================================================== RCS file: /cvsroot/linux-vax/kernel-2.4/arch/vax/kernel/signal.c,v retrieving revision 1.6 retrieving revision 1.7 diff -u -r1.6 -r1.7 --- signal.c 2001/09/02 20:48:39 1.6 +++ signal.c 2001/09/06 23:39:42 1.7 @@ -32,7 +32,7 @@ #include <asm/ucontext.h> #include <asm/uaccess.h> -#define DEBUG_SIG 0 +#undef DEBUG_SIG /* FIXME: Check this & fixup other regs, like r0 */ #define RESTART_VAX_SYSCALL(regs) { (regs)->pc -= 4; } |
From: Andy P. <at...@us...> - 2001-09-05 10:16:43
|
Update of /cvsroot/linux-vax/kernel-2.4/drivers/net In directory usw-pr-cvs1:/tmp/cvs-serv8689 Modified Files: vaxlance.c Log Message: whoops, left a little debugging thing in there Index: vaxlance.c =================================================================== RCS file: /cvsroot/linux-vax/kernel-2.4/drivers/net/vaxlance.c,v retrieving revision 1.15 retrieving revision 1.16 diff -u -r1.15 -r1.16 --- vaxlance.c 2001/08/15 22:24:27 1.15 +++ vaxlance.c 2001/09/05 10:16:40 1.16 @@ -1079,8 +1079,6 @@ dev->irq=0x94; printk("Using LANCE interrupt vector %d\n", dev->irq); #endif - /* tmp atp*/ - dev->irq=0x94; printk("Using LANCE interrupt vector %d\n", dev->irq); dev->open = &lance_open; |
From: Richard B. <rb...@us...> - 2001-09-05 04:03:59
|
Update of /cvsroot/linux-vax/kernel-2.4/drivers/net In directory usw-pr-cvs1:/tmp/cvs-serv23015/drivers/net Modified Files: Space.c Log Message: Added lines for Vax SGEC driver Index: Space.c =================================================================== RCS file: /cvsroot/linux-vax/kernel-2.4/drivers/net/Space.c,v retrieving revision 1.3 retrieving revision 1.4 diff -u -r1.3 -r1.4 --- Space.c 2001/02/26 02:28:27 1.3 +++ Space.c 2001/09/05 04:03:56 1.4 @@ -102,6 +102,7 @@ extern int mac89x0_probe(struct net_device *dev); extern int mc32_probe(struct net_device *dev); extern int vax_lance_probe(struct net_device *); +extern int vax_sgec_probe(struct net_device *); /* Gigabit Ethernet adapters */ extern int yellowfin_probe(struct net_device *dev); @@ -389,6 +390,9 @@ struct devprobe vax_probes[] __initdata = { #ifdef CONFIG_VAX_LANCE {vax_lance_probe, 0}, +#endif +#ifdef CONFIG_VAX_SGEC + {vax_sgec_probe, 0}, #endif }; #endif |
From: Richard B. <rb...@us...> - 2001-09-04 03:17:20
|
Update of /cvsroot/linux-vax/kernel-2.4/drivers/net In directory usw-pr-cvs1:/tmp/cvs-serv2755/drivers/net Modified Files: Makefile Added Files: vaxsgec.c Log Message: Added initial support for vax SGEC ethernet driver (still in progress) --- NEW FILE --- /* * SGEC ethernet driver. Reported as EZA0 etc by VAX Console. * * SGEC stands for Second Generation Ethernet Card, and is the * replacement for the LANCE adapters in the MicroVaxen. * * Loosely adapted from vaxlance.c by Dave Airlie * by Richard Banks, Aug 2001 * */ /* NOTE to self - look at code in arch/vax/if/ *ze*, arch/vax/vsa/ *ze*, and dev/ic/ *sgec* */ static char *version = "vaxsgec.c: v0.001 by Richard Banks\n"; static char *sgecstr = "SGEC"; #include <linux/init.h> [...1064 lines suppressed...] return vax_sgec_probe(NULL); } void cleanup_module(void) { struct sgec_private *lp; while (root_sgec_dev) { lp = root_sgec_dev->next_module; unregister_netdev(root_sgec_dev->dev); kfree(root_sgec_dev->dev); root_sgec_dev = lp; } } #endif Index: Makefile =================================================================== RCS file: /cvsroot/linux-vax/kernel-2.4/drivers/net/Makefile,v retrieving revision 1.3 retrieving revision 1.4 diff -u -r1.3 -r1.4 --- Makefile 2001/02/26 02:28:27 1.3 +++ Makefile 2001/09/04 03:17:17 1.4 @@ -189,6 +189,7 @@ obj-$(CONFIG_SGI_IOC3_ETH) += ioc3-eth.o obj-$(CONFIG_BAGETLANCE) += bagetlance.o obj-$(CONFIG_VAX_LANCE) += vaxlance.o +obj-$(CONFIG_SGEC) += vaxsgec.o obj-$(CONFIG_DECLANCE) += declance.o obj-$(CONFIG_ATARILANCE) += atarilance.o obj-$(CONFIG_ATARI_BIONET) += atari_bionet.o |
From: Richard B. <rb...@us...> - 2001-09-04 03:17:20
|
Update of /cvsroot/linux-vax/kernel-2.4/arch/vax In directory usw-pr-cvs1:/tmp/cvs-serv2755/arch/vax Modified Files: config.in Log Message: Added initial support for vax SGEC ethernet driver (still in progress) Index: config.in =================================================================== RCS file: /cvsroot/linux-vax/kernel-2.4/arch/vax/config.in,v retrieving revision 1.6 retrieving revision 1.7 diff -u -r1.6 -r1.7 --- config.in 2001/08/14 21:25:43 1.6 +++ config.in 2001/09/04 03:17:17 1.7 @@ -133,6 +133,7 @@ comment 'CCP compressors for PPP are only built as modules.' fi bool 'LANCE ethernet controller support' CONFIG_VAX_LANCE + bool 'SGEC ethernet controller support (EXPERIMENTAL)' CONFIG_SGEC fi endmenu |
From: Richard B. <rb...@us...> - 2001-09-04 03:11:42
|
Update of /cvsroot/linux-vax/kernel-2.4/arch/vax/kernel In directory usw-pr-cvs1:/tmp/cvs-serv1783/arch/vax/kernel Modified Files: cpu_ka55.c Log Message: Added support for VS bus initialization Index: cpu_ka55.c =================================================================== RCS file: /cvsroot/linux-vax/kernel-2.4/arch/vax/kernel/cpu_ka55.c,v retrieving revision 1.4 retrieving revision 1.5 diff -u -r1.4 -r1.5 --- cpu_ka55.c 2001/06/26 18:59:00 1.4 +++ cpu_ka55.c 2001/09/04 03:11:38 1.5 @@ -16,11 +16,13 @@ #include <asm/mtpr.h> #include <asm/mv.h> #include <asm/vaxcpu.h> +#include <asm/vsa.h> void ka55_pre_vm_init(void); void ka55_post_vm_init(void); void ka55_prom_putchar(int); int ka55_prom_getchar(void); +void ka55_init_devices(void); const char *ka55_cpu_type_str(void); @@ -45,8 +47,8 @@ NULL, /* reboot */ NULL, /* halt */ - NULL, /* init_devices */ NULL, /* mcheck - machine check */ + ka55_init_devices, /* init_devices */ ka55_cpu_type_str }, @@ -95,3 +97,9 @@ return "KA55"; } +void ka55_init_devices(void) +{ +#ifdef CONFIG_VSBUS + vsbus_setup(); +#endif +} |
From: Andy P. <at...@us...> - 2001-09-02 20:52:54
|
Update of /cvsroot/linux-vax/kernel-2.4/include/asm-vax/mm In directory usw-pr-cvs1:/tmp/cvs-serv507 Modified Files: pgalloc.h task.h Log Message: New task sizes for gcc. Cleanups for pgalloc.c in pgalloc.h Index: pgalloc.h =================================================================== RCS file: /cvsroot/linux-vax/kernel-2.4/include/asm-vax/mm/pgalloc.h,v retrieving revision 1.12 retrieving revision 1.13 diff -u -r1.12 -r1.13 --- pgalloc.h 2001/09/01 12:22:46 1.12 +++ pgalloc.h 2001/09/02 20:52:51 1.13 @@ -106,7 +106,7 @@ extern pmd_t *pmd_alloc_kernel(pgd_t *pgd, unsigned long address); extern void pmd_free_kernel(pmd_t *pmd); extern void pte_free(pte_t *pte); -extern unsigned long get_pageaddr_from_pte(pte_t *ptep); +extern pte_t *get_pageaddr_from_pte(pte_t *ptep); extern void free_pte_slow(pte_t *pte); extern pte_t *get_pte_slow(void); Index: task.h =================================================================== RCS file: /cvsroot/linux-vax/kernel-2.4/include/asm-vax/mm/task.h,v retrieving revision 1.3 retrieving revision 1.4 diff -u -r1.3 -r1.4 --- task.h 2001/09/01 12:22:46 1.3 +++ task.h 2001/09/02 20:52:51 1.4 @@ -16,19 +16,19 @@ /* TASK_WSMAX must not be larger than 768MB. In the unlikely event that * you really want to allocate that much to a process, change PGD_SPECIAL below */ -/* TASK_TXTMAX is the maximum program size, including shared libs */ +/* TASK_TXTMAX is the maximum program size */ #define TASK_TXTMAX (16*1024*1024) /* TASK_MMAPMAX is the max space in P0 for the mmap() function , contiguous with TASK_TXTMAX - Its basically the amount of memory you give a process to play with */ -#define TASK_MMAPMAX (24*1024*1024) +#define TASK_MMAPMAX (64*1024*1024) /* TASK_STKMAX is the max space for the stack in P1 */ /* Like WSMAX above, the upper limit for this is set by PGD_SPECIAL below. If this * is above 256MB change PGD_SPECIAL */ -#define TASK_STKMAX (16*1024*1024) +#define TASK_STKMAX (4*1024*1024) #define TASK_WSMAX (TASK_TXTMAX+TASK_MMAPMAX) |
From: Andy P. <at...@us...> - 2001-09-02 20:50:19
|
Update of /cvsroot/linux-vax/kernel-2.4/arch/vax/mm In directory usw-pr-cvs1:/tmp/cvs-serv32483 Modified Files: init.c pgalloc.c Log Message: Clean up pgalloc.c. init.c zeros empty_zero_page Index: init.c =================================================================== RCS file: /cvsroot/linux-vax/kernel-2.4/arch/vax/mm/init.c,v retrieving revision 1.16 retrieving revision 1.17 diff -u -r1.16 -r1.17 --- init.c 2001/08/20 21:29:07 1.16 +++ init.c 2001/09/02 20:50:16 1.17 @@ -119,7 +119,11 @@ { max_mapnr = num_physpages = max_low_pfn; - /* this will put all low memory onto the freelists */ + /* clear the zero-page */ + memset(empty_zero_page, 0, PAGE_SIZE); + + /* this will put all low memory onto the freelists */ + totalram_pages += free_all_bootmem(); high_memory = (void *) __va((max_low_pfn) * PAGE_SIZE); Index: pgalloc.c =================================================================== RCS file: /cvsroot/linux-vax/kernel-2.4/arch/vax/mm/pgalloc.c,v retrieving revision 1.7 retrieving revision 1.8 diff -u -r1.7 -r1.8 --- pgalloc.c 2001/09/01 12:19:47 1.7 +++ pgalloc.c 2001/09/02 20:50:16 1.8 @@ -175,8 +175,8 @@ } if (!pmdpage) { printk(KERN_ERR "VAXMM: unable to allocate a pmd for pgd (%8p)\n",pgd ); - free_pmd_fast(get_pageaddr_from_pte(pgd->pmd)); - remap_pte_invalidate(pgd->pmd); + free_pmd_fast((pmd_t *)get_pageaddr_from_pte((pte_t *)pgd->pmd)); + remap_pte_invalidate((pmd_t *)pgd->pmd); return NULL; } @@ -217,14 +217,14 @@ } /* This inverts the remapping done in remap_and_clear */ -unsigned long get_pageaddr_from_pte(pte_t *ptep) +pte_t *get_pageaddr_from_pte(pte_t *ptep) { - unsigned long addr; + pte_t *addr; pte_t *s0pte; s0pte = GET_SPTE_VIRT(ptep); - addr = (unsigned long)(((pte_val(*s0pte)&PAGELET_PFN_MASK)<<PAGELET_SHIFT)|PAGE_OFFSET); + addr = (pte_t *)(((pte_val(*s0pte)&PAGELET_PFN_MASK)<<PAGELET_SHIFT)|PAGE_OFFSET); return addr; } @@ -236,8 +236,8 @@ #ifdef VAX_MM_PGALLOC_DEBUG printk(KERN_DEBUG "VAXMM:pmd_free: freeing pmd %p, pmd2 %p\n",pmd,pmdp); #endif - free_pmd_slow(get_pageaddr_from_pte(pmdp)); - free_pmd_slow(get_pageaddr_from_pte(pmd)); + free_pmd_fast((pmd_t *)get_pageaddr_from_pte((pte_t *)pmdp)); + free_pmd_fast((pmd_t *)get_pageaddr_from_pte((pte_t *)pmd)); /* invalidate the S0 ptes that map this */ remap_pte_invalidate(pmd); remap_pte_invalidate(pmdp); @@ -266,7 +266,7 @@ } /* locate the S0 pte that describes the page pointed to by s0addr */ - + s0pte = GET_SPTE_VIRT(s0addr); /* is it already pointing somewhere? */ @@ -276,10 +276,10 @@ } #endif - page_clear(pte_page); + clear_page(pte_page); /* zap the map */ - set_pte(s0pte,__mk_pte(pte_page,__pgprot(_PAGE_VALID|_PAGE_KW))); + set_pte(s0pte,__mk_pte((unsigned long int)pte_page,__pgprot(_PAGE_VALID|_PAGE_KW))); // print_pte(s0pte); flush_tlb_all(); @@ -380,10 +380,10 @@ if (((adjusted_address) >> PAGELET_SHIFT) < (pgdptr->lr)) { /* fill in any bits missing. Perhaps we should do this when we set up the * SPT in init.c just to be consistent */ - if (pmd_val(*pmd)==NULL) { + if (pmd_val(*pmd)==0) { spt_entry = (pmd - (pmd_t *)(pgdptr->pmd))<< (PAGE_SHIFT+7) | PAGE_OFFSET; spte = GET_SPTE_VIRT(spt_entry); - pmd_val(*pmd) = spte; + pmd_val(*pmd) = (unsigned long int)spte; } return pte_offset(pmd, adjusted_address); } @@ -422,7 +422,7 @@ pmd_t *pmdi; long int direction,ii; - pmd_basep = ((unsigned long)pmd & PTE_TASK_MASK); /* base of the pmd */ + pmd_basep = (pmd_t *)((unsigned long)pmd & PTE_TASK_MASK); /* base of the pmd */ #ifdef VAX_MM_PGALLOC_DEBUG printk(KERN_DEBUG "VAXMM:pte_alloc: pmd_basep %8lx, pmd %8lx, pmd_val %8lx, address %8lx, pmd_index %8lx\n",pmd_basep,pmd,pmd_val(*pmd),address,pmd_index(address)); @@ -451,13 +451,13 @@ if (is_p1){ adjusted_address |= 0x40000000; if (adjusted_address <= (PAGE_OFFSET-TASK_STKMAX)) { - printk(KERN_NOTICE "VAXMM: process %p exceeded TASK_STKMAX (%dMB)\n",current,(TASK_STKMAX>>10)); + printk(KERN_NOTICE "VAXMM: process %p exceeded TASK_STKMAX (%dMB) addr %8lx\n",current,(TASK_STKMAX>>20),adjusted_address); goto give_segv; } pte_number = (adjusted_address - 0x40000000) >> PAGE_SHIFT; } else { if (adjusted_address >= (TASK_WSMAX)) { - printk(KERN_NOTICE "VAXMM: process %p exceeded TASK_WSMAX (%dMB)\n",current,(TASK_WSMAX>>10)); + printk(KERN_NOTICE "VAXMM: process %p exceeded TASK_WSMAX (%dMB) addr %8lx\n",current,(TASK_WSMAX>>20),adjusted_address); goto give_segv; } pte_number = (adjusted_address>>PAGE_SHIFT); @@ -490,12 +490,12 @@ /* The s0 address of the current end page in the page table is * current_last_page * 128 ptes/page * 32 bytes/pte_t + base reg */ - s0addr = (((current_last_page)<<7)*BYTES_PER_PTE_T)+pgdp->br; + s0addr = (pmd_t *) ((((current_last_page)<<7)*BYTES_PER_PTE_T)+pgdp->br); direction = -1; pmdi = pmd_basep+(current_last_page); } else { npages = target_page - current_last_page; - s0addr = (((current_last_page + 1)<<7)*BYTES_PER_PTE_T)+pgdp->br; + s0addr = (pmd_t *) ((((current_last_page + 1)<<7)*BYTES_PER_PTE_T)+pgdp->br); direction = 1; pmdi = pmd_basep+(current_last_page + 1); } @@ -559,14 +559,14 @@ { free_pte_fast(get_pageaddr_from_pte(pte)); /* invalidate the S0 pte that maps this */ - remap_pte_invalidate(pte); + remap_pte_invalidate((pmd_t *)pte); } /* This is only ever called from do_pgt_cache, all the unmapping have been done * before the page has been placed on the pgt cache */ void free_pte_slow(pte_t *pte) { - free_page(pte); + free_page((unsigned long int)pte); } void pte_free_kernel(pte_t *pte) @@ -590,7 +590,7 @@ #else pte_t * pte_offset(pmd_t * dir, unsigned long address) { - return (pmd_val(*dir)+(((address>>PAGE_SHIFT)&(PTRS_PER_PTE-1))<<SIZEOF_PTE_LOG2)); + return (pte_t *)(pmd_val(*dir)+(((address>>PAGE_SHIFT)&(PTRS_PER_PTE-1))<<SIZEOF_PTE_LOG2)); } #endif /* get_pte_kernel_slow. allocate a page of PTEs for the S0 pagetable. |
From: Andy P. <at...@us...> - 2001-09-02 20:48:42
|
Update of /cvsroot/linux-vax/kernel-2.4/arch/vax/kernel In directory usw-pr-cvs1:/tmp/cvs-serv31965 Modified Files: interrupt.c process.c setup.c signal.c syscall.c Log Message: fix slab.c bug, due to wrong setting of kernel stack pointer in copy_thread add debugging/machine halts to signal and syscall Index: interrupt.c =================================================================== RCS file: /cvsroot/linux-vax/kernel-2.4/arch/vax/kernel/interrupt.c,v retrieving revision 1.15 retrieving revision 1.16 diff -u -r1.15 -r1.16 --- interrupt.c 2001/08/20 21:30:52 1.15 +++ interrupt.c 2001/09/02 20:48:39 1.16 @@ -190,12 +190,17 @@ { printk("\nReserved operand fault at PC=%08lx\n", regs->pc); + printk("\nStack dump\n"); hex_dump((void *)(regs->sp), 256); show_regs(regs); show_cpu_regs(); + if (user_mode(regs)) { + force_sig(SIGILL,current); + return; + } machine_halt(); } @@ -218,6 +223,10 @@ show_regs(regs); show_cpu_regs(); + if (user_mode(regs)) { + force_sig(SIGILL,current); + return; + } machine_halt(); } @@ -345,8 +354,8 @@ /* If the excep_handler field of the irqvector is NULL, then this is an interrupt vector. Dispatch it via the irqaction struct */ - if (vec->excep_handler != NULL) { +// printk("exception: vec=%p handler %p excep_info=%p(%d)\n",vec,vec->excep_handler,excep_info,*(int *)excep_info); do_exception(regs, vec, excep_info); if (vec == scb.scb.chmk) { goto ret_from_sys_call; @@ -377,6 +386,7 @@ } ret_with_reschedule: +// printk("syscall: pid %d need_resched %d sigpending %d state %d\n",current->pid,current->need_resched,current->sigpending,current->state); if (current->need_resched) { schedule(); goto ret_from_sys_call; @@ -385,8 +395,10 @@ /* check for pending signals */ if (current->sigpending != 0) { /* FIXME: do we need to check the IPL here (i386 does a sti here) */ - do_signal(); + /* FIXME: oldset? */ + do_signal(0,regs); } +// printk("syscall: out of c code\n"); done: } Index: process.c =================================================================== RCS file: /cvsroot/linux-vax/kernel-2.4/arch/vax/kernel/process.c,v retrieving revision 1.11 retrieving revision 1.12 diff -u -r1.11 -r1.12 --- process.c 2001/08/17 20:36:30 1.11 +++ process.c 2001/09/02 20:48:39 1.12 @@ -109,13 +109,25 @@ struct new_thread_stack *child_stack; struct pt_regs *child_regs; void *stack_top; + pte_t *spte; -/* printk("copy_thread: creating new thread: pid %d, task 0x%08lx, usp 0x%08lx\n", - p->pid, (unsigned long)p, usp); */ - - stack_top = ((union task_union *)p) + 1; - +// /* Place a guard page on page 3 */ +// spte=GET_SPTE_VIRT(p); +// spte+=2; +// set_pte(spte,pte_modify(*spte,PAGE_KRO)); + + /* stack top is at the end of the task_union + - take the pointer, add in the size of task_union, + and then drop by a longword to keep it within the + current union + */ + stack_top = ((union task_union *)p)+1; + stack_top -= 4; + child_stack = (struct new_thread_stack *)(stack_top) - 1; + +// printk("copy_thread: pid %d, task 0x%08lx, kstack_top 0x%8lx, usp 0x%08lx, ksp 0x%08lx\n", +// p->pid, (unsigned long)p, stack_top, usp, child_stack); child_regs = &child_stack->regs; Index: setup.c =================================================================== RCS file: /cvsroot/linux-vax/kernel-2.4/arch/vax/kernel/setup.c,v retrieving revision 1.12 retrieving revision 1.13 diff -u -r1.12 -r1.13 --- setup.c 2001/08/21 20:06:42 1.12 +++ setup.c 2001/09/02 20:48:39 1.13 @@ -158,6 +158,8 @@ #ifdef __SMP__ setup_smp(); #endif + + pte_ERROR( *(pte_t *)0x80291d80); } Index: signal.c =================================================================== RCS file: /cvsroot/linux-vax/kernel-2.4/arch/vax/kernel/signal.c,v retrieving revision 1.5 retrieving revision 1.6 diff -u -r1.5 -r1.6 --- signal.c 2001/08/27 23:39:28 1.5 +++ signal.c 2001/09/02 20:48:39 1.6 @@ -111,6 +111,8 @@ sigset_t saveset, newset; /* XXX: Don't preclude handling different sized sigset_t's. */ + machine_halt(); + if (sigsetsize != sizeof(sigset_t)) return -EINVAL; @@ -281,6 +283,8 @@ * then frame should be dword aligned here. If it's * not, then the user is trying to mess with us. */ + machine_halt(); + if (((long)frame) & 3) goto badframe; @@ -527,6 +531,7 @@ unsigned long return_ip; int err = 0; + machine_halt(); frame = get_sigframe(ka, regs, sizeof(*frame)); if (!access_ok(VERIFY_WRITE, frame, sizeof(*frame))) Index: syscall.c =================================================================== RCS file: /cvsroot/linux-vax/kernel-2.4/arch/vax/kernel/syscall.c,v retrieving revision 1.6 retrieving revision 1.7 diff -u -r1.6 -r1.7 --- syscall.c 2001/08/19 10:32:58 1.6 +++ syscall.c 2001/09/02 20:48:39 1.7 @@ -78,8 +78,8 @@ nr_args = *user_ap; } -/* printk("Dispatching syscall %d with %d args\n", chmk_arg, nr_args);*/ - +// printk("Dispatching syscall %d with %d args, regs=%8lx\n", chmk_arg, nr_args,regs); + /* We pass all the user-supplied args plus the pointer to the regs to the syscall function. If the syscall is implemented in the core kernel, then it will ignore the additional |
From: Andy P. <at...@us...> - 2001-09-01 12:22:50
|
Update of /cvsroot/linux-vax/kernel-2.4/include/asm-vax/mm In directory usw-pr-cvs1:/tmp/cvs-serv26817 Modified Files: pgalloc.h task.h Log Message: Change task sizes to be more appropriate for gcc. Change cache size counter to have separate counters for each cache type, and fix stupid do_pgt_cache looping bug. pgtable -> pgd cache. Index: pgalloc.h =================================================================== RCS file: /cvsroot/linux-vax/kernel-2.4/include/asm-vax/mm/pgalloc.h,v retrieving revision 1.11 retrieving revision 1.12 diff -u -r1.11 -r1.12 --- pgalloc.h 2001/08/23 09:29:15 1.11 +++ pgalloc.h 2001/09/01 12:22:46 1.12 @@ -35,6 +35,7 @@ extern struct pgtable_cache_struct { unsigned long *pgd_cache; unsigned long pgd_slots_used; + unsigned long pgd_cache_sz; unsigned long *pte_cache; unsigned long pgtable_cache_sz; } quicklists; @@ -48,6 +49,7 @@ #define pmd_quicklist ((unsigned long *)0) #define pte_quicklist (quicklists.pte_cache) #define pgtable_cache_size (quicklists.pgtable_cache_sz) +#define pgd_cache_size (quicklists.pgd_cache_sz) #define pgd_slots_used (quicklists.pgd_slots_used) /* @@ -63,7 +65,7 @@ { *(unsigned long *)pgd = (unsigned long) pgd_quicklist; pgd_quicklist = (unsigned long *) pgd; - pgtable_cache_size++; + pgd_cache_size++; } extern __inline__ void free_pgd_slow(pgd_t *pgd) @@ -80,7 +82,7 @@ if ((ret = (unsigned long *)pte_quicklist) != NULL) { pte_quicklist = (unsigned long *)(*ret); - ret[0] = ret[1]; + ret[0] = 0; pgtable_cache_size--; } return (pmd_t *)ret; @@ -119,7 +121,7 @@ if((ret = (unsigned long *)pte_quicklist) != NULL) { pte_quicklist = (unsigned long *)(*ret); - ret[0] = ret[1]; + ret[0] = 0; pgtable_cache_size--; } return (pte_t *)ret; Index: task.h =================================================================== RCS file: /cvsroot/linux-vax/kernel-2.4/include/asm-vax/mm/task.h,v retrieving revision 1.2 retrieving revision 1.3 diff -u -r1.2 -r1.3 --- task.h 2001/08/21 20:12:42 1.2 +++ task.h 2001/09/01 12:22:46 1.3 @@ -22,13 +22,13 @@ /* TASK_MMAPMAX is the max space in P0 for the mmap() function , contiguous with TASK_TXTMAX - Its basically the amount of memory you give a process to play with */ -#define TASK_MMAPMAX (32*1024*1024) +#define TASK_MMAPMAX (24*1024*1024) /* TASK_STKMAX is the max space for the stack in P1 */ /* Like WSMAX above, the upper limit for this is set by PGD_SPECIAL below. If this * is above 256MB change PGD_SPECIAL */ -#define TASK_STKMAX (8*1024*1024) +#define TASK_STKMAX (16*1024*1024) #define TASK_WSMAX (TASK_TXTMAX+TASK_MMAPMAX) |