Commit d01b7e92 authored by Linus Torvalds's avatar Linus Torvalds

v2.5.1.8 -> v2.5.1.9

- Russell King: large ARM update
- Adam Richter et al: more kdev_t updates
parent 2161cc3b
VERSION = 2 VERSION = 2
PATCHLEVEL = 5 PATCHLEVEL = 5
SUBLEVEL = 2 SUBLEVEL = 2
EXTRAVERSION =-pre8 EXTRAVERSION =-pre9
KERNELRELEASE=$(VERSION).$(PATCHLEVEL).$(SUBLEVEL)$(EXTRAVERSION) KERNELRELEASE=$(VERSION).$(PATCHLEVEL).$(SUBLEVEL)$(EXTRAVERSION)
......
...@@ -9,7 +9,7 @@ ...@@ -9,7 +9,7 @@
LINKFLAGS :=-p -X -T arch/arm/vmlinux.lds LINKFLAGS :=-p -X -T arch/arm/vmlinux.lds
GZFLAGS :=-9 GZFLAGS :=-9
CFLAGS +=-fno-common -pipe CFLAGS +=-pipe
ifneq ($(CONFIG_NO_FRAME_POINTER),y) ifneq ($(CONFIG_NO_FRAME_POINTER),y)
CFLAGS :=$(CFLAGS:-fomit-frame-pointer=) CFLAGS :=$(CFLAGS:-fomit-frame-pointer=)
...@@ -22,9 +22,7 @@ endif ...@@ -22,9 +22,7 @@ endif
# Select CPU dependent flags. Note that order of declaration is important; # Select CPU dependent flags. Note that order of declaration is important;
# the options further down the list override previous items. # the options further down the list override previous items.
# #
# Note! For APCS-26 YOU MUST HAVE AN APCS-26 LIBGCC.A apcs-$(CONFIG_CPU_32) :=-mapcs-32
#
apcs-y :=-mapcs-32
apcs-$(CONFIG_CPU_26) :=-mapcs-26 -mcpu=arm3 -Os apcs-$(CONFIG_CPU_26) :=-mapcs-26 -mcpu=arm3 -Os
# This selects which instruction set is used. # This selects which instruction set is used.
...@@ -32,6 +30,7 @@ arch-y := ...@@ -32,6 +30,7 @@ arch-y :=
arch-$(CONFIG_CPU_32v3) :=-march=armv3 arch-$(CONFIG_CPU_32v3) :=-march=armv3
arch-$(CONFIG_CPU_32v4) :=-march=armv4 arch-$(CONFIG_CPU_32v4) :=-march=armv4
arch-$(CONFIG_CPU_32v5) :=-march=armv5 arch-$(CONFIG_CPU_32v5) :=-march=armv5
arch-$(CONFIG_CPU_XSCALE) :=-march=armv4 -Wa,-mxscale #-march=armv5te
# This selects how we optimise for the processor. # This selects how we optimise for the processor.
tune-y := tune-y :=
...@@ -39,15 +38,19 @@ tune-$(CONFIG_CPU_ARM610) :=-mtune=arm610 ...@@ -39,15 +38,19 @@ tune-$(CONFIG_CPU_ARM610) :=-mtune=arm610
tune-$(CONFIG_CPU_ARM710) :=-mtune=arm710 tune-$(CONFIG_CPU_ARM710) :=-mtune=arm710
tune-$(CONFIG_CPU_ARM720T) :=-mtune=arm7tdmi tune-$(CONFIG_CPU_ARM720T) :=-mtune=arm7tdmi
tune-$(CONFIG_CPU_ARM920T) :=-mtune=arm9tdmi tune-$(CONFIG_CPU_ARM920T) :=-mtune=arm9tdmi
tune-$(CONFIG_CPU_ARM922T) :=-mtune=arm9tdmi
tune-$(CONFIG_CPU_ARM926T) :=-mtune=arm9tdmi tune-$(CONFIG_CPU_ARM926T) :=-mtune=arm9tdmi
tune-$(CONFIG_CPU_SA110) :=-mtune=strongarm110 tune-$(CONFIG_CPU_SA110) :=-mtune=strongarm110
tune-$(CONFIG_CPU_SA1100) :=-mtune=strongarm1100 tune-$(CONFIG_CPU_SA1100) :=-mtune=strongarm1100
tune-$(CONFIG_CPU_XSCALE) :=-mtune=strongarm #-mtune=xscale
CFLAGS_BOOT :=$(apcs-y) $(arch-y) $(tune-y) -mshort-load-bytes -msoft-float
CFLAGS +=$(apcs-y) $(arch-y) $(tune-y) -mshort-load-bytes -msoft-float CFLAGS +=$(apcs-y) $(arch-y) $(tune-y) -mshort-load-bytes -msoft-float
AFLAGS +=$(apcs-y) $(arch-y) -mno-fpu -msoft-float AFLAGS +=$(apcs-y) $(arch-y) -mno-fpu -msoft-float
ifeq ($(CONFIG_CPU_26),y) ifeq ($(CONFIG_CPU_26),y)
PROCESSOR = armo PROCESSOR := armo
HEAD := arch/arm/mach-arc/head.o arch/arm/kernel/init_task.o
ifeq ($(CONFIG_ROM_KERNEL),y) ifeq ($(CONFIG_ROM_KERNEL),y)
DATAADDR = 0x02080000 DATAADDR = 0x02080000
TEXTADDR = 0x03800000 TEXTADDR = 0x03800000
...@@ -60,6 +63,7 @@ endif ...@@ -60,6 +63,7 @@ endif
ifeq ($(CONFIG_CPU_32),y) ifeq ($(CONFIG_CPU_32),y)
PROCESSOR = armv PROCESSOR = armv
HEAD := arch/arm/kernel/head.o arch/arm/kernel/init_task.o
TEXTADDR = 0xC0008000 TEXTADDR = 0xC0008000
LDSCRIPT = arch/arm/vmlinux-armv.lds.in LDSCRIPT = arch/arm/vmlinux-armv.lds.in
endif endif
...@@ -134,51 +138,55 @@ ifeq ($(CONFIG_ARCH_ANAKIN),y) ...@@ -134,51 +138,55 @@ ifeq ($(CONFIG_ARCH_ANAKIN),y)
MACHINE = anakin MACHINE = anakin
endif endif
export MACHINE PROCESSOR TEXTADDR GZFLAGS ifeq ($(CONFIG_ARCH_IOP310),y)
MACHINE = iop310
endif
ifeq ($(CONFIG_ARCH_ADIFCC),y)
MACHINE = adifcc
endif
export MACHINE PROCESSOR TEXTADDR GZFLAGS CFLAGS_BOOT
# Only set INCDIR if its not already defined above # Only set INCDIR if its not already defined above
# Grr, ?= doesn't work as all the other assignment operators do. Make bug? # Grr, ?= doesn't work as all the other assignment operators do. Make bug?
ifeq ($(origin INCDIR), undefined) ifeq ($(origin INCDIR), undefined)
INCDIR := $(MACHINE) INCDIR :=$(MACHINE)
endif endif
ifeq ($(origin DATAADDR), undefined) ifeq ($(origin DATAADDR), undefined)
DATAADDR := . DATAADDR := .
endif endif
# If we have a machine-specific directory, then include it in the build. # Do we have FASTFPE?
MACHDIR := arch/arm/mach-$(MACHINE) FASTFPE :=arch/arm/fastfpe
ifeq ($(MACHDIR),$(wildcard $(MACHDIR))) ifeq ($(FASTFPE),$(wildcard $(FASTFPE)))
SUBDIRS += $(MACHDIR) SUBDIRS +=$(FASTFPE)
CORE_FILES := $(MACHDIR)/$(MACHINE).o $(CORE_FILES) FASTFPE_OBJ :=$(FASTFPE)/fast-math-emu.o
endif endif
HEAD := arch/arm/kernel/head-$(PROCESSOR).o \ # If we have a machine-specific directory, then include it in the build.
arch/arm/kernel/init_task.o SUBDIRS +=arch/arm/mach-$(MACHINE) \
SUBDIRS += arch/arm/kernel arch/arm/mm arch/arm/lib arch/arm/nwfpe arch/arm/kernel arch/arm/mm arch/arm/lib arch/arm/nwfpe
CORE_FILES := arch/arm/kernel/kernel.o arch/arm/mm/mm.o $(CORE_FILES) CORE_FILES :=arch/arm/mach-$(MACHINE)/$(MACHINE).o \
LIBS := arch/arm/lib/lib.a $(LIBS) arch/arm/kernel/kernel.o arch/arm/mm/mm.o $(CORE_FILES)
LIBS :=arch/arm/lib/lib.a $(LIBS)
ifeq ($(CONFIG_FPE_NWFPE),y) ifeq ($(CONFIG_FPE_NWFPE),y)
LIBS := arch/arm/nwfpe/math-emu.o $(LIBS) LIBS :=arch/arm/nwfpe/math-emu.o $(LIBS)
endif endif
# Only include fastfpe if it is part of the kernel tree.
FASTFPE := arch/arm/fastfpe
ifeq ($(FASTFPE),$(wildcard $(FASTFPE)))
SUBDIRS += $(FASTFPE)
ifeq ($(CONFIG_FPE_FASTFPE),y) ifeq ($(CONFIG_FPE_FASTFPE),y)
LIBS := arch/arm/fastfpe/fast-math-emu.o $(LIBS) LIBS :=$(FASTFPE_OBJ) $(LIBS)
endif
endif endif
ifeq ($(findstring y,$(CONFIG_ARCH_CLPS7500) $(CONFIG_ARCH_L7200)),y) ifeq ($(findstring y,$(CONFIG_ARCH_CLPS7500) $(CONFIG_ARCH_L7200)),y)
SUBDIRS += drivers/acorn/char SUBDIRS +=drivers/acorn/char
DRIVERS += drivers/acorn/char/acorn-char.o DRIVERS +=drivers/acorn/char/acorn-char.o
endif endif
MAKEBOOT = $(MAKE) -C arch/$(ARCH)/boot MAKEBOOT =$(MAKE) -C arch/$(ARCH)/boot
MAKETOOLS = $(MAKE) -C arch/$(ARCH)/tools MAKETOOLS =$(MAKE) -C arch/$(ARCH)/tools
# The following is a hack to get 'constants.h' up # The following is a hack to get 'constants.h' up
# to date before starting compilation # to date before starting compilation
...@@ -254,7 +262,7 @@ bp:; @$(MAKEBOOT) bootpImage ...@@ -254,7 +262,7 @@ bp:; @$(MAKEBOOT) bootpImage
@( \ @( \
CFG=$(@:_config=); \ CFG=$(@:_config=); \
if [ -f arch/arm/def-configs/$$CFG ]; then \ if [ -f arch/arm/def-configs/$$CFG ]; then \
[ -f .config ] && $(MV) .config .config.old; \ [ -f .config ] && mv -f .config .config.old; \
cp arch/arm/def-configs/$$CFG .config; \ cp arch/arm/def-configs/$$CFG .config; \
echo "*** Default configuration for $$CFG installed"; \ echo "*** Default configuration for $$CFG installed"; \
echo "*** Next, you may run 'make oldconfig'"; \ echo "*** Next, you may run 'make oldconfig'"; \
......
...@@ -118,6 +118,22 @@ ifeq ($(CONFIG_ARCH_ANAKIN),y) ...@@ -118,6 +118,22 @@ ifeq ($(CONFIG_ARCH_ANAKIN),y)
ZTEXTADDR = 0x20008000 ZTEXTADDR = 0x20008000
endif endif
ifeq ($(CONFIG_ARCH_IQ80310),y)
ZRELADDR = 0xa0008000
# for serial upload
ZTEXTADDR = 0xa1008000
# for direct flash execution
# ZTEXTADDR = 0x00060000
# ZBSSADDR = 0xa1008000
endif
ifeq ($(CONFIG_ARCH_ADIFCC),y)
ZRELADDR = 0xc0008000
ZTEXTADDR = 0xc1000000
endif
# #
# If you don't define ZRELADDR above, # If you don't define ZRELADDR above,
# then it defaults to ZTEXTADDR # then it defaults to ZTEXTADDR
......
...@@ -9,7 +9,7 @@ ...@@ -9,7 +9,7 @@
HEAD = head.o HEAD = head.o
OBJS = misc.o OBJS = misc.o
CFLAGS = $(CPPFLAGS) -O2 -DSTDC_HEADERS $(CFLAGS_PROC) -msoft-float CFLAGS = $(CPPFLAGS) -O2 -DSTDC_HEADERS $(CFLAGS_BOOT)
FONTC = $(TOPDIR)/drivers/video/font_acorn_8x8.c FONTC = $(TOPDIR)/drivers/video/font_acorn_8x8.c
ZLDFLAGS = -p -X -T vmlinux.lds ZLDFLAGS = -p -X -T vmlinux.lds
...@@ -57,6 +57,10 @@ ifeq ($(CONFIG_SA1100_NANOENGINE),y) ...@@ -57,6 +57,10 @@ ifeq ($(CONFIG_SA1100_NANOENGINE),y)
endif endif
endif endif
ifeq ($(CONFIG_CPU_XSCALE),y)
OBJS += head-xscale.o
endif
SEDFLAGS = s/TEXT_START/$(ZTEXTADDR)/;s/LOAD_ADDR/$(ZRELADDR)/; SEDFLAGS = s/TEXT_START/$(ZTEXTADDR)/;s/LOAD_ADDR/$(ZRELADDR)/;
ifneq ($(ZBSSADDR),) ifneq ($(ZBSSADDR),)
...@@ -84,12 +88,12 @@ piggy.o: $(SYSTEM) ...@@ -84,12 +88,12 @@ piggy.o: $(SYSTEM)
font.o: $(FONTC) font.o: $(FONTC)
$(CC) $(CFLAGS) -Dstatic= -c -o $@ $(FONTC) $(CC) $(CFLAGS) -Dstatic= -c -o $@ $(FONTC)
vmlinux.lds: vmlinux.lds.in vmlinux.lds: vmlinux.lds.in Makefile $(TOPDIR)/arch/$(ARCH)/boot/Makefile $(TOPDIR)/.config
@sed "$(SEDFLAGS)" < vmlinux.lds.in > $@ @sed "$(SEDFLAGS)" < vmlinux.lds.in > $@
clean:; rm -f vmlinux core piggy* vmlinux.lds clean:; rm -f vmlinux core piggy* vmlinux.lds
.PHONY: vmlinux.lds clean .PHONY: clean
misc.o: misc.c $(TOPDIR)/include/asm/arch/uncompress.h $(TOPDIR)/lib/inflate.c misc.o: misc.c $(TOPDIR)/include/asm/arch/uncompress.h $(TOPDIR)/lib/inflate.c
......
/* The head-file for the Shark /* The head-file for the Shark
* by Alexander Schulz <aschulz@netwinder.org> * by Alexander Schulz
* *
* Does the following: * Does the following:
* - get the memory layout from firmware. This can only be done as long as the mmu * - get the memory layout from firmware. This can only be done as long as the mmu
......
/*
* linux/arch/arm/boot/compressed/head-xscale.S
*
* XScale specific tweaks. This is merged into head.S by the linker.
*
*/
#include <linux/config.h>
#include <linux/linkage.h>
#include <asm/mach-types.h>
.section ".start", #alloc, #execinstr
__XScale_start:
@ Preserve r8/r7 i.e. kernel entry values
@ Data cache might be active.
@ Be sure to flush kernel binary out of the cache,
@ whatever state it is, before it is turned off.
@ This is done by fetching through currently executed
@ memory to be sure we hit the same cache.
bic r2, pc, #0x1f
add r3, r2, #0x10000 @ 64 kb is quite enough...
1: ldr r0, [r2], #32
teq r2, r3
bne 1b
mcr p15, 0, r0, c7, c10, 4 @ drain WB
mcr p15, 0, r0, c7, c7, 0 @ flush I & D caches
@ disabling MMU and caches
mrc p15, 0, r0, c1, c0, 0 @ read control reg
bic r0, r0, #0x05 @ clear DC, MMU
bic r0, r0, #0x1000 @ clear Icache
mcr p15, 0, r0, c1, c0, 0
#ifdef CONFIG_ARCH_LUBBOCK
mov r7, #MACH_TYPE_LUBBOCK
#endif
#ifdef CONFIG_ARCH_COTULLA_IDP
mov r7, #MACH_TYPE_COTULLA_IDP
#endif
#ifdef CONFIG_ARCH_IQ80310
/*
* Crank the CPU up to 733MHz
*/
mov r1, #9
mcr p14, 0, r1, c6, c0, 0
/*
* Disable ECC error notification
* At some point, we should add an ECC handler to Linux
*/
mov r1, #0x1500
mov r0, #0x4
str r0, [r1, #0x34]
mov r7, #MACH_TYPE_IQ80310
#endif
#ifdef CONFIG_ARCH_ADI_EVB
mov r7, #MACH_TYPE_ADI_EVB
#endif
...@@ -64,7 +64,7 @@ ...@@ -64,7 +64,7 @@
kphex r7, 8 /* architecture id */ kphex r7, 8 /* architecture id */
kputc #':' kputc #':'
mrc p15, 0, r0, c1, c0 mrc p15, 0, r0, c1, c0
kphex r0, 8 /* control reg kphex r0, 8 /* control reg */
kputc #'\n' kputc #'\n'
kphex r5, 8 /* decompressed kernel start */ kphex r5, 8 /* decompressed kernel start */
kputc #'-' kputc #'-'
...@@ -218,7 +218,12 @@ cache_on: ldr r1, proc_sa110_type ...@@ -218,7 +218,12 @@ cache_on: ldr r1, proc_sa110_type
ldr r1, proc_sa1110_type ldr r1, proc_sa1110_type
eor r1, r1, r6 eor r1, r1, r6
movs r1, r1, lsr #4 movs r1, r1, lsr #4
movne pc, lr beq 1f
ldr r1, proc_xscale_type
eor r1, r1, r6
movs r1, r1, lsr #16
@ movne pc, lr
bne cache_off
1: 1:
sub r3, r4, #16384 @ Page directory size sub r3, r4, #16384 @ Page directory size
bic r3, r3, #0xff @ Align the pointer bic r3, r3, #0xff @ Align the pointer
...@@ -379,10 +384,14 @@ cache_clean_flush: ...@@ -379,10 +384,14 @@ cache_clean_flush:
ldr r1, proc_sa1110_type ldr r1, proc_sa1110_type
eor r1, r1, r6 eor r1, r1, r6
movs r1, r1, lsr #4 movs r1, r1, lsr #4
beq 1f
ldr r1, proc_xscale_type
eor r1, r1, r6
movs r1, r1, lsr #16
movne pc, lr movne pc, lr
1: 1:
bic r1, pc, #31 bic r1, pc, #31
add r2, r1, #32768 add r2, r1, #65536 @ 2x the largest dcache size
1: ldr r12, [r1], #32 @ s/w flush D cache 1: ldr r12, [r1], #32 @ s/w flush D cache
teq r1, r2 teq r1, r2
bne 1b bne 1b
...@@ -391,6 +400,12 @@ cache_clean_flush: ...@@ -391,6 +400,12 @@ cache_clean_flush:
mcr p15, 0, r1, c7, c10, 4 @ drain WB mcr p15, 0, r1, c7, c10, 4 @ drain WB
mov pc, lr mov pc, lr
.type proc_xscale_type,#object
proc_xscale_type:
.word 0x69050000
.size proc_xscale_type, . - proc_xscale_type
/* /*
* Various debugging routines for printing hex characters and * Various debugging routines for printing hex characters and
* memory, which again must be relocatable. * memory, which again must be relocatable.
......
/* /*
* linux/arch/arm/boot/compressed/ofw-shark.c * linux/arch/arm/boot/compressed/ofw-shark.c
* *
* by Alexander Schulz <aschulz@netwinder.org> * by Alexander Schulz
* *
* This file is used to get some basic information * This file is used to get some basic information
* about the memory layout of the shark we are running * about the memory layout of the shark we are running
......
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
...@@ -7,60 +7,45 @@ ...@@ -7,60 +7,45 @@
USE_STANDARD_AS_RULE := true USE_STANDARD_AS_RULE := true
HEAD_OBJ = head-$(PROCESSOR).o
ENTRY_OBJ = entry-$(PROCESSOR).o ENTRY_OBJ = entry-$(PROCESSOR).o
AFLAGS_head-armv.o := -DTEXTADDR=$(TEXTADDR) AFLAGS_head.o := -DTEXTADDR=$(TEXTADDR)
AFLAGS_head-armo.o := -DTEXTADDR=$(TEXTADDR)
# This is depreciated. O_TARGET := kernel.o
O_OBJS_arc = dma-arc.o oldlatches.o
O_OBJS_rpc = dma-rpc.o
O_OBJS_footbridge = dma-footbridge.o isa.o
O_OBJS_l7200 = fiq.o
pci-ftvpci = plx90x0.o
pci-footbridge = dec21285.o
pci-shark = via82c505.o
# this is here to allow us to eventually move it out to mach-ftvpci
pci-$(CONFIG_ARCH_FTVPCI) += ftv-pci.o
O_TARGET := kernel.o
# Object file lists. # Object file lists.
obj-y := arch.o compat.o dma.o $(ENTRY_OBJ) entry-common.o irq.o \ obj-y := arch.o compat.o dma.o $(ENTRY_OBJ) entry-common.o irq.o \
process.o ptrace.o semaphore.o setup.o signal.o sys_arm.o \ process.o ptrace.o semaphore.o setup.o signal.o sys_arm.o \
time.o traps.o $(O_OBJS_$(MACHINE)) time.o traps.o
obj-m := obj-m :=
obj-n := obj-n :=
obj- := obj- :=
export-objs := armksyms.o dma.o ecard.o fiq.o io.o oldlatches.o time.o export-objs := armksyms.o apm.o dma.o ecard.o fiq.o io.o time.o
no-irq-arch := $(CONFIG_ARCH_INTEGRATOR) $(CONFIG_ARCH_CLPS711X) \ obj-$(CONFIG_APM) += apm.o
$(CONFIG_FOOTBRIDGE) $(CONFIG_ARCH_EBSA110) \ obj-$(CONFIG_ARCH_ACORN) += ecard.o time-acorn.o
$(CONFIG_ARCH_SA1100) $(CONFIG_ARCH_CAMELOT) obj-$(CONFIG_ARCH_CLPS7500) += time-acorn.o
obj-$(CONFIG_FOOTBRIDGE) += isa.o
ifneq ($(findstring y,$(no-irq-arch)),y) obj-$(CONFIG_FIQ) += fiq.o
obj-y += irq-arch.o obj-$(CONFIG_MODULES) += armksyms.o
endif obj-$(CONFIG_ARTHUR) += arthur.o
obj-$(CONFIG_ISA_DMA) += dma-isa.o
obj-$(CONFIG_ARCH_ACORN) += ecard.o fiq.o time-acorn.o obj-$(CONFIG_PCI) += bios32.o
obj-$(CONFIG_ARCH_CLPS7500) += time-acorn.o obj-$(CONFIG_PCI_HOST_PLX90X0) += plx90x0.o
obj-$(CONFIG_DEBUG_LL) += debug-$(PROCESSOR).o obj-$(CONFIG_PCI_HOST_VIA82C505) += via82c505.o
obj-$(CONFIG_MODULES) += armksyms.o
obj-$(CONFIG_ARTHUR) += arthur.o
obj-$(CONFIG_ISA_DMA) += dma-isa.o
obj-$(CONFIG_PCI) += bios32.o $(pci-$(MACHINE)) $(pci-y)
ifneq ($(MACHINE),ebsa110) ifneq ($(MACHINE),ebsa110)
obj-y += io.o obj-y += io.o
endif endif
all: kernel.o $(HEAD_OBJ) init_task.o ifeq ($(CONFIG_CPU_32),y)
head-y := head.o
obj-$(CONFIG_DEBUG_LL) += debug.o
endif
all: kernel.o $(head-y) init_task.o
include $(TOPDIR)/Rules.make include $(TOPDIR)/Rules.make
......
...@@ -4,19 +4,13 @@ ...@@ -4,19 +4,13 @@
* Architecture specific fixups. * Architecture specific fixups.
*/ */
#include <linux/config.h> #include <linux/config.h>
#include <linux/tty.h>
#include <linux/delay.h>
#include <linux/pm.h>
#include <linux/init.h> #include <linux/init.h>
#include <linux/types.h>
#include <asm/elf.h> #include <asm/elf.h>
#include <asm/setup.h> #include <asm/setup.h>
#include <asm/mach-types.h> #include <asm/mach-types.h>
#include <asm/mach/arch.h> #include <asm/mach/arch.h>
#include <asm/hardware/dec21285.h>
extern void genarch_init_irq(void);
unsigned int vram_size; unsigned int vram_size;
...@@ -49,129 +43,4 @@ static int __init parse_tag_acorn(const struct tag *tag) ...@@ -49,129 +43,4 @@ static int __init parse_tag_acorn(const struct tag *tag)
__tagtable(ATAG_ACORN, parse_tag_acorn); __tagtable(ATAG_ACORN, parse_tag_acorn);
#ifdef CONFIG_ARCH_RPC
static void __init
fixup_riscpc(struct machine_desc *desc, struct param_struct *unusd,
char **cmdline, struct meminfo *mi)
{
/*
* RiscPC can't handle half-word loads and stores
*/
elf_hwcap &= ~HWCAP_HALF;
}
extern void __init rpc_map_io(void);
MACHINE_START(RISCPC, "Acorn-RiscPC")
MAINTAINER("Russell King")
BOOT_MEM(0x10000000, 0x03000000, 0xe0000000)
BOOT_PARAMS(0x10000100)
DISABLE_PARPORT(0)
DISABLE_PARPORT(1)
FIXUP(fixup_riscpc)
MAPIO(rpc_map_io)
INITIRQ(genarch_init_irq)
MACHINE_END
#endif
#ifdef CONFIG_ARCH_ARC
MACHINE_START(ARCHIMEDES, "Acorn-Archimedes")
MAINTAINER("Dave Gilbert")
BOOT_PARAMS(0x0207c000)
INITIRQ(genarch_init_irq)
MACHINE_END
#endif
#ifdef CONFIG_ARCH_A5K
MACHINE_START(A5K, "Acorn-A5000")
MAINTAINER("Russell King")
BOOT_PARAMS(0x0207c000)
INITIRQ(genarch_init_irq)
MACHINE_END
#endif
#endif
#ifdef CONFIG_ARCH_L7200
extern void __init l7200_map_io(void);
static void __init
fixup_l7200(struct machine_desc *desc, struct param_struct *unused,
char **cmdline, struct meminfo *mi)
{
mi->nr_banks = 1;
mi->bank[0].start = PHYS_OFFSET;
mi->bank[0].size = (32*1024*1024);
mi->bank[0].node = 0;
ROOT_DEV = MKDEV(RAMDISK_MAJOR,0);
setup_ramdisk( 1, 0, 0, CONFIG_BLK_DEV_RAM_SIZE);
setup_initrd( __phys_to_virt(0xf1000000), 0x005dac7b);
/* Serial Console COM2 and LCD */
strcpy( *cmdline, "console=tty0 console=ttyLU1,115200");
/* Serial Console COM1 and LCD */
//strcpy( *cmdline, "console=tty0 console=ttyLU0,115200");
/* Console on LCD */
//strcpy( *cmdline, "console=tty0");
}
MACHINE_START(L7200, "LinkUp Systems L7200")
MAINTAINER("Steve Hill / Scott McConnell")
BOOT_MEM(0xf0000000, 0x80040000, 0xd0000000)
FIXUP(fixup_l7200)
MAPIO(l7200_map_io)
INITIRQ(genarch_init_irq)
MACHINE_END
#endif
#ifdef CONFIG_ARCH_NEXUSPCI
extern void __init nexuspci_map_io(void);
MACHINE_START(NEXUSPCI, "FTV/PCI")
MAINTAINER("Philip Blundell")
BOOT_MEM(0x40000000, 0x10000000, 0xe0000000)
MAPIO(nexuspci_map_io)
INITIRQ(genarch_init_irq)
MACHINE_END
#endif
#ifdef CONFIG_ARCH_TBOX
extern void __init tbox_map_io(void);
MACHINE_START(TBOX, "unknown-TBOX")
MAINTAINER("Philip Blundell")
BOOT_MEM(0x80000000, 0x00400000, 0xe0000000)
MAPIO(tbox_map_io)
INITIRQ(genarch_init_irq)
MACHINE_END
#endif
#ifdef CONFIG_ARCH_CLPS7110
MACHINE_START(CLPS7110, "CL-PS7110")
MAINTAINER("Werner Almesberger")
INITIRQ(genarch_init_irq)
MACHINE_END
#endif
#ifdef CONFIG_ARCH_ETOILE
MACHINE_START(ETOILE, "Etoile")
MAINTAINER("Alex de Vries")
INITIRQ(genarch_init_irq)
MACHINE_END
#endif
#ifdef CONFIG_ARCH_LACIE_NAS
MACHINE_START(LACIE_NAS, "LaCie_NAS")
MAINTAINER("Benjamin Herrenschmidt")
INITIRQ(genarch_init_irq)
MACHINE_END
#endif
#ifdef CONFIG_ARCH_CLPS7500
extern void __init clps7500_map_io(void);
MACHINE_START(CLPS7500, "CL-PS7500")
MAINTAINER("Philip Blundell")
BOOT_MEM(0x10000000, 0x03000000, 0xe0000000)
MAPIO(clps7500_map_io)
INITIRQ(genarch_init_irq)
MACHINE_END
#endif #endif
...@@ -19,6 +19,7 @@ ...@@ -19,6 +19,7 @@
#include <linux/in6.h> #include <linux/in6.h>
#include <linux/interrupt.h> #include <linux/interrupt.h>
#include <linux/pm.h> #include <linux/pm.h>
#include <linux/tty.h>
#include <linux/vt_kern.h> #include <linux/vt_kern.h>
#include <asm/byteorder.h> #include <asm/byteorder.h>
...@@ -77,7 +78,7 @@ extern void fp_enter(void); ...@@ -77,7 +78,7 @@ extern void fp_enter(void);
extern void __do_softirq(void); extern void __do_softirq(void);
#define EXPORT_SYMBOL_ALIAS(sym,orig) \ #define EXPORT_SYMBOL_ALIAS(sym,orig) \
const char __kstrtab_##sym##[] \ const char __kstrtab_##sym[] \
__attribute__((section(".kstrtab"))) = \ __attribute__((section(".kstrtab"))) = \
__MODULE_STRING(sym); \ __MODULE_STRING(sym); \
const struct module_symbol __ksymtab_##sym \ const struct module_symbol __ksymtab_##sym \
...@@ -115,7 +116,9 @@ EXPORT_SYMBOL(kernel_thread); ...@@ -115,7 +116,9 @@ EXPORT_SYMBOL(kernel_thread);
EXPORT_SYMBOL(system_rev); EXPORT_SYMBOL(system_rev);
EXPORT_SYMBOL(system_serial_low); EXPORT_SYMBOL(system_serial_low);
EXPORT_SYMBOL(system_serial_high); EXPORT_SYMBOL(system_serial_high);
#ifdef CONFIG_DEBUG_BUGVERBOSE
EXPORT_SYMBOL(__bug); EXPORT_SYMBOL(__bug);
#endif
EXPORT_SYMBOL(__bad_xchg); EXPORT_SYMBOL(__bad_xchg);
EXPORT_SYMBOL(__readwrite_bug); EXPORT_SYMBOL(__readwrite_bug);
EXPORT_SYMBOL(enable_irq); EXPORT_SYMBOL(enable_irq);
...@@ -231,14 +234,25 @@ EXPORT_SYMBOL_NOVERS(__udivsi3); ...@@ -231,14 +234,25 @@ EXPORT_SYMBOL_NOVERS(__udivsi3);
EXPORT_SYMBOL_NOVERS(__umodsi3); EXPORT_SYMBOL_NOVERS(__umodsi3);
/* bitops */ /* bitops */
EXPORT_SYMBOL(set_bit); EXPORT_SYMBOL(_set_bit_le);
EXPORT_SYMBOL(test_and_set_bit); EXPORT_SYMBOL(_test_and_set_bit_le);
EXPORT_SYMBOL(clear_bit); EXPORT_SYMBOL(_clear_bit_le);
EXPORT_SYMBOL(test_and_clear_bit); EXPORT_SYMBOL(_test_and_clear_bit_le);
EXPORT_SYMBOL(change_bit); EXPORT_SYMBOL(_change_bit_le);
EXPORT_SYMBOL(test_and_change_bit); EXPORT_SYMBOL(_test_and_change_bit_le);
EXPORT_SYMBOL(find_first_zero_bit); EXPORT_SYMBOL(_find_first_zero_bit_le);
EXPORT_SYMBOL(find_next_zero_bit); EXPORT_SYMBOL(_find_next_zero_bit_le);
#ifdef __ARMEB__
EXPORT_SYMBOL(_set_bit_be);
EXPORT_SYMBOL(_test_and_set_bit_be);
EXPORT_SYMBOL(_clear_bit_be);
EXPORT_SYMBOL(_test_and_clear_bit_be);
EXPORT_SYMBOL(_change_bit_be);
EXPORT_SYMBOL(_test_and_change_bit_be);
EXPORT_SYMBOL(_find_first_zero_bit_be);
EXPORT_SYMBOL(_find_next_zero_bit_be);
#endif
/* elf */ /* elf */
EXPORT_SYMBOL(elf_platform); EXPORT_SYMBOL(elf_platform);
......
This diff is collapsed.
...@@ -89,10 +89,12 @@ static void __init build_tag_list(struct param_struct *params, void *taglist, in ...@@ -89,10 +89,12 @@ static void __init build_tag_list(struct param_struct *params, void *taglist, in
} }
#ifdef CONFIG_FOOTBRIDGE #ifdef CONFIG_FOOTBRIDGE
tag = tag_next(tag); if (params->u1.s.mem_fclk_21285) {
tag->hdr.tag = ATAG_MEMCLK; tag = tag_next(tag);
tag->hdr.size = tag_size(tag_memclk); tag->hdr.tag = ATAG_MEMCLK;
tag->u.memclk.fmemclk = params->u1.s.mem_fclk_21285; tag->hdr.size = tag_size(tag_memclk);
tag->u.memclk.fmemclk = params->u1.s.mem_fclk_21285;
}
#endif #endif
#ifdef CONFIG_ARCH_ACORN #ifdef CONFIG_ARCH_ACORN
......
...@@ -95,7 +95,7 @@ static void isa_enable_dma(dmach_t channel, dma_t *dma) ...@@ -95,7 +95,7 @@ static void isa_enable_dma(dmach_t channel, dma_t *dma)
* coherence. * coherence.
*/ */
dma->buf.dma_address = pci_map_single(NULL, dma->buf.dma_address = pci_map_single(NULL,
dma->buf.address, dma->buf.length, dma->buf.__address, dma->buf.length,
direction); direction);
} }
......
...@@ -139,7 +139,7 @@ void set_dma_addr (dmach_t channel, unsigned long physaddr) ...@@ -139,7 +139,7 @@ void set_dma_addr (dmach_t channel, unsigned long physaddr)
dma->sg = &dma->buf; dma->sg = &dma->buf;
dma->sgcount = 1; dma->sgcount = 1;
dma->buf.address = bus_to_virt(physaddr); dma->buf.__address = bus_to_virt(physaddr);
dma->using_sg = 0; dma->using_sg = 0;
dma->invalid = 1; dma->invalid = 1;
} }
...@@ -275,6 +275,8 @@ GLOBAL_ALIAS(init_dma, get_dma_residue); ...@@ -275,6 +275,8 @@ GLOBAL_ALIAS(init_dma, get_dma_residue);
#endif #endif
EXPORT_SYMBOL(request_dma);
EXPORT_SYMBOL(free_dma);
EXPORT_SYMBOL(enable_dma); EXPORT_SYMBOL(enable_dma);
EXPORT_SYMBOL(disable_dma); EXPORT_SYMBOL(disable_dma);
EXPORT_SYMBOL(set_dma_addr); EXPORT_SYMBOL(set_dma_addr);
......
...@@ -169,7 +169,7 @@ vector_undefinstr: ...@@ -169,7 +169,7 @@ vector_undefinstr:
bne __und_svc bne __und_svc
save_user_regs save_user_regs
zero_fp zero_fp
teqp pc, #I_BIT | MODE_SVC teqp pc, #PSR_I_BIT | MODE_SVC
.Lbug_undef: .Lbug_undef:
ldr r4, .LC2 ldr r4, .LC2
ldr pc, [r4] @ Call FP module USR entry point ldr pc, [r4] @ Call FP module USR entry point
......
This diff is collapsed.
...@@ -22,12 +22,10 @@ ...@@ -22,12 +22,10 @@
* Our do_softirq out of line code. See include/asm-arm/softirq.h for * Our do_softirq out of line code. See include/asm-arm/softirq.h for
* the calling assembly. * the calling assembly.
*/ */
.section ".text.lock","ax"
ENTRY(__do_softirq) ENTRY(__do_softirq)
stmfd sp!, {r0 - r3, ip, lr} stmfd sp!, {r0 - r3, ip, lr}
bl do_softirq bl do_softirq
ldmfd sp!, {r0 - r3, ip, pc} ldmfd sp!, {r0 - r3, ip, pc}
.previous
.align 5 .align 5
/* /*
......
...@@ -83,7 +83,7 @@ ...@@ -83,7 +83,7 @@
.macro restore_user_regs .macro restore_user_regs
ldr r0, [sp, #S_PSR] @ Get calling cpsr ldr r0, [sp, #S_PSR] @ Get calling cpsr
mov ip, #I_BIT | MODE_SVC mov ip, #PSR_I_BIT | MODE_SVC
msr cpsr_c, ip @ disable IRQs msr cpsr_c, ip @ disable IRQs
msr spsr, r0 @ save in spsr_svc msr spsr, r0 @ save in spsr_svc
ldr lr, [sp, #S_PC] @ Get PC ldr lr, [sp, #S_PC] @ Get PC
...@@ -94,7 +94,7 @@ ...@@ -94,7 +94,7 @@
.endm .endm
.macro fast_restore_user_regs .macro fast_restore_user_regs
mov ip, #I_BIT | MODE_SVC mov ip, #PSR_I_BIT | MODE_SVC
msr cpsr_c, ip @ disable IRQs msr cpsr_c, ip @ disable IRQs
ldr r1, [sp, #S_OFF + S_PSR] @ get calling cpsr ldr r1, [sp, #S_OFF + S_PSR] @ get calling cpsr
ldr lr, [sp, #S_OFF + S_PC]! @ get pc ldr lr, [sp, #S_OFF + S_PC]! @ get pc
...@@ -207,7 +207,7 @@ tsk .req r9 @ current task ...@@ -207,7 +207,7 @@ tsk .req r9 @ current task
*/ */
.macro get_scno .macro get_scno
#ifdef CONFIG_ARM_THUMB #ifdef CONFIG_ARM_THUMB
tst r8, #T_BIT @ this is SPSR from save_user_regs tst r8, #PSR_T_BIT @ this is SPSR from save_user_regs
addne scno, r7, #OS_NUMBER << 20 @ put OS number in addne scno, r7, #OS_NUMBER << 20 @ put OS number in
ldreq scno, [lr, #-4] ldreq scno, [lr, #-4]
......
...@@ -139,7 +139,7 @@ void set_fiq_regs(struct pt_regs *regs) ...@@ -139,7 +139,7 @@ void set_fiq_regs(struct pt_regs *regs)
mov r0, r0" mov r0, r0"
#endif #endif
: "=&r" (tmp), "=&r" (tmp2) : "=&r" (tmp), "=&r" (tmp2)
: "r" (&regs->ARM_r8), "I" (I_BIT | F_BIT | FIQ_MODE) : "r" (&regs->ARM_r8), "I" (PSR_I_BIT | PSR_F_BIT | FIQ_MODE)
/* These registers aren't modified by the above code in a way /* These registers aren't modified by the above code in a way
visible to the compiler, but we mark them as clobbers anyway visible to the compiler, but we mark them as clobbers anyway
so that GCC won't put any of the input or output operands in so that GCC won't put any of the input or output operands in
...@@ -171,7 +171,7 @@ void get_fiq_regs(struct pt_regs *regs) ...@@ -171,7 +171,7 @@ void get_fiq_regs(struct pt_regs *regs)
mov r0, r0" mov r0, r0"
#endif #endif
: "=&r" (tmp), "=&r" (tmp2) : "=&r" (tmp), "=&r" (tmp2)
: "r" (&regs->ARM_r8), "I" (I_BIT | F_BIT | FIQ_MODE) : "r" (&regs->ARM_r8), "I" (PSR_I_BIT | PSR_F_BIT | FIQ_MODE)
/* These registers aren't modified by the above code in a way /* These registers aren't modified by the above code in a way
visible to the compiler, but we mark them as clobbers anyway visible to the compiler, but we mark them as clobbers anyway
so that GCC won't put any of the input or output operands in so that GCC won't put any of the input or output operands in
......
...@@ -9,7 +9,6 @@ ...@@ -9,7 +9,6 @@
#include <asm/uaccess.h> #include <asm/uaccess.h>
#include <asm/pgtable.h> #include <asm/pgtable.h>
static struct vm_area_struct init_mmap = INIT_MMAP;
static struct fs_struct init_fs = INIT_FS; static struct fs_struct init_fs = INIT_FS;
static struct files_struct init_files = INIT_FILES; static struct files_struct init_files = INIT_FILES;
static struct signal_struct init_signals = INIT_SIGNALS; static struct signal_struct init_signals = INIT_SIGNALS;
......
...@@ -114,7 +114,7 @@ int show_interrupts(struct seq_file *p, void *v) ...@@ -114,7 +114,7 @@ int show_interrupts(struct seq_file *p, void *v)
} }
#ifdef CONFIG_ARCH_ACORN #ifdef CONFIG_ARCH_ACORN
show_fiq_list(p); show_fiq_list(p, v);
#endif #endif
seq_printf(p, "Err: %10lu\n", irq_err_count); seq_printf(p, "Err: %10lu\n", irq_err_count);
return 0; return 0;
......
...@@ -172,10 +172,10 @@ void show_regs(struct pt_regs * regs) ...@@ -172,10 +172,10 @@ void show_regs(struct pt_regs * regs)
regs->ARM_r3, regs->ARM_r2, regs->ARM_r3, regs->ARM_r2,
regs->ARM_r1, regs->ARM_r0); regs->ARM_r1, regs->ARM_r0);
printk("Flags: %c%c%c%c", printk("Flags: %c%c%c%c",
flags & CC_N_BIT ? 'N' : 'n', flags & PSR_N_BIT ? 'N' : 'n',
flags & CC_Z_BIT ? 'Z' : 'z', flags & PSR_Z_BIT ? 'Z' : 'z',
flags & CC_C_BIT ? 'C' : 'c', flags & PSR_C_BIT ? 'C' : 'c',
flags & CC_V_BIT ? 'V' : 'v'); flags & PSR_V_BIT ? 'V' : 'v');
printk(" IRQs %s FIQs %s Mode %s%s Segment %s\n", printk(" IRQs %s FIQs %s Mode %s%s Segment %s\n",
interrupts_enabled(regs) ? "on" : "off", interrupts_enabled(regs) ? "on" : "off",
fast_interrupts_enabled(regs) ? "on" : "off", fast_interrupts_enabled(regs) ? "on" : "off",
......
...@@ -177,8 +177,7 @@ int __down_trylock(struct semaphore * sem) ...@@ -177,8 +177,7 @@ int __down_trylock(struct semaphore * sem)
* value in some cases.. * value in some cases..
*/ */
#ifdef CONFIG_CPU_26 #ifdef CONFIG_CPU_26
asm(" .section .text.lock, \"ax\" asm(" .align 5
.align 5
.globl __down_failed .globl __down_failed
__down_failed: __down_failed:
stmfd sp!, {r0 - r3, lr} stmfd sp!, {r0 - r3, lr}
...@@ -211,14 +210,11 @@ asm(" .section .text.lock, \"ax\" ...@@ -211,14 +210,11 @@ asm(" .section .text.lock, \"ax\"
mov r0, ip mov r0, ip
bl __up bl __up
ldmfd sp!, {r0 - r3, pc}^ ldmfd sp!, {r0 - r3, pc}^
.previous
"); ");
#else #else
/* 32 bit version */ /* 32 bit version */
asm(" .section .text.lock, \"ax\" asm(" .align 5
.align 5
.globl __down_failed .globl __down_failed
__down_failed: __down_failed:
stmfd sp!, {r0 - r3, lr} stmfd sp!, {r0 - r3, lr}
...@@ -251,8 +247,6 @@ asm(" .section .text.lock, \"ax\" ...@@ -251,8 +247,6 @@ asm(" .section .text.lock, \"ax\"
mov r0, ip mov r0, ip
bl __up bl __up
ldmfd sp!, {r0 - r3, pc} ldmfd sp!, {r0 - r3, pc}
.previous
"); ");
#endif #endif
This diff is collapsed.
...@@ -344,7 +344,7 @@ get_sigframe(struct k_sigaction *ka, struct pt_regs *regs, int framesize) ...@@ -344,7 +344,7 @@ get_sigframe(struct k_sigaction *ka, struct pt_regs *regs, int framesize)
/* /*
* This is the X/Open sanctioned signal stack switching. * This is the X/Open sanctioned signal stack switching.
*/ */
if ((ka->sa.sa_flags & SA_ONSTACK) && sas_ss_flags(sp)) if ((ka->sa.sa_flags & SA_ONSTACK) && !sas_ss_flags(sp))
sp = current->sas_ss_sp + current->sas_ss_size; sp = current->sas_ss_sp + current->sas_ss_size;
/* /*
...@@ -378,9 +378,9 @@ setup_return(struct pt_regs *regs, struct k_sigaction *ka, ...@@ -378,9 +378,9 @@ setup_return(struct pt_regs *regs, struct k_sigaction *ka,
thumb = handler & 1; thumb = handler & 1;
if (thumb) if (thumb)
cpsr |= T_BIT; cpsr |= PSR_T_BIT;
else else
cpsr &= ~T_BIT; cpsr &= ~PSR_T_BIT;
} }
#endif #endif
#endif #endif
......
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment