[PATCH 2/2] powerpc: Add an ePAPR compliant boot wrapper
This is a first cut at making bootwrapper code which will produce a zImage compliant with the requirements set down by ePAPR. This is a very simple bootwrapper, taking the device tree blob supplied by the ePAPR boot program and passing it on to the kernel. It builds on the earlier patch to build a relocatable ET_DYN zImage to meet the other ePAPR image requirements. For good measure we have some paranoid checks which will generate warnings if some of the ePAPR entry condition guarantees are not met. Signed-off-by: David Gibson Signed-off-by: Michael Ellerman --- arch/powerpc/Kconfig |6 arch/powerpc/boot/Makefile |4 ++- arch/powerpc/boot/epapr.c | 69 arch/powerpc/boot/wrapper |4 ++ 4 files changed, 82 insertions(+), 1 deletions(-) diff --git a/arch/powerpc/Kconfig b/arch/powerpc/Kconfig index b6ff882..2629c21 100644 --- a/arch/powerpc/Kconfig +++ b/arch/powerpc/Kconfig @@ -193,6 +193,12 @@ config SYS_SUPPORTS_APM_EMULATION default y if PMAC_APM_EMU bool +config EPAPR_BOOT + bool + help + Used to allow a board to specify it wants an ePAPR compliant wrapper. + default n + config DEFAULT_UIMAGE bool help diff --git a/arch/powerpc/boot/Makefile b/arch/powerpc/boot/Makefile index 8917816..0e2a152 100644 --- a/arch/powerpc/boot/Makefile +++ b/arch/powerpc/boot/Makefile @@ -69,7 +69,8 @@ src-wlib := string.S crt0.S crtsavres.S stdio.c main.c \ cpm-serial.c stdlib.c mpc52xx-psc.c planetcore.c uartlite.c \ fsl-soc.c mpc8xx.c pq2.c ugecon.c src-plat := of.c cuboot-52xx.c cuboot-824x.c cuboot-83xx.c cuboot-85xx.c holly.c \ - cuboot-ebony.c cuboot-hotfoot.c treeboot-ebony.c prpmc2800.c \ + cuboot-ebony.c cuboot-hotfoot.c epapr.c treeboot-ebony.c \ + prpmc2800.c \ ps3-head.S ps3-hvcall.S ps3.c treeboot-bamboo.c cuboot-8xx.c \ cuboot-pq2.c cuboot-sequoia.c treeboot-walnut.c \ cuboot-bamboo.c cuboot-mpc7448hpc2.c cuboot-taishan.c \ @@ -182,6 +183,7 @@ image-$(CONFIG_PPC_HOLLY) += dtbImage.holly image-$(CONFIG_PPC_PRPMC2800) += dtbImage.prpmc2800 image-$(CONFIG_PPC_ISERIES)+= zImage.iseries image-$(CONFIG_DEFAULT_UIMAGE) += uImage +image-$(CONFIG_EPAPR_BOOT) += zImage.epapr # # Targets which embed a device tree blob diff --git a/arch/powerpc/boot/epapr.c b/arch/powerpc/boot/epapr.c new file mode 100644 index 000..8642c34 --- /dev/null +++ b/arch/powerpc/boot/epapr.c @@ -0,0 +1,69 @@ +/* + * Bootwrapper for ePAPR compliant firmwares + * + * Copyright 2010 David Gibson , IBM Corporation. + * + * Based on earlier bootwrappers by: + * (c) Benjamin Herrenschmidt , IBM Corp,\ + * and + * Scott Wood + * Copyright (c) 2007 Freescale Semiconductor, Inc. + * + * This program is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 as published + * by the Free Software Foundation. + */ + +#include "ops.h" +#include "stdio.h" +#include "planetcore.h" +#include "dcr.h" +#include "4xx.h" +#include "io.h" +#include + +BSS_STACK(4096); + +#define EPAPR_SMAGIC 0x65504150 +#define EPAPR_EMAGIC 0x45504150 + +static unsigned epapr_magic; +static unsigned long ima_size; +static unsigned long fdt_addr; + +static void platform_fixups(void) +{ + if ((epapr_magic != EPAPR_EMAGIC) + && (epapr_magic != EPAPR_SMAGIC)) + fatal("r6 contained 0x%08x instead of ePAPR magic number\n", + epapr_magic); + + if (ima_size < (unsigned long)_end) + printf("WARNING: Image loaded outside IMA!" + " (_end=%p, ima_size=0x%lx)\n", _end, ima_size); + if (ima_size < fdt_addr) + printf("WARNING: Device tree address is outside IMA!" + "(fdt_addr=0x%lx, ima_size=0x%lx)\n", fdt_addr, + ima_size); + if (ima_size < fdt_addr + fdt_totalsize((void *)fdt_addr)) + printf("WARNING: Device tree extends outside IMA!" + " (fdt_addr=0x%lx, size=0x%x, ima_size=0x%lx\n", + fdt_addr, fdt_totalsize((void *)fdt_addr), ima_size); +} + +void platform_init(unsigned long r3, unsigned long r4, unsigned long r5, + unsigned long r6, unsigned long r7) +{ + epapr_magic = r6; + ima_size = r7; + fdt_addr = r3; + + /* FIXME: we should process reserve entries */ + + simple_alloc_init(_end, ima_size - (unsigned long)_end, 32, 64); + + fdt_init((void *)fdt_addr); + + serial_console_init(); + platform_ops.fixups = platform_fixups; +} diff --git a/arch/powerpc/boot/wrapper b/arch/powerpc/boot/wrapper index fef5278..dfa29cb 100755 --- a/arch/powerpc/boot/wrapper +++ b/arch/powerpc/boot/wrapper @@ -247,6 +247,10 @@ gamecube|wii) treeboo
[PATCH 1/2] powerpc: Allow building the zImage wrapper as a relocatable ET_DYN
This patch adds code, linker script and makefile support to allow building the zImage wrapper around the kernel as a position independent executable. This results in an ET_DYN instead of an ET_EXEC ELF output file, which can be loaded at any location by the firmware and will process its own relocations to work correctly at the loaded address. This is of interest particularly since the standard ePAPR image format must be an ET_DYN (although this patch alone is not sufficient to produce a fully ePAPR compliant boot image). Note for now we don't enable building with -pie for anything. Signed-off-by: Paul Mackerras Signed-off-by: David Gibson Signed-off-by: Michael Ellerman --- arch/powerpc/boot/crt0.S| 116 ++- arch/powerpc/boot/wrapper |9 ++- arch/powerpc/boot/zImage.coff.lds.S |6 +- arch/powerpc/boot/zImage.lds.S | 57 +++-- 4 files changed, 118 insertions(+), 70 deletions(-) diff --git a/arch/powerpc/boot/crt0.S b/arch/powerpc/boot/crt0.S index f1c4dfc..0f7428a 100644 --- a/arch/powerpc/boot/crt0.S +++ b/arch/powerpc/boot/crt0.S @@ -6,16 +6,28 @@ * as published by the Free Software Foundation; either version * 2 of the License, or (at your option) any later version. * - * NOTE: this code runs in 32 bit mode and is packaged as ELF32. + * NOTE: this code runs in 32 bit mode, is position-independent, + * and is packaged as ELF32. */ #include "ppc_asm.h" .text - /* a procedure descriptor used when booting this as a COFF file */ + /* A procedure descriptor used when booting this as a COFF file. +* When making COFF, this comes first in the link and we're +* linked at 0x50. +*/ .globl _zimage_start_opd _zimage_start_opd: - .long _zimage_start, 0, 0, 0 + .long 0x50, 0, 0, 0 + +p_start: .long _start +p_etext: .long _etext +p_bss_start: .long __bss_start +p_end: .long _end + + .weak _platform_stack_top +p_pstack: .long _platform_stack_top .weak _zimage_start .globl _zimage_start @@ -24,37 +36,65 @@ _zimage_start: _zimage_start_lib: /* Work out the offset between the address we were linked at and the address where we're running. */ - bl 1f -1: mflrr0 - lis r9,1b@ha - addir9,r9,1b@l - subf. r0,r9,r0 - beq 3f /* if running at same address as linked */ + bl .+4 +p_base:mflrr10 /* r10 now points to runtime addr of p_base */ + /* grab the link address of the dynamic section in r11 */ + addis r11,r10,(_GLOBAL_OFFSET_TABLE_-p_base)@ha + lwz r11,(_GLOBAL_OFFSET_TABLE_-p_base)@l(r11) + cmpwi r11,0 + beq 3f /* if not linked -pie */ + /* get the runtime address of the dynamic section in r12 */ + .weak __dynamic_start + addis r12,r10,(__dynamic_start-p_base)@ha + addir12,r12,(__dynamic_start-p_base)@l + subfr11,r11,r12 /* runtime - linktime offset */ + + /* The dynamic section contains a series of tagged entries. +* We need the RELA and RELACOUNT entries. */ +RELA = 7 +RELACOUNT = 0x6ff9 + li r9,0 + li r0,0 +9: lwz r8,0(r12) /* get tag */ + cmpwi r8,0 + beq 10f /* end of list */ + cmpwi r8,RELA + bne 11f + lwz r9,4(r12) /* get RELA pointer in r9 */ + b 12f +11:addis r8,r8,(-RELACOUNT)@ha + cmpwi r8,RELACOUNT@l + bne 12f + lwz r0,4(r12) /* get RELACOUNT value in r0 */ +12:addir12,r12,8 + b 9b - /* The .got2 section contains a list of addresses, so add - the address offset onto each entry. */ - lis r9,__got2_start@ha - addir9,r9,__got2_start@l - lis r8,__got2_end@ha - addir8,r8,__got2_end@l - subf. r8,r9,r8 + /* The relocation section contains a list of relocations. +* We now do the R_PPC_RELATIVE ones, which point to words +* which need to be initialized with addend + offset. +* The R_PPC_RELATIVE ones come first and there are RELACOUNT +* of them. */ +10:/* skip relocation if we don't have both */ + cmpwi r0,0 beq 3f - srwi. r8,r8,2 - mtctr r8 - add r9,r0,r9 -2: lwz r8,0(r9) - add r8,r8,r0 - stw r8,0(r9) - addir9,r9,4 + cmpwi r9,0 + beq 3f + + add r9,r9,r11 /* Relocate RELA pointer */ + mtctr r0 +2: lbz r0,4+3(r9) /* ELF32_R_INFO(reloc->r_info) */ + cmpwi r0,22 /* R_PPC_RELATIVE */ + bne 3f + lwz r12,0(r9) /* reloc->r_offset */ + lwz r0,8(r9)/* reloc->r_addend */ + a
[PATCH 2/2] powerpc: Fix slice state initialization for Book3E
On Book3E, MMU_NO_CONTEXT != 0, but the slice_mm_new_context() macro assumes that it is. This means that the map of the page sizes for each slice is always initialized to zeroes (which happens to be 4k pages), rather than to the correct default base page size value - which might be 64k. This patch corrects the problem. Signed-off-by: David Gibson Signed-off-by: Michael Ellerman --- arch/powerpc/include/asm/page_64.h |2 +- 1 files changed, 1 insertions(+), 1 deletions(-) diff --git a/arch/powerpc/include/asm/page_64.h b/arch/powerpc/include/asm/page_64.h index 932f88d..1cc558c 100644 --- a/arch/powerpc/include/asm/page_64.h +++ b/arch/powerpc/include/asm/page_64.h @@ -130,7 +130,7 @@ extern void slice_set_user_psize(struct mm_struct *mm, unsigned int psize); extern void slice_set_range_psize(struct mm_struct *mm, unsigned long start, unsigned long len, unsigned int psize); -#define slice_mm_new_context(mm) ((mm)->context.id == 0) +#define slice_mm_new_context(mm) ((mm)->context.id == MMU_NO_CONTEXT) #endif /* __ASSEMBLY__ */ #else -- 1.7.1 ___ Linuxppc-dev mailing list Linuxppc-dev@lists.ozlabs.org https://lists.ozlabs.org/listinfo/linuxppc-dev
[PATCH 1/2] powerpc: Standardise on MMU_NO_CONTEXT
Use MMU_NO_CONTEXT as the initialiser for mm_context.id on nohash and hash64. Signed-off-by: Michael Ellerman --- arch/powerpc/include/asm/tlbflush.h |2 ++ arch/powerpc/mm/mmu_context_hash64.c |3 +-- 2 files changed, 3 insertions(+), 2 deletions(-) v2: Updated to not break 40x. diff --git a/arch/powerpc/include/asm/tlbflush.h b/arch/powerpc/include/asm/tlbflush.h index d50a380..81143fc 100644 --- a/arch/powerpc/include/asm/tlbflush.h +++ b/arch/powerpc/include/asm/tlbflush.h @@ -79,6 +79,8 @@ static inline void local_flush_tlb_mm(struct mm_struct *mm) #elif defined(CONFIG_PPC_STD_MMU_64) +#define MMU_NO_CONTEXT 0 + /* * TLB flushing for 64-bit hash-MMU CPUs */ diff --git a/arch/powerpc/mm/mmu_context_hash64.c b/arch/powerpc/mm/mmu_context_hash64.c index 2535828..c585944 100644 --- a/arch/powerpc/mm/mmu_context_hash64.c +++ b/arch/powerpc/mm/mmu_context_hash64.c @@ -31,7 +31,6 @@ static DEFINE_IDA(mmu_context_ida); * Each segment contains 2^28 bytes. Each context maps 2^44 bytes, * so we can support 2^19-1 contexts (19 == 35 + 28 - 44). */ -#define NO_CONTEXT 0 #define MAX_CONTEXT((1UL << 19) - 1) int __init_new_context(void) @@ -95,5 +94,5 @@ void destroy_context(struct mm_struct *mm) { __destroy_context(mm->context.id); subpage_prot_free(mm); - mm->context.id = NO_CONTEXT; + mm->context.id = MMU_NO_CONTEXT; } -- 1.7.1 ___ Linuxppc-dev mailing list Linuxppc-dev@lists.ozlabs.org https://lists.ozlabs.org/listinfo/linuxppc-dev
RE: Problem with mini-PCI-E slot on P2020RDB
Hi Felix, > -Original Message- > From: linuxppc-dev-bounces+priyanka.jain=freescale@lists.ozlabs.org > [mailto:linuxppc-dev- > bounces+priyanka.jain=freescale@lists.ozlabs.org] On Behalf Of Felix > Radensky > Sent: Tuesday, April 12, 2011 10:24 AM > To: Aggrwal Poonam-B10812 > Cc: linuxppc-...@ozlabs.org; Gupta Maneesh-B18878; Kushwaha Prabhakar- > B32579 > Subject: Re: Problem with mini-PCI-E slot on P2020RDB > > Hi Poonam > > On 04/12/2011 07:05 AM, Aggrwal Poonam-B10812 wrote: > > Hello Felix > > > > Please find some comments inline. > > > > Regards > > Poonam > > > >> -Original Message- > >> From: Kushwaha Prabhakar-B32579 > >> Sent: Tuesday, April 12, 2011 9:26 AM > >> To: Aggrwal Poonam-B10812 > >> Subject: FW: Problem with mini-PCI-E slot on P2020RDB > >> > >> > >> > >> -Original Message- > >> From: Felix Radensky [mailto:fe...@embedded-sol.com] > >> Sent: Monday, April 11, 2011 7:16 PM > >> To: Kushwaha Prabhakar-B32579 > >> Cc: Fabian Bertholm; Leon Woestenberg; linuxppc-...@ozlabs.org; > >> Mahajan Vivek-B08308; Aggrwal Poonam-B10812; Gupta Maneesh-B18878 > >> Subject: Re: Problem with mini-PCI-E slot on P2020RDB > >> > >> Hi Prabhakar, > >> > >> On 04/11/2011 02:09 PM, Kushwaha Prabhakar-B32579 wrote: > >>> Hi, > >>> > >>> Yes. It wil be applicable for all revisions. > >>> > >>> Regards, > >>> Prabhakar > >>> > >> I'm sure this is applicable to all revisions, but it doesn't > >> necessarily makes things work. The problem I've reported back in 2009 > >> still exists on P2020RDB revC, even if I use the latest u-boot and > >> kernel and make device tree changes that you've suggested. > >> I've attached the boot log. > > As such there is no hardware fix related to this issue between RevC to > RevD. The solution was a software patch to resolve the issue related to > IRQ0. > > Are you sure ? Please take a look at Freescale document titled > "P1020E/P2020E RDB System Errata". > There's errata CE10, IRQ0 held low. It is fixed in Rev D. Vivek Mahajan, > who looked at the issue back in 2009, estimated that problem can be > related to missing pull-up on IRQ0. This is exactly what is fixed in Rev > D. > We are looking into it and are in discussion with design team. We will keep you posted for the same.. --Prabhakar ___ Linuxppc-dev mailing list Linuxppc-dev@lists.ozlabs.org https://lists.ozlabs.org/listinfo/linuxppc-dev
Re: [PATCH] powerpc: Standardise on MMU_NO_CONTEXT
On Mon, 2011-04-11 at 16:35 +1000, Michael Ellerman wrote: > Use MMU_NO_CONTEXT as the initialiser for mm_context.id on book3e > and hash64. This breaks 40x, new patch coming. cheers signature.asc Description: This is a digitally signed message part ___ Linuxppc-dev mailing list Linuxppc-dev@lists.ozlabs.org https://lists.ozlabs.org/listinfo/linuxppc-dev
[git pull] Please pull powerpc.git merge branch
The following changes since commit c60e65d7863620945d498a8ac60181077879599c: powerpc/pseries: Fix build without CONFIG_HOTPLUG_CPU (2011-04-05 16:22:11 +1000) are available in the git repository at: git://git.kernel.org/pub/scm/linux/kernel/git/galak/powerpc.git merge Kumar Gala (2): powerpc/book3e: Fix CPU feature handling on 64-bit e5500 powerpc/85xx: disable Suspend support if SMP enabled Prabhakar Kushwaha (2): powerpc/85xx: Don't add disabled PCIe devices powerpc: Check device status before adding serial device Scott Wood (1): powerpc/e500mc: Remove CPU_FTR_MAYBE_CAN_NAP/CPU_FTR_MAYBE_CAN_DOZE arch/powerpc/Kconfig|2 +- arch/powerpc/include/asm/cputable.h | 16 ++-- arch/powerpc/kernel/cputable.c |2 +- arch/powerpc/kernel/legacy_serial.c |8 +--- arch/powerpc/sysdev/fsl_pci.c |5 + 5 files changed, 26 insertions(+), 7 deletions(-) ___ Linuxppc-dev mailing list Linuxppc-dev@lists.ozlabs.org https://lists.ozlabs.org/listinfo/linuxppc-dev
RE: [PATCH 0/1] ppc4xx: Fix PCIe scanning for the 460SX
You originally submitted the support for 460ex. Can you chime in (and review Ayman patch) please ? [Marri] Ben sure I will review it and send you my feedback in couple of days. ___ Linuxppc-dev mailing list Linuxppc-dev@lists.ozlabs.org https://lists.ozlabs.org/listinfo/linuxppc-dev
Re: [regression] 2.6.39-rc[1-3] fail to boot on G5 PowerMac
> > Finally I tried using g5_defconfig with 2.6.39-rc3. First boot > > it did get to /sbin/init, but udev init took much longer than > > normal and threw errors. After a warm reboot the same kernel > > hung as usual, this time before framebuffer init. > > > > 2.6.38 works just fine. > > Hrm, that must be new, I remember testing something around -rc1 on a > similar machine and it worked fine. I'll see if I can find something > out. Ok so on a PowerMac7,3 here (dual 2.5Ghz and mostly same HW or at least very similar) I can't reproduce your problem with a g5_defconfig. Your config doesn't work well for me (I don't do modules, I netboot), but after adding a few things to it, it seems to work fine as well. I added radeonfb and the radeon DRM (not KMS) and I added eventfd, timerfd and input events. So I'm afraid I'm going to need you to bisect that one to find out what exact change caused the breakage for you. Cheers, Ben. ___ Linuxppc-dev mailing list Linuxppc-dev@lists.ozlabs.org https://lists.ozlabs.org/listinfo/linuxppc-dev
Re: [regression] 2.6.39-rc[1-3] fail to boot on G5 PowerMac
On Tue, 2011-04-12 at 19:30 +0200, Mikael Pettersson wrote: > I'm unable to boot any post-2.6.38 kernel on my G5 (PowerMac7,2 > with dual 1.8GHz processors). Basically the kernel hangs at varying > points before /sbin/init is started, sometimes before and sometimes > after the framebuffer has taken over the console. There are no visible > errors on the console, only a hang. Sorry, got no serial console > set up yet. My 2.6.39-rc3 .config is attached below. > > Finally I tried using g5_defconfig with 2.6.39-rc3. First boot > it did get to /sbin/init, but udev init took much longer than > normal and threw errors. After a warm reboot the same kernel > hung as usual, this time before framebuffer init. > > 2.6.38 works just fine. Hrm, that must be new, I remember testing something around -rc1 on a similar machine and it worked fine. I'll see if I can find something out. Thanks ! Cheers, Ben. > /Mikael > > # > # Automatically generated make config: don't edit > # > CONFIG_PPC64=y > > # > # Processor support > # > CONFIG_PPC_BOOK3S_64=y > # CONFIG_PPC_BOOK3E_64 is not set > CONFIG_PPC_BOOK3S=y > CONFIG_POWER4_ONLY=y > CONFIG_POWER4=y > # CONFIG_TUNE_CELL is not set > CONFIG_PPC_FPU=y > CONFIG_ALTIVEC=y > # CONFIG_VSX is not set > CONFIG_PPC_STD_MMU=y > CONFIG_PPC_STD_MMU_64=y > CONFIG_PPC_MM_SLICES=y > CONFIG_VIRT_CPU_ACCOUNTING=y > CONFIG_PPC_HAVE_PMU_SUPPORT=y > CONFIG_SMP=y > CONFIG_NR_CPUS=2 > CONFIG_64BIT=y > CONFIG_WORD_SIZE=64 > CONFIG_ARCH_PHYS_ADDR_T_64BIT=y > CONFIG_ARCH_DMA_ADDR_T_64BIT=y > CONFIG_MMU=y > CONFIG_GENERIC_CMOS_UPDATE=y > CONFIG_GENERIC_TIME_VSYSCALL=y > CONFIG_GENERIC_CLOCKEVENTS=y > CONFIG_HAVE_SETUP_PER_CPU_AREA=y > CONFIG_NEED_PER_CPU_EMBED_FIRST_CHUNK=y > CONFIG_NR_IRQS=256 > CONFIG_STACKTRACE_SUPPORT=y > CONFIG_HAVE_LATENCYTOP_SUPPORT=y > CONFIG_TRACE_IRQFLAGS_SUPPORT=y > CONFIG_LOCKDEP_SUPPORT=y > CONFIG_RWSEM_XCHGADD_ALGORITHM=y > CONFIG_ARCH_HAS_ILOG2_U32=y > CONFIG_ARCH_HAS_ILOG2_U64=y > CONFIG_GENERIC_HWEIGHT=y > CONFIG_GENERIC_FIND_NEXT_BIT=y > CONFIG_GENERIC_FIND_BIT_LE=y > CONFIG_ARCH_NO_VIRT_TO_BUS=y > CONFIG_PPC=y > CONFIG_EARLY_PRINTK=y > CONFIG_COMPAT=y > CONFIG_SYSVIPC_COMPAT=y > CONFIG_SCHED_OMIT_FRAME_POINTER=y > CONFIG_ARCH_MAY_HAVE_PC_FDC=y > CONFIG_PPC_OF=y > # CONFIG_PPC_UDBG_16550 is not set > CONFIG_GENERIC_TBSYNC=y > CONFIG_AUDIT_ARCH=y > CONFIG_GENERIC_BUG=y > # CONFIG_DEFAULT_UIMAGE is not set > CONFIG_ARCH_HIBERNATION_POSSIBLE=y > CONFIG_ARCH_SUSPEND_POSSIBLE=y > # CONFIG_PPC_DCR_NATIVE is not set > # CONFIG_PPC_DCR_MMIO is not set > # CONFIG_PPC_OF_PLATFORM_PCI is not set > CONFIG_ARCH_SUPPORTS_DEBUG_PAGEALLOC=y > CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" > CONFIG_CONSTRUCTORS=y > CONFIG_HAVE_IRQ_WORK=y > > # > # General setup > # > CONFIG_EXPERIMENTAL=y > CONFIG_INIT_ENV_ARG_LIMIT=32 > CONFIG_CROSS_COMPILE="" > CONFIG_LOCALVERSION="" > # CONFIG_LOCALVERSION_AUTO is not set > CONFIG_SWAP=y > CONFIG_SYSVIPC=y > CONFIG_SYSVIPC_SYSCTL=y > # CONFIG_POSIX_MQUEUE is not set > # CONFIG_BSD_PROCESS_ACCT is not set > # CONFIG_FHANDLE is not set > # CONFIG_TASKSTATS is not set > # CONFIG_AUDIT is not set > CONFIG_HAVE_GENERIC_HARDIRQS=y > > # > # IRQ subsystem > # > CONFIG_GENERIC_HARDIRQS=y > CONFIG_HAVE_SPARSE_IRQ=y > CONFIG_GENERIC_IRQ_SHOW=y > CONFIG_GENERIC_IRQ_SHOW_LEVEL=y > # CONFIG_SPARSE_IRQ is not set > > # > # RCU Subsystem > # > CONFIG_TREE_RCU=y > # CONFIG_PREEMPT_RCU is not set > # CONFIG_RCU_TRACE is not set > CONFIG_RCU_FANOUT=64 > # CONFIG_RCU_FANOUT_EXACT is not set > # CONFIG_RCU_FAST_NO_HZ is not set > # CONFIG_TREE_RCU_TRACE is not set > # CONFIG_IKCONFIG is not set > CONFIG_LOG_BUF_SHIFT=17 > # CONFIG_NAMESPACES is not set > # CONFIG_SCHED_AUTOGROUP is not set > # CONFIG_SYSFS_DEPRECATED is not set > # CONFIG_RELAY is not set > CONFIG_BLK_DEV_INITRD=y > CONFIG_INITRAMFS_SOURCE="" > CONFIG_RD_GZIP=y > # CONFIG_RD_BZIP2 is not set > # CONFIG_RD_LZMA is not set > # CONFIG_RD_XZ is not set > # CONFIG_RD_LZO is not set > CONFIG_CC_OPTIMIZE_FOR_SIZE=y > CONFIG_SYSCTL=y > CONFIG_ANON_INODES=y > CONFIG_EXPERT=y > CONFIG_EMBEDDED=y > CONFIG_SYSCTL_SYSCALL=y > CONFIG_KALLSYMS=y > # CONFIG_KALLSYMS_ALL is not set > # CONFIG_KALLSYMS_EXTRA_PASS is not set > CONFIG_HOTPLUG=y > CONFIG_PRINTK=y > CONFIG_BUG=y > CONFIG_ELF_CORE=y > CONFIG_BASE_FULL=y > CONFIG_FUTEX=y > CONFIG_EPOLL=y > CONFIG_SIGNALFD=y > # CONFIG_TIMERFD is not set > # CONFIG_EVENTFD is not set > CONFIG_SHMEM=y > # CONFIG_AIO is not set > CONFIG_HAVE_PERF_EVENTS=y > > # > # Kernel Performance Events And Counters > # > # CONFIG_PERF_EVENTS is not set > # CONFIG_PERF_COUNTERS is not set > # CONFIG_VM_EVENT_COUNTERS is not set > CONFIG_PCI_QUIRKS=y > CONFIG_SLUB_DEBUG=y > # CONFIG_COMPAT_BRK is not set > # CONFIG_SLAB is not set > CONFIG_SLUB=y > # CONFIG_SLOB is not set > # CONFIG_PROFILING is not set > CONFIG_HAVE_OPROFILE=y > # CONFIG_KPROBES is not set > CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y > CONFIG_HAVE_SYSCALL_WRAPPERS=y > CONFIG_HAVE_IOREMAP_PROT=y >
Re: [PATCH RESENT] net: ps3_gelic: convert to hw_features
From: Michał Mirosław Date: Sun, 10 Apr 2011 16:49:55 +0200 (CEST) > Signed-off-by: Michał Mirosław Applied. ___ Linuxppc-dev mailing list Linuxppc-dev@lists.ozlabs.org https://lists.ozlabs.org/listinfo/linuxppc-dev
Re: [E1000-devel] [PATCH] driver/e1000e: Fix default interrupt mode select
On Mon, 2011-04-11 at 21:56 -0700, Prabhakar Kushwaha wrote: > From: Prabhakar > > The Intel e1000 device driver defaults to MSI interrupt mode, even if > MSI > support is not enabled > > Signed-off-by: Jin Qing > Signed-off-by: Prabhakar Kushwaha > --- > Based upon > git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux-2.6.git(branch > master) > > added netdev mail-list and e1000 mail-list & maintainer > > drivers/net/e1000e/param.c |4 > 1 files changed, 4 insertions(+), 0 deletions(-) Thanks for the patch, I have added it to my queue of e1000e patches. signature.asc Description: This is a digitally signed message part ___ Linuxppc-dev mailing list Linuxppc-dev@lists.ozlabs.org https://lists.ozlabs.org/listinfo/linuxppc-dev
Re: [PATCH] driver/e1000e: Fix default interrupt mode select
On Tue, 2011-04-12 at 14:27 -0700, David Miller wrote: > From: Prabhakar Kushwaha > Date: Tue, 12 Apr 2011 10:26:03 +0530 > > > From: Prabhakar > > > > The Intel e1000 device driver defaults to MSI interrupt mode, even if MSI > > support is not enabled > > > > Signed-off-by: Jin Qing > > Signed-off-by: Prabhakar Kushwaha > > --- > > Based upon > > git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux-2.6.git(branch > > master) > > > > added netdev mail-list and e1000 mail-list & maintainer > > Intel folks, you got this? Yes. Thanks Dave. signature.asc Description: This is a digitally signed message part ___ Linuxppc-dev mailing list Linuxppc-dev@lists.ozlabs.org https://lists.ozlabs.org/listinfo/linuxppc-dev
Re: [PATCH] driver/e1000e: Fix default interrupt mode select
From: Prabhakar Kushwaha Date: Tue, 12 Apr 2011 10:26:03 +0530 > From: Prabhakar > > The Intel e1000 device driver defaults to MSI interrupt mode, even if MSI > support is not enabled > > Signed-off-by: Jin Qing > Signed-off-by: Prabhakar Kushwaha > --- > Based upon > git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux-2.6.git(branch > master) > > added netdev mail-list and e1000 mail-list & maintainer Intel folks, you got this? ___ Linuxppc-dev mailing list Linuxppc-dev@lists.ozlabs.org https://lists.ozlabs.org/listinfo/linuxppc-dev
Re: [regression] 2.6.39-rc[1-3] fail to boot on G5 PowerMac
Hi, Uh Oh. Are we gettin' booted (no pun intended)? kevin ___ Linuxppc-dev mailing list Linuxppc-dev@lists.ozlabs.org https://lists.ozlabs.org/listinfo/linuxppc-dev
[regression] 2.6.39-rc[1-3] fail to boot on G5 PowerMac
I'm unable to boot any post-2.6.38 kernel on my G5 (PowerMac7,2 with dual 1.8GHz processors). Basically the kernel hangs at varying points before /sbin/init is started, sometimes before and sometimes after the framebuffer has taken over the console. There are no visible errors on the console, only a hang. Sorry, got no serial console set up yet. My 2.6.39-rc3 .config is attached below. Finally I tried using g5_defconfig with 2.6.39-rc3. First boot it did get to /sbin/init, but udev init took much longer than normal and threw errors. After a warm reboot the same kernel hung as usual, this time before framebuffer init. 2.6.38 works just fine. /Mikael # # Automatically generated make config: don't edit # CONFIG_PPC64=y # # Processor support # CONFIG_PPC_BOOK3S_64=y # CONFIG_PPC_BOOK3E_64 is not set CONFIG_PPC_BOOK3S=y CONFIG_POWER4_ONLY=y CONFIG_POWER4=y # CONFIG_TUNE_CELL is not set CONFIG_PPC_FPU=y CONFIG_ALTIVEC=y # CONFIG_VSX is not set CONFIG_PPC_STD_MMU=y CONFIG_PPC_STD_MMU_64=y CONFIG_PPC_MM_SLICES=y CONFIG_VIRT_CPU_ACCOUNTING=y CONFIG_PPC_HAVE_PMU_SUPPORT=y CONFIG_SMP=y CONFIG_NR_CPUS=2 CONFIG_64BIT=y CONFIG_WORD_SIZE=64 CONFIG_ARCH_PHYS_ADDR_T_64BIT=y CONFIG_ARCH_DMA_ADDR_T_64BIT=y CONFIG_MMU=y CONFIG_GENERIC_CMOS_UPDATE=y CONFIG_GENERIC_TIME_VSYSCALL=y CONFIG_GENERIC_CLOCKEVENTS=y CONFIG_HAVE_SETUP_PER_CPU_AREA=y CONFIG_NEED_PER_CPU_EMBED_FIRST_CHUNK=y CONFIG_NR_IRQS=256 CONFIG_STACKTRACE_SUPPORT=y CONFIG_HAVE_LATENCYTOP_SUPPORT=y CONFIG_TRACE_IRQFLAGS_SUPPORT=y CONFIG_LOCKDEP_SUPPORT=y CONFIG_RWSEM_XCHGADD_ALGORITHM=y CONFIG_ARCH_HAS_ILOG2_U32=y CONFIG_ARCH_HAS_ILOG2_U64=y CONFIG_GENERIC_HWEIGHT=y CONFIG_GENERIC_FIND_NEXT_BIT=y CONFIG_GENERIC_FIND_BIT_LE=y CONFIG_ARCH_NO_VIRT_TO_BUS=y CONFIG_PPC=y CONFIG_EARLY_PRINTK=y CONFIG_COMPAT=y CONFIG_SYSVIPC_COMPAT=y CONFIG_SCHED_OMIT_FRAME_POINTER=y CONFIG_ARCH_MAY_HAVE_PC_FDC=y CONFIG_PPC_OF=y # CONFIG_PPC_UDBG_16550 is not set CONFIG_GENERIC_TBSYNC=y CONFIG_AUDIT_ARCH=y CONFIG_GENERIC_BUG=y # CONFIG_DEFAULT_UIMAGE is not set CONFIG_ARCH_HIBERNATION_POSSIBLE=y CONFIG_ARCH_SUSPEND_POSSIBLE=y # CONFIG_PPC_DCR_NATIVE is not set # CONFIG_PPC_DCR_MMIO is not set # CONFIG_PPC_OF_PLATFORM_PCI is not set CONFIG_ARCH_SUPPORTS_DEBUG_PAGEALLOC=y CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" CONFIG_CONSTRUCTORS=y CONFIG_HAVE_IRQ_WORK=y # # General setup # CONFIG_EXPERIMENTAL=y CONFIG_INIT_ENV_ARG_LIMIT=32 CONFIG_CROSS_COMPILE="" CONFIG_LOCALVERSION="" # CONFIG_LOCALVERSION_AUTO is not set CONFIG_SWAP=y CONFIG_SYSVIPC=y CONFIG_SYSVIPC_SYSCTL=y # CONFIG_POSIX_MQUEUE is not set # CONFIG_BSD_PROCESS_ACCT is not set # CONFIG_FHANDLE is not set # CONFIG_TASKSTATS is not set # CONFIG_AUDIT is not set CONFIG_HAVE_GENERIC_HARDIRQS=y # # IRQ subsystem # CONFIG_GENERIC_HARDIRQS=y CONFIG_HAVE_SPARSE_IRQ=y CONFIG_GENERIC_IRQ_SHOW=y CONFIG_GENERIC_IRQ_SHOW_LEVEL=y # CONFIG_SPARSE_IRQ is not set # # RCU Subsystem # CONFIG_TREE_RCU=y # CONFIG_PREEMPT_RCU is not set # CONFIG_RCU_TRACE is not set CONFIG_RCU_FANOUT=64 # CONFIG_RCU_FANOUT_EXACT is not set # CONFIG_RCU_FAST_NO_HZ is not set # CONFIG_TREE_RCU_TRACE is not set # CONFIG_IKCONFIG is not set CONFIG_LOG_BUF_SHIFT=17 # CONFIG_NAMESPACES is not set # CONFIG_SCHED_AUTOGROUP is not set # CONFIG_SYSFS_DEPRECATED is not set # CONFIG_RELAY is not set CONFIG_BLK_DEV_INITRD=y CONFIG_INITRAMFS_SOURCE="" CONFIG_RD_GZIP=y # CONFIG_RD_BZIP2 is not set # CONFIG_RD_LZMA is not set # CONFIG_RD_XZ is not set # CONFIG_RD_LZO is not set CONFIG_CC_OPTIMIZE_FOR_SIZE=y CONFIG_SYSCTL=y CONFIG_ANON_INODES=y CONFIG_EXPERT=y CONFIG_EMBEDDED=y CONFIG_SYSCTL_SYSCALL=y CONFIG_KALLSYMS=y # CONFIG_KALLSYMS_ALL is not set # CONFIG_KALLSYMS_EXTRA_PASS is not set CONFIG_HOTPLUG=y CONFIG_PRINTK=y CONFIG_BUG=y CONFIG_ELF_CORE=y CONFIG_BASE_FULL=y CONFIG_FUTEX=y CONFIG_EPOLL=y CONFIG_SIGNALFD=y # CONFIG_TIMERFD is not set # CONFIG_EVENTFD is not set CONFIG_SHMEM=y # CONFIG_AIO is not set CONFIG_HAVE_PERF_EVENTS=y # # Kernel Performance Events And Counters # # CONFIG_PERF_EVENTS is not set # CONFIG_PERF_COUNTERS is not set # CONFIG_VM_EVENT_COUNTERS is not set CONFIG_PCI_QUIRKS=y CONFIG_SLUB_DEBUG=y # CONFIG_COMPAT_BRK is not set # CONFIG_SLAB is not set CONFIG_SLUB=y # CONFIG_SLOB is not set # CONFIG_PROFILING is not set CONFIG_HAVE_OPROFILE=y # CONFIG_KPROBES is not set CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y CONFIG_HAVE_SYSCALL_WRAPPERS=y CONFIG_HAVE_IOREMAP_PROT=y CONFIG_HAVE_KPROBES=y CONFIG_HAVE_KRETPROBES=y CONFIG_HAVE_ARCH_TRACEHOOK=y CONFIG_HAVE_DMA_ATTRS=y CONFIG_USE_GENERIC_SMP_HELPERS=y CONFIG_HAVE_REGS_AND_STACK_ACCESS_API=y CONFIG_HAVE_DMA_API_DEBUG=y # # GCOV-based kernel profiling # # CONFIG_HAVE_GENERIC_DMA_COHERENT is not set CONFIG_SLABINFO=y CONFIG_RT_MUTEXES=y CONFIG_BASE_SMALL=0 CONFIG_MODULES=y # CONFIG_MODULE_FORCE_LOAD is not set CONFIG_MODULE_UNLOAD=y # CONFIG_MODULE_FORCE_UNLOAD is not set CONFIG_MODVERSIONS=y # CONFIG_MODULE_SRCVERSION_ALL is not set CONFIG_STOP_MACHINE=y CONFIG_BLOCK=y # CONFIG_BLK_DEV_BS
Re: Revert 737a3bb9416ce2a7c7a4170852473a4fcc9c67e8 ?
On Die, 2011-04-12 at 14:00 +0200, Gabriel Paubert wrote: > On Tue, Apr 12, 2011 at 01:46:10PM +0200, Michel Dänzer wrote: > > > > > > With no_wb=1 the driver goes a bit further but the X server ends > > > up in an infinite ioctl loop and the logs are: > > > > Which ioctl does it loop on? Please provide the Xorg.0.log file as well. > > From memory, the code was 0x64, which is DRM_RADEON_GEM_WAIT_IDLE. Note that it's normal for this ioctl to be called every time before the GPU accessible pixmap memory is accessed by the CPU. Unless the ioctl always returns an error, this may not indicate a problem on its own. > The Xorg.0.log from the previous boot is attached. I don't see any obvious problems in it. Can you describe the symptoms of the problem you're having with X a bit more? One thing I notice is that the X server/driver are rather oldish. Maybe you can try newer versions from testing, sid or even experimental to see if that makes any difference. -- Earthling Michel Dänzer |http://www.vmware.com Libre software enthusiast | Debian, X and DRI developer ___ Linuxppc-dev mailing list Linuxppc-dev@lists.ozlabs.org https://lists.ozlabs.org/listinfo/linuxppc-dev
Re: Where is CONFIG_BOOT_LOAD ?
On 04/08/2011 02:58 PM, Guillaume Dargaud wrote: Isn't that blackfin specific? So how do you change the loading address of the PowerPC kernel from its default 0x40 address ? Note that the default 0x400... is the link address of the zImage wrapper rather than the one of THE kernel. Currently the link address seems to be hard-coded into arch/powerpc/boot/wrapper (a shell script). Since long ago I'm wondering why the maintainers did that. But I guess there is a reason, because it wasn't that way in the old arch/ppc days ;-) ... Is configuring the zImage-piggy-back-loader through menuconfig & co evil? Joachim ___ Linuxppc-dev mailing list Linuxppc-dev@lists.ozlabs.org https://lists.ozlabs.org/listinfo/linuxppc-dev
Re: Revert 737a3bb9416ce2a7c7a4170852473a4fcc9c67e8 ?
On Tue, Apr 12, 2011 at 01:46:10PM +0200, Michel Dänzer wrote: > > > > With no_wb=1 the driver goes a bit further but the X server ends > > up in an infinite ioctl loop and the logs are: > > Which ioctl does it loop on? Please provide the Xorg.0.log file as well. >From memory, the code was 0x64, which is DRM_RADEON_GEM_WAIT_IDLE. The Xorg.0.log from the previous boot is attached. Gabriel Xorg.0.log.old Description: application/trash ___ Linuxppc-dev mailing list Linuxppc-dev@lists.ozlabs.org https://lists.ozlabs.org/listinfo/linuxppc-dev
Re: Revert 737a3bb9416ce2a7c7a4170852473a4fcc9c67e8 ?
On Die, 2011-04-12 at 13:30 +0200, Gabriel Paubert wrote: > > On Mon, Apr 11, 2011 at 05:32:43PM +0200, Michel Dänzer wrote: > > > > Have you ruled out any MSI related problems? I think the IRQ not working > > could explain the symptoms... > > Booting with MSI disabled does not change anything. Actually on this > machine the Ethernet (tigon3) uses MSI and everything is fine. OTOH, > on my home PC (dual code Athlon64 4 1/2 years old), MSI has never worked. Okay, the fact no_wb helps probably rules out an IRQ problem anyway. > > Make sure this line changes to 'WB disabled' with no_wb=1. There's a > > writeback endianness bug with modeset=1, see > > http://lists.freedesktop.org/archives/dri-devel/2011-April/009960.html . > > > > With no_wb=1 the driver goes a bit further but the X server ends > up in an infinite ioctl loop and the logs are: Which ioctl does it loop on? Please provide the Xorg.0.log file as well. > kernel: [drm] radeon kernel modesetting enabled. > kernel: checking generic (c000 14) vs hw (c000 1000) > kernel: fb: conflicting fb hw usage radeondrmfb vs OFfb vga,Displa - removing > generic driver > kernel: [drm] initializing kernel modesetting (RV530 0x1002:0x71C7). > kernel: radeon :f1:00.0: Using 64-bit DMA iommu bypass > kernel: [drm] register mmio base: 0xE800 > kernel: [drm] register mmio size: 65536 > kernel: radeon :f1:00.0: Invalid ROM contents > kernel: ATOM BIOS: X1650PRO > kernel: [drm] Generation 2 PCI interface, using max accessible memory > kernel: radeon :f1:00.0: VRAM: 512M 0x - > 0x1FFF (512M used) > kernel: radeon :f1:00.0: GTT: 512M 0x2000 - 0x3FFF > kernel: [drm] Supports vblank timestamp caching Rev 1 (10.10.2010). > kernel: [drm] Driver supports precise vblank timestamp query. > kernel: [drm] radeon: irq initialized. > kernel: [drm] Detected VRAM RAM=512M, BAR=256M > kernel: [drm] RAM width 128bits DDR > kernel: [TTM] Zone kernel: Available graphics memory: 1003018 kiB. > kernel: [TTM] Initializing pool allocator. > kernel: [drm] radeon: 512M of VRAM memory ready > kernel: [drm] radeon: 512M of GTT memory ready. > kernel: [drm] GART: num cpu pages 131072, num gpu pages 131072 > kernel: [drm] radeon: 1 quad pipes, 2 z pipes initialized. > kernel: [drm] PCIE GART of 512M enabled (table at 0x0004). > kernel: radeon :f1:00.0: WB disabled > kernel: [drm] Loading R500 Microcode > kernel: [drm] radeon: ring at 0x20001000 > kernel: [drm] ring test succeeded in 6 usecs > kernel: [drm] radeon: ib pool ready. > kernel: [drm] ib test succeeded in 0 usecs > kernel: [drm] Radeon Display Connectors > kernel: [drm] Connector 0: > kernel: [drm] DVI-I > kernel: [drm] HPD1 > kernel: [drm] DDC: 0x7e40 0x7e40 0x7e44 0x7e44 0x7e48 0x7e48 0x7e4c 0x7e4c > kernel: [drm] Encoders: > kernel: [drm] CRT1: INTERNAL_KLDSCP_DAC1 > kernel: [drm] DFP1: INTERNAL_KLDSCP_TMDS1 > kernel: [drm] Connector 1: > kernel: [drm] S-video > kernel: [drm] Encoders: > kernel: [drm] TV1: INTERNAL_KLDSCP_DAC2 > kernel: [drm] Connector 2: > kernel: [drm] DVI-I > kernel: [drm] HPD2 > kernel: [drm] DDC: 0x7e50 0x7e50 0x7e54 0x7e54 0x7e58 0x7e58 0x7e5c 0x7e5c > kernel: [drm] Encoders: > kernel: [drm] CRT2: INTERNAL_KLDSCP_DAC2 > kernel: [drm] DFP3: INTERNAL_LVTM1 > kernel: [drm] Possible lm63 thermal controller at 0x4c > kernel: [drm] fb mappable at 0xC00C > kernel: [drm] vram apper at 0xC000 > kernel: [drm] size 9216000 > kernel: [drm] fb depth is 24 > kernel: [drm]pitch is 7680 > kernel: checking generic (c000 14) vs hw (c000 1000) > kernel: fb: conflicting fb hw usage radeondrmfb vs OFfb vga,Displa - removing > generic driver > kernel: fb1: radeondrmfb frame buffer device Hmm, I think this should say fb0, but that should only matter for console, not X. > kernel: drm: registered panic notifier > kernel: [drm] Initialized radeon 2.8.0 20080528 for :f1:00.0 on minor 0 > kernel: [drm:drm_mode_getfb] *ERROR* invalid framebuffer id BTW, if your kernel contains commit 69a07f0b117a40fcc1a479358d8e1f41793617f2, can you try if reverting that helps? -- Earthling Michel Dänzer |http://www.vmware.com Libre software enthusiast | Debian, X and DRI developer ___ Linuxppc-dev mailing list Linuxppc-dev@lists.ozlabs.org https://lists.ozlabs.org/listinfo/linuxppc-dev
Re: Revert 737a3bb9416ce2a7c7a4170852473a4fcc9c67e8 ?
Hi Micel, On Mon, Apr 11, 2011 at 05:32:43PM +0200, Michel Dänzer wrote: > [ Adding the dri-devel list ] > > Have you ruled out any MSI related problems? I think the IRQ not working > could explain the symptoms... Booting with MSI disabled does not change anything. Actually on this machine the Ethernet (tigon3) uses MSI and everything is fine. OTOH, on my home PC (dual code Athlon64 4 1/2 years old), MSI has never worked. > Make sure this line changes to 'WB disabled' with no_wb=1. There's a > writeback endianness bug with modeset=1, see > http://lists.freedesktop.org/archives/dri-devel/2011-April/009960.html . > With no_wb=1 the driver goes a bit further but the X server ends up in an infinite ioctl loop and the logs are: kernel: [drm] radeon kernel modesetting enabled. kernel: checking generic (c000 14) vs hw (c000 1000) kernel: fb: conflicting fb hw usage radeondrmfb vs OFfb vga,Displa - removing generic driver kernel: [drm] initializing kernel modesetting (RV530 0x1002:0x71C7). kernel: radeon :f1:00.0: Using 64-bit DMA iommu bypass kernel: [drm] register mmio base: 0xE800 kernel: [drm] register mmio size: 65536 kernel: radeon :f1:00.0: Invalid ROM contents kernel: ATOM BIOS: X1650PRO kernel: [drm] Generation 2 PCI interface, using max accessible memory kernel: radeon :f1:00.0: VRAM: 512M 0x - 0x1FFF (512M used) kernel: radeon :f1:00.0: GTT: 512M 0x2000 - 0x3FFF kernel: [drm] Supports vblank timestamp caching Rev 1 (10.10.2010). kernel: [drm] Driver supports precise vblank timestamp query. kernel: [drm] radeon: irq initialized. kernel: [drm] Detected VRAM RAM=512M, BAR=256M kernel: [drm] RAM width 128bits DDR kernel: [TTM] Zone kernel: Available graphics memory: 1003018 kiB. kernel: [TTM] Initializing pool allocator. kernel: [drm] radeon: 512M of VRAM memory ready kernel: [drm] radeon: 512M of GTT memory ready. kernel: [drm] GART: num cpu pages 131072, num gpu pages 131072 kernel: [drm] radeon: 1 quad pipes, 2 z pipes initialized. kernel: [drm] PCIE GART of 512M enabled (table at 0x0004). kernel: radeon :f1:00.0: WB disabled kernel: [drm] Loading R500 Microcode kernel: [drm] radeon: ring at 0x20001000 kernel: [drm] ring test succeeded in 6 usecs kernel: [drm] radeon: ib pool ready. kernel: [drm] ib test succeeded in 0 usecs kernel: [drm] Radeon Display Connectors kernel: [drm] Connector 0: kernel: [drm] DVI-I kernel: [drm] HPD1 kernel: [drm] DDC: 0x7e40 0x7e40 0x7e44 0x7e44 0x7e48 0x7e48 0x7e4c 0x7e4c kernel: [drm] Encoders: kernel: [drm] CRT1: INTERNAL_KLDSCP_DAC1 kernel: [drm] DFP1: INTERNAL_KLDSCP_TMDS1 kernel: [drm] Connector 1: kernel: [drm] S-video kernel: [drm] Encoders: kernel: [drm] TV1: INTERNAL_KLDSCP_DAC2 kernel: [drm] Connector 2: kernel: [drm] DVI-I kernel: [drm] HPD2 kernel: [drm] DDC: 0x7e50 0x7e50 0x7e54 0x7e54 0x7e58 0x7e58 0x7e5c 0x7e5c kernel: [drm] Encoders: kernel: [drm] CRT2: INTERNAL_KLDSCP_DAC2 kernel: [drm] DFP3: INTERNAL_LVTM1 kernel: [drm] Possible lm63 thermal controller at 0x4c kernel: [drm] fb mappable at 0xC00C kernel: [drm] vram apper at 0xC000 kernel: [drm] size 9216000 kernel: [drm] fb depth is 24 kernel: [drm]pitch is 7680 kernel: checking generic (c000 14) vs hw (c000 1000) kernel: fb: conflicting fb hw usage radeondrmfb vs OFfb vga,Displa - removing generic driver kernel: fb1: radeondrmfb frame buffer device kernel: drm: registered panic notifier kernel: [drm] Initialized radeon 2.8.0 20080528 for :f1:00.0 on minor 0 kernel: [drm:drm_mode_getfb] *ERROR* invalid framebuffer id There is only one display connected and it is to the first DVI connector, BTW. Regards, Gabriel ___ Linuxppc-dev mailing list Linuxppc-dev@lists.ozlabs.org https://lists.ozlabs.org/listinfo/linuxppc-dev
[PATCH] powerpc/85xx: disable Suspend support if SMP enabled
We currently dont have CPU Hotplug support working on 85xx so we need to disable Suspsend support as it will force enabling of CPU Hotplug. arch/powerpc/kernel/built-in.o: In function `cpu_die': arch/powerpc/kernel/smp.c:702: undefined reference to `start_secondary_resume' make: *** [.tmp_vmlinux1] Error 1 Signed-off-by: Kumar Gala --- arch/powerpc/Kconfig |2 +- 1 files changed, 1 insertions(+), 1 deletions(-) diff --git a/arch/powerpc/Kconfig b/arch/powerpc/Kconfig index b6ff882..8f4d50b 100644 --- a/arch/powerpc/Kconfig +++ b/arch/powerpc/Kconfig @@ -209,7 +209,7 @@ config ARCH_HIBERNATION_POSSIBLE config ARCH_SUSPEND_POSSIBLE def_bool y depends on ADB_PMU || PPC_EFIKA || PPC_LITE5200 || PPC_83xx || \ - PPC_85xx || PPC_86xx || PPC_PSERIES || 44x || 40x + (PPC_85xx && !SMP) || PPC_86xx || PPC_PSERIES || 44x || 40x config PPC_DCR_NATIVE bool -- 1.7.3.4 ___ Linuxppc-dev mailing list Linuxppc-dev@lists.ozlabs.org https://lists.ozlabs.org/listinfo/linuxppc-dev
[PATCH] powerpc: smp_ops->kick_cpu() should be able to fail
When we start a cpu we use smp_ops->kick_cpu(), which currently returns void, it should be able to fail. Convert it to return int, and update all uses. Convert all the current error cases to return -ENOENT, which is what would eventually be returned by __cpu_up() currently when it doesn't detect the cpu as coming up in time. Signed-off-by: Michael Ellerman --- arch/powerpc/include/asm/machdep.h|2 +- arch/powerpc/include/asm/smp.h|2 +- arch/powerpc/kernel/smp.c | 10 -- arch/powerpc/platforms/44x/iss4xx.c |6 -- arch/powerpc/platforms/85xx/smp.c |6 -- arch/powerpc/platforms/86xx/mpc86xx_smp.c |6 -- arch/powerpc/platforms/cell/beat_smp.c|5 ++--- arch/powerpc/platforms/cell/smp.c |6 -- arch/powerpc/platforms/chrp/smp.c |4 +++- arch/powerpc/platforms/iseries/smp.c |6 -- arch/powerpc/platforms/powermac/smp.c | 10 +++--- arch/powerpc/platforms/pseries/smp.c |6 -- 12 files changed, 46 insertions(+), 23 deletions(-) diff --git a/arch/powerpc/include/asm/machdep.h b/arch/powerpc/include/asm/machdep.h index 493dbb3..c6345ac 100644 --- a/arch/powerpc/include/asm/machdep.h +++ b/arch/powerpc/include/asm/machdep.h @@ -33,7 +33,7 @@ struct kimage; struct smp_ops_t { void (*message_pass)(int target, int msg); int (*probe)(void); - void (*kick_cpu)(int nr); + int (*kick_cpu)(int nr); void (*setup_cpu)(int nr); void (*bringup_done)(void); void (*take_timebase)(void); diff --git a/arch/powerpc/include/asm/smp.h b/arch/powerpc/include/asm/smp.h index bb4c033..5087349 100644 --- a/arch/powerpc/include/asm/smp.h +++ b/arch/powerpc/include/asm/smp.h @@ -150,7 +150,7 @@ extern int smt_enabled_at_boot; extern int smp_mpic_probe(void); extern void smp_mpic_setup_cpu(int cpu); -extern void smp_generic_kick_cpu(int nr); +extern int smp_generic_kick_cpu(int nr); extern void smp_generic_give_timebase(void); extern void smp_generic_take_timebase(void); diff --git a/arch/powerpc/kernel/smp.c b/arch/powerpc/kernel/smp.c index cbdbb14..b6083f4 100644 --- a/arch/powerpc/kernel/smp.c +++ b/arch/powerpc/kernel/smp.c @@ -95,7 +95,7 @@ int smt_enabled_at_boot = 1; static void (*crash_ipi_function_ptr)(struct pt_regs *) = NULL; #ifdef CONFIG_PPC64 -void __devinit smp_generic_kick_cpu(int nr) +int __devinit smp_generic_kick_cpu(int nr) { BUG_ON(nr < 0 || nr >= NR_CPUS); @@ -106,6 +106,8 @@ void __devinit smp_generic_kick_cpu(int nr) */ paca[nr].cpu_start = 1; smp_mb(); + + return 0; } #endif @@ -434,7 +436,11 @@ int __cpuinit __cpu_up(unsigned int cpu) /* wake up cpus */ DBG("smp: kicking cpu %d\n", cpu); - smp_ops->kick_cpu(cpu); + rc = smp_ops->kick_cpu(cpu); + if (rc) { + pr_err("smp: failed starting cpu %d (rc %d)\n", cpu, rc); + return rc; + } /* * wait to see if the cpu made a callin (is actually up). diff --git a/arch/powerpc/platforms/44x/iss4xx.c b/arch/powerpc/platforms/44x/iss4xx.c index aa46e9d..19395f1 100644 --- a/arch/powerpc/platforms/44x/iss4xx.c +++ b/arch/powerpc/platforms/44x/iss4xx.c @@ -87,7 +87,7 @@ static void __cpuinit smp_iss4xx_setup_cpu(int cpu) mpic_setup_this_cpu(); } -static void __cpuinit smp_iss4xx_kick_cpu(int cpu) +static int __cpuinit smp_iss4xx_kick_cpu(int cpu) { struct device_node *cpunode = of_get_cpu_node(cpu, NULL); const u64 *spin_table_addr_prop; @@ -104,7 +104,7 @@ static void __cpuinit smp_iss4xx_kick_cpu(int cpu) NULL); if (spin_table_addr_prop == NULL) { pr_err("CPU%d: Can't start, missing cpu-release-addr !\n", cpu); - return; + return -ENOENT; } /* Assume it's mapped as part of the linear mapping. This is a bit @@ -117,6 +117,8 @@ static void __cpuinit smp_iss4xx_kick_cpu(int cpu) smp_wmb(); spin_table[1] = __pa(start_secondary_47x); mb(); + + return 0; } static struct smp_ops_t iss_smp_ops = { diff --git a/arch/powerpc/platforms/85xx/smp.c b/arch/powerpc/platforms/85xx/smp.c index 0d00ff9..fe3f6a3 100644 --- a/arch/powerpc/platforms/85xx/smp.c +++ b/arch/powerpc/platforms/85xx/smp.c @@ -41,7 +41,7 @@ extern void __early_start(void); #define NUM_BOOT_ENTRY 8 #define SIZE_BOOT_ENTRY(NUM_BOOT_ENTRY * sizeof(u32)) -static void __init +static int __init smp_85xx_kick_cpu(int nr) { unsigned long flags; @@ -60,7 +60,7 @@ smp_85xx_kick_cpu(int nr) if (cpu_rel_addr == NULL) { printk(KERN_ERR "No cpu-release-addr for cpu %d\n", nr); - return; + return -ENOENT; } /* @@ -107,6 +107,8 @@ smp_85xx_kick_cpu(int nr) iounmap(bptr
[PATCH 4/4] powerpc/pci: Properly initialize IO workaround "private"
Even when no initfunc is provided. Signed-off-by: Benjamin Herrenschmidt Signed-off-by: Michael Ellerman --- arch/powerpc/kernel/io-workarounds.c |1 + 1 files changed, 1 insertions(+), 0 deletions(-) diff --git a/arch/powerpc/kernel/io-workarounds.c b/arch/powerpc/kernel/io-workarounds.c index d36515e..ffafaea 100644 --- a/arch/powerpc/kernel/io-workarounds.c +++ b/arch/powerpc/kernel/io-workarounds.c @@ -175,6 +175,7 @@ void __devinit iowa_register_bus(struct pci_controller *phb, bus = &iowa_busses[iowa_bus_count]; bus->phb = phb; bus->ops = ops; + bus->private = data; if (initfunc) if ((*initfunc)(bus, data)) -- 1.7.1 ___ Linuxppc-dev mailing list Linuxppc-dev@lists.ozlabs.org https://lists.ozlabs.org/listinfo/linuxppc-dev
[PATCH 3/4] powerpc/pci: Make IO workarounds init implicit when first bus is registered
Signed-off-by: Benjamin Herrenschmidt Signed-off-by: Michael Ellerman --- arch/powerpc/include/asm/io-workarounds.h |1 - arch/powerpc/kernel/io-workarounds.c | 27 +++ arch/powerpc/platforms/cell/celleb_pci.c | 18 +- arch/powerpc/platforms/cell/setup.c |2 -- 4 files changed, 20 insertions(+), 28 deletions(-) diff --git a/arch/powerpc/include/asm/io-workarounds.h b/arch/powerpc/include/asm/io-workarounds.h index 6efc778..fbae492 100644 --- a/arch/powerpc/include/asm/io-workarounds.h +++ b/arch/powerpc/include/asm/io-workarounds.h @@ -31,7 +31,6 @@ struct iowa_bus { void *private; }; -void __devinit io_workaround_init(void); void __devinit iowa_register_bus(struct pci_controller *, struct ppc_pci_io *, int (*)(struct iowa_bus *, void *), void *); struct iowa_bus *iowa_mem_find_bus(const PCI_IO_ADDR); diff --git a/arch/powerpc/kernel/io-workarounds.c b/arch/powerpc/kernel/io-workarounds.c index 7e58457..d36515e 100644 --- a/arch/powerpc/kernel/io-workarounds.c +++ b/arch/powerpc/kernel/io-workarounds.c @@ -144,7 +144,19 @@ static void __iomem *iowa_ioremap(phys_addr_t addr, unsigned long size, return res; } -/* Regist new bus to support workaround */ +/* Enable IO workaround */ +static void __devinit io_workaround_init(void) +{ + static int io_workaround_inited; + + if (io_workaround_inited) + return; + ppc_pci_io = iowa_pci_io; + ppc_md.ioremap = iowa_ioremap; + io_workaround_inited = 1; +} + +/* Register new bus to support workaround */ void __devinit iowa_register_bus(struct pci_controller *phb, struct ppc_pci_io *ops, int (*initfunc)(struct iowa_bus *, void *), void *data) @@ -152,6 +164,8 @@ void __devinit iowa_register_bus(struct pci_controller *phb, struct iowa_bus *bus; struct device_node *np = phb->dn; + io_workaround_init(); + if (iowa_bus_count >= IOWA_MAX_BUS) { pr_err("IOWA:Too many pci bridges, " "workarounds disabled for %s\n", np->full_name); @@ -171,14 +185,3 @@ void __devinit iowa_register_bus(struct pci_controller *phb, pr_debug("IOWA:[%d]Add bus, %s.\n", iowa_bus_count-1, np->full_name); } -/* enable IO workaround */ -void __devinit io_workaround_init(void) -{ - static int io_workaround_inited; - - if (io_workaround_inited) - return; - ppc_pci_io = iowa_pci_io; - ppc_md.ioremap = iowa_ioremap; - io_workaround_inited = 1; -} diff --git a/arch/powerpc/platforms/cell/celleb_pci.c b/arch/powerpc/platforms/cell/celleb_pci.c index c19b783..2904b0a 100644 --- a/arch/powerpc/platforms/cell/celleb_pci.c +++ b/arch/powerpc/platforms/cell/celleb_pci.c @@ -468,18 +468,6 @@ static struct of_device_id celleb_phb_match[] __initdata = { }, }; -static int __init celleb_io_workaround_init(struct pci_controller *phb, - struct celleb_phb_spec *phb_spec) -{ - if (phb_spec->ops) { - iowa_register_bus(phb, phb_spec->ops, phb_spec->iowa_init, - phb_spec->iowa_data); - io_workaround_init(); - } - - return 0; -} - int __init celleb_setup_phb(struct pci_controller *phb) { struct device_node *dev = phb->dn; @@ -499,7 +487,11 @@ int __init celleb_setup_phb(struct pci_controller *phb) if (rc) return 1; - return celleb_io_workaround_init(phb, phb_spec); + if (phb_spec->ops) + iowa_register_bus(phb, phb_spec->ops, + phb_spec->iowa_init, + phb_spec->iowa_data); + return 0; } int celleb_pci_probe_mode(struct pci_bus *bus) diff --git a/arch/powerpc/platforms/cell/setup.c b/arch/powerpc/platforms/cell/setup.c index af7b13c..c73cf4c 100644 --- a/arch/powerpc/platforms/cell/setup.c +++ b/arch/powerpc/platforms/cell/setup.c @@ -136,8 +136,6 @@ static int __devinit cell_setup_phb(struct pci_controller *phb) iowa_register_bus(phb, &spiderpci_ops, &spiderpci_iowa_init, (void *)SPIDER_PCI_REG_BASE); - io_workaround_init(); - return 0; } -- 1.7.1 ___ Linuxppc-dev mailing list Linuxppc-dev@lists.ozlabs.org https://lists.ozlabs.org/listinfo/linuxppc-dev
[PATCH 2/4] powerpc/pci: Move IO workarounds to the common kernel dir
Signed-off-by: Benjamin Herrenschmidt Signed-off-by: Michael Ellerman --- arch/powerpc/include/asm/io-workarounds.h| 49 +++ arch/powerpc/kernel/Makefile |2 + arch/powerpc/kernel/io-workarounds.c | 184 + arch/powerpc/platforms/Kconfig |3 + arch/powerpc/platforms/cell/Kconfig |1 + arch/powerpc/platforms/cell/Makefile |8 +- arch/powerpc/platforms/cell/celleb_pci.c |1 - arch/powerpc/platforms/cell/celleb_pci.h |3 +- arch/powerpc/platforms/cell/io-workarounds.c | 185 -- arch/powerpc/platforms/cell/io-workarounds.h | 49 --- arch/powerpc/platforms/cell/qpace_setup.c|1 - arch/powerpc/platforms/cell/setup.c |2 +- arch/powerpc/platforms/cell/spider-pci.c |3 +- 13 files changed, 247 insertions(+), 244 deletions(-) diff --git a/arch/powerpc/include/asm/io-workarounds.h b/arch/powerpc/include/asm/io-workarounds.h new file mode 100644 index 000..6efc778 --- /dev/null +++ b/arch/powerpc/include/asm/io-workarounds.h @@ -0,0 +1,49 @@ +/* + * Support PCI IO workaround + * + * (C) Copyright 2007-2008 TOSHIBA CORPORATION + * + * 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. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License along + * with this program; if not, write to the Free Software Foundation, Inc., + * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + */ + +#ifndef _IO_WORKAROUNDS_H +#define _IO_WORKAROUNDS_H + +#include +#include + +/* Bus info */ +struct iowa_bus { + struct pci_controller *phb; + struct ppc_pci_io *ops; + void *private; +}; + +void __devinit io_workaround_init(void); +void __devinit iowa_register_bus(struct pci_controller *, struct ppc_pci_io *, +int (*)(struct iowa_bus *, void *), void *); +struct iowa_bus *iowa_mem_find_bus(const PCI_IO_ADDR); +struct iowa_bus *iowa_pio_find_bus(unsigned long); + +extern struct ppc_pci_io spiderpci_ops; +extern int spiderpci_iowa_init(struct iowa_bus *, void *); + +#define SPIDER_PCI_REG_BASE0xd000 +#define SPIDER_PCI_REG_SIZE0x1000 +#define SPIDER_PCI_VCI_CNTL_STAT 0x0110 +#define SPIDER_PCI_DUMMY_READ 0x0810 +#define SPIDER_PCI_DUMMY_READ_BASE 0x0814 + +#endif /* _IO_WORKAROUNDS_H */ diff --git a/arch/powerpc/kernel/Makefile b/arch/powerpc/kernel/Makefile index 0fd6273..b0ba78f 100644 --- a/arch/powerpc/kernel/Makefile +++ b/arch/powerpc/kernel/Makefile @@ -105,6 +105,8 @@ obj-$(CONFIG_KEXEC) += machine_kexec.o crash.o \ obj-$(CONFIG_AUDIT)+= audit.o obj64-$(CONFIG_AUDIT) += compat_audit.o +obj-$(CONFIG_PPC_IO_WORKAROUNDS) += io-workarounds.o + obj-$(CONFIG_DYNAMIC_FTRACE) += ftrace.o obj-$(CONFIG_FUNCTION_GRAPH_TRACER)+= ftrace.o obj-$(CONFIG_PERF_EVENTS) += perf_callchain.o diff --git a/arch/powerpc/kernel/io-workarounds.c b/arch/powerpc/kernel/io-workarounds.c new file mode 100644 index 000..7e58457 --- /dev/null +++ b/arch/powerpc/kernel/io-workarounds.c @@ -0,0 +1,184 @@ +/* + * Support PCI IO workaround + * + * Copyright (C) 2006 Benjamin Herrenschmidt + *IBM, Corp. + * (C) Copyright 2007-2008 TOSHIBA CORPORATION + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 as + * published by the Free Software Foundation. + */ +#undef DEBUG + +#include + +#include +#include +#include +#include +#include + +#define IOWA_MAX_BUS 8 + +static struct iowa_bus iowa_busses[IOWA_MAX_BUS]; +static unsigned int iowa_bus_count; + +static struct iowa_bus *iowa_pci_find(unsigned long vaddr, unsigned long paddr) +{ + int i, j; + struct resource *res; + unsigned long vstart, vend; + + for (i = 0; i < iowa_bus_count; i++) { + struct iowa_bus *bus = &iowa_busses[i]; + struct pci_controller *phb = bus->phb; + + if (vaddr) { + vstart = (unsigned long)phb->io_base_virt; + vend = vstart + phb->pci_io_size - 1; + if ((vaddr >= vstart) && (vaddr <= vend)) + return bus; + } + + if (paddr) + for (j = 0; j < 3; j++) { + res = &phb->mem_resources[j]; + if (paddr >= res
[PATCH 1/4] powerpc/pci: Split IO vs MMIO indirect access hooks
The goal is to avoid adding overhead to MMIO when only PIO is needed Signed-off-by: Benjamin Herrenschmidt Signed-off-by: Michael Ellerman --- arch/powerpc/include/asm/io.h | 16 +++- arch/powerpc/platforms/Kconfig | 10 -- arch/powerpc/platforms/cell/Kconfig|3 ++- arch/powerpc/platforms/iseries/Kconfig |3 ++- 4 files changed, 23 insertions(+), 9 deletions(-) v2: Updated based on sfr's comments RE the Kconfig. diff --git a/arch/powerpc/include/asm/io.h b/arch/powerpc/include/asm/io.h index 001f2f1..2f365f5 100644 --- a/arch/powerpc/include/asm/io.h +++ b/arch/powerpc/include/asm/io.h @@ -481,10 +481,16 @@ __do_out_asm(_rec_outl, "stwbrx") _memcpy_fromio(dst,PCI_FIX_ADDR(src),n) #endif /* !CONFIG_EEH */ -#ifdef CONFIG_PPC_INDIRECT_IO -#define DEF_PCI_HOOK(x)x +#ifdef CONFIG_PPC_INDIRECT_PIO +#define DEF_PCI_HOOK_pio(x)x +#else +#define DEF_PCI_HOOK_pio(x)NULL +#endif + +#ifdef CONFIG_PPC_INDIRECT_MMIO +#define DEF_PCI_HOOK_mem(x)x #else -#define DEF_PCI_HOOK(x)NULL +#define DEF_PCI_HOOK_mem(x)NULL #endif /* Structure containing all the hooks */ @@ -504,7 +510,7 @@ extern struct ppc_pci_io { #define DEF_PCI_AC_RET(name, ret, at, al, space, aa) \ static inline ret name at \ { \ - if (DEF_PCI_HOOK(ppc_pci_io.name) != NULL) \ + if (DEF_PCI_HOOK_##space(ppc_pci_io.name) != NULL) \ return ppc_pci_io.name al; \ return __do_##name al; \ } @@ -512,7 +518,7 @@ static inline ret name at \ #define DEF_PCI_AC_NORET(name, at, al, space, aa) \ static inline void name at \ { \ - if (DEF_PCI_HOOK(ppc_pci_io.name) != NULL) \ + if (DEF_PCI_HOOK_##space(ppc_pci_io.name) != NULL) \ ppc_pci_io.name al; \ else\ __do_##name al; \ diff --git a/arch/powerpc/platforms/Kconfig b/arch/powerpc/platforms/Kconfig index 59eeb77..34e34ba 100644 --- a/arch/powerpc/platforms/Kconfig +++ b/arch/powerpc/platforms/Kconfig @@ -154,11 +154,17 @@ config PPC_P7_NAP config PPC_INDIRECT_IO bool select GENERIC_IOMAP - default n + +config PPC_INDIRECT_PIO + bool + select PPC_INDIRECT_IO + +config PPC_INDIRECT_MMIO + bool + select PPC_INDIRECT_IO config GENERIC_IOMAP bool - default n source "drivers/cpufreq/Kconfig" diff --git a/arch/powerpc/platforms/cell/Kconfig b/arch/powerpc/platforms/cell/Kconfig index 81239eb..3c7f1de 100644 --- a/arch/powerpc/platforms/cell/Kconfig +++ b/arch/powerpc/platforms/cell/Kconfig @@ -6,7 +6,8 @@ config PPC_CELL_COMMON bool select PPC_CELL select PPC_DCR_MMIO - select PPC_INDIRECT_IO + select PPC_INDIRECT_PIO + select PPC_INDIRECT_MMIO select PPC_NATIVE select PPC_RTAS select IRQ_EDGE_EOI_HANDLER diff --git a/arch/powerpc/platforms/iseries/Kconfig b/arch/powerpc/platforms/iseries/Kconfig index e5bc9f7..ea1d362 100644 --- a/arch/powerpc/platforms/iseries/Kconfig +++ b/arch/powerpc/platforms/iseries/Kconfig @@ -1,7 +1,8 @@ config PPC_ISERIES bool "IBM Legacy iSeries" depends on PPC64 && PPC_BOOK3S - select PPC_INDIRECT_IO + select PPC_INDIRECT_PIO + select PPC_INDIRECT_MMIO select PPC_PCI_CHOICE if EXPERT menu "iSeries device drivers" -- 1.7.1 ___ Linuxppc-dev mailing list Linuxppc-dev@lists.ozlabs.org https://lists.ozlabs.org/listinfo/linuxppc-dev