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: Dave A. <ai...@us...> - 2003-06-10 01:14:51
|
Update of /cvsroot/linux-vax/kernel-2.4/arch/sparc/mm In directory sc8-pr-cvs1:/tmp/cvs-serv7538/arch/sparc/mm Modified Files: extable.c fault.c init.c Log Message: DA: sync with Marcelo 2.4.17 Index: extable.c =================================================================== RCS file: /cvsroot/linux-vax/kernel-2.4/arch/sparc/mm/extable.c,v retrieving revision 1.2 retrieving revision 1.3 diff -u -r1.2 -r1.3 --- extable.c 10 Apr 2002 15:17:43 -0000 1.2 +++ extable.c 10 Jun 2003 01:13:17 -0000 1.3 @@ -11,35 +11,49 @@ static unsigned long search_one_table(const struct exception_table_entry *start, - const struct exception_table_entry *last, + const struct exception_table_entry *end, unsigned long value, unsigned long *g2) { - const struct exception_table_entry *first = start; - const struct exception_table_entry *mid; - long diff = 0; - while (first <= last) { - mid = (last - first) / 2 + first; - diff = mid->insn - value; - if (diff == 0) { - if (!mid->fixup) { - *g2 = 0; - return (mid + 1)->fixup; - } else - return mid->fixup; - } else if (diff < 0) - first = mid+1; - else - last = mid-1; - } - if (last->insn < value && !last->fixup && last[1].insn > value) { - *g2 = (value - last->insn)/4; - return last[1].fixup; - } - if (first > start && first[-1].insn < value - && !first[-1].fixup && first->insn < value) { - *g2 = (value - first[-1].insn)/4; - return first->fixup; - } + const struct exception_table_entry *walk; + + /* Single insn entries are encoded as: + * word 1: insn address + * word 2: fixup code address + * + * Range entries are encoded as: + * word 1: first insn address + * word 2: 0 + * word 3: last insn address + 4 bytes + * word 4: fixup code address + * + * See asm/uaccess.h for more details. + */ + + /* 1. Try to find an exact match. */ + for (walk = start; walk <= end; walk++) { + if (walk->fixup == 0) { + /* A range entry, skip both parts. */ + walk++; + continue; + } + + if (walk->insn == value) + return walk->fixup; + } + + /* 2. Try to find a range match. */ + for (walk = start; walk <= (end - 1); walk++) { + if (walk->fixup) + continue; + + if (walk[0].insn <= value && + walk[1].insn > value) { + *g2 = (value - walk[0].insn) / 4; + return walk[1].fixup; + } + walk++; + } + return 0; } Index: fault.c =================================================================== RCS file: /cvsroot/linux-vax/kernel-2.4/arch/sparc/mm/fault.c,v retrieving revision 1.2 retrieving revision 1.3 diff -u -r1.2 -r1.3 --- fault.c 10 Apr 2002 15:17:43 -0000 1.2 +++ fault.c 10 Jun 2003 01:13:17 -0000 1.3 @@ -155,34 +155,47 @@ asmlinkage int lookup_fault(unsigned long pc, unsigned long ret_pc, unsigned long address) { + struct pt_regs regs; unsigned long g2; + unsigned int insn; int i; - unsigned insn; - struct pt_regs regs; - i = search_exception_table (ret_pc, &g2); + i = search_exception_table(ret_pc, &g2); switch (i) { - /* load & store will be handled by fixup */ - case 3: return 3; - /* store will be handled by fixup, load will bump out */ - /* for _to_ macros */ - case 1: insn = (unsigned)pc; if ((insn >> 21) & 1) return 1; break; - /* load will be handled by fixup, store will bump out */ - /* for _from_ macros */ - case 2: insn = (unsigned)pc; - if (!((insn >> 21) & 1) || ((insn>>19)&0x3f) == 15) return 2; + case 3: + /* load & store will be handled by fixup */ + return 3; + + case 1: + /* store will be handled by fixup, load will bump out */ + /* for _to_ macros */ + insn = *((unsigned int *) pc); + if ((insn >> 21) & 1) + return 1; + break; + + case 2: + /* load will be handled by fixup, store will bump out */ + /* for _from_ macros */ + insn = *((unsigned int *) pc); + if (!((insn >> 21) & 1) || ((insn>>19)&0x3f) == 15) + return 2; break; - default: break; - } - memset (®s, 0, sizeof (regs)); + + default: + break; + }; + + memset(®s, 0, sizeof (regs)); regs.pc = pc; regs.npc = pc + 4; - __asm__ __volatile__ ( + __asm__ __volatile__( "rd %%psr, %0\n\t" "nop\n\t" "nop\n\t" "nop\n" : "=r" (regs.psr)); - unhandled_fault (address, current, ®s); + unhandled_fault(address, current, ®s); + /* Not reached */ return 0; } Index: init.c =================================================================== RCS file: /cvsroot/linux-vax/kernel-2.4/arch/sparc/mm/init.c,v retrieving revision 1.2 retrieving revision 1.3 diff -u -r1.2 -r1.3 --- init.c 10 Apr 2002 15:17:43 -0000 1.2 +++ init.c 10 Jun 2003 01:13:17 -0000 1.3 @@ -410,9 +410,6 @@ int datapages = 0; int initpages = 0; int i; -#ifdef CONFIG_BLK_DEV_INITRD - unsigned long addr, last; -#endif highmem_start_page = mem_map + highstart_pfn; |
From: Dave A. <ai...@us...> - 2003-06-10 01:14:51
|
Update of /cvsroot/linux-vax/kernel-2.4/arch/sparc64 In directory sc8-pr-cvs1:/tmp/cvs-serv7538/arch/sparc64 Modified Files: Makefile config.in defconfig Log Message: DA: sync with Marcelo 2.4.17 Index: Makefile =================================================================== RCS file: /cvsroot/linux-vax/kernel-2.4/arch/sparc64/Makefile,v retrieving revision 1.2 retrieving revision 1.3 diff -u -r1.2 -r1.3 --- Makefile 10 Apr 2002 15:21:22 -0000 1.2 +++ Makefile 10 Jun 2003 01:13:18 -0000 1.3 @@ -38,11 +38,6 @@ AS := $(AS) --undeclared-regs endif -# -# Uncomment the first CFLAGS if you are doing kgdb source level -# debugging of the kernel to get the proper debugging information. - -#CFLAGS := $(CFLAGS) -g -pipe -fcall-used-g5 -fcall-used-g7 ifneq ($(NEW_GCC),y) CFLAGS := $(CFLAGS) -pipe -mno-fpu -mtune=ultrasparc -mmedlow \ -ffixed-g4 -fcall-used-g5 -fcall-used-g7 -Wno-sign-compare @@ -51,25 +46,6 @@ -ffixed-g4 -fcall-used-g5 -fcall-used-g7 -Wno-sign-compare \ $(CC_UNDECL) AFLAGS += -m64 -mcpu=ultrasparc $(CC_UNDECL) -endif - -# Uncomment this to get spinlock/rwlock debugging on SMP. -# DEBUG_SPINLOCK = 1 - -ifdef CONFIG_SMP - ifdef DEBUG_SPINLOCK - CFLAGS += -DSPIN_LOCK_DEBUG - AFLAGS += -DSPIN_LOCK_DEBUG - endif -endif - -# Uncomment this to keep track of how often flush_dcache_page -# actually flushes the caches, output via /proc/cpuinfo -# -# DEBUG_DCACHE_FLUSH = 1 -ifdef DEBUG_DCACHE_FLUSH - CFLAGS += -DDCFLUSH_DEBUG - AFLAGS += -DDCFLUSH_DEBUG endif LINKFLAGS = -T arch/sparc64/vmlinux.lds Index: config.in =================================================================== RCS file: /cvsroot/linux-vax/kernel-2.4/arch/sparc64/config.in,v retrieving revision 1.2 retrieving revision 1.3 diff -u -r1.2 -r1.3 --- config.in 10 Apr 2002 15:21:22 -0000 1.2 +++ config.in 10 Jun 2003 01:13:18 -0000 1.3 @@ -31,6 +31,8 @@ # Identify this as a Sparc64 build define_bool CONFIG_SPARC64 y +bool 'Support for hot-pluggable devices' CONFIG_HOTPLUG + # Global things across all Sun machines. define_bool CONFIG_HAVE_DEC_LOCK y define_bool CONFIG_RWSEM_GENERIC_SPINLOCK n @@ -89,7 +91,6 @@ mainmenu_option next_comment comment 'Console drivers' bool 'PROM console' CONFIG_PROM_CONSOLE -bool 'Support Frame buffer devices' CONFIG_FB source drivers/video/Config.in endmenu @@ -191,21 +192,21 @@ if [ "$CONFIG_SCSI_SYM53C8XX_2" != "y" ]; then dep_tristate 'NCR53C8XX SCSI support' CONFIG_SCSI_NCR53C8XX $CONFIG_SCSI dep_tristate 'SYM53C8XX SCSI support' CONFIG_SCSI_SYM53C8XX $CONFIG_SCSI - fi - if [ "$CONFIG_SCSI_NCR53C8XX" != "n" -o "$CONFIG_SCSI_SYM53C8XX" != "n" ]; then - int 'default tagged command queue depth' CONFIG_SCSI_NCR53C8XX_DEFAULT_TAGS 8 - int 'maximum number of queued commands' CONFIG_SCSI_NCR53C8XX_MAX_TAGS 32 - int 'synchronous transfers frequency in MHz' CONFIG_SCSI_NCR53C8XX_SYNC 10 - bool ' enable profiling' CONFIG_SCSI_NCR53C8XX_PROFILE - if [ "$CONFIG_SCSI_SYM53C8XX" != "n" ]; then - bool ' include support for the NCR PQS/PDS SCSI card' CONFIG_SCSI_NCR53C8XX_PQS_PDS + if [ "$CONFIG_SCSI_NCR53C8XX" != "n" -o "$CONFIG_SCSI_SYM53C8XX" != "n" ]; then + int 'default tagged command queue depth' CONFIG_SCSI_NCR53C8XX_DEFAULT_TAGS 8 + int 'maximum number of queued commands' CONFIG_SCSI_NCR53C8XX_MAX_TAGS 32 + int 'synchronous transfers frequency in MHz' CONFIG_SCSI_NCR53C8XX_SYNC 10 + bool ' enable profiling' CONFIG_SCSI_NCR53C8XX_PROFILE + if [ "$CONFIG_SCSI_SYM53C8XX" != "n" ]; then + bool ' include support for the NCR PQS/PDS SCSI card' CONFIG_SCSI_NCR53C8XX_PQS_PDS + fi + if [ "$CONFIG_SCSI_NCR53C8XX_DEFAULT_TAGS" = "0" ]; then + bool ' not allow targets to disconnect' CONFIG_SCSI_NCR53C8XX_NO_DISCONNECT + fi + if [ "$CONFIG_EXPERIMENTAL" = "y" ]; then + bool ' assume boards are SYMBIOS compatible (EXPERIMENTAL)' CONFIG_SCSI_NCR53C8XX_SYMBIOS_COMPAT + fi fi - if [ "$CONFIG_SCSI_NCR53C8XX_DEFAULT_TAGS" = "0" ]; then - bool ' not allow targets to disconnect' CONFIG_SCSI_NCR53C8XX_NO_DISCONNECT - fi - if [ "$CONFIG_EXPERIMENTAL" = "y" ]; then - bool ' assume boards are SYMBIOS compatible (EXPERIMENTAL)' CONFIG_SCSI_NCR53C8XX_SYMBIOS_COMPAT - fi fi dep_tristate 'Qlogic ISP SCSI support' CONFIG_SCSI_QLOGIC_ISP $CONFIG_SCSI dep_tristate 'Qlogic ISP FC SCSI support' CONFIG_SCSI_QLOGIC_FC $CONFIG_SCSI @@ -295,6 +296,13 @@ mainmenu_option next_comment comment 'Kernel hacking' -bool 'Magic SysRq key' CONFIG_MAGIC_SYSRQ -#bool 'ECache flush trap support at ta 0x72' CONFIG_EC_FLUSH_TRAP +bool 'Kernel debugging' CONFIG_DEBUG_KERNEL +if [ "$CONFIG_DEBUG_KERNEL" != "n" ]; then + bool ' Debug memory allocations' CONFIG_DEBUG_SLAB + bool ' Magic SysRq key' CONFIG_MAGIC_SYSRQ + bool ' Spinlock debugging' CONFIG_DEBUG_SPINLOCK + bool ' Verbose BUG() reporting (adds 70K)' CONFIG_DEBUG_BUGVERBOSE + bool ' D-cache flush debugging' CONFIG_DEBUG_DCFLUSH +fi + endmenu Index: defconfig =================================================================== RCS file: /cvsroot/linux-vax/kernel-2.4/arch/sparc64/defconfig,v retrieving revision 1.2 retrieving revision 1.3 diff -u -r1.2 -r1.3 --- defconfig 10 Apr 2002 15:21:22 -0000 1.2 +++ defconfig 10 Jun 2003 01:13:18 -0000 1.3 @@ -22,6 +22,7 @@ CONFIG_VT_CONSOLE=y CONFIG_SMP=y CONFIG_SPARC64=y +CONFIG_HOTPLUG=y CONFIG_HAVE_DEC_LOCK=y # CONFIG_RWSEM_GENERIC_SPINLOCK is not set CONFIG_RWSEM_XCHGADD_ALGORITHM=y @@ -84,7 +85,6 @@ # Console drivers # CONFIG_PROM_CONSOLE=y -CONFIG_FB=y # # Frame-buffer support @@ -158,15 +158,16 @@ # # Multi-device support (RAID and LVM) # -# CONFIG_MD is not set -# CONFIG_BLK_DEV_MD is not set -# CONFIG_MD_LINEAR is not set -# CONFIG_MD_RAID0 is not set -# CONFIG_MD_RAID1 is not set -# CONFIG_MD_RAID5 is not set -# CONFIG_MD_MULTIPATH is not set -# CONFIG_BLK_DEV_LVM is not set -# CONFIG_BLK_DEV_RAM is not set +CONFIG_MD=y +CONFIG_BLK_DEV_MD=m +CONFIG_MD_LINEAR=m +CONFIG_MD_RAID0=m +CONFIG_MD_RAID1=m +CONFIG_MD_RAID5=m +CONFIG_MD_MULTIPATH=m +CONFIG_BLK_DEV_LVM=m +CONFIG_BLK_DEV_RAM=m +CONFIG_BLK_DEV_RAM_SIZE=4096 # CONFIG_BLK_DEV_INITRD is not set # @@ -174,8 +175,6 @@ # CONFIG_PACKET=y CONFIG_PACKET_MMAP=y -CONFIG_NETLINK=y -CONFIG_RTNETLINK=y CONFIG_NETLINK_DEV=y # CONFIG_NETFILTER is not set # CONFIG_FILTER is not set @@ -354,15 +353,11 @@ CONFIG_AIC7XXX_OLD_TCQ_ON_BY_DEFAULT=y CONFIG_AIC7XXX_OLD_CMDS_PER_DEVICE=8 CONFIG_AIC7XXX_OLD_PROC_STATS=y -# CONFIG_SCSI_SYM53C8XX_2 is not set -CONFIG_SCSI_NCR53C8XX=m -CONFIG_SCSI_SYM53C8XX=y -CONFIG_SCSI_NCR53C8XX_DEFAULT_TAGS=4 -CONFIG_SCSI_NCR53C8XX_MAX_TAGS=32 -CONFIG_SCSI_NCR53C8XX_SYNC=40 -# CONFIG_SCSI_NCR53C8XX_PROFILE is not set -# CONFIG_SCSI_NCR53C8XX_PQS_PDS is not set -# CONFIG_SCSI_NCR53C8XX_SYMBIOS_COMPAT is not set +CONFIG_SCSI_SYM53C8XX_2=y +CONFIG_SCSI_SYM53C8XX_DMA_ADDRESSING_MODE=1 +CONFIG_SCSI_SYM53C8XX_DEFAULT_TAGS=16 +CONFIG_SCSI_SYM53C8XX_MAX_TAGS=64 +# CONFIG_SCSI_SYM53C8XX_IOMAPPED is not set CONFIG_SCSI_QLOGIC_ISP=m CONFIG_SCSI_QLOGIC_FC=y CONFIG_SCSI_QLOGIC_FC_FIRMWARE=y @@ -493,6 +488,7 @@ CONFIG_SUNDANCE=m # CONFIG_TLAN is not set CONFIG_VIA_RHINE=m +# CONFIG_VIA_RHINE_MMIO is not set CONFIG_WINBOND_840=m # CONFIG_NET_POCKET is not set @@ -539,7 +535,7 @@ CONFIG_NET_FC=y # CONFIG_IPHASE5526 is not set # CONFIG_RCPCI is not set -# CONFIG_SHAPER is not set +CONFIG_SHAPER=m # # Wan interfaces @@ -861,4 +857,9 @@ # # Kernel hacking # -# CONFIG_MAGIC_SYSRQ is not set +CONFIG_DEBUG_KERNEL=y +# CONFIG_DEBUG_SLAB is not set +CONFIG_MAGIC_SYSRQ=y +# CONFIG_DEBUG_SPINLOCK is not set +# CONFIG_DEBUG_BUGVERBOSE is not set +# CONFIG_DEBUG_DCFLUSH is not set |
From: Dave A. <ai...@us...> - 2003-06-10 01:14:50
|
Update of /cvsroot/linux-vax/kernel-2.4/arch/sparc/kernel In directory sc8-pr-cvs1:/tmp/cvs-serv7538/arch/sparc/kernel Modified Files: process.c smp.c Log Message: DA: sync with Marcelo 2.4.17 Index: process.c =================================================================== RCS file: /cvsroot/linux-vax/kernel-2.4/arch/sparc/kernel/process.c,v retrieving revision 1.2 retrieving revision 1.3 diff -u -r1.2 -r1.3 --- process.c 10 Apr 2002 15:17:42 -0000 1.2 +++ process.c 10 Jun 2003 01:13:17 -0000 1.3 @@ -285,37 +285,29 @@ show_regwindow((struct reg_window *)regs->u_regs[14]); } -#if NOTUSED -void show_thread(struct thread_struct *thread) +void show_trace_task(struct task_struct *tsk) { - int i; + unsigned long pc, fp; + unsigned long task_base = (unsigned long) tsk; + struct reg_window *rw; + int count = 0; - printk("uwinmask: 0x%08lx kregs: 0x%08lx\n", thread->uwinmask, (unsigned long)thread->kregs); - show_regs(thread->kregs); - printk("ksp: 0x%08lx kpc: 0x%08lx\n", thread->ksp, thread->kpc); - printk("kpsr: 0x%08lx kwim: 0x%08lx\n", thread->kpsr, thread->kwim); - printk("fork_kpsr: 0x%08lx fork_kwim: 0x%08lx\n", thread->fork_kpsr, thread->fork_kwim); + if (!tsk) + return; - for (i = 0; i < NSWINS; i++) { - if (!thread->rwbuf_stkptrs[i]) - continue; - printk("reg_window[%d]:\n", i); - printk("stack ptr: 0x%08lx\n", thread->rwbuf_stkptrs[i]); - show_regwindow(&thread->reg_window[i]); - } - printk("w_saved: 0x%08lx\n", thread->w_saved); - - /* XXX missing: float_regs */ - printk("fsr: 0x%08lx fpqdepth: 0x%08lx\n", thread->fsr, thread->fpqdepth); - /* XXX missing: fpqueue */ - - printk("flags: 0x%08lx current_ds: 0x%08lx\n", thread->flags, thread->current_ds.seg); - - show_regwindow((struct reg_window *)thread->ksp); - - /* XXX missing: core_exec */ + fp = tsk->thread.ksp; + do { + /* Bogus frame pointer? */ + if (fp < (task_base + sizeof(struct task_struct)) || + fp >= (task_base + (PAGE_SIZE << 1))) + break; + rw = (struct reg_window *) fp; + pc = rw->ins[7]; + printk("[%08lx] ", pc); + fp = rw->ins[6]; + } while (++count < 16); + printk("\n"); } -#endif /* * Free current thread data structures etc.. Index: smp.c =================================================================== RCS file: /cvsroot/linux-vax/kernel-2.4/arch/sparc/kernel/smp.c,v retrieving revision 1.2 retrieving revision 1.3 diff -u -r1.2 -r1.3 --- smp.c 10 Apr 2002 15:17:42 -0000 1.2 +++ smp.c 10 Jun 2003 01:13:17 -0000 1.3 @@ -18,6 +18,7 @@ #include <linux/mm.h> #include <linux/fs.h> #include <linux/seq_file.h> +#include <linux/cache.h> #include <asm/ptrace.h> #include <asm/atomic.h> @@ -66,7 +67,7 @@ */ /* Kernel spinlock */ -spinlock_t kernel_flag = SPIN_LOCK_UNLOCKED; +spinlock_t kernel_flag __cacheline_aligned_in_smp = SPIN_LOCK_UNLOCKED; /* Used to make bitops atomic */ unsigned char bitops_spinlock = 0; |
From: Dave A. <ai...@us...> - 2003-06-10 01:14:50
|
Update of /cvsroot/linux-vax/kernel-2.4/arch/s390x/kernel In directory sc8-pr-cvs1:/tmp/cvs-serv7538/arch/s390x/kernel Modified Files: smp.c Log Message: DA: sync with Marcelo 2.4.17 Index: smp.c =================================================================== RCS file: /cvsroot/linux-vax/kernel-2.4/arch/s390x/kernel/smp.c,v retrieving revision 1.2 retrieving revision 1.3 diff -u -r1.2 -r1.3 --- smp.c 9 Apr 2002 17:03:18 -0000 1.2 +++ smp.c 10 Jun 2003 01:13:16 -0000 1.3 @@ -29,6 +29,7 @@ #include <linux/smp_lock.h> #include <linux/delay.h> +#include <linux/cache.h> #include <asm/sigp.h> #include <asm/pgalloc.h> @@ -55,7 +56,7 @@ int smp_threads_ready=0; /* Set when the idlers are all forked. */ static atomic_t smp_commenced = ATOMIC_INIT(0); -spinlock_t kernel_flag = SPIN_LOCK_UNLOCKED; +spinlock_t kernel_flag __cacheline_aligned_in_smp = SPIN_LOCK_UNLOCKED; unsigned long cpu_online_map; |
From: Dave A. <ai...@us...> - 2003-06-10 01:14:50
|
Update of /cvsroot/linux-vax/kernel-2.4/arch/sparc In directory sc8-pr-cvs1:/tmp/cvs-serv7538/arch/sparc Modified Files: defconfig Log Message: DA: sync with Marcelo 2.4.17 Index: defconfig =================================================================== RCS file: /cvsroot/linux-vax/kernel-2.4/arch/sparc/defconfig,v retrieving revision 1.2 retrieving revision 1.3 diff -u -r1.2 -r1.3 --- defconfig 10 Apr 2002 15:17:41 -0000 1.2 +++ defconfig 10 Jun 2003 01:13:17 -0000 1.3 @@ -138,7 +138,7 @@ # CONFIG_PACKET=y # CONFIG_PACKET_MMAP is not set -# CONFIG_NETLINK is not set +CONFIG_NETLINK_DEV=y # CONFIG_NETFILTER is not set # CONFIG_FILTER is not set CONFIG_UNIX=y @@ -148,6 +148,7 @@ # CONFIG_IP_PNP is not set # CONFIG_NET_IPIP is not set # CONFIG_NET_IPGRE is not set +# CONFIG_ARPD is not set # CONFIG_INET_ECN is not set # CONFIG_SYN_COOKIES is not set CONFIG_IPV6=m |
From: Dave A. <ai...@us...> - 2003-06-10 01:14:49
|
Update of /cvsroot/linux-vax/kernel-2.4/arch/s390/kernel In directory sc8-pr-cvs1:/tmp/cvs-serv7538/arch/s390/kernel Modified Files: smp.c Log Message: DA: sync with Marcelo 2.4.17 Index: smp.c =================================================================== RCS file: /cvsroot/linux-vax/kernel-2.4/arch/s390/kernel/smp.c,v retrieving revision 1.2 retrieving revision 1.3 diff -u -r1.2 -r1.3 --- smp.c 9 Apr 2002 17:03:17 -0000 1.2 +++ smp.c 10 Jun 2003 01:13:15 -0000 1.3 @@ -29,6 +29,7 @@ #include <linux/smp_lock.h> #include <linux/delay.h> +#include <linux/cache.h> #include <asm/sigp.h> #include <asm/pgalloc.h> @@ -55,7 +56,7 @@ int smp_threads_ready=0; /* Set when the idlers are all forked. */ static atomic_t smp_commenced = ATOMIC_INIT(0); -spinlock_t kernel_flag = SPIN_LOCK_UNLOCKED; +spinlock_t kernel_flag __cacheline_aligned_in_smp = SPIN_LOCK_UNLOCKED; unsigned long cpu_online_map; |
From: Dave A. <ai...@us...> - 2003-05-29 23:23:15
|
Update of /cvsroot/linux-vax/kernel-2.4/drivers/scsi In directory sc8-pr-cvs1:/tmp/cvs-serv2809 Modified Files: NCR5380.h Log Message: DA: fix IRQ_NONE to be a bigger number Index: NCR5380.h =================================================================== RCS file: /cvsroot/linux-vax/kernel-2.4/drivers/scsi/NCR5380.h,v retrieving revision 1.2 retrieving revision 1.3 diff -u -r1.2 -r1.3 --- NCR5380.h 11 Apr 2002 13:05:45 -0000 1.2 +++ NCR5380.h 29 May 2003 23:23:11 -0000 1.3 @@ -23,6 +23,9 @@ /* * $Log$ + * Revision 1.3 2003/05/29 23:23:11 airlied + * DA: fix IRQ_NONE to be a bigger number + * * Revision 1.2 2002/04/11 13:05:45 atp * synch 2.4.15 commit 51 * @@ -234,9 +237,9 @@ * Scsi_Host structure */ -#define IRQ_NONE 255 +#define IRQ_NONE 65535 #define DMA_NONE 255 -#define IRQ_AUTO 254 +#define IRQ_AUTO 65534 #define DMA_AUTO 254 #define PORT_AUTO 0xffff /* autoprobe io port for 53c400a */ |
From: Dave A. <ai...@us...> - 2003-05-29 13:29:56
|
Update of /cvsroot/linux-vax/kernel-2.4/drivers/scsi In directory sc8-pr-cvs1:/tmp/cvs-serv29801 Modified Files: vax-5380.c Log Message: DA: see can we support two SCSI interfaces... Index: vax-5380.c =================================================================== RCS file: /cvsroot/linux-vax/kernel-2.4/drivers/scsi/vax-5380.c,v retrieving revision 1.3 retrieving revision 1.4 diff -u -r1.3 -r1.4 --- vax-5380.c 22 Feb 2001 22:18:17 -0000 1.3 +++ vax-5380.c 29 May 2003 13:29:52 -0000 1.4 @@ -54,6 +54,9 @@ /* * $Log$ + * Revision 1.4 2003/05/29 13:29:52 airlied + * DA: see can we support two SCSI interfaces... + * * Revision 1.3 2001/02/22 22:18:17 airlied * vsa->vsbus * @@ -88,17 +91,17 @@ #include <linux/init.h> #include <asm/vsa.h> +#define TRY_TWO_IFS 1 /* set this to 0 for external SCSI */ #define INTERNAL_SCSI 1 static void do_vax_5380_intr_ack(int irq, void *dev_id, struct pt_regs *regs) { do_vax_5380_intr(irq, dev_id, regs); -#if INTERNAL_SCSI - vsbus_clear_int(1); -#else - vsbus_clear_int(0); -#endif + if (irq == 0xfe) + vsbus_clear_int(1); + else + vsbus_clear_int(0); } /* @@ -116,59 +119,67 @@ int __init vax_5380_detect(Scsi_Host_Template * tpnt) { - struct Scsi_Host *instance; - unsigned long base; + struct Scsi_Host *instance[2]; + unsigned long base[2]; + int num_hosts, i; tpnt->proc_name = "vax5380"; tpnt->proc_info = vax_5380_proc_info; -#if INTERNAL_SCSI - base = 0x200c0080; +#if TRY_TWO_IFS + num_hosts = 2; #else - base = 0x200c0180; + num_hosts = 1; #endif - instance = scsi_register (tpnt, sizeof(struct NCR5380_hostdata)); - instance->base = (unsigned long) ioremap(base, 0x80); - - NCR5380_init(instance, 0); - #if INTERNAL_SCSI - instance->irq = 0xfe; + base[0]=0x200c0080; + base[1]=0x200c0180; #else - instance->irq = 0xff; + base[0]=0x200c0180; + base[1]=0x200c0080; #endif + for ( i=0 ; i<num_hosts ; i++ ) { + instance[i] = scsi_register (tpnt, sizeof(struct NCR5380_hostdata)); + instance[i]->base = (unsigned long) ioremap(base[i], 0x80); + + NCR5380_init(instance[i], 0); + + if (base[i] == 0x200c0080) + instance[i]->irq = 0xfe; + else + instance[i]->irq = 0xff; + #if defined(VDEBUG) && (VDEBUG & VDEBUG_INIT) - printk("scsi%d : irq = %d\n", instance->host_no, instance->irq); + printk("scsi%d : irq = %d\n", instance[i]->host_no, instance[i]->irq); #endif #if 1 - if (request_irq(instance->irq, do_vax_5380_intr_ack, SA_INTERRUPT, "vax-5380", NULL)) { - printk("scsi%d : IRQ%d not free, interrupts disabled\n", - instance->host_no, instance->irq); - instance->irq = IRQ_NONE; + if (request_irq(instance[i]->irq, do_vax_5380_intr_ack, SA_INTERRUPT, "vax-5380", NULL)) { + printk("scsi%d : IRQ%d not free, interrupts disabled\n", + instance[i]->host_no, instance[i]->irq); + instance[i]->irq = IRQ_NONE; + } + + if (instance[i]->irq != IRQ_NONE) { + if (instance[i]->irq == 0xfe) + vsbus_enable_int(1); + else + vsbus_enable_int(0); + } +#endif + + printk("scsi%d : at 0x%08lx", instance[i]->host_no, instance[i]->base); + if (instance[i]->irq == IRQ_NONE) + printk (" interrupts disabled"); + else + printk (" irq %d", instance[i]->irq); + printk(" options CAN_QUEUE=%d CMD_PER_LUN=%d release=%d", + CAN_QUEUE, CMD_PER_LUN, VAX_5380_PUBLIC_RELEASE); + NCR5380_print_options(instance[i]); + printk("\n"); } - - if (instance->irq != IRQ_NONE) { -#if INTERNAL_SCSI - vsbus_enable_int(1); -#else - vsbus_enable_int(0); -#endif - } -#endif - - printk("scsi%d : at 0x%08lx", instance->host_no, instance->base); - if (instance->irq == IRQ_NONE) - printk (" interrupts disabled"); - else - printk (" irq %d", instance->irq); - printk(" options CAN_QUEUE=%d CMD_PER_LUN=%d release=%d", - CAN_QUEUE, CMD_PER_LUN, VAX_5380_PUBLIC_RELEASE); - NCR5380_print_options(instance); - printk("\n"); - return 1; } |
From: Dave A. <ai...@us...> - 2003-05-17 11:07:11
|
Update of /cvsroot/linux-vax/kernel-2.4/arch/vax/kernel In directory sc8-pr-cvs1:/tmp/cvs-serv17818/kernel Modified Files: Makefile Added Files: vax_ksyms.c Log Message: DA: add ksyms to the 2.4 kernel this file is probably seriously incomplete --- NEW FILE --- #include <linux/config.h> #include <linux/types.h> #include <linux/module.h> #include <linux/user.h> #include <linux/elfcore.h> #include <linux/sched.h> #include <linux/in6.h> #include <linux/interrupt.h> #include <linux/kernel.h> #include <linux/string.h> #include <linux/tty.h> #include <asm/semaphore.h> #include <asm/processor.h> #include <asm/uaccess.h> #include <asm/checksum.h> #include <asm/io.h> #include <asm/hardirq.h> #include <asm/delay.h> #include <asm/irq.h> extern spinlock_t rtc_lock; /* platform dependent support */ EXPORT_SYMBOL(iounmap); EXPORT_SYMBOL(kernel_thread); /* Delay loops */ EXPORT_SYMBOL(strtok); EXPORT_SYMBOL(strpbrk); EXPORT_SYMBOL(simple_strtol); EXPORT_SYMBOL(strstr); EXPORT_SYMBOL(__strncpy_from_user); EXPORT_SYMBOL(__clear_user); #ifdef CONFIG_VT EXPORT_SYMBOL(screen_info); #endif EXPORT_SYMBOL(rtc_lock); #undef memcpy #undef memset extern void * memset(void *,int,__kernel_size_t); extern void * memcpy(void *,const void *,__kernel_size_t); EXPORT_SYMBOL_NOVERS(memcpy); EXPORT_SYMBOL_NOVERS(memset); #ifdef CONFIG_HAVE_DEC_LOCK EXPORT_SYMBOL(atomic_dec_and_lock); #endif Index: Makefile =================================================================== RCS file: /cvsroot/linux-vax/kernel-2.4/arch/vax/kernel/Makefile,v retrieving revision 1.10 retrieving revision 1.11 diff -u -r1.10 -r1.11 --- Makefile 25 Apr 2002 08:46:20 -0000 1.10 +++ Makefile 17 May 2003 11:07:08 -0000 1.11 @@ -13,12 +13,14 @@ O_TARGET := kernel.o +export-objs := vax_ksyms.o + obj-y := ptrace.o process.o setup.o regdump.o interrupt.o entry.o time.o \ syscall.o signal.o semaphore.o vax_dev_init.o\ init_task.o reboot.o cpu_generic.o \ cpu_ka630.o cpu_ka640.o cpu_ka650.o cpu_ka660.o \ cpu_ka410.o cpu_ka42.o cpu_ka43.o cpu_ka46.o cpu_ka55.o \ - cpu_vxt.o clock.o + cpu_vxt.o clock.o vax_ksyms.o OX_OBJS := MX_OBJS := |
From: Dave A. <ai...@us...> - 2003-05-17 07:28:30
|
Update of /cvsroot/linux-vax/kernel-2.4/include/asm-vax In directory sc8-pr-cvs1:/tmp/cvs-serv22610 Modified Files: module.h Log Message: DA: add line to make a modular kernel at least compile Index: module.h =================================================================== RCS file: /cvsroot/linux-vax/kernel-2.4/include/asm-vax/module.h,v retrieving revision 1.1 retrieving revision 1.2 diff -u -r1.1 -r1.2 --- module.h 18 Jan 2001 15:52:28 -0000 1.1 +++ module.h 17 May 2003 07:28:26 -0000 1.2 @@ -7,5 +7,6 @@ #define module_map(x) vmalloc(x) #define module_unmap(x) vfree(x) #define module_arch_init(x) (0) +#define arch_init_modules(x) do { } while (0) #endif /* _ASM_VAX_MODULE_H */ |
From: Dave A. <ai...@us...> - 2003-05-11 07:51:21
|
Update of /cvsroot/linux-vax/kernel-2.4/arch/vax/lib In directory sc8-pr-cvs1:/tmp/cvs-serv6471 Modified Files: lshrdi3.c Log Message: DA: long standing bug.. df on my NFS root showed it up, this had the big endian definition in it not the little endian Index: lshrdi3.c =================================================================== RCS file: /cvsroot/linux-vax/kernel-2.4/arch/vax/lib/lshrdi3.c,v retrieving revision 1.1 retrieving revision 1.2 diff -u -r1.1 -r1.2 --- lshrdi3.c 25 Feb 2001 00:37:31 -0000 1.1 +++ lshrdi3.c 11 May 2003 07:51:18 -0000 1.2 @@ -25,7 +25,7 @@ typedef int DItype __attribute__ ((mode (DI))); typedef int word_type __attribute__ ((mode (__word__))); -struct DIstruct {SItype high, low;}; +struct DIstruct {SItype low, high;}; typedef union { |
From: Dave A. <ai...@us...> - 2003-05-11 07:49:47
|
Update of /cvsroot/linux-vax/kernel-2.4/include/asm-vax In directory sc8-pr-cvs1:/tmp/cvs-serv5694 Modified Files: div64.h Log Message: DA: this didn't work for printing long longs with printk, pissed me off no end :-) Index: div64.h =================================================================== RCS file: /cvsroot/linux-vax/kernel-2.4/include/asm-vax/div64.h,v retrieving revision 1.1 retrieving revision 1.2 diff -u -r1.1 -r1.2 --- div64.h 18 Jan 2001 18:49:49 -0000 1.1 +++ div64.h 11 May 2003 07:49:42 -0000 1.2 @@ -1,13 +1,38 @@ -#ifndef __VAX_DIV64 -#define __VAX_DIV64 +#ifndef __ASM_VAX_DIV64 +#define __ASM_VAX_DIV64 -/* atp jan 2001. Take from asm-s390. - * FIXME: replace by quadword divide */ +/* + * DA: stolen from parisc port - probably can be optimized a lot beter + */ + +/* + * unsigned long long division. Yuck Yuck! What is Linux coming to? + * This is 100% disgusting + */ +#define do_div(n,base) \ +({ \ + unsigned long __low, __low2, __high, __rem; \ + __low = (n) & 0xffffffff; \ + __high = (n) >> 32; \ + if (__high) { \ + __rem = __high % (unsigned long)base; \ + __high = __high / (unsigned long)base; \ + __low2 = __low >> 16; \ + __low2 += __rem << 16; \ + __rem = __low2 % (unsigned long)base; \ + __low2 = __low2 / (unsigned long)base; \ + __low = __low & 0xffff; \ + __low += __rem << 16; \ + __rem = __low % (unsigned long)base; \ + __low = __low / (unsigned long)base; \ + n = __low + ((long long)__low2 << 16) + \ + ((long long) __high << 32); \ + } else { \ + __rem = __low % (unsigned long)base; \ + n = (__low / (unsigned long)base); \ + } \ + __rem; \ +}) +#endif -#define do_div(n,base) ({ \ -int __res; \ -__res = ((unsigned long) n) % (unsigned) base; \ -n = ((unsigned long) n) / (unsigned) base; \ -__res; }) -#endif /* __ASM_VAX_DIV64_H */ |
From: Dave A. <ai...@us...> - 2003-03-09 23:07:34
|
Update of /cvsroot/linux-vax/kernel-2.4/arch/vax/kernel In directory sc8-pr-cvs1:/tmp/cvs-serv2390 Modified Files: process.c Log Message: DA: life goes a lot better with a valid frame pointer.. clears up all wierdness in the dynamic linker... Index: process.c =================================================================== RCS file: /cvsroot/linux-vax/kernel-2.4/arch/vax/kernel/process.c,v retrieving revision 1.18 retrieving revision 1.19 diff -u -r1.18 -r1.19 --- process.c 12 Feb 2003 02:37:33 -0000 1.18 +++ process.c 9 Mar 2003 23:07:29 -0000 1.19 @@ -265,6 +265,7 @@ regs->pc = new_pc+2; regs->sp = new_sp; regs->ap = new_sp; + regs->fp = new_sp; regs->psl.prevmode = PSL_MODE_USER; regs->psl.accmode = PSL_MODE_USER; /* write the sp into the user stack pointer register */ |
From: Dave A. <ai...@us...> - 2003-02-28 06:14:13
|
Update of /cvsroot/linux-vax/kernel-2.4/arch/vax/lib In directory sc8-pr-cvs1:/tmp/cvs-serv14315 Modified Files: strncpy_user.S Log Message: DA: fix fault code for strncpy Index: strncpy_user.S =================================================================== RCS file: /cvsroot/linux-vax/kernel-2.4/arch/vax/lib/strncpy_user.S,v retrieving revision 1.4 retrieving revision 1.5 diff -u -r1.4 -r1.5 --- strncpy_user.S 16 Feb 2003 08:01:55 -0000 1.4 +++ strncpy_user.S 28 Feb 2003 06:14:08 -0000 1.5 @@ -36,6 +36,6 @@ 2: subl2 %r1, %r0 ret .section .fixup, "ax" -fault: movl -EFAULT, %r0 +fault: movl $-EFAULT, %r0 ret .previous |
From: Dave A. <ai...@us...> - 2003-02-23 23:56:25
|
Update of /cvsroot/linux-vax/kernel-2.4/include/asm-vax In directory sc8-pr-cvs1:/tmp/cvs-serv27174 Modified Files: ptrace.h Log Message: DA: user_regs_struct is a struct so no typdefing here Index: ptrace.h =================================================================== RCS file: /cvsroot/linux-vax/kernel-2.4/include/asm-vax/ptrace.h,v retrieving revision 1.4 retrieving revision 1.5 diff -u -r1.4 -r1.5 --- ptrace.h 28 Oct 2001 23:55:36 -0000 1.4 +++ ptrace.h 23 Feb 2003 23:56:21 -0000 1.5 @@ -46,10 +46,30 @@ struct psl_fields psl; }; +struct user_regs_struct { + unsigned long int r0; + unsigned long int r1; + unsigned long int r2; + unsigned long int r3; + unsigned long int r4; + unsigned long int r5; + unsigned long int r6; + unsigned long int r7; + unsigned long int r8; + unsigned long int r9; + unsigned long int r10; + unsigned long int r11; /* note: we keep current in r11 */ + unsigned long int ap; + unsigned long int fp; + unsigned long int sp; + unsigned long int pc; + struct psl_fields psl; +}; + /* ok, this may need a FIXME: later. user_regs_struct is the * regs structure expected by userspace. see comment in asm-i386/user.h */ -typedef struct pt_regs user_regs_struct; +//typedef struct pt_regs user_regs_struct; /* Arbitrarily choose the same ptrace numbers as used by the Sparc code. */ #define PTRACE_GETREGS 12 |
From: Dave A. <ai...@us...> - 2003-02-23 23:54:58
|
Update of /cvsroot/linux-vax/kernel-2.4/arch/vax/kernel In directory sc8-pr-cvs1:/tmp/cvs-serv25982 Modified Files: interrupt.c ptrace.c Log Message: DA: if you thought the old code was bad, wait till you get a load of this, the old ptrace.c worked for a very finite definition of the word worked, it was fine if the program was static and running, however with dynamic libs, it tries to breakpoint before running and our two PCs aren't the same them, and we have issues.. The correct way to do this is to roll the stack back from the current spot, which could be AFAIK any number of levels from where we want to be, which sounds ugly.. so now I look for the exception vector (it has to be in the list..), it works for now... if we do get malloced exception vectors working i would worry if this code is still valid... Index: interrupt.c =================================================================== RCS file: /cvsroot/linux-vax/kernel-2.4/arch/vax/kernel/interrupt.c,v retrieving revision 1.25 retrieving revision 1.26 diff -u -r1.25 -r1.26 --- interrupt.c 12 Feb 2003 02:37:33 -0000 1.25 +++ interrupt.c 23 Feb 2003 23:54:55 -0000 1.26 @@ -44,7 +44,7 @@ An entry in the list is free if the dest_addr field is zero, and is in use if non-zero */ -static struct irqvector irqvectors[NR_IRQVECTORS]; +struct irqvector irqvectors[NR_IRQVECTORS]; /* Default handlers for each SCB vector */ static struct stray_handler stray_handlers[NR_IRQS]; Index: ptrace.c =================================================================== RCS file: /cvsroot/linux-vax/kernel-2.4/arch/vax/kernel/ptrace.c,v retrieving revision 1.7 retrieving revision 1.8 diff -u -r1.7 -r1.8 --- ptrace.c 9 Apr 2002 13:50:55 -0000 1.7 +++ ptrace.c 23 Feb 2003 23:54:55 -0000 1.8 @@ -19,6 +19,8 @@ #include <linux/smp_lock.h> #include <linux/user.h> +#include "interrupt.h" + #if 0 #include <asm/fp.h> #include <asm/mipsregs.h> @@ -28,7 +30,9 @@ #include <asm/system.h> #include <asm/uaccess.h> -#define VAX_MAX_DIST_BETWEEN_PC 20 +#define VAX_MAX_NUM_VALS_TO_CHECK 5 + +extern struct irqvector irqvectors[NR_IRQVECTORS]; /* * search out does damn regs.. that variable length exception info is evil I * tell you evil. @@ -36,28 +40,40 @@ static struct pt_regs *ptrace_find_vax_regs(struct task_struct *child) { struct pt_regs *regs_ptr; - unsigned long *pc1, *pc2; - void *stack_top; + unsigned long *chk_excep_addr; + void *stack_top, *excep_addr; + int num_execp_params; + int i; + // printk("child sp is %8lX\n", child->thread.pcb.ksp); stack_top = ((union task_union *)child)+1; - stack_top -= 4; + stack_top -= 4; /* jump down over PC and PSL which are always there */ - - pc1 = (unsigned long *)stack_top - 2; - pc2 = pc1; - - //printk("pc1 is %8lX at %8lX\n", *pc1, pc1); - /* back step looking for second copy of PC */ - do { - pc2 -= 1; - } while (*pc1!=*pc2 && pc1-pc2<VAX_MAX_DIST_BETWEEN_PC); + /* hack attack - apologies to anyone who has just eaten + * this is the worst code I've written since the code this code + * is replacing ... - Dave. + */ + + /* start after the PC/PSL, and look for an exception vector + if we move to malloced vectors this is screwed */ + chk_excep_addr = (unsigned long *)*(unsigned long *)stack_top; + for (i=0; i<VAX_MAX_NUM_VALS_TO_CHECK; i++) + { + excep_addr = ((unsigned long *)stack_top)-i; + chk_excep_addr = (unsigned long *)*(unsigned long *)excep_addr; + if (chk_excep_addr>(unsigned long *)irqvectors && chk_excep_addr<(unsigned long *)(irqvectors+NR_IRQVECTORS)) + break; + } + + if (i==VAX_MAX_NUM_VALS_TO_CHECK) + { + printk("Cannot find exception handler address\n"); + return NULL; + } - //printk("difference is %d\n", pc1-pc2); - - if (pc1-pc2>=VAX_MAX_DIST_BETWEEN_PC) - return NULL; + num_execp_params = *chk_excep_addr; - regs_ptr = ((void *)pc2) + 8 - sizeof(struct pt_regs); + regs_ptr = excep_addr - 4 - sizeof(struct pt_regs); return regs_ptr; } @@ -116,7 +132,7 @@ retval=0; break; } -// printk("getreg for %d returned %8lX\n", regno>>2, retval); +// printk("getreg for %ld returned %8lX\n", regno>>2, retval); return retval; } |
From: Dave A. <ai...@us...> - 2003-02-16 23:28:06
|
Update of /cvsroot/linux-vax/kernel-2.4/arch/vax/kernel In directory sc8-pr-cvs1:/tmp/cvs-serv1846 Modified Files: signal.c Log Message: DA: don't halt the machine just print a warning Index: signal.c =================================================================== RCS file: /cvsroot/linux-vax/kernel-2.4/arch/vax/kernel/signal.c,v retrieving revision 1.10 retrieving revision 1.11 diff -u -r1.10 -r1.11 --- signal.c 12 Feb 2003 02:37:33 -0000 1.10 +++ signal.c 16 Feb 2003 23:28:02 -0000 1.11 @@ -110,9 +110,9 @@ { sigset_t saveset, newset; + printk("sys_rt_sigsuspend called but may not work\n"); + /* XXX: Don't preclude handling different sized sigset_t's. */ - machine_halt(); - if (sigsetsize != sizeof(sigset_t)) return -EINVAL; @@ -277,13 +277,12 @@ sigset_t set; stack_t st; + printk("sys_rt_sigreturn called but may not work\n"); /* * Since we stacked the signal on a dword boundary, * 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; |
From: Dave A. <ai...@us...> - 2003-02-16 23:27:54
|
Update of /cvsroot/linux-vax/kernel-2.4/include/asm-vax In directory sc8-pr-cvs1:/tmp/cvs-serv1624 Modified Files: uaccess.h Log Message: DA: use .previous instead of .text Index: uaccess.h =================================================================== RCS file: /cvsroot/linux-vax/kernel-2.4/include/asm-vax/uaccess.h,v retrieving revision 1.3 retrieving revision 1.4 diff -u -r1.3 -r1.4 --- uaccess.h 11 Mar 2001 23:51:59 -0000 1.3 +++ uaccess.h 16 Feb 2003 23:27:50 -0000 1.4 @@ -204,10 +204,11 @@ "3: movl %3, %0\n" \ " clrl %1\n" \ " jmp 2b\n" \ + ".previous\n" \ ".section __ex_table,\"a\"\n" \ " .align 2\n" \ " .long 1b,3b\n" \ - ".text" \ + ".previous" \ : "=r"(err), "=r"(x) \ : "m"(*addr), "i"(-EFAULT), "0"(err)) |
From: Dave A. <ai...@us...> - 2003-02-16 08:02:01
|
Update of /cvsroot/linux-vax/kernel-2.4/arch/vax/lib In directory sc8-pr-cvs1:/tmp/cvs-serv31418 Modified Files: clear_user.S copy_tofrom_user.S strncpy_user.S strnlen_user.S Log Message: DA: fix alignment for exception table.. return EFAULT properly.. Index: clear_user.S =================================================================== RCS file: /cvsroot/linux-vax/kernel-2.4/arch/vax/lib/clear_user.S,v retrieving revision 1.5 retrieving revision 1.6 diff -u -r1.5 -r1.6 --- clear_user.S 12 Feb 2003 02:37:33 -0000 1.5 +++ clear_user.S 16 Feb 2003 08:01:54 -0000 1.6 @@ -16,6 +16,7 @@ #define EX(insn, addr, reg, handler) \ 9: insn addr, reg; \ .section __ex_table, "a"; \ + .align 2 ; \ .long 9b, handler; \ .previous Index: copy_tofrom_user.S =================================================================== RCS file: /cvsroot/linux-vax/kernel-2.4/arch/vax/lib/copy_tofrom_user.S,v retrieving revision 1.2 retrieving revision 1.3 diff -u -r1.2 -r1.3 --- copy_tofrom_user.S 12 Feb 2003 02:37:33 -0000 1.2 +++ copy_tofrom_user.S 16 Feb 2003 08:01:54 -0000 1.3 @@ -15,6 +15,7 @@ #define EX(insn, arg0, arg1, handler) \ 9: insn arg0, arg1; \ .section __ex_table, "a"; \ + .align 2 ; \ .long 9b, handler; \ .previous @@ -36,4 +37,4 @@ .align 4 l_fixup: s_fixup: ret - .previous \ No newline at end of file + .previous Index: strncpy_user.S =================================================================== RCS file: /cvsroot/linux-vax/kernel-2.4/arch/vax/lib/strncpy_user.S,v retrieving revision 1.3 retrieving revision 1.4 diff -u -r1.3 -r1.4 --- strncpy_user.S 12 Feb 2003 02:37:33 -0000 1.3 +++ strncpy_user.S 16 Feb 2003 08:01:55 -0000 1.4 @@ -16,6 +16,7 @@ #define EX(insn, addr, reg, handler) \ 9: insn addr, reg; \ .section __ex_table, "a"; \ + .align 2 ; \ .long 9b, handler; \ .previous @@ -35,6 +36,6 @@ 2: subl2 %r1, %r0 ret .section .fixup, "ax" -fault: movl %r0, -EFAULT +fault: movl -EFAULT, %r0 ret .previous Index: strnlen_user.S =================================================================== RCS file: /cvsroot/linux-vax/kernel-2.4/arch/vax/lib/strnlen_user.S,v retrieving revision 1.2 retrieving revision 1.3 diff -u -r1.2 -r1.3 --- strnlen_user.S 12 Feb 2003 02:37:33 -0000 1.2 +++ strnlen_user.S 16 Feb 2003 08:01:55 -0000 1.3 @@ -15,6 +15,7 @@ #define EX(insn, arg0, arg1, handler) \ 9: insn arg0, arg1; \ .section __ex_table, "a"; \ + .align 2 ; \ .long 9b, handler; \ .previous @@ -34,6 +35,5 @@ ret .section .fixup,"ax" - .align 4 fault: movl $0, %r0 - ret \ No newline at end of file + ret |
From: Dave A. <ai...@us...> - 2003-02-12 03:19:48
|
Update of /cvsroot/linux-vax/kernel-2.4 In directory sc8-pr-cvs1:/tmp/cvs-serv22955 Modified Files: Rules.make Log Message: DA: remove list files Index: Rules.make =================================================================== RCS file: /cvsroot/linux-vax/kernel-2.4/Rules.make,v retrieving revision 1.4 retrieving revision 1.5 diff -u -r1.4 -r1.5 --- Rules.make 11 Apr 2002 14:26:55 -0000 1.4 +++ Rules.make 12 Feb 2003 03:19:45 -0000 1.5 @@ -54,7 +54,7 @@ $(CPP) $(CFLAGS) $(EXTRA_CFLAGS) $(CFLAGS_$@) $< > $@ %.o: %.c - $(CC) $(CFLAGS) $(EXTRA_CFLAGS) $(CFLAGS_$@) -c -o $@ $< -Wa,-adnhls=$*.lst -g + $(CC) $(CFLAGS) $(EXTRA_CFLAGS) $(CFLAGS_$@) -c -o $@ $< -g #-Wa,-adnhls=$*.lst -g @ ( \ echo 'ifeq ($(strip $(subst $(comma),:,$(CFLAGS) $(EXTRA_CFLAGS) $(CFLAGS_$@))),$$(strip $$(subst $$(comma),:,$$(CFLAGS) $$(EXTRA_CFLAGS) $$(CFLAGS_$@))))' ; \ echo 'FILES_FLAGS_UP_TO_DATE += $@' ; \ |
Update of /cvsroot/linux-vax/kernel-2.4/arch/vax/kernel In directory sc8-pr-cvs1:/tmp/cvs-serv5736/arch/vax/kernel Modified Files: cpu_generic.c cpu_ka55.c cpu_ka650.c entry.S interrupt.c process.c regdump.c signal.c syscall.c Log Message: DA: update for new toolchain build... add percentage signs to all assembly routines Index: cpu_generic.c =================================================================== RCS file: /cvsroot/linux-vax/kernel-2.4/arch/vax/kernel/cpu_generic.c,v retrieving revision 1.3 retrieving revision 1.4 diff -u -r1.3 -r1.4 --- cpu_generic.c 1 Feb 2003 05:19:12 -0000 1.3 +++ cpu_generic.c 12 Feb 2003 02:37:32 -0000 1.4 @@ -75,7 +75,7 @@ void ka46_48_49_prom_putchar(int c) { - asm ("movzbl %0, r2 # zero-extended byte convert. \n" + asm ("movzbl %0, %%r2 # zero-extended byte convert. \n" "jsb 0x20040068\n" : /* nothing */ : "g" (c) @@ -92,7 +92,7 @@ void ka4x_prom_putchar(int c) { - asm (" movzbl %0, r2 # zero-extended byte convert.\n" + asm (" movzbl %0, %%r2 # zero-extended byte convert.\n" "jsb 0x20040058 \n" : /* nothing */ : "g" (c) Index: cpu_ka55.c =================================================================== RCS file: /cvsroot/linux-vax/kernel-2.4/arch/vax/kernel/cpu_ka55.c,v retrieving revision 1.9 retrieving revision 1.10 diff -u -r1.9 -r1.10 --- cpu_ka55.c 1 Feb 2003 05:19:12 -0000 1.9 +++ cpu_ka55.c 12 Feb 2003 02:37:32 -0000 1.10 @@ -65,12 +65,12 @@ void ka55_prom_putchar(int c) { - asm (" movl $0x2014044b, r11 # console page addr\n" + asm (" movl $0x2014044b, %%r11 # console page addr\n" "1:\n" - "jsb *0x20(r11) # ready to TX? \n" - "blbc r0, 1b\n" - "movl %0, r1\n" - "jsb *0x24(r11) # TX char in R11 \n" + "jsb *0x20(%%r11) # ready to TX? \n" + "blbc %%r0, 1b\n" + "movl %0, %%r1\n" + "jsb *0x24(%%r11) # TX char in R11 \n" : /* no outputs */ : "g"(c) : "r0", "r1", "r11" ); Index: cpu_ka650.c =================================================================== RCS file: /cvsroot/linux-vax/kernel-2.4/arch/vax/kernel/cpu_ka650.c,v retrieving revision 1.5 retrieving revision 1.6 diff -u -r1.5 -r1.6 --- cpu_ka650.c 26 Oct 2002 10:50:05 -0000 1.5 +++ cpu_ka650.c 12 Feb 2003 02:37:33 -0000 1.6 @@ -47,7 +47,8 @@ ka650_cpu_type_str, generic_clock_init, - NULL + NULL, + MV_CPU_KA650 }, 0 /* System ID Extension from ROM */ }; Index: entry.S =================================================================== RCS file: /cvsroot/linux-vax/kernel-2.4/arch/vax/kernel/entry.S,v retrieving revision 1.8 retrieving revision 1.9 diff -u -r1.8 -r1.9 --- entry.S 14 Sep 2001 11:41:41 -0000 1.8 +++ entry.S 12 Feb 2003 02:37:33 -0000 1.9 @@ -48,26 +48,26 @@ of longwords of this exception info is available in the irqvector structure (at our "return address") */ - pushl r0 /* Need to use R0 as a working register */ + pushl %r0 /* Need to use R0 as a working register */ /* Get number of exception info longwords into R0. Remember that this value is stored immediately after the JSB instruction in the irqvector, so the "return address" points to it */ - movl *4(sp), r0 + movl *4(%sp), %r0 - addl2 $3, r0 /* R0 now contains number of longwords between + addl2 $3, %r0 /* R0 now contains number of longwords between top of stack and saved PSL */ - pushl (sp)[r0] /* Push saved PSL again */ - pushl (sp)[r0] /* Push saved PC again */ - extzv $22, $2, 4(sp), -(sp) /* Extract PREVMODE field from saved + pushl (%sp)[%r0] /* Push saved PSL again */ + pushl (%sp)[%r0] /* Push saved PC again */ + extzv $22, $2, 4(%sp), -(%sp) /* Extract PREVMODE field from saved PSL and save on stack (because we don't have any spare registers yet) */ - cmpzv $24, $2, 8(sp), (sp) /* Is PREVMODE == CURMODE? */ + cmpzv $24, $2, 8(%sp), (%sp) /* Is PREVMODE == CURMODE? */ beql same_mode - mfpr (sp),(sp) /* HACK ALERT! The processor modes are 0..3 + mfpr (%sp),(%sp) /* HACK ALERT! The processor modes are 0..3 for kernel..user mode. The stack pointer internal processor registers are also 0..3 for kernel..user mode. So, using the @@ -78,12 +78,12 @@ processor mode before the exception occurred */ brb sp_saved same_mode: - moval 16(sp)[r0],(sp) /* Exception is not changing modes. Therefore + moval 16(%sp)[%r0],(%sp) /* Exception is not changing modes. Therefore we calculate how far up the stack the SP was pointing when the exception occurred. */ sp_saved: pushr $0x3ffe /* Push FP to R1 */ - pushl 64(sp) /* Duplicate saved R0 */ + pushl 64(%sp) /* Duplicate saved R0 */ /* The stack now looks like: @@ -105,9 +105,9 @@ when you modify this code, we're counting stack locations to get the right offsets here... */ - pushal 76(sp) /* address of exception info */ - pushl 76(sp) /* handler_PC */ - pushal 8(sp) /* start of pt_regs */ + pushal 76(%sp) /* address of exception info */ + pushl 76(%sp) /* handler_PC */ + pushal 8(%sp) /* start of pt_regs */ calls $3, do_irq_excep @@ -125,7 +125,7 @@ 68 as you'd expect from the stack layout shown above. This is because the SP is incremented by 4 while evaluating the first operand */ - movl (sp)+, 64(sp) + movl (%sp)+, 64(%sp) /* Restore registers R1 up to FP */ popr $0x3ffe @@ -147,19 +147,19 @@ handlers to change the PC of the code that triggered the exception. This is tricky because of the exception info that may be present on the stack. First get the size of the exception info into R0 */ - movl *16(sp), r0 + movl *16(%sp), %r0 /* Now move the saved PC down over the original (the 20-byte offset takes care of skipping over the top 5 items on the stack, and then the R0 index skips over the exception info */ - movl 4(sp), 20(sp)[r0] + movl 4(%sp), 20(%sp)[%r0] /* * D.A. May 2001 - we need to copy the PSL down, to * get to usermode originally as we make up a new PSL * in start_thread and we need the CPU to believe it */ - movl 8(sp), 24(sp)[r0] + movl 8(%sp), 24(%sp)[%r0] /* The stack now looks like: SP: saved SP for previous mode @@ -175,11 +175,11 @@ /* Now move the saved R0 (r0+1) longwords down the stack, leaving it just before the saved PC, overwriting either the saved handler_PC or the end of the exception info ... */ - movl 12(sp), 16(sp)[r0] + movl 12(%sp), 16(%sp)[%r0] /* ... and clear stack down to this point */ - moval 16(sp)[r0], sp + moval 16(%sp)[%r0], %sp /* Stack now looks like @@ -189,7 +189,7 @@ /* Restore R0 and dismiss exception */ - movl (sp)+, r0 + movl (%sp)+, %r0 rei /* irqvec_stray is the generic handler for all exceptions and interrupts @@ -208,7 +208,7 @@ saved PSL */ pushr $0x3fff /* Save FP to R0 */ - pushl 56(sp) /* copy return address (handler_PC) */ + pushl 56(%sp) /* copy return address (handler_PC) */ calls $1, unhandled_exception /* If unhandled_exception() returns, then we must be @@ -218,7 +218,7 @@ continue */ popr $0x3fff /* restore R0 to FP */ - moval 4(sp), sp /* Remove handler_PC */ + moval 4(%sp), %sp /* Remove handler_PC */ rei /* mcheck_handler is the handler for machine check exceptions. @@ -242,10 +242,10 @@ * PSL */ pushr $0x3f /* push all registers in case we can restart */ - pushab 24(sp) /* address of stack slot which holds byte count */ + pushab 24(%sp) /* address of stack slot which holds byte count */ calls $1, machine_check /* in reboot.c */ popr $0x3f /* spring them off */ - addl2 (sp)+,sp /* get rid of the machine check frame */ + addl2 (%sp)+,%sp /* get rid of the machine check frame */ rei /* dismiss */ Index: interrupt.c =================================================================== RCS file: /cvsroot/linux-vax/kernel-2.4/arch/vax/kernel/interrupt.c,v retrieving revision 1.24 retrieving revision 1.25 diff -u -r1.24 -r1.25 --- interrupt.c 9 Apr 2002 13:50:55 -0000 1.24 +++ interrupt.c 12 Feb 2003 02:37:33 -0000 1.25 @@ -250,15 +250,20 @@ printk("\nReserved instruction at PC=%08lx\n", regs->pc); } - printk("\nStack dump\n"); - hex_dump((void *)(regs->sp), 256); show_regs(regs); show_cpu_regs(); + printk("\nStack dump\n"); + + + if (user_mode(regs)) { + unsigned int usp = __mfpr(PR_USP); + hex_dump((void *)usp, 256); force_sig(SIGILL,current); return; } + hex_dump((void *)(regs->sp), 512); machine_halt(); } @@ -332,15 +337,19 @@ 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(); + printk("\nStack dump\n"); + + if (user_mode(regs)) { + unsigned int usp = __mfpr(PR_USP); + hex_dump((void *)usp, 256); force_sig(SIGILL,current); return; } + hex_dump((void *)(regs->sp), 256); machine_halt(); } Index: process.c =================================================================== RCS file: /cvsroot/linux-vax/kernel-2.4/arch/vax/kernel/process.c,v retrieving revision 1.17 retrieving revision 1.18 diff -u -r1.17 -r1.18 --- process.c 1 Feb 2003 05:19:12 -0000 1.17 +++ process.c 12 Feb 2003 02:37:33 -0000 1.18 @@ -61,8 +61,8 @@ /* svpctx should deal with writing the stuff into *prev */ - asm(" movl %1, r11 \n" - " movpsl -(sp) \n" + asm(" movl %1, %%r11 \n" + " movpsl -(%%sp) \n" " pushab 1f \n" " mtpr %4,%5 \n" " svpctx \n" @@ -70,7 +70,7 @@ " ldpctx \n" " rei \n" "1: \n" - " movl r11, %0" + " movl %%r11, %0" : "=g"(retval) : "g"(prev), "r"(pcbb), "g"(PR_PCBB), @@ -171,12 +171,12 @@ pid_t kernel_thread(int (*fn)(void *), void * arg, unsigned long flags) { - asm(" clrl -(sp) \n" - " movl %0, -(sp) \n" + asm(" clrl -(%%sp) \n" + " movl %0, -(%%sp) \n" " pushl $0x2 \n" - " movl sp, ap \n" + " movl %%sp, %%ap \n" " chmk %1 \n" - " tstl r0 \n" + " tstl %%r0 \n" " beql child \n" " ret \n" "child:" @@ -261,7 +261,8 @@ printk("starting thread %8lX %8lX %8lX\n", new_pc, new_sp, regs->sp); #endif set_fs(USER_DS); - regs->pc = new_pc; + /* attempt to jump over the crap at the start of the pc */ + regs->pc = new_pc+2; regs->sp = new_sp; regs->ap = new_sp; regs->psl.prevmode = PSL_MODE_USER; Index: regdump.c =================================================================== RCS file: /cvsroot/linux-vax/kernel-2.4/arch/vax/kernel/regdump.c,v retrieving revision 1.6 retrieving revision 1.7 diff -u -r1.6 -r1.7 --- regdump.c 9 Apr 2002 13:50:55 -0000 1.6 +++ regdump.c 12 Feb 2003 02:37:33 -0000 1.7 @@ -151,8 +151,8 @@ /* Why doesn't asm("fp") on the declaration work as advertised? */ - asm("movl fp, %0" : "=g"(fp) : ); - asm("movl ap, %0" : "=g"(ap) : ); + asm("movl %%fp, %0" : "=g"(fp) : ); + asm("movl %%ap, %0" : "=g"(ap) : ); /* First frame we look at is our own */ target_fp = fp; @@ -198,17 +198,17 @@ unsigned int raw_psl; /* Grab the current registers */ - asm ("movq r0, %0" : "=g"(regs.r0) : ); - asm ("movq r2, %0" : "=g"(regs.r2) : ); - asm ("movq r4, %0" : "=g"(regs.r4) : ); - asm ("movq r6, %0" : "=g"(regs.r6) : ); - asm ("movq r8, %0" : "=g"(regs.r8) : ); - asm ("movq r10, %0" : "=g"(regs.r10) : ); - asm ("movq ap, %0" : "=g"(regs.ap) : ); - asm ("movq sp, %0" : "=g"(regs.sp) : ); + asm ("movq %%r0, %0" : "=g"(regs.r0) : ); + asm ("movq %%r2, %0" : "=g"(regs.r2) : ); + asm ("movq %%r4, %0" : "=g"(regs.r4) : ); + asm ("movq %%r6, %0" : "=g"(regs.r6) : ); + asm ("movq %%r8, %0" : "=g"(regs.r8) : ); + asm ("movq %%r10, %0" : "=g"(regs.r10) : ); + asm ("movq %%ap, %0" : "=g"(regs.ap) : ); + asm ("movq %%sp, %0" : "=g"(regs.sp) : ); asm ("movpsl %0" : "=g"(regs.psl) : ); - asm("movl fp, %0" : "=g"(fp) : ); + asm("movl %%fp, %0" : "=g"(fp) : ); /* We always pull saved registers from our own stack frame */ Index: signal.c =================================================================== RCS file: /cvsroot/linux-vax/kernel-2.4/arch/vax/kernel/signal.c,v retrieving revision 1.9 retrieving revision 1.10 diff -u -r1.9 -r1.10 --- signal.c 23 Nov 2001 21:26:39 -0000 1.9 +++ signal.c 12 Feb 2003 02:37:33 -0000 1.10 @@ -152,7 +152,7 @@ __get_user(mask, &act->sa_mask); siginitset(&new_ka.sa.sa_mask, mask); } - + ret = do_sigaction(sig, act ? &new_ka : NULL, oact ? &old_ka : NULL); if (!ret && oact) { Index: syscall.c =================================================================== RCS file: /cvsroot/linux-vax/kernel-2.4/arch/vax/kernel/syscall.c,v retrieving revision 1.10 retrieving revision 1.11 diff -u -r1.10 -r1.11 --- syscall.c 1 Feb 2003 05:19:12 -0000 1.10 +++ syscall.c 12 Feb 2003 02:37:33 -0000 1.11 @@ -100,12 +100,12 @@ /* atp aug 2001, FIXME: ptrace/strace syscall stuff */ __asm__(" pushl %1 \n" - " subl2 %2,sp \n" - " 1: movc3 %2,4(%4),(sp) \n" + " subl2 %2,%%sp \n" + " 1: movc3 %2,4(%4),(%%sp) \n" " calls %3, %5 \n" " brb 3f \n" - " 2: movl %6, r0 \n" - " 3: movl r0, %0 \n" + " 2: movl %6, %%r0 \n" + " 3: movl %%r0, %0 \n" " .section ex_table,\"a\" \n" " .align 2 \n" " .long 1b, 2b \n" |
From: Dave A. <ai...@us...> - 2003-02-12 02:38:06
|
Update of /cvsroot/linux-vax/kernel-2.4/arch/vax/lib In directory sc8-pr-cvs1:/tmp/cvs-serv5736/arch/vax/lib Modified Files: checksum.S clear_user.S copy_tofrom_user.S string.c strncpy_user.S strnlen_user.S Log Message: DA: update for new toolchain build... add percentage signs to all assembly routines Index: checksum.S =================================================================== RCS file: /cvsroot/linux-vax/kernel-2.4/arch/vax/lib/checksum.S,v retrieving revision 1.2 retrieving revision 1.3 diff -u -r1.2 -r1.3 --- checksum.S 3 Mar 2001 13:27:49 -0000 1.2 +++ checksum.S 12 Feb 2003 02:37:33 -0000 1.3 @@ -46,9 +46,9 @@ .text ENTRY(csum_partial) .word 0x3e - movl 4(ap), r2 /* r2 now has buf */ - movl 8(ap), r3 /* r3 has len */ - movl 12(ap), r0 /* r4 has sum */ + movl 4(%ap), %r2 /* r2 now has buf */ + movl 8(%ap), %r3 /* r3 has len */ + movl 12(%ap), %r0 /* r4 has sum */ /* test stuff */ # Check Alignment @@ -56,54 +56,54 @@ # Alignment uses up two bytes # Jump if we have two bytes # something < 2 deal with it - bbc $1, r2, 2f # Check is bit 1 , jump if clear - subl2 $2, r3 # Alignment uses up 2 bytes + bbc $1, %r2, 2f # Check is bit 1 , jump if clear + subl2 $2, %r3 # Alignment uses up 2 bytes bgequ 1f # Jump if we have at least two bytes - addl2 $2, r3 # Deal with it if we have not already + addl2 $2, %r3 # Deal with it if we have not already jmp 6f 1: /* If here copy halfword, and checksum it, */ - addw2 (r2), r0 # Add the half double-word to r0 - adwc $0, r0 # Carry - addl2 $2, r2 # move pointer on two bytes + addw2 (%r2), %r0 # Add the half double-word to r0 + adwc $0, %r0 # Carry + addl2 $2, %r2 # move pointer on two bytes 2: /* Get 32-bit word count and do 3 checksum on it */ /* if 0 count jump over it */ -# divl3 $32, r3, r5 - ashl $-5, r3, r5 +# divl3 $32, %r3, %r5 + ashl $-5, %r3, %r5 beqlu 4f -3: addl2 (r2), r0 # Checksum 32 bytes - adwc 4(r2), r0 - adwc 8(r2), r0 - adwc 12(r2), r0 - adwc 16(r2), r0 - adwc 20(r2), r0 - adwc 24(r2), r0 - adwc 28(r2), r0 - adwc $0, r0 - addl2 $32, r2 - sobgtr r5,3b +3: addl2 (%r2), %r0 # Checksum 32 bytes + adwc 4(%r2), %r0 + adwc 8(%r2), %r0 + adwc 12(%r2), %r0 + adwc 16(%r2), %r0 + adwc 20(%r2), %r0 + adwc 24(%r2), %r0 + adwc 28(%r2), %r0 + adwc $0, %r0 + addl2 $32, %r2 + sobgtr %r5,3b /* jump not equal back to 3b*/ -4: bicl3 $0xFFFFFFE3, r3, r5 /* D.A. My method for an AND, AND r3 with 0x1C (00011100) */ +4: bicl3 $0xFFFFFFE3, %r3, %r5 /* D.A. My method for an AND, AND r3 with 0x1C (00011100) */ /* this put in r5 a value of 4, 8, 12, 16, 20, 24, 28 bytes */ beqlu 6f /* rotate r5 by -2 gives 1, 2, 3, 4, 5, 6, 7 */ - rotl $-2, r5, r5 -5: addl2 (r2), r0 /* Add in long from R2 */ - adwc $0, r0 /* Add in carry */ - addl2 $4, r2 /* move r2 pointer along 4 bytes */ - sobgtr r5, 5b /* jump to 5: if r5 is > 0 */ -6: bicl3 $0xFFFFFFFC, r3, r5 /* AND either 1 or 2 into r5 */ + rotl $-2, %r5, %r5 +5: addl2 (%r2), %r0 /* Add in long from R2 */ + adwc $0, %r0 /* Add in carry */ + addl2 $4, %r2 /* move r2 pointer along 4 bytes */ + sobgtr %r5, 5b /* jump to 5: if r5 is > 0 */ +6: bicl3 $0xFFFFFFFC, %r3, %r5 /* AND either 1 or 2 into r5 */ beqlu 9f /* if no further bytes we are finished */ - cmpl $2, r5 /* compare what we have left with 2 */ + cmpl $2, %r5 /* compare what we have left with 2 */ blssu 7f /* if 2 or greater go to 7f */ - movw (r2), r3 /* move a word into r3 */ - addl2 $2, r2 /* move r2 on two bytes */ - cmpl $2, r5 + movw (%r2), %r3 /* move a word into r3 */ + addl2 $2, %r2 /* move r2 on two bytes */ + cmpl $2, %r5 beqlu 8f /* if what are we checking here?? */ - rotl $16, r3, r3 /* rotate r3 by a half word. */ - bicl2 $0xFFFF, r3 /* AND off bottom half */ -7: addb2 (r2), r3 /* ADD Byte from R2 to R3 */ -8: addl2 r3, r0 /* Add Long R3 */ - adwc $0, r0 /* Add in any carry */ + rotl $16, %r3, %r3 /* rotate r3 by a half word. */ + bicl2 $0xFFFF, %r3 /* AND off bottom half */ +7: addb2 (%r2), %r3 /* ADD Byte from R2 to R3 */ +8: addl2 %r3, %r0 /* Add Long R3 */ + adwc $0, %r0 /* Add in any carry */ 9: ret Index: clear_user.S =================================================================== RCS file: /cvsroot/linux-vax/kernel-2.4/arch/vax/lib/clear_user.S,v retrieving revision 1.4 retrieving revision 1.5 diff -u -r1.4 -r1.5 --- clear_user.S 20 May 2001 20:45:59 -0000 1.4 +++ clear_user.S 12 Feb 2003 02:37:33 -0000 1.5 @@ -22,11 +22,11 @@ .text ENTRY(__clear_user) .word 0x3e - movl 4(ap), r1 /* r1 now has addr */ - movl 8(ap), r0 /* r0 has size */ + movl 4(%ap), %r1 /* r1 now has addr */ + movl 8(%ap), %r0 /* r0 has size */ beql 2f -1: EX(movb, $0, (r1)+, fault) - sobgtr r0, 1b +1: EX(movb, $0, (%r1)+, fault) + sobgtr %r0, 1b 2: ret .section .fixup, "ax" Index: copy_tofrom_user.S =================================================================== RCS file: /cvsroot/linux-vax/kernel-2.4/arch/vax/lib/copy_tofrom_user.S,v retrieving revision 1.1 retrieving revision 1.2 diff -u -r1.1 -r1.2 --- copy_tofrom_user.S 11 Mar 2001 22:08:00 -0000 1.1 +++ copy_tofrom_user.S 12 Feb 2003 02:37:33 -0000 1.2 @@ -21,13 +21,16 @@ .text ENTRY(__copy_tofrom_user) .word 0x3e - movl 4(ap), r2 /* to in r2 */ - movl 8(ap), r3 /* from in r3 */ - movl 12(ap), r0 /* size in r0 */ + movl 4(%ap), %r2 /* to in r2 */ + movl 8(%ap), %r3 /* from in r3 */ + movl 12(%ap), %r0 /* size in r0 */ -1: EX(movb, (r3)+, r4, l_fixup) - EX(movb, r4, (r2)+, s_fixup) - sobgtr r0, 1b + cmpl $0, %r0 + beql 2f +1: EX(movb, (%r3)+, %r4, l_fixup) + EX(movb, %r4, (%r2)+, s_fixup) + sobgtr %r0, 1b +2: ret .section .fixup,"ax" .align 4 Index: string.c =================================================================== RCS file: /cvsroot/linux-vax/kernel-2.4/arch/vax/lib/string.c,v retrieving revision 1.3 retrieving revision 1.4 diff -u -r1.3 -r1.4 --- string.c 29 Jan 2001 00:59:26 -0000 1.3 +++ string.c 12 Feb 2003 02:37:33 -0000 1.4 @@ -207,17 +207,17 @@ void * memset(void * s, int c , __kernel_size_t count) { asm ( - " movl %2, r6 \n" /* R6 holds bytes left */ - " movl %0, r3 \n" /* dest in R3 */ - " movl $0xffff, r7 \n" /* R7 always holds 65535 */ + " movl %2, %%r6 \n" /* R6 holds bytes left */ + " movl %0, %%r3 \n" /* dest in R3 */ + " movl $0xffff, %%r7 \n" /* R7 always holds 65535 */ " next_chunk: \n" - " cmpl r6, r7 \n" + " cmpl %%r6, %%r7 \n" " blequ last_chunk \n" /* < 65535 bytes left */ - " movc5 $0, 0, %1, r7, (r3) \n" /* MOVC5 updates R3 for us */ - " subl2 r7, r6 \n" + " movc5 $0, 0, %1, %%r7, (%%r3) \n" /* MOVC5 updates R3 for us */ + " subl2 %%r7, %%r6 \n" " brb next_chunk \n" "last_chunk: \n" - " movc5 $0, 0, %1, r6, (r3) " + " movc5 $0, 0, %1, %%r6, (%%r3) " : /* no outputs */ : "g" (s), "g" (c), "g" (count) : "r0", "r1", "r2", "r3", "r4", "r5", "r6", "r7"); Index: strncpy_user.S =================================================================== RCS file: /cvsroot/linux-vax/kernel-2.4/arch/vax/lib/strncpy_user.S,v retrieving revision 1.2 retrieving revision 1.3 diff -u -r1.2 -r1.3 --- strncpy_user.S 11 Mar 2001 22:08:00 -0000 1.2 +++ strncpy_user.S 12 Feb 2003 02:37:33 -0000 1.3 @@ -22,19 +22,19 @@ .text ENTRY(__strncpy_from_user) .word 0x3e - movl 4(ap), r2 /* r2 now has dst */ - movl 8(ap), r3 /* r3 now has src */ - movl 12(ap), r0 /* r0 has count */ - movl r0, r1 /* keep count in r1 */ + movl 4(%ap), %r2 /* r2 now has dst */ + movl 8(%ap), %r3 /* r3 now has src */ + movl 12(%ap), %r0 /* r0 has count */ + movl %r0, %r1 /* keep count in r1 */ beql 2f -1: EX(movb, (r3)+, r4, fault) - movb r4, (r2)+ - cmpb $0, r4 +1: EX(movb, (%r3)+, %r4, fault) + movb %r4, (%r2)+ + cmpb $0, %r4 beql 2f - sobgtr r1, 1b -2: subl2 r1, r0 + sobgtr %r1, 1b +2: subl2 %r1, %r0 ret .section .fixup, "ax" -fault: movl r0, -EFAULT +fault: movl %r0, -EFAULT ret .previous Index: strnlen_user.S =================================================================== RCS file: /cvsroot/linux-vax/kernel-2.4/arch/vax/lib/strnlen_user.S,v retrieving revision 1.1 retrieving revision 1.2 diff -u -r1.1 -r1.2 --- strnlen_user.S 11 Mar 2001 23:54:31 -0000 1.1 +++ strnlen_user.S 12 Feb 2003 02:37:33 -0000 1.2 @@ -21,19 +21,19 @@ .text ENTRY(__strnlen_user) .word 0x3e - movl 4(ap), r0 - movl 8(ap), r1 - movl r0, r2 + movl 4(%ap), %r0 + movl 8(%ap), %r1 + movl %r0, %r2 -1: EX(movb, (r0)+, r3, fault) - cmpb $0, r3 +1: EX(movb, (%r0)+, %r3, fault) + cmpb $0, %r3 beql 2f - sobgtr r1, 1b - incl r0 -2: subl2 r2, r0 + sobgtr %r1, 1b + incl %r0 +2: subl2 %r2, %r0 ret .section .fixup,"ax" .align 4 -fault: movl $0, r0 +fault: movl $0, %r0 ret |
From: Dave A. <ai...@us...> - 2003-02-12 02:38:05
|
Update of /cvsroot/linux-vax/kernel-2.4/arch/vax/boot In directory sc8-pr-cvs1:/tmp/cvs-serv5736/arch/vax/boot Modified Files: cpu_sel.S head.S lib.S mmstart.S Log Message: DA: update for new toolchain build... add percentage signs to all assembly routines Index: cpu_sel.S =================================================================== RCS file: /cvsroot/linux-vax/kernel-2.4/arch/vax/boot/cpu_sel.S,v retrieving revision 1.8 retrieving revision 1.9 diff -u -r1.8 -r1.9 --- cpu_sel.S 20 May 2002 09:56:18 -0000 1.8 +++ cpu_sel.S 12 Feb 2003 02:37:32 -0000 1.9 @@ -72,12 +72,12 @@ movl *CVAX_SIDEX_ADDR, cpu_sidex # Is this a Q22-bus machine or a VAXstation 3100 series? - extv $CVAX_SIDEX_TYPE_SHIFT, $CVAX_SIDEX_TYPE_SIZE, cpu_sidex, r0 + extv $CVAX_SIDEX_TYPE_SHIFT, $CVAX_SIDEX_TYPE_SIZE, cpu_sidex, %r0 - cmpl $CVAX_SIDEX_TYPE_Q22, r0 + cmpl $CVAX_SIDEX_TYPE_Q22, %r0 beql cvax_q22 - cmpl $CVAX_SIDEX_TYPE_VS3100, r0 + cmpl $CVAX_SIDEX_TYPE_VS3100, %r0 beql cvax_vs3100 # Type E/P/L 20040004 at console to get SIDEX value and report to @@ -90,15 +90,15 @@ cvax_q22: # There are 3 different Q22 CVAX implementations, we only support # the KA650 at the moment - extv $CVAX_Q22_SUBTYPE_SHIFT, $CVAX_Q22_SUBTYPE_SIZE, cpu_sidex, r0 + extv $CVAX_Q22_SUBTYPE_SHIFT, $CVAX_Q22_SUBTYPE_SIZE, cpu_sidex, %r0 - cmpl $CVAX_Q22_SUBTYPE_KA640, r0 + cmpl $CVAX_Q22_SUBTYPE_KA640, %r0 beql cvax_q22_ka640 - cmpl $CVAX_Q22_SUBTYPE_KA650, r0 + cmpl $CVAX_Q22_SUBTYPE_KA650, %r0 beql cvax_q22_ka650 - cmpl $CVAX_Q22_SUBTYPE_KA655, r0 + cmpl $CVAX_Q22_SUBTYPE_KA655, %r0 beql cvax_q22_ka655 # Type E/P/L 20040004 at console to get SIDEX value and report to @@ -140,15 +140,15 @@ vax_uvax2: # Extract subtype from SID - extv $UVAX2_SID_SUBTYPE_SHIFT, $UVAX2_SID_SUBTYPE_SIZE, cpu_sid, r0 + extv $UVAX2_SID_SUBTYPE_SHIFT, $UVAX2_SID_SUBTYPE_SIZE, cpu_sid, %r0 - cmpl $UVAX2_SID_SUBTYPE_KA630, r0 + cmpl $UVAX2_SID_SUBTYPE_KA630, %r0 beql uvax2_ka630 - cmpl $UVAX2_SID_SUBTYPE_KA410, r0 + cmpl $UVAX2_SID_SUBTYPE_KA410, %r0 beql uvax2_ka410 - cmpl $UVAX2_SID_SUBTYPE_CHARON, r0 + cmpl $UVAX2_SID_SUBTYPE_CHARON, %r0 beql uvax2_ka630 # Type E/I PR$_SID at console to get SID register value and report to @@ -173,14 +173,14 @@ vax_soc: movl *SOC_SIDEX_ADDR, cpu_sidex #specific check for value of sid for VXT2000 - extv $SOC_SIDEX_TYPE_SHIFT, $SOC_SIDEX_TYPE_SIZE, cpu_sidex, r0 - cmpl $SOC_SIDEX_TYPE_VXT, r0 + extv $SOC_SIDEX_TYPE_SHIFT, $SOC_SIDEX_TYPE_SIZE, cpu_sidex, %r0 + cmpl $SOC_SIDEX_TYPE_VXT, %r0 beql soc_vxt # Extract subtype from SID - extv $SOC_Q22_SUBTYPE_SHIFT, $SOC_Q22_SUBTYPE_SIZE, cpu_sidex, r0 + extv $SOC_Q22_SUBTYPE_SHIFT, $SOC_Q22_SUBTYPE_SIZE, cpu_sidex, %r0 - cmpl $SOC_Q22_SUBTYPE_KA660, r0 + cmpl $SOC_Q22_SUBTYPE_KA660, %r0 beql soc_ka660 # Type E/I PR$_SID at console to get SID register value and report to Index: head.S =================================================================== RCS file: /cvsroot/linux-vax/kernel-2.4/arch/vax/boot/head.S,v retrieving revision 1.15 retrieving revision 1.16 diff -u -r1.15 -r1.16 --- head.S 9 Apr 2002 13:50:55 -0000 1.15 +++ head.S 12 Feb 2003 02:37:32 -0000 1.16 @@ -29,18 +29,18 @@ mtpr $0, $PR_MAPEN mtpr $31, $PR_IPL # save r11, ap and scbb and location of command line - movl ap, boot_ap - movl r11, boot_r11 + movl %ap, boot_ap + movl %r11, boot_r11 mfpr $PR_SCBB, boot_scb - movab bootparam, r5 - addl2 $PAGE_OFFSET,r5 # we will only access this when mapen=1 - movl r5,kernel_cmd_line + movab bootparam, %r5 + 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 + moval start, %r5 + subl2 $0x200, %r5 + movl %r5,%sp -# movzbl $0x42,r2 +# movzbl $0x42,%r2 # jsb 0x20040058 jsb identify_cpu @@ -49,52 +49,52 @@ # 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, r2 - moval start, r3 + movl mv, %r2 + moval start, %r3 - subl2 $PAGE_OFFSET+KERNEL_START_PHYS, r3 - addl2 r3, MV_PRE_VM_PUTCHAR(r2) - addl2 r3, MV_PRE_VM_GETCHAR(r2) - addl2 r3, MV_CPU_TYPE_STR(r2) + subl2 $PAGE_OFFSET+KERNEL_START_PHYS, %r3 + addl2 %r3, MV_PRE_VM_PUTCHAR(%r2) + addl2 %r3, MV_PRE_VM_GETCHAR(%r2) + addl2 %r3, MV_CPU_TYPE_STR(%r2) # pre_vm_init is called after we relocate - subl2 $PAGE_OFFSET, MV_PRE_VM_INIT(r2) + subl2 $PAGE_OFFSET, MV_PRE_VM_INIT(%r2) # print the cpu type jsb crlf - movab msg_cpu_type, r10 + movab msg_cpu_type, %r10 jsb printstr jsb crlf - moval kernel_cmd_line, r10 - movl (r10),r10 + moval kernel_cmd_line, %r10 + movl (%r10),%r10 jsb printint - movl mv, r10 - calls $0, *MV_CPU_TYPE_STR(r10) - movl r0, r10 + movl mv, %r10 + calls $0, *MV_CPU_TYPE_STR(%r10) + movl %r0, %r10 jsb printstr jsb crlf # print first line of debug diagnostics - movab msg_loaded, r10 # ascii string + movab msg_loaded, %r10 # ascii string jsb printstr - moval start, r10 # where we were loaded + moval start, %r10 # where we were loaded jsb printint jsb crlf - movab msg_registers, r10 # ascii string + movab msg_registers, %r10 # ascii string jsb printstr jsb space - movl boot_r11, r11 - movl r11,r10 # r11 (holds the rpb base address, usually 0x0 ) + movl boot_r11, %r11 + movl %r11,%r10 # r11 (holds the rpb base address, usually 0x0 ) jsb printint jsb space - movl 48(r11), r10 # saved r5 in RPB (argument to BOOT command) + movl 48(%r11), %r10 # saved r5 in RPB (argument to BOOT command) jsb printint jsb space - movl ap, r10 # argument pointer (struct arglist) + movl %ap, %r10 # argument pointer (struct arglist) jsb printint jsb space - movl sp, r10 # stack pointer + movl %sp, %r10 # stack pointer jsb printint jsb crlf @@ -112,27 +112,27 @@ #inside one chunk the data is moved bottom-to-top. #Assumed that 1MB - load_address > 65535B otherwise #it will break. - movl $__bss_start,r6 - subl2 $start,r6 # byte count to r6 - movab __bss_start,r1 - subl2 $0xffff, r1 # r1 points to top chunk of source - movl $KERNEL_START_PHYS, r3 # dest address to r3 - addl2 r6,r3 - subl2 $0xffff,r3 #r3 points to top chunk of dest + movl $__bss_start,%r6 + subl2 $start,%r6 # byte count to r6 + movab __bss_start,%r1 + subl2 $0xffff, %r1 # r1 points to top chunk of source + movl $KERNEL_START_PHYS, %r3 # dest address to r3 + addl2 %r6,%r3 + subl2 $0xffff,%r3 #r3 points to top chunk of dest # copy_chunk: - cmpl $0xffff,r6 + cmpl $0xffff,%r6 bgeq last_chunk - movc3 $0xffff,(r1),(r3) - subl2 $0x1fffe,r1 #place r1 to bottom of new src. chunk - subl2 $0x1fffe,r3 #place r3 to bottom of new dest. chunk - subl2 $0xffff,r6 + movc3 $0xffff,(%r1),(%r3) + subl2 $0x1fffe,%r1 #place r1 to bottom of new src. chunk + subl2 $0x1fffe,%r3 #place r3 to bottom of new dest. chunk + subl2 $0xffff,%r6 beql copy_done #this instruction is probably not needed brb copy_chunk last_chunk: - movab start,r1 - movl $KERNEL_START_PHYS,r3 - movc3 r6,(r1),(r3) + movab start,%r1 + movl $KERNEL_START_PHYS,%r3 + movc3 %r6,(%r1),(%r3) copy_done: # @@ -140,37 +140,37 @@ # 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, r3 # offset of .bss to r3 - addl2 $KERNEL_START_PHYS, r3 # phys address of .bss start now in r3 + subl3 $start, $__bss_start, %r3 # offset of .bss to r3 + addl2 $KERNEL_START_PHYS, %r3 # phys address of .bss start now in r3 fill_chunk: - cmpl $0xffff, r6 + cmpl $0xffff, %r6 bgeq last_fill - movc5 $0, (r3), $0, $0xffff, (r3) + movc5 $0, (%r3), $0, $0xffff, (%r3) # After movc5, r3 points to next dest addr - subl2 $0xffff, r6 + subl2 $0xffff, %r6 beql fill_done brb fill_chunk last_fill: - movc5 $0, (r3), $0, r6, (r3) + movc5 $0, (%r3), $0, %r6, (%r3) # After movc5, r3 points to just after # end of kernel fill_done: - decl r3 # - movl r3, r9 # save phys addr of last byte of kernel + decl %r3 # + movl %r3, %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, r3 - addl2 $reloc, r3 - subl2 $start,r3 - jmp (r3) + movl $KERNEL_START_PHYS, %r3 + addl2 $reloc, %r3 + subl2 $start,%r3 + jmp (%r3) halt reloc: @@ -179,17 +179,17 @@ # 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, r3 + addl3 %r2, boot_mv, mv + movl mv, %r3 #and the pre-vm i/o functions - addl2 r2, MV_PRE_VM_PUTCHAR(r3) - addl2 r2, MV_PRE_VM_GETCHAR(r3) - addl2 r2, MV_CPU_TYPE_STR(r3) + addl2 %r2, MV_PRE_VM_PUTCHAR(%r3) + addl2 %r2, MV_PRE_VM_GETCHAR(%r3) + addl2 %r2, MV_CPU_TYPE_STR(%r3) - movab msg_relocated, r10 # debugging line no 2 + movab msg_relocated, %r10 # debugging line no 2 jsb printstr - moval reloc, r10 # where we are now (physical) + moval reloc, %r10 # where we are now (physical) jsb printint jsb crlf # @@ -198,10 +198,10 @@ jsb cpu_id # save RPB before it gets obliterated - movl boot_r11, r11 - movc3 rpb_size, (r11), boot_rpb - movl mv, r3 - calls $0, *MV_PRE_VM_INIT(r3) + movl boot_r11, %r11 + movc3 rpb_size, (%r11), boot_rpb + movl mv, %r3 + calls $0, *MV_PRE_VM_INIT(%r3) # set up the system page table for all of physical memory. # for the i386, the first page only is setup. For us, as the @@ -222,21 +222,21 @@ # # 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 76(r11), r7 # pfncnt from vmb. + movl $0, %r6 # pfn number + movl 76(%r11), %r7 # pfncnt from vmb. 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 + 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 @@ -246,61 +246,61 @@ # 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 + 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 + 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 + 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 + 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 + 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 # 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 + mtpr %r9, $PR_PCBB # no need to TBIA - memory mapping not enabled # ready to turn on VM - moval msg_starting_vm, r10 + moval msg_starting_vm, %r10 jsb printstr jsb 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. + 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, r3 - addl2 $PAGE_OFFSET, MV_CPU_TYPE_STR(r3) + movl mv, %r3 + addl2 $PAGE_OFFSET, MV_CPU_TYPE_STR(%r3) # relocate the interrupt stack. The C code will turn the # last page of the interrupt stack into a read-only guard @@ -309,18 +309,18 @@ # 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 # my 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_task_union, r0 - addl2 $8192, r0 # taken from <linux/sched.h> - mtpr r0,$PR_KSP + moval init_task_union, %r0 + addl2 $8192, %r0 # taken from <linux/sched.h> + mtpr %r0,$PR_KSP pushl $0x001f0000 # IS=0, accmode=prevmode=K, IPL=31 pushab now_on_kstack @@ -351,21 +351,21 @@ clrl prom_sidex clrl cpu_type mfpr $PR_SID, cpu_type - movab msg_cpu_type, r10 + movab msg_cpu_type, %r10 jsb printstr - movl cpu_type, r10 + movl cpu_type, %r10 jsb printint jsb space - movl cpu_type, r7 - extv $24, $8, r7, r6 - cmpl r6, $0x0A + movl cpu_type, %r7 + extv $24, $8, %r7, %r6 + cmpl %r6, $0x0A blss no_sidex # note - we may not need to do this here. Is the board type used # before we remap prom ? movl 0x20040004, prom_sidex - movab msg_sidex, r10 + movab msg_sidex, %r10 jsb printstr - movl prom_sidex, r10 + movl prom_sidex, %r10 jsb printint no_sidex: jsb crlf Index: lib.S =================================================================== RCS file: /cvsroot/linux-vax/kernel-2.4/arch/vax/boot/lib.S,v retrieving revision 1.2 retrieving revision 1.3 diff -u -r1.2 -r1.3 --- lib.S 26 Jan 2001 00:27:00 -0000 1.2 +++ lib.S 12 Feb 2003 02:37:32 -0000 1.3 @@ -5,35 +5,35 @@ .section .vaxbootlib -# r2 contains ASCII code of character to print to console, +# %r2 contains ASCII code of character to print to console, .globl boot_putchar boot_putchar: - movl mv, r0 - pushl r2 - calls $1, *MV_PRE_VM_PUTCHAR(r0) + movl mv, %r0 + pushl %r2 + calls $1, *MV_PRE_VM_PUTCHAR(%r0) rsb # print a long integer in hex. integer is in r10, uses r2 and r8 # .globl printint printint: - clrl r8 - clrl r2 - movzbl $0x1C, r2 - subl2 r2, r8 + clrl %r8 + clrl %r2 + movzbl $0x1C, %r2 + subl2 %r2, %r8 L1: - clrl r2 - ashl r8, r10, r2 - bicl2 $0xfffffff0, r2 -; bicl2 $-64, r2 - cmpl r2,$0x09 + clrl %r2 + ashl %r8, %r10, %r2 + bicl2 $0xfffffff0, %r2 +; bicl2 $-64, %r2 + cmpl %r2,$0x09 bleq H1 - addl2 $0x07, r2 + addl2 $0x07, %r2 H1: - addl2 $0x30, r2 + addl2 $0x30, %r2 jsb boot_putchar - addl2 $0x04, r8 - cmpl r8,$0x04 + addl2 $0x04, %r8 + cmpl %r8,$0x04 bneq L1 rsb # @@ -41,10 +41,10 @@ # .globl crlf crlf: - clrl r2 - movzbl $0x0A, r2 + clrl %r2 + movzbl $0x0A, %r2 jsb boot_putchar - movzbl $0x0D, r2 + movzbl $0x0D, %r2 jsb boot_putchar rsb # @@ -53,27 +53,27 @@ # .globl printstr printstr: - clrl r8 - movl r10 ,r5 -L2: clrl r2 - movzbl (r5),r2 + clrl %r8 + movl %r10 ,%r5 +L2: clrl %r2 + movzbl (%r5),%r2 jsb boot_putchar - incl r5 - cmpb (r5), $0x0 + incl %r5 + cmpb (%r5), $0x0 bneq L2 rsb .global printchar printchar: - movzbl (r10), r7 - cmpl r7, $0x7d + movzbl (%r10), %r7 + cmpl %r7, $0x7d bleq PASC2 - movzbl $0x2e, r7 -PASC2: cmpl r7, $0x41 + movzbl $0x2e, %r7 +PASC2: cmpl %r7, $0x41 bgeq PASC3 - movzbl $0x2e, r7 + movzbl $0x2e, %r7 PASC3: - movl r7,r2 + movl %r7,%r2 jsb boot_putchar rsb @@ -81,7 +81,7 @@ .globl space space: - movzbl $0x20, r2 + movzbl $0x20, %r2 jsb boot_putchar rsb Index: mmstart.S =================================================================== RCS file: /cvsroot/linux-vax/kernel-2.4/arch/vax/boot/mmstart.S,v retrieving revision 1.2 retrieving revision 1.3 diff -u -r1.2 -r1.3 --- mmstart.S 26 Jun 2001 18:59:00 -0000 1.2 +++ mmstart.S 12 Feb 2003 02:37:32 -0000 1.3 @@ -16,52 +16,52 @@ .balign 0x200 VAX_start_mm: .word 0xffc # protect registers r2->r11 - movl sp,r8 # save the stack pointer - movl fp,r9 # save the frame pointer - clrl r4 # clear the decks - clrl r5 - clrl r6 - clrl r10 - movab VAX_start_mm, r10 # This is where we start mapping - ashl $-9, r10, r4 # calculate the pfn of the start of this fn - movab P0_table,r3 # Phys address of our P0 table - addl2 $PAGE_OFFSET,r3 # virtual address of our P0 table - ashl $0x02, r4, r5 # P0 PTE offset in bytes - subl2 r5, r3 # fake P0BR in bytes - ashl $-2, r5, r6 # fake P0LR in PTEs - addl2 $0x08, r6 # add in length of table - mtpr r3, $PR_P0BR # load P0BR - mtpr r6, $PR_P0LR # load P0LR + movl %sp,%r8 # save the stack pointer + movl %fp,%r9 # save the frame pointer + clrl %r4 # clear the decks + clrl %r5 + clrl %r6 + clrl %r10 + movab VAX_start_mm, %r10 # This is where we start mapping + ashl $-9, %r10, %r4 # calculate the pfn of the start of this fn + movab P0_table,%r3 # Phys address of our P0 table + addl2 $PAGE_OFFSET,%r3 # virtual address of our P0 table + ashl $0x02, %r4, %r5 # P0 PTE offset in bytes + subl2 %r5, %r3 # fake P0BR in bytes + ashl $-2, %r5, %r6 # fake P0LR in PTEs + addl2 $0x08, %r6 # add in length of table + mtpr %r3, $PR_P0BR # load P0BR + mtpr %r6, $PR_P0LR # load P0LR mtpr $PAGE_OFFSET,$PR_P1BR # make sure P1BR is sensible mtpr $0, $PR_P1LR # and zero length - movab P0_table,r3 # Phys address of P0table. - movl 0x08,r2 -P0fill: movl (r3), r1 # fill the P0table with the right pfns - addl2 r4, r1 - movl r1, (r3)+ - sobgtr r2, P0fill + movab P0_table,%r3 # Phys address of P0table. + movl $0x08,%r2 +P0fill: movl (%r3), %r1 # fill the P0table with the right pfns + addl2 %r4, %r1 + movl %r1, (%r3)+ + sobgtr %r2, P0fill # # fixup stack # - addl2 $PAGE_OFFSET, 8(sp) # saved ap. - addl2 $PAGE_OFFSET, 12(sp)# fixup saved fp - addl2 $PAGE_OFFSET, 16(sp)# fixup saved pc + addl2 $PAGE_OFFSET, 8(%sp) # saved ap. + addl2 $PAGE_OFFSET, 12(%sp)# fixup saved fp + addl2 $PAGE_OFFSET, 16(%sp)# fixup saved pc # active stack -# movl sp, r10 -# subl2 $0x80, r10 -# movl $0x40, r9 +# movl %sp, %r10 +# subl2 $0x80, %r10 +# movl $0x40, %r9 # jsb hexdump # halt - addl2 $PAGE_OFFSET, sp # fixup sp to virtual address - addl2 $PAGE_OFFSET, fp # fixup fp to virtual address - movab vreloc, r6 # where we want to end up (phys) - addl2 $PAGE_OFFSET, r6 # & virt + addl2 $PAGE_OFFSET, %sp # fixup sp to virtual address + addl2 $PAGE_OFFSET, %fp # fixup fp to virtual address + movab vreloc, %r6 # where we want to end up (phys) + addl2 $PAGE_OFFSET, %r6 # & virt # According to ARM, we should invalidate the whole TB here mtpr $0, $PR_TBIA # clear translation buffer mtpr $1, $PR_MAPEN # switch on mm. - jmp (r6) + jmp (%r6) halt vreloc: # made it. now fixup sp fp and stack frame # cant use prom routines now. |
From: Dave A. <ai...@us...> - 2003-02-12 02:38:05
|
Update of /cvsroot/linux-vax/kernel-2.4/arch/vax In directory sc8-pr-cvs1:/tmp/cvs-serv5736/arch/vax Modified Files: Makefile config.in Log Message: DA: update for new toolchain build... add percentage signs to all assembly routines Index: Makefile =================================================================== RCS file: /cvsroot/linux-vax/kernel-2.4/arch/vax/Makefile,v retrieving revision 1.12 retrieving revision 1.13 diff -u -r1.12 -r1.13 --- Makefile 2 May 2002 14:33:26 -0000 1.12 +++ Makefile 12 Feb 2003 02:37:31 -0000 1.13 @@ -13,7 +13,7 @@ # Copyright (C) 1994 by Linus Torvalds # -LD=$(CROSS_COMPILE)ld -m elf_vax +LD=$(CROSS_COMPILE)ld -m elf32vax CPP=$(CC) -E OBJCOPY=$(CROSS_COMPILE)objcopy -O binary -R .note -R .comment -S Index: config.in =================================================================== RCS file: /cvsroot/linux-vax/kernel-2.4/arch/vax/config.in,v retrieving revision 1.15 retrieving revision 1.16 diff -u -r1.15 -r1.16 --- config.in 1 Feb 2003 05:23:05 -0000 1.15 +++ config.in 12 Feb 2003 02:37:32 -0000 1.16 @@ -181,9 +181,9 @@ bool 'Kernel debugging' CONFIG_DEBUG_KERNEL if [ "$CONFIG_DEBUG_KERNEL" != "n" ]; then - bool ' Debug high memory support' CONFIG_DEBUG_HIGHMEM +# bool ' Debug high memory support' CONFIG_DEBUG_HIGHMEM bool ' Debug memory allocations' CONFIG_DEBUG_SLAB - bool ' Memory mapped I/O debugging' CONFIG_DEBUG_IOVIRT +# bool ' Memory mapped I/O debugging' CONFIG_DEBUG_IOVIRT bool ' Magic SysRq key' CONFIG_MAGIC_SYSRQ bool ' Spinlock debugging' CONFIG_DEBUG_SPINLOCK bool ' Verbose BUG() reporting (adds 70K)' CONFIG_DEBUG_BUGVERBOSE |
From: Dave A. <ai...@us...> - 2003-02-12 02:37:39
|
Update of /cvsroot/linux-vax/kernel-2.4/include/asm-vax In directory sc8-pr-cvs1:/tmp/cvs-serv5736/include/asm-vax Modified Files: byteorder.h mv.h posix_types.h stat.h unistd.h Log Message: DA: update for new toolchain build... add percentage signs to all assembly routines Index: byteorder.h =================================================================== RCS file: /cvsroot/linux-vax/kernel-2.4/include/asm-vax/byteorder.h,v retrieving revision 1.6 retrieving revision 1.7 diff -u -r1.6 -r1.7 --- byteorder.h 11 Mar 2001 23:49:00 -0000 1.6 +++ byteorder.h 12 Feb 2003 02:37:33 -0000 1.7 @@ -16,11 +16,11 @@ { __u32 t1; /* assume input is aabbccdd in x*/ - __asm__ volatile ("rotl $8, %1, r1\n\t" /* r1 = bbccddaa */ - "bicl3 $0xff00ff00, r1, %0\n\t" /* %0 = 00cc00aa */ - "rotl $-8, %1, r1\n\t" /* r1 = ddaabbcc */ - "bicl2 $0xff00ff, r1\n\t" /* r1 = dd00bb00 */ - "bisl2 r1, %0\n\t" /* %0 = ddccbbaa */ + __asm__ volatile ("rotl $8, %1, %%r1\n\t" /* r1 = bbccddaa */ + "bicl3 $0xff00ff00, %%r1, %0\n\t" /* %0 = 00cc00aa */ + "rotl $-8, %1, %%r1\n\t" /* r1 = ddaabbcc */ + "bicl2 $0xff00ff, %%r1\n\t" /* r1 = dd00bb00 */ + "bisl2 %%r1, %0\n\t" /* %0 = ddccbbaa */ : "=&g" (t1) : "r" (x) : "r1" ); return t1; } Index: mv.h =================================================================== RCS file: /cvsroot/linux-vax/kernel-2.4/include/asm-vax/mv.h,v retrieving revision 1.4 retrieving revision 1.5 diff -u -r1.4 -r1.5 --- mv.h 2 Dec 2002 02:55:09 -0000 1.4 +++ mv.h 12 Feb 2003 02:37:33 -0000 1.5 @@ -48,6 +48,7 @@ #define MV_CPU_GENERIC 0 #define MV_CPU_KA46 46 #define MV_CPU_KA55 55 +#define MV_CPU_KA650 650 #endif /* !__ASSEMBLY__ */ Index: posix_types.h =================================================================== RCS file: /cvsroot/linux-vax/kernel-2.4/include/asm-vax/posix_types.h,v retrieving revision 1.1 retrieving revision 1.2 diff -u -r1.1 -r1.2 --- posix_types.h 17 Jan 2001 16:18:52 -0000 1.1 +++ posix_types.h 12 Feb 2003 02:37:33 -0000 1.2 @@ -1,5 +1,5 @@ -#ifndef _VAX_POSIX_TYPES_H -#define _VAX_POSIX_TYPES_H +#ifndef __ARCH_VAX_POSIX_TYPES_H +#define __ARCH_VAX_POSIX_TYPES_H /* Source: ARM port */ /* #include <linux/config.h>*/ Index: stat.h =================================================================== RCS file: /cvsroot/linux-vax/kernel-2.4/include/asm-vax/stat.h,v retrieving revision 1.2 retrieving revision 1.3 diff -u -r1.2 -r1.3 --- stat.h 18 Jan 2001 18:49:49 -0000 1.2 +++ stat.h 12 Feb 2003 02:37:33 -0000 1.3 @@ -45,9 +45,9 @@ */ struct stat64 { unsigned short st_dev; - unsigned char __pad0[6]; - - unsigned long long st_ino; + unsigned char __pad0[10]; +#define STAT64_HAS_BROKEN_ST_INO + unsigned long __st_ino; unsigned int st_mode; unsigned int st_nlink; @@ -72,8 +72,7 @@ unsigned long st_ctime; unsigned long __pad7; /* will be high 32 bits of ctime someday */ - unsigned long __unused1; - unsigned long __unused2; + unsigned long long st_ino; }; #endif /* _VAX_STAT_H */ Index: unistd.h =================================================================== RCS file: /cvsroot/linux-vax/kernel-2.4/include/asm-vax/unistd.h,v retrieving revision 1.12 retrieving revision 1.13 diff -u -r1.12 -r1.13 --- unistd.h 14 Sep 2001 11:41:27 -0000 1.12 +++ unistd.h 12 Feb 2003 02:37:33 -0000 1.13 @@ -280,8 +280,8 @@ register long _sc_0 __asm__("r0"); \ _sc_0 = __NR_##name; \ __asm__ __volatile__ ("pushl $0x0\n\t" \ - "movl sp, ap\n\t" \ - "chmk r0 # %0 %1\n\t" \ + "movl %%sp, %%ap\n\t" \ + "chmk %%r0 # %0 %1\n\t" \ : "=r"(_sc_0) \ : "0"(_sc_0) \ : _syscall_clobbers); \ @@ -299,8 +299,8 @@ _sc_0 = __NR_##name; \ __asm__ __volatile__ ("pushl %2\n\t" \ "pushl $0x1\n\t" \ - "movl sp, ap\n\t" \ - "chmk r0 # %0 %1 %2\n\t" \ + "movl %%sp, %%ap\n\t" \ + "chmk %%r0 # %0 %1 %2\n\t" \ : "=r"(_sc_0) \ : "0"(_sc_0), "m"((long)arg1) \ : _syscall_clobbers); \ @@ -319,8 +319,8 @@ __asm__ __volatile__ ("pushl %3\n\t" \ "pushl %2\n\t" \ "pushl $0x2\n\t" \ - "movl sp, ap\n\t" \ - "chmk r0 # %0 %1 %2 %3\n\t" \ + "movl %%sp, %%ap\n\t" \ + "chmk %%r0 # %0 %1 %2 %3\n\t" \ : "=r"(_sc_0) \ : "0"(_sc_0), "m"((long)arg1), "m"((long)arg2) \ : _syscall_clobbers); \ @@ -342,8 +342,8 @@ "pushl %3\n\t" \ "pushl %2\n\t" \ "pushl $0x3\n\t" \ - "movl sp, ap\n\t" \ - "chmk r0 # %0 %1 %2 %3 %4\n\t" \ + "movl %%sp, %%ap\n\t" \ + "chmk %%r0 # %0 %1 %2 %3 %4\n\t" \ : "=r"(_sc_0) \ : "0"(_sc_0), "m"((long)arg1), "m"((long)arg2), \ "m"((long)arg3) \ @@ -365,8 +365,8 @@ "pushl %3\n\t" \ "pushl %2\n\t" \ "pushl $0x4\n\t" \ - "movl sp, ap\n\t" \ - "chmk r0 # %0 %1 %2 %3 %4 %5\n\t" \ + "movl %%sp, %%ap\n\t" \ + "chmk %%r0 # %0 %1 %2 %3 %4 %5\n\t" \ : "=r"(_sc_0) \ : "0"(_sc_0), "m"((long)arg1), "m"((long)arg2), \ "m"((long) arg3), "m"((long) arg4) \ @@ -390,8 +390,8 @@ "pushl %3\n\t" \ "pushl %2\n\t" \ "pushl $0x5\n\t" \ - "movl sp, ap\n\t" \ - "chmk r0 # %0 %1 %2 %3 %4 %5 %6\n\t" \ + "movl %%sp, %%ap\n\t" \ + "chmk %%r0 # %0 %1 %2 %3 %4 %5 %6\n\t" \ : "=r"(_sc_0) \ : "0"(_sc_0), "m"((long)arg1), "m"((long)arg2), \ "m"((long)arg3), "m"((long)arg4), \ @@ -417,8 +417,8 @@ "pushl %3\n\t" \ "pushl %2\n\t" \ "pushl $0x6\n\t" \ - "movl sp, ap\n\t" \ - "chmk r0 # %0 %1 %2 %3 %4 %5 %6 %7\n\t" \ + "movl %%sp, %%ap\n\t" \ + "chmk %%r0 # %0 %1 %2 %3 %4 %5 %6 %7\n\t" \ : "=r"(_sc_0) \ : "0"(_sc_0), "m"((long)arg1), "m"((long)arg2), \ "m"((long)arg3), "m"((long)arg4), \ @@ -437,7 +437,7 @@ { register int retval __asm__("r0"); __asm__("chmk %0" - : /* implicit output in r0 */ + : /* implicit output in %r0 */ : "g"(syscall) : "r0", "r1"); return retval; |