Commit 85d4d006 authored by Linus Torvalds's avatar Linus Torvalds

Merge bk://ppc.bkbits.net/for-linus-ppc

into home.transmeta.com:/home/torvalds/v2.5/linux
parents 91a09ae3 f25fcf8b
...@@ -1033,6 +1033,16 @@ CONFIG_XMON ...@@ -1033,6 +1033,16 @@ CONFIG_XMON
Include in-kernel hooks for the xmon kernel monitor/debugger Include in-kernel hooks for the xmon kernel monitor/debugger
supported by the PPC port. supported by the PPC port.
Include BDI2000 debugger support
CONFIG_BDI_SWITCH
Include in-kernel support for the Abatron BDI2000 debugger.
Add additional CFLAGS to the kernel build
CONFIG_MORE_COMPILE_OPTIONS
If you want to add additional CFLAGS to the kernel build, such as
-g for KGDB, XMON or the BDI2000, enable this option and then
enter what you would like to add in the next question.
CONFIG_ADVANCED_OPTIONS CONFIG_ADVANCED_OPTIONS
This option will enable prompting for a variety of advanced kernel This option will enable prompting for a variety of advanced kernel
configuration options. These options can cause the kernel to not configuration options. These options can cause the kernel to not
......
...@@ -24,27 +24,27 @@ choice 'Processor Type' \ ...@@ -24,27 +24,27 @@ choice 'Processor Type' \
iSeries CONFIG_PPC_ISERIES" 6xx iSeries CONFIG_PPC_ISERIES" 6xx
if [ "$CONFIG_6xx" = "y" ]; then if [ "$CONFIG_6xx" = "y" ]; then
bool 'MPC8260 CPM Support' CONFIG_8260 bool 'MPC8260 CPM Support' CONFIG_8260
fi fi
if [ "$CONFIG_POWER3" = "y" ]; then if [ "$CONFIG_POWER3" = "y" ]; then
define_bool CONFIG_PPC64BRIDGE y define_bool CONFIG_PPC64BRIDGE y
define_bool CONFIG_ALL_PPC y define_bool CONFIG_ALL_PPC y
fi fi
if [ "$CONFIG_PPC_ISERIES" = "y" ]; then if [ "$CONFIG_PPC_ISERIES" = "y" ]; then
define_bool CONFIG_PPC64BRIDGE y define_bool CONFIG_PPC64BRIDGE y
fi fi
if [ "$CONFIG_6xx" = "y" -o "$CONFIG_POWER3" = "y" ]; then if [ "$CONFIG_6xx" = "y" -o "$CONFIG_POWER3" = "y" ]; then
define_bool CONFIG_PPC_STD_MMU y define_bool CONFIG_PPC_STD_MMU y
else else
define_bool CONFIG_PPC_STD_MMU n define_bool CONFIG_PPC_STD_MMU n
fi fi
if [ "$CONFIG_8260" = "y" ]; then if [ "$CONFIG_8260" = "y" ]; then
define_bool CONFIG_SERIAL_CONSOLE y define_bool CONFIG_SERIAL_CONSOLE y
choice 'Machine Type' \ choice 'Machine Type' \
"EST8260 CONFIG_EST8260 \ "EST8260 CONFIG_EST8260 \
SBS8260 CONFIG_SBS8260 \ SBS8260 CONFIG_SBS8260 \
RPXSUPER CONFIG_RPX6 \ RPXSUPER CONFIG_RPX6 \
...@@ -66,10 +66,10 @@ if [ "$CONFIG_4xx" = "y" ]; then ...@@ -66,10 +66,10 @@ if [ "$CONFIG_4xx" = "y" ]; then
fi fi
if [ "$CONFIG_8xx" = "y" ]; then if [ "$CONFIG_8xx" = "y" ]; then
define_bool CONFIG_SERIAL_CONSOLE y define_bool CONFIG_SERIAL_CONSOLE y
define_bool CONFIG_NOT_COHERENT_CACHE y define_bool CONFIG_NOT_COHERENT_CACHE y
choice 'Machine Type' \ choice 'Machine Type' \
"RPX-Lite CONFIG_RPXLITE \ "RPX-Lite CONFIG_RPXLITE \
RPX-Classic CONFIG_RPXCLASSIC \ RPX-Classic CONFIG_RPXCLASSIC \
BSE-IP CONFIG_BSEIP \ BSE-IP CONFIG_BSEIP \
...@@ -92,18 +92,18 @@ if [ "$CONFIG_8xx" = "y" ]; then ...@@ -92,18 +92,18 @@ if [ "$CONFIG_8xx" = "y" ]; then
MBX CONFIG_MBX \ MBX CONFIG_MBX \
WinCept CONFIG_WINCEPT" RPX-Lite WinCept CONFIG_WINCEPT" RPX-Lite
if [ "$CONFIG_TQM823L" = "y" -o \ if [ "$CONFIG_TQM823L" = "y" -o \
"$CONFIG_TQM850L" = "y" -o \ "$CONFIG_TQM850L" = "y" -o \
"$CONFIG_FPS850L" = "y" -o \ "$CONFIG_FPS850L" = "y" -o \
"$CONFIG_TQM855L" = "y" -o \ "$CONFIG_TQM855L" = "y" -o \
"$CONFIG_TQM860L" = "y" -o \ "$CONFIG_TQM860L" = "y" -o \
"$CONFIG_SM850" = "y" ]; then "$CONFIG_SM850" = "y" ]; then
define_bool CONFIG_TQM8xxL y define_bool CONFIG_TQM8xxL y
fi fi
fi fi
if [ "$CONFIG_6xx" = "y" -a "$CONFIG_8260" = "n" ]; then if [ "$CONFIG_6xx" = "y" -a "$CONFIG_8260" = "n" ]; then
choice 'Machine Type' \ choice 'Machine Type' \
"CHRP/PowerMac/PReP CONFIG_ALL_PPC \ "CHRP/PowerMac/PReP CONFIG_ALL_PPC \
Amiga-APUS CONFIG_APUS \ Amiga-APUS CONFIG_APUS \
Cogent-Willow CONFIG_WILLOW \ Cogent-Willow CONFIG_WILLOW \
...@@ -125,133 +125,130 @@ if [ "$CONFIG_6xx" = "y" -a "$CONFIG_8260" = "n" ]; then ...@@ -125,133 +125,130 @@ if [ "$CONFIG_6xx" = "y" -a "$CONFIG_8260" = "n" ]; then
Zynx-ZX4500 CONFIG_ZX4500" CHRP/PowerMac/PReP Zynx-ZX4500 CONFIG_ZX4500" CHRP/PowerMac/PReP
fi fi
if [ "$CONFIG_PCORE" = "y" \ if [ "$CONFIG_PCORE" = "y" -o "$CONFIG_POWERPMC250" = "y" ]; then
-o "$CONFIG_POWERPMC250" = "y" ]; then define_bool CONFIG_FORCE y
define_bool CONFIG_FORCE y
fi fi
if [ "$CONFIG_FORCE" = "y" \ if [ "$CONFIG_FORCE" = "y" -o "$CONFIG_MENF1" = "y" \
-o "$CONFIG_MENF1" = "y" \ -o "$CONFIG_SANDPOINT" = "y" -o "$CONFIG_ZX4500" = "y" ]; then
-o "$CONFIG_SANDPOINT" = "y" \ bool 'Enable MPC10x store gathering' CONFIG_MPC10X_STORE_GATHERING
-o "$CONFIG_ZX4500" = "y" ]; then
bool 'Enable MPC10x store gathering' CONFIG_MPC10X_STORE_GATHERING
fi fi
if [ "$CONFIG_EV64260" = "y" ]; then if [ "$CONFIG_EV64260" = "y" ]; then
define_bool CONFIG_GT64260 y define_bool CONFIG_GT64260 y
define_int CONFIG_SERIAL_CONSOLE_BAUD 115200 define_int CONFIG_SERIAL_CONSOLE_BAUD 115200
fi fi
if [ "$CONFIG_K2" = "y" ]; then if [ "$CONFIG_K2" = "y" ]; then
bool 'Enable CPC710 data gathering' CONFIG_CPC710_DATA_GATHERING bool 'Enable CPC710 data gathering' CONFIG_CPC710_DATA_GATHERING
fi fi
if [ "$CONFIG_MVME5100" = "y" ]; then if [ "$CONFIG_MVME5100" = "y" ]; then
bool 'MVME5100 configured with an IPMC761' CONFIG_MVME5100_IPMC761_PRESENT bool 'MVME5100 configured with an IPMC761' CONFIG_MVME5100_IPMC761_PRESENT
fi fi
if [ "$CONFIG_SANDPOINT" = "y" ]; then if [ "$CONFIG_SANDPOINT" = "y" ]; then
bool 'Sandpoint X3' CONFIG_SANDPOINT_X3 bool 'Sandpoint X3' CONFIG_SANDPOINT_X3
if [ "$CONFIG_SANDPOINT_X3" = "y" ]; then if [ "$CONFIG_SANDPOINT_X3" = "y" ]; then
define_bool CONFIG_EPIC_SERIAL_MODE y define_bool CONFIG_EPIC_SERIAL_MODE y
fi fi
fi fi
if [ "$CONFIG_SPRUCE" = "y" ]; then if [ "$CONFIG_SPRUCE" = "y" ]; then
bool 'Spruce baud clock support' CONFIG_SPRUCE_BAUD_33M bool 'Spruce baud clock support' CONFIG_SPRUCE_BAUD_33M
fi fi
if [ "$CONFIG_PPC_STD_MMU" != "y" ]; then if [ "$CONFIG_PPC_STD_MMU" != "y" ]; then
define_bool CONFIG_ALL_PPC n define_bool CONFIG_ALL_PPC n
fi fi
bool 'Symmetric multi-processing support' CONFIG_SMP bool 'Symmetric multi-processing support' CONFIG_SMP
if [ "$CONFIG_SMP" = "y" ]; then if [ "$CONFIG_SMP" = "y" ]; then
bool ' Distribute interrupts on all CPUs by default' CONFIG_IRQ_ALL_CPUS bool ' Distribute interrupts on all CPUs by default' CONFIG_IRQ_ALL_CPUS
fi fi
define_bool CONFIG_PREEMPT n define_bool CONFIG_PREEMPT n
if [ "$CONFIG_6xx" = "y" -a "$CONFIG_8260" = "n" ];then if [ "$CONFIG_6xx" = "y" -a "$CONFIG_8260" = "n" ];then
bool 'AltiVec Support' CONFIG_ALTIVEC bool 'AltiVec Support' CONFIG_ALTIVEC
bool 'Thermal Management Support' CONFIG_TAU bool 'Thermal Management Support' CONFIG_TAU
if [ "$CONFIG_TAU" = "y" ]; then if [ "$CONFIG_TAU" = "y" ]; then
bool ' Interrupt driven TAU driver (DANGEROUS)' CONFIG_TAU_INT bool ' Interrupt driven TAU driver (DANGEROUS)' CONFIG_TAU_INT
bool ' Average high and low temp' CONFIG_TAU_AVERAGE bool ' Average high and low temp' CONFIG_TAU_AVERAGE
fi fi
fi fi
if [ "$CONFIG_4xx" = "y" -o "$CONFIG_8xx" = "y" ]; then if [ "$CONFIG_4xx" = "y" -o "$CONFIG_8xx" = "y" ]; then
bool 'Math emulation' CONFIG_MATH_EMULATION bool 'Math emulation' CONFIG_MATH_EMULATION
fi fi
if [ "$CONFIG_4xx" = "y" ]; then if [ "$CONFIG_4xx" = "y" ]; then
# It's often necessary to know the specific 4xx processor type. # It's often necessary to know the specific 4xx processor type.
# Fortunately, it is impled (so far) from the board type, so we # Fortunately, it is impled (so far) from the board type, so we
# don't need to ask more redundant questions. # don't need to ask more redundant questions.
if [ "$CONFIG_ASH" = "y" ]; then if [ "$CONFIG_ASH" = "y" ]; then
define_bool CONFIG_NP405H y define_bool CONFIG_NP405H y
define_bool CONFIG_TREEBOOT y define_bool CONFIG_TREEBOOT y
define_bool CONFIG_IBM405_ERR77 y define_bool CONFIG_IBM405_ERR77 y
define_bool CONFIG_IBM_OCP y define_bool CONFIG_IBM_OCP y
fi fi
if [ "$CONFIG_CEDER" = "y" ]; then if [ "$CONFIG_CEDER" = "y" ]; then
define_bool CONFIG_NP405L y define_bool CONFIG_NP405L y
define_bool CONFIG_BIOS_FIXUP y define_bool CONFIG_BIOS_FIXUP y
define_bool CONFIG_TREEBOOT y define_bool CONFIG_TREEBOOT y
define_bool CONFIG_IBM405_ERR77 y define_bool CONFIG_IBM405_ERR77 y
define_bool CONFIG_IBM_OCP y define_bool CONFIG_IBM_OCP y
fi fi
if [ "$CONFIG_CPCI405" = "y" ]; then if [ "$CONFIG_CPCI405" = "y" ]; then
define_bool CONFIG_405GP y define_bool CONFIG_405GP y
define_bool CONFIG_IBM405_ERR77 y define_bool CONFIG_IBM405_ERR77 y
define_bool CONFIG_IBM_OCP y define_bool CONFIG_IBM_OCP y
fi fi
if [ "$CONFIG_EP405" = "y" ]; then if [ "$CONFIG_EP405" = "y" ]; then
define_bool CONFIG_405GP y define_bool CONFIG_405GP y
define_bool CONFIG_BIOS_FIXUP y define_bool CONFIG_BIOS_FIXUP y
define_bool CONFIG_EMBEDDEDBOOT y define_bool CONFIG_EMBEDDEDBOOT y
define_bool CONFIG_IBM405_ERR77 y define_bool CONFIG_IBM405_ERR77 y
define_bool CONFIG_IBM_OCP y define_bool CONFIG_IBM_OCP y
fi fi
if [ "$CONFIG_OAK" = "y" -o "$CONFIG_TIVO" = "y" ]; then if [ "$CONFIG_OAK" = "y" -o "$CONFIG_TIVO" = "y" ]; then
define_bool CONFIG_403GCX y define_bool CONFIG_403GCX y
define_bool CONFIG_TREEBOOT y define_bool CONFIG_TREEBOOT y
fi fi
if [ "$CONFIG_REDWOOD_4" = "y" ]; then if [ "$CONFIG_REDWOOD_4" = "y" ]; then
define_bool CONFIG_STB03xxx y define_bool CONFIG_STB03xxx y
define_bool CONFIG_TREEBOOT y define_bool CONFIG_TREEBOOT y
define_bool CONFIG_IBM405_ERR77 y define_bool CONFIG_IBM405_ERR77 y
define_bool CONFIG_IBM_OCP y define_bool CONFIG_IBM_OCP y
fi fi
if [ "$CONFIG_REDWOOD_5" = "y" ]; then if [ "$CONFIG_REDWOOD_5" = "y" ]; then
define_bool CONFIG_STB03xxx y define_bool CONFIG_STB03xxx y
define_bool CONFIG_TREEBOOT y define_bool CONFIG_TREEBOOT y
define_bool CONFIG_IBM405_ERR77 y define_bool CONFIG_IBM405_ERR77 y
define_bool CONFIG_IBM_OCP y define_bool CONFIG_IBM_OCP y
fi fi
if [ "$CONFIG_WALNUT" = "y" ]; then if [ "$CONFIG_WALNUT" = "y" ]; then
define_bool CONFIG_405GP y define_bool CONFIG_405GP y
define_bool CONFIG_BIOS_FIXUP y define_bool CONFIG_BIOS_FIXUP y
define_bool CONFIG_TREEBOOT y define_bool CONFIG_TREEBOOT y
define_bool CONFIG_IBM405_ERR77 y define_bool CONFIG_IBM405_ERR77 y
define_bool CONFIG_IBM_OCP y define_bool CONFIG_IBM_OCP y
fi fi
bool 'Blue Logic DMA' CONFIG_405_DMA bool 'Blue Logic DMA' CONFIG_405_DMA
dep_bool 'Power Management support (experimental)' CONFIG_PM $CONFIG_EXPERIMENTAL dep_bool 'Power Management support (experimental)' CONFIG_PM $CONFIG_EXPERIMENTAL
if [ "$CONFIG_4xx" = "y" ]; then if [ "$CONFIG_4xx" = "y" ]; then
choice 'TTYS0 device and default console' \ choice 'TTYS0 device and default console' \
"UART0 CONFIG_UART0_TTYS0 \ "UART0 CONFIG_UART0_TTYS0 \
UART1 CONFIG_UART0_TTYS1" UART0 UART1 CONFIG_UART0_TTYS1" UART0
fi fi
define_bool CONFIG_IBM405_ERR51 y define_bool CONFIG_IBM405_ERR51 y
define_bool CONFIG_NOT_COHERENT_CACHE y define_bool CONFIG_NOT_COHERENT_CACHE y
fi fi
if [ "$CONFIG_8xx" = "y" -o "$CONFIG_8260" = "y" ]; then if [ "$CONFIG_8xx" = "y" -o "$CONFIG_8260" = "y" ]; then
define_bool CONFIG_EMBEDDEDBOOT y define_bool CONFIG_EMBEDDEDBOOT y
fi fi
endmenu endmenu
...@@ -262,43 +259,43 @@ bool 'High memory support' CONFIG_HIGHMEM ...@@ -262,43 +259,43 @@ bool 'High memory support' CONFIG_HIGHMEM
dep_bool ' Support for PTEs in high memory' CONFIG_HIGHPTE $CONFIG_HIGHMEM dep_bool ' Support for PTEs in high memory' CONFIG_HIGHPTE $CONFIG_HIGHMEM
bool 'Prompt for advanced kernel configuration options' CONFIG_ADVANCED_OPTIONS bool 'Prompt for advanced kernel configuration options' CONFIG_ADVANCED_OPTIONS
if [ "$CONFIG_ADVANCED_OPTIONS" = "y" ]; then if [ "$CONFIG_ADVANCED_OPTIONS" = "y" ]; then
if [ "$CONFIG_HIGHMEM" = "y" ]; then if [ "$CONFIG_HIGHMEM" = "y" ]; then
bool " Set high memory pool address" CONFIG_HIGHMEM_START_BOOL bool " Set high memory pool address" CONFIG_HIGHMEM_START_BOOL
if [ "$CONFIG_HIGHMEM_START_BOOL" = "y" ]; then if [ "$CONFIG_HIGHMEM_START_BOOL" = "y" ]; then
hex " Virtual start address of high memory pool" CONFIG_HIGHMEM_START 0xfe000000 hex " Virtual start address of high memory pool" CONFIG_HIGHMEM_START 0xfe000000
fi fi
bool " Set maximum low memory" CONFIG_LOWMEM_SIZE_BOOL bool " Set maximum low memory" CONFIG_LOWMEM_SIZE_BOOL
if [ "$CONFIG_LOWMEM_SIZE_BOOL" = "y" ]; then if [ "$CONFIG_LOWMEM_SIZE_BOOL" = "y" ]; then
hex " Maximum low memory size (in bytes)" CONFIG_LOWMEM_SIZE 0x20000000 hex " Maximum low memory size (in bytes)" CONFIG_LOWMEM_SIZE 0x20000000
fi fi
fi fi
bool "Set custom kernel base address" CONFIG_KERNEL_START_BOOL bool "Set custom kernel base address" CONFIG_KERNEL_START_BOOL
if [ "$CONFIG_KERNEL_START_BOOL" = "y" ]; then if [ "$CONFIG_KERNEL_START_BOOL" = "y" ]; then
hex " Virtual address of kernel base" CONFIG_KERNEL_START 0xc0000000 hex " Virtual address of kernel base" CONFIG_KERNEL_START 0xc0000000
fi fi
bool "Set custom user task size" CONFIG_TASK_SIZE_BOOL bool "Set custom user task size" CONFIG_TASK_SIZE_BOOL
if [ "$CONFIG_TASK_SIZE_BOOL" = "y" ]; then if [ "$CONFIG_TASK_SIZE_BOOL" = "y" ]; then
hex " Size of user task space" CONFIG_TASK_SIZE 0x80000000 hex " Size of user task space" CONFIG_TASK_SIZE 0x80000000
fi fi
if [ "$CONFIG_8xx" = "y" ]; then if [ "$CONFIG_8xx" = "y" ]; then
bool "Pinned Kernel TLBs (860 ONLY)" CONFIG_PIN_TLB bool "Pinned Kernel TLBs (860 ONLY)" CONFIG_PIN_TLB
fi fi
if [ "$CONFIG_4xx" = "y" ]; then if [ "$CONFIG_4xx" = "y" ]; then
bool "Pinned Kernel TLBs" CONFIG_PIN_TLB bool "Pinned Kernel TLBs" CONFIG_PIN_TLB
fi fi
if [ "$CONFIG_ALL_PPC" = "n" ]; then if [ "$CONFIG_ALL_PPC" != "y" ]; then
bool "Set the boot link/load address" CONFIG_BOOT_LOAD_BOOL bool "Set the boot link/load address" CONFIG_BOOT_LOAD_BOOL
if [ "$CONFIG_BOOT_LOAD_BOOL" = "y" ]; then if [ "$CONFIG_BOOT_LOAD_BOOL" = "y" ]; then
hex " Link/load address for booting" CONFIG_BOOT_LOAD 0x00400000 hex " Link/load address for booting" CONFIG_BOOT_LOAD 0x00400000
fi fi
fi fi
fi fi
if [ "$CONFIG_ALL_PPC" = "y" ]; then if [ "$CONFIG_ALL_PPC" = "y" ]; then
bool 'Support for ISA-bus hardware' CONFIG_ISA bool 'Support for ISA-bus hardware' CONFIG_ISA
else else
define_bool CONFIG_ISA n define_bool CONFIG_ISA n
fi fi
define_bool CONFIG_EISA n define_bool CONFIG_EISA n
define_bool CONFIG_SBUS n define_bool CONFIG_SBUS n
...@@ -307,30 +304,30 @@ define_bool CONFIG_SBUS n ...@@ -307,30 +304,30 @@ define_bool CONFIG_SBUS n
define_bool CONFIG_MCA n define_bool CONFIG_MCA n
if [ "$CONFIG_4xx" = "y" -o "$CONFIG_8260" = "y" ]; then if [ "$CONFIG_4xx" = "y" -o "$CONFIG_8260" = "y" ]; then
bool "Enable PCI" CONFIG_PCI bool "Enable PCI" CONFIG_PCI
bool 'PC PS/2 style Keyboard' CONFIG_PC_KEYBOARD bool 'PC PS/2 style Keyboard' CONFIG_PC_KEYBOARD
else else
if [ "$CONFIG_8xx" = "y" ]; then if [ "$CONFIG_8xx" = "y" ]; then
bool 'QSpan PCI' CONFIG_PCI_QSPAN bool 'QSpan PCI' CONFIG_PCI_QSPAN
define_bool CONFIG_PCI $CONFIG_PCI_QSPAN define_bool CONFIG_PCI $CONFIG_PCI_QSPAN
else else
if [ "$CONFIG_APUS" = "y" ]; then if [ "$CONFIG_APUS" = "y" ]; then
bool 'PCI for Permedia2' CONFIG_PCI_PERMEDIA bool 'PCI for Permedia2' CONFIG_PCI_PERMEDIA
define_bool CONFIG_PCI $CONFIG_PCI_PERMEDIA define_bool CONFIG_PCI $CONFIG_PCI_PERMEDIA
else else
if [ "$CONFIG_PPC_ISERIES" = "y" ]; then if [ "$CONFIG_PPC_ISERIES" = "y" ]; then
bool "IBM iSeries Native I/O Support" CONFIG_PCI_ISERIES bool "IBM iSeries Native I/O Support" CONFIG_PCI_ISERIES
define_bool CONFIG_PCI $CONFIG_PCI_ISERIES define_bool CONFIG_PCI $CONFIG_PCI_ISERIES
else else
define_bool CONFIG_PCI y define_bool CONFIG_PCI y
fi fi
fi fi
fi fi
fi fi
# only elf supported, a.out is not -- Cort # only elf supported, a.out is not -- Cort
if [ "$CONFIG_PROC_FS" = "y" ]; then if [ "$CONFIG_PROC_FS" = "y" ]; then
define_bool CONFIG_KCORE_ELF y define_bool CONFIG_KCORE_ELF y
fi fi
define_bool CONFIG_BINFMT_ELF y define_bool CONFIG_BINFMT_ELF y
define_bool CONFIG_KERNEL_ELF y define_bool CONFIG_KERNEL_ELF y
...@@ -341,70 +338,70 @@ source drivers/pci/Config.in ...@@ -341,70 +338,70 @@ source drivers/pci/Config.in
bool 'Support for hot-pluggable devices' CONFIG_HOTPLUG bool 'Support for hot-pluggable devices' CONFIG_HOTPLUG
if [ "$CONFIG_HOTPLUG" = "y" ]; then if [ "$CONFIG_HOTPLUG" = "y" ]; then
source drivers/pcmcia/Config.in source drivers/pcmcia/Config.in
else else
define_bool CONFIG_PCMCIA n define_bool CONFIG_PCMCIA n
fi fi
source drivers/parport/Config.in source drivers/parport/Config.in
if [ "$CONFIG_PPC_ISERIES" != "y" ]; then if [ "$CONFIG_PPC_ISERIES" != "y" ]; then
if [ "$CONFIG_APUS" != "y" ]; then if [ "$CONFIG_APUS" != "y" ]; then
tristate 'Support for /dev/rtc' CONFIG_PPC_RTC tristate 'Support for /dev/rtc' CONFIG_PPC_RTC
else else
bool 'Generic /dev/rtc emulation' CONFIG_GEN_RTC bool 'Generic /dev/rtc emulation' CONFIG_GEN_RTC
fi fi
fi fi
if [ "$CONFIG_ALL_PPC" = "y" -a "$CONFIG_POWER3" = "n" ] ; then if [ "$CONFIG_ALL_PPC" = "y" -a "$CONFIG_POWER3" = "n" ] ; then
bool 'Workarounds for PPC601 bugs' CONFIG_PPC601_SYNC_FIX bool 'Workarounds for PPC601 bugs' CONFIG_PPC601_SYNC_FIX
fi fi
if [ "$CONFIG_ALL_PPC" = "y" ]; then if [ "$CONFIG_ALL_PPC" = "y" ]; then
bool 'Support for Open Firmware device tree in /proc' CONFIG_PROC_DEVICETREE bool 'Support for Open Firmware device tree in /proc' CONFIG_PROC_DEVICETREE
bool 'Support for RTAS (RunTime Abstraction Services) in /proc' CONFIG_PPC_RTAS bool 'Support for RTAS (RunTime Abstraction Services) in /proc' CONFIG_PPC_RTAS
bool 'Support for PReP Residual Data' CONFIG_PREP_RESIDUAL bool 'Support for PReP Residual Data' CONFIG_PREP_RESIDUAL
fi fi
bool 'Default bootloader kernel arguments' CONFIG_CMDLINE_BOOL bool 'Default bootloader kernel arguments' CONFIG_CMDLINE_BOOL
if [ "$CONFIG_CMDLINE_BOOL" = "y" ] ; then if [ "$CONFIG_CMDLINE_BOOL" = "y" ] ; then
string 'Initial kernel command string' CONFIG_CMDLINE "console=ttyS0,9600 console=tty0 root=/dev/sda2" string 'Initial kernel command string' CONFIG_CMDLINE "console=ttyS0,9600 console=tty0 root=/dev/sda2"
fi fi
if [ "$CONFIG_APUS" = "y" ]; then if [ "$CONFIG_APUS" = "y" ]; then
define_bool CONFIG_FB_CONSOLE y define_bool CONFIG_FB_CONSOLE y
define_bool CONFIG_AMIGA y define_bool CONFIG_AMIGA y
define_bool CONFIG_ZORRO y define_bool CONFIG_ZORRO y
define_bool CONFIG_AMIGAMOUSE y define_bool CONFIG_AMIGAMOUSE y
define_bool CONFIG_ABSTRACT_CONSOLE y define_bool CONFIG_ABSTRACT_CONSOLE y
define_bool CONFIG_FB y define_bool CONFIG_FB y
define_bool CONFIG_MOUSE y define_bool CONFIG_MOUSE y
define_bool CONFIG_BUSMOUSE y define_bool CONFIG_BUSMOUSE y
define_bool CONFIG_APUS_FAST_EXCEPT y define_bool CONFIG_APUS_FAST_EXCEPT y
if [ "$CONFIG_EXPERIMENTAL" = "y" ]; then if [ "$CONFIG_EXPERIMENTAL" = "y" ]; then
bool 'Amiga 1200/600 PCMCIA support' CONFIG_AMIGA_PCMCIA bool 'Amiga 1200/600 PCMCIA support' CONFIG_AMIGA_PCMCIA
fi fi
tristate 'Amiga builtin serial support' CONFIG_AMIGA_BUILTIN_SERIAL tristate 'Amiga builtin serial support' CONFIG_AMIGA_BUILTIN_SERIAL
tristate 'GVP IO-Extender support' CONFIG_GVPIOEXT tristate 'GVP IO-Extender support' CONFIG_GVPIOEXT
dep_tristate 'GVP IO-Extender parallel printer support' CONFIG_GVPIOEXT_LP $CONFIG_GVPIOEXT dep_tristate 'GVP IO-Extender parallel printer support' CONFIG_GVPIOEXT_LP $CONFIG_GVPIOEXT
dep_tristate 'GVP IO-Extender PLIP support' CONFIG_GVPIOEXT_PLIP $CONFIG_GVPIOEXT dep_tristate 'GVP IO-Extender PLIP support' CONFIG_GVPIOEXT_PLIP $CONFIG_GVPIOEXT
tristate 'Multiface Card III serial support' CONFIG_MULTIFACE_III_TTY tristate 'Multiface Card III serial support' CONFIG_MULTIFACE_III_TTY
if [ "$CONFIG_EXPERIMENTAL" = "y" ]; then if [ "$CONFIG_EXPERIMENTAL" = "y" ]; then
tristate 'Commodore A2232 serial support (EXPERIMENTAL)' CONFIG_A2232 tristate 'Commodore A2232 serial support (EXPERIMENTAL)' CONFIG_A2232
fi fi
if [ "$CONFIG_AMIGA_PCMCIA" = "y" ]; then if [ "$CONFIG_AMIGA_PCMCIA" = "y" ]; then
tristate 'Hisoft Whippet PCMCIA serial support' CONFIG_WHIPPET_SERIAL tristate 'Hisoft Whippet PCMCIA serial support' CONFIG_WHIPPET_SERIAL
tristate 'PCMCIA NE2000 support' CONFIG_APNE tristate 'PCMCIA NE2000 support' CONFIG_APNE
fi fi
if [ "$CONFIG_AMIGA_BUILTIN_SERIAL" = "y" -o "$CONFIG_GVPIOEXT" = "y" -o \ if [ "$CONFIG_AMIGA_BUILTIN_SERIAL" = "y" -o "$CONFIG_GVPIOEXT" = "y" -o \
"$CONFIG_MULTIFACE_III_TTY" = "y" ]; then "$CONFIG_MULTIFACE_III_TTY" = "y" ]; then
bool 'Support for serial port console' CONFIG_SERIAL_CONSOLE bool 'Support for serial port console' CONFIG_SERIAL_CONSOLE
fi fi
bool 'Use power LED as a heartbeat' CONFIG_HEARTBEAT bool 'Use power LED as a heartbeat' CONFIG_HEARTBEAT
bool '/proc/hardware support' CONFIG_PROC_HARDWARE bool '/proc/hardware support' CONFIG_PROC_HARDWARE
source drivers/zorro/Config.in source drivers/zorro/Config.in
fi fi
endmenu endmenu
...@@ -414,18 +411,17 @@ source drivers/block/Config.in ...@@ -414,18 +411,17 @@ source drivers/block/Config.in
source drivers/md/Config.in source drivers/md/Config.in
if [ "$CONFIG_NET" = "y" ]; then if [ "$CONFIG_NET" = "y" ]; then
source net/Config.in source net/Config.in
fi fi
mainmenu_option next_comment mainmenu_option next_comment
comment 'ATA/IDE/MFM/RLL support' comment 'ATA/IDE/MFM/RLL support'
tristate 'ATA/IDE/MFM/RLL support' CONFIG_IDE tristate 'ATA/IDE/MFM/RLL support' CONFIG_IDE
if [ "$CONFIG_IDE" != "n" ]; then if [ "$CONFIG_IDE" != "n" ]; then
source drivers/ide/Config.in source drivers/ide/Config.in
else else
define_bool CONFIG_BLK_DEV_HD n define_bool CONFIG_BLK_DEV_HD n
fi fi
endmenu endmenu
...@@ -433,7 +429,7 @@ mainmenu_option next_comment ...@@ -433,7 +429,7 @@ mainmenu_option next_comment
comment 'SCSI support' comment 'SCSI support'
tristate 'SCSI support' CONFIG_SCSI tristate 'SCSI support' CONFIG_SCSI
if [ "$CONFIG_SCSI" != "n" ]; then if [ "$CONFIG_SCSI" != "n" ]; then
source drivers/scsi/Config.in source drivers/scsi/Config.in
fi fi
endmenu endmenu
...@@ -444,17 +440,17 @@ source drivers/ieee1394/Config.in ...@@ -444,17 +440,17 @@ source drivers/ieee1394/Config.in
source drivers/message/i2o/Config.in source drivers/message/i2o/Config.in
if [ "$CONFIG_NET" = "y" ]; then if [ "$CONFIG_NET" = "y" ]; then
mainmenu_option next_comment mainmenu_option next_comment
comment 'Network device support' comment 'Network device support'
bool 'Network device support' CONFIG_NETDEVICES bool 'Network device support' CONFIG_NETDEVICES
if [ "$CONFIG_NETDEVICES" = "y" ]; then if [ "$CONFIG_NETDEVICES" = "y" ]; then
source drivers/net/Config.in source drivers/net/Config.in
if [ "$CONFIG_ATM" = "y" ]; then if [ "$CONFIG_ATM" = "y" ]; then
source drivers/atm/Config.in source drivers/atm/Config.in
fi fi
fi fi
endmenu endmenu
fi fi
source net/ax25/Config.in source net/ax25/Config.in
...@@ -466,27 +462,26 @@ comment 'ISDN subsystem' ...@@ -466,27 +462,26 @@ comment 'ISDN subsystem'
tristate 'ISDN support' CONFIG_ISDN tristate 'ISDN support' CONFIG_ISDN
if [ "$CONFIG_ISDN" != "n" ]; then if [ "$CONFIG_ISDN" != "n" ]; then
source drivers/isdn/Config.in source drivers/isdn/Config.in
fi fi
endmenu endmenu
mainmenu_option next_comment mainmenu_option next_comment
comment 'Old CD-ROM drivers (not SCSI, not IDE)' comment 'Old CD-ROM drivers (not SCSI, not IDE)'
bool 'Support non-SCSI/IDE/ATAPI CDROM drives' CONFIG_CD_NO_IDESCSI bool 'Support non-SCSI/IDE/ATAPI CDROM drives' CONFIG_CD_NO_IDESCSI
if [ "$CONFIG_CD_NO_IDESCSI" != "n" ]; then if [ "$CONFIG_CD_NO_IDESCSI" != "n" ]; then
source drivers/cdrom/Config.in source drivers/cdrom/Config.in
fi fi
endmenu endmenu
mainmenu_option next_comment mainmenu_option next_comment
comment 'Console drivers' comment 'Console drivers'
if [ "$CONFIG_4xx" != "y" -a "$CONFIG_8xx" != "y" ]; then if [ "$CONFIG_4xx" != "y" -a "$CONFIG_8xx" != "y" ]; then
bool 'Support for VGA Console' CONFIG_VGA_CONSOLE bool 'Support for VGA Console' CONFIG_VGA_CONSOLE
fi fi
source drivers/video/Config.in source drivers/video/Config.in
if [ "$CONFIG_FB" = "y" -a "$CONFIG_ALL_PPC" = "y" ]; then if [ "$CONFIG_FB" = "y" -a "$CONFIG_ALL_PPC" = "y" ]; then
bool 'Backward compatibility mode for Xpmac' CONFIG_FB_COMPAT_XPMAC bool 'Backward compatibility mode for Xpmac' CONFIG_FB_COMPAT_XPMAC
fi fi
endmenu endmenu
...@@ -509,57 +504,56 @@ if [ "$CONFIG_PPC_ISERIES" = "y" ]; then ...@@ -509,57 +504,56 @@ if [ "$CONFIG_PPC_ISERIES" = "y" ]; then
-o "$CONFIG_VIOTAPE" != "n" -o "$CONFIG_VIOCD" != "n" ]; then -o "$CONFIG_VIOTAPE" != "n" -o "$CONFIG_VIOCD" != "n" ]; then
define_bool CONFIG_VIOPATH y define_bool CONFIG_VIOPATH y
fi fi
if [ "$CONFIG_VIOCD" = "y" ]; then
define_bool CONFIG_CD_NO_IDESCSI y
define_bool CONFIG_BLK_DEV_IDECD y
fi
endmenu endmenu
fi fi
if [ "$CONFIG_VIOCD" = "y" ]; then
define_bool CONFIG_CD_NO_IDESCSI y
define_bool CONFIG_BLK_DEV_IDECD y
fi
source drivers/input/Config.in source drivers/input/Config.in
mainmenu_option next_comment mainmenu_option next_comment
comment 'Macintosh device drivers' comment 'Macintosh device drivers'
if [ "$CONFIG_ALL_PPC" = "y" ]; then if [ "$CONFIG_ALL_PPC" = "y" ]; then
# we want to change this to something like CONFIG_SYSCTRL_CUDA/PMU # we want to change this to something like CONFIG_SYSCTRL_CUDA/PMU
bool 'Support for CUDA based PowerMacs' CONFIG_ADB_CUDA bool 'Support for CUDA based PowerMacs' CONFIG_ADB_CUDA
bool 'Support for PMU based PowerMacs' CONFIG_ADB_PMU bool 'Support for PMU based PowerMacs' CONFIG_ADB_PMU
if [ "$CONFIG_ADB_PMU" = "y" ]; then if [ "$CONFIG_ADB_PMU" = "y" ]; then
bool ' Power management support for PowerBooks' CONFIG_PMAC_PBOOK bool ' Power management support for PowerBooks' CONFIG_PMAC_PBOOK
if [ "$CONFIG_PMAC_PBOOK" = "y" ]; then if [ "$CONFIG_PMAC_PBOOK" = "y" ]; then
define_bool CONFIG_PM y define_bool CONFIG_PM y
tristate ' APM emulation' CONFIG_PMAC_APM_EMU tristate ' APM emulation' CONFIG_PMAC_APM_EMU
fi fi
# made a separate option since backlight may end up beeing used # made a separate option since backlight may end up beeing used
# on non-powerbook machines (but only on PMU based ones AFAIK) # on non-powerbook machines (but only on PMU based ones AFAIK)
bool ' Backlight control for LCD screens' CONFIG_PMAC_BACKLIGHT bool ' Backlight control for LCD screens' CONFIG_PMAC_BACKLIGHT
fi fi
bool 'Support for PowerMac floppy' CONFIG_MAC_FLOPPY bool 'Support for PowerMac floppy' CONFIG_MAC_FLOPPY
tristate 'Support for PowerMac serial ports' CONFIG_MAC_SERIAL tristate 'Support for PowerMac serial ports' CONFIG_MAC_SERIAL
if [ "$CONFIG_MAC_SERIAL" = "y" ]; then if [ "$CONFIG_MAC_SERIAL" = "y" ]; then
bool ' Support for console on serial port' CONFIG_SERIAL_CONSOLE bool ' Support for console on serial port' CONFIG_SERIAL_CONSOLE
fi fi
bool 'Apple Desktop Bus (ADB) support' CONFIG_ADB bool 'Apple Desktop Bus (ADB) support' CONFIG_ADB
if [ "$CONFIG_ADB" = "y" ]; then if [ "$CONFIG_ADB" = "y" ]; then
bool ' Include MacIO (CHRP) ADB driver' CONFIG_ADB_MACIO bool ' Include MacIO (CHRP) ADB driver' CONFIG_ADB_MACIO
dep_bool ' Use input layer for ADB devices' CONFIG_INPUT_ADBHID $CONFIG_INPUT dep_bool ' Use input layer for ADB devices' CONFIG_INPUT_ADBHID $CONFIG_INPUT
if [ "$CONFIG_INPUT_ADBHID" = "y" ]; then if [ "$CONFIG_INPUT_ADBHID" = "y" ]; then
bool ' Support for ADB raw keycodes' CONFIG_MAC_ADBKEYCODES bool ' Support for ADB raw keycodes' CONFIG_MAC_ADBKEYCODES
bool ' Support for mouse button 2+3 emulation' CONFIG_MAC_EMUMOUSEBTN bool ' Support for mouse button 2+3 emulation' CONFIG_MAC_EMUMOUSEBTN
else else
bool ' Support for ADB keyboard (old driver)' CONFIG_ADB_KEYBOARD bool ' Support for ADB keyboard (old driver)' CONFIG_ADB_KEYBOARD
fi fi
fi fi
# This is for drivers/macintosh/mac_hid.o, which is needed if the input # This is for drivers/macintosh/mac_hid.o, which is needed if the input
# layer is used. # layer is used.
if [ "$CONFIG_INPUT" != "n" ]; then if [ "$CONFIG_INPUT" != "n" ]; then
define_bool CONFIG_MAC_HID y define_bool CONFIG_MAC_HID y
fi fi
if [ "$CONFIG_ADB_CUDA" != "n" ]; then if [ "$CONFIG_ADB_CUDA" != "n" ]; then
bool 'Support for ANS LCD display' CONFIG_ANSLCD bool 'Support for ANS LCD display' CONFIG_ANSLCD
fi fi
fi fi
endmenu endmenu
...@@ -573,32 +567,31 @@ mainmenu_option next_comment ...@@ -573,32 +567,31 @@ mainmenu_option next_comment
comment 'Sound' comment 'Sound'
tristate 'Sound card support' CONFIG_SOUND tristate 'Sound card support' CONFIG_SOUND
if [ "$CONFIG_SOUND" != "n" ]; then if [ "$CONFIG_SOUND" != "n" ]; then
source sound/oss/dmasound/Config.in source sound/oss/dmasound/Config.in
source sound/Config.in source sound/Config.in
fi fi
endmenu endmenu
if [ "$CONFIG_8xx" = "y" ]; then if [ "$CONFIG_8xx" = "y" ]; then
source arch/ppc/8xx_io/Config.in source arch/ppc/8xx_io/Config.in
fi fi
if [ "$CONFIG_8260" = "y" ]; then if [ "$CONFIG_8260" = "y" ]; then
source arch/ppc/8260_io/Config.in source arch/ppc/8260_io/Config.in
fi fi
if [ "$CONFIG_4xx" = "y"]; then if [ "$CONFIG_4xx" = "y"]; then
mainmenu_option next_comment mainmenu_option next_comment
comment 'IBM 4xx options' comment 'IBM 4xx options'
if [ "$CONFIG_STB03xxx" = "y" ]; then if [ "$CONFIG_STB03xxx" = "y" ]; then
bool 'STB IR Keyboard' CONFIG_STB_KB bool 'STB IR Keyboard' CONFIG_STB_KB
bool 'SICC Serial port' CONFIG_SERIAL_SICC bool 'SICC Serial port' CONFIG_SERIAL_SICC
if [ "$CONFIG_SERIAL_SICC" = "y" -a "$CONFIG_UART0_TTYS1" = "y" ]; then if [ "$CONFIG_SERIAL_SICC" = "y" -a "$CONFIG_UART0_TTYS1" = "y" ]; then
define_bool CONFIG_UART1_DFLT_CONSOLE y define_bool CONFIG_UART1_DFLT_CONSOLE y
define_bool CONFIG_SERIAL_SICC_CONSOLE y define_bool CONFIG_SERIAL_SICC_CONSOLE y
fi
fi fi
fi endmenu
endmenu
fi fi
source drivers/usb/Config.in source drivers/usb/Config.in
...@@ -615,7 +608,7 @@ comment 'Kernel hacking' ...@@ -615,7 +608,7 @@ comment 'Kernel hacking'
bool 'Magic SysRq key' CONFIG_MAGIC_SYSRQ bool 'Magic SysRq key' CONFIG_MAGIC_SYSRQ
bool 'Include kgdb kernel debugger' CONFIG_KGDB bool 'Include kgdb kernel debugger' CONFIG_KGDB
if [ "$CONFIG_KGDB" = "y" ]; then if [ "$CONFIG_KGDB" = "y" ]; then
choice 'Serial Port' \ choice 'Serial Port' \
"ttyS0 CONFIG_KGDB_TTYS0 \ "ttyS0 CONFIG_KGDB_TTYS0 \
ttyS1 CONFIG_KGDB_TTYS1 \ ttyS1 CONFIG_KGDB_TTYS1 \
ttyS2 CONFIG_KGDB_TTYS2 \ ttyS2 CONFIG_KGDB_TTYS2 \
...@@ -624,19 +617,19 @@ fi ...@@ -624,19 +617,19 @@ fi
bool 'Include xmon kernel debugger' CONFIG_XMON bool 'Include xmon kernel debugger' CONFIG_XMON
bool 'Include BDI-2000 user context switcher' CONFIG_BDI_SWITCH bool 'Include BDI-2000 user context switcher' CONFIG_BDI_SWITCH
if [ "$CONFIG_KGDB" = "y" -o "$CONFIG_XMON" = "y" \ if [ "$CONFIG_KGDB" = "y" -o "$CONFIG_XMON" = "y" \
-o "$CONFIG_BDI_SWITCH" = "y" ]; then -o "$CONFIG_BDI_SWITCH" = "y" ]; then
bool 'Add any additional compile options' CONFIG_MORE_COMPILE_OPTIONS bool 'Add any additional compile options' CONFIG_MORE_COMPILE_OPTIONS
if [ "$CONFIG_MORE_COMPILE_OPTIONS" = "y" ]; then if [ "$CONFIG_MORE_COMPILE_OPTIONS" = "y" ]; then
string 'Additional compile arguments' CONFIG_COMPILE_OPTIONS "-g -ggdb" string 'Additional compile arguments' CONFIG_COMPILE_OPTIONS "-g -ggdb"
fi fi
fi fi
if [ "$CONFIG_ALL_PPC" = "y" ]; then if [ "$CONFIG_ALL_PPC" = "y" ]; then
bool 'Support for early boot text console (BootX or OpenFirmware only)' CONFIG_BOOTX_TEXT bool 'Support for early boot text console (BootX or OpenFirmware only)' CONFIG_BOOTX_TEXT
fi fi
if [ "$CONFIG_MCPN765" = "y" -o "$CONFIG_SANDPOINT" = "y" \ if [ "$CONFIG_MCPN765" = "y" -o "$CONFIG_SANDPOINT" = "y" \
-o "$CONFIG_ZX4500" = "y" -o "$CONFIG_PRPMC800" = "y" \ -o "$CONFIG_ZX4500" = "y" -o "$CONFIG_PRPMC800" = "y" \
-o "$CONFIG_4xx" = "y" -o "$CONFIG_GT64260" = "y" ]; then -o "$CONFIG_4xx" = "y" -o "$CONFIG_GT64260" = "y" ]; then
bool 'Support for early boot texts over serial port' CONFIG_SERIAL_TEXT_DEBUG bool 'Support for early boot texts over serial port' CONFIG_SERIAL_TEXT_DEBUG
fi fi
endmenu endmenu
...@@ -52,49 +52,45 @@ void power_save(void); ...@@ -52,49 +52,45 @@ void power_save(void);
unsigned long zero_paged_on; unsigned long zero_paged_on;
unsigned long powersave_nap; unsigned long powersave_nap;
int idled(void) void default_idle(void)
{ {
int do_power_save = 0; int do_power_save = 0;
if (cur_cpu_spec[smp_processor_id()]->cpu_features & CPU_FTR_CAN_DOZE) if (cur_cpu_spec[smp_processor_id()]->cpu_features & CPU_FTR_CAN_DOZE)
do_power_save = 1; do_power_save = 1;
/* endless loop with no priority at all */
for (;;) {
#ifdef CONFIG_PPC_ISERIES #ifdef CONFIG_PPC_ISERIES
if (!current->need_resched) { if (!current->need_resched) {
/* Turn off the run light */ /* Turn off the run light */
run_light_on(0); run_light_on(0);
yield_shared_processor(); yield_shared_processor();
} }
HMT_low(); HMT_low();
#endif #endif
#ifdef CONFIG_SMP #ifdef CONFIG_SMP
if (!do_power_save) { if (!do_power_save) {
if (!need_resched()) { if (!need_resched()) {
set_thread_flag(TIF_POLLING_NRFLAG); set_thread_flag(TIF_POLLING_NRFLAG);
while (!test_thread_flag(TIF_NEED_RESCHED)) while (!test_thread_flag(TIF_NEED_RESCHED))
barrier(); barrier();
clear_thread_flag(TIF_POLLING_NRFLAG); clear_thread_flag(TIF_POLLING_NRFLAG);
}
} }
}
#endif #endif
if (do_power_save && !need_resched()) if (do_power_save && !need_resched())
power_save(); power_save();
if (need_resched()) { if (need_resched()) {
run_light_on(1); run_light_on(1);
schedule(); schedule();
} }
#ifdef CONFIG_PPC_ISERIES #ifdef CONFIG_PPC_ISERIES
else { else {
run_light_on(0); run_light_on(0);
yield_shared_processor(); yield_shared_processor();
HMT_low(); HMT_low();
}
#endif /* CONFIG_PPC_ISERIES */
} }
return 0; #endif /* CONFIG_PPC_ISERIES */
} }
/* /*
...@@ -103,7 +99,8 @@ int idled(void) ...@@ -103,7 +99,8 @@ int idled(void)
*/ */
int cpu_idle(void) int cpu_idle(void)
{ {
idled(); for (;;)
default_idle();
return 0; return 0;
} }
......
...@@ -79,6 +79,10 @@ extern unsigned char __res[]; ...@@ -79,6 +79,10 @@ extern unsigned char __res[];
extern unsigned long ret_to_user_hook; extern unsigned long ret_to_user_hook;
extern unsigned long mm_ptov (unsigned long paddr); extern unsigned long mm_ptov (unsigned long paddr);
extern void *consistent_alloc(int gfp, size_t size, dma_addr_t *dma_handle);
extern void consistent_free(void *vaddr);
extern void consistent_sync(void *vaddr, size_t size, int direction);
EXPORT_SYMBOL(clear_page); EXPORT_SYMBOL(clear_page);
EXPORT_SYMBOL(do_signal); EXPORT_SYMBOL(do_signal);
EXPORT_SYMBOL(do_syscall_trace); EXPORT_SYMBOL(do_syscall_trace);
......
...@@ -20,6 +20,7 @@ ...@@ -20,6 +20,7 @@
#include <linux/sched.h> #include <linux/sched.h>
#include <asm/atomic.h> #include <asm/atomic.h>
#include <asm/semaphore.h> #include <asm/semaphore.h>
#include <asm/errno.h>
/* /*
* Atomically update sem->count. * Atomically update sem->count.
......
...@@ -594,8 +594,8 @@ int do_signal(sigset_t *oldset, struct pt_regs *regs) ...@@ -594,8 +594,8 @@ int do_signal(sigset_t *oldset, struct pt_regs *regs)
info.si_signo = signr; info.si_signo = signr;
info.si_errno = 0; info.si_errno = 0;
info.si_code = SI_USER; info.si_code = SI_USER;
info.si_pid = current->p_pptr->pid; info.si_pid = current->parent->pid;
info.si_uid = current->p_pptr->uid; info.si_uid = current->parent->uid;
} }
/* If the (new) signal is now blocked, requeue it. */ /* If the (new) signal is now blocked, requeue it. */
...@@ -634,7 +634,7 @@ int do_signal(sigset_t *oldset, struct pt_regs *regs) ...@@ -634,7 +634,7 @@ int do_signal(sigset_t *oldset, struct pt_regs *regs)
case SIGSTOP: case SIGSTOP:
current->state = TASK_STOPPED; current->state = TASK_STOPPED;
current->exit_code = signr; current->exit_code = signr;
if (!(current->p_pptr->sig->action[SIGCHLD-1].sa.sa_flags & SA_NOCLDSTOP)) if (!(current->parent->sig->action[SIGCHLD-1].sa.sa_flags & SA_NOCLDSTOP))
notify_parent(current, SIGCHLD); notify_parent(current, SIGCHLD);
schedule(); schedule();
continue; continue;
......
...@@ -22,6 +22,7 @@ ...@@ -22,6 +22,7 @@
* 2 of the License, or (at your option) any later version. * 2 of the License, or (at your option) any later version.
* *
*/ */
#include <asm/tlbflush.h>
extern void mapin_ram(void); extern void mapin_ram(void);
extern void bat_mapin_ram(void); extern void bat_mapin_ram(void);
......
...@@ -28,6 +28,7 @@ ...@@ -28,6 +28,7 @@
#include <linux/types.h> #include <linux/types.h>
#include <linux/vmalloc.h> #include <linux/vmalloc.h>
#include <linux/init.h> #include <linux/init.h>
#include <linux/highmem.h>
#include <asm/pgtable.h> #include <asm/pgtable.h>
#include <asm/pgalloc.h> #include <asm/pgalloc.h>
...@@ -56,6 +57,70 @@ void setbat(int index, unsigned long virt, unsigned long phys, ...@@ -56,6 +57,70 @@ void setbat(int index, unsigned long virt, unsigned long phys,
#define p_mapped_by_bats(x) (0UL) #define p_mapped_by_bats(x) (0UL)
#endif /* HAVE_BATS */ #endif /* HAVE_BATS */
pgd_t *pgd_alloc(struct mm_struct *mm)
{
pgd_t *ret;
if ((ret = (pgd_t *)__get_free_page(GFP_KERNEL)) != NULL)
clear_page(ret);
return ret;
}
void pgd_free(pgd_t *pgd)
{
free_page((unsigned long)pgd);
}
pte_t *pte_alloc_one_kernel(struct mm_struct *mm, unsigned long address)
{
pte_t *pte;
extern int mem_init_done;
extern void *early_get_page(void);
int timeout = 0;
if (mem_init_done) {
while ((pte = (pte_t *) __get_free_page(GFP_KERNEL)) == NULL
&& ++timeout < 10) {
set_current_state(TASK_UNINTERRUPTIBLE);
schedule_timeout(HZ);
}
} else
pte = (pte_t *) early_get_page();
if (pte != NULL)
clear_page(pte);
return pte;
}
struct page *pte_alloc_one(struct mm_struct *mm, unsigned long address)
{
struct page *pte;
int timeout = 0;
#ifdef CONFIG_HIGHPTE
int flags = GFP_KERNEL | __GFP_HIGHMEM;
#else
int flags = GFP_KERNEL;
#endif
while ((pte = alloc_pages(flags, 0)) == NULL) {
if (++timeout >= 10)
return NULL;
set_current_state(TASK_UNINTERRUPTIBLE);
schedule_timeout(HZ);
}
clear_highpage(pte);
return pte;
}
void pte_free_kernel(pte_t *pte)
{
free_page((unsigned long)pte);
}
void pte_free(struct page *pte)
{
__free_page(pte);
}
#ifndef CONFIG_PPC_ISERIES #ifndef CONFIG_PPC_ISERIES
void * void *
ioremap(unsigned long addr, unsigned long size) ioremap(unsigned long addr, unsigned long size)
......
/*
* BK Id: %F% %I% %G% %U% %#%
*/
/*
* include/asm-ppc/cacheflush.h
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version
* 2 of the License, or (at your option) any later version.
*/
#ifdef __KERNEL__
#ifndef _PPC_CACHEFLUSH_H
#define _PPC_CACHEFLUSH_H
#include <linux/mm.h>
/*
* No cache flushing is required when address mappings are
* changed, because the caches on PowerPCs are physically
* addressed. -- paulus
* Also, when SMP we use the coherency (M) bit of the
* BATs and PTEs. -- Cort
*/
#define flush_cache_all() do { } while (0)
#define flush_cache_mm(mm) do { } while (0)
#define flush_cache_range(vma, a, b) do { } while (0)
#define flush_cache_page(vma, p) do { } while (0)
#define flush_page_to_ram(page) do { } while (0)
extern void flush_dcache_page(struct page *page);
extern void flush_icache_page(struct vm_area_struct *vma, struct page *page);
extern void flush_icache_range(unsigned long, unsigned long);
extern void flush_icache_user_range(struct vm_area_struct *vma,
struct page *page, unsigned long addr, int len);
extern void __flush_dcache_icache(void *page_va);
extern void __flush_dcache_icache_phys(unsigned long physaddr);
#endif _PPC_CACHEFLUSH_H
#endif __KERNEL__
...@@ -28,7 +28,7 @@ ...@@ -28,7 +28,7 @@
#include <linux/init.h> #include <linux/init.h>
#include <linux/interrupt.h> #include <linux/interrupt.h>
#include <asm/kmap_types.h> #include <asm/kmap_types.h>
#include <asm/pgtable.h> #include <asm/tlbflush.h>
/* undef for production */ /* undef for production */
#define HIGHMEM_DEBUG 1 #define HIGHMEM_DEBUG 1
......
...@@ -7,24 +7,12 @@ ...@@ -7,24 +7,12 @@
#include <linux/config.h> #include <linux/config.h>
#include <linux/threads.h> #include <linux/threads.h>
#include <linux/highmem.h>
#include <asm/processor.h> #include <asm/processor.h>
extern void __bad_pte(pmd_t *pmd); extern void __bad_pte(pmd_t *pmd);
static inline pgd_t *pgd_alloc(struct mm_struct *mm) extern pgd_t *pgd_alloc(struct mm_struct *mm);
{ extern void pgd_free(pgd_t *pgd);
pgd_t *ret;
if ((ret = (pgd_t *)__get_free_page(GFP_KERNEL)) != NULL)
clear_page(ret);
return ret;
}
extern __inline__ void pgd_free(pgd_t *pgd)
{
free_page((unsigned long)pgd);
}
/* /*
* We don't have any real pmd's, and this code never triggers because * We don't have any real pmd's, and this code never triggers because
...@@ -34,64 +22,17 @@ extern __inline__ void pgd_free(pgd_t *pgd) ...@@ -34,64 +22,17 @@ extern __inline__ void pgd_free(pgd_t *pgd)
#define pmd_free(x) do { } while (0) #define pmd_free(x) do { } while (0)
#define pgd_populate(mm, pmd, pte) BUG() #define pgd_populate(mm, pmd, pte) BUG()
static inline pte_t *
pte_alloc_one_kernel(struct mm_struct *mm, unsigned long address)
{
pte_t *pte;
extern int mem_init_done;
extern void *early_get_page(void);
int timeout = 0;
if (mem_init_done) {
while ((pte = (pte_t *) __get_free_page(GFP_KERNEL)) == NULL
&& ++timeout < 10) {
set_current_state(TASK_UNINTERRUPTIBLE);
schedule_timeout(HZ);
}
} else
pte = (pte_t *) early_get_page();
if (pte != NULL)
clear_page(pte);
return pte;
}
static inline struct page *
pte_alloc_one(struct mm_struct *mm, unsigned long address)
{
struct page *pte;
int timeout = 0;
#ifdef CONFIG_HIGHPTE
int flags = GFP_KERNEL | __GFP_HIGHMEM;
#else
int flags = GFP_KERNEL;
#endif
while ((pte = alloc_pages(flags, 0)) == NULL) {
if (++timeout >= 10)
return NULL;
set_current_state(TASK_UNINTERRUPTIBLE);
schedule_timeout(HZ);
}
clear_highpage(pte);
return pte;
}
static inline void pte_free_kernel(pte_t *pte)
{
free_page((unsigned long)pte);
}
static inline void pte_free(struct page *pte)
{
__free_page(pte);
}
#define pmd_populate_kernel(mm, pmd, pte) \ #define pmd_populate_kernel(mm, pmd, pte) \
(pmd_val(*(pmd)) = __pa(pte)) (pmd_val(*(pmd)) = __pa(pte))
#define pmd_populate(mm, pmd, pte) \ #define pmd_populate(mm, pmd, pte) \
(pmd_val(*(pmd)) = ((pte) - mem_map) << PAGE_SHIFT) (pmd_val(*(pmd)) = ((pte) - mem_map) << PAGE_SHIFT)
extern int do_check_pgt_cache(int, int); extern pte_t *pte_alloc_one_kernel(struct mm_struct *mm, unsigned long addr);
extern struct page *pte_alloc_one(struct mm_struct *mm, unsigned long addr);
extern void pte_free_kernel(pte_t *pte);
extern void pte_free(struct page *pte);
#define check_pgt_cache() do { } while (0)
#endif /* _PPC_PGALLOC_H */ #endif /* _PPC_PGALLOC_H */
#endif /* __KERNEL__ */ #endif /* __KERNEL__ */
...@@ -13,95 +13,6 @@ ...@@ -13,95 +13,6 @@
#include <asm/processor.h> /* For TASK_SIZE */ #include <asm/processor.h> /* For TASK_SIZE */
#include <asm/mmu.h> #include <asm/mmu.h>
#include <asm/page.h> #include <asm/page.h>
#include <asm/kmap_types.h>
extern void _tlbie(unsigned long address);
extern void _tlbia(void);
#if defined(CONFIG_4xx)
#define __tlbia() asm volatile ("tlbia; sync" : : : "memory")
static inline void local_flush_tlb_all(void)
{ __tlbia(); }
static inline void local_flush_tlb_mm(struct mm_struct *mm)
{ __tlbia(); }
static inline void local_flush_tlb_page(struct vm_area_struct *vma,
unsigned long vmaddr)
{ _tlbie(vmaddr); }
static inline void local_flush_tlb_range(struct mm_struct *mm,
unsigned long start, unsigned long end)
{ __tlbia(); }
#define update_mmu_cache(vma, addr, pte) do { } while (0)
#elif defined(CONFIG_8xx)
#define __tlbia() asm volatile ("tlbia; sync" : : : "memory")
static inline void local_flush_tlb_all(void)
{ __tlbia(); }
static inline void local_flush_tlb_mm(struct mm_struct *mm)
{ __tlbia(); }
static inline void local_flush_tlb_page(struct vm_area_struct *vma,
unsigned long vmaddr)
{ _tlbie(vmaddr); }
static inline void local_flush_tlb_range(struct mm_struct *mm,
unsigned long start, unsigned long end)
{ __tlbia(); }
#define update_mmu_cache(vma, addr, pte) do { } while (0)
#else /* 6xx, 7xx, 7xxx cpus */
struct mm_struct;
struct vm_area_struct;
extern void local_flush_tlb_all(void);
extern void local_flush_tlb_mm(struct mm_struct *mm);
extern void local_flush_tlb_page(struct vm_area_struct *vma, unsigned long vmaddr);
extern void local_flush_tlb_range(struct vm_area_struct *vma, unsigned long start,
unsigned long end);
/*
* This gets called at the end of handling a page fault, when
* the kernel has put a new PTE into the page table for the process.
* We use it to put a corresponding HPTE into the hash table
* ahead of time, instead of waiting for the inevitable extra
* hash-table miss exception.
*/
extern void update_mmu_cache(struct vm_area_struct *, unsigned long, pte_t);
#endif
#define flush_tlb_all local_flush_tlb_all
#define flush_tlb_mm local_flush_tlb_mm
#define flush_tlb_page local_flush_tlb_page
#define flush_tlb_range local_flush_tlb_range
/*
* This is called in munmap when we have freed up some page-table
* pages. We don't need to do anything here, there's nothing special
* about our page-table pages. -- paulus
*/
static inline void flush_tlb_pgtables(struct mm_struct *mm,
unsigned long start, unsigned long end)
{
}
/*
* No cache flushing is required when address mappings are
* changed, because the caches on PowerPCs are physically
* addressed. -- paulus
* Also, when SMP we use the coherency (M) bit of the
* BATs and PTEs. -- Cort
*/
#define flush_cache_all() do { } while (0)
#define flush_cache_mm(mm) do { } while (0)
#define flush_cache_range(vma, a, b) do { } while (0)
#define flush_cache_page(vma, p) do { } while (0)
#define flush_page_to_ram(page) do { } while (0)
extern void flush_icache_user_range(struct vm_area_struct *vma,
struct page *page, unsigned long addr, int len);
extern void flush_icache_range(unsigned long, unsigned long);
extern void __flush_dcache_icache(void *page_va);
extern void __flush_dcache_icache_phys(unsigned long physaddr);
extern void flush_dcache_page(struct page *page);
extern void flush_icache_page(struct vm_area_struct *vma, struct page *page);
extern unsigned long va_to_phys(unsigned long address); extern unsigned long va_to_phys(unsigned long address);
extern pte_t *va_to_pte(unsigned long address); extern pte_t *va_to_pte(unsigned long address);
......
...@@ -68,6 +68,8 @@ static inline struct thread_info *current_thread_info(void) ...@@ -68,6 +68,8 @@ static inline struct thread_info *current_thread_info(void)
#define TI_FLAGS 8 #define TI_FLAGS 8
#define TI_CPU 12 #define TI_CPU 12
#define PREEMPT_ACTIVE 0x4000000
/* /*
* thread information flag bit numbers * thread information flag bit numbers
*/ */
......
/*
* BK Id: %F% %I% %G% %U% %#%
*/
/*
* include/asm-ppc/tlbflush.h
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version
* 2 of the License, or (at your option) any later version.
*/
#ifdef __KERNEL__
#ifndef _PPC_TLBFLUSH_H
#define _PPC_TLBFLUSH_H
#include <linux/config.h>
#include <linux/mm.h>
#include <asm/processor.h>
extern void _tlbie(unsigned long address);
extern void _tlbia(void);
#if defined(CONFIG_4xx)
#define __tlbia() asm volatile ("tlbia; sync" : : : "memory")
static inline void local_flush_tlb_all(void)
{ __tlbia(); }
static inline void local_flush_tlb_mm(struct mm_struct *mm)
{ __tlbia(); }
static inline void local_flush_tlb_page(struct vm_area_struct *vma,
unsigned long vmaddr)
{ _tlbie(vmaddr); }
static inline void local_flush_tlb_range(struct mm_struct *mm,
unsigned long start, unsigned long end)
{ __tlbia(); }
#define update_mmu_cache(vma, addr, pte) do { } while (0)
#elif defined(CONFIG_8xx)
#define __tlbia() asm volatile ("tlbia; sync" : : : "memory")
static inline void local_flush_tlb_all(void)
{ __tlbia(); }
static inline void local_flush_tlb_mm(struct mm_struct *mm)
{ __tlbia(); }
static inline void local_flush_tlb_page(struct vm_area_struct *vma,
unsigned long vmaddr)
{ _tlbie(vmaddr); }
static inline void local_flush_tlb_range(struct mm_struct *mm,
unsigned long start, unsigned long end)
{ __tlbia(); }
#define update_mmu_cache(vma, addr, pte) do { } while (0)
#else /* 6xx, 7xx, 7xxx cpus */
struct mm_struct;
struct vm_area_struct;
extern void local_flush_tlb_all(void);
extern void local_flush_tlb_mm(struct mm_struct *mm);
extern void local_flush_tlb_page(struct vm_area_struct *vma, unsigned long vmaddr);
extern void local_flush_tlb_range(struct vm_area_struct *vma, unsigned long start,
unsigned long end);
/*
* This gets called at the end of handling a page fault, when
* the kernel has put a new PTE into the page table for the process.
* We use it to put a corresponding HPTE into the hash table
* ahead of time, instead of waiting for the inevitable extra
* hash-table miss exception.
*/
extern void update_mmu_cache(struct vm_area_struct *, unsigned long, pte_t);
#endif
#define flush_tlb_all local_flush_tlb_all
#define flush_tlb_mm local_flush_tlb_mm
#define flush_tlb_page local_flush_tlb_page
#define flush_tlb_range local_flush_tlb_range
/*
* This is called in munmap when we have freed up some page-table
* pages. We don't need to do anything here, there's nothing special
* about our page-table pages. -- paulus
*/
static inline void flush_tlb_pgtables(struct mm_struct *mm,
unsigned long start, unsigned long end)
{
}
#endif _PPC_TLBFLUSH_H
#endif __KERNEL__
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