You can subscribe to this list here.
| 2002 |
Jan
|
Feb
|
Mar
|
Apr
|
May
(11) |
Jun
(66) |
Jul
(16) |
Aug
(2) |
Sep
(7) |
Oct
(17) |
Nov
(1) |
Dec
(220) |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 2003 |
Jan
(154) |
Feb
(167) |
Mar
(159) |
Apr
(172) |
May
(35) |
Jun
(58) |
Jul
(97) |
Aug
(285) |
Sep
(139) |
Oct
(252) |
Nov
(8) |
Dec
(3) |
| 2004 |
Jan
(13) |
Feb
(159) |
Mar
(136) |
Apr
(33) |
May
(50) |
Jun
(42) |
Jul
(140) |
Aug
(42) |
Sep
(199) |
Oct
(31) |
Nov
(55) |
Dec
|
| 2005 |
Jan
|
Feb
(12) |
Mar
(214) |
Apr
(119) |
May
(21) |
Jun
(2) |
Jul
(127) |
Aug
(10) |
Sep
(3) |
Oct
(24) |
Nov
(1) |
Dec
|
| 2006 |
Jan
|
Feb
|
Mar
|
Apr
(45) |
May
(13) |
Jun
|
Jul
|
Aug
|
Sep
|
Oct
(5) |
Nov
(26) |
Dec
|
| 2007 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
(35) |
Sep
(1) |
Oct
|
Nov
|
Dec
|
|
From: Kenn H. <ke...@us...> - 2005-07-24 21:25:36
|
Update of /cvsroot/linux-vax/kernel-2.5/arch/m68knommu/platform/5272/NETtel In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv22232/arch/m68knommu/platform/5272/NETtel Removed Files: crt0_ram.S Log Message: Merge with 2.6.12 --- crt0_ram.S DELETED --- |
|
From: Kenn H. <ke...@us...> - 2005-07-24 21:25:36
|
Update of /cvsroot/linux-vax/kernel-2.5/arch/m68knommu/platform/5272/CANCam In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv22232/arch/m68knommu/platform/5272/CANCam Removed Files: crt0_ram.S Log Message: Merge with 2.6.12 --- crt0_ram.S DELETED --- |
|
From: Kenn H. <ke...@us...> - 2005-07-24 21:25:35
|
Update of /cvsroot/linux-vax/kernel-2.5/arch/m68knommu/platform/5206e/eLITE In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv22232/arch/m68knommu/platform/5206e/eLITE Removed Files: crt0_ram.S Log Message: Merge with 2.6.12 --- crt0_ram.S DELETED --- |
|
From: Kenn H. <ke...@us...> - 2005-07-24 21:25:35
|
Update of /cvsroot/linux-vax/kernel-2.5/arch/m68knommu/platform/5249/MOTOROLA In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv22232/arch/m68knommu/platform/5249/MOTOROLA Removed Files: crt0_ram.S Log Message: Merge with 2.6.12 --- crt0_ram.S DELETED --- |
|
From: Kenn H. <ke...@us...> - 2005-07-24 21:25:35
|
Update of /cvsroot/linux-vax/kernel-2.5/arch/m68knommu/platform/5206e/MOTOROLA In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv22232/arch/m68knommu/platform/5206e/MOTOROLA Removed Files: crt0_ram.S Log Message: Merge with 2.6.12 --- crt0_ram.S DELETED --- |
|
From: Kenn H. <ke...@us...> - 2005-07-24 21:25:35
|
Update of /cvsroot/linux-vax/kernel-2.5/arch/m68knommu/platform/5206/ARNEWSH In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv22232/arch/m68knommu/platform/5206/ARNEWSH Removed Files: crt0_ram.S Log Message: Merge with 2.6.12 --- crt0_ram.S DELETED --- |
|
From: Kenn H. <ke...@us...> - 2005-07-24 21:25:35
|
Update of /cvsroot/linux-vax/kernel-2.5/arch/arm/mach-ixp4xx In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv22232/arch/arm/mach-ixp4xx Removed Files: prpmc1100-pci.c prpmc1100-setup.c Log Message: Merge with 2.6.12 --- prpmc1100-setup.c DELETED --- --- prpmc1100-pci.c DELETED --- |
|
From: Kenn H. <ke...@us...> - 2005-07-24 21:25:35
|
Update of /cvsroot/linux-vax/kernel-2.5/arch/ia64/sn/include/pci In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv22232/arch/ia64/sn/include/pci Removed Files: pcibus_provider_defs.h pcidev.h Log Message: Merge with 2.6.12 --- pcidev.h DELETED --- --- pcibus_provider_defs.h DELETED --- |
|
From: Kenn H. <ke...@us...> - 2005-07-24 21:25:35
|
Update of /cvsroot/linux-vax/kernel-2.5/arch/arm/mm In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv22232/arch/arm/mm Removed Files: copypage-v4mc.S copypage-xscale.S minicache.c Log Message: Merge with 2.6.12 --- copypage-v4mc.S DELETED --- --- copypage-xscale.S DELETED --- --- minicache.c DELETED --- |
|
From: Kenn H. <ke...@us...> - 2005-07-24 21:25:34
|
Update of /cvsroot/linux-vax/kernel-2.5/arch/arm/configs In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv22232/arch/arm/configs Removed Files: a5k_defconfig Log Message: Merge with 2.6.12 --- a5k_defconfig DELETED --- |
|
From: Kenn H. <ke...@us...> - 2005-07-24 21:25:34
|
Update of /cvsroot/linux-vax/kernel-2.5/Documentation/scsi In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv22232/Documentation/scsi Removed Files: qla2xxx.revision.notes Log Message: Merge with 2.6.12 --- qla2xxx.revision.notes DELETED --- |
|
From: Kenn H. <ke...@us...> - 2005-07-24 21:25:34
|
Update of /cvsroot/linux-vax/kernel-2.5/Documentation/networking In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv22232/Documentation/networking Removed Files: ethertap.txt Log Message: Merge with 2.6.12 --- ethertap.txt DELETED --- |
|
From: Kenn H. <ke...@us...> - 2005-07-24 21:25:33
|
Update of /cvsroot/linux-vax/kernel-2.5/Documentation/i2c In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv22232/Documentation/i2c Removed Files: i2c-parport Log Message: Merge with 2.6.12 --- i2c-parport DELETED --- |
|
From: Kenn H. <ke...@us...> - 2005-07-24 21:25:33
|
Update of /cvsroot/linux-vax/kernel-2.5/Documentation/DocBook In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv22232/Documentation/DocBook Removed Files: tulip-user.tmpl via-audio.tmpl Log Message: Merge with 2.6.12 --- tulip-user.tmpl DELETED --- --- via-audio.tmpl DELETED --- |
|
From: Kenn H. <ke...@us...> - 2005-07-24 21:25:33
|
Update of /cvsroot/linux-vax/kernel-2.5/Documentation/cdrom In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv22232/Documentation/cdrom Removed Files: mcd Log Message: Merge with 2.6.12 --- mcd DELETED --- |
|
From: Jan-Benedict G. <jb...@us...> - 2005-06-26 13:41:57
|
Update of /cvsroot/linux-vax/kernel-2.5/arch/vax In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv31832/arch/vax Modified Files: Makefile Log Message: - -O1 instead of -O1 probably only needed for 2.95. Index: Makefile =================================================================== RCS file: /cvsroot/linux-vax/kernel-2.5/arch/vax/Makefile,v retrieving revision 1.37 retrieving revision 1.38 diff -u -d -r1.37 -r1.38 --- Makefile 26 Jun 2005 13:40:15 -0000 1.37 +++ Makefile 26 Jun 2005 13:41:48 -0000 1.38 @@ -18,7 +18,8 @@ # Note that this CFLAGS definition will override the definition -# in the top-level Makefile. We want -O1, not -O2. +# in the top-level Makefile. We want -O1, not -O2. This is probably +# only needed for our old gcc-2.95, but no longer for gcc-4.1. CFLAGS := $(subst -O2,-O1,$(CFLAGS) ) # These flags are used by the top-level makefile when linking |
|
From: Jan-Benedict G. <jb...@us...> - 2005-06-26 13:40:23
|
Update of /cvsroot/linux-vax/kernel-2.5/arch/vax In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv31132/arch/vax Modified Files: Makefile Log Message: - Remove a blank line. Index: Makefile =================================================================== RCS file: /cvsroot/linux-vax/kernel-2.5/arch/vax/Makefile,v retrieving revision 1.36 retrieving revision 1.37 diff -u -d -r1.36 -r1.37 --- Makefile 20 Apr 2005 10:13:11 -0000 1.36 +++ Makefile 26 Jun 2005 13:40:15 -0000 1.37 @@ -21,7 +21,6 @@ # in the top-level Makefile. We want -O1, not -O2. CFLAGS := $(subst -O2,-O1,$(CFLAGS) ) - # These flags are used by the top-level makefile when linking # the kernel LDFLAGS_vmlinux=-N -nostartfiles -nostdlib -noinhibit-exec -warn-once \ |
|
From: Jan-Benedict G. <jb...@us...> - 2005-05-31 14:03:30
|
Update of /cvsroot/linux-vax/kernel-2.5/drivers/vax/bus In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv8195 Modified Files: vsbus.c Log Message: - Use the same thing for {,un}registering interrupt handler functions. This actually allows to unregister and re-register later on (used by eg. network drivers on a close/open cycle). Index: vsbus.c =================================================================== RCS file: /cvsroot/linux-vax/kernel-2.5/drivers/vax/bus/vsbus.c,v retrieving revision 1.5 retrieving revision 1.6 diff -u -d -r1.5 -r1.6 --- vsbus.c 25 Apr 2005 22:25:06 -0000 1.5 +++ vsbus.c 31 May 2005 14:03:18 -0000 1.6 @@ -169,7 +169,7 @@ vsbus_disable_int(vsbus_irqindex); irq = vsbus_irqindex_to_irq(info->irqindex); - free_irq(irq, info->dev_id); + free_irq(irq, info); /* FIXME: do we need to synchronize with this interrupt? */ |
|
From: Kenn H. <ke...@us...> - 2005-05-29 12:11:07
|
Update of /cvsroot/linux-vax/kernel-2.5/arch/vax/kernel In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv6348 Modified Files: process.c Log Message: Fix kernel_thread(). I'm surprised it ever worked! Firstly, GCC 4.1 doesn't seem to notice the "clobbers AP" in the asm() block, and tries to use the modified AP to get fn and arg in the call to kernel_thread_exit(). Secondly, there is no guarantee that the location AP points to will still contain the argument list (CLONE_VM turns off copy-on-write, so if the parent runs first and overwrites that portion of memory, AP will point to garbage). For some reason, this never occurred with the old toolchain, but happens with our GGC4.1 toolchain. So, we pull fn and arg into R2 and R3, and do all the work within the asm() block. Index: process.c =================================================================== RCS file: /cvsroot/linux-vax/kernel-2.5/arch/vax/kernel/process.c,v retrieving revision 1.29 retrieving revision 1.30 diff -u -d -r1.29 -r1.30 --- process.c 9 May 2005 20:34:28 -0000 1.29 +++ process.c 29 May 2005 12:10:54 -0000 1.30 @@ -174,19 +174,14 @@ */ } -static ATTRIB_NORET void kernel_thread_exit(int exitcode) -{ - __chmk(__NR_exit); - while (1) - /* Keep GCC happy */; -} - /* * Create a kernel thread */ pid_t kernel_thread(int (*fn)(void *), void *arg, unsigned long flags) { asm( + " movl %2,%%r2 \n" + " movl %3,%%r3 \n" " clrl -(%%sp) \n" " movl %0, -(%%sp) \n" " pushl $0x2 \n" @@ -196,20 +191,20 @@ " beql child \n" " ret \n" "child: \n" + " pushl %%r3 \n" + " calls $1, *%%r2 \n" + " pushl %%r0 \n" + " movl %%sp, %%ap \n" + " chmk %4 \n" : /* no outputs */ - : "g"(flags | CLONE_VM), "g"(__NR_clone) - : "r0", "ap"); + : "g"(flags | CLONE_VM), "g"(__NR_clone), "g"(fn), "g"(arg), "g"(__NR_exit) + : "r0", "r2", "r3"); /* - * In child. At this point SP points to the very top of - * our kernel stack, so we cannot pop anything off. That - * means that we can never return from here. + * We never actually get here - there is a RET embedded above which + * returns in the parent, and the child exits with the CHMK __NR_exit */ -#ifdef VAX_PROCESS_DEBUG - printk("kernel_thread: task %p, pid %d, calling thread function at %08lx\n", - current, current->pid, (unsigned long) fn); -#endif - kernel_thread_exit(fn(arg)); + return 0; } int sys_clone(unsigned long clone_flags, unsigned long newsp, struct pt_regs *regs) |
|
From: Kenn H. <ke...@us...> - 2005-05-25 23:06:04
|
Update of /cvsroot/linux-vax/kernel-2.5/arch/vax/lib In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv32049 Added Files: udiv.S urem.S Removed Files: udiv.c urem.c Log Message: Use NetBSD's implementations of __udiv and __urem --- urem.c DELETED --- --- NEW FILE: urem.S --- /* $NetBSD: urem.S,v 1.3 2003/08/07 16:32:24 agc Exp $ */ /*- * Copyright (c) 1991 The Regents of the University of California. * All rights reserved. * * This code is derived from software contributed to Berkeley by * Donn Seeley at UUNET Technologies, Inc. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * 1. Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * 3. Neither the name of the University nor the names of its contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * * @(#)urem.s 5.6 (Berkeley) 4/15/91 */ /* * Modified for Linux/VAX - Kenn Humborg 2005-05-26 */ #include <linux/linkage.h> /* * Unsigned modulus, PCC flavor. * urem() takes an ordinary dividend/divisor pair; */ #define DIVIDEND 4(%ap) #define DIVISOR 8(%ap) ENTRY(__urem) .word 0x02 # save R2 movl 8(%ap),%r2 jlss Leasy # big divisor: settle by comparison movl 4(%ap),%r0 jlss Lhard # big dividend: need extended division divl3 %r2,%r0,%r1 # small divisor and dividend: signed modulus mull2 %r2,%r1 subl2 %r1,%r0 ret Lhard: clrl %r1 ediv %r2,%r0,%r1,%r0 ret Leasy: subl3 %r2,DIVIDEND,%r0 jcc Ldifference # if divisor goes in once, return difference movl DIVIDEND,%r0 # if divisor is bigger, return dividend Ldifference: ret --- NEW FILE: udiv.S --- /* $NetBSD: udiv.S,v 1.3 2003/08/07 16:32:24 agc Exp $ */ /*- * Copyright (c) 1991 The Regents of the University of California. * All rights reserved. * * This code is derived from software contributed to Berkeley by * Donn Seeley at UUNET Technologies, Inc. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * 1. Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * 3. Neither the name of the University nor the names of its contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * * @(#)udiv.s 5.6 (Berkeley) 4/15/91 */ /* * Modified for Linux/VAX - Kenn Humborg 2005-05-26 */ #include <linux/linkage.h> /* * Unsigned division, PCC flavor. * udiv() takes an ordinary dividend/divisor pair; */ #define DIVIDEND 4(%ap) #define DIVISOR 8(%ap) ENTRY(__udiv) .word 0x02 # save R2 movl DIVISOR,%r2 jlss Leasy # big divisor: settle by comparison movl DIVIDEND,%r0 jlss Lhard # big dividend: extended division divl2 %r2,%r0 # small divisor and dividend: signed division ret Lhard: clrl %r1 ediv %r2,%r0,%r0,%r1 ret Leasy: cmpl DIVIDEND,%r2 jgequ Lone # if dividend is as big or bigger, return 1 clrl %r0 # else return 0 ret Lone: movl $1,%r0 ret --- udiv.c DELETED --- |
|
From: Kenn H. <ke...@us...> - 2005-05-24 21:43:40
|
Update of /cvsroot/linux-vax/kernel-2.5/arch/vax/boot In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv26473 Modified Files: head.S Log Message: Fix a compile error with our 'official' toolchain due to a lone single quote Index: head.S =================================================================== RCS file: /cvsroot/linux-vax/kernel-2.5/arch/vax/boot/head.S,v retrieving revision 1.21 retrieving revision 1.22 diff -u -d -r1.21 -r1.22 --- head.S 24 May 2005 08:09:50 -0000 1.21 +++ head.S 24 May 2005 21:43:30 -0000 1.22 @@ -168,7 +168,7 @@ movl boot_r11, %r11 movc3 $RPB_SIZE, (%r11), boot_rpb - # Execute mv->pre_vm_init() if it's needed + # Execute mv->pre_vm_init() if it is needed movl mv, %r10 tstl MV_PRE_VM_INIT(%r10) beql no_pre_vm_init |
|
From: Jan-Benedict G. <jb...@us...> - 2005-05-24 08:09:59
|
Update of /cvsroot/linux-vax/kernel-2.5/arch/vax/boot In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv12712 Modified Files: head.S Log Message: - Sort out insn and arguments. Index: head.S =================================================================== RCS file: /cvsroot/linux-vax/kernel-2.5/arch/vax/boot/head.S,v retrieving revision 1.20 retrieving revision 1.21 diff -u -d -r1.20 -r1.21 --- head.S 15 May 2005 14:32:36 -0000 1.20 +++ head.S 24 May 2005 08:09:50 -0000 1.21 @@ -44,59 +44,60 @@ addl2 $PAGE_OFFSET,%r5 # we will only access this when MAPEN=1 movl %r5,kernel_cmd_line - # put the sp somewhere safe, over our bootblock in fact - moval start, %r5 - subl2 $0x200, %r5 - movl %r5,%sp + # Put the sp somewhere safe, over our bootblock in fact + moval start, %r5 + subl2 $0x200, %r5 + movl %r5,%sp # Debug code: -# movzbl $0x42,%r2 -# jsb 0x20040058 +# movzbl $0x42, %r2 +# jsb 0x20040058 - pushal start - calls $1, idcpu # Identify CPU and put the mv ptr into mv - movl %r0, mv + pushal start + calls $1, idcpu # Identify this CPU and... + movl %r0, mv # ...put the returned mv ptr into mv. - # now fix up the machine vector entries. (They currently contain + # Now fix up the machine vector entries. (They currently contain # pointers to virtual addresses in S0 space. We need to change # the pointers to the functions we use before VM init to point # into the newly-loaded kernel image.) - movl mv, %r10 - moval start, %r8 + movl mv, %r10 + moval start, %r8 - subl2 $PAGE_OFFSET+KERNEL_START_PHYS, %r8 - addl2 %r8, MV_PRE_VM_PUTCHAR(%r10) - addl2 %r8, MV_PRE_VM_GETCHAR(%r10) - addl2 %r8, MV_CPU_TYPE_STR(%r10) + subl2 $PAGE_OFFSET+KERNEL_START_PHYS, %r8 + addl2 %r8, MV_PRE_VM_PUTCHAR(%r10) + addl2 %r8, MV_PRE_VM_GETCHAR(%r10) + addl2 %r8, MV_CPU_TYPE_STR(%r10) - calls $0, boot_crlf - calls $0, boot_crlf + calls $0, boot_crlf + calls $0, boot_crlf # print the cpu type - calls $0, boot_print_cpu_id + calls $0, boot_print_cpu_id # print first line of debug diagnostics pushab msg_loaded # ascii string - calls $1, boot_printstr - pushal start # where we were loaded - calls $1, boot_printint - calls $0, boot_crlf - pushab msg_registers # ascii string - calls $1, boot_printstr - calls $0, boot_printspace - movl boot_r11, %r11 - pushl %r11 # r11 (holds the rpb base address, usually 0x0) - calls $1, boot_printint - calls $0, boot_printspace - pushl 48(%r11) # saved r5 in RPB (argument to BOOT command) - calls $1, boot_printint - calls $0, boot_printspace - pushl %ap # argument pointer (struct arglist) - calls $1, boot_printint - calls $0, boot_printspace - pushl %sp # stack pointer - calls $1, boot_printint - calls $0, boot_crlf + calls $1, boot_printstr + pushal start # where we were loaded + calls $1, boot_printint + calls $0, boot_crlf + pushab msg_registers # ascii string + calls $1, boot_printstr + calls $0, boot_printspace + movl boot_r11, %r11 + pushl %r11 # r11 (holds the rpb base address, usually 0x0) + calls $1, boot_printint + calls $0, boot_printspace + # FIXME: magic offset -> asmoffsets.h + pushl 48(%r11) # saved r5 in RPB (argument to BOOT command) + calls $1, boot_printint + calls $0, boot_printspace + pushl %ap # argument pointer (struct arglist) + calls $1, boot_printint + calls $0, boot_printspace + pushl %sp # stack pointer + calls $1, boot_printint + calls $0, boot_crlf # Save off the current machine vector address in boot_mv, because it # lies in the .bss section and it will get clobbered real soon... @@ -104,75 +105,75 @@ # larger than about 950k, as the relocation code clobbers it, along # with every thing else poking its head above $KERNEL_START_PHYS, # like the entire .bss section. - movl mv, boot_mv + movl mv, boot_mv # copy the loaded image higher up in physical RAM - movl $__bss_start, %r6 - subl2 $start, %r6 # byte count to r6 - pushl %r6 - pushab start # source address - pushl $KERNEL_START_PHYS # dest address - calls $3, boot_memmove + movl $__bss_start, %r6 + subl2 $start, %r6 # byte count to r6 + pushl %r6 + pushab start # source address + pushl $KERNEL_START_PHYS # dest address + calls $3, boot_memmove - # Next we have to fill the .bss section will zeros. We do it now + # Next we have to fill the .bss section with zeros. We do it now # instead of when we are preparing the loadable image because it # makes the image smaller. - subl3 $__bss_start, $_end, %r6 # length of .bss to r6 + subl3 $__bss_start, $_end, %r6 # length of .bss to r6 - subl3 $start, $__bss_start, %r7 # offset of .bss to r7 - addl2 $KERNEL_START_PHYS, %r7 # phys address of .bss start now in r7 + subl3 $start, $__bss_start, %r7 # offset of .bss to r7 + addl2 $KERNEL_START_PHYS, %r7 # phys address of .bss start now in r7 - pushl %r6 - pushl %r7 - calls $2, boot_memzero - addl2 %r6, %r7 + pushl %r6 + pushl %r7 + calls $2, boot_memzero + addl2 %r6, %r7 - decl %r7 - movl %r7, %r9 # save phys addr of last byte of kernel + decl %r7 + movl %r7, %r9 # save phys addr of last byte of kernel # in R9. We will need this later. # Need to know the distance we have moved the kernel, so that we can # fix up the machine vector pointer after we jump - moval start, %r2 - subl3 %r2, $KERNEL_START_PHYS, %r2 # r2 = START_PHYS - load_address + moval start, %r2 + subl3 %r2, $KERNEL_START_PHYS, %r2 # r2 = START_PHYS - load_address - # calculate the position after jump to reloc - movl $KERNEL_START_PHYS, %r8 - addl2 $reloc, %r8 - subl2 $start, %r8 - jmp (%r8) + # Calculate the position after jump to reloc + movl $KERNEL_START_PHYS, %r8 + addl2 $reloc, %r8 + subl2 $start, %r8 + jmp (%r8) halt reloc: - # made it, note that sp is still down there - # halt + # Fix up the machine vector pointer (by restoring it from boot_mv + # and adding in the distance that the kernel was re-located). + addl3 %r2, boot_mv, mv + movl mv, %r10 - # fix up the machine vector pointer (by restoring it from boot_mv and - # adding in the distance that the kernel was re-located) - addl3 %r2, boot_mv, mv - movl mv, %r10 + # ...as well as all pre-VM mv function pointers + addl2 %r2, MV_PRE_VM_PUTCHAR(%r10) + addl2 %r2, MV_PRE_VM_GETCHAR(%r10) + addl2 %r2, MV_CPU_TYPE_STR(%r10) - #and the pre-vm i/o functions - addl2 %r2, MV_PRE_VM_PUTCHAR(%r10) - addl2 %r2, MV_PRE_VM_GETCHAR(%r10) - addl2 %r2, MV_CPU_TYPE_STR(%r10) + # Print 'relocated at phys addr xxxxx' + pushab msg_relocated + calls $1, boot_printstr + pushal reloc + calls $1, boot_printint + calls $0, boot_crlf + calls $0, boot_crlf - pushab msg_relocated # debugging line no 2 - calls $1, boot_printstr - pushal reloc # where we are now (physical) - calls $1, boot_printint - calls $0, boot_crlf - calls $0, boot_crlf + # Save RPB before it gets obliterated + movl boot_r11, %r11 + movc3 $RPB_SIZE, (%r11), boot_rpb - # save RPB before it gets obliterated - movl boot_r11, %r11 - movc3 $RPB_SIZE, (%r11), boot_rpb - movl mv, %r10 - tstl MV_PRE_VM_INIT(%r10) - beql no_pre_vm_init - subl2 $PAGE_OFFSET, MV_PRE_VM_INIT(%r10) - calls $0, *MV_PRE_VM_INIT(%r10) + # Execute mv->pre_vm_init() if it's needed + movl mv, %r10 + tstl MV_PRE_VM_INIT(%r10) + beql no_pre_vm_init + subl2 $PAGE_OFFSET, MV_PRE_VM_INIT(%r10) + calls $0, *MV_PRE_VM_INIT(%r10) no_pre_vm_init: # set up the system page table for all of physical memory. @@ -193,22 +194,22 @@ # longword aligned. # # Correction, for 3100/85 it needs to be page aligned. - addl3 $0x200, %r9, %r5 # R9 holds kernel end - bicl2 $0x1ff, %r5 # R5 is R9 rounded up to page aligned - moval swapper_pg_dir, %r0 + addl3 $0x200, %r9, %r5 # R9 holds kernel end + bicl2 $0x1ff, %r5 # R5 is R9 rounded up to page aligned + moval swapper_pg_dir, %r0 # This is (pgd_t)swapper_pg_dir[2].br - movl %r5, ASM_SBR_OFFSET(%r0) # save address of base of system page table + movl %r5, ASM_SBR_OFFSET(%r0) # save address of base of system page table # Fill in the main part of the SPT (the entries that map physical # memory) - movl $0, %r6 # pfn number - movl RPB_PFNCNT_OFFSET(%r11), %r7 # pfncnt from rpb. + movl $0, %r6 # pfn number + movl RPB_PFNCNT_OFFSET(%r11), %r7 # pfncnt from rpb. sysfill: - bisl3 $_PAGE_VALID + _PAGE_UW, %r6, (%r5)+ + bisl3 $_PAGE_VALID + _PAGE_UW, %r6, (%r5)+ # set PFN, VALID bit and protection UW in PTE - incl %r6 # next PFN - cmpl %r6, %r7 # one page of PTE Table -> 128 Pages of PTES - blssu sysfill + incl %r6 # next PFN + cmpl %r6, %r7 # one page of PTE Table -> 128 Pages of PTES + blssu sysfill # We need to align the IOMAP/VMALLOC tables (well at least the VMALLOC # tables, but no harm.. we will waste the space here or later) on a Linux @@ -217,65 +218,65 @@ # is, so round up r7 to the next page, add 7 then and with 7, # check with r6 if the same we are aligned if not put zeros into the # PTE until we are aligned. - D.A. June 2001 (this stuff is bitchin..) - addl2 $0x7, %r7 - bicl2 $7, %r7 - cmpl %r6, %r7 - beql nozerofl + addl2 $0x7, %r7 + bicl2 $7, %r7 + cmpl %r6, %r7 + beql nozerofl zerofl: - movl $0x00000000, (%r5)+ - incl %r6 # next PFN - cmpl %r6, %r7 # one page of PTE Table -> 128 Pages of PTES - blssu zerofl + movl $0x00000000, (%r5)+ + incl %r6 # next PFN + cmpl %r6, %r7 # one page of PTE Table -> 128 Pages of PTES + blssu zerofl nozerofl: # Zero out the spare part of the SPT (the entries that will be used # to map I/O space and provide virtual addrs for vmalloc() later) - movl %r5, iomap_base - addl2 $SPT_HWPTES_IOMAP+0, %r7 + movl %r5, iomap_base + addl2 $SPT_HWPTES_IOMAP+0, %r7 sparef1: - movl $0x00000000, (%r5)+ - incl %r6 # next PFN - cmpl %r6, %r7 # one page of PTE Table -> 128 Pages of PTES - blssu sparef1 + movl $0x00000000, (%r5)+ + incl %r6 # next PFN + cmpl %r6, %r7 # one page of PTE Table -> 128 Pages of PTES + blssu sparef1 - movl %r5, vmallocmap_base - addl2 $SPT_HWPTES_VMALLOC, %r7 + movl %r5, vmallocmap_base + addl2 $SPT_HWPTES_VMALLOC, %r7 sparefill2: - movl $0x00000000, (%r5)+ - incl %r6 # next PFN - cmpl %r6, %r7 # one page of PTE Table -> 128 Pages of PTES - blssu sparefill2 + movl $0x00000000, (%r5)+ + incl %r6 # next PFN + cmpl %r6, %r7 # one page of PTE Table -> 128 Pages of PTES + blssu sparefill2 - # system page table is setup. Save SPT length and zap processor registers - moval swapper_pg_dir, %r0 - movl %r7, ASM_SLR_OFFSET(%r0) - mtpr ASM_SBR_OFFSET(%r0), $PR_SBR # set SBR - mtpr %r7, $PR_SLR # set SLR + # System page table is setup. Save SPT length and zap processor registers + moval swapper_pg_dir, %r0 + movl %r7, ASM_SLR_OFFSET(%r0) + mtpr ASM_SBR_OFFSET(%r0), $PR_SBR # set SBR + mtpr %r7, $PR_SLR # set SLR # PCBB - # set up the process control block. Some machines need a valid PCB for - # mm to work properly. - # We should use the pcb for the init task for this, but since this bit + # Set up the process control block. Some machines need a valid PCB for + # MM to work properly. + # We should use the PCB for the init task for this, but since this bit # should be done in C, rather than hardwiring offsets, I have put a fake # PCB in a throwaway .init section below. - moval fake_pcb, %r9 - movl $PAGE_OFFSET, 88(%r9) # p1br - mtpr %r9, $PR_PCBB + moval fake_pcb, %r9 + movl $PAGE_OFFSET, 88(%r9) # p1br FIXME: magic offset + mtpr %r9, $PR_PCBB - # no need to TBIA - memory mapping not enabled + # No need to TBIA - memory mapping not enabled # ready to turn on VM - moval msg_starting_vm, -(%sp) - calls $1, boot_printstr - calls $0, boot_crlf - calls $0, VAX_start_mm # do that ole black magic + pushab msg_starting_vm + calls $1, boot_printstr + calls $0, boot_crlf + calls $0, VAX_start_mm # do that ole black magic # made it - moval swapper_pg_dir, %r0 - addl2 $PAGE_OFFSET, ASM_SBR_OFFSET(%r0) # fix up our reference to the system page tbl. - addl2 $PAGE_OFFSET, iomap_base # ... and the IOMAP PTEs - addl2 $PAGE_OFFSET, vmallocmap_base # ... and the IOMAP PTEs - addl2 $PAGE_OFFSET, mv # fix up machine vector pointer - movl mv, %r10 - addl2 $PAGE_OFFSET, MV_CPU_TYPE_STR(%r10) + moval swapper_pg_dir, %r0 + addl2 $PAGE_OFFSET, ASM_SBR_OFFSET(%r0) # fix up our reference to the system page tbl. + addl2 $PAGE_OFFSET, iomap_base # ... and the IOMAP PTEs + addl2 $PAGE_OFFSET, vmallocmap_base # ... and the IOMAP PTEs + addl2 $PAGE_OFFSET, mv # fix up machine vector pointer + movl mv, %r10 + addl2 $PAGE_OFFSET, MV_CPU_TYPE_STR(%r10) # relocate the interrupt stack. The C code will turn the # last page of the interrupt stack into a read-only guard @@ -284,26 +285,26 @@ # FIXME SMP: This needs to select the right stack for this CPU # rather than hard-coding the first one. Looks like we need to # determine our CPU_ID before this point... - moval interrupt_stack, %r0 - addl2 $INT_STACK_SIZE, %r0 - movl %r0, %sp + moval interrupt_stack, %r0 + addl2 $INT_STACK_SIZE, %r0 + movl %r0, %sp # Now that we have ISP (the interrupt stack pointer) sorted, # we need to move over to working on the kernel stack. We do this # by loading KSP with the top of the kernel stack for the 'init task' # and faking a saved PC/PSL on the interrupt stack which we then # 'return' to - moval init_thread_union, %r0 - addl2 $8192, %r0 # taken from <linux/sched.h> - mtpr %r0,$PR_KSP + moval init_thread_union, %r0 + addl2 $8192, %r0 # FIXME: taken from <linux/sched.h> + mtpr %r0,$PR_KSP - pushl $0x001f0000 # IS=0, accmode=prevmode=K, IPL=31 - pushab now_on_kstack + pushl $0x001f0000 # IS=0, accmode=prevmode=K, IPL=31 + pushab now_on_kstack rei halt now_on_kstack: - calls $0, vax_start_kernel # should never return + calls $0, vax_start_kernel # should never return halt msg_loaded: @@ -321,7 +322,7 @@ # -# memory locations. +# Memory locations. # # iomap_base holds the physical address of the first PTE in the @@ -346,19 +347,18 @@ .globl boot_scb boot_scb: .int 0x00000000 -# # This is here because we need a safe place to store it as we # relocate around in memory. boot_mv: .int 0x00000000 -# our dummy pcb +# Our dummy PCB __INITDATA .globl fake_pcb fake_pcb: .fill 24,4,0x00000000 -# and a pointer to our initial command line +# ...and a pointer to our initial command line .globl kernel_cmd_line kernel_cmd_line: .int 0x00000000 |
|
From: Jan-Benedict G. <jb...@us...> - 2005-05-24 07:57:31
|
Update of /cvsroot/linux-vax/kernel-2.5/arch/vax/boot In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv9947 Modified Files: startup.c Log Message: - The VAX/Linux banner is no longer a global one. - Fresh up comments; might need some contentual refresh, though. Index: startup.c =================================================================== RCS file: /cvsroot/linux-vax/kernel-2.5/arch/vax/boot/startup.c,v retrieving revision 1.9 retrieving revision 1.10 diff -u -d -r1.9 -r1.10 --- startup.c 16 Oct 2004 13:02:35 -0000 1.9 +++ startup.c 24 May 2005 07:57:23 -0000 1.10 @@ -11,34 +11,34 @@ extern unsigned long int boot_ap; /* argument pointer */ extern unsigned long int boot_r11; /* rpb pointer */ extern unsigned long int boot_scb; /* scb pointer */ -extern unsigned long int iomap_base; +extern unsigned long int iomap_base; /* head.S copies the RPB into this structure */ struct rpb_struct boot_rpb; -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 */ extern void enable_early_printk(void); -/* This is a transitionary function. When things are finally sorted +/* + * This is a transitionary function. When things are finally sorted * the only tasks this function will perform will relate to the interaction * with VMB and other stuff that needs to go on early before we start_kernel() - * like patchable control store, memory bitmap creation on non-ROM based - * VAXen. + * like patchable control store, memory bitmap creation on non-ROM based + * VAXen. * At present its used for testing the early parts of the kernel startup. * The other main thing it does is load the rpb and scb global variables, - * and switch on basic paging. The main paging setup is done later. - * + * and switch on basic paging. The main paging setup is done later. + * * ok ive changed my mind. We turn on MM in the asm before we hit C code * (keeps stacks simpler) just like the i386, with a default 8mb system - * page table setup (with a 1:1 mapping of system space. - * - * Things that are temporary have a habit of becoming permanent. + * page table setup (with a 1:1 mapping of system space. + * + * Things that are temporary have a habit of becoming permanent. * I've renamed from tmp_start_kernel to vax_start_kernel, as convenient - * bit of arch-specific C code before starting the main start_kernel - * - * atp aug 2001 - This is now permanent, and has been renamed to startup.c + * bit of arch-specific C code before starting the main start_kernel + * + * atp aug 2001 - This is now permanent, and has been renamed to startup.c */ #define IOMAP_START (PAGE_OFFSET+((iomap_base-swapper_pg_dir[2].br)<<(PAGELET_SHIFT-2))) @@ -59,7 +59,7 @@ enable_early_printk(); #endif - printk(vax_linux_banner); + printk(KERN_INFO "Linux/VAX <lin...@mi...>\n"); #ifdef __SMP__ { @@ -87,7 +87,7 @@ printk("VM: vmalloc from 0x%lx to 0x%lx\n", VMALLOC_START, VMALLOC_END); printk("VM: ptemap from 0x%lx to 0x%lx for %d processes\n", TASKPTE_START, TASKPTE_END, TASK_MAXUPRC); - printk("calling start_kernel...\n\n"); + printk("Calling start_kernel()...\n\n"); start_kernel(); } |
|
From: Jan-Benedict G. <jb...@us...> - 2005-05-24 07:55:22
|
Update of /cvsroot/linux-vax/kernel-2.5/arch/vax/kernel In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv9758 Modified Files: setup.c Log Message: - Both printk()s should look the same. Index: setup.c =================================================================== RCS file: /cvsroot/linux-vax/kernel-2.5/arch/vax/kernel/setup.c,v retrieving revision 1.19 retrieving revision 1.20 diff -u -d -r1.19 -r1.20 --- setup.c 25 Apr 2005 22:25:05 -0000 1.19 +++ setup.c 24 May 2005 07:55:13 -0000 1.20 @@ -155,7 +155,7 @@ region_start = PAGEALIGNUP(__pa(SPT_BASE + SPT_SIZE)); region_len = PAGEALIGNDN((max_pfn << PAGE_SHIFT)) - region_start; - printk("calling free_bootmem(start=%08lx, len=%08lx)\n", + printk("Calling free_bootmem(start=%08lx, len=%08lx)\n", region_start, region_len); free_bootmem(region_start, region_len); |
|
From: Jan-Benedict G. <jb...@us...> - 2005-05-24 02:14:59
|
Update of /cvsroot/linux-vax/kernel-2.5/arch/vax/lib In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv22476 Modified Files: Makefile Added Files: udiv.c urem.c Log Message: - Thanks to Kenn, I found my bad __udiv() function... - __urem() can most probably be done better, though. - Sunrise starts, I'd go to bed. --- NEW FILE: urem.c --- typedef signed int SItype __attribute__ ((mode (SI))); typedef unsigned int USItype __attribute__ ((mode (SI))); typedef signed long long DItype __attribute__ ((mode (DI))); typedef unsigned long long UDItype __attribute__ ((mode (DI))); /* * This could probably be done better, but without clobbering r[2-4], gcc * re-used the MSB longword of the dividend, most probably because I * haven't told him correctly that this is a DItype... * * Also, keep an eye on where 'ret' gets allocated to. We want to keep * r0 unsused up to this point so gcc will schedult r0 for output which * will save another MOVL. */ USItype __urem (USItype dividend, USItype divisor) { USItype ret; USItype quotient; __asm__ ( " movl %3, %%r2 \n" /* r[23] = dividend */ " clrl %%r3 \n" /* */ " movl %2, %%r4 \n" /* r4 = divisor */ " ediv %%r4, %%r2, %1, %0 \n" /* %0 = dividend % divisor */ : "=g" (ret), "=g" (quotient) : "g" (divisor), "g" (dividend) : "r2", "r3", "r4"); return ret; } --- NEW FILE: udiv.c --- typedef signed int SItype __attribute__ ((mode (SI))); typedef unsigned int USItype __attribute__ ((mode (SI))); USItype __udiv (USItype dividend, USItype divisor) { USItype ret; __asm__ ( " divl3 %2, %1, %0 \n" : "=g" (ret) : "g" (dividend), "g" (divisor)); return ret; } Index: Makefile =================================================================== RCS file: /cvsroot/linux-vax/kernel-2.5/arch/vax/lib/Makefile,v retrieving revision 1.8 retrieving revision 1.9 diff -u -d -r1.8 -r1.9 --- Makefile 13 Oct 2003 01:07:26 -0000 1.8 +++ Makefile 24 May 2005 02:14:36 -0000 1.9 @@ -2,6 +2,7 @@ # Makefile for the linux kernel. # -lib-y := string.o negdi.o checksum.o lshrdi3.o strncpy_user.o \ - copy_tofrom_user.o strnlen_user.o clear_user.o +lib-y := string.o negdi.o checksum.o lshrdi3.o strncpy_user.o \ + copy_tofrom_user.o strnlen_user.o clear_user.o \ + udiv.o urem.o |