Commit d58a75ef authored by Linus Torvalds's avatar Linus Torvalds
parents f6ff56cd 5d66da3d
...@@ -14,10 +14,6 @@ ...@@ -14,10 +14,6 @@
HAS_BIARCH := $(call cc-option-yn, -m32) HAS_BIARCH := $(call cc-option-yn, -m32)
ifeq ($(CONFIG_PPC64),y)
OLDARCH := ppc64
SZ := 64
# Set default 32 bits cross compilers for vdso and boot wrapper # Set default 32 bits cross compilers for vdso and boot wrapper
CROSS32_COMPILE ?= CROSS32_COMPILE ?=
...@@ -37,6 +33,10 @@ endif ...@@ -37,6 +33,10 @@ endif
export CROSS32CC CROSS32AS CROSS32LD CROSS32OBJCOPY export CROSS32CC CROSS32AS CROSS32LD CROSS32OBJCOPY
ifeq ($(CONFIG_PPC64),y)
OLDARCH := ppc64
SZ := 64
new_nm := $(shell if $(NM) --help 2>&1 | grep -- '--synthetic' > /dev/null; then echo y; else echo n; fi) new_nm := $(shell if $(NM) --help 2>&1 | grep -- '--synthetic' > /dev/null; then echo y; else echo n; fi)
ifeq ($(new_nm),y) ifeq ($(new_nm),y)
...@@ -139,7 +139,7 @@ drivers-$(CONFIG_CPM2) += arch/ppc/8260_io/ ...@@ -139,7 +139,7 @@ drivers-$(CONFIG_CPM2) += arch/ppc/8260_io/
drivers-$(CONFIG_OPROFILE) += arch/powerpc/oprofile/ drivers-$(CONFIG_OPROFILE) += arch/powerpc/oprofile/
defaultimage-$(CONFIG_PPC32) := uImage zImage defaultimage-$(CONFIG_PPC32) := zImage
defaultimage-$(CONFIG_PPC_ISERIES) := vmlinux defaultimage-$(CONFIG_PPC_ISERIES) := vmlinux
defaultimage-$(CONFIG_PPC_PSERIES) := zImage defaultimage-$(CONFIG_PPC_PSERIES) := zImage
KBUILD_IMAGE := $(defaultimage-y) KBUILD_IMAGE := $(defaultimage-y)
...@@ -154,23 +154,13 @@ BOOT_TARGETS = zImage zImage.initrd znetboot znetboot.initrd vmlinux.sm ...@@ -154,23 +154,13 @@ BOOT_TARGETS = zImage zImage.initrd znetboot znetboot.initrd vmlinux.sm
.PHONY: $(BOOT_TARGETS) .PHONY: $(BOOT_TARGETS)
boot := arch/$(OLDARCH)/boot boot := arch/$(ARCH)/boot
# urk
ifeq ($(CONFIG_PPC64),y)
$(BOOT_TARGETS): vmlinux $(BOOT_TARGETS): vmlinux
$(Q)$(MAKE) ARCH=ppc64 $(build)=$(boot) $(patsubst %,$(boot)/%,$@) $(Q)$(MAKE) ARCH=ppc64 $(build)=$(boot) $(patsubst %,$(boot)/%,$@)
else
$(BOOT_TARGETS): vmlinux
$(Q)$(MAKE) ARCH=ppc $(build)=$(boot) $@
endif
uImage: vmlinux
$(Q)$(MAKE) ARCH=$(OLDARCH) $(build)=$(boot)/images $(boot)/images/$@
define archhelp define archhelp
@echo '* zImage - Compressed kernel image (arch/$(ARCH)/boot/images/zImage.*)' @echo '* zImage - Compressed kernel image (arch/$(ARCH)/boot/zImage.*)'
@echo ' uImage - Create a bootable image for U-Boot / PPCBoot'
@echo ' install - Install kernel using' @echo ' install - Install kernel using'
@echo ' (your) ~/bin/installkernel or' @echo ' (your) ~/bin/installkernel or'
@echo ' (distribution) /sbin/installkernel or' @echo ' (distribution) /sbin/installkernel or'
...@@ -180,7 +170,6 @@ endef ...@@ -180,7 +170,6 @@ endef
archclean: archclean:
$(Q)$(MAKE) $(clean)=$(boot) $(Q)$(MAKE) $(clean)=$(boot)
# Temporary hack until we have migrated to asm-powerpc
$(Q)rm -rf arch/$(ARCH)/include $(Q)rm -rf arch/$(ARCH)/include
archprepare: checkbin archprepare: checkbin
......
...@@ -22,7 +22,8 @@ ...@@ -22,7 +22,8 @@
HOSTCC := gcc HOSTCC := gcc
BOOTCFLAGS := $(HOSTCFLAGS) -fno-builtin -nostdinc -isystem $(shell $(CROSS32CC) -print-file-name=include) -fPIC BOOTCFLAGS := $(HOSTCFLAGS) -fno-builtin -nostdinc -isystem \
$(shell $(CROSS32CC) -print-file-name=include) -fPIC
BOOTAFLAGS := -D__ASSEMBLY__ $(BOOTCFLAGS) -traditional -nostdinc BOOTAFLAGS := -D__ASSEMBLY__ $(BOOTCFLAGS) -traditional -nostdinc
BOOTLFLAGS := -T $(srctree)/$(src)/zImage.lds BOOTLFLAGS := -T $(srctree)/$(src)/zImage.lds
OBJCOPYFLAGS := contents,alloc,load,readonly,data OBJCOPYFLAGS := contents,alloc,load,readonly,data
...@@ -98,7 +99,7 @@ quiet_cmd_ramdisk = RAMDISK $@ ...@@ -98,7 +99,7 @@ quiet_cmd_ramdisk = RAMDISK $@
cmd_ramdisk = $(obj)/addRamDisk $(obj)/ramdisk.image.gz $< $@ cmd_ramdisk = $(obj)/addRamDisk $(obj)/ramdisk.image.gz $< $@
quiet_cmd_stripvm = STRIP $@ quiet_cmd_stripvm = STRIP $@
cmd_stripvm = $(STRIP) -s $< -o $@ cmd_stripvm = $(STRIP) -s -R .comment $< -o $@
vmlinux.strip: vmlinux vmlinux.strip: vmlinux
$(call if_changed,stripvm) $(call if_changed,stripvm)
......
...@@ -42,6 +42,8 @@ static struct addr_range vmlinux; ...@@ -42,6 +42,8 @@ static struct addr_range vmlinux;
static struct addr_range vmlinuz; static struct addr_range vmlinuz;
static struct addr_range initrd; static struct addr_range initrd;
static unsigned long elfoffset;
static char scratch[46912]; /* scratch space for gunzip, from zlib_inflate_workspacesize() */ static char scratch[46912]; /* scratch space for gunzip, from zlib_inflate_workspacesize() */
static char elfheader[256]; static char elfheader[256];
...@@ -131,13 +133,70 @@ static unsigned long try_claim(unsigned long size) ...@@ -131,13 +133,70 @@ static unsigned long try_claim(unsigned long size)
return addr; return addr;
} }
static int is_elf64(void *hdr)
{
Elf64_Ehdr *elf64 = hdr;
Elf64_Phdr *elf64ph;
unsigned int i;
if (!(elf64->e_ident[EI_MAG0] == ELFMAG0 &&
elf64->e_ident[EI_MAG1] == ELFMAG1 &&
elf64->e_ident[EI_MAG2] == ELFMAG2 &&
elf64->e_ident[EI_MAG3] == ELFMAG3 &&
elf64->e_ident[EI_CLASS] == ELFCLASS64 &&
elf64->e_ident[EI_DATA] == ELFDATA2MSB &&
elf64->e_type == ET_EXEC &&
elf64->e_machine == EM_PPC64))
return 0;
elf64ph = (Elf64_Phdr *)((unsigned long)elf64 +
(unsigned long)elf64->e_phoff);
for (i = 0; i < (unsigned int)elf64->e_phnum; i++, elf64ph++)
if (elf64ph->p_type == PT_LOAD && elf64ph->p_offset != 0)
break;
if (i >= (unsigned int)elf64->e_phnum)
return 0;
elfoffset = (unsigned long)elf64ph->p_offset;
vmlinux.size = (unsigned long)elf64ph->p_filesz + elfoffset;
vmlinux.memsize = (unsigned long)elf64ph->p_memsz + elfoffset;
return 1;
}
static int is_elf32(void *hdr)
{
Elf32_Ehdr *elf32 = hdr;
Elf32_Phdr *elf32ph;
unsigned int i;
if (!(elf32->e_ident[EI_MAG0] == ELFMAG0 &&
elf32->e_ident[EI_MAG1] == ELFMAG1 &&
elf32->e_ident[EI_MAG2] == ELFMAG2 &&
elf32->e_ident[EI_MAG3] == ELFMAG3 &&
elf32->e_ident[EI_CLASS] == ELFCLASS32 &&
elf32->e_ident[EI_DATA] == ELFDATA2MSB &&
elf32->e_type == ET_EXEC &&
elf32->e_machine == EM_PPC))
return 0;
elf32 = (Elf32_Ehdr *)elfheader;
elf32ph = (Elf32_Phdr *) ((unsigned long)elf32 + elf32->e_phoff);
for (i = 0; i < elf32->e_phnum; i++, elf32ph++)
if (elf32ph->p_type == PT_LOAD && elf32ph->p_offset != 0)
break;
if (i >= elf32->e_phnum)
return 0;
elfoffset = elf32ph->p_offset;
vmlinux.size = elf32ph->p_filesz + elf32ph->p_offset;
vmlinux.memsize = elf32ph->p_memsz + elf32ph->p_offset;
return 1;
}
void start(unsigned long a1, unsigned long a2, void *promptr, void *sp) void start(unsigned long a1, unsigned long a2, void *promptr, void *sp)
{ {
unsigned long i;
int len; int len;
kernel_entry_t kernel_entry; kernel_entry_t kernel_entry;
Elf64_Ehdr *elf64;
Elf64_Phdr *elf64ph;
memset(__bss_start, 0, _end - __bss_start); memset(__bss_start, 0, _end - __bss_start);
...@@ -153,6 +212,22 @@ void start(unsigned long a1, unsigned long a2, void *promptr, void *sp) ...@@ -153,6 +212,22 @@ void start(unsigned long a1, unsigned long a2, void *promptr, void *sp)
printf("\n\rzImage starting: loaded at 0x%p (sp: 0x%p)\n\r", _start, sp); printf("\n\rzImage starting: loaded at 0x%p (sp: 0x%p)\n\r", _start, sp);
vmlinuz.addr = (unsigned long)_vmlinux_start;
vmlinuz.size = (unsigned long)(_vmlinux_end - _vmlinux_start);
/* gunzip the ELF header of the kernel */
if (*(unsigned short *)vmlinuz.addr == 0x1f8b) {
len = vmlinuz.size;
gunzip(elfheader, sizeof(elfheader),
(unsigned char *)vmlinuz.addr, &len);
} else
memcpy(elfheader, (const void *)vmlinuz.addr, sizeof(elfheader));
if (!is_elf64(elfheader) && !is_elf32(elfheader)) {
printf("Error: not a valid PPC32 or PPC64 ELF file!\n\r");
exit();
}
/* /*
* The first available claim_base must be above the end of the * The first available claim_base must be above the end of the
* the loaded kernel wrapper file (_start to _end includes the * the loaded kernel wrapper file (_start to _end includes the
...@@ -172,46 +247,11 @@ void start(unsigned long a1, unsigned long a2, void *promptr, void *sp) ...@@ -172,46 +247,11 @@ void start(unsigned long a1, unsigned long a2, void *promptr, void *sp)
claim_base = PROG_START; claim_base = PROG_START;
#endif #endif
vmlinuz.addr = (unsigned long)_vmlinux_start;
vmlinuz.size = (unsigned long)(_vmlinux_end - _vmlinux_start);
/* gunzip the ELF header of the kernel */
if (*(unsigned short *)vmlinuz.addr == 0x1f8b) {
len = vmlinuz.size;
gunzip(elfheader, sizeof(elfheader),
(unsigned char *)vmlinuz.addr, &len);
} else
memcpy(elfheader, (const void *)vmlinuz.addr, sizeof(elfheader));
elf64 = (Elf64_Ehdr *)elfheader;
if ( elf64->e_ident[EI_MAG0] != ELFMAG0 ||
elf64->e_ident[EI_MAG1] != ELFMAG1 ||
elf64->e_ident[EI_MAG2] != ELFMAG2 ||
elf64->e_ident[EI_MAG3] != ELFMAG3 ||
elf64->e_ident[EI_CLASS] != ELFCLASS64 ||
elf64->e_ident[EI_DATA] != ELFDATA2MSB ||
elf64->e_type != ET_EXEC ||
elf64->e_machine != EM_PPC64 )
{
printf("Error: not a valid PPC64 ELF file!\n\r");
exit();
}
elf64ph = (Elf64_Phdr *)((unsigned long)elf64 +
(unsigned long)elf64->e_phoff);
for(i=0; i < (unsigned int)elf64->e_phnum ;i++,elf64ph++) {
if (elf64ph->p_type == PT_LOAD && elf64ph->p_offset != 0)
break;
}
vmlinux.size = (unsigned long)elf64ph->p_filesz +
(unsigned long)elf64ph->p_offset;
/* We need to claim the memsize plus the file offset since gzip /* We need to claim the memsize plus the file offset since gzip
* will expand the header (file offset), then the kernel, then * will expand the header (file offset), then the kernel, then
* possible rubbish we don't care about. But the kernel bss must * possible rubbish we don't care about. But the kernel bss must
* be claimed (it will be zero'd by the kernel itself) * be claimed (it will be zero'd by the kernel itself)
*/ */
vmlinux.memsize = (unsigned long)elf64ph->p_memsz +
(unsigned long)elf64ph->p_offset;
printf("Allocating 0x%lx bytes for kernel ...\n\r", vmlinux.memsize); printf("Allocating 0x%lx bytes for kernel ...\n\r", vmlinux.memsize);
vmlinux.addr = try_claim(vmlinux.memsize); vmlinux.addr = try_claim(vmlinux.memsize);
if (vmlinux.addr == 0) { if (vmlinux.addr == 0) {
...@@ -254,9 +294,9 @@ void start(unsigned long a1, unsigned long a2, void *promptr, void *sp) ...@@ -254,9 +294,9 @@ void start(unsigned long a1, unsigned long a2, void *promptr, void *sp)
/* Skip over the ELF header */ /* Skip over the ELF header */
#ifdef DEBUG #ifdef DEBUG
printf("... skipping 0x%lx bytes of ELF header\n\r", printf("... skipping 0x%lx bytes of ELF header\n\r",
(unsigned long)elf64ph->p_offset); elfoffset);
#endif #endif
vmlinux.addr += (unsigned long)elf64ph->p_offset; vmlinux.addr += elfoffset;
flush_cache((void *)vmlinux.addr, vmlinux.size); flush_cache((void *)vmlinux.addr, vmlinux.size);
...@@ -272,7 +312,7 @@ void start(unsigned long a1, unsigned long a2, void *promptr, void *sp) ...@@ -272,7 +312,7 @@ void start(unsigned long a1, unsigned long a2, void *promptr, void *sp)
(unsigned long)prom, NULL); (unsigned long)prom, NULL);
#endif #endif
kernel_entry( a1, a2, prom, NULL ); kernel_entry(a1, a2, prom, NULL);
printf("Error: Linux kernel returned to zImage bootloader!\n\r"); printf("Error: Linux kernel returned to zImage bootloader!\n\r");
......
# #
# Automatically generated make config: don't edit # Automatically generated make config: don't edit
# Linux kernel version: 2.6.14-rc4 # Linux kernel version: 2.6.15-rc1
# Thu Oct 20 08:29:10 2005 # Tue Nov 15 14:36:20 2005
# #
CONFIG_PPC64=y
CONFIG_64BIT=y CONFIG_64BIT=y
CONFIG_PPC_MERGE=y
CONFIG_MMU=y CONFIG_MMU=y
CONFIG_GENERIC_HARDIRQS=y
CONFIG_RWSEM_XCHGADD_ALGORITHM=y CONFIG_RWSEM_XCHGADD_ALGORITHM=y
CONFIG_GENERIC_CALIBRATE_DELAY=y CONFIG_GENERIC_CALIBRATE_DELAY=y
CONFIG_GENERIC_ISA_DMA=y CONFIG_PPC=y
CONFIG_EARLY_PRINTK=y CONFIG_EARLY_PRINTK=y
CONFIG_COMPAT=y CONFIG_COMPAT=y
CONFIG_SYSVIPC_COMPAT=y
CONFIG_SCHED_NO_NO_OMIT_FRAME_POINTER=y CONFIG_SCHED_NO_NO_OMIT_FRAME_POINTER=y
CONFIG_ARCH_MAY_HAVE_PC_FDC=y CONFIG_ARCH_MAY_HAVE_PC_FDC=y
CONFIG_FORCE_MAX_ZONEORDER=13
#
# Processor support
#
# CONFIG_POWER4_ONLY is not set
CONFIG_POWER3=y
CONFIG_POWER4=y
CONFIG_PPC_FPU=y
CONFIG_ALTIVEC=y
CONFIG_PPC_STD_MMU=y
CONFIG_SMP=y
CONFIG_NR_CPUS=4
# #
# Code maturity level options # Code maturity level options
...@@ -66,31 +81,69 @@ CONFIG_OBSOLETE_MODPARM=y ...@@ -66,31 +81,69 @@ CONFIG_OBSOLETE_MODPARM=y
# CONFIG_MODULE_SRCVERSION_ALL is not set # CONFIG_MODULE_SRCVERSION_ALL is not set
# CONFIG_KMOD is not set # CONFIG_KMOD is not set
CONFIG_STOP_MACHINE=y CONFIG_STOP_MACHINE=y
CONFIG_SYSVIPC_COMPAT=y
#
# Block layer
#
#
# IO Schedulers
#
CONFIG_IOSCHED_NOOP=y
CONFIG_IOSCHED_AS=y
CONFIG_IOSCHED_DEADLINE=y
CONFIG_IOSCHED_CFQ=y
CONFIG_DEFAULT_AS=y
# CONFIG_DEFAULT_DEADLINE is not set
# CONFIG_DEFAULT_CFQ is not set
# CONFIG_DEFAULT_NOOP is not set
CONFIG_DEFAULT_IOSCHED="anticipatory"
# #
# Platform support # Platform support
# #
# CONFIG_PPC_ISERIES is not set
CONFIG_PPC_MULTIPLATFORM=y CONFIG_PPC_MULTIPLATFORM=y
# CONFIG_PPC_ISERIES is not set
# CONFIG_EMBEDDED6xx is not set
# CONFIG_APUS is not set
# CONFIG_PPC_PSERIES is not set # CONFIG_PPC_PSERIES is not set
CONFIG_PPC_BPA=y
# CONFIG_PPC_PMAC is not set # CONFIG_PPC_PMAC is not set
# CONFIG_PPC_MAPLE is not set # CONFIG_PPC_MAPLE is not set
CONFIG_PPC=y CONFIG_PPC_CELL=y
CONFIG_PPC64=y
CONFIG_PPC_OF=y CONFIG_PPC_OF=y
CONFIG_BPA_IIC=y
CONFIG_ALTIVEC=y
CONFIG_KEXEC=y
# CONFIG_U3_DART is not set # CONFIG_U3_DART is not set
# CONFIG_BOOTX_TEXT is not set CONFIG_PPC_RTAS=y
# CONFIG_POWER4_ONLY is not set # CONFIG_RTAS_ERROR_LOGGING is not set
CONFIG_RTAS_PROC=y
CONFIG_RTAS_FLASH=y
CONFIG_MMIO_NVRAM=y
CONFIG_CELL_IIC=y
# CONFIG_PPC_MPC106 is not set
# CONFIG_GENERIC_TBSYNC is not set
# CONFIG_CPU_FREQ is not set
# CONFIG_WANT_EARLY_SERIAL is not set
#
# Kernel options
#
# CONFIG_HZ_100 is not set
CONFIG_HZ_250=y
# CONFIG_HZ_1000 is not set
CONFIG_HZ=250
CONFIG_PREEMPT_NONE=y
# CONFIG_PREEMPT_VOLUNTARY is not set
# CONFIG_PREEMPT is not set
CONFIG_PREEMPT_BKL=y
CONFIG_BINFMT_ELF=y
# CONFIG_BINFMT_MISC is not set
CONFIG_FORCE_MAX_ZONEORDER=13
# CONFIG_IOMMU_VMERGE is not set # CONFIG_IOMMU_VMERGE is not set
CONFIG_SMP=y CONFIG_KEXEC=y
CONFIG_NR_CPUS=4 CONFIG_IRQ_ALL_CPUS=y
# CONFIG_NUMA is not set
CONFIG_ARCH_SELECT_MEMORY_MODEL=y CONFIG_ARCH_SELECT_MEMORY_MODEL=y
CONFIG_ARCH_FLATMEM_ENABLE=y CONFIG_ARCH_FLATMEM_ENABLE=y
CONFIG_ARCH_SPARSEMEM_ENABLE=y
CONFIG_SELECT_MEMORY_MODEL=y CONFIG_SELECT_MEMORY_MODEL=y
CONFIG_FLATMEM_MANUAL=y CONFIG_FLATMEM_MANUAL=y
# CONFIG_DISCONTIGMEM_MANUAL is not set # CONFIG_DISCONTIGMEM_MANUAL is not set
...@@ -98,30 +151,21 @@ CONFIG_FLATMEM_MANUAL=y ...@@ -98,30 +151,21 @@ CONFIG_FLATMEM_MANUAL=y
CONFIG_FLATMEM=y CONFIG_FLATMEM=y
CONFIG_FLAT_NODE_MEM_MAP=y CONFIG_FLAT_NODE_MEM_MAP=y
# CONFIG_SPARSEMEM_STATIC is not set # CONFIG_SPARSEMEM_STATIC is not set
# CONFIG_NUMA is not set CONFIG_SPLIT_PTLOCK_CPUS=4096
# CONFIG_PPC_64K_PAGES is not set
CONFIG_SCHED_SMT=y CONFIG_SCHED_SMT=y
CONFIG_PREEMPT_NONE=y
# CONFIG_PREEMPT_VOLUNTARY is not set
# CONFIG_PREEMPT is not set
CONFIG_PREEMPT_BKL=y
# CONFIG_HZ_100 is not set
CONFIG_HZ_250=y
# CONFIG_HZ_1000 is not set
CONFIG_HZ=250
CONFIG_GENERIC_HARDIRQS=y
CONFIG_PPC_RTAS=y
CONFIG_RTAS_PROC=y
CONFIG_RTAS_FLASH=y
CONFIG_SECCOMP=y
CONFIG_BINFMT_ELF=y
# CONFIG_BINFMT_MISC is not set
CONFIG_PROC_DEVICETREE=y CONFIG_PROC_DEVICETREE=y
# CONFIG_CMDLINE_BOOL is not set # CONFIG_CMDLINE_BOOL is not set
# CONFIG_PM is not set
CONFIG_SECCOMP=y
CONFIG_ISA_DMA_API=y CONFIG_ISA_DMA_API=y
# #
# Bus Options # Bus options
# #
CONFIG_GENERIC_ISA_DMA=y
# CONFIG_PPC_I8259 is not set
# CONFIG_PPC_INDIRECT_PCI is not set
CONFIG_PCI=y CONFIG_PCI=y
CONFIG_PCI_DOMAINS=y CONFIG_PCI_DOMAINS=y
CONFIG_PCI_LEGACY_PROC=y CONFIG_PCI_LEGACY_PROC=y
...@@ -136,6 +180,7 @@ CONFIG_PCI_LEGACY_PROC=y ...@@ -136,6 +180,7 @@ CONFIG_PCI_LEGACY_PROC=y
# PCI Hotplug Support # PCI Hotplug Support
# #
# CONFIG_HOTPLUG_PCI is not set # CONFIG_HOTPLUG_PCI is not set
CONFIG_KERNEL_START=0xc000000000000000
# #
# Networking # Networking
...@@ -183,6 +228,10 @@ CONFIG_INET6_TUNNEL=m ...@@ -183,6 +228,10 @@ CONFIG_INET6_TUNNEL=m
CONFIG_IPV6_TUNNEL=m CONFIG_IPV6_TUNNEL=m
CONFIG_NETFILTER=y CONFIG_NETFILTER=y
# CONFIG_NETFILTER_DEBUG is not set # CONFIG_NETFILTER_DEBUG is not set
#
# Core Netfilter Configuration
#
# CONFIG_NETFILTER_NETLINK is not set # CONFIG_NETFILTER_NETLINK is not set
# #
...@@ -284,6 +333,10 @@ CONFIG_IP_NF_ARP_MANGLE=m ...@@ -284,6 +333,10 @@ CONFIG_IP_NF_ARP_MANGLE=m
# CONFIG_NET_DIVERT is not set # CONFIG_NET_DIVERT is not set
# CONFIG_ECONET is not set # CONFIG_ECONET is not set
# CONFIG_WAN_ROUTER is not set # CONFIG_WAN_ROUTER is not set
#
# QoS and/or fair queueing
#
# CONFIG_NET_SCHED is not set # CONFIG_NET_SCHED is not set
CONFIG_NET_CLS_ROUTE=y CONFIG_NET_CLS_ROUTE=y
...@@ -345,14 +398,6 @@ CONFIG_BLK_DEV_RAM_COUNT=16 ...@@ -345,14 +398,6 @@ CONFIG_BLK_DEV_RAM_COUNT=16
CONFIG_BLK_DEV_RAM_SIZE=131072 CONFIG_BLK_DEV_RAM_SIZE=131072
CONFIG_BLK_DEV_INITRD=y CONFIG_BLK_DEV_INITRD=y
# CONFIG_CDROM_PKTCDVD is not set # CONFIG_CDROM_PKTCDVD is not set
#
# IO Schedulers
#
CONFIG_IOSCHED_NOOP=y
CONFIG_IOSCHED_AS=y
CONFIG_IOSCHED_DEADLINE=y
CONFIG_IOSCHED_CFQ=y
# CONFIG_ATA_OVER_ETH is not set # CONFIG_ATA_OVER_ETH is not set
# #
...@@ -442,6 +487,7 @@ CONFIG_IDEDMA_AUTO=y ...@@ -442,6 +487,7 @@ CONFIG_IDEDMA_AUTO=y
# #
# Macintosh device drivers # Macintosh device drivers
# #
# CONFIG_WINDFARM is not set
# #
# Network device support # Network device support
...@@ -495,7 +541,6 @@ CONFIG_SKGE=m ...@@ -495,7 +541,6 @@ CONFIG_SKGE=m
# CONFIG_SK98LIN is not set # CONFIG_SK98LIN is not set
# CONFIG_TIGON3 is not set # CONFIG_TIGON3 is not set
# CONFIG_BNX2 is not set # CONFIG_BNX2 is not set
# CONFIG_SPIDER_NET is not set
# CONFIG_MV643XX_ETH is not set # CONFIG_MV643XX_ETH is not set
# #
...@@ -625,7 +670,7 @@ CONFIG_WATCHDOG=y ...@@ -625,7 +670,7 @@ CONFIG_WATCHDOG=y
# Watchdog Device Drivers # Watchdog Device Drivers
# #
# CONFIG_SOFT_WATCHDOG is not set # CONFIG_SOFT_WATCHDOG is not set
CONFIG_WATCHDOG_RTAS=y # CONFIG_WATCHDOG_RTAS is not set
# #
# PCI-based Watchdog Cards # PCI-based Watchdog Cards
...@@ -633,6 +678,8 @@ CONFIG_WATCHDOG_RTAS=y ...@@ -633,6 +678,8 @@ CONFIG_WATCHDOG_RTAS=y
# CONFIG_PCIPCWATCHDOG is not set # CONFIG_PCIPCWATCHDOG is not set
# CONFIG_WDTPCI is not set # CONFIG_WDTPCI is not set
# CONFIG_RTC is not set # CONFIG_RTC is not set
CONFIG_GEN_RTC=y
# CONFIG_GEN_RTC_X is not set
# CONFIG_DTLK is not set # CONFIG_DTLK is not set
# CONFIG_R3964 is not set # CONFIG_R3964 is not set
# CONFIG_APPLICOM is not set # CONFIG_APPLICOM is not set
...@@ -649,6 +696,7 @@ CONFIG_WATCHDOG_RTAS=y ...@@ -649,6 +696,7 @@ CONFIG_WATCHDOG_RTAS=y
# TPM devices # TPM devices
# #
# CONFIG_TCG_TPM is not set # CONFIG_TCG_TPM is not set
# CONFIG_TELCLOCK is not set
# #
# I2C support # I2C support
...@@ -699,6 +747,7 @@ CONFIG_I2C_ALGOBIT=y ...@@ -699,6 +747,7 @@ CONFIG_I2C_ALGOBIT=y
# CONFIG_SENSORS_PCF8591 is not set # CONFIG_SENSORS_PCF8591 is not set
# CONFIG_SENSORS_RTC8564 is not set # CONFIG_SENSORS_RTC8564 is not set
# CONFIG_SENSORS_MAX6875 is not set # CONFIG_SENSORS_MAX6875 is not set
# CONFIG_RTC_X1205_I2C is not set
# CONFIG_I2C_DEBUG_CORE is not set # CONFIG_I2C_DEBUG_CORE is not set
# CONFIG_I2C_DEBUG_ALGO is not set # CONFIG_I2C_DEBUG_ALGO is not set
# CONFIG_I2C_DEBUG_BUS is not set # CONFIG_I2C_DEBUG_BUS is not set
...@@ -756,6 +805,10 @@ CONFIG_USB_ARCH_HAS_HCD=y ...@@ -756,6 +805,10 @@ CONFIG_USB_ARCH_HAS_HCD=y
CONFIG_USB_ARCH_HAS_OHCI=y CONFIG_USB_ARCH_HAS_OHCI=y
# CONFIG_USB is not set # CONFIG_USB is not set
#
# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support'
#
# #
# USB Gadget Support # USB Gadget Support
# #
...@@ -943,9 +996,24 @@ CONFIG_NLS_ISO8859_15=m ...@@ -943,9 +996,24 @@ CONFIG_NLS_ISO8859_15=m
# CONFIG_NLS_UTF8 is not set # CONFIG_NLS_UTF8 is not set
# #
# Profiling support # Library routines
#
# CONFIG_CRC_CCITT is not set
# CONFIG_CRC16 is not set
CONFIG_CRC32=y
# CONFIG_LIBCRC32C is not set
CONFIG_ZLIB_INFLATE=m
CONFIG_ZLIB_DEFLATE=m
CONFIG_TEXTSEARCH=y
CONFIG_TEXTSEARCH_KMP=m
CONFIG_TEXTSEARCH_BM=m
CONFIG_TEXTSEARCH_FSM=m
#
# Instrumentation Support
# #
# CONFIG_PROFILING is not set # CONFIG_PROFILING is not set
# CONFIG_KPROBES is not set
# #
# Kernel hacking # Kernel hacking
...@@ -962,13 +1030,14 @@ CONFIG_DEBUG_SPINLOCK_SLEEP=y ...@@ -962,13 +1030,14 @@ CONFIG_DEBUG_SPINLOCK_SLEEP=y
# CONFIG_DEBUG_KOBJECT is not set # CONFIG_DEBUG_KOBJECT is not set
# CONFIG_DEBUG_INFO is not set # CONFIG_DEBUG_INFO is not set
CONFIG_DEBUG_FS=y CONFIG_DEBUG_FS=y
# CONFIG_DEBUG_VM is not set
# CONFIG_RCU_TORTURE_TEST is not set
# CONFIG_DEBUG_STACKOVERFLOW is not set # CONFIG_DEBUG_STACKOVERFLOW is not set
# CONFIG_KPROBES is not set
# CONFIG_DEBUG_STACK_USAGE is not set # CONFIG_DEBUG_STACK_USAGE is not set
CONFIG_DEBUGGER=y CONFIG_DEBUGGER=y
# CONFIG_XMON is not set # CONFIG_XMON is not set
# CONFIG_PPCDBG is not set
CONFIG_IRQSTACKS=y CONFIG_IRQSTACKS=y
# CONFIG_BOOTX_TEXT is not set
# #
# Security options # Security options
...@@ -1008,17 +1077,3 @@ CONFIG_CRYPTO_DEFLATE=m ...@@ -1008,17 +1077,3 @@ CONFIG_CRYPTO_DEFLATE=m
# #
# Hardware crypto devices # Hardware crypto devices
# #
#
# Library routines
#
# CONFIG_CRC_CCITT is not set
# CONFIG_CRC16 is not set
CONFIG_CRC32=y
# CONFIG_LIBCRC32C is not set
CONFIG_ZLIB_INFLATE=m
CONFIG_ZLIB_DEFLATE=m
CONFIG_TEXTSEARCH=y
CONFIG_TEXTSEARCH_KMP=m
CONFIG_TEXTSEARCH_BM=m
CONFIG_TEXTSEARCH_FSM=m
# #
# Automatically generated make config: don't edit # Automatically generated make config: don't edit
# Linux kernel version: 2.6.14 # Linux kernel version: 2.6.15-rc1
# Mon Nov 7 13:37:59 2005 # Tue Nov 15 14:39:20 2005
# #
CONFIG_PPC64=y CONFIG_PPC64=y
CONFIG_64BIT=y CONFIG_64BIT=y
...@@ -82,6 +82,23 @@ CONFIG_MODULE_SRCVERSION_ALL=y ...@@ -82,6 +82,23 @@ CONFIG_MODULE_SRCVERSION_ALL=y
CONFIG_KMOD=y CONFIG_KMOD=y
CONFIG_STOP_MACHINE=y CONFIG_STOP_MACHINE=y
#
# Block layer
#
#
# IO Schedulers
#
CONFIG_IOSCHED_NOOP=y
CONFIG_IOSCHED_AS=y
CONFIG_IOSCHED_DEADLINE=y
CONFIG_IOSCHED_CFQ=y
CONFIG_DEFAULT_AS=y
# CONFIG_DEFAULT_DEADLINE is not set
# CONFIG_DEFAULT_CFQ is not set
# CONFIG_DEFAULT_NOOP is not set
CONFIG_DEFAULT_IOSCHED="anticipatory"
# #
# Platform support # Platform support
# #
...@@ -137,6 +154,7 @@ CONFIG_IRQ_ALL_CPUS=y ...@@ -137,6 +154,7 @@ CONFIG_IRQ_ALL_CPUS=y
# CONFIG_NUMA is not set # CONFIG_NUMA is not set
CONFIG_ARCH_SELECT_MEMORY_MODEL=y CONFIG_ARCH_SELECT_MEMORY_MODEL=y
CONFIG_ARCH_FLATMEM_ENABLE=y CONFIG_ARCH_FLATMEM_ENABLE=y
CONFIG_ARCH_SPARSEMEM_ENABLE=y
CONFIG_SELECT_MEMORY_MODEL=y CONFIG_SELECT_MEMORY_MODEL=y
CONFIG_FLATMEM_MANUAL=y CONFIG_FLATMEM_MANUAL=y
# CONFIG_DISCONTIGMEM_MANUAL is not set # CONFIG_DISCONTIGMEM_MANUAL is not set
...@@ -144,7 +162,7 @@ CONFIG_FLATMEM_MANUAL=y ...@@ -144,7 +162,7 @@ CONFIG_FLATMEM_MANUAL=y
CONFIG_FLATMEM=y CONFIG_FLATMEM=y
CONFIG_FLAT_NODE_MEM_MAP=y CONFIG_FLAT_NODE_MEM_MAP=y
# CONFIG_SPARSEMEM_STATIC is not set # CONFIG_SPARSEMEM_STATIC is not set
CONFIG_SPLIT_PTLOCK_CPUS=4 CONFIG_SPLIT_PTLOCK_CPUS=4096
# CONFIG_PPC_64K_PAGES is not set # CONFIG_PPC_64K_PAGES is not set
# CONFIG_SCHED_SMT is not set # CONFIG_SCHED_SMT is not set
CONFIG_PROC_DEVICETREE=y CONFIG_PROC_DEVICETREE=y
...@@ -215,6 +233,10 @@ CONFIG_TCP_CONG_BIC=y ...@@ -215,6 +233,10 @@ CONFIG_TCP_CONG_BIC=y
# CONFIG_IPV6 is not set # CONFIG_IPV6 is not set
CONFIG_NETFILTER=y CONFIG_NETFILTER=y
# CONFIG_NETFILTER_DEBUG is not set # CONFIG_NETFILTER_DEBUG is not set
#
# Core Netfilter Configuration
#
# CONFIG_NETFILTER_NETLINK is not set # CONFIG_NETFILTER_NETLINK is not set
# #
...@@ -382,19 +404,6 @@ CONFIG_BLK_DEV_INITRD=y ...@@ -382,19 +404,6 @@ CONFIG_BLK_DEV_INITRD=y
CONFIG_CDROM_PKTCDVD=m CONFIG_CDROM_PKTCDVD=m
CONFIG_CDROM_PKTCDVD_BUFFERS=8 CONFIG_CDROM_PKTCDVD_BUFFERS=8
# CONFIG_CDROM_PKTCDVD_WCACHE is not set # CONFIG_CDROM_PKTCDVD_WCACHE is not set
#
# IO Schedulers
#
CONFIG_IOSCHED_NOOP=y
CONFIG_IOSCHED_AS=y
CONFIG_IOSCHED_DEADLINE=y
CONFIG_IOSCHED_CFQ=y
CONFIG_DEFAULT_AS=y
# CONFIG_DEFAULT_DEADLINE is not set
# CONFIG_DEFAULT_CFQ is not set
# CONFIG_DEFAULT_NOOP is not set
CONFIG_DEFAULT_IOSCHED="anticipatory"
# CONFIG_ATA_OVER_ETH is not set # CONFIG_ATA_OVER_ETH is not set
# #
...@@ -656,7 +665,6 @@ CONFIG_SUNGEM=y ...@@ -656,7 +665,6 @@ CONFIG_SUNGEM=y
# CONFIG_NET_TULIP is not set # CONFIG_NET_TULIP is not set
# CONFIG_HP100 is not set # CONFIG_HP100 is not set
# CONFIG_NET_PCI is not set # CONFIG_NET_PCI is not set
# CONFIG_FEC_8XX is not set
# #
# Ethernet (1000 Mbit) # Ethernet (1000 Mbit)
...@@ -710,6 +718,7 @@ CONFIG_PPP_ASYNC=m ...@@ -710,6 +718,7 @@ CONFIG_PPP_ASYNC=m
CONFIG_PPP_SYNC_TTY=m CONFIG_PPP_SYNC_TTY=m
CONFIG_PPP_DEFLATE=m CONFIG_PPP_DEFLATE=m
CONFIG_PPP_BSDCOMP=m CONFIG_PPP_BSDCOMP=m
# CONFIG_PPP_MPPE is not set
CONFIG_PPPOE=m CONFIG_PPPOE=m
# CONFIG_SLIP is not set # CONFIG_SLIP is not set
# CONFIG_NET_FC is not set # CONFIG_NET_FC is not set
...@@ -804,6 +813,8 @@ CONFIG_LEGACY_PTY_COUNT=256 ...@@ -804,6 +813,8 @@ CONFIG_LEGACY_PTY_COUNT=256
# #
# CONFIG_WATCHDOG is not set # CONFIG_WATCHDOG is not set
# CONFIG_RTC is not set # CONFIG_RTC is not set
CONFIG_GEN_RTC=y
# CONFIG_GEN_RTC_X is not set
# CONFIG_DTLK is not set # CONFIG_DTLK is not set
# CONFIG_R3964 is not set # CONFIG_R3964 is not set
# CONFIG_APPLICOM is not set # CONFIG_APPLICOM is not set
...@@ -917,7 +928,6 @@ CONFIG_FB=y ...@@ -917,7 +928,6 @@ CONFIG_FB=y
CONFIG_FB_CFB_FILLRECT=y CONFIG_FB_CFB_FILLRECT=y
CONFIG_FB_CFB_COPYAREA=y CONFIG_FB_CFB_COPYAREA=y
CONFIG_FB_CFB_IMAGEBLIT=y CONFIG_FB_CFB_IMAGEBLIT=y
CONFIG_FB_SOFT_CURSOR=y
CONFIG_FB_MACMODES=y CONFIG_FB_MACMODES=y
CONFIG_FB_MODE_HELPERS=y CONFIG_FB_MODE_HELPERS=y
CONFIG_FB_TILEBLITTING=y CONFIG_FB_TILEBLITTING=y
...@@ -932,6 +942,7 @@ CONFIG_FB_OF=y ...@@ -932,6 +942,7 @@ CONFIG_FB_OF=y
# CONFIG_FB_ASILIANT is not set # CONFIG_FB_ASILIANT is not set
# CONFIG_FB_IMSTT is not set # CONFIG_FB_IMSTT is not set
# CONFIG_FB_VGA16 is not set # CONFIG_FB_VGA16 is not set
# CONFIG_FB_S1D13XXX is not set
CONFIG_FB_NVIDIA=y CONFIG_FB_NVIDIA=y
CONFIG_FB_NVIDIA_I2C=y CONFIG_FB_NVIDIA_I2C=y
# CONFIG_FB_RIVA is not set # CONFIG_FB_RIVA is not set
...@@ -950,7 +961,6 @@ CONFIG_FB_RADEON_I2C=y ...@@ -950,7 +961,6 @@ CONFIG_FB_RADEON_I2C=y
# CONFIG_FB_VOODOO1 is not set # CONFIG_FB_VOODOO1 is not set
# CONFIG_FB_CYBLA is not set # CONFIG_FB_CYBLA is not set
# CONFIG_FB_TRIDENT is not set # CONFIG_FB_TRIDENT is not set
# CONFIG_FB_S1D13XXX is not set
# CONFIG_FB_VIRTUAL is not set # CONFIG_FB_VIRTUAL is not set
# #
...@@ -959,6 +969,7 @@ CONFIG_FB_RADEON_I2C=y ...@@ -959,6 +969,7 @@ CONFIG_FB_RADEON_I2C=y
# CONFIG_VGA_CONSOLE is not set # CONFIG_VGA_CONSOLE is not set
CONFIG_DUMMY_CONSOLE=y CONFIG_DUMMY_CONSOLE=y
CONFIG_FRAMEBUFFER_CONSOLE=y CONFIG_FRAMEBUFFER_CONSOLE=y
# CONFIG_FRAMEBUFFER_CONSOLE_ROTATION is not set
# CONFIG_FONTS is not set # CONFIG_FONTS is not set
CONFIG_FONT_8x8=y CONFIG_FONT_8x8=y
CONFIG_FONT_8x16=y CONFIG_FONT_8x16=y
...@@ -1474,10 +1485,11 @@ CONFIG_TEXTSEARCH_BM=m ...@@ -1474,10 +1485,11 @@ CONFIG_TEXTSEARCH_BM=m
CONFIG_TEXTSEARCH_FSM=m CONFIG_TEXTSEARCH_FSM=m
# #
# Profiling support # Instrumentation Support
# #
CONFIG_PROFILING=y CONFIG_PROFILING=y
CONFIG_OPROFILE=y CONFIG_OPROFILE=y
# CONFIG_KPROBES is not set
# #
# Kernel hacking # Kernel hacking
...@@ -1497,7 +1509,6 @@ CONFIG_DEBUG_FS=y ...@@ -1497,7 +1509,6 @@ CONFIG_DEBUG_FS=y
# CONFIG_DEBUG_VM is not set # CONFIG_DEBUG_VM is not set
# CONFIG_RCU_TORTURE_TEST is not set # CONFIG_RCU_TORTURE_TEST is not set
# CONFIG_DEBUG_STACKOVERFLOW is not set # CONFIG_DEBUG_STACKOVERFLOW is not set
# CONFIG_KPROBES is not set
# CONFIG_DEBUG_STACK_USAGE is not set # CONFIG_DEBUG_STACK_USAGE is not set
# CONFIG_DEBUGGER is not set # CONFIG_DEBUGGER is not set
CONFIG_IRQSTACKS=y CONFIG_IRQSTACKS=y
......
# #
# Automatically generated make config: don't edit # Automatically generated make config: don't edit
# Linux kernel version: 2.6.14-rc4 # Linux kernel version: 2.6.15-rc1
# Thu Oct 20 08:30:56 2005 # Tue Nov 15 14:38:09 2005
# #
CONFIG_PPC64=y
CONFIG_64BIT=y CONFIG_64BIT=y
CONFIG_PPC_MERGE=y
CONFIG_MMU=y CONFIG_MMU=y
CONFIG_GENERIC_HARDIRQS=y
CONFIG_RWSEM_XCHGADD_ALGORITHM=y CONFIG_RWSEM_XCHGADD_ALGORITHM=y
CONFIG_GENERIC_CALIBRATE_DELAY=y CONFIG_GENERIC_CALIBRATE_DELAY=y
CONFIG_GENERIC_ISA_DMA=y CONFIG_PPC=y
CONFIG_EARLY_PRINTK=y CONFIG_EARLY_PRINTK=y
CONFIG_COMPAT=y CONFIG_COMPAT=y
CONFIG_SYSVIPC_COMPAT=y
CONFIG_SCHED_NO_NO_OMIT_FRAME_POINTER=y CONFIG_SCHED_NO_NO_OMIT_FRAME_POINTER=y
CONFIG_ARCH_MAY_HAVE_PC_FDC=y CONFIG_ARCH_MAY_HAVE_PC_FDC=y
CONFIG_FORCE_MAX_ZONEORDER=13
#
# Processor support
#
# CONFIG_POWER4_ONLY is not set
CONFIG_POWER3=y
CONFIG_POWER4=y
CONFIG_PPC_FPU=y
# CONFIG_ALTIVEC is not set
CONFIG_PPC_STD_MMU=y
CONFIG_SMP=y
CONFIG_NR_CPUS=32
# #
# Code maturity level options # Code maturity level options
...@@ -68,22 +83,60 @@ CONFIG_MODVERSIONS=y ...@@ -68,22 +83,60 @@ CONFIG_MODVERSIONS=y
CONFIG_MODULE_SRCVERSION_ALL=y CONFIG_MODULE_SRCVERSION_ALL=y
CONFIG_KMOD=y CONFIG_KMOD=y
CONFIG_STOP_MACHINE=y CONFIG_STOP_MACHINE=y
CONFIG_SYSVIPC_COMPAT=y
#
# Block layer
#
#
# IO Schedulers
#
CONFIG_IOSCHED_NOOP=y
CONFIG_IOSCHED_AS=y
CONFIG_IOSCHED_DEADLINE=y
CONFIG_IOSCHED_CFQ=y
CONFIG_DEFAULT_AS=y
# CONFIG_DEFAULT_DEADLINE is not set
# CONFIG_DEFAULT_CFQ is not set
# CONFIG_DEFAULT_NOOP is not set
CONFIG_DEFAULT_IOSCHED="anticipatory"
# #
# Platform support # Platform support
# #
CONFIG_PPC_ISERIES=y
# CONFIG_PPC_MULTIPLATFORM is not set # CONFIG_PPC_MULTIPLATFORM is not set
CONFIG_PPC=y CONFIG_PPC_ISERIES=y
CONFIG_PPC64=y # CONFIG_EMBEDDED6xx is not set
# CONFIG_APUS is not set
# CONFIG_PPC_RTAS is not set
# CONFIG_MMIO_NVRAM is not set
CONFIG_IBMVIO=y CONFIG_IBMVIO=y
# CONFIG_POWER4_ONLY is not set # CONFIG_PPC_MPC106 is not set
# CONFIG_GENERIC_TBSYNC is not set
# CONFIG_CPU_FREQ is not set
# CONFIG_WANT_EARLY_SERIAL is not set
#
# Kernel options
#
# CONFIG_HZ_100 is not set
CONFIG_HZ_250=y
# CONFIG_HZ_1000 is not set
CONFIG_HZ=250
CONFIG_PREEMPT_NONE=y
# CONFIG_PREEMPT_VOLUNTARY is not set
# CONFIG_PREEMPT is not set
# CONFIG_PREEMPT_BKL is not set
CONFIG_BINFMT_ELF=y
# CONFIG_BINFMT_MISC is not set
CONFIG_FORCE_MAX_ZONEORDER=13
CONFIG_IOMMU_VMERGE=y CONFIG_IOMMU_VMERGE=y
CONFIG_SMP=y CONFIG_IRQ_ALL_CPUS=y
CONFIG_NR_CPUS=32 CONFIG_LPARCFG=y
# CONFIG_NUMA is not set
CONFIG_ARCH_SELECT_MEMORY_MODEL=y CONFIG_ARCH_SELECT_MEMORY_MODEL=y
CONFIG_ARCH_FLATMEM_ENABLE=y CONFIG_ARCH_FLATMEM_ENABLE=y
CONFIG_ARCH_SPARSEMEM_ENABLE=y
CONFIG_SELECT_MEMORY_MODEL=y CONFIG_SELECT_MEMORY_MODEL=y
CONFIG_FLATMEM_MANUAL=y CONFIG_FLATMEM_MANUAL=y
# CONFIG_DISCONTIGMEM_MANUAL is not set # CONFIG_DISCONTIGMEM_MANUAL is not set
...@@ -91,26 +144,20 @@ CONFIG_FLATMEM_MANUAL=y ...@@ -91,26 +144,20 @@ CONFIG_FLATMEM_MANUAL=y
CONFIG_FLATMEM=y CONFIG_FLATMEM=y
CONFIG_FLAT_NODE_MEM_MAP=y CONFIG_FLAT_NODE_MEM_MAP=y
# CONFIG_SPARSEMEM_STATIC is not set # CONFIG_SPARSEMEM_STATIC is not set
# CONFIG_NUMA is not set CONFIG_SPLIT_PTLOCK_CPUS=4096
# CONFIG_PPC_64K_PAGES is not set
# CONFIG_SCHED_SMT is not set # CONFIG_SCHED_SMT is not set
CONFIG_PREEMPT_NONE=y CONFIG_PROC_DEVICETREE=y
# CONFIG_PREEMPT_VOLUNTARY is not set # CONFIG_PM is not set
# CONFIG_PREEMPT is not set
# CONFIG_PREEMPT_BKL is not set
# CONFIG_HZ_100 is not set
CONFIG_HZ_250=y
# CONFIG_HZ_1000 is not set
CONFIG_HZ=250
CONFIG_GENERIC_HARDIRQS=y
CONFIG_LPARCFG=y
CONFIG_SECCOMP=y CONFIG_SECCOMP=y
CONFIG_BINFMT_ELF=y
# CONFIG_BINFMT_MISC is not set
CONFIG_ISA_DMA_API=y CONFIG_ISA_DMA_API=y
# #
# Bus Options # Bus options
# #
CONFIG_GENERIC_ISA_DMA=y
# CONFIG_PPC_I8259 is not set
# CONFIG_PPC_INDIRECT_PCI is not set
CONFIG_PCI=y CONFIG_PCI=y
CONFIG_PCI_DOMAINS=y CONFIG_PCI_DOMAINS=y
CONFIG_PCI_LEGACY_PROC=y CONFIG_PCI_LEGACY_PROC=y
...@@ -125,6 +172,7 @@ CONFIG_PCI_LEGACY_PROC=y ...@@ -125,6 +172,7 @@ CONFIG_PCI_LEGACY_PROC=y
# PCI Hotplug Support # PCI Hotplug Support
# #
# CONFIG_HOTPLUG_PCI is not set # CONFIG_HOTPLUG_PCI is not set
CONFIG_KERNEL_START=0xc000000000000000
# #
# Networking # Networking
...@@ -166,6 +214,10 @@ CONFIG_TCP_CONG_BIC=y ...@@ -166,6 +214,10 @@ CONFIG_TCP_CONG_BIC=y
# CONFIG_IPV6 is not set # CONFIG_IPV6 is not set
CONFIG_NETFILTER=y CONFIG_NETFILTER=y
# CONFIG_NETFILTER_DEBUG is not set # CONFIG_NETFILTER_DEBUG is not set
#
# Core Netfilter Configuration
#
# CONFIG_NETFILTER_NETLINK is not set # CONFIG_NETFILTER_NETLINK is not set
# #
...@@ -265,6 +317,10 @@ CONFIG_LLC=y ...@@ -265,6 +317,10 @@ CONFIG_LLC=y
# CONFIG_NET_DIVERT is not set # CONFIG_NET_DIVERT is not set
# CONFIG_ECONET is not set # CONFIG_ECONET is not set
# CONFIG_WAN_ROUTER is not set # CONFIG_WAN_ROUTER is not set
#
# QoS and/or fair queueing
#
# CONFIG_NET_SCHED is not set # CONFIG_NET_SCHED is not set
CONFIG_NET_CLS_ROUTE=y CONFIG_NET_CLS_ROUTE=y
...@@ -326,14 +382,6 @@ CONFIG_BLK_DEV_RAM_COUNT=16 ...@@ -326,14 +382,6 @@ CONFIG_BLK_DEV_RAM_COUNT=16
CONFIG_BLK_DEV_RAM_SIZE=65536 CONFIG_BLK_DEV_RAM_SIZE=65536
CONFIG_BLK_DEV_INITRD=y CONFIG_BLK_DEV_INITRD=y
# CONFIG_CDROM_PKTCDVD is not set # CONFIG_CDROM_PKTCDVD is not set
#
# IO Schedulers
#
CONFIG_IOSCHED_NOOP=y
CONFIG_IOSCHED_AS=y
CONFIG_IOSCHED_DEADLINE=y
CONFIG_IOSCHED_CFQ=y
# CONFIG_ATA_OVER_ETH is not set # CONFIG_ATA_OVER_ETH is not set
# #
...@@ -377,6 +425,7 @@ CONFIG_SCSI_FC_ATTRS=y ...@@ -377,6 +425,7 @@ CONFIG_SCSI_FC_ATTRS=y
# #
# SCSI low-level drivers # SCSI low-level drivers
# #
# CONFIG_ISCSI_TCP is not set
# CONFIG_BLK_DEV_3W_XXXX_RAID is not set # CONFIG_BLK_DEV_3W_XXXX_RAID is not set
# CONFIG_SCSI_3W_9XXX is not set # CONFIG_SCSI_3W_9XXX is not set
# CONFIG_SCSI_ACARD is not set # CONFIG_SCSI_ACARD is not set
...@@ -454,6 +503,7 @@ CONFIG_DM_ZERO=m ...@@ -454,6 +503,7 @@ CONFIG_DM_ZERO=m
# #
# Macintosh device drivers # Macintosh device drivers
# #
# CONFIG_WINDFARM is not set
# #
# Network device support # Network device support
...@@ -561,6 +611,7 @@ CONFIG_PPP_ASYNC=m ...@@ -561,6 +611,7 @@ CONFIG_PPP_ASYNC=m
CONFIG_PPP_SYNC_TTY=m CONFIG_PPP_SYNC_TTY=m
CONFIG_PPP_DEFLATE=m CONFIG_PPP_DEFLATE=m
CONFIG_PPP_BSDCOMP=m CONFIG_PPP_BSDCOMP=m
# CONFIG_PPP_MPPE is not set
CONFIG_PPPOE=m CONFIG_PPPOE=m
# CONFIG_SLIP is not set # CONFIG_SLIP is not set
# CONFIG_NET_FC is not set # CONFIG_NET_FC is not set
...@@ -643,6 +694,8 @@ CONFIG_LEGACY_PTY_COUNT=256 ...@@ -643,6 +694,8 @@ CONFIG_LEGACY_PTY_COUNT=256
# #
# CONFIG_WATCHDOG is not set # CONFIG_WATCHDOG is not set
# CONFIG_RTC is not set # CONFIG_RTC is not set
CONFIG_GEN_RTC=y
# CONFIG_GEN_RTC_X is not set
# CONFIG_DTLK is not set # CONFIG_DTLK is not set
# CONFIG_R3964 is not set # CONFIG_R3964 is not set
# CONFIG_APPLICOM is not set # CONFIG_APPLICOM is not set
...@@ -660,6 +713,7 @@ CONFIG_MAX_RAW_DEVS=256 ...@@ -660,6 +713,7 @@ CONFIG_MAX_RAW_DEVS=256
# TPM devices # TPM devices
# #
# CONFIG_TCG_TPM is not set # CONFIG_TCG_TPM is not set
# CONFIG_TELCLOCK is not set
# #
# I2C support # I2C support
...@@ -712,6 +766,10 @@ CONFIG_USB_ARCH_HAS_HCD=y ...@@ -712,6 +766,10 @@ CONFIG_USB_ARCH_HAS_HCD=y
CONFIG_USB_ARCH_HAS_OHCI=y CONFIG_USB_ARCH_HAS_OHCI=y
# CONFIG_USB is not set # CONFIG_USB is not set
#
# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support'
#
# #
# USB Gadget Support # USB Gadget Support
# #
...@@ -917,10 +975,25 @@ CONFIG_VIOTAPE=m ...@@ -917,10 +975,25 @@ CONFIG_VIOTAPE=m
CONFIG_VIOPATH=y CONFIG_VIOPATH=y
# #
# Profiling support # Library routines
#
CONFIG_CRC_CCITT=m
# CONFIG_CRC16 is not set
CONFIG_CRC32=y
CONFIG_LIBCRC32C=m
CONFIG_ZLIB_INFLATE=y
CONFIG_ZLIB_DEFLATE=m
CONFIG_TEXTSEARCH=y
CONFIG_TEXTSEARCH_KMP=m
CONFIG_TEXTSEARCH_BM=m
CONFIG_TEXTSEARCH_FSM=m
#
# Instrumentation Support
# #
CONFIG_PROFILING=y CONFIG_PROFILING=y
CONFIG_OPROFILE=y CONFIG_OPROFILE=y
# CONFIG_KPROBES is not set
# #
# Kernel hacking # Kernel hacking
...@@ -937,11 +1010,11 @@ CONFIG_DETECT_SOFTLOCKUP=y ...@@ -937,11 +1010,11 @@ CONFIG_DETECT_SOFTLOCKUP=y
# CONFIG_DEBUG_KOBJECT is not set # CONFIG_DEBUG_KOBJECT is not set
# CONFIG_DEBUG_INFO is not set # CONFIG_DEBUG_INFO is not set
CONFIG_DEBUG_FS=y CONFIG_DEBUG_FS=y
# CONFIG_DEBUG_VM is not set
# CONFIG_RCU_TORTURE_TEST is not set
CONFIG_DEBUG_STACKOVERFLOW=y CONFIG_DEBUG_STACKOVERFLOW=y
# CONFIG_KPROBES is not set
CONFIG_DEBUG_STACK_USAGE=y CONFIG_DEBUG_STACK_USAGE=y
# CONFIG_DEBUGGER is not set # CONFIG_DEBUGGER is not set
# CONFIG_PPCDBG is not set
CONFIG_IRQSTACKS=y CONFIG_IRQSTACKS=y
# #
...@@ -982,17 +1055,3 @@ CONFIG_CRYPTO_TEST=m ...@@ -982,17 +1055,3 @@ CONFIG_CRYPTO_TEST=m
# #
# Hardware crypto devices # Hardware crypto devices
# #
#
# Library routines
#
CONFIG_CRC_CCITT=m
# CONFIG_CRC16 is not set
CONFIG_CRC32=y
CONFIG_LIBCRC32C=m
CONFIG_ZLIB_INFLATE=y
CONFIG_ZLIB_DEFLATE=m
CONFIG_TEXTSEARCH=y
CONFIG_TEXTSEARCH_KMP=m
CONFIG_TEXTSEARCH_BM=m
CONFIG_TEXTSEARCH_FSM=m
# #
# Automatically generated make config: don't edit # Automatically generated make config: don't edit
# Linux kernel version: 2.6.14-rc4 # Linux kernel version: 2.6.15-rc1
# Thu Oct 20 08:31:24 2005 # Tue Nov 15 14:38:58 2005
# #
CONFIG_PPC64=y
CONFIG_64BIT=y CONFIG_64BIT=y
CONFIG_PPC_MERGE=y
CONFIG_MMU=y CONFIG_MMU=y
CONFIG_GENERIC_HARDIRQS=y
CONFIG_RWSEM_XCHGADD_ALGORITHM=y CONFIG_RWSEM_XCHGADD_ALGORITHM=y
CONFIG_GENERIC_CALIBRATE_DELAY=y CONFIG_GENERIC_CALIBRATE_DELAY=y
CONFIG_GENERIC_ISA_DMA=y CONFIG_PPC=y
CONFIG_EARLY_PRINTK=y CONFIG_EARLY_PRINTK=y
CONFIG_COMPAT=y CONFIG_COMPAT=y
CONFIG_SYSVIPC_COMPAT=y
CONFIG_SCHED_NO_NO_OMIT_FRAME_POINTER=y CONFIG_SCHED_NO_NO_OMIT_FRAME_POINTER=y
CONFIG_ARCH_MAY_HAVE_PC_FDC=y CONFIG_ARCH_MAY_HAVE_PC_FDC=y
CONFIG_FORCE_MAX_ZONEORDER=13
#
# Processor support
#
CONFIG_POWER4_ONLY=y
CONFIG_POWER4=y
CONFIG_PPC_FPU=y
# CONFIG_ALTIVEC is not set
CONFIG_PPC_STD_MMU=y
CONFIG_SMP=y
CONFIG_NR_CPUS=2
# #
# Code maturity level options # Code maturity level options
...@@ -67,32 +81,67 @@ CONFIG_MODVERSIONS=y ...@@ -67,32 +81,67 @@ CONFIG_MODVERSIONS=y
CONFIG_MODULE_SRCVERSION_ALL=y CONFIG_MODULE_SRCVERSION_ALL=y
CONFIG_KMOD=y CONFIG_KMOD=y
CONFIG_STOP_MACHINE=y CONFIG_STOP_MACHINE=y
CONFIG_SYSVIPC_COMPAT=y
#
# Block layer
#
#
# IO Schedulers
#
CONFIG_IOSCHED_NOOP=y
CONFIG_IOSCHED_AS=y
CONFIG_IOSCHED_DEADLINE=y
CONFIG_IOSCHED_CFQ=y
CONFIG_DEFAULT_AS=y
# CONFIG_DEFAULT_DEADLINE is not set
# CONFIG_DEFAULT_CFQ is not set
# CONFIG_DEFAULT_NOOP is not set
CONFIG_DEFAULT_IOSCHED="anticipatory"
# #
# Platform support # Platform support
# #
# CONFIG_PPC_ISERIES is not set
CONFIG_PPC_MULTIPLATFORM=y CONFIG_PPC_MULTIPLATFORM=y
# CONFIG_PPC_ISERIES is not set
# CONFIG_EMBEDDED6xx is not set
# CONFIG_APUS is not set
# CONFIG_PPC_PSERIES is not set # CONFIG_PPC_PSERIES is not set
# CONFIG_PPC_BPA is not set
# CONFIG_PPC_PMAC is not set # CONFIG_PPC_PMAC is not set
CONFIG_PPC_MAPLE=y CONFIG_PPC_MAPLE=y
CONFIG_PPC=y # CONFIG_PPC_CELL is not set
CONFIG_PPC64=y
CONFIG_PPC_OF=y CONFIG_PPC_OF=y
CONFIG_MPIC=y
# CONFIG_ALTIVEC is not set
CONFIG_KEXEC=y
CONFIG_U3_DART=y CONFIG_U3_DART=y
CONFIG_MPIC=y
# CONFIG_PPC_RTAS is not set
# CONFIG_MMIO_NVRAM is not set
CONFIG_MPIC_BROKEN_U3=y CONFIG_MPIC_BROKEN_U3=y
CONFIG_BOOTX_TEXT=y # CONFIG_PPC_MPC106 is not set
CONFIG_POWER4_ONLY=y CONFIG_GENERIC_TBSYNC=y
# CONFIG_CPU_FREQ is not set
# CONFIG_WANT_EARLY_SERIAL is not set
#
# Kernel options
#
# CONFIG_HZ_100 is not set
CONFIG_HZ_250=y
# CONFIG_HZ_1000 is not set
CONFIG_HZ=250
CONFIG_PREEMPT_NONE=y
# CONFIG_PREEMPT_VOLUNTARY is not set
# CONFIG_PREEMPT is not set
# CONFIG_PREEMPT_BKL is not set
CONFIG_BINFMT_ELF=y
# CONFIG_BINFMT_MISC is not set
CONFIG_FORCE_MAX_ZONEORDER=13
CONFIG_IOMMU_VMERGE=y CONFIG_IOMMU_VMERGE=y
CONFIG_SMP=y CONFIG_KEXEC=y
CONFIG_NR_CPUS=2 CONFIG_IRQ_ALL_CPUS=y
# CONFIG_NUMA is not set
CONFIG_ARCH_SELECT_MEMORY_MODEL=y CONFIG_ARCH_SELECT_MEMORY_MODEL=y
CONFIG_ARCH_FLATMEM_ENABLE=y CONFIG_ARCH_FLATMEM_ENABLE=y
CONFIG_ARCH_SPARSEMEM_ENABLE=y
CONFIG_SELECT_MEMORY_MODEL=y CONFIG_SELECT_MEMORY_MODEL=y
CONFIG_FLATMEM_MANUAL=y CONFIG_FLATMEM_MANUAL=y
# CONFIG_DISCONTIGMEM_MANUAL is not set # CONFIG_DISCONTIGMEM_MANUAL is not set
...@@ -100,27 +149,21 @@ CONFIG_FLATMEM_MANUAL=y ...@@ -100,27 +149,21 @@ CONFIG_FLATMEM_MANUAL=y
CONFIG_FLATMEM=y CONFIG_FLATMEM=y
CONFIG_FLAT_NODE_MEM_MAP=y CONFIG_FLAT_NODE_MEM_MAP=y
# CONFIG_SPARSEMEM_STATIC is not set # CONFIG_SPARSEMEM_STATIC is not set
# CONFIG_NUMA is not set CONFIG_SPLIT_PTLOCK_CPUS=4096
# CONFIG_PPC_64K_PAGES is not set
# CONFIG_SCHED_SMT is not set # CONFIG_SCHED_SMT is not set
CONFIG_PREEMPT_NONE=y
# CONFIG_PREEMPT_VOLUNTARY is not set
# CONFIG_PREEMPT is not set
# CONFIG_PREEMPT_BKL is not set
# CONFIG_HZ_100 is not set
CONFIG_HZ_250=y
# CONFIG_HZ_1000 is not set
CONFIG_HZ=250
CONFIG_GENERIC_HARDIRQS=y
CONFIG_SECCOMP=y
CONFIG_BINFMT_ELF=y
# CONFIG_BINFMT_MISC is not set
CONFIG_PROC_DEVICETREE=y CONFIG_PROC_DEVICETREE=y
# CONFIG_CMDLINE_BOOL is not set # CONFIG_CMDLINE_BOOL is not set
# CONFIG_PM is not set
CONFIG_SECCOMP=y
CONFIG_ISA_DMA_API=y CONFIG_ISA_DMA_API=y
# #
# Bus Options # Bus options
# #
CONFIG_GENERIC_ISA_DMA=y
# CONFIG_PPC_I8259 is not set
# CONFIG_PPC_INDIRECT_PCI is not set
CONFIG_PCI=y CONFIG_PCI=y
CONFIG_PCI_DOMAINS=y CONFIG_PCI_DOMAINS=y
CONFIG_PCI_LEGACY_PROC=y CONFIG_PCI_LEGACY_PROC=y
...@@ -135,6 +178,7 @@ CONFIG_PCI_LEGACY_PROC=y ...@@ -135,6 +178,7 @@ CONFIG_PCI_LEGACY_PROC=y
# PCI Hotplug Support # PCI Hotplug Support
# #
# CONFIG_HOTPLUG_PCI is not set # CONFIG_HOTPLUG_PCI is not set
CONFIG_KERNEL_START=0xc000000000000000
# #
# Networking # Networking
...@@ -193,6 +237,10 @@ CONFIG_TCP_CONG_BIC=y ...@@ -193,6 +237,10 @@ CONFIG_TCP_CONG_BIC=y
# CONFIG_NET_DIVERT is not set # CONFIG_NET_DIVERT is not set
# CONFIG_ECONET is not set # CONFIG_ECONET is not set
# CONFIG_WAN_ROUTER is not set # CONFIG_WAN_ROUTER is not set
#
# QoS and/or fair queueing
#
# CONFIG_NET_SCHED is not set # CONFIG_NET_SCHED is not set
# CONFIG_NET_CLS_ROUTE is not set # CONFIG_NET_CLS_ROUTE is not set
...@@ -254,14 +302,6 @@ CONFIG_BLK_DEV_RAM_COUNT=16 ...@@ -254,14 +302,6 @@ CONFIG_BLK_DEV_RAM_COUNT=16
CONFIG_BLK_DEV_RAM_SIZE=8192 CONFIG_BLK_DEV_RAM_SIZE=8192
# CONFIG_BLK_DEV_INITRD is not set # CONFIG_BLK_DEV_INITRD is not set
# CONFIG_CDROM_PKTCDVD is not set # CONFIG_CDROM_PKTCDVD is not set
#
# IO Schedulers
#
CONFIG_IOSCHED_NOOP=y
CONFIG_IOSCHED_AS=y
CONFIG_IOSCHED_DEADLINE=y
CONFIG_IOSCHED_CFQ=y
# CONFIG_ATA_OVER_ETH is not set # CONFIG_ATA_OVER_ETH is not set
# #
...@@ -351,6 +391,7 @@ CONFIG_IDEDMA_AUTO=y ...@@ -351,6 +391,7 @@ CONFIG_IDEDMA_AUTO=y
# #
# Macintosh device drivers # Macintosh device drivers
# #
# CONFIG_WINDFARM is not set
# #
# Network device support # Network device support
...@@ -533,6 +574,8 @@ CONFIG_LEGACY_PTY_COUNT=256 ...@@ -533,6 +574,8 @@ CONFIG_LEGACY_PTY_COUNT=256
# #
# CONFIG_WATCHDOG is not set # CONFIG_WATCHDOG is not set
# CONFIG_RTC is not set # CONFIG_RTC is not set
CONFIG_GEN_RTC=y
# CONFIG_GEN_RTC_X is not set
# CONFIG_DTLK is not set # CONFIG_DTLK is not set
# CONFIG_R3964 is not set # CONFIG_R3964 is not set
# CONFIG_APPLICOM is not set # CONFIG_APPLICOM is not set
...@@ -549,6 +592,7 @@ CONFIG_LEGACY_PTY_COUNT=256 ...@@ -549,6 +592,7 @@ CONFIG_LEGACY_PTY_COUNT=256
# TPM devices # TPM devices
# #
# CONFIG_TCG_TPM is not set # CONFIG_TCG_TPM is not set
# CONFIG_TELCLOCK is not set
# #
# I2C support # I2C support
...@@ -599,6 +643,7 @@ CONFIG_I2C_AMD8111=y ...@@ -599,6 +643,7 @@ CONFIG_I2C_AMD8111=y
# CONFIG_SENSORS_PCF8591 is not set # CONFIG_SENSORS_PCF8591 is not set
# CONFIG_SENSORS_RTC8564 is not set # CONFIG_SENSORS_RTC8564 is not set
# CONFIG_SENSORS_MAX6875 is not set # CONFIG_SENSORS_MAX6875 is not set
# CONFIG_RTC_X1205_I2C is not set
# CONFIG_I2C_DEBUG_CORE is not set # CONFIG_I2C_DEBUG_CORE is not set
# CONFIG_I2C_DEBUG_ALGO is not set # CONFIG_I2C_DEBUG_ALGO is not set
# CONFIG_I2C_DEBUG_BUS is not set # CONFIG_I2C_DEBUG_BUS is not set
...@@ -681,12 +726,15 @@ CONFIG_USB_UHCI_HCD=y ...@@ -681,12 +726,15 @@ CONFIG_USB_UHCI_HCD=y
# #
# USB Device Class drivers # USB Device Class drivers
# #
# CONFIG_USB_BLUETOOTH_TTY is not set
# CONFIG_USB_ACM is not set # CONFIG_USB_ACM is not set
# CONFIG_USB_PRINTER is not set # CONFIG_USB_PRINTER is not set
# #
# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' may also be needed; see USB_STORAGE Help for more information # NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support'
#
#
# may also be needed; see USB_STORAGE Help for more information
# #
# CONFIG_USB_STORAGE is not set # CONFIG_USB_STORAGE is not set
...@@ -776,6 +824,7 @@ CONFIG_USB_SERIAL_KEYSPAN_USA49WLC=y ...@@ -776,6 +824,7 @@ CONFIG_USB_SERIAL_KEYSPAN_USA49WLC=y
# CONFIG_USB_SERIAL_KLSI is not set # CONFIG_USB_SERIAL_KLSI is not set
# CONFIG_USB_SERIAL_KOBIL_SCT is not set # CONFIG_USB_SERIAL_KOBIL_SCT is not set
# CONFIG_USB_SERIAL_MCT_U232 is not set # CONFIG_USB_SERIAL_MCT_U232 is not set
# CONFIG_USB_SERIAL_NOKIA_DKU2 is not set
# CONFIG_USB_SERIAL_PL2303 is not set # CONFIG_USB_SERIAL_PL2303 is not set
# CONFIG_USB_SERIAL_HP4X is not set # CONFIG_USB_SERIAL_HP4X is not set
# CONFIG_USB_SERIAL_SAFE is not set # CONFIG_USB_SERIAL_SAFE is not set
...@@ -985,9 +1034,19 @@ CONFIG_NLS_DEFAULT="utf-8" ...@@ -985,9 +1034,19 @@ CONFIG_NLS_DEFAULT="utf-8"
CONFIG_NLS_UTF8=y CONFIG_NLS_UTF8=y
# #
# Profiling support # Library routines
#
CONFIG_CRC_CCITT=y
# CONFIG_CRC16 is not set
CONFIG_CRC32=y
# CONFIG_LIBCRC32C is not set
CONFIG_ZLIB_INFLATE=y
#
# Instrumentation Support
# #
# CONFIG_PROFILING is not set # CONFIG_PROFILING is not set
# CONFIG_KPROBES is not set
# #
# Kernel hacking # Kernel hacking
...@@ -1004,14 +1063,15 @@ CONFIG_DEBUG_SPINLOCK_SLEEP=y ...@@ -1004,14 +1063,15 @@ CONFIG_DEBUG_SPINLOCK_SLEEP=y
# CONFIG_DEBUG_KOBJECT is not set # CONFIG_DEBUG_KOBJECT is not set
# CONFIG_DEBUG_INFO is not set # CONFIG_DEBUG_INFO is not set
CONFIG_DEBUG_FS=y CONFIG_DEBUG_FS=y
# CONFIG_DEBUG_VM is not set
# CONFIG_RCU_TORTURE_TEST is not set
CONFIG_DEBUG_STACKOVERFLOW=y CONFIG_DEBUG_STACKOVERFLOW=y
# CONFIG_KPROBES is not set
CONFIG_DEBUG_STACK_USAGE=y CONFIG_DEBUG_STACK_USAGE=y
CONFIG_DEBUGGER=y CONFIG_DEBUGGER=y
CONFIG_XMON=y CONFIG_XMON=y
CONFIG_XMON_DEFAULT=y CONFIG_XMON_DEFAULT=y
# CONFIG_PPCDBG is not set
# CONFIG_IRQSTACKS is not set # CONFIG_IRQSTACKS is not set
CONFIG_BOOTX_TEXT=y
# #
# Security options # Security options
...@@ -1051,12 +1111,3 @@ CONFIG_CRYPTO_DES=y ...@@ -1051,12 +1111,3 @@ CONFIG_CRYPTO_DES=y
# #
# Hardware crypto devices # Hardware crypto devices
# #
#
# Library routines
#
CONFIG_CRC_CCITT=y
# CONFIG_CRC16 is not set
CONFIG_CRC32=y
# CONFIG_LIBCRC32C is not set
CONFIG_ZLIB_INFLATE=y
# #
# Automatically generated make config: don't edit # Automatically generated make config: don't edit
# Linux kernel version: 2.6.15-rc1 # Linux kernel version: 2.6.15-rc1
# Mon Nov 14 15:27:00 2005 # Tue Nov 15 14:36:55 2005
# #
CONFIG_PPC64=y CONFIG_PPC64=y
CONFIG_64BIT=y CONFIG_64BIT=y
...@@ -144,7 +144,7 @@ CONFIG_FORCE_MAX_ZONEORDER=13 ...@@ -144,7 +144,7 @@ CONFIG_FORCE_MAX_ZONEORDER=13
CONFIG_IOMMU_VMERGE=y CONFIG_IOMMU_VMERGE=y
CONFIG_HOTPLUG_CPU=y CONFIG_HOTPLUG_CPU=y
CONFIG_KEXEC=y CONFIG_KEXEC=y
# CONFIG_IRQ_ALL_CPUS is not set CONFIG_IRQ_ALL_CPUS=y
CONFIG_PPC_SPLPAR=y CONFIG_PPC_SPLPAR=y
CONFIG_EEH=y CONFIG_EEH=y
CONFIG_SCANLOG=m CONFIG_SCANLOG=m
......
...@@ -30,10 +30,10 @@ ...@@ -30,10 +30,10 @@
#include <asm/byteorder.h> #include <asm/byteorder.h>
#include <asm/irq.h> #include <asm/irq.h>
#include <asm/machdep.h> #include <asm/machdep.h>
#include <asm/udbg.h>
#include <asm/ppc-pci.h> #include <asm/ppc-pci.h>
#ifdef DEBUG #ifdef DEBUG
#include <asm/udbg.h>
#define DBG(fmt...) udbg_printf(fmt) #define DBG(fmt...) udbg_printf(fmt)
#else #else
#define DBG(fmt...) #define DBG(fmt...)
...@@ -187,7 +187,7 @@ static DEFINE_SPINLOCK(hose_spinlock); ...@@ -187,7 +187,7 @@ static DEFINE_SPINLOCK(hose_spinlock);
/* /*
* pci_controller(phb) initialized common variables. * pci_controller(phb) initialized common variables.
*/ */
void __devinit pci_setup_pci_controller(struct pci_controller *hose) static void __devinit pci_setup_pci_controller(struct pci_controller *hose)
{ {
memset(hose, 0, sizeof(struct pci_controller)); memset(hose, 0, sizeof(struct pci_controller));
...@@ -197,6 +197,65 @@ void __devinit pci_setup_pci_controller(struct pci_controller *hose) ...@@ -197,6 +197,65 @@ void __devinit pci_setup_pci_controller(struct pci_controller *hose)
spin_unlock(&hose_spinlock); spin_unlock(&hose_spinlock);
} }
static void add_linux_pci_domain(struct device_node *dev,
struct pci_controller *phb)
{
struct property *of_prop;
unsigned int size;
of_prop = (struct property *)
get_property(dev, "linux,pci-domain", &size);
if (of_prop != NULL)
return;
WARN_ON(of_prop && size < sizeof(int));
if (of_prop && size < sizeof(int))
of_prop = NULL;
size = sizeof(struct property) + sizeof(int);
if (of_prop == NULL) {
if (mem_init_done)
of_prop = kmalloc(size, GFP_KERNEL);
else
of_prop = alloc_bootmem(size);
}
memset(of_prop, 0, sizeof(struct property));
of_prop->name = "linux,pci-domain";
of_prop->length = sizeof(int);
of_prop->value = (unsigned char *)&of_prop[1];
*((int *)of_prop->value) = phb->global_number;
prom_add_property(dev, of_prop);
}
struct pci_controller * pcibios_alloc_controller(struct device_node *dev)
{
struct pci_controller *phb;
if (mem_init_done)
phb = kmalloc(sizeof(struct pci_controller), GFP_KERNEL);
else
phb = alloc_bootmem(sizeof (struct pci_controller));
if (phb == NULL)
return NULL;
pci_setup_pci_controller(phb);
phb->arch_data = dev;
phb->is_dynamic = mem_init_done;
if (dev)
add_linux_pci_domain(dev, phb);
return phb;
}
void pcibios_free_controller(struct pci_controller *phb)
{
if (phb->arch_data) {
struct device_node *np = phb->arch_data;
int *domain = (int *)get_property(np,
"linux,pci-domain", NULL);
if (domain)
*domain = -1;
}
if (phb->is_dynamic)
kfree(phb);
}
static void __init pcibios_claim_one_bus(struct pci_bus *b) static void __init pcibios_claim_one_bus(struct pci_bus *b)
{ {
struct pci_dev *dev; struct pci_dev *dev;
...@@ -907,9 +966,10 @@ void __devinit pci_process_bridge_OF_ranges(struct pci_controller *hose, ...@@ -907,9 +966,10 @@ void __devinit pci_process_bridge_OF_ranges(struct pci_controller *hose,
* (size depending on dev->n_addr_cells) * (size depending on dev->n_addr_cells)
* cells 4+5 or 5+6: the size of the range * cells 4+5 or 5+6: the size of the range
*/ */
rlen = 0;
hose->io_base_phys = 0;
ranges = (unsigned int *) get_property(dev, "ranges", &rlen); ranges = (unsigned int *) get_property(dev, "ranges", &rlen);
if (ranges == NULL)
return;
hose->io_base_phys = 0;
while ((rlen -= np * sizeof(unsigned int)) >= 0) { while ((rlen -= np * sizeof(unsigned int)) >= 0) {
res = NULL; res = NULL;
pci_space = ranges[0]; pci_space = ranges[0];
...@@ -1107,6 +1167,8 @@ int remap_bus_range(struct pci_bus *bus) ...@@ -1107,6 +1167,8 @@ int remap_bus_range(struct pci_bus *bus)
if (get_bus_io_range(bus, &start_phys, &start_virt, &size)) if (get_bus_io_range(bus, &start_phys, &start_virt, &size))
return 1; return 1;
if (start_phys == 0)
return 1;
printk("mapping IO %lx -> %lx, size: %lx\n", start_phys, start_virt, size); printk("mapping IO %lx -> %lx, size: %lx\n", start_phys, start_virt, size);
if (__ioremap_explicit(start_phys, start_virt, size, if (__ioremap_explicit(start_phys, start_virt, size,
_PAGE_NO_CACHE | _PAGE_GUARDED)) _PAGE_NO_CACHE | _PAGE_GUARDED))
......
...@@ -304,75 +304,18 @@ static int __devinit setup_phb(struct device_node *dev, ...@@ -304,75 +304,18 @@ static int __devinit setup_phb(struct device_node *dev,
struct pci_controller *phb, struct pci_controller *phb,
unsigned int addr_size_words) unsigned int addr_size_words)
{ {
pci_setup_pci_controller(phb);
if (is_python(dev)) if (is_python(dev))
python_countermeasures(dev, addr_size_words); python_countermeasures(dev, addr_size_words);
if (phb_set_bus_ranges(dev, phb)) if (phb_set_bus_ranges(dev, phb))
return 1; return 1;
phb->arch_data = dev;
phb->ops = &rtas_pci_ops; phb->ops = &rtas_pci_ops;
phb->buid = get_phb_buid(dev); phb->buid = get_phb_buid(dev);
return 0; return 0;
} }
static void __devinit add_linux_pci_domain(struct device_node *dev,
struct pci_controller *phb,
struct property *of_prop)
{
memset(of_prop, 0, sizeof(struct property));
of_prop->name = "linux,pci-domain";
of_prop->length = sizeof(phb->global_number);
of_prop->value = (unsigned char *)&of_prop[1];
memcpy(of_prop->value, &phb->global_number, sizeof(phb->global_number));
prom_add_property(dev, of_prop);
}
static struct pci_controller * __init alloc_phb(struct device_node *dev,
unsigned int addr_size_words)
{
struct pci_controller *phb;
struct property *of_prop;
phb = alloc_bootmem(sizeof(struct pci_controller));
if (phb == NULL)
return NULL;
of_prop = alloc_bootmem(sizeof(struct property) +
sizeof(phb->global_number));
if (!of_prop)
return NULL;
if (setup_phb(dev, phb, addr_size_words))
return NULL;
add_linux_pci_domain(dev, phb, of_prop);
return phb;
}
static struct pci_controller * __devinit alloc_phb_dynamic(struct device_node *dev, unsigned int addr_size_words)
{
struct pci_controller *phb;
phb = (struct pci_controller *)kmalloc(sizeof(struct pci_controller),
GFP_KERNEL);
if (phb == NULL)
return NULL;
if (setup_phb(dev, phb, addr_size_words))
return NULL;
phb->is_dynamic = 1;
/* TODO: linux,pci-domain? */
return phb;
}
unsigned long __init find_and_init_phbs(void) unsigned long __init find_and_init_phbs(void)
{ {
struct device_node *node; struct device_node *node;
...@@ -397,10 +340,10 @@ unsigned long __init find_and_init_phbs(void) ...@@ -397,10 +340,10 @@ unsigned long __init find_and_init_phbs(void)
if (node->type == NULL || strcmp(node->type, "pci") != 0) if (node->type == NULL || strcmp(node->type, "pci") != 0)
continue; continue;
phb = alloc_phb(node, root_size_cells); phb = pcibios_alloc_controller(node);
if (!phb) if (!phb)
continue; continue;
setup_phb(node, phb, root_size_cells);
pci_process_bridge_OF_ranges(phb, node, 0); pci_process_bridge_OF_ranges(phb, node, 0);
pci_setup_phb_io(phb, index == 0); pci_setup_phb_io(phb, index == 0);
#ifdef CONFIG_PPC_PSERIES #ifdef CONFIG_PPC_PSERIES
...@@ -446,10 +389,10 @@ struct pci_controller * __devinit init_phb_dynamic(struct device_node *dn) ...@@ -446,10 +389,10 @@ struct pci_controller * __devinit init_phb_dynamic(struct device_node *dn)
root_size_cells = prom_n_size_cells(root); root_size_cells = prom_n_size_cells(root);
primary = list_empty(&hose_list); primary = list_empty(&hose_list);
phb = alloc_phb_dynamic(dn, root_size_cells); phb = pcibios_alloc_controller(dn);
if (!phb) if (!phb)
return NULL; return NULL;
setup_phb(dn, phb, root_size_cells);
pci_process_bridge_OF_ranges(phb, dn, primary); pci_process_bridge_OF_ranges(phb, dn, primary);
pci_setup_phb_io_dynamic(phb, primary); pci_setup_phb_io_dynamic(phb, primary);
...@@ -505,8 +448,7 @@ int pcibios_remove_root_bus(struct pci_controller *phb) ...@@ -505,8 +448,7 @@ int pcibios_remove_root_bus(struct pci_controller *phb)
} }
list_del(&phb->list_node); list_del(&phb->list_node);
if (phb->is_dynamic) pcibios_free_controller(phb);
kfree(phb);
return 0; return 0;
} }
......
...@@ -59,6 +59,7 @@ ...@@ -59,6 +59,7 @@
#undef DEBUG #undef DEBUG
#ifdef DEBUG #ifdef DEBUG
#include <asm/udbg.h>
#define DBG(fmt...) udbg_printf(fmt) #define DBG(fmt...) udbg_printf(fmt)
#else #else
#define DBG(fmt...) #define DBG(fmt...)
......
...@@ -49,15 +49,16 @@ ...@@ -49,15 +49,16 @@
#include <asm/paca.h> #include <asm/paca.h>
#endif #endif
int smp_hw_index[NR_CPUS];
struct thread_info *secondary_ti;
#ifdef DEBUG #ifdef DEBUG
#include <asm/udbg.h>
#define DBG(fmt...) udbg_printf(fmt) #define DBG(fmt...) udbg_printf(fmt)
#else #else
#define DBG(fmt...) #define DBG(fmt...)
#endif #endif
int smp_hw_index[NR_CPUS];
struct thread_info *secondary_ti;
cpumask_t cpu_possible_map = CPU_MASK_NONE; cpumask_t cpu_possible_map = CPU_MASK_NONE;
cpumask_t cpu_online_map = CPU_MASK_NONE; cpumask_t cpu_online_map = CPU_MASK_NONE;
cpumask_t cpu_sibling_map[NR_CPUS] = { [0 ... NR_CPUS-1] = CPU_MASK_NONE }; cpumask_t cpu_sibling_map[NR_CPUS] = { [0 ... NR_CPUS-1] = CPU_MASK_NONE };
......
...@@ -35,6 +35,7 @@ V_FUNCTION_BEGIN(__kernel_sync_dicache) ...@@ -35,6 +35,7 @@ V_FUNCTION_BEGIN(__kernel_sync_dicache)
subf r8,r6,r4 /* compute length */ subf r8,r6,r4 /* compute length */
add r8,r8,r5 /* ensure we get enough */ add r8,r8,r5 /* ensure we get enough */
srwi. r8,r8,7 /* compute line count */ srwi. r8,r8,7 /* compute line count */
crclr cr0*4+so
beqlr /* nothing to do? */ beqlr /* nothing to do? */
mtctr r8 mtctr r8
mr r3,r6 mr r3,r6
...@@ -58,6 +59,7 @@ V_FUNCTION_END(__kernel_sync_dicache) ...@@ -58,6 +59,7 @@ V_FUNCTION_END(__kernel_sync_dicache)
*/ */
V_FUNCTION_BEGIN(__kernel_sync_dicache_p5) V_FUNCTION_BEGIN(__kernel_sync_dicache_p5)
.cfi_startproc .cfi_startproc
crclr cr0*4+so
sync sync
isync isync
li r3,0 li r3,0
......
...@@ -54,7 +54,6 @@ V_FUNCTION_BEGIN(__kernel_get_syscall_map) ...@@ -54,7 +54,6 @@ V_FUNCTION_BEGIN(__kernel_get_syscall_map)
.cfi_startproc .cfi_startproc
mflr r12 mflr r12
.cfi_register lr,r12 .cfi_register lr,r12
mr r4,r3 mr r4,r3
bl __get_datapage@local bl __get_datapage@local
mtlr r12 mtlr r12
...@@ -63,6 +62,7 @@ V_FUNCTION_BEGIN(__kernel_get_syscall_map) ...@@ -63,6 +62,7 @@ V_FUNCTION_BEGIN(__kernel_get_syscall_map)
beqlr beqlr
li r0,__NR_syscalls li r0,__NR_syscalls
stw r0,0(r4) stw r0,0(r4)
crclr cr0*4+so
blr blr
.cfi_endproc .cfi_endproc
V_FUNCTION_END(__kernel_get_syscall_map) V_FUNCTION_END(__kernel_get_syscall_map)
...@@ -80,6 +80,7 @@ V_FUNCTION_BEGIN(__kernel_get_tbfreq) ...@@ -80,6 +80,7 @@ V_FUNCTION_BEGIN(__kernel_get_tbfreq)
lwz r4,(CFG_TB_TICKS_PER_SEC + 4)(r3) lwz r4,(CFG_TB_TICKS_PER_SEC + 4)(r3)
lwz r3,CFG_TB_TICKS_PER_SEC(r3) lwz r3,CFG_TB_TICKS_PER_SEC(r3)
mtlr r12 mtlr r12
crclr cr0*4+so
blr blr
.cfi_endproc .cfi_endproc
V_FUNCTION_END(__kernel_get_tbfreq) V_FUNCTION_END(__kernel_get_tbfreq)
...@@ -59,6 +59,7 @@ V_FUNCTION_BEGIN(__kernel_gettimeofday) ...@@ -59,6 +59,7 @@ V_FUNCTION_BEGIN(__kernel_gettimeofday)
stw r5,TZONE_TZ_DSTTIME(r11) stw r5,TZONE_TZ_DSTTIME(r11)
1: mtlr r12 1: mtlr r12
crclr cr0*4+so
li r3,0 li r3,0
blr blr
...@@ -117,6 +118,7 @@ V_FUNCTION_BEGIN(__kernel_clock_gettime) ...@@ -117,6 +118,7 @@ V_FUNCTION_BEGIN(__kernel_clock_gettime)
mulli r5,r5,1000 mulli r5,r5,1000
stw r5,TSPC32_TV_NSEC(r11) stw r5,TSPC32_TV_NSEC(r11)
mtlr r12 mtlr r12
crclr cr0*4+so
li r3,0 li r3,0
blr blr
...@@ -185,6 +187,7 @@ V_FUNCTION_BEGIN(__kernel_clock_gettime) ...@@ -185,6 +187,7 @@ V_FUNCTION_BEGIN(__kernel_clock_gettime)
stw r4,TSPC32_TV_NSEC(r11) stw r4,TSPC32_TV_NSEC(r11)
mtlr r12 mtlr r12
crclr cr0*4+so
li r3,0 li r3,0
blr blr
...@@ -219,6 +222,7 @@ V_FUNCTION_BEGIN(__kernel_clock_getres) ...@@ -219,6 +222,7 @@ V_FUNCTION_BEGIN(__kernel_clock_getres)
li r3,0 li r3,0
cmpli cr0,r4,0 cmpli cr0,r4,0
crclr cr0*4+so
beqlr beqlr
lis r5,CLOCK_REALTIME_RES@h lis r5,CLOCK_REALTIME_RES@h
ori r5,r5,CLOCK_REALTIME_RES@l ori r5,r5,CLOCK_REALTIME_RES@l
......
...@@ -35,6 +35,7 @@ V_FUNCTION_BEGIN(__kernel_sync_dicache) ...@@ -35,6 +35,7 @@ V_FUNCTION_BEGIN(__kernel_sync_dicache)
subf r8,r6,r4 /* compute length */ subf r8,r6,r4 /* compute length */
add r8,r8,r5 /* ensure we get enough */ add r8,r8,r5 /* ensure we get enough */
srwi. r8,r8,7 /* compute line count */ srwi. r8,r8,7 /* compute line count */
crclr cr0*4+so
beqlr /* nothing to do? */ beqlr /* nothing to do? */
mtctr r8 mtctr r8
mr r3,r6 mr r3,r6
...@@ -58,6 +59,7 @@ V_FUNCTION_END(__kernel_sync_dicache) ...@@ -58,6 +59,7 @@ V_FUNCTION_END(__kernel_sync_dicache)
*/ */
V_FUNCTION_BEGIN(__kernel_sync_dicache_p5) V_FUNCTION_BEGIN(__kernel_sync_dicache_p5)
.cfi_startproc .cfi_startproc
crclr cr0*4+so
sync sync
isync isync
li r3,0 li r3,0
......
...@@ -54,12 +54,12 @@ V_FUNCTION_BEGIN(__kernel_get_syscall_map) ...@@ -54,12 +54,12 @@ V_FUNCTION_BEGIN(__kernel_get_syscall_map)
.cfi_startproc .cfi_startproc
mflr r12 mflr r12
.cfi_register lr,r12 .cfi_register lr,r12
mr r4,r3 mr r4,r3
bl V_LOCAL_FUNC(__get_datapage) bl V_LOCAL_FUNC(__get_datapage)
mtlr r12 mtlr r12
addi r3,r3,CFG_SYSCALL_MAP64 addi r3,r3,CFG_SYSCALL_MAP64
cmpli cr0,r4,0 cmpli cr0,r4,0
crclr cr0*4+so
beqlr beqlr
li r0,__NR_syscalls li r0,__NR_syscalls
stw r0,0(r4) stw r0,0(r4)
...@@ -80,6 +80,7 @@ V_FUNCTION_BEGIN(__kernel_get_tbfreq) ...@@ -80,6 +80,7 @@ V_FUNCTION_BEGIN(__kernel_get_tbfreq)
bl V_LOCAL_FUNC(__get_datapage) bl V_LOCAL_FUNC(__get_datapage)
ld r3,CFG_TB_TICKS_PER_SEC(r3) ld r3,CFG_TB_TICKS_PER_SEC(r3)
mtlr r12 mtlr r12
crclr cr0*4+so
blr blr
.cfi_endproc .cfi_endproc
V_FUNCTION_END(__kernel_get_tbfreq) V_FUNCTION_END(__kernel_get_tbfreq)
...@@ -52,6 +52,7 @@ V_FUNCTION_BEGIN(__kernel_gettimeofday) ...@@ -52,6 +52,7 @@ V_FUNCTION_BEGIN(__kernel_gettimeofday)
stw r4,TZONE_TZ_MINWEST(r10) stw r4,TZONE_TZ_MINWEST(r10)
stw r5,TZONE_TZ_DSTTIME(r10) stw r5,TZONE_TZ_DSTTIME(r10)
1: mtlr r12 1: mtlr r12
crclr cr0*4+so
li r3,0 /* always success */ li r3,0 /* always success */
blr blr
.cfi_endproc .cfi_endproc
...@@ -99,6 +100,7 @@ V_FUNCTION_BEGIN(__kernel_clock_gettime) ...@@ -99,6 +100,7 @@ V_FUNCTION_BEGIN(__kernel_clock_gettime)
std r0,TSPC64_TV_NSEC(r11) /* store nsec in tp */ std r0,TSPC64_TV_NSEC(r11) /* store nsec in tp */
mtlr r12 mtlr r12
crclr cr0*4+so
li r3,0 li r3,0
blr blr
...@@ -159,6 +161,7 @@ V_FUNCTION_BEGIN(__kernel_clock_gettime) ...@@ -159,6 +161,7 @@ V_FUNCTION_BEGIN(__kernel_clock_gettime)
std r7,TSPC64_TV_NSEC(r11) std r7,TSPC64_TV_NSEC(r11)
mtlr r12 mtlr r12
crclr cr0*4+so
li r3,0 li r3,0
blr blr
...@@ -193,6 +196,7 @@ V_FUNCTION_BEGIN(__kernel_clock_getres) ...@@ -193,6 +196,7 @@ V_FUNCTION_BEGIN(__kernel_clock_getres)
li r3,0 li r3,0
cmpli cr0,r4,0 cmpli cr0,r4,0
crclr cr0*4+so
beqlr beqlr
lis r5,CLOCK_REALTIME_RES@h lis r5,CLOCK_REALTIME_RES@h
ori r5,r5,CLOCK_REALTIME_RES@l ori r5,r5,CLOCK_REALTIME_RES@l
......
...@@ -22,35 +22,38 @@ ...@@ -22,35 +22,38 @@
#include "mmu_decl.h" /* for __max_low_memory */ #include "mmu_decl.h" /* for __max_low_memory */
#endif #endif
struct lmb lmb;
#undef DEBUG #undef DEBUG
#ifdef DEBUG
#include <asm/udbg.h>
#define DBG(fmt...) udbg_printf(fmt)
#else
#define DBG(fmt...)
#endif
struct lmb lmb;
void lmb_dump_all(void) void lmb_dump_all(void)
{ {
#ifdef DEBUG #ifdef DEBUG
unsigned long i; unsigned long i;
udbg_printf("lmb_dump_all:\n"); DBG("lmb_dump_all:\n");
udbg_printf(" memory.cnt = 0x%lx\n", DBG(" memory.cnt = 0x%lx\n", lmb.memory.cnt);
lmb.memory.cnt); DBG(" memory.size = 0x%lx\n", lmb.memory.size);
udbg_printf(" memory.size = 0x%lx\n",
lmb.memory.size);
for (i=0; i < lmb.memory.cnt ;i++) { for (i=0; i < lmb.memory.cnt ;i++) {
udbg_printf(" memory.region[0x%x].base = 0x%lx\n", DBG(" memory.region[0x%x].base = 0x%lx\n",
i, lmb.memory.region[i].base); i, lmb.memory.region[i].base);
udbg_printf(" .size = 0x%lx\n", DBG(" .size = 0x%lx\n",
lmb.memory.region[i].size); lmb.memory.region[i].size);
} }
udbg_printf("\n reserved.cnt = 0x%lx\n", DBG("\n reserved.cnt = 0x%lx\n", lmb.reserved.cnt);
lmb.reserved.cnt); DBG(" reserved.size = 0x%lx\n", lmb.reserved.size);
udbg_printf(" reserved.size = 0x%lx\n",
lmb.reserved.size);
for (i=0; i < lmb.reserved.cnt ;i++) { for (i=0; i < lmb.reserved.cnt ;i++) {
udbg_printf(" reserved.region[0x%x].base = 0x%lx\n", DBG(" reserved.region[0x%x].base = 0x%lx\n",
i, lmb.reserved.region[i].base); i, lmb.reserved.region[i].base);
udbg_printf(" .size = 0x%lx\n", DBG(" .size = 0x%lx\n",
lmb.reserved.region[i].size); lmb.reserved.region[i].size);
} }
#endif /* DEBUG */ #endif /* DEBUG */
......
...@@ -244,10 +244,9 @@ unsigned long __init find_and_init_phbs(void) ...@@ -244,10 +244,9 @@ unsigned long __init find_and_init_phbs(void)
if (ret == 0) { if (ret == 0) {
printk("bus %d appears to exist\n", bus); printk("bus %d appears to exist\n", bus);
phb = (struct pci_controller *)kmalloc(sizeof(struct pci_controller), GFP_KERNEL); phb = pcibios_alloc_controller(NULL);
if (phb == NULL) if (phb == NULL)
return -ENOMEM; return -ENOMEM;
pci_setup_pci_controller(phb);
phb->pci_mem_offset = phb->local_number = bus; phb->pci_mem_offset = phb->local_number = bus;
phb->first_busno = bus; phb->first_busno = bus;
......
...@@ -326,26 +326,12 @@ static int __init add_bridge(struct device_node *dev) ...@@ -326,26 +326,12 @@ static int __init add_bridge(struct device_node *dev)
dev->full_name); dev->full_name);
} }
hose = alloc_bootmem(sizeof(struct pci_controller)); hose = pcibios_alloc_controller(dev);
if (hose == NULL) if (hose == NULL)
return -ENOMEM; return -ENOMEM;
pci_setup_pci_controller(hose);
hose->arch_data = dev;
hose->first_busno = bus_range ? bus_range[0] : 0; hose->first_busno = bus_range ? bus_range[0] : 0;
hose->last_busno = bus_range ? bus_range[1] : 0xff; hose->last_busno = bus_range ? bus_range[1] : 0xff;
of_prop = alloc_bootmem(sizeof(struct property) +
sizeof(hose->global_number));
if (of_prop) {
memset(of_prop, 0, sizeof(struct property));
of_prop->name = "linux,pci-domain";
of_prop->length = sizeof(hose->global_number);
of_prop->value = (unsigned char *)&of_prop[1];
memcpy(of_prop->value, &hose->global_number, sizeof(hose->global_number));
prom_add_property(dev, of_prop);
}
disp_name = NULL; disp_name = NULL;
if (device_is_compatible(dev, "u3-agp")) { if (device_is_compatible(dev, "u3-agp")) {
setup_u3_agp(hose); setup_u3_agp(hose);
......
...@@ -2362,6 +2362,14 @@ static struct pmac_mb_def pmac_mb_defs[] = { ...@@ -2362,6 +2362,14 @@ static struct pmac_mb_def pmac_mb_defs[] = {
PMAC_TYPE_UNKNOWN_INTREPID, intrepid_features, PMAC_TYPE_UNKNOWN_INTREPID, intrepid_features,
PMAC_MB_MAY_SLEEP | PMAC_MB_HAS_FW_POWER | PMAC_MB_MOBILE, PMAC_MB_MAY_SLEEP | PMAC_MB_HAS_FW_POWER | PMAC_MB_MOBILE,
}, },
{ "PowerBook5,8", "PowerBook G4 15\"",
PMAC_TYPE_UNKNOWN_INTREPID, intrepid_features,
PMAC_MB_MAY_SLEEP | PMAC_MB_HAS_FW_POWER | PMAC_MB_MOBILE,
},
{ "PowerBook5,9", "PowerBook G4 17\"",
PMAC_TYPE_UNKNOWN_INTREPID, intrepid_features,
PMAC_MB_MAY_SLEEP | PMAC_MB_HAS_FW_POWER | PMAC_MB_MOBILE,
},
{ "PowerBook6,1", "PowerBook G4 12\"", { "PowerBook6,1", "PowerBook G4 12\"",
PMAC_TYPE_UNKNOWN_INTREPID, intrepid_features, PMAC_TYPE_UNKNOWN_INTREPID, intrepid_features,
PMAC_MB_MAY_SLEEP | PMAC_MB_HAS_FW_POWER | PMAC_MB_MOBILE, PMAC_MB_MAY_SLEEP | PMAC_MB_HAS_FW_POWER | PMAC_MB_MOBILE,
......
...@@ -640,15 +640,16 @@ static void __init setup_u3_ht(struct pci_controller* hose) ...@@ -640,15 +640,16 @@ static void __init setup_u3_ht(struct pci_controller* hose)
* the reg address cell, we shall fix that by killing struct * the reg address cell, we shall fix that by killing struct
* reg_property and using some accessor functions instead * reg_property and using some accessor functions instead
*/ */
hose->cfg_data = (volatile unsigned char *)ioremap(0xf2000000, 0x02000000); hose->cfg_data = (volatile unsigned char *)ioremap(0xf2000000,
0x02000000);
/* /*
* /ht node doesn't expose a "ranges" property, so we "remove" regions that * /ht node doesn't expose a "ranges" property, so we "remove"
* have been allocated to AGP. So far, this version of the code doesn't assign * regions that have been allocated to AGP. So far, this version of
* any of the 0xfxxxxxxx "fine" memory regions to /ht. * the code doesn't assign any of the 0xfxxxxxxx "fine" memory regions
* We need to fix that sooner or later by either parsing all child "ranges" * to /ht. We need to fix that sooner or later by either parsing all
* properties or figuring out the U3 address space decoding logic and * child "ranges" properties or figuring out the U3 address space
* then read its configuration register (if any). * decoding logic and then read its configuration register (if any).
*/ */
hose->io_base_phys = 0xf4000000; hose->io_base_phys = 0xf4000000;
hose->pci_io_size = 0x00400000; hose->pci_io_size = 0x00400000;
...@@ -671,10 +672,10 @@ static void __init setup_u3_ht(struct pci_controller* hose) ...@@ -671,10 +672,10 @@ static void __init setup_u3_ht(struct pci_controller* hose)
return; return;
} }
/* We "remove" the AGP resources from the resources allocated to HT, that /* We "remove" the AGP resources from the resources allocated to HT,
* is we create "holes". However, that code does assumptions that so far * that is we create "holes". However, that code does assumptions
* happen to be true (cross fingers...), typically that resources in the * that so far happen to be true (cross fingers...), typically that
* AGP node are properly ordered * resources in the AGP node are properly ordered
*/ */
cur = 0; cur = 0;
for (i=0; i<3; i++) { for (i=0; i<3; i++) {
...@@ -684,23 +685,30 @@ static void __init setup_u3_ht(struct pci_controller* hose) ...@@ -684,23 +685,30 @@ static void __init setup_u3_ht(struct pci_controller* hose)
/* We don't care about "fine" resources */ /* We don't care about "fine" resources */
if (res->start >= 0xf0000000) if (res->start >= 0xf0000000)
continue; continue;
/* Check if it's just a matter of "shrinking" us in one direction */ /* Check if it's just a matter of "shrinking" us in one
* direction
*/
if (hose->mem_resources[cur].start == res->start) { if (hose->mem_resources[cur].start == res->start) {
DBG("U3/HT: shrink start of %d, %08lx -> %08lx\n", DBG("U3/HT: shrink start of %d, %08lx -> %08lx\n",
cur, hose->mem_resources[cur].start, res->end + 1); cur, hose->mem_resources[cur].start,
res->end + 1);
hose->mem_resources[cur].start = res->end + 1; hose->mem_resources[cur].start = res->end + 1;
continue; continue;
} }
if (hose->mem_resources[cur].end == res->end) { if (hose->mem_resources[cur].end == res->end) {
DBG("U3/HT: shrink end of %d, %08lx -> %08lx\n", DBG("U3/HT: shrink end of %d, %08lx -> %08lx\n",
cur, hose->mem_resources[cur].end, res->start - 1); cur, hose->mem_resources[cur].end,
res->start - 1);
hose->mem_resources[cur].end = res->start - 1; hose->mem_resources[cur].end = res->start - 1;
continue; continue;
} }
/* No, it's not the case, we need a hole */ /* No, it's not the case, we need a hole */
if (cur == 2) { if (cur == 2) {
/* not enough resources for a hole, we drop part of the range */ /* not enough resources for a hole, we drop part
printk(KERN_WARNING "Running out of resources for /ht host !\n"); * of the range
*/
printk(KERN_WARNING "Running out of resources"
" for /ht host !\n");
hose->mem_resources[cur].end = res->start - 1; hose->mem_resources[cur].end = res->start - 1;
continue; continue;
} }
...@@ -714,17 +722,6 @@ static void __init setup_u3_ht(struct pci_controller* hose) ...@@ -714,17 +722,6 @@ static void __init setup_u3_ht(struct pci_controller* hose)
hose->mem_resources[cur-1].end = res->start - 1; hose->mem_resources[cur-1].end = res->start - 1;
} }
} }
/* XXX this needs to be converged between ppc32 and ppc64... */
static struct pci_controller * __init pcibios_alloc_controller(void)
{
struct pci_controller *hose;
hose = alloc_bootmem(sizeof(struct pci_controller));
if (hose)
pci_setup_pci_controller(hose);
return hose;
}
#endif #endif
/* /*
...@@ -756,11 +753,16 @@ static int __init add_bridge(struct device_node *dev) ...@@ -756,11 +753,16 @@ static int __init add_bridge(struct device_node *dev)
#endif #endif
bus_range = (int *) get_property(dev, "bus-range", &len); bus_range = (int *) get_property(dev, "bus-range", &len);
if (bus_range == NULL || len < 2 * sizeof(int)) { if (bus_range == NULL || len < 2 * sizeof(int)) {
printk(KERN_WARNING "Can't get bus-range for %s, assume bus 0\n", printk(KERN_WARNING "Can't get bus-range for %s, assume"
dev->full_name); " bus 0\n", dev->full_name);
} }
/* XXX Different prototypes, to be merged */
#ifdef CONFIG_PPC64
hose = pcibios_alloc_controller(dev);
#else
hose = pcibios_alloc_controller(); hose = pcibios_alloc_controller();
#endif
if (!hose) if (!hose)
return -ENOMEM; return -ENOMEM;
hose->arch_data = dev; hose->arch_data = dev;
...@@ -768,7 +770,7 @@ static int __init add_bridge(struct device_node *dev) ...@@ -768,7 +770,7 @@ static int __init add_bridge(struct device_node *dev)
hose->last_busno = bus_range ? bus_range[1] : 0xff; hose->last_busno = bus_range ? bus_range[1] : 0xff;
disp_name = NULL; disp_name = NULL;
#ifdef CONFIG_POWER4 #ifdef CONFIG_PPC64
if (device_is_compatible(dev, "u3-agp")) { if (device_is_compatible(dev, "u3-agp")) {
setup_u3_agp(hose); setup_u3_agp(hose);
disp_name = "U3-AGP"; disp_name = "U3-AGP";
......
...@@ -51,6 +51,7 @@ ...@@ -51,6 +51,7 @@
#include "plpar_wrappers.h" #include "plpar_wrappers.h"
#ifdef DEBUG #ifdef DEBUG
#include <asm/udbg.h>
#define DBG(fmt...) udbg_printf(fmt) #define DBG(fmt...) udbg_printf(fmt)
#else #else
#define DBG(fmt...) #define DBG(fmt...)
......
...@@ -602,7 +602,19 @@ void parse_bootinfo(struct bi_record *rec) ...@@ -602,7 +602,19 @@ void parse_bootinfo(struct bi_record *rec)
#endif /* CONFIG_BLK_DEV_INITRD */ #endif /* CONFIG_BLK_DEV_INITRD */
#ifdef CONFIG_PPC_MULTIPLATFORM #ifdef CONFIG_PPC_MULTIPLATFORM
case BI_MACHTYPE: case BI_MACHTYPE:
_machine = data[0]; /* Machine types changed with the merge. Since the
* bootinfo are now deprecated, we can just hard code
* the appropriate conversion here for when we are
* called with yaboot which passes us a machine type
* this way.
*/
switch(data[0]) {
case 1: _machine = _MACH_prep; break;
case 2: _machine = _MACH_Pmac; break;
case 4: _machine = _MACH_chrp; break;
default:
_machine = data[0];
}
break; break;
#endif #endif
case BI_MEMSIZE: case BI_MEMSIZE:
......
...@@ -597,21 +597,20 @@ void update_mmu_cache(struct vm_area_struct *vma, unsigned long address, ...@@ -597,21 +597,20 @@ void update_mmu_cache(struct vm_area_struct *vma, unsigned long address,
if (pfn_valid(pfn)) { if (pfn_valid(pfn)) {
struct page *page = pfn_to_page(pfn); struct page *page = pfn_to_page(pfn);
if (!PageReserved(page)
&& !test_bit(PG_arch_1, &page->flags)) {
if (vma->vm_mm == current->active_mm) {
#ifdef CONFIG_8xx #ifdef CONFIG_8xx
/* On 8xx, cache control instructions (particularly /* On 8xx, the TLB handlers work in 2 stages:
* "dcbst" from flush_dcache_icache) fault as write * First, a zeroed entry is loaded by TLBMiss handler,
* operation if there is an unpopulated TLB entry * which causes the TLBError handler to be triggered.
* for the address in question. To workaround that, * That means the zeroed TLB has to be invalidated
* we invalidate the TLB here, thus avoiding dcbst * whenever a page miss occurs.
* misbehaviour. */
*/ _tlbie(address);
_tlbie(address);
#endif #endif
if (!PageReserved(page)
&& !test_bit(PG_arch_1, &page->flags)) {
if (vma->vm_mm == current->active_mm)
__flush_dcache_icache((void *) address); __flush_dcache_icache((void *) address);
} else else
flush_dcache_icache_page(page); flush_dcache_icache_page(page);
set_bit(PG_arch_1, &page->flags); set_bit(PG_arch_1, &page->flags);
} }
......
...@@ -184,7 +184,9 @@ xmon_map_scc(void) ...@@ -184,7 +184,9 @@ xmon_map_scc(void)
sccc = base + (addr & ~PAGE_MASK); sccc = base + (addr & ~PAGE_MASK);
sccd = sccc + 0x10; sccd = sccc + 0x10;
} else { }
#ifdef CONFIG_PPC_CHRP
else {
base = (volatile unsigned char *) isa_io_base; base = (volatile unsigned char *) isa_io_base;
if (_machine == _MACH_chrp) if (_machine == _MACH_chrp)
base = (volatile unsigned char *) base = (volatile unsigned char *)
...@@ -200,6 +202,7 @@ xmon_map_scc(void) ...@@ -200,6 +202,7 @@ xmon_map_scc(void)
RXRDY = 1; RXRDY = 1;
DLAB = 0x80; DLAB = 0x80;
} }
#endif /* CONFIG_PPC_CHRP */
#elif defined(CONFIG_GEMINI) #elif defined(CONFIG_GEMINI)
/* should already be mapped by the kernel boot */ /* should already be mapped by the kernel boot */
sccc = (volatile unsigned char *) 0xffeffb0d; sccc = (volatile unsigned char *) 0xffeffb0d;
......
...@@ -14,7 +14,6 @@ ...@@ -14,7 +14,6 @@
extern unsigned long isa_io_base; extern unsigned long isa_io_base;
extern void pci_setup_pci_controller(struct pci_controller *hose);
extern void pci_setup_phb_io(struct pci_controller *hose, int primary); extern void pci_setup_phb_io(struct pci_controller *hose, int primary);
extern void pci_setup_phb_io_dynamic(struct pci_controller *hose, int primary); extern void pci_setup_phb_io_dynamic(struct pci_controller *hose, int primary);
......
...@@ -11,7 +11,7 @@ ...@@ -11,7 +11,7 @@
#define VDSO32_MBASE VDSO32_LBASE #define VDSO32_MBASE VDSO32_LBASE
#define VDSO64_MBASE VDSO64_LBASE #define VDSO64_MBASE VDSO64_LBASE
#define VDSO_VERSION_STRING LINUX_2.6.12 #define VDSO_VERSION_STRING LINUX_2.6.15
/* Define if 64 bits VDSO has procedure descriptors */ /* Define if 64 bits VDSO has procedure descriptors */
#undef VDS64_HAS_DESCRIPTORS #undef VDS64_HAS_DESCRIPTORS
......
...@@ -28,7 +28,7 @@ extern void pgd_free(pgd_t *pgd); ...@@ -28,7 +28,7 @@ extern void pgd_free(pgd_t *pgd);
#define pmd_populate_kernel(mm, pmd, pte) \ #define pmd_populate_kernel(mm, pmd, pte) \
(pmd_val(*(pmd)) = (unsigned long)pte | _PMD_PRESENT) (pmd_val(*(pmd)) = (unsigned long)pte | _PMD_PRESENT)
#define pmd_populate(mm, pmd, pte) \ #define pmd_populate(mm, pmd, pte) \
(pmd_val(*(pmd)) = (unsigned long)page_to_virt(pte) | _PMD_PRESENT) (pmd_val(*(pmd)) = (unsigned long)lowmem_page_address(pte) | _PMD_PRESENT)
#endif #endif
extern pte_t *pte_alloc_one_kernel(struct mm_struct *mm, unsigned long addr); extern pte_t *pte_alloc_one_kernel(struct mm_struct *mm, unsigned long addr);
......
...@@ -61,12 +61,14 @@ struct pci_dn { ...@@ -61,12 +61,14 @@ struct pci_dn {
int busno; /* for pci devices */ int busno; /* for pci devices */
int bussubno; /* for pci devices */ int bussubno; /* for pci devices */
int devfn; /* for pci devices */ int devfn; /* for pci devices */
#ifdef CONFIG_PPC_PSERIES
int eeh_mode; /* See eeh.h for possible EEH_MODEs */ int eeh_mode; /* See eeh.h for possible EEH_MODEs */
int eeh_config_addr; int eeh_config_addr;
int eeh_check_count; /* # times driver ignored error */ int eeh_check_count; /* # times driver ignored error */
int eeh_freeze_count; /* # times this device froze up. */ int eeh_freeze_count; /* # times this device froze up. */
int eeh_is_bridge; /* device is pci-to-pci bridge */ int eeh_is_bridge; /* device is pci-to-pci bridge */
#endif
int pci_ext_config_space; /* for pci devices */ int pci_ext_config_space; /* for pci devices */
struct pci_controller *phb; /* for pci devices */ struct pci_controller *phb; /* for pci devices */
struct iommu_table *iommu_table; /* for phb's or bridges */ struct iommu_table *iommu_table; /* for phb's or bridges */
...@@ -74,9 +76,9 @@ struct pci_dn { ...@@ -74,9 +76,9 @@ struct pci_dn {
struct device_node *node; /* back-pointer to the device_node */ struct device_node *node; /* back-pointer to the device_node */
#ifdef CONFIG_PPC_ISERIES #ifdef CONFIG_PPC_ISERIES
struct list_head Device_List; struct list_head Device_List;
int Irq; /* Assigned IRQ */ int Irq; /* Assigned IRQ */
int Flags; /* Possible flags(disable/bist)*/ int Flags; /* Possible flags(disable/bist)*/
u8 LogicalSlot; /* Hv Slot Index for Tces */ u8 LogicalSlot; /* Hv Slot Index for Tces */
#endif #endif
u32 config_space[16]; /* saved PCI config space */ u32 config_space[16]; /* saved PCI config space */
}; };
...@@ -136,6 +138,10 @@ static inline struct pci_controller *pci_bus_to_host(struct pci_bus *bus) ...@@ -136,6 +138,10 @@ static inline struct pci_controller *pci_bus_to_host(struct pci_bus *bus)
return PCI_DN(busdn)->phb; return PCI_DN(busdn)->phb;
} }
extern struct pci_controller *
pcibios_alloc_controller(struct device_node *dev);
extern void pcibios_free_controller(struct pci_controller *phb);
/* Return values for ppc_md.pci_probe_mode function */ /* Return values for ppc_md.pci_probe_mode function */
#define PCI_PROBE_NONE -1 /* Don't look at this bus at all */ #define PCI_PROBE_NONE -1 /* Don't look at this bus at all */
#define PCI_PROBE_NORMAL 0 /* Do normal PCI probing */ #define PCI_PROBE_NORMAL 0 /* Do normal PCI probing */
......
...@@ -1194,8 +1194,14 @@ static void tumbler_resume(pmac_t *chip) ...@@ -1194,8 +1194,14 @@ static void tumbler_resume(pmac_t *chip)
tumbler_set_master_volume(mix); tumbler_set_master_volume(mix);
if (chip->update_automute) if (chip->update_automute)
chip->update_automute(chip, 0); chip->update_automute(chip, 0);
if (mix->headphone_irq >= 0) if (mix->headphone_irq >= 0) {
unsigned char val;
enable_irq(mix->headphone_irq); enable_irq(mix->headphone_irq);
/* activate headphone status interrupts */
val = do_gpio_read(&mix->hp_detect);
do_gpio_write(&mix->hp_detect, val | 0x80);
}
if (mix->lineout_irq >= 0) if (mix->lineout_irq >= 0)
enable_irq(mix->lineout_irq); enable_irq(mix->lineout_irq);
} }
......
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