Commit a83bd903 authored by Anton Altaparmakov's avatar Anton Altaparmakov

Merge cantab.net:/usr/src/bklinux-2.5 into cantab.net:/usr/src/tng

parents 3e7ec87c 85d20089
......@@ -22,7 +22,6 @@ unsigned int __machine_arch_type;
#include <asm/uaccess.h>
#include <asm/arch/uncompress.h>
#include <asm/proc/uncompress.h>
#ifdef STANDALONE_DEBUG
#define puts printf
......@@ -291,7 +290,6 @@ decompress_kernel(ulg output_start, ulg free_mem_ptr_p, ulg free_mem_ptr_end_p,
free_mem_ptr_end = free_mem_ptr_end_p;
__machine_arch_type = arch_id;
proc_decomp_setup();
arch_decomp_setup();
makecrc();
......
......@@ -63,11 +63,6 @@ dep_bool ' ADS Bitsy' CONFIG_SA1100_ADSBITSY $CONFIG_ARCH_SA1100
dep_bool ' Brutus' CONFIG_SA1100_BRUTUS $CONFIG_ARCH_SA1100
dep_bool ' CerfBoard' CONFIG_SA1100_CERF $CONFIG_ARCH_SA1100
if [ "$CONFIG_SA1100_CERF" = "y" ]; then
choice 'Cerf RAM available' \
"8MB CONFIG_SA1100_CERF_8MB \
16MB CONFIG_SA1100_CERF_16MB \
32MB CONFIG_SA1100_CERF_32MB \
64MB CONFIG_SA1100_CERF_64MB" CerfRam
choice 'Cerf Flash available' \
"8MB CONFIG_SA1100_CERF_FLASH_8MB \
16MB CONFIG_SA1100_CERF_FLASH_16MB \
......@@ -453,7 +448,9 @@ else
fi
comment 'At least one math emulation must be selected'
tristate 'NWFPE math emulation' CONFIG_FPE_NWFPE
dep_tristate 'FastFPE math emulation (experimental)' CONFIG_FPE_FASTFPE $CONFIG_EXPERIMENTAL
if [ "$CONFIG_CPU_26" = "n" -a "$CONFIG_CPU_32v3" = "n" ]; then
dep_tristate 'FastFPE math emulation (experimental)' CONFIG_FPE_FASTFPE $CONFIG_EXPERIMENTAL
fi
choice 'Kernel core (/proc/kcore) format' \
"ELF CONFIG_KCORE_ELF \
A.OUT CONFIG_KCORE_AOUT" ELF
......@@ -494,15 +491,10 @@ if [ "$CONFIG_ARCH_NETWINDER" = "y" -o \
fi
fi
if [ "$CONFIG_ARCH_SA1100" = "y" ]; then
if [ "$CONFIG_CPU_32" = "y" ]; then
define_bool CONFIG_ALIGNMENT_TRAP y
else
if [ "$CONFIG_CPU_32" = "y" -a \
"$CONFIG_ARCH_EBSA110" != "y" ]; then
bool 'Mis-alignment trap handler' CONFIG_ALIGNMENT_TRAP
else
define_bool CONFIG_ALIGNMENT_TRAP n
fi
define_bool CONFIG_ALIGNMENT_TRAP n
fi
endmenu
......@@ -510,6 +502,8 @@ source drivers/parport/Config.in
if [ "$CONFIG_ALIGNMENT_TRAP" = "y" ]; then
source drivers/mtd/Config.in
else
define_bool CONFIG_MTD n
fi
source drivers/pnp/Config.in
......
......@@ -147,7 +147,7 @@ CONFIG_BINFMT_ELF=y
# CONFIG_BINFMT_MISC is not set
# CONFIG_PM is not set
# CONFIG_ARTHUR is not set
CONFIG_CMDLINE="console=ttyS0,115200 root=/dev/mtdblock1"
CONFIG_CMDLINE="console=ttyS0,115200 root=/dev/mtdblock1 mem=32M initrd=0xc0800000,3M"
CONFIG_ALIGNMENT_TRAP=y
#
......@@ -236,7 +236,7 @@ CONFIG_MTD_ADI_EVB=y
# CONFIG_BLK_DEV_LOOP is not set
# CONFIG_BLK_DEV_NBD is not set
CONFIG_BLK_DEV_RAM=y
CONFIG_BLK_DEV_RAM_SIZE=4192
CONFIG_BLK_DEV_RAM_SIZE=8192
CONFIG_BLK_DEV_INITRD=y
#
......
......@@ -139,7 +139,7 @@ CONFIG_BINFMT_ELF=y
# CONFIG_PM is not set
# CONFIG_APM is not set
# CONFIG_ARTHUR is not set
CONFIG_CMDLINE="ip=off"
CONFIG_CMDLINE="ip=off mem=32M root=/dev/ram ramdisk=8192 initrd=0xc0800000,4M"
# CONFIG_PFS168_CMDLINE is not set
# CONFIG_LEDS is not set
CONFIG_ALIGNMENT_TRAP=y
......
This diff is collapsed.
......@@ -157,7 +157,7 @@ CONFIG_BINFMT_ELF=y
# CONFIG_BINFMT_MISC is not set
CONFIG_PM=y
# CONFIG_ARTHUR is not set
CONFIG_CMDLINE=""
CONFIG_CMDLINE="mem=32M console=ttySA0,38400n8 initrd=0xc0800000,3M root=/dev/ram"
CONFIG_LEDS=y
CONFIG_LEDS_TIMER=y
CONFIG_LEDS_CPU=y
......@@ -834,6 +834,13 @@ CONFIG_MCP_UCB1200=y
CONFIG_MCP_UCB1200_AUDIO=m
CONFIG_MCP_UCB1200_TS=y
#
# Console Switches
#
CONFIG_SWITCHES=y
CONFIG_SWITCHES_SA1100=y
CONFIG_SWITCHES_UCB1X00=y
#
# USB support
#
......
......@@ -527,7 +527,6 @@ CONFIG_BLK_DEV_IDECD=m
# CONFIG_BLK_DEV_IDETAPE is not set
CONFIG_BLK_DEV_IDEFLOPPY=m
CONFIG_BLK_DEV_IDESCSI=m
# CONFIG_IDE_TASK_IOCTL is not set
#
# IDE chipset support/bugfixes
......
......@@ -76,7 +76,7 @@ CONFIG_BINFMT_ELF=y
# CONFIG_BINFMT_MISC is not set
# CONFIG_PM is not set
# CONFIG_ARTHUR is not set
CONFIG_CMDLINE="keepinitrd"
CONFIG_CMDLINE="mem=4M@0xc0000000 mem=4M@0xc8000000 mem=4M@0xd0000000 mem=4M@0xd8000000 keepinitrd root=/dev/ram ramdisk=8192 initrd=0xd8000000,3M"
CONFIG_LEDS=y
CONFIG_LEDS_TIMER=y
CONFIG_LEDS_CPU=y
......
......@@ -65,10 +65,6 @@ CONFIG_ARCH_SA1100=y
# CONFIG_SA1100_ADSBITSY is not set
# CONFIG_SA1100_BRUTUS is not set
CONFIG_SA1100_CERF=y
# CONFIG_SA1100_CERF_8MB is not set
# CONFIG_SA1100_CERF_16MB is not set
CONFIG_SA1100_CERF_32MB=y
# CONFIG_SA1100_CERF_64MB is not set
# CONFIG_SA1100_CERF_FLASH_8MB is not set
CONFIG_SA1100_CERF_FLASH_16MB=y
# CONFIG_SA1100_CERF_FLASH_32MB is not set
......@@ -163,7 +159,7 @@ CONFIG_BINFMT_ELF=y
# CONFIG_PM is not set
# CONFIG_APM is not set
# CONFIG_ARTHUR is not set
CONFIG_CMDLINE="console=ttySA0 root=1f03 rw"
CONFIG_CMDLINE="console=ttySA0 root=/dev/mtdblock3 rw mem=32M"
# CONFIG_PFS168_CMDLINE is not set
CONFIG_LEDS=y
CONFIG_LEDS_TIMER=y
......
......@@ -65,10 +65,6 @@ CONFIG_ARCH_SA1100=y
# CONFIG_SA1100_ADSBITSY is not set
# CONFIG_SA1100_BRUTUS is not set
CONFIG_SA1100_CERF=y
# CONFIG_SA1100_CERF_8MB is not set
# CONFIG_SA1100_CERF_16MB is not set
# CONFIG_SA1100_CERF_32MB is not set
CONFIG_SA1100_CERF_64MB=y
# CONFIG_SA1100_CERF_FLASH_8MB is not set
# CONFIG_SA1100_CERF_FLASH_16MB is not set
CONFIG_SA1100_CERF_FLASH_32MB=y
......@@ -163,7 +159,7 @@ CONFIG_BINFMT_ELF=y
# CONFIG_PM is not set
# CONFIG_APM is not set
# CONFIG_ARTHUR is not set
CONFIG_CMDLINE="console=ttySA0 cpufreq_max=221200 root=1f03 rw"
CONFIG_CMDLINE="console=ttySA0 cpufreq_max=221200 root=/dev/mtdblock3 rw mem=64M"
# CONFIG_PFS168_CMDLINE is not set
# CONFIG_LEDS is not set
CONFIG_ALIGNMENT_TRAP=y
......
......@@ -65,10 +65,6 @@ CONFIG_ARCH_SA1100=y
# CONFIG_SA1100_ADSBITSY is not set
# CONFIG_SA1100_BRUTUS is not set
CONFIG_SA1100_CERF=y
# CONFIG_SA1100_CERF_8MB is not set
# CONFIG_SA1100_CERF_16MB is not set
CONFIG_SA1100_CERF_32MB=y
# CONFIG_SA1100_CERF_64MB is not set
# CONFIG_SA1100_CERF_FLASH_8MB is not set
CONFIG_SA1100_CERF_FLASH_16MB=y
# CONFIG_SA1100_CERF_FLASH_32MB is not set
......@@ -163,7 +159,7 @@ CONFIG_BINFMT_ELF=y
# CONFIG_PM is not set
# CONFIG_APM is not set
# CONFIG_ARTHUR is not set
CONFIG_CMDLINE="console=ttySA0 root=1f03 rw"
CONFIG_CMDLINE="console=ttySA0 root=/dev/mtdblock3 rw mem=32M"
# CONFIG_PFS168_CMDLINE is not set
CONFIG_LEDS=y
CONFIG_LEDS_TIMER=y
......
......@@ -56,7 +56,7 @@ CONFIG_BINFMT_ELF=y
# CONFIG_BINFMT_MISC is not set
# CONFIG_ARTHUR is not set
# CONFIG_PARPORT is not set
CONFIG_CMDLINE=""
CONFIG_CMDLINE="mem=4M@0xc0000000 mem=4M@0xc8000000 root=/dev/hda1 initrd=0xd00b0000,320K"
#
# Plug and Play support
......
......@@ -156,7 +156,7 @@ CONFIG_BINFMT_ELF=y
# CONFIG_PM is not set
# CONFIG_APM is not set
# CONFIG_ARTHUR is not set
CONFIG_CMDLINE="console=ttyUA0,38400 root=/dev/mtdblock0 rw"
CONFIG_CMDLINE="mem=32M console=ttyUA0,38400 root=/dev/mtdblock0 rw"
CONFIG_ALIGNMENT_TRAP=y
#
......
......@@ -162,7 +162,7 @@ CONFIG_BINFMT_ELF=y
# CONFIG_BINFMT_MISC is not set
CONFIG_PM=y
# CONFIG_ARTHUR is not set
CONFIG_CMDLINE=""
CONFIG_CMDLINE="mem=64M root=/dev/ram initrd=0xc0800000,3M"
CONFIG_LEDS=y
CONFIG_LEDS_TIMER=y
CONFIG_LEDS_CPU=y
......@@ -263,7 +263,7 @@ CONFIG_MTD_SA1100=y
CONFIG_BLK_DEV_LOOP=y
# CONFIG_BLK_DEV_NBD is not set
CONFIG_BLK_DEV_RAM=y
CONFIG_BLK_DEV_RAM_SIZE=4096
CONFIG_BLK_DEV_RAM_SIZE=8192
CONFIG_BLK_DEV_INITRD=y
#
......
......@@ -131,7 +131,7 @@ CONFIG_BINFMT_MISC=m
CONFIG_PM=y
CONFIG_APM=y
# CONFIG_ARTHUR is not set
CONFIG_CMDLINE="mem=32M"
CONFIG_CMDLINE="mem=32M root=/dev/ram initrd=0xc0800000,3M"
# CONFIG_PFS168_CMDLINE is not set
# CONFIG_LEDS is not set
CONFIG_ALIGNMENT_TRAP=y
......@@ -202,7 +202,7 @@ CONFIG_MTD_BLOCK=y
CONFIG_BLK_DEV_LOOP=m
CONFIG_BLK_DEV_NBD=m
CONFIG_BLK_DEV_RAM=y
CONFIG_BLK_DEV_RAM_SIZE=4096
CONFIG_BLK_DEV_RAM_SIZE=8192
CONFIG_BLK_DEV_INITRD=y
#
......
......@@ -131,7 +131,7 @@ CONFIG_BINFMT_ELF=y
CONFIG_PM=y
CONFIG_APM=y
# CONFIG_ARTHUR is not set
CONFIG_CMDLINE="noinitrd console=ttySA0 init=/linuxrc root=1f04 mem=32m"
CONFIG_CMDLINE="noinitrd console=ttySA0 init=/linuxrc root=/dev/mtdblock4 mem=32m"
# CONFIG_PFS168_CMDLINE is not set
# CONFIG_LEDS is not set
CONFIG_ALIGNMENT_TRAP=y
......
......@@ -146,7 +146,7 @@ CONFIG_BINFMT_ELF=y
# CONFIG_PM is not set
# CONFIG_APM is not set
# CONFIG_ARTHUR is not set
CONFIG_CMDLINE="ip=off"
CONFIG_CMDLINE="ip=off mem=16M@0xc0000000 mem=16M@0xc8000000 root=/dev/ram initrd=0xc0800000,4M"
# CONFIG_PFS168_CMDLINE is not set
CONFIG_LEDS=y
CONFIG_LEDS_TIMER=y
......
......@@ -139,7 +139,7 @@ CONFIG_BINFMT_ELF=y
# CONFIG_PM is not set
# CONFIG_APM is not set
# CONFIG_ARTHUR is not set
CONFIG_CMDLINE="ip=off"
CONFIG_CMDLINE="ip=off mem=16M@0xc0000000 mem=16M@0xc8000000 root=/dev/ram initrd=0xc0800000,4M"
# CONFIG_PFS168_CMDLINE is not set
CONFIG_LEDS=y
CONFIG_LEDS_TIMER=y
......
......@@ -96,7 +96,7 @@ CONFIG_BINFMT_ELF=y
# CONFIG_BINFMT_MISC is not set
# CONFIG_PM is not set
# CONFIG_ARTHUR is not set
CONFIG_CMDLINE="keepinitrd"
CONFIG_CMDLINE="keepinitrd mem=32480K root=/dev/ram initrd=0xc0800000,8M"
# CONFIG_LEDS is not set
CONFIG_ALIGNMENT_TRAP=y
......@@ -167,7 +167,7 @@ CONFIG_MTD_BLOCK=y
CONFIG_BLK_DEV_LOOP=y
# CONFIG_BLK_DEV_NBD is not set
CONFIG_BLK_DEV_RAM=y
CONFIG_BLK_DEV_RAM_SIZE=4096
CONFIG_BLK_DEV_RAM_SIZE=8192
CONFIG_BLK_DEV_INITRD=y
# CONFIG_BLK_DEV_FLASH is not set
......
......@@ -161,7 +161,7 @@ CONFIG_BINFMT_ELF=y
# CONFIG_BINFMT_MISC is not set
# CONFIG_PM is not set
# CONFIG_ARTHUR is not set
CONFIG_CMDLINE="console=ttyS0,115200 ip=bootp"
CONFIG_CMDLINE="console=ttyS0,115200 ip=bootp mem=32M root=/dev/nfs initrd=0xc0800000,4M"
CONFIG_ALIGNMENT_TRAP=y
#
......
......@@ -158,7 +158,7 @@ CONFIG_BINFMT_ELF=y
CONFIG_PM=y
# CONFIG_APM is not set
# CONFIG_ARTHUR is not set
CONFIG_CMDLINE="keepinitrd"
CONFIG_CMDLINE="keepinitrd mem=32M"
# CONFIG_LEDS is not set
CONFIG_ALIGNMENT_TRAP=y
......
This diff is collapsed.
......@@ -820,6 +820,13 @@ CONFIG_MCP_UCB1200=y
CONFIG_MCP_UCB1200_AUDIO=m
CONFIG_MCP_UCB1200_TS=y
#
# Console Switches
#
CONFIG_SWITCHES=y
CONFIG_SWITCHES_SA1100=y
CONFIG_SWITCHES_UCB1X00=y
#
# USB support
#
......
......@@ -100,7 +100,7 @@ CONFIG_BINFMT_ELF=y
# CONFIG_BINFMT_MISC is not set
# CONFIG_PM is not set
# CONFIG_ARTHUR is not set
CONFIG_CMDLINE="keepinitrd"
CONFIG_CMDLINE="keepinitrd mem=16M root=/dev/ram ramdisk=8192 initrd=0xd0000000,4M"
# CONFIG_LEDS is not set
# CONFIG_ALIGNMENT_TRAP is not set
......
......@@ -137,7 +137,7 @@ CONFIG_BINFMT_ELF=y
# CONFIG_PM is not set
# CONFIG_APM is not set
# CONFIG_ARTHUR is not set
CONFIG_CMDLINE="keepinitrd"
CONFIG_CMDLINE="keepinitrd mem=128M root=/dev/ram initrd=0xc0800000,3M"
# CONFIG_PFS168_CMDLINE is not set
# CONFIG_LEDS is not set
CONFIG_ALIGNMENT_TRAP=y
......@@ -249,7 +249,7 @@ CONFIG_MTD_SA1100=y
CONFIG_BLK_DEV_LOOP=y
# CONFIG_BLK_DEV_NBD is not set
CONFIG_BLK_DEV_RAM=y
CONFIG_BLK_DEV_RAM_SIZE=4096
CONFIG_BLK_DEV_RAM_SIZE=16384
CONFIG_BLK_DEV_INITRD=y
#
......
......@@ -140,8 +140,7 @@ CONFIG_BINFMT_ELF=y
# CONFIG_BINFMT_MISC is not set
# CONFIG_PM is not set
# CONFIG_ARTHUR is not set
CONFIG_CMDLINE="root=/dev/nfs"
# CONFIG_PFS168_CMDLINE is not set
CONFIG_CMDLINE="root=/dev/nfs mem=16M"
CONFIG_LEDS=y
CONFIG_LEDS_TIMER=y
CONFIG_LEDS_CPU=y
......
......@@ -140,8 +140,7 @@ CONFIG_BINFMT_ELF=y
# CONFIG_BINFMT_MISC is not set
# CONFIG_PM is not set
# CONFIG_ARTHUR is not set
CONFIG_CMDLINE="root=/dev/nfs"
# CONFIG_PFS168_CMDLINE is not set
CONFIG_CMDLINE="root=/dev/nfs mem=16M"
CONFIG_LEDS=y
CONFIG_LEDS_TIMER=y
CONFIG_LEDS_CPU=y
......
......@@ -140,8 +140,7 @@ CONFIG_BINFMT_ELF=y
# CONFIG_BINFMT_MISC is not set
# CONFIG_PM is not set
# CONFIG_ARTHUR is not set
CONFIG_CMDLINE="root=/dev/nfs"
# CONFIG_PFS168_CMDLINE is not set
CONFIG_CMDLINE="root=/dev/nfs mem=16M"
CONFIG_LEDS=y
CONFIG_LEDS_TIMER=y
CONFIG_LEDS_CPU=y
......
......@@ -140,8 +140,7 @@ CONFIG_BINFMT_ELF=y
# CONFIG_BINFMT_MISC is not set
# CONFIG_PM is not set
# CONFIG_ARTHUR is not set
CONFIG_CMDLINE="root=/dev/nfs"
# CONFIG_PFS168_CMDLINE is not set
CONFIG_CMDLINE="root=/dev/nfs mem=16M"
CONFIG_LEDS=y
CONFIG_LEDS_TIMER=y
CONFIG_LEDS_CPU=y
......
......@@ -126,7 +126,7 @@ CONFIG_BINFMT_ELF=y
# CONFIG_PM is not set
# CONFIG_APM is not set
# CONFIG_ARTHUR is not set
CONFIG_CMDLINE="console=ttySA0,9600"
CONFIG_CMDLINE="console=ttySA0,9600 mem=16M@0xc0000000 mem=16M@0xc8000000 root=/dev/ram initrd=0xc0400000,4M"
# CONFIG_PFS168_CMDLINE is not set
# CONFIG_LEDS is not set
CONFIG_ALIGNMENT_TRAP=y
......@@ -213,7 +213,7 @@ CONFIG_ALIGNMENT_TRAP=y
# CONFIG_BLK_DEV_LOOP is not set
# CONFIG_BLK_DEV_NBD is not set
CONFIG_BLK_DEV_RAM=y
CONFIG_BLK_DEV_RAM_SIZE=4096
CONFIG_BLK_DEV_RAM_SIZE=8192
CONFIG_BLK_DEV_INITRD=y
#
......
......@@ -60,7 +60,7 @@ CONFIG_BINFMT_ELF=y
# CONFIG_BINFMT_MISC is not set
# CONFIG_ARTHUR is not set
# CONFIG_PARPORT is not set
CONFIG_CMDLINE=""
CONFIG_CMDLINE="mem=64M@0xc0000000 mem=64M@0xc8000000 root=/dev/mtdblock2"
#
# Plug and Play support
......
#
# Automatically generated make config: don't edit
#
CONFIG_ARM=y
#
# System and processor type
#
# CONFIG_ARCH_ARC is not set
# CONFIG_ARCH_A5K is not set
# CONFIG_ARCH_RPC is not set
# CONFIG_ARCH_EBSA110 is not set
# CONFIG_FOOTBRIDGE is not set
CONFIG_ARCH_SA1100=y
CONFIG_CPU_SA1100=y
# CONFIG_SA1100_BRUTUS is not set
# CONFIG_SA1100_EMPEG is not set
# CONFIG_SA1100_ITSY is not set
# CONFIG_SA1100_PLEB is not set
CONFIG_SA1100_VICTOR=y
# CONFIG_VICTOR_BOARD1 is not set
# CONFIG_ARCH_ACORN is not set
# CONFIG_ISA_DMA is not set
CONFIG_CPU_32=y
# CONFIG_CPU_26 is not set
# CONFIG_CPU_ARM2 is not set
# CONFIG_CPU_ARM3 is not set
# CONFIG_CPU_ARM6 is not set
# CONFIG_CPU_ARM7 is not set
CONFIG_CPU_SA110=y
#
# Code maturity level options
#
CONFIG_EXPERIMENTAL=y
# CONFIG_ALIGNMENT_TRAP is not set
# CONFIG_TEXT_SECTIONS is not set
#
# Loadable module support
#
CONFIG_MODULES=y
# CONFIG_MODVERSIONS is not set
# CONFIG_KMOD is not set
#
# General setup
#
CONFIG_ZBOOT_ROM=y
CONFIG_ZBOOT_ROM_TEXT=0x00002000
CONFIG_ZBOOT_ROM_BSS=0xc0200000
# CONFIG_NET is not set
# CONFIG_SYSVIPC is not set
# CONFIG_BSD_PROCESS_ACCT is not set
# CONFIG_SYSCTL is not set
CONFIG_NWFPE=y
# CONFIG_BINFMT_AOUT is not set
CONFIG_BINFMT_ELF=y
# CONFIG_BINFMT_MISC is not set
# CONFIG_ARTHUR is not set
# CONFIG_PARPORT is not set
CONFIG_CMDLINE=""
#
# Plug and Play support
#
# CONFIG_PNP is not set
#
# Block devices
#
# CONFIG_BLK_DEV_FD is not set
CONFIG_BLK_DEV_IDE=y
#
# Please see Documentation/ide.txt for help/info on IDE drives
#
# CONFIG_BLK_DEV_HD_IDE is not set
# CONFIG_BLK_DEV_IDEDISK is not set
CONFIG_BLK_DEV_IDECD=y
# CONFIG_BLK_DEV_IDETAPE is not set
# CONFIG_BLK_DEV_IDEFLOPPY is not set
# CONFIG_BLK_DEV_IDESCSI is not set
# CONFIG_BLK_DEV_CMD640 is not set
# CONFIG_IDE_CHIPSETS is not set
# CONFIG_BLK_DEV_LOOP is not set
# CONFIG_BLK_DEV_MD is not set
# CONFIG_BLK_DEV_RAM is not set
# CONFIG_BLK_DEV_XD is not set
CONFIG_PARIDE_PARPORT=y
# CONFIG_PARIDE is not set
# CONFIG_BLK_DEV_HD is not set
#
# Character devices
#
# CONFIG_VT is not set
CONFIG_SERIAL_SA1100=y
CONFIG_SERIAL_SA1100_CONSOLE=y
# CONFIG_SERIAL is not set
# CONFIG_SERIAL_EXTENDED is not set
# CONFIG_SERIAL_NONSTANDARD is not set
# CONFIG_UNIX98_PTYS is not set
# CONFIG_MOUSE is not set
# CONFIG_QIC02_TAPE is not set
# CONFIG_WATCHDOG is not set
# CONFIG_NVRAM is not set
# CONFIG_RTC is not set
#
# Video For Linux
#
# CONFIG_VIDEO_DEV is not set
#
# Joystick support
#
# CONFIG_JOYSTICK is not set
# CONFIG_DTLK is not set
#
# Ftape, the floppy tape device driver
#
# CONFIG_FTAPE is not set
#
# SCSI support
#
# CONFIG_SCSI is not set
#
# Filesystems
#
# CONFIG_QUOTA is not set
# CONFIG_AUTOFS_FS is not set
# CONFIG_ADFS_FS is not set
# CONFIG_AFFS_FS is not set
# CONFIG_HFS_FS is not set
# CONFIG_FAT_FS is not set
# CONFIG_MSDOS_FS is not set
# CONFIG_UMSDOS_FS is not set
# CONFIG_VFAT_FS is not set
CONFIG_ISO9660_FS=y
CONFIG_JOLIET=y
# CONFIG_MINIX_FS is not set
# CONFIG_NTFS_FS is not set
# CONFIG_HPFS_FS is not set
# CONFIG_PROC_FS is not set
# CONFIG_QNX4FS_FS is not set
# CONFIG_ROMFS_FS is not set
CONFIG_EXT2_FS=y
# CONFIG_SYSV_FS is not set
# CONFIG_UFS_FS is not set
#
# Partition Types
#
# CONFIG_OSF_PARTITION is not set
# CONFIG_MAC_PARTITION is not set
# CONFIG_MSDOS_PARTITION is not set
# CONFIG_SGI_PARTITION is not set
# CONFIG_SUN_PARTITION is not set
# CONFIG_AMIGA_PARTITION is not set
# CONFIG_ACORN_PARTITION is not set
CONFIG_NLS=y
#
# Native Language Support
#
CONFIG_NLS_CODEPAGE_437=y
# CONFIG_NLS_CODEPAGE_737 is not set
# CONFIG_NLS_CODEPAGE_775 is not set
CONFIG_NLS_CODEPAGE_850=y
# CONFIG_NLS_CODEPAGE_852 is not set
# CONFIG_NLS_CODEPAGE_855 is not set
# CONFIG_NLS_CODEPAGE_857 is not set
# CONFIG_NLS_CODEPAGE_860 is not set
# CONFIG_NLS_CODEPAGE_861 is not set
# CONFIG_NLS_CODEPAGE_862 is not set
# CONFIG_NLS_CODEPAGE_863 is not set
# CONFIG_NLS_CODEPAGE_864 is not set
# CONFIG_NLS_CODEPAGE_865 is not set
# CONFIG_NLS_CODEPAGE_866 is not set
# CONFIG_NLS_CODEPAGE_869 is not set
# CONFIG_NLS_CODEPAGE_874 is not set
CONFIG_NLS_ISO8859_1=y
# CONFIG_NLS_ISO8859_2 is not set
# CONFIG_NLS_ISO8859_3 is not set
# CONFIG_NLS_ISO8859_4 is not set
# CONFIG_NLS_ISO8859_5 is not set
# CONFIG_NLS_ISO8859_6 is not set
# CONFIG_NLS_ISO8859_7 is not set
# CONFIG_NLS_ISO8859_8 is not set
# CONFIG_NLS_ISO8859_9 is not set
# CONFIG_NLS_ISO8859_15 is not set
# CONFIG_NLS_KOI8_R is not set
#
# Kernel hacking
#
CONFIG_FRAME_POINTER=y
CONFIG_DEBUG_ERRORS=y
CONFIG_DEBUG_USER=y
# CONFIG_DEBUG_INFO is not set
# CONFIG_MAGIC_SYSRQ is not set
# CONFIG_DEBUG_LL is not set
......@@ -958,20 +958,15 @@ ENTRY(fp_enter)
.text
/*
* Register switch for ARMv3 and ARMv4 processors
* r0 = previous thread_info, r1 = next thread_info, return previous.
* r0 = previous thread_info, r1 = next thread_info
* previous and next are guaranteed not to be the same.
*/
ENTRY(__switch_to)
stmfd sp!, {r4 - sl, fp, lr} @ Store most regs on stack
mrs ip, cpsr
str ip, [sp, #-4]! @ Save cpsr_SVC
str sp, [r0, #TI_CPU_SAVE] @ Save sp_SVC
ldr sp, [r1, #TI_CPU_SAVE] @ Get saved sp_SVC
ldr r2, [r1, #TI_CPU_DOMAIN]
ldr ip, [sp], #4
add ip, r0, #TI_CPU_SAVE
ldr r2, [r1, #TI_CPU_DOMAIN]!
stmia ip, {r4 - sl, fp, sp, lr} @ Store most regs on stack
mcr p15, 0, r2, c3, c0 @ Set domain register
msr spsr, ip @ Save tasks CPSR into SPSR for this return
ldmfd sp!, {r4 - sl, fp, pc}^ @ Load all regs saved previously
ldmib r1, {r4 - sl, fp, sp, pc} @ Load all regs saved previously
.section ".text.init",#alloc,#execinstr
/*
......
......@@ -185,7 +185,7 @@ void show_regs(struct pt_regs * regs)
get_fs() == get_ds() ? "kernel" : "user");
#if defined(CONFIG_CPU_32)
{
int ctrl, transbase, dac;
unsigned int ctrl, transbase, dac;
__asm__ (
" mrc p15, 0, %0, c1, c0\n"
" mrc p15, 0, %1, c2, c0\n"
......@@ -310,23 +310,21 @@ void release_thread(struct task_struct *dead_task)
asmlinkage void ret_from_fork(void) __asm__("ret_from_fork");
int copy_thread(int nr, unsigned long clone_flags, unsigned long esp,
unsigned long unused,
struct task_struct * p, struct pt_regs * regs)
int
copy_thread(int nr, unsigned long clone_flags, unsigned long esp,
unsigned long unused, struct task_struct *p, struct pt_regs *regs)
{
struct thread_info *thread = p->thread_info;
struct pt_regs *childregs;
struct cpu_context_save *save;
childregs = ((struct pt_regs *)((unsigned long)p->thread_info + THREAD_SIZE)) - 1;
childregs = ((struct pt_regs *)((unsigned long)thread + THREAD_SIZE - 8)) - 1;
*childregs = *regs;
childregs->ARM_r0 = 0;
childregs->ARM_sp = esp;
save = ((struct cpu_context_save *)(childregs)) - 1;
*save = INIT_CSS;
save->pc |= (unsigned long)ret_from_fork;
p->thread_info->cpu_context = save;
memset(&thread->cpu_context, 0, sizeof(struct cpu_context_save));
thread->cpu_context.sp = (unsigned long)childregs;
thread->cpu_context.pc = (unsigned long)ret_from_fork;
return 0;
}
......
......@@ -341,7 +341,7 @@ parse_cmdline(struct meminfo *mi, char **cmdline_p, char *from)
*cmdline_p = command_line;
}
void __init
static void __init
setup_ramdisk(int doload, int prompt, int image_start, unsigned int rd_sz)
{
#ifdef CONFIG_BLK_DEV_RAM
......@@ -359,7 +359,7 @@ setup_ramdisk(int doload, int prompt, int image_start, unsigned int rd_sz)
/*
* initial ram disk
*/
void __init setup_initrd(unsigned int start, unsigned int size)
static void __init setup_initrd(unsigned int start, unsigned int size)
{
#ifdef CONFIG_BLK_DEV_INITRD
if (start == 0)
......
......@@ -21,27 +21,10 @@
extern void adifcc_map_io(void);
extern void adifcc_init_irq(void);
static void __init
fixup_adifcc(struct machine_desc *desc, struct tag *tags,
char **cmdline, struct meminfo *mi)
{
#ifdef CONFIG_ARCH_ADI_EVB
mi->bank[0].start = PHYS_OFFSET;
mi->bank[0].size = (32*1024*1024);
mi->bank[0].node = 0;
mi->nr_banks = 1;
setup_ramdisk( 1, 0, 0, 8192 );
setup_initrd( 0xc0800000, 3*1024*1024 );
ROOT_DEV = mk_kdev(RAMDISK_MAJOR,0);
#endif
}
#ifdef CONFIG_ARCH_ADI_EVB
MACHINE_START(ADI_EVB, "ADI 80200FCC Evaluation Board")
MAINTAINER("MontaVista Software Inc.")
BOOT_MEM(0xc0000000, 0x00400000, 0xff400000)
FIXUP(fixup_adifcc)
MAPIO(adifcc_map_io)
INITIRQ(adifcc_init_irq)
MACHINE_END
......
......@@ -19,28 +19,13 @@
#include <asm/mach-types.h>
#include <asm/mach/arch.h>
#ifndef CONFIG_BLK_DEV_RAM_SIZE
#define CONFIG_BLK_DEV_RAM_SIZE 4096
#endif
extern void anakin_map_io(void);
extern void genarch_init_irq(void);
static void __init
fixup_anakin(struct machine_desc *desc, struct tag *tag,
char **cmdline, struct meminfo *mi)
{
ROOT_DEV = mk_kdev(RAMDISK_MAJOR, 0);
setup_ramdisk(1, 0, 0, CONFIG_BLK_DEV_RAM_SIZE);
setup_initrd(0xc0800000, 4 * 1024 * 1024);
}
MACHINE_START(ANAKIN, "Anakin")
MAINTAINER("Wookey/Tak-Shing Chan")
BOOT_MEM(0x20000000, 0x40000000, 0xe0000000)
VIDEO(0x80000000, 0x8002db40)
FIXUP(fixup_anakin)
MAPIO(anakin_map_io)
INITIRQ(genarch_init_irq)
MACHINE_END
......@@ -44,12 +44,6 @@ static struct map_desc cdb89712_io_desc[] __initdata = {
LAST_DESC
};
static void __init
fixup_cdb89712(struct machine_desc *desc, struct tag *tags,
char **cmdline, struct meminfo *mi)
{
}
static void __init cdb89712_map_io(void)
{
clps711x_map_io();
......@@ -60,7 +54,6 @@ MACHINE_START(CDB89712, "Cirrus-CDB89712")
MAINTAINER("Ray Lehtiniemi")
BOOT_MEM(0xc0000000, 0x80000000, 0xff000000)
BOOT_PARAMS(0xc0000100)
FIXUP(fixup_cdb89712)
MAPIO(cdb89712_map_io)
INITIRQ(clps711x_init_irq)
MACHINE_END
......
......@@ -33,29 +33,9 @@
extern void epxa10db_map_io(void);
extern void epxa10db_init_irq(void);
static void __init
epxa10db_fixup(struct machine_desc *desc, struct tag *tags,
char **cmdline, struct meminfo *mi)
{
mi->nr_banks = 1;
mi->bank[0].start = 0;
mi->bank[0].size = (32*1024*1024);
mi->bank[0].node = 0;
/*
ROOT_DEV = mk_kdev(RAMDISK_MAJOR,0);
setup_ramdisk( 1, 0, 0, 8192 );
setup_initrd(0xc0200000, 6*1024*1024);
*/
}
MACHINE_START(CAMELOT, "Altera Epxa10db")
MAINTAINER("Altera Corporation")
BOOT_MEM(0x00000000, 0x7fffc000, 0xffffc000)
FIXUP(epxa10db_fixup)
MAPIO(epxa10db_map_io)
INITIRQ(epxa10db_init_irq)
MACHINE_END
......@@ -50,9 +50,7 @@ static struct kmi_info integrator_mouse __initdata = {
};
#endif
static void __init
integrator_fixup(struct machine_desc *desc, struct tag *tags,
char **cmdline, struct meminfo *mi)
static int __init integrator_init(void)
{
#ifdef CONFIG_KMI_KEYB
register_kmi(&integrator_keyboard);
......@@ -60,11 +58,12 @@ integrator_fixup(struct machine_desc *desc, struct tag *tags,
#endif
}
__initcall(integrator_init);
MACHINE_START(INTEGRATOR, "ARM-Integrator")
MAINTAINER("ARM Ltd/Deep Blue Solutions Ltd")
BOOT_MEM(0x00000000, 0x16000000, 0xf1600000)
BOOT_PARAMS(0x00000100)
FIXUP(integrator_fixup)
MAPIO(integrator_map_io)
INITIRQ(integrator_init_irq)
MACHINE_END
......@@ -3,7 +3,7 @@
*
* Copyright (C) 2001 Deep Blue Solutions Ltd.
*
* $Id: cpu.c,v 1.2 2001/09/22 12:11:17 rmk Exp $
* $Id: cpu.c,v 1.4 2002/05/29 11:41:55 rmk Exp $
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License version 2 as
......@@ -121,7 +121,7 @@ static int __init cpu_init(void)
cpu_freq_khz = vco_to_freq(vco, 1);
#ifdef CONFIG_CPU_FREQ
cpufreq_init(cpu_freq_khz);
cpufreq_init(cpu_freq_khz, 1000, 0);
cpufreq_setfunctions(integrator_validatespeed, integrator_setspeed);
#endif
......
......@@ -31,21 +31,8 @@ fixup_iq80310(struct machine_desc *desc, struct tag *tags,
{
system_rev = (*(volatile unsigned int*)0xfe830000) & 0x0f;
if(system_rev)
if (system_rev)
system_rev = 0xF;
mi->bank[0].start = PHYS_OFFSET;
mi->bank[0].size = (32*1024*1024);
mi->bank[0].node = 0;
mi->nr_banks = 1;
#ifdef CONFIG_ROOT_NFS
ROOT_DEV = to_kdev_t(0x00FF); /* /dev/nfs pseudo device */
#elif defined(CONFIG_BLK_DEV_INITRD)
setup_ramdisk( 1, 0, 0, CONFIG_BLK_DEV_RAM_SIZE );
setup_initrd( 0xc0800000, 4*1024*1024 );
ROOT_DEV = mk_kdev(RAMDISK_MAJOR, 0); /* /dev/ram */
#endif
}
MACHINE_START(IQ80310, "Cyclone IQ80310")
......
......@@ -82,33 +82,9 @@ static void __init l7200_map_io(void)
iotable_init(l7200_io_desc);
}
static void __init
fixup_l7200(struct machine_desc *desc, struct tag *tags,
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 = mk_kdev(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(l7200_init_irq)
MACHINE_END
......
......@@ -68,23 +68,6 @@ static void __init idp_init_irq(void)
pxa_init_irq();
}
static void __init
fixup_idp(struct machine_desc *desc, struct tag *tags,
char **cmdline, struct meminfo *mi)
{
#ifdef PXA_IDP_REV02
SET_BANK (0, 0xa0000000, 64*1024*1024);
#else
SET_BANK (0, 0xa0000000, 32*1024*1024);
#endif
mi->nr_banks = 1;
#if 0
setup_ramdisk (1, 0, 0, 8192);
setup_initrd (__phys_to_virt(0xa1000000), 4*1024*1024);
ROOT_DEV = MKDEV(RAMDISK_MAJOR,0);
#endif
}
static struct map_desc idp_io_desc[] __initdata = {
/* virtual physical length domain r w c b */
......@@ -132,7 +115,6 @@ static void __init idp_map_io(void)
MACHINE_START(PXA_IDP, "Accelent Xscale IDP")
MAINTAINER("Accelent Systems Inc.")
BOOT_MEM(0xa0000000, 0x40000000, 0xfc000000)
FIXUP(fixup_idp)
MAPIO(idp_map_io)
INITIRQ(idp_init_irq)
MACHINE_END
......@@ -119,19 +119,6 @@ static int __init lubbock_init(void)
__initcall(lubbock_init);
static void __init
fixup_lubbock(struct machine_desc *desc, struct tag *tags,
char **cmdline, struct meminfo *mi)
{
SET_BANK (0, 0xa0000000, 64*1024*1024);
mi->nr_banks = 1;
#if 0
setup_ramdisk (1, 0, 0, 8192);
setup_initrd (__phys_to_virt(0xa1000000), 4*1024*1024);
ROOT_DEV = MKDEV(RAMDISK_MAJOR,0);
#endif
}
static struct map_desc lubbock_io_desc[] __initdata = {
/* virtual physical length domain r w c b */
{ 0xf0000000, 0x08000000, 0x00100000, DOMAIN_IO, 0, 1, 0, 0 }, /* CPLD */
......@@ -160,7 +147,6 @@ static void __init lubbock_map_io(void)
MACHINE_START(LUBBOCK, "Intel DBPXA250 Development Platform")
MAINTAINER("MontaVista Software Inc.")
BOOT_MEM(0xa0000000, 0x40000000, 0xfc000000)
FIXUP(fixup_lubbock)
MAPIO(lubbock_map_io)
INITIRQ(lubbock_init_irq)
MACHINE_END
......@@ -60,16 +60,6 @@ __tagtable(ATAG_ACORN, parse_tag_acorn);
#endif
static void __init
fixup_riscpc(struct machine_desc *desc, struct tag *tags,
char **cmdline, struct meminfo *mi)
{
/*
* RiscPC can't handle half-word loads and stores
*/
elf_hwcap &= ~HWCAP_HALF;
}
static struct map_desc rpc_io_desc[] __initdata = {
{ SCREEN_BASE, SCREEN_START, 2*1048576, DOMAIN_IO, 0, 1, 0, 0 }, /* VRAM */
{ IO_BASE, IO_START, IO_SIZE , DOMAIN_IO, 0, 1, 0, 0 }, /* IO space */
......@@ -80,6 +70,11 @@ static struct map_desc rpc_io_desc[] __initdata = {
void __init rpc_map_io(void)
{
iotable_init(rpc_io_desc);
/*
* RiscPC can't handle half-word loads and stores
*/
elf_hwcap &= ~HWCAP_HALF;
}
MACHINE_START(RISCPC, "Acorn-RiscPC")
......@@ -88,7 +83,6 @@ MACHINE_START(RISCPC, "Acorn-RiscPC")
BOOT_PARAMS(0x10000100)
DISABLE_PARPORT(0)
DISABLE_PARPORT(1)
FIXUP(fixup_riscpc)
MAPIO(rpc_map_io)
INITIRQ(rpc_init_irq)
MACHINE_END
......@@ -99,8 +99,6 @@ led-$(CONFIG_SA1100_SIMPAD) += leds-simpad.o
obj-$(CONFIG_SA1100_STORK) += stork.o
export-objs += stork.o
obj-$(CONFIG_SA1100_VICTOR) += victor.o
obj-$(CONFIG_SA1100_XP860) += xp860.o
obj-$(CONFIG_SA1100_YOPY) += yopy.o
......
......@@ -76,23 +76,6 @@ static void __init adsbitsy_init_irq(void)
sa1100_init_irq();
}
/*
* Initialization fixup
*/
static void __init
fixup_adsbitsy(struct machine_desc *desc, struct tag *tags,
char **cmdline, struct meminfo *mi)
{
SET_BANK( 0, 0xc0000000, 32*1024*1024 );
mi->nr_banks = 1;
ROOT_DEV = mk_kdev(RAMDISK_MAJOR,0);
setup_ramdisk( 1, 0, 0, 8192 );
setup_initrd( __phys_to_virt(0xc0800000), 4*1024*1024 );
}
static struct map_desc adsbitsy_io_desc[] __initdata = {
/* virtual physical length domain r w c b */
{ 0xf4000000, 0x18000000, 0x00800000, DOMAIN_IO, 0, 1, 0, 0 }, /* SA1111 */
......@@ -135,7 +118,6 @@ static void __init adsbitsy_map_io(void)
MACHINE_START(ADSBITSY, "ADS Bitsy")
BOOT_MEM(0xc0000000, 0x80000000, 0xf8000000)
FIXUP(fixup_adsbitsy)
MAPIO(adsbitsy_map_io)
INITIRQ(adsbitsy_init_irq)
MACHINE_END
......@@ -162,60 +162,12 @@ static void __init
fixup_assabet(struct machine_desc *desc, struct tag *tags,
char **cmdline, struct meminfo *mi)
{
struct tag *t = tags;
/* This must be done before any call to machine_has_neponset() */
map_sa1100_gpio_regs();
get_assabet_scr();
if (machine_has_neponset())
printk("Neponset expansion board detected\n");
if (t->hdr.tag != ATAG_CORE) {
t->hdr.tag = ATAG_CORE;
t->hdr.size = tag_size(tag_core);
t->u.core.flags = 0;
t->u.core.pagesize = PAGE_SIZE;
t->u.core.rootdev = RAMDISK_MAJOR << 8 | 0;
t = tag_next(t);
t->hdr.tag = ATAG_MEM;
t->hdr.size = tag_size(tag_mem32);
t->u.mem.start = 0xc0000000;
t->u.mem.size = 32 * 1024 * 1024;
t = tag_next(t);
/*
* Note that Neponset RAM is slower...
* and still untested.
* This would be a candidate for
* _real_ NUMA support.
*/
if (machine_has_neponset() && 0) {
t->hdr.tag = ATAG_MEM;
t->hdr.size = tag_size(tag_mem32);
t->u.mem.start = 0xd0000000;
t->u.mem.size = 32 * 1024 * 1024;
t = tag_next(t);
}
t->hdr.tag = ATAG_RAMDISK;
t->hdr.size = tag_size(tag_ramdisk);
t->u.ramdisk.flags = 1;
t->u.ramdisk.size = 8192;
t->u.ramdisk.start = 0;
t = tag_next(t);
t->hdr.tag = ATAG_INITRD;
t->hdr.size = tag_size(tag_initrd);
t->u.initrd.start = 0xc0800000;
t->u.initrd.size = 3 * 1024 * 1024;
t = tag_next(t);
t->hdr.tag = ATAG_NONE;
t->hdr.size = 0;
}
}
......
......@@ -21,22 +21,6 @@
#include "generic.h"
static void __init
fixup_brutus(struct machine_desc *desc, struct tag *tags,
char **cmdline, struct meminfo *mi)
{
SET_BANK( 0, 0xc0000000, 4*1024*1024 );
SET_BANK( 1, 0xc8000000, 4*1024*1024 );
SET_BANK( 2, 0xd0000000, 4*1024*1024 );
SET_BANK( 3, 0xd8000000, 4*1024*1024 );
mi->nr_banks = 4;
ROOT_DEV = mk_kdev(RAMDISK_MAJOR,0);
setup_ramdisk( 1, 0, 0, 8192 );
setup_initrd( __phys_to_virt(0xd8000000), 3*1024*1024 );
}
static void __init brutus_map_io(void)
{
sa1100_map_io();
......@@ -51,7 +35,6 @@ static void __init brutus_map_io(void)
MACHINE_START(BRUTUS, "Intel Brutus (SA1100 eval board)")
BOOT_MEM(0xc0000000, 0x80000000, 0xf8000000)
FIXUP(fixup_brutus)
MAPIO(brutus_map_io)
INITIRQ(sa1100_init_irq)
MACHINE_END
......@@ -35,33 +35,6 @@ static void __init cerf_init_irq(void)
set_irq_type(IRQ_GPIO_UCB1200_IRQ, IRQT_RISING);
}
static void __init
fixup_cerf(struct machine_desc *desc, struct tag *tags,
char **cmdline, struct meminfo *mi)
{
#if defined(CONFIG_SA1100_CERF_64MB)
SET_BANK( 0, 0xc0000000, 64*1024*1024 );
mi->nr_banks = 1;
#elif defined(CONFIG_SA1100_CERF_32MB)
SET_BANK( 0, 0xc0000000, 32*1024*1024 );
mi->nr_banks = 1;
#elif defined(CONFIG_SA1100_CERF_16MB)
SET_BANK( 0, 0xc0000000, 8*1024*1024 );
SET_BANK( 1, 0xc8000000, 8*1024*1024 );
mi->nr_banks = 2;
#elif defined(CONFIG_SA1100_CERF_8MB)
SET_BANK( 0, 0xc0000000, 8*1024*1024 );
mi->nr_banks = 1;
#else
#error "Undefined memory size for Cerfboard."
#endif
// ROOT_DEV = mk_kdev(RAMDISK_MAJOR,0);
// setup_ramdisk(1, 0, 0, 8192);
// // Save 2Meg for RAMDisk
// setup_initrd(0xc0500000, 3*1024*1024);
}
static struct map_desc cerf_io_desc[] __initdata = {
/* virtual physical length domain r w c b */
{ 0xf0000000, 0x08000000, 0x00100000, DOMAIN_IO, 0, 1, 0, 0 }, /* Crystal Ethernet Chip */
......@@ -96,7 +69,6 @@ static void __init cerf_map_io(void)
MACHINE_START(CERF, "Intrinsyc's Cerf Family of Products")
MAINTAINER("support@intrinsyc.com")
BOOT_MEM(0xc0000000, 0x80000000, 0xf8000000)
FIXUP(fixup_cerf)
MAPIO(cerf_map_io)
INITIRQ(cerf_init_irq)
MACHINE_END
......@@ -15,20 +15,6 @@
#include "generic.h"
static void __init
fixup_empeg(struct machine_desc *desc, struct tag *tags,
char **cmdline, struct meminfo *mi)
{
SET_BANK( 0, 0xc0000000, 4*1024*1024 );
SET_BANK( 1, 0xc8000000, 4*1024*1024 );
mi->nr_banks = 2;
ROOT_DEV = mk_kdev( 3, 1 ); /* /dev/hda1 */
setup_ramdisk( 1, 0, 0, 4096 );
setup_initrd( 0xd0000000+((1024-320)*1024), (320*1024) );
}
static struct map_desc empeg_io_desc[] __initdata = {
/* virtual physical length domain r w c b */
{ EMPEG_FLASHBASE, 0x00000000, 0x00200000, DOMAIN_IO, 0, 1, 0, 0 }, /* Flash */
......@@ -48,7 +34,6 @@ static void __init empeg_map_io(void)
MACHINE_START(EMPEG, "empeg MP3 Car Audio Player")
BOOT_MEM(0xc0000000, 0x80000000, 0xf8000000)
FIXUP(fixup_empeg)
MAPIO(empeg_map_io)
INITIRQ(sa1100_init_irq)
MACHINE_END
......@@ -151,21 +151,6 @@ static int __init flexanet_init(void)
__initcall(flexanet_init);
static void __init
fixup_flexanet(struct machine_desc *desc, struct tag *tags,
char **cmdline, struct meminfo *mi)
{
/* fixed RAM size, by now (64MB) */
SET_BANK( 0, 0xc0000000, 64*1024*1024 );
mi->nr_banks = 1;
/* setup ramdisk */
ROOT_DEV = mk_kdev(RAMDISK_MAJOR,0);
setup_ramdisk( 1, 0, 0, 8192 );
setup_initrd( 0xc0800000, 3*1024*1024 );
}
static struct map_desc flexanet_io_desc[] __initdata = {
/* virtual physical length domain r w c b */
{ 0xf0000000, 0x10000000, 0x00001000, DOMAIN_IO, 0, 1, 0, 0 }, /* Board Control Register */
......@@ -206,7 +191,6 @@ static void __init flexanet_map_io(void)
MACHINE_START(FLEXANET, "FlexaNet")
BOOT_MEM(0xc0000000, 0x80000000, 0xf8000000)
BOOT_PARAMS(0xc0000100)
FIXUP(fixup_flexanet)
MAPIO(flexanet_map_io)
INITIRQ(sa1100_init_irq)
MACHINE_END
......
......@@ -51,19 +51,6 @@ static int __init freebird_init(void)
__initcall(freebird_init);
static void __init
fixup_freebird(struct machine_desc *desc, struct tag *tags,
char **cmdline, struct meminfo *mi)
{
#ifdef CONFIG_SA1100_FREEBIRD_OLD
SET_BANK( 0, 0xc0000000, 32*1024*1024 );
mi->nr_banks = 1;
ROOT_DEV = mk_kdev(RAMDISK_MAJOR,0);
setup_ramdisk( 1, 0 ,0 , 8192 );
setup_initrd( 0xc0800000, 3*1024*1024 );
#endif
}
static struct map_desc freebird_io_desc[] __initdata = {
/* virtual physical length domain r w c b */
{ 0xf0000000, 0x12000000, 0x00100000, DOMAIN_IO, 0, 1, 0, 0 }, /* Board Control Register */
......@@ -90,7 +77,6 @@ MACHINE_START(FREEBIRD, "Freebird-HPC-1.1")
#ifdef CONFIG_SA1100_FREEBIRD_NEW
BOOT_PARAMS(0xc0000100)
#endif
FIXUP(fixup_freebird)
MAPIO(freebird_map_io)
INITIRQ(sa1100_init_irq)
MACHINE_END
......@@ -78,7 +78,7 @@ unsigned int sa11x0_validatespeed(unsigned int khz)
static int __init sa11x0_init_clock(void)
{
cpufreq_init(cclk_frequency_100khz[PPCR & 0xf] * 100);
cpufreq_init(cclk_frequency_100khz[PPCR & 0xf] * 100, 59000, 287000);
return 0;
}
......@@ -203,6 +203,3 @@ void __init sa1110_mb_enable(void)
local_irq_restore(flags);
}
EXPORT_SYMBOL(sa1111_wake);
EXPORT_SYMBOL(sa1111_doze);
......@@ -120,23 +120,6 @@ static void __init graphicsclient_init_irq(void)
}
/*
* Initialization fixup
*/
static void __init
fixup_graphicsclient(struct machine_desc *desc, struct tag *tags,
char **cmdline, struct meminfo *mi)
{
SET_BANK( 0, 0xc0000000, 16*1024*1024 );
SET_BANK( 1, 0xc8000000, 16*1024*1024 );
mi->nr_banks = 2;
ROOT_DEV = mk_kdev(RAMDISK_MAJOR,0);
setup_ramdisk( 1, 0, 0, 8192 );
setup_initrd( __phys_to_virt(0xc0800000), 4*1024*1024 );
}
static struct map_desc graphicsclient_io_desc[] __initdata = {
/* virtual physical length domain r w c b */
{ 0xf0000000, 0x10000000, 0x00400000, DOMAIN_IO, 0, 1, 0, 0 }, /* CPLD */
......@@ -216,7 +199,6 @@ static void __init graphicsclient_map_io(void)
MACHINE_START(GRAPHICSCLIENT, "ADS GraphicsClient")
BOOT_MEM(0xc0000000, 0x80000000, 0xf8000000)
FIXUP(fixup_graphicsclient)
MAPIO(graphicsclient_map_io)
INITIRQ(graphicsclient_init_irq)
MACHINE_END
......@@ -152,24 +152,6 @@ static void __init graphicsmaster_init_irq(void)
}
/*
* Initialization fixup
*/
static void __init
fixup_graphicsmaster(struct machine_desc *desc, struct tag *tags,
char **cmdline, struct meminfo *mi)
{
SET_BANK( 0, 0xc0000000, 16*1024*1024 );
mi->nr_banks = 1;
SET_BANK( 1, 0xc8000000, 16*1024*1024 );
mi->nr_banks = 2;
ROOT_DEV = mk_kdev(RAMDISK_MAJOR,0);
setup_ramdisk( 1, 0, 0, 8192 );
setup_initrd( __phys_to_virt(0xc0800000), 4*1024*1024 );
}
static struct map_desc graphicsmaster_io_desc[] __initdata = {
/* virtual physical length domain r w c b */
{ 0xf0000000, 0x10000000, 0x00400000, DOMAIN_IO, 0, 1, 0, 0 }, /* CPLD */
......@@ -276,7 +258,6 @@ static void __init graphicsmaster_map_io(void)
MACHINE_START(GRAPHICSMASTER, "ADS GraphicsMaster")
BOOT_MEM(0xc0000000, 0x80000000, 0xf8000000)
FIXUP(fixup_graphicsmaster)
MAPIO(graphicsmaster_map_io)
INITIRQ(graphicsmaster_init_irq)
MACHINE_END
......@@ -54,22 +54,6 @@ static int __init init_huw_cs3(void)
__initcall(init_huw_cs3);
static void __init
fixup_huw_webpanel(struct machine_desc *desc, struct tag *tags,
char **cmdline, struct meminfo *mi)
{
/**
memory information (JOR):
32 MByte - 256KByte bootloader (init at boot time) - 32 kByte save area
**/
SET_BANK( 0, 0xc0000000, ((32*1024 - (256 + 32)) * 1024));
mi->nr_banks = 1;
ROOT_DEV = mk_kdev(RAMDISK_MAJOR,0);
setup_ramdisk( 1, 0, 0, 8192 );
setup_initrd( __phys_to_virt(0xc0800000), 8*1024*1024 );
}
/**
memory information (JOR):
32 MByte - 256KByte bootloader (init at boot time) - 32 kByte save area
......@@ -95,7 +79,6 @@ static void __init huw_webpanel_map_io(void)
MACHINE_START(HUW_WEBPANEL, "HuW-Webpanel")
MAINTAINER("Roman Jordan")
BOOT_MEM(0xc0000000, 0x80000000, 0xf8000000)
FIXUP(fixup_huw_webpanel)
MAPIO(huw_webpanel_map_io)
INITIRQ(sa1100_init_irq)
MACHINE_END
......@@ -15,18 +15,6 @@
#include "generic.h"
static void __init
fixup_itsy(struct machine_desc *desc, struct tag *tags,
char **cmdline, struct meminfo *mi)
{
SET_BANK( 0, 0xc0000000, 16*1024*1024 );
SET_BANK( 1, 0xc8000000, 16*1024*1024 );
SET_BANK( 2, 0xd0000000, 16*1024*1024 );
SET_BANK( 3, 0xd8000000, 16*1024*1024 );
mi->nr_banks = 4;
}
/* BRADFIXME The egpio addresses aren't verifiably correct. (i.e. they're most
likely wrong. */
static struct map_desc itsy_io_desc[] __initdata = {
......@@ -49,7 +37,6 @@ static void __init itsy_map_io(void)
MACHINE_START(ITSY, "Compaq Itsy")
BOOT_MEM(0xc0000000, 0x80000000, 0xf8000000)
BOOT_PARAMS(0xc0000100)
FIXUP(fixup_itsy)
MAPIO(itsy_map_io)
INITIRQ(sa1100_init_irq)
MACHINE_END
......@@ -55,15 +55,6 @@ static int __init jornada720_init(void)
__initcall(jornada720_init);
static void __init
fixup_jornada720(struct machine_desc *desc, struct tag *tags,
char **cmdline, struct meminfo *mi)
{
SET_BANK( 0, 0xc0000000, 32*1024*1024 );
mi->nr_banks = 1;
}
static struct map_desc jornada720_io_desc[] __initdata = {
/* virtual physical length domain r w c b */
{ 0xf0000000, 0x48000000, 0x00100000, DOMAIN_IO, 0, 1, 0, 0 }, /* Epson registers */
......@@ -84,7 +75,6 @@ static void __init jornada720_map_io(void)
MACHINE_START(JORNADA720, "HP Jornada 720")
BOOT_MEM(0xc0000000, 0x80000000, 0xf8000000)
BOOT_PARAMS(0xc0000100)
FIXUP(fixup_jornada720)
MAPIO(jornada720_map_io)
INITIRQ(sa1100_init_irq)
MACHINE_END
......@@ -15,20 +15,12 @@
#include "generic.h"
static void __init
fixup_nanoengine(struct machine_desc *desc, struct tag *tags,
char **cmdline, struct meminfo *mi)
{
SET_BANK( 0, 0xc0000000, 32*1024*1024 );
mi->nr_banks = 1;
ROOT_DEV = mk_kdev(RAMDISK_MAJOR,0);
setup_ramdisk( 1, 0, 0, 8192 );
setup_initrd( __phys_to_virt(0xc0800000), 4*1024*1024 );
/* Get command line parameters passed from the loader (if any) */
if( *((char*)0xc0000100) )
if (*((char*)0xc0000100))
*cmdline = ((char *)0xc0000100);
}
......
......@@ -40,18 +40,6 @@ static int __init omnimeter_init(void)
__initcall(omnimeter_init);
static void __init
fixup_omnimeter(struct machine_desc *desc, struct tag *tags,
char **cmdline, struct meminfo *mi)
{
SET_BANK( 0, 0xc0000000, 16*1024*1024 );
mi->nr_banks = 1;
ROOT_DEV = mk_kdev(RAMDISK_MAJOR,0);
setup_ramdisk( 1, 0, 0, 8192 );
setup_initrd( __phys_to_virt(0xd0000000), 0x00400000 );
}
static struct map_desc omnimeter_io_desc[] __initdata = {
/* virtual physical length domain r w c b */
{ 0xd2000000, 0x10000000, 0x02000000, DOMAIN_IO, 0, 1, 0, 0 }, /* TS */
......@@ -69,7 +57,6 @@ static void __init omnimeter_map_io(void)
MACHINE_START(OMNIMETER, "OmniMeter")
BOOT_MEM(0xc0000000, 0x80000000, 0xf8000000)
FIXUP(fixup_omnimeter)
MAPIO(omnimeter_map_io)
INITIRQ(sa1100_init_irq)
MACHINE_END
......@@ -15,19 +15,6 @@
#include "generic.h"
static void __init
fixup_pangolin(struct machine_desc *desc, struct tag *tags,
char **cmdline, struct meminfo *mi)
{
SET_BANK( 0, 0xc0000000, 128*1024*1024 );
mi->nr_banks = 1;
ROOT_DEV = mk_kdev(RAMDISK_MAJOR,0);
setup_ramdisk( 1, 0, 0, 16384 );
setup_initrd( 0xc0800000, 3*1024*1024 );
}
static struct map_desc pangolin_io_desc[] __initdata = {
/* virtual physical length domain r w c b */
{ 0xf2800000, 0x4b800000, 0x00800000, DOMAIN_IO, 0, 1, 0, 0 }, /* MQ200 */
......@@ -52,7 +39,6 @@ static void __init pangolin_map_io(void)
MACHINE_START(PANGOLIN, "Dialogue-Pangolin")
BOOT_MEM(0xc0000000, 0x80000000, 0xf8000000)
FIXUP(fixup_pangolin)
MAPIO(pangolin_map_io)
INITIRQ(sa1100_init_irq)
MACHINE_END
......@@ -55,19 +55,6 @@ static void __init pfs168_init_irq(void)
set_GPIO_IRQ_edge(GPIO_UCB1300_IRQ, GPIO_RISING_EDGE);
}
static void __init
fixup_pfs168(struct machine_desc *desc, struct tag *tags,
char **cmdline, struct meminfo *mi)
{
SET_BANK( 0, 0xc0000000, 16*1024*1024 );
mi->nr_banks = 1;
ROOT_DEV = mk_kdev(RAMDISK_MAJOR,0);
setup_ramdisk( 1, 0, 0, 8192 );
setup_initrd( 0xc0800000, 3*1024*1024 );
}
static struct map_desc pfs168_io_desc[] __initdata = {
/* virtual physical length domain r w c b */
{ 0xe8000000, 0x00000000, 0x02000000, DOMAIN_IO, 0, 1, 0, 0 }, /* Flash bank 0 */
......@@ -98,10 +85,7 @@ static void __init pfs168_map_io(void)
MACHINE_START(PFS168, "Tulsa")
BOOT_MEM(0xc0000000, 0x80000000, 0xf8000000)
#if defined(CONFIG_PFS168_CMDLINE)
BOOT_PARAMS(0xc0000100)
#endif
FIXUP(fixup_pfs168)
MAPIO(pfs168_map_io)
INITIRQ(pfs168_init_irq)
MACHINE_END
......@@ -15,24 +15,6 @@
#include "generic.h"
static void __init
fixup_pleb(struct machine_desc *desc, struct tag *tags,
char **cmdline, struct meminfo *mi)
{
SET_BANK(0, 0xc0000000, 16*1024*1024);
SET_BANK(1, 0xc8000000, 16*1024*1024);
SET_BANK(2, 0xd0000000, 16*1024*1024);
SET_BANK(3, 0xd8000000, 16*1024*1024);
/* make this 4 a second memory card is used to make 64MB */
/* make it 1 if a 16MB memory card is used */
mi->nr_banks = 2; /* Default 32MB */
ROOT_DEV = mk_kdev(RAMDISK_MAJOR, 0);
setup_ramdisk(1, 0, 0, 8192);
setup_initrd(0xc0400000, 4*1024*1024);
}
static struct map_desc pleb_io_desc[] __initdata = {
/* virtual physical length domain r w c b */
{ 0xe8000000, 0x00000000, 0x00400000, DOMAIN_IO, 0, 1, 0, 0 }, /* main flash memory */
......@@ -55,7 +37,6 @@ static void __init pleb_map_io(void)
MACHINE_START(PLEB, "PLEB")
BOOT_MEM(0xc0000000, 0x80000000, 0xf8000000)
FIXUP(fixup_pleb)
MAPIO(pleb_map_io)
INITIRQ(sa1100_init_irq)
MACHINE_END
......@@ -15,20 +15,6 @@
#include "generic.h"
static void __init
fixup_sherman(struct machine_desc *desc, struct tag *tags,
char **cmdline, struct meminfo *mi)
{
SET_BANK( 0, 0xc0000000, 64*1024*1024 );
SET_BANK( 1, 0xc8000000, 64*1024*1024 );
mi->nr_banks = 2;
ROOT_DEV = mk_kdev( 60, 2 );
setup_ramdisk( 1, 0, 0, 8192 );
// setup_initrd( 0xc0400000, 8*1024*1024 );
}
static void __init sherman_map_io(void)
{
sa1100_map_io();
......@@ -39,7 +25,6 @@ static void __init sherman_map_io(void)
MACHINE_START(SHERMAN, "Blazie Engineering Sherman")
BOOT_MEM(0xc0000000, 0x80000000, 0xf8000000)
FIXUP(fixup_sherman)
MAPIO(sherman_map_io)
INITIRQ(sa1100_init_irq)
MACHINE_END
......@@ -40,22 +40,6 @@ void clear_cs3_bit(int value)
*(CS3BUSTYPE *)(CS3_BASE) = cs3_shadow;
}
static void __init
fixup_simpad(struct machine_desc *desc, struct tag *tags,
char **cmdline, struct meminfo *mi)
{
#ifdef CONFIG_SA1100_SIMPAD_DRAM_64MB /* DRAM */
SET_BANK( 0, 0xc0000000, 64*1024*1024 );
#else
SET_BANK( 0, 0xc0000000, 32*1024*1024 );
#endif
mi->nr_banks = 1;
ROOT_DEV = mk_kdev(RAMDISK_MAJOR,0);
setup_ramdisk( 1, 0, 0, 8192 );
setup_initrd( __phys_to_virt(0xc0800000), 4*1024*1024 );
}
static struct map_desc simpad_io_desc[] __initdata = {
/* virtual physical length domain r w c b */
{ 0xf2800000, 0x4b800000, 0x00800000, DOMAIN_IO, 0, 1, 0, 0 }, /* MQ200 */
......@@ -141,22 +125,14 @@ static int proc_cs3_read(char *page, char **start, off_t off,
}
static struct proc_dir_entry *proc_cs3;
static int __init cs3_init(void)
{
proc_cs3 = create_proc_entry("cs3", 0, 0);
struct proc_dir_entry *proc_cs3 = create_proc_entry("cs3", 0, 0);
if (proc_cs3)
proc_cs3->read_proc = proc_cs3_read;
return 0;
}
static int __exit cs3_exit(void)
{
if (proc_cs3)
remove_proc_entry( "cs3", 0);
return 0;
}
__initcall(cs3_init);
#endif // CONFIG_PROC_FS
......@@ -164,7 +140,6 @@ __initcall(cs3_init);
MACHINE_START(SIMPAD, "Simpad")
MAINTAINER("Juergen Messerer")
BOOT_MEM(0xc0000000, 0x80000000, 0xf8000000)
FIXUP(fixup_simpad)
MAPIO(simpad_map_io)
INITIRQ(sa1100_init_irq)
MACHINE_END
......@@ -73,8 +73,6 @@
*/
/* init funcs */
static void __init fixup_system3(struct machine_desc *desc,
struct tag *tags, char **cmdline, struct meminfo *mi);
static int __init system3_init(void);
static void __init system3_init_irq(void);
static void __init system3_map_io(void);
......@@ -228,25 +226,6 @@ static int sdram_notifier(struct notifier_block *nb, unsigned long event,
return 0;
}
/**
* fixup_system3 - fixup function for system 3 board
* @desc: machine description
* @param: kernel params
* @cmdline: kernel cmdline
* @mi: memory info struct
*
*/
static void __init fixup_system3(struct machine_desc *desc,
struct tag *tags, char **cmdline, struct meminfo *mi)
{
DPRINTK( "%s\n", "START" );
ROOT_DEV = mk_kdev(RAMDISK_MAJOR,0);
setup_ramdisk( 1, 0, 0, 8192 );
setup_initrd( 0xc0800000, 8*1024*1024 );
}
/**
* system3_uart_pm - powermgmt callback function for system 3 UART
* @port: uart port structure
......@@ -457,7 +436,6 @@ __initcall(system3_init);
MACHINE_START(PT_SYSTEM3, "PT System 3")
BOOT_MEM(0xc0000000, 0x80000000, 0xf8000000)
BOOT_PARAMS(0xc0000100)
FIXUP(fixup_system3)
MAPIO(system3_map_io)
INITIRQ(sa1100_init_irq)
MACHINE_END
/*
* linux/arch/arm/mach-sa1100/victor.c
*
* Author: Nicolas Pitre
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License version 2 as
* published by the Free Software Foundation.
*/
#include <linux/init.h>
#include <linux/kernel.h>
#include <linux/delay.h>
#include <linux/pm.h>
#include <linux/tty.h>
#include <asm/hardware.h>
#include <asm/setup.h>
#include <asm/mach/arch.h>
#include <asm/mach/map.h>
#include <asm/mach/serial_sa1100.h>
#include "generic.h"
static void victor_power_off(void)
{
/* switch off power supply */
mdelay(2000);
GPCR = GPIO_GPIO23;
while (1);
}
static int __init victor_init(void)
{
pm_power_off = victor_power_off;
return 0;
}
__initcall(victor_init);
static void __init
fixup_victor(struct machine_desc *desc, struct tag *tags,
char **cmdline, struct meminfo *mi)
{
SET_BANK( 0, 0xc0000000, 4*1024*1024 );
mi->nr_banks = 1;
ROOT_DEV = mk_kdev( 60, 2 );
/* Get command line parameters passed from the loader (if any) */
if( *((char*)0xc0000000) )
strcpy( *cmdline, ((char *)0xc0000000) );
/* power off if any problem */
strcat( *cmdline, " panic=1" );
}
static struct map_desc victor_io_desc[] __initdata = {
/* virtual physical length domain r w c b */
{ 0xe8000000, 0x00000000, 0x00200000, DOMAIN_IO, 0, 1, 0, 0 }, /* Flash */
LAST_DESC
};
static void __init victor_map_io(void)
{
sa1100_map_io();
iotable_init(victor_io_desc);
sa1100_register_uart(0, 3);
}
MACHINE_START(VICTOR, "VisuAide Victor")
BOOT_MEM(0xc0000000, 0x80000000, 0xf8000000)
FIXUP(fixup_victor)
MAPIO(victor_map_io)
INITIRQ(sa1100_init_irq)
MACHINE_END
......@@ -56,15 +56,6 @@ static int __init xp860_init(void)
__initcall(xp860_init);
static void __init
fixup_xp860(struct machine_desc *desc, struct tag *tags,
char **cmdline, struct meminfo *mi)
{
SET_BANK( 0, 0xc0000000, 32*1024*1024 );
mi->nr_banks = 1;
}
static struct map_desc xp860_io_desc[] __initdata = {
/* virtual physical length domain r w c b */
{ 0xf0000000, 0x10000000, 0x00100000, DOMAIN_IO, 0, 1, 0, 0 }, /* SCSI */
......@@ -84,7 +75,6 @@ static void __init xp860_map_io(void)
MACHINE_START(XP860, "XP860")
BOOT_MEM(0xc0000000, 0x80000000, 0xf8000000)
FIXUP(fixup_xp860)
MAPIO(xp860_map_io)
INITIRQ(sa1100_init_irq)
MACHINE_END
......@@ -30,6 +30,7 @@
#include <asm/dma.h>
#include <asm/hardware.h>
#include <asm/setup.h>
#include <asm/tlb.h>
#include <asm/mach/arch.h>
#include <asm/mach/map.h>
......@@ -48,6 +49,8 @@
#define TABLE_SIZE ((TABLE_OFFSET + PTRS_PER_PTE) * sizeof(pte_t))
mmu_gather_t mmu_gathers[NR_CPUS];
extern pgd_t swapper_pg_dir[PTRS_PER_PGD];
extern char _stext, _text, _etext, _end, __init_begin, __init_end;
......
This diff is collapsed.
......@@ -179,7 +179,7 @@ wakeup_pmode_return:
rep lodsb
movw $0x0e00 + 'O', %ds:(0xb8018)
movl %cs:saved_magic2, %eax
movl %cs:saved_magic, %eax
cmpl $0x12345678, %eax
jne bogus_magic
......@@ -243,7 +243,7 @@ ENTRY(acpi_copy_wakeup_routine)
movl saved_videomode, %edx
movl %edx, video_mode - wakeup_start (%eax)
movl $0x12345678, real_magic - wakeup_start (%eax)
movl $0x12345678, saved_magic2
movl $0x12345678, saved_magic
# restore the regs we used
popl %edi
......@@ -261,7 +261,6 @@ ENTRY(saved_eip) .long 0
ENTRY(saved_esp) .long 0
ENTRY(saved_magic) .long 0
ENTRY(saved_magic2) .long 0
ALIGN
# saved registers
......
......@@ -17,6 +17,7 @@
* thanks to Eric Gilmore
* and Rolf G. Tews
* for testing these extensively
* Paul Diefenbaugh : Added full ACPI support
*/
#include <linux/mm.h>
......@@ -29,6 +30,7 @@
#include <linux/smp_lock.h>
#include <linux/mc146818rtc.h>
#include <linux/compiler.h>
#include <linux/acpi.h>
#include <asm/io.h>
#include <asm/smp.h>
......@@ -1111,6 +1113,10 @@ static void __init setup_ioapic_ids_from_mpc (void)
unsigned char old_id;
unsigned long flags;
if (acpi_ioapic)
/* This gets done during IOAPIC enumeration for ACPI. */
return;
if (clustered_apic_mode)
/* We don't have a good way to do this yet - hack */
phys_id_present_map = (u_long) 0xf;
......@@ -1699,8 +1705,7 @@ void __init setup_IO_APIC(void)
printk("ENABLING IO-APIC IRQs\n");
/*
* Set up the IO-APIC IRQ routing table by parsing the MP-BIOS
* mptable:
* Set up IO-APIC IRQ routing.
*/
setup_ioapic_ids_from_mpc();
sync_Arb_IDs();
......@@ -1709,3 +1714,159 @@ void __init setup_IO_APIC(void)
check_timer();
print_IO_APIC();
}
/* --------------------------------------------------------------------------
ACPI-based IOAPIC Configuration
-------------------------------------------------------------------------- */
#ifdef CONFIG_ACPI_BOOT
#define IO_APIC_MAX_ID 15
int __init io_apic_get_unique_id (int ioapic, int apic_id)
{
struct IO_APIC_reg_00 reg_00;
static unsigned long apic_id_map = 0;
unsigned long flags;
int i = 0;
/*
* The P4 platform supports up to 256 APIC IDs on two separate APIC
* buses (one for LAPICs, one for IOAPICs), where predecessors only
* supports up to 16 on one shared APIC bus.
*
* TBD: Expand LAPIC/IOAPIC support on P4-class systems to take full
* advantage of new APIC bus architecture.
*/
if (!apic_id_map)
apic_id_map = phys_cpu_present_map;
spin_lock_irqsave(&ioapic_lock, flags);
*(int *)&reg_00 = io_apic_read(ioapic, 0);
spin_unlock_irqrestore(&ioapic_lock, flags);
if (apic_id >= IO_APIC_MAX_ID) {
printk(KERN_WARNING "IOAPIC[%d]: Invalid apic_id %d, trying "
"%d\n", ioapic, apic_id, reg_00.ID);
apic_id = reg_00.ID;
}
/*
* Every APIC in a system must have a unique ID or we get lots of nice
* 'stuck on smp_invalidate_needed IPI wait' messages.
*/
if (apic_id_map & (1 << apic_id)) {
for (i = 0; i < IO_APIC_MAX_ID; i++) {
if (!(apic_id_map & (1 << i)))
break;
}
if (i == IO_APIC_MAX_ID)
panic("Max apic_id exceeded!\n");
printk(KERN_WARNING "IOAPIC[%d]: apic_id %d already used, "
"trying %d\n", ioapic, apic_id, i);
apic_id = i;
}
apic_id_map |= (1 << apic_id);
if (reg_00.ID != apic_id) {
reg_00.ID = apic_id;
spin_lock_irqsave(&ioapic_lock, flags);
io_apic_write(ioapic, 0, *(int *)&reg_00);
*(int *)&reg_00 = io_apic_read(ioapic, 0);
spin_unlock_irqrestore(&ioapic_lock, flags);
/* Sanity check */
if (reg_00.ID != apic_id)
panic("IOAPIC[%d]: Unable change apic_id!\n", ioapic);
}
printk(KERN_INFO "IOAPIC[%d]: Assigned apic_id %d\n", ioapic, apic_id);
return apic_id;
}
int __init io_apic_get_version (int ioapic)
{
struct IO_APIC_reg_01 reg_01;
unsigned long flags;
spin_lock_irqsave(&ioapic_lock, flags);
*(int *)&reg_01 = io_apic_read(ioapic, 1);
spin_unlock_irqrestore(&ioapic_lock, flags);
return reg_01.version;
}
int __init io_apic_get_redir_entries (int ioapic)
{
struct IO_APIC_reg_01 reg_01;
unsigned long flags;
spin_lock_irqsave(&ioapic_lock, flags);
*(int *)&reg_01 = io_apic_read(ioapic, 1);
spin_unlock_irqrestore(&ioapic_lock, flags);
return reg_01.entries;
}
int io_apic_set_pci_routing (int ioapic, int pin, int irq)
{
struct IO_APIC_route_entry entry;
unsigned long flags;
if (!IO_APIC_IRQ(irq)) {
printk(KERN_ERR "IOAPIC[%d]: Invalid reference to IRQ 0/n",
ioapic);
return -EINVAL;
}
/*
* Generate a PCI IRQ routing entry and program the IOAPIC accordingly.
* Note that we mask (disable) IRQs now -- these get enabled when the
* corresponding device driver registers for this IRQ.
*/
memset(&entry,0,sizeof(entry));
entry.delivery_mode = dest_LowestPrio;
entry.dest_mode = INT_DELIVERY_MODE;
entry.dest.logical.logical_dest = TARGET_CPUS;
entry.mask = 1; /* Disabled (masked) */
entry.trigger = 1; /* Level sensitive */
entry.polarity = 1; /* Low active */
add_pin_to_irq(irq, ioapic, pin);
entry.vector = assign_irq_vector(irq);
printk(KERN_DEBUG "IOAPIC[%d]: Set PCI routing entry (%d-%d -> 0x%x -> "
"IRQ %d)\n", ioapic,
mp_ioapics[ioapic].mpc_apicid, pin, entry.vector, irq);
irq_desc[irq].handler = &ioapic_level_irq_type;
set_intr_gate(entry.vector, interrupt[irq]);
if (!ioapic && (irq < 16))
disable_8259A_irq(irq);
spin_lock_irqsave(&ioapic_lock, flags);
io_apic_write(ioapic, 0x11+2*pin, *(((int *)&entry)+1));
io_apic_write(ioapic, 0x10+2*pin, *(((int *)&entry)+0));
spin_unlock_irqrestore(&ioapic_lock, flags);
return entry.vector;
}
#endif /*CONFIG_ACPI_BOOT*/
This diff is collapsed.
......@@ -916,17 +916,11 @@ void __init setup_arch(char **cmdline_p)
paging_init();
#ifdef CONFIG_ACPI_BOOT
/*
* Initialize the ACPI boot-time table parser (gets the RSDP and SDT).
* Must do this after paging_init (due to reliance on fixmap, and thus
* the bootmem allocator) but before get_smp_config (to allow parsing
* of MADT).
* Parse the ACPI tables for possible boot-time SMP configuration.
*/
acpi_boot_init(*cmdline_p);
#endif
#ifdef CONFIG_X86_LOCAL_APIC
/*
* get boot-time SMP configuration:
*/
if (smp_found_config)
get_smp_config();
#endif
......
......@@ -2,73 +2,23 @@
#include <linux/acpi.h>
#include "pci.h"
extern void eisa_set_level_irq(int irq);
static int acpi_lookup_irq (
struct pci_dev *dev,
int assign)
static int __init pci_acpi_init(void)
{
int result = 0;
int irq = 0;
u8 pin;
/* TBD: Select IRQ from possible to improve routing performance. */
/* Find IRQ pin */
pci_read_config_byte(dev, PCI_INTERRUPT_PIN, &pin);
if (!pin) {
DBG(" -> no interrupt pin\n");
if (pcibios_scanned)
return 0;
}
pin = pin - 1;
result = acpi_prt_get_irq(dev, pin, &irq);
if (!irq)
result = -ENODEV;
if (0 != result) {
printk(KERN_WARNING "PCI: No IRQ known for interrupt pin %c of device %s\n",
'A'+pin, dev->slot_name);
return result;
}
/* only check for the IRQ */
if (!assign) {
printk(KERN_INFO "PCI: Found IRQ %d for device %s\n",
irq, dev->slot_name);
return 1;
}
dev->irq = irq;
/* also assign an IRQ */
if (irq && (dev->class >> 8) != PCI_CLASS_DISPLAY_VGA) {
result = acpi_prt_set_irq(dev, pin, irq);
if (0 != result) {
printk(KERN_WARNING "PCI: Could not assign IRQ %d to device %s\n", irq, dev->slot_name);
return result;
}
eisa_set_level_irq(irq);
printk(KERN_INFO "PCI: Assigned IRQ %d for device %s\n", irq, dev->slot_name);
}
return 1;
}
static int __init pci_acpi_init(void)
{
if (!(pci_probe & PCI_NO_ACPI_ROUTING)) {
if (acpi_prts.count) {
if (!acpi_pci_irq_init()) {
printk(KERN_INFO "PCI: Using ACPI for IRQ routing\n");
printk(KERN_INFO "PCI: if you experience problems, try using option 'pci=noacpi'\n");
pci_use_acpi_routing = 1;
pci_lookup_irq = acpi_lookup_irq;
pcibios_scanned++;
pcibios_enable_irq = acpi_pci_irq_enable;
} else
printk(KERN_WARNING "PCI: Invalid ACPI-PCI IRQ routing table\n");
}
return 0;
}
arch_initcall(pci_acpi_init);
subsys_initcall(pci_acpi_init);
......@@ -27,6 +27,12 @@ struct pci_ops *pci_root_ops = NULL;
int (*pci_config_read)(int seg, int bus, int dev, int fn, int reg, int len, u32 *value) = NULL;
int (*pci_config_write)(int seg, int bus, int dev, int fn, int reg, int len, u32 value) = NULL;
/*
* legacy, numa, and acpi all want to call pcibios_scan_root
* from their initcalls. This flag prevents that.
*/
int pcibios_scanned;
/*
* This interrupt-safe spinlock protects all accesses to PCI
* configuration space.
......@@ -201,6 +207,6 @@ int pcibios_enable_device(struct pci_dev *dev)
if ((err = pcibios_enable_resources(dev)) < 0)
return err;
pcibios_enable_irq(dev);
return 0;
return pcibios_enable_irq(dev);
}
......@@ -12,7 +12,6 @@
#include <linux/slab.h>
#include <linux/interrupt.h>
#include <linux/irq.h>
#include <linux/acpi.h>
#include <asm/io.h>
#include <asm/smp.h>
#include <asm/io_apic.h>
......@@ -22,7 +21,6 @@
#define PIRQ_SIGNATURE (('$' << 0) + ('P' << 8) + ('I' << 16) + ('R' << 24))
#define PIRQ_VERSION 0x0100
int pci_use_acpi_routing = 0;
int broken_hp_bios_irq9;
static struct irq_routing_table *pirq_table;
......@@ -46,7 +44,7 @@ struct irq_router {
int (*set)(struct pci_dev *router, struct pci_dev *dev, int pirq, int new);
};
int (*pci_lookup_irq)(struct pci_dev * dev, int assign) = NULL;
int (*pcibios_enable_irq)(struct pci_dev *dev) = NULL;
/*
* Search 0xf0000 -- 0xfffff for the PCI IRQ Routing Table.
......@@ -690,7 +688,7 @@ static int __init pcibios_irq_init(void)
{
DBG("PCI: IRQ init\n");
if (pci_lookup_irq)
if (pcibios_enable_irq)
return 0;
pirq_table = pirq_find_routing_table();
......@@ -712,7 +710,9 @@ static int __init pcibios_irq_init(void)
if (io_apic_assign_pci_irqs)
pirq_table = NULL;
}
pci_lookup_irq = pcibios_lookup_irq;
pcibios_enable_irq = pirq_enable_irq;
pcibios_fixup_irqs();
return 0;
}
......@@ -781,7 +781,7 @@ void __init pcibios_fixup_irqs(void)
* Still no IRQ? Try to lookup one...
*/
if (pin && !dev->irq)
pci_lookup_irq(dev, 0);
pcibios_lookup_irq(dev, 0);
}
}
......@@ -794,11 +794,11 @@ void pcibios_penalize_isa_irq(int irq)
pirq_penalty[irq] += 100;
}
void pcibios_enable_irq(struct pci_dev *dev)
int pirq_enable_irq(struct pci_dev *dev)
{
u8 pin;
pci_read_config_byte(dev, PCI_INTERRUPT_PIN, &pin);
if (pin && !pci_lookup_irq(dev, 1) && !dev->irq) {
if (pin && !pcibios_lookup_irq(dev, 1) && !dev->irq) {
char *msg;
if (io_apic_assign_pci_irqs)
msg = " Probably buggy MP table.";
......@@ -809,4 +809,6 @@ void pcibios_enable_irq(struct pci_dev *dev)
printk(KERN_WARNING "PCI: No IRQ known for interrupt pin %c of device %s.%s\n",
'A' + pin - 1, dev->slot_name, msg);
}
return 0;
}
......@@ -42,11 +42,14 @@ static int __init pci_legacy_init(void)
return 0;
}
if (pcibios_scanned++)
return 0;
printk("PCI: Probing PCI hardware\n");
pci_root_bus = pcibios_scan_root(0);
if (!pci_use_acpi_routing)
pcibios_fixup_peer_bridges();
pcibios_fixup_peer_bridges();
return 0;
}
......
......@@ -104,6 +104,9 @@ static int __init pci_numa_init(void)
pci_config_read = pci_conf1_read;
pci_config_write = pci_conf1_write;
if (pcibios_scanned++)
return 0;
pci_root_bus = pcibios_scan_root(0);
if (clustered_apic_mode && (numnodes > 1)) {
for (quad = 1; quad < numnodes; ++quad) {
......
......@@ -66,10 +66,10 @@ struct irq_routing_table {
extern unsigned int pcibios_irq_mask;
extern int pci_use_acpi_routing;
extern int pcibios_scanned;
extern spinlock_t pci_config_lock;
void pcibios_fixup_irqs(void);
void pcibios_enable_irq(struct pci_dev *dev);
int pirq_enable_irq(struct pci_dev *dev);
extern int (*pci_lookup_irq)(struct pci_dev * dev, int assign);
extern int (*pcibios_enable_irq)(struct pci_dev *dev);
......@@ -12,6 +12,12 @@ CONFIG_ACPI
Management (APM) specification. If both ACPI and APM support
are configured, whichever is loaded first shall be used.
Add "acpi=off" to the kernel command line to disable this feature.
(Try "man bootparam" or see the documentation of your boot loader
about how to pass options to the kernel at boot time.)
----------
The ACPI SourceForge project contains the latest source code,
documentation, tools, mailing list subscription, and other
information. This project is available at:
......@@ -26,51 +32,28 @@ CONFIG_ACPI
available at:
<http://www.acpi.info>
CONFIG_ACPI_BOOT
This option enables the use of ACPI tables for obtaining various
boot-time configuration information such as system processors,
memory, and interrupt routing.
ACPI tables supercede legacy BIOS interfaces. For example, the
Multiple APIC Description Table (MADT) defined by the ACPI
Specification is a replacement for the MP Configuration Table
defined by the MultiProcessor Specification (MPS).
You can disable this feature on IA32 systems by adding "acpi_boot=off"
to your kernel command line. (Try "man bootparam" or see the
documentation of your boot loader about how to pass options to the
kernel at boot time.)
IA64 systems do not support legacy BIOS interfaces and thus rely
on ACPI tables to boot the system. No kernel command line options
are supported.
CONFIG_ACPI_INTERPRETER
The ACPI Interpreter (a.k.a. ACPI Core Subsystem) provides the
fundamental services required to parse the ACPI namespace, evaluate
control methods, and manage ACPI hardware and events. This
subsystem exposes kernel interfaces allowing higher level software
to manipulate ACPI defined hardware and software interfaces.
Add "acpi=off" to the kernel command line to disable this feature.
(Try "man bootparam" or see the documentation of your boot loader
about how to pass options to the kernel at boot time.)
CONFIG_ACPI_HT_ONLY
This option enables limited ACPI support -- just enough to
enumerate processors from the ACPI Multiple APIC Description
Table (MADT). Note that ACPI supports both logical (e.g. Hyper-
Threading) and physical processors, where the MultiProcessor
Specification (MPS) table only supports physical processors.
Note that this option will enlarge your kernel by about 100K.
Full ACPI support (CONFIG_ACPI) is preferred. Use this option
only if you wish to limit ACPI's role to processor enumeration.
CONFIG_ACPI_BUS
The ACPI Bus driver enumerates and manages devices in the ACPI
namespace in a manner similar to other bus drivers (e.g. PCI).
All ACPI device drivers rely on its services.
There is no command-line option to disable this, but the kernel
will fall back to the MPS table if the MADT is not present.
CONFIG_ACPI_AC
This driver adds support for the AC Adapter object, which indicates
whether a system is on AC, or not. Typically, only laptops have
this object, since desktops are always on AC.
whether a system is on AC, or not. Typically, only mobile systems
have this object, since desktops are always on AC.
CONFIG_ACPI_BATTERY
This driver adds support for battery information through
/proc/acpi/battery. If you have a laptop with a battery, say Y.
/proc/acpi/battery. If you have a mobile system with a battery,
say Y.
CONFIG_ACPI_BUTTON
This driver registers for events based on buttons, such as the
......@@ -79,21 +62,10 @@ CONFIG_ACPI_BUTTON
down the system. Until then, you can cat it, and see output when
a button is pressed.
CONFIG_ACPI_DEBUG
The ACPI driver can optionally report errors with a great deal
of verbosity. Saying Y enables these statements. This will increase
your kernel size by around 50K.
CONFIG_ACPI_EC
This driver is required on some systems for the proper operation of
the battery and thermal drivers. If you are compiling for a laptop,
say Y.
CONFIG_ACPI_PCI
This option enables ACPI-based enumeration and configuration of PCI
root bridge devices, including PCI interrupt routing (_PRT) support.
This is required on platforms that no longer support legacy tables
(e.g. MPS/PIR) or have erroneous table entries.
the battery and thermal drivers. If you are compiling for a
mobile system, say Y.
CONFIG_ACPI_PROCESSOR
This driver installs ACPI as the idle handler for Linux, and uses
......@@ -114,9 +86,8 @@ CONFIG_ACPI_SYSTEM
This driver will enable your system to shut down using ACPI, and
dump your ACPI DSDT table using /proc/acpi/dsdt.
CONFIG_ACPI_SLEEP
Enables low-level sleep support, allowing the platform to enter
and exit the S1-S4 states. Note that although the platform may
support this capability, full sleep support will not be viable
until drivers properly save/restore hardware context. (In other
words, use at your own risk!)
CONFIG_ACPI_DEBUG
The ACPI driver can optionally report errors with a great deal
of verbosity. Saying Y enables these statements. This will increase
your kernel size by around 50K.
#
# ACPI Configuration
#
if [ "$CONFIG_X86" = "y" ]; then
mainmenu_option next_comment
comment 'ACPI Support'
dep_bool 'ACPI Support' CONFIG_ACPI $CONFIG_PCI
bool 'ACPI Support' CONFIG_ACPI
if [ "$CONFIG_ACPI" = "y" ]; then
define_bool CONFIG_ACPI_BOOT y
define_bool CONFIG_ACPI_BUS y
define_bool CONFIG_ACPI_EC y
define_bool CONFIG_ACPI_INTERPRETER y
define_bool CONFIG_ACPI_PCI y
define_bool CONFIG_ACPI_POWER y
define_bool CONFIG_ACPI_SLEEP y
define_bool CONFIG_ACPI_SYSTEM y
tristate ' AC Adapter' CONFIG_ACPI_AC
tristate ' Battery' CONFIG_ACPI_BATTERY
tristate ' Button' CONFIG_ACPI_BUTTON
tristate ' Fan' CONFIG_ACPI_FAN
tristate ' Processor' CONFIG_ACPI_PROCESSOR
dep_tristate ' Thermal Zone' CONFIG_ACPI_THERMAL $CONFIG_ACPI_PROCESSOR
bool ' Debug Statements' CONFIG_ACPI_DEBUG
if [ "$CONFIG_X86_LOCAL_APIC" = "y" ]; then
bool 'CPU Enumeration Only' CONFIG_ACPI_HT_ONLY
fi
if [ "$CONFIG_ACPI_HT_ONLY" = "y" ]; then
define_bool CONFIG_ACPI_BOOT y
else
define_bool CONFIG_ACPI_BOOT y
define_bool CONFIG_ACPI_BUS y
define_bool CONFIG_ACPI_INTERPRETER y
define_bool CONFIG_ACPI_EC y
define_bool CONFIG_ACPI_POWER y
if [ "$CONFIG_PCI" = "y" ]; then
define_bool CONFIG_ACPI_PCI y
fi
define_bool CONFIG_ACPI_SLEEP y
define_bool CONFIG_ACPI_SYSTEM y
tristate ' AC Adapter' CONFIG_ACPI_AC
tristate ' Battery' CONFIG_ACPI_BATTERY
tristate ' Button' CONFIG_ACPI_BUTTON
tristate ' Fan' CONFIG_ACPI_FAN
tristate ' Processor' CONFIG_ACPI_PROCESSOR
dep_tristate ' Thermal Zone' CONFIG_ACPI_THERMAL $CONFIG_ACPI_PROCESSOR
bool ' Debug Statements' CONFIG_ACPI_DEBUG
fi
fi
endmenu
fi
if [ "$CONFIG_IA64" = "y" ]; then
if [ "$CONFIG_IA64_SGI_SN" = "y" ]; then
mainmenu_option next_comment
comment 'ACPI Support'
define_bool CONFIG_ACPI y
define_bool CONFIG_ACPI_EFI y
define_bool CONFIG_ACPI_BOOT y
define_bool CONFIG_ACPI_BUS n
define_bool CONFIG_ACPI_INTERPRETER n
define_bool CONFIG_ACPI_PCI n
define_bool CONFIG_ACPI_POWER n
define_bool CONFIG_ACPI_SYSTEM n
define_bool CONFIG_ACPI_BUTTON n
define_bool CONFIG_ACPI_FAN n
define_bool CONFIG_ACPI_PROCESSOR n
define_bool CONFIG_ACPI_THERMAL n
endmenu
fi
if [ "$CONFIG_IA64_HP_SIM" = "n" ]; then
mainmenu_option next_comment
comment 'ACPI Support'
if [ "$CONFIG_PCI" = "y" ]; then
define_bool CONFIG_ACPI_PCI y
fi
define_bool CONFIG_ACPI y
define_bool CONFIG_ACPI_EFI y
define_bool CONFIG_ACPI_BOOT y
define_bool CONFIG_ACPI_BUS y
define_bool CONFIG_ACPI_INTERPRETER y
define_bool CONFIG_ACPI_PCI y
define_bool CONFIG_ACPI_POWER y
define_bool CONFIG_ACPI_SYSTEM y
tristate ' Button' CONFIG_ACPI_BUTTON
......@@ -44,4 +80,5 @@ if [ "$CONFIG_IA64" = "y" ]; then
bool ' Debug Statements' CONFIG_ACPI_DEBUG
endmenu
fi
fi
......@@ -19,12 +19,12 @@ obj-y := acpi_ksyms.o
#
# ACPI Boot-Time Table Parsing
#
obj-$(CONFIG_ACPI_BOOT) += acpi_tables.o
obj-$(CONFIG_ACPI_BOOT) += tables.o
#
# ACPI Core Subsystem (Interpreter)
#
obj-$(CONFIG_ACPI_INTERPRETER) += acpi_osl.o acpi_utils.o \
obj-$(CONFIG_ACPI_INTERPRETER) += osl.o utils.o \
dispatcher/ events/ executer/ hardware/ \
namespace/ parser/ resources/ tables/ \
utilities/
......@@ -32,16 +32,16 @@ obj-$(CONFIG_ACPI_INTERPRETER) += acpi_osl.o acpi_utils.o \
#
# ACPI Bus and Device Drivers
#
obj-$(CONFIG_ACPI_BUS) += acpi_bus.o
obj-$(CONFIG_ACPI_AC) += acpi_ac.o
obj-$(CONFIG_ACPI_BATTERY) += acpi_battery.o
obj-$(CONFIG_ACPI_BUTTON) += acpi_button.o
obj-$(CONFIG_ACPI_EC) += acpi_ec.o
obj-$(CONFIG_ACPI_FAN) += acpi_fan.o
obj-$(CONFIG_ACPI_PCI) += acpi_pci_root.o acpi_pci_link.o
obj-$(CONFIG_ACPI_POWER) += acpi_power.o
obj-$(CONFIG_ACPI_PROCESSOR) += acpi_processor.o
obj-$(CONFIG_ACPI_THERMAL) += acpi_thermal.o
obj-$(CONFIG_ACPI_SYSTEM) += acpi_system.o
obj-$(CONFIG_ACPI_BUS) += bus.o
obj-$(CONFIG_ACPI_AC) += ac.o
obj-$(CONFIG_ACPI_BATTERY) += battery.o
obj-$(CONFIG_ACPI_BUTTON) += button.o
obj-$(CONFIG_ACPI_EC) += ec.o
obj-$(CONFIG_ACPI_FAN) += fan.o
obj-$(CONFIG_ACPI_PCI) += pci_root.o pci_link.o pci_irq.o pci_bind.o
obj-$(CONFIG_ACPI_POWER) += power.o
obj-$(CONFIG_ACPI_PROCESSOR) += processor.o
obj-$(CONFIG_ACPI_THERMAL) += thermal.o
obj-$(CONFIG_ACPI_SYSTEM) += system.o
include $(TOPDIR)/Rules.make
/*
* acpi_ac.c - ACPI AC Adapter Driver ($Revision: 23 $)
* acpi_ac.c - ACPI AC Adapter Driver ($Revision: 26 $)
*
* Copyright (C) 2001, 2002 Andy Grover <andrew.grover@intel.com>
* Copyright (C) 2001, 2002 Paul Diefenbaugh <paul.s.diefenbaugh@intel.com>
......@@ -27,6 +27,8 @@
#include <linux/module.h>
#include <linux/init.h>
#include <linux/types.h>
#include <linux/compatmac.h>
#include <linux/proc_fs.h>
#include "acpi_bus.h"
#include "acpi_drivers.h"
......@@ -91,9 +93,6 @@ acpi_ac_get_state (
FS Interface (/proc)
-------------------------------------------------------------------------- */
#include <linux/compatmac.h>
#include <linux/proc_fs.h>
struct proc_dir_entry *acpi_ac_dir = NULL;
static int
......@@ -114,7 +113,7 @@ acpi_ac_read_state (
if (!ac || (off != 0))
goto end;
if (0 != acpi_ac_get_state(ac)) {
if (acpi_ac_get_state(ac)) {
p += sprintf(p, "ERROR: Unable to read AC Adapter state\n");
goto end;
}
......@@ -215,7 +214,7 @@ acpi_ac_notify (
if (!ac)
return;
if (0 != acpi_bus_get_device(ac->handle, &device))
if (acpi_bus_get_device(ac->handle, &device))
return_VOID;
switch (event) {
......@@ -257,11 +256,11 @@ acpi_ac_add (
acpi_driver_data(device) = ac;
result = acpi_ac_get_state(ac);
if (0 != result)
if (result)
goto end;
result = acpi_ac_add_fs(device);
if (0 != result)
if (result)
goto end;
status = acpi_install_notify_handler(ac->handle,
......@@ -278,7 +277,7 @@ acpi_ac_add (
ac->state?"on-line":"off-line");
end:
if (0 != result) {
if (result) {
acpi_ac_remove_fs(device);
kfree(ac);
}
......@@ -324,7 +323,7 @@ acpi_ac_init (void)
ACPI_FUNCTION_TRACE("acpi_ac_init");
result = acpi_bus_register_driver(&acpi_ac_driver);
if (0 > result) {
if (result < 0) {
remove_proc_entry(ACPI_AC_CLASS, acpi_root_dir);
return_VALUE(-ENODEV);
}
......@@ -341,7 +340,7 @@ acpi_ac_exit (void)
ACPI_FUNCTION_TRACE("acpi_ac_exit");
result = acpi_bus_unregister_driver(&acpi_ac_driver);
if (0 == result)
if (!result)
remove_proc_entry(ACPI_AC_CLASS, acpi_root_dir);
return_VOID;
......
/*
* acpi_bus.h - ACPI Bus Driver ($Revision: 19 $)
* acpi_bus.h - ACPI Bus Driver ($Revision: 21 $)
*
* Copyright (C) 2001, 2002 Andy Grover <andrew.grover@intel.com>
* Copyright (C) 2001, 2002 Paul Diefenbaugh <paul.s.diefenbaugh@intel.com>
......@@ -56,9 +56,7 @@ acpi_status acpi_evaluate_reference (acpi_handle, acpi_string, acpi_object_list
#include <linux/proc_fs.h>
#define ACPI_BUS_FILE_ROOT "acpi"
extern struct proc_dir_entry *acpi_root_dir;
extern FADT_DESCRIPTOR acpi_fadt;
enum acpi_bus_removal_type {
......
/*
* acpi_drivers.h ($Revision: 23 $)
* acpi_drivers.h ($Revision: 29 $)
*
* Copyright (C) 2001, 2002 Andy Grover <andrew.grover@intel.com>
* Copyright (C) 2001, 2002 Paul Diefenbaugh <paul.s.diefenbaugh@intel.com>
......@@ -30,7 +30,6 @@
#include "acpi_bus.h"
#define ACPI_DRIVER_VERSION 0x20020404
#define ACPI_MAX_STRING 80
......@@ -148,41 +147,53 @@ void acpi_ec_exit (void);
PCI
-------------------------------------------------------------------------- */
#define ACPI_PCI_LINK_COMPONENT 0x00400000
#define ACPI_PCI_LINK_CLASS "irq_routing"
#define ACPI_PCI_LINK_HID "PNP0C0F"
#define ACPI_PCI_LINK_DRIVER_NAME "ACPI PCI Interrupt Link Driver"
#define ACPI_PCI_LINK_DEVICE_NAME "PCI Interrupt Link"
#define ACPI_PCI_LINK_FILE_INFO "info"
#define ACPI_PCI_LINK_FILE_STATUS "state"
#ifdef CONFIG_ACPI_PCI
#define ACPI_PCI_ROOT_COMPONENT 0x00800000
#define ACPI_PCI_ROOT_CLASS "bridge"
#define ACPI_PCI_COMPONENT 0x00400000
/* ACPI PCI Root Bridge (pci_root.c) */
#define ACPI_PCI_ROOT_CLASS "pci_bridge"
#define ACPI_PCI_ROOT_HID "PNP0A03"
#define ACPI_PCI_ROOT_DRIVER_NAME "ACPI PCI Root Bridge Driver"
#define ACPI_PCI_ROOT_DEVICE_NAME "PCI Root Bridge"
#define ACPI_PCI_PRT_DEVICE_NAME "PCI Interrupt Routing Table"
int acpi_pci_root_init (void);
void acpi_pci_root_exit (void);
#ifdef CONFIG_ACPI_PCI
/* ACPI PCI Interrupt Link (pci_link.c) */
#define ACPI_PCI_LINK_CLASS "pci_irq_routing"
#define ACPI_PCI_LINK_HID "PNP0C0F"
#define ACPI_PCI_LINK_DRIVER_NAME "ACPI PCI Interrupt Link Driver"
#define ACPI_PCI_LINK_DEVICE_NAME "PCI Interrupt Link"
#define ACPI_PCI_LINK_FILE_INFO "info"
#define ACPI_PCI_LINK_FILE_STATUS "state"
int acpi_pci_link_get_irq (struct acpi_prt_entry *entry, int *irq);
int acpi_pci_link_set_irq (struct acpi_prt_entry *entry, int irq);
int acpi_pci_link_check (void);
int acpi_pci_link_get_irq (acpi_handle handle, int index);
int acpi_pci_link_init (void);
void acpi_pci_link_exit (void);
int acpi_pci_root_init (void);
void acpi_pci_root_exit (void);
/* ACPI PCI Interrupt Routing (pci_irq.c) */
#endif
int acpi_pci_irq_add_prt (acpi_handle handle, int segment, int bus);
/* ACPI PCI Device Binding (pci_bind.c) */
struct pci_bus;
int acpi_pci_bind (struct acpi_device *device);
int acpi_pci_bind_root (struct acpi_device *device, acpi_pci_id *id, struct pci_bus *bus);
#endif /*CONFIG_ACPI_PCI*/
/* --------------------------------------------------------------------------
Power Resource
-------------------------------------------------------------------------- */
#define ACPI_POWER_COMPONENT 0x01000000
#define ACPI_POWER_COMPONENT 0x00800000
#define ACPI_POWER_CLASS "power_resource"
#define ACPI_POWER_HID "ACPI_PWR"
#define ACPI_POWER_DRIVER_NAME "ACPI Power Resource Driver"
......@@ -207,7 +218,7 @@ void acpi_power_exit (void);
Processor
-------------------------------------------------------------------------- */
#define ACPI_PROCESSOR_COMPONENT 0x02000000
#define ACPI_PROCESSOR_COMPONENT 0x01000000
#define ACPI_PROCESSOR_CLASS "processor"
#define ACPI_PROCESSOR_HID "ACPI_CPU"
#define ACPI_PROCESSOR_DRIVER_NAME "ACPI Processor Driver"
......@@ -230,7 +241,7 @@ int acpi_processor_set_thermal_limit(acpi_handle handle, int type);
System
-------------------------------------------------------------------------- */
#define ACPI_SYSTEM_COMPONENT 0x04000000
#define ACPI_SYSTEM_COMPONENT 0x02000000
#define ACPI_SYSTEM_CLASS "system"
#define ACPI_SYSTEM_HID "ACPI_SYS"
#define ACPI_SYSTEM_DRIVER_NAME "ACPI System Driver"
......@@ -256,7 +267,7 @@ void acpi_system_exit (void);
Thermal Zone
-------------------------------------------------------------------------- */
#define ACPI_THERMAL_COMPONENT 0x08000000
#define ACPI_THERMAL_COMPONENT 0x04000000
#define ACPI_THERMAL_CLASS "thermal_zone"
#define ACPI_THERMAL_HID "ACPI_THM"
#define ACPI_THERMAL_DRIVER_NAME "ACPI Thermal Zone Driver"
......
/*
* acpi_ksyms.c - ACPI Kernel Symbols ($Revision: 13 $)
* acpi_ksyms.c - ACPI Kernel Symbols ($Revision: 15 $)
*
* Copyright (C) 2001, 2002 Andy Grover <andrew.grover@intel.com>
* Copyright (C) 2001, 2002 Paul Diefenbaugh <paul.s.diefenbaugh@intel.com>
......@@ -80,9 +80,9 @@ EXPORT_SYMBOL(acpi_disable_event);
EXPORT_SYMBOL(acpi_clear_event);
EXPORT_SYMBOL(acpi_get_timer_duration);
EXPORT_SYMBOL(acpi_get_timer);
EXPORT_SYMBOL(acpi_hw_get_sleep_type_data);
EXPORT_SYMBOL(acpi_hw_bit_register_read);
EXPORT_SYMBOL(acpi_hw_bit_register_write);
EXPORT_SYMBOL(acpi_get_sleep_type_data);
EXPORT_SYMBOL(acpi_get_register);
EXPORT_SYMBOL(acpi_set_register);
EXPORT_SYMBOL(acpi_enter_sleep_state);
EXPORT_SYMBOL(acpi_get_system_info);
......
/*
* acpi_battery.c - ACPI Battery Driver ($Revision: 32 $)
* acpi_battery.c - ACPI Battery Driver ($Revision: 35 $)
*
* Copyright (C) 2001, 2002 Andy Grover <andrew.grover@intel.com>
* Copyright (C) 2001, 2002 Paul Diefenbaugh <paul.s.diefenbaugh@intel.com>
......@@ -27,6 +27,8 @@
#include <linux/module.h>
#include <linux/init.h>
#include <linux/types.h>
#include <linux/compatmac.h>
#include <linux/proc_fs.h>
#include "acpi_bus.h"
#include "acpi_drivers.h"
......@@ -162,7 +164,7 @@ acpi_battery_get_info (
end:
kfree(buffer.pointer);
if (0 == result)
if (!result)
(*bif) = (struct acpi_battery_info *) data.pointer;
return_VALUE(result);
......@@ -223,7 +225,7 @@ acpi_battery_get_status (
end:
kfree(buffer.pointer);
if (0 == result)
if (!result)
(*bst) = (struct acpi_battery_status *) data.pointer;
return_VALUE(result);
......@@ -277,11 +279,11 @@ acpi_battery_check (
return_VALUE(-EINVAL);
result = acpi_bus_get_device(battery->handle, &device);
if (0 != result)
if (result)
return_VALUE(result);
result = acpi_bus_get_status(device);
if (0 != result)
if (result)
return_VALUE(result);
/* Insertion? */
......@@ -293,7 +295,7 @@ acpi_battery_check (
/* Evalute _BIF to get certain static information */
result = acpi_battery_get_info(battery, &bif);
if (0 != result)
if (result)
return_VALUE(result);
battery->flags.power_unit = bif->power_unit;
......@@ -326,9 +328,6 @@ acpi_battery_check (
FS Interface (/proc)
-------------------------------------------------------------------------- */
#include <linux/compatmac.h>
#include <linux/proc_fs.h>
struct proc_dir_entry *acpi_battery_dir = NULL;
static int
......@@ -362,7 +361,7 @@ acpi_battery_read_info (
/* Battery Info (_BIF) */
result = acpi_battery_get_info(battery, &bif);
if ((0 != result) || !bif) {
if (result || !bif) {
p += sprintf(p, "ERROR: Unable to read battery information\n");
goto end;
}
......@@ -465,7 +464,7 @@ acpi_battery_read_state (
/* Battery Status (_BST) */
result = acpi_battery_get_status(battery, &bst);
if ((0 != result) || !bst) {
if (result || !bst) {
p += sprintf(p, "ERROR: Unable to read battery status\n");
goto end;
}
......@@ -590,7 +589,7 @@ acpi_battery_write_alarm (
result = acpi_battery_set_alarm(battery,
simple_strtoul(alarm_string, NULL, 0));
if (0 != result)
if (result)
return_VALUE(result);
return_VALUE(count);
......@@ -693,7 +692,7 @@ acpi_battery_notify (
if (!battery)
return_VOID;
if (0 != acpi_bus_get_device(handle, &device))
if (acpi_bus_get_device(handle, &device))
return_VOID;
switch (event) {
......@@ -736,11 +735,11 @@ acpi_battery_add (
acpi_driver_data(device) = battery;
result = acpi_battery_check(battery);
if (0 != result)
if (result)
goto end;
result = acpi_battery_add_fs(device);
if (0 != result)
if (result)
goto end;
status = acpi_install_notify_handler(battery->handle,
......@@ -757,7 +756,7 @@ acpi_battery_add (
device->status.battery_present?"present":"absent");
end:
if (0 != result) {
if (result) {
acpi_battery_remove_fs(device);
kfree(battery);
}
......@@ -803,7 +802,7 @@ acpi_battery_init (void)
ACPI_FUNCTION_TRACE("acpi_battery_init");
result = acpi_bus_register_driver(&acpi_battery_driver);
if (0 > result) {
if (result < 0) {
remove_proc_entry(ACPI_BATTERY_CLASS, acpi_root_dir);
return_VALUE(-ENODEV);
}
......@@ -820,7 +819,7 @@ acpi_battery_exit (void)
ACPI_FUNCTION_TRACE("acpi_battery_exit");
result = acpi_bus_unregister_driver(&acpi_battery_driver);
if (0 == result)
if (!result)
remove_proc_entry(ACPI_BATTERY_CLASS, acpi_root_dir);
return_VOID;
......
/*
* acpi_button.c - ACPI Button Driver ($Revision: 24 $)
* acpi_button.c - ACPI Button Driver ($Revision: 29 $)
*
* Copyright (C) 2001, 2002 Andy Grover <andrew.grover@intel.com>
* Copyright (C) 2001, 2002 Paul Diefenbaugh <paul.s.diefenbaugh@intel.com>
......@@ -27,6 +27,8 @@
#include <linux/module.h>
#include <linux/init.h>
#include <linux/types.h>
#include <linux/compatmac.h>
#include <linux/proc_fs.h>
#include "acpi_bus.h"
#include "acpi_drivers.h"
......@@ -66,9 +68,6 @@ struct acpi_button {
FS Interface (/proc)
-------------------------------------------------------------------------- */
#include <linux/compatmac.h>
#include <linux/proc_fs.h>
static struct proc_dir_entry *acpi_button_dir = NULL;
......@@ -128,17 +127,17 @@ acpi_button_add_fs (
switch (button->type) {
case ACPI_BUTTON_TYPE_POWER:
case ACPI_BUTTON_TYPE_POWERF:
entry = proc_mkdir(ACPI_BUTTON_SUBCLASS_POWER,
acpi_button_dir);
entry = proc_mkdir(ACPI_BUTTON_SUBCLASS_POWER,
acpi_button_dir);
break;
case ACPI_BUTTON_TYPE_SLEEP:
case ACPI_BUTTON_TYPE_SLEEPF:
entry = proc_mkdir(ACPI_BUTTON_SUBCLASS_SLEEP,
acpi_button_dir);
entry = proc_mkdir(ACPI_BUTTON_SUBCLASS_SLEEP,
acpi_button_dir);
break;
case ACPI_BUTTON_TYPE_LID:
entry = proc_mkdir(ACPI_BUTTON_SUBCLASS_LID,
acpi_button_dir);
entry = proc_mkdir(ACPI_BUTTON_SUBCLASS_LID,
acpi_button_dir);
break;
}
......@@ -234,6 +233,10 @@ acpi_button_add (
acpi_status status = AE_OK;
struct acpi_button *button = NULL;
static struct acpi_device *power_button;
static struct acpi_device *sleep_button;
static struct acpi_device *lid_button;
ACPI_FUNCTION_TRACE("acpi_button_add");
if (!device)
......@@ -294,8 +297,40 @@ acpi_button_add (
goto end;
}
/*
* Ensure only one button of each type is used.
*/
switch (button->type) {
case ACPI_BUTTON_TYPE_POWER:
case ACPI_BUTTON_TYPE_POWERF:
if (!power_button)
power_button = device;
else {
kfree(button);
return_VALUE(-ENODEV);
}
break;
case ACPI_BUTTON_TYPE_SLEEP:
case ACPI_BUTTON_TYPE_SLEEPF:
if (!sleep_button)
sleep_button = device;
else {
kfree(button);
return_VALUE(-ENODEV);
}
break;
case ACPI_BUTTON_TYPE_LID:
if (!lid_button)
lid_button = device;
else {
kfree(button);
return_VALUE(-ENODEV);
}
break;
}
result = acpi_button_add_fs(device);
if (0 != result)
if (result)
goto end;
switch (button->type) {
......@@ -331,7 +366,7 @@ acpi_button_add (
acpi_device_name(device), acpi_device_bid(device));
end:
if (0 != result) {
if (result) {
acpi_button_remove_fs(device);
kfree(button);
}
......@@ -389,7 +424,7 @@ acpi_button_init (void)
ACPI_FUNCTION_TRACE("acpi_button_init");
result = acpi_bus_register_driver(&acpi_button_driver);
if (0 > result)
if (result < 0)
return_VALUE(-ENODEV);
return_VALUE(0);
......
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
/*******************************************************************************
*
* Module Name: dbexec - debugger control method execution
* $Revision: 39 $
* $Revision: 41 $
*
******************************************************************************/
......@@ -25,15 +25,7 @@
#include "acpi.h"
#include "acparser.h"
#include "acdispat.h"
#include "amlcode.h"
#include "acnamesp.h"
#include "acparser.h"
#include "acevents.h"
#include "acinterp.h"
#include "acdebug.h"
#include "actables.h"
#ifdef ENABLE_DEBUGGER
......@@ -41,7 +33,7 @@
ACPI_MODULE_NAME ("dbexec")
acpi_db_method_info acpi_gbl_db_method_info;
static acpi_db_method_info acpi_gbl_db_method_info;
/*******************************************************************************
......@@ -127,7 +119,7 @@ acpi_db_execute_method (
void
acpi_db_execute_setup (
acpi_db_method_info *info)
acpi_db_method_info *info)
{
/* Catenate the current scope to the supplied name */
......@@ -172,7 +164,8 @@ acpi_db_execute_setup (
******************************************************************************/
u32
acpi_db_get_outstanding_allocations (void)
acpi_db_get_outstanding_allocations (
void)
{
u32 outstanding = 0;
......@@ -309,7 +302,10 @@ acpi_db_method_thread (
/* Signal our completion */
acpi_os_signal_semaphore (info->thread_gate, 1);
status = acpi_os_signal_semaphore (info->thread_gate, 1);
if (ACPI_FAILURE (status)) {
acpi_os_printf ("Could not signal debugger semaphore\n");
}
}
......@@ -373,7 +369,10 @@ acpi_db_create_execution_threads (
acpi_os_printf ("Creating %X threads to execute %X times each\n", num_threads, num_loops);
for (i = 0; i < (num_threads); i++) {
acpi_os_queue_for_execution (OSD_PRIORITY_MED, acpi_db_method_thread, &acpi_gbl_db_method_info);
status = acpi_os_queue_for_execution (OSD_PRIORITY_MED, acpi_db_method_thread, &acpi_gbl_db_method_info);
if (ACPI_FAILURE (status)) {
break;
}
}
/* Wait for all threads to complete */
......@@ -386,7 +385,7 @@ acpi_db_create_execution_threads (
/* Cleanup and exit */
acpi_os_delete_semaphore (thread_gate);
(void) acpi_os_delete_semaphore (thread_gate);
acpi_db_set_output_destination (ACPI_DB_DUPLICATE_OUTPUT);
acpi_os_printf ("All threads (%X) have completed\n", num_threads);
......
This diff is collapsed.
/******************************************************************************
*
* Module Name: dbhistry - debugger HISTORY command
* $Revision: 22 $
* $Revision: 24 $
*
*****************************************************************************/
......@@ -25,15 +25,7 @@
#include "acpi.h"
#include "acparser.h"
#include "acdispat.h"
#include "amlcode.h"
#include "acnamesp.h"
#include "acparser.h"
#include "acevents.h"
#include "acinterp.h"
#include "acdebug.h"
#include "actables.h"
#ifdef ENABLE_DEBUGGER
......@@ -54,11 +46,11 @@ typedef struct history_info
} HISTORY_INFO;
HISTORY_INFO acpi_gbl_history_buffer[HISTORY_SIZE];
u16 acpi_gbl_lo_history = 0;
u16 acpi_gbl_num_history = 0;
u16 acpi_gbl_next_history_index = 0;
u32 acpi_gbl_next_cmd_num = 1;
static HISTORY_INFO acpi_gbl_history_buffer[HISTORY_SIZE];
static u16 acpi_gbl_lo_history = 0;
static u16 acpi_gbl_num_history = 0;
static u16 acpi_gbl_next_history_index = 0;
static u32 acpi_gbl_next_cmd_num = 1;
/*******************************************************************************
......
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
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