* please pull powerpc.git
From: Paul Mackerras @ 2006-03-22 5:28 UTC (permalink / raw)
To: torvalds; +Cc: linuxppc-dev
Linus,
Please do a pull from
git://git.kernel.org/pub/scm/linux/kernel/git/paulus/powerpc.git
to get the PowerPC updates that have been queued up to go into
2.6.17.
Thanks,
Paul.
Adrian Cox:
ppc: Fix platform_notify functions marked __init
Andy Fleming:
powerpc: Add PCI support for 8540 ADS to powerpc tree
Becky Bruce:
powerpc: Updated Initial MPC8540 ADS port with OF Flat Dev
powerpc: Fix Kernel FP unavail exception for BookE
powerpc: mpc85xx_ads.c include file cleanup
powerpc: rename mpc85xx.c to misc.c
powerpc: lindent 85xx platform code
powerpc/ppc: Add missing isyncs in head_fsl_booke.S
Christoph Hellwig:
powerpc: add for_each_node_by_foo helpers
spidernet: select FW_LOADER
David Gibson:
powerpc: Fixup for STRICT_MM_TYPECHECKS
powerpc: Better pmd_bad() and pud_bad() checks
Domen Puncer:
powerpc: Remove arch/ppc/syslib/ppc4xx_pm.c
Eric Sesterhenn:
kzalloc() conversion in arch/ppc
Geoff Levand:
powerpc: Add missing vmlinux.bin target
Grant C. Likely:
powerpc: Move xparameters.h into xilinx virtex device specific path
powerpc: Make Virtex-II Pro support generic for all Virtex devices
powerpc: Migrate Xilinx Vertex support from the OCP bus to the platfom bus.
powerpc: Migrate ML300 reference design to the platform bus
powerpc: Add ML300 defconfig
powerpc: Add Virtex-4 FX to cpu table
powerpc: Add xparameters file for Xilinx ML403 reference design
powerpc: Add support for Xilinx ML403 reference design
powerpc: Add ML403 defconfig
Grant Likely:
Fix compile error for ML300/403
Horst Kronstorfer:
ppc32: Fix BCSR_SIZE for MPC834x SYS
Jon Mason:
powerpc: trivial: modify comments to refer to new location of files
Kumar Gala:
powerpc: Add CONFIG_DEFAULT_UIMAGE to build a uImage by default for a board
powerpc: cleaned up fsl_soc.c
powerpc: Add platform support for MPC834x USB controllers
powerpc: Cleanup MPC83xx platform support
powerpc: Lindent platforms/83xx
powerpc: Fix mpc83xx restart bug
Marcelo Tosatti:
powerpc: generalize PPC44x_PIN_SIZE
Michael Ellerman:
powerpc: Always panic if lmb_alloc() fails
powerpc: Move LMB_ALLOC_ANYWHERE out of lmb.h
powerpc: Put parameter names in lmb.h prototypes
powerpc: Clean up pSeries firmware feature initialisation
powerpc: Move pSeries firmware feature setup into platforms/pseries
powerpc: Fix bug in bug fix for bug in lmb_alloc()
powerpc: Unconfuse htab_bolt_mapping() callers
powerpc: Remove unused iommu_off logic from pSeries_init_early()
powerpc: trivial: Cleanup whitespace in cputable.h
powerpc: Replace platform_is_lpar() with a firmware feature
powerpc: iseries: mf related cleanups
powerpc: iseries: Remove pointless iSeries_(restart|power_off|halt)
powerpc: iseries: Make more stuff static in platforms/iseries/mf.c
powerpc: Add strne2a() to convert a string from EBCDIC to ASCII
powerpc: iseries: Add /system-id, /model and /compatible
powerpc: iseries: Add bootargs to /chosen
powerpc: Remove calculation of io hole
Nathan Lynch:
powerpc numa: fix boot_cpuid always assigned to node 0
powerpc numa: Minor debugging code changes
powerpc numa: Minor cpu hotplug-related cleanups
powerpc numa: Get rid of "numa domain" terminology
powerpc numa: Consolidate handling of Power4 special case
powerpc numa: Support sparse online node map
powerpc numa: Consolidate assignment of cpus to nodes
Nick Piggin:
powerpc: newline for ISYNC_ON_SMP
powerpc: native atomic_add_unless
Olaf Hering:
powerpc: cleanup pmac_newworld variable usage
powerpc: remove check for ELF offset in powerpc bootimage
powerpc: add a raw dump command to xmon
Paul Mackerras:
powerpc: Implement accurate task and CPU time accounting
powerpc: Export variables used in conversions to/from cputime_t
Stephen Rothwell:
powerpc: update mailing list addresses
Vitaly Bordug:
ppc32 8xx: Added setbitsXX/clrbitsXX macro for read-modify-write operations
PPC32 8xx: support for the physmapped flash on m8xx
ppc32: MPC885ADS, MPC866ADS and MPC8272ADS-specific platform stuff for fs_enet
ppc32: Make platform devices being able to assign functions
Documentation/powerpc/eeh-pci-error-recovery.txt | 15
Documentation/powerpc/hvcs.txt | 4
MAINTAINERS | 4
arch/powerpc/Kconfig | 38 +
arch/powerpc/Makefile | 2
arch/powerpc/boot/install.sh | 2
arch/powerpc/boot/main.c | 4
arch/powerpc/configs/mpc8540_ads_defconfig | 721 +++++++++++++++++++
arch/powerpc/kernel/asm-offsets.c | 3
arch/powerpc/kernel/cputable.c | 12
arch/powerpc/kernel/entry_64.S | 11
arch/powerpc/kernel/firmware.c | 25 -
arch/powerpc/kernel/head_44x.S | 2
arch/powerpc/kernel/head_64.S | 11
arch/powerpc/kernel/head_8xx.S | 2
arch/powerpc/kernel/head_booke.h | 363 ++++++++++
arch/powerpc/kernel/head_fsl_booke.S | 6
arch/powerpc/kernel/iomap.c | 2
arch/powerpc/kernel/iommu.c | 1
arch/powerpc/kernel/irq.c | 32 +
arch/powerpc/kernel/kprobes.c | 1
arch/powerpc/kernel/pci_iommu.c | 1
arch/powerpc/kernel/ppc_ksyms.c | 1
arch/powerpc/kernel/process.c | 9
arch/powerpc/kernel/prom.c | 4
arch/powerpc/kernel/ptrace-common.h | 2
arch/powerpc/kernel/rtas-proc.c | 1
arch/powerpc/kernel/rtas_pci.c | 2
arch/powerpc/kernel/setup_64.c | 2
arch/powerpc/kernel/signal_64.c | 2
arch/powerpc/kernel/smp.c | 4
arch/powerpc/kernel/time.c | 241 ++++++-
arch/powerpc/kernel/vdso.c | 2
arch/powerpc/lib/copypage_64.S | 2
arch/powerpc/lib/copyuser_64.S | 2
arch/powerpc/lib/e2a.c | 14
arch/powerpc/lib/memcpy_64.S | 2
arch/powerpc/lib/rheap.c | 2
arch/powerpc/mm/fault.c | 2
arch/powerpc/mm/hash_low_32.S | 2
arch/powerpc/mm/hash_utils_64.c | 32 -
arch/powerpc/mm/init_64.c | 48 -
arch/powerpc/mm/lmb.c | 16
arch/powerpc/mm/mem.c | 1
arch/powerpc/mm/mmap.c | 2
arch/powerpc/mm/numa.c | 160 ++--
arch/powerpc/mm/slb_low.S | 2
arch/powerpc/mm/stab.c | 4
arch/powerpc/mm/tlb_64.c | 2
arch/powerpc/oprofile/op_model_power4.c | 3
arch/powerpc/platforms/83xx/Makefile | 4
arch/powerpc/platforms/83xx/misc.c | 55 +
arch/powerpc/platforms/83xx/mpc834x_sys.c | 89 --
arch/powerpc/platforms/83xx/mpc834x_sys.h | 2
arch/powerpc/platforms/83xx/mpc83xx.h | 5
arch/powerpc/platforms/83xx/pci.c | 21 -
arch/powerpc/platforms/85xx/Kconfig | 74 --
arch/powerpc/platforms/85xx/Makefile | 6
arch/powerpc/platforms/85xx/misc.c | 31 +
arch/powerpc/platforms/85xx/mpc8540_ads.h | 36 +
arch/powerpc/platforms/85xx/mpc85xx.h | 18
arch/powerpc/platforms/85xx/mpc85xx_ads.c | 244 +++++++
arch/powerpc/platforms/85xx/pci.c | 96 +++
arch/powerpc/platforms/Makefile | 2
arch/powerpc/platforms/chrp/pegasos_eth.c | 2
arch/powerpc/platforms/chrp/setup.c | 2
arch/powerpc/platforms/chrp/time.c | 2
arch/powerpc/platforms/iseries/mf.c | 112 ++-
arch/powerpc/platforms/iseries/setup.c | 72 +-
arch/powerpc/platforms/maple/time.c | 2
arch/powerpc/platforms/powermac/cpufreq_32.c | 2
arch/powerpc/platforms/powermac/feature.c | 2
arch/powerpc/platforms/powermac/nvram.c | 2
arch/powerpc/platforms/powermac/setup.c | 8
arch/powerpc/platforms/pseries/Makefile | 3
arch/powerpc/platforms/pseries/firmware.c | 103 +++
arch/powerpc/platforms/pseries/firmware.h | 17
arch/powerpc/platforms/pseries/hvCall.S | 2
arch/powerpc/platforms/pseries/iommu.c | 4
arch/powerpc/platforms/pseries/pci.c | 2
arch/powerpc/platforms/pseries/setup.c | 67 --
arch/powerpc/platforms/pseries/smp.c | 2
arch/powerpc/platforms/pseries/xics.c | 3
arch/powerpc/sysdev/dart_iommu.c | 2
arch/powerpc/sysdev/dcr.S | 2
arch/powerpc/sysdev/fsl_soc.c | 292 ++++++--
arch/powerpc/sysdev/ipic.h | 2
arch/powerpc/xmon/xmon.c | 30 +
arch/ppc/4xx_io/serial_sicc.c | 5
arch/ppc/8xx_io/commproc.c | 6
arch/ppc/Kconfig | 47 +
arch/ppc/Kconfig.debug | 2
arch/ppc/amiga/amiints.c | 2
arch/ppc/amiga/bootinfo.c | 2
arch/ppc/amiga/cia.c | 2
arch/ppc/amiga/config.c | 2
arch/ppc/amiga/ints.c | 2
arch/ppc/boot/Makefile | 3
arch/ppc/boot/common/Makefile | 3
arch/ppc/boot/common/bootinfo.c | 2
arch/ppc/boot/common/misc-common.c | 2
arch/ppc/boot/common/ns16550.c | 3
arch/ppc/boot/common/serial_stub.c | 2
arch/ppc/boot/common/util.S | 2
arch/ppc/boot/include/mpc10x.h | 2
arch/ppc/boot/simple/Makefile | 1
arch/ppc/boot/simple/cpc700_memory.c | 2
arch/ppc/boot/simple/embed_config.c | 7
arch/ppc/boot/simple/head.S | 9
arch/ppc/boot/simple/misc-chestnut.c | 2
arch/ppc/boot/simple/misc-cpci690.c | 2
arch/ppc/boot/simple/misc-ev64260.c | 2
arch/ppc/boot/simple/misc-ev64360.c | 1
arch/ppc/boot/simple/misc-katana.c | 2
arch/ppc/boot/simple/misc-mv64x60.c | 2
arch/ppc/boot/simple/misc-prep.c | 2
arch/ppc/boot/simple/misc-radstone_ppc7d.c | 2
arch/ppc/boot/simple/misc-spruce.c | 2
arch/ppc/boot/simple/misc.c | 2
arch/ppc/boot/simple/mpc10x_memory.c | 2
arch/ppc/boot/simple/mpc52xx_tty.c | 2
arch/ppc/boot/simple/mv64x60_tty.c | 2
arch/ppc/boot/simple/openbios.c | 2
arch/ppc/boot/simple/relocate.S | 2
arch/ppc/boot/utils/mkbugboot.c | 2
arch/ppc/configs/ml300_defconfig | 739 ++++++++++++++++++++
arch/ppc/configs/ml403_defconfig | 740 ++++++++++++++++++++
arch/ppc/kernel/head_44x.S | 2
arch/ppc/kernel/head_8xx.S | 2
arch/ppc/kernel/head_fsl_booke.S | 6
arch/ppc/kernel/smp-tbsync.c | 3
arch/ppc/kernel/traps.c | 2
arch/ppc/lib/rheap.c | 2
arch/ppc/math-emu/math.c | 2
arch/ppc/mm/44x_mmu.c | 4
arch/ppc/mm/fault.c | 2
arch/ppc/mm/hashtable.S | 2
arch/ppc/platforms/4xx/Kconfig | 23 -
arch/ppc/platforms/4xx/Makefile | 4
arch/ppc/platforms/4xx/bamboo.c | 2
arch/ppc/platforms/4xx/bamboo.h | 2
arch/ppc/platforms/4xx/bubinga.h | 2
arch/ppc/platforms/4xx/cpci405.c | 2
arch/ppc/platforms/4xx/ebony.c | 2
arch/ppc/platforms/4xx/ebony.h | 2
arch/ppc/platforms/4xx/ep405.c | 2
arch/ppc/platforms/4xx/ep405.h | 2
arch/ppc/platforms/4xx/ibm405ep.c | 2
arch/ppc/platforms/4xx/ibm405ep.h | 2
arch/ppc/platforms/4xx/ibm405gp.h | 2
arch/ppc/platforms/4xx/ibm405gpr.c | 2
arch/ppc/platforms/4xx/ibm405gpr.h | 2
arch/ppc/platforms/4xx/ibm440ep.c | 2
arch/ppc/platforms/4xx/ibm440ep.h | 2
arch/ppc/platforms/4xx/ibm440gp.c | 2
arch/ppc/platforms/4xx/ibm440gp.h | 2
arch/ppc/platforms/4xx/ibm440gx.c | 2
arch/ppc/platforms/4xx/ibm440gx.h | 2
arch/ppc/platforms/4xx/ibm440sp.c | 2
arch/ppc/platforms/4xx/ibm440sp.h | 2
arch/ppc/platforms/4xx/ibmnp405h.c | 2
arch/ppc/platforms/4xx/ibmnp405h.h | 2
arch/ppc/platforms/4xx/ibmstb4.c | 2
arch/ppc/platforms/4xx/ibmstb4.h | 2
arch/ppc/platforms/4xx/ibmstbx25.c | 2
arch/ppc/platforms/4xx/ibmstbx25.h | 2
arch/ppc/platforms/4xx/luan.c | 2
arch/ppc/platforms/4xx/luan.h | 2
arch/ppc/platforms/4xx/ocotea.c | 2
arch/ppc/platforms/4xx/ocotea.h | 2
arch/ppc/platforms/4xx/ppc440spe.c | 2
arch/ppc/platforms/4xx/ppc440spe.h | 2
arch/ppc/platforms/4xx/redwood5.c | 2
arch/ppc/platforms/4xx/redwood5.h | 2
arch/ppc/platforms/4xx/redwood6.c | 2
arch/ppc/platforms/4xx/redwood6.h | 2
arch/ppc/platforms/4xx/sycamore.c | 2
arch/ppc/platforms/4xx/sycamore.h | 2
arch/ppc/platforms/4xx/virtex-ii_pro.c | 60 --
arch/ppc/platforms/4xx/virtex-ii_pro.h | 99 ---
arch/ppc/platforms/4xx/virtex.c | 56 ++
arch/ppc/platforms/4xx/virtex.h | 35 +
arch/ppc/platforms/4xx/walnut.c | 2
arch/ppc/platforms/4xx/walnut.h | 2
arch/ppc/platforms/4xx/xilinx_ml300.c | 76 +-
arch/ppc/platforms/4xx/xilinx_ml300.h | 6
arch/ppc/platforms/4xx/xilinx_ml403.c | 177 +++++
arch/ppc/platforms/4xx/xilinx_ml403.h | 49 +
arch/ppc/platforms/4xx/xparameters/xparameters.h | 37 +
.../platforms/4xx/xparameters/xparameters_ml403.h | 243 ++++++++
arch/ppc/platforms/4xx/yucca.c | 2
arch/ppc/platforms/4xx/yucca.h | 2
arch/ppc/platforms/83xx/mpc834x_sys.c | 2
arch/ppc/platforms/83xx/mpc834x_sys.h | 4
arch/ppc/platforms/85xx/mpc8540_ads.c | 2
arch/ppc/platforms/85xx/mpc8540_ads.h | 2
arch/ppc/platforms/85xx/mpc8555_cds.h | 2
arch/ppc/platforms/85xx/mpc8560_ads.c | 2
arch/ppc/platforms/85xx/mpc8560_ads.h | 2
arch/ppc/platforms/85xx/mpc85xx_ads_common.c | 2
arch/ppc/platforms/85xx/mpc85xx_ads_common.h | 2
arch/ppc/platforms/85xx/mpc85xx_cds_common.c | 2
arch/ppc/platforms/85xx/mpc85xx_cds_common.h | 2
arch/ppc/platforms/85xx/sbc8560.c | 2
arch/ppc/platforms/85xx/sbc8560.h | 2
arch/ppc/platforms/85xx/sbc85xx.c | 2
arch/ppc/platforms/85xx/sbc85xx.h | 2
arch/ppc/platforms/85xx/stx_gp3.c | 2
arch/ppc/platforms/85xx/stx_gp3.h | 2
arch/ppc/platforms/85xx/tqm85xx.c | 2
arch/ppc/platforms/85xx/tqm85xx.h | 2
arch/ppc/platforms/Makefile | 3
arch/ppc/platforms/apus_setup.c | 2
arch/ppc/platforms/chestnut.c | 2
arch/ppc/platforms/chestnut.h | 2
arch/ppc/platforms/chrp_pegasos_eth.c | 2
arch/ppc/platforms/chrp_setup.c | 2
arch/ppc/platforms/chrp_time.c | 2
arch/ppc/platforms/cpci690.c | 4
arch/ppc/platforms/cpci690.h | 2
arch/ppc/platforms/ev64260.c | 4
arch/ppc/platforms/ev64260.h | 2
arch/ppc/platforms/ev64360.c | 4
arch/ppc/platforms/ev64360.h | 2
arch/ppc/platforms/fads.h | 2
arch/ppc/platforms/gemini.h | 3
arch/ppc/platforms/gemini_prom.S | 2
arch/ppc/platforms/gemini_setup.c | 2
arch/ppc/platforms/hdpu.c | 5
arch/ppc/platforms/hdpu.h | 2
arch/ppc/platforms/katana.c | 7
arch/ppc/platforms/katana.h | 2
arch/ppc/platforms/lite5200.c | 2
arch/ppc/platforms/lite5200.h | 2
arch/ppc/platforms/lopec.c | 2
arch/ppc/platforms/mpc8272ads_setup.c | 236 ++++++
arch/ppc/platforms/mpc866ads_setup.c | 273 +++++++
arch/ppc/platforms/mpc885ads_setup.c | 389 +++++++++++
arch/ppc/platforms/mvme5100.c | 2
arch/ppc/platforms/pal4.h | 2
arch/ppc/platforms/pal4_pci.c | 2
arch/ppc/platforms/pal4_serial.h | 2
arch/ppc/platforms/pal4_setup.c | 2
arch/ppc/platforms/powerpmc250.c | 2
arch/ppc/platforms/pplus.c | 2
arch/ppc/platforms/pplus.h | 2
arch/ppc/platforms/pq2ads.c | 2
arch/ppc/platforms/pq2ads.h | 4
arch/ppc/platforms/pq2ads_pd.h | 114 +++
arch/ppc/platforms/prep_setup.c | 2
arch/ppc/platforms/prpmc750.c | 2
arch/ppc/platforms/prpmc800.c | 2
arch/ppc/platforms/radstone_ppc7d.c | 7
arch/ppc/platforms/radstone_ppc7d.h | 2
arch/ppc/platforms/sandpoint.c | 2
arch/ppc/platforms/sandpoint.h | 2
arch/ppc/platforms/sbc82xx.c | 2
arch/ppc/platforms/spruce.c | 2
arch/ppc/platforms/tqm8260_setup.c | 2
arch/ppc/syslib/Makefile | 4
arch/ppc/syslib/cpc700.h | 2
arch/ppc/syslib/cpc700_pic.c | 2
arch/ppc/syslib/cpc710.h | 2
arch/ppc/syslib/gen550.h | 2
arch/ppc/syslib/gen550_dbg.c | 2
arch/ppc/syslib/gen550_kgdb.c | 2
arch/ppc/syslib/gt64260_pic.c | 2
arch/ppc/syslib/harrier.c | 2
arch/ppc/syslib/hawk_common.c | 2
arch/ppc/syslib/ibm440gp_common.c | 2
arch/ppc/syslib/ibm440gp_common.h | 2
arch/ppc/syslib/ibm440gx_common.c | 2
arch/ppc/syslib/ibm440gx_common.h | 2
arch/ppc/syslib/ibm440sp_common.c | 2
arch/ppc/syslib/ibm440sp_common.h | 2
arch/ppc/syslib/ibm44x_common.c | 2
arch/ppc/syslib/ibm44x_common.h | 2
arch/ppc/syslib/m8260_pci_erratum9.c | 2
arch/ppc/syslib/m8260_setup.c | 2
arch/ppc/syslib/m8xx_setup.c | 65 ++
arch/ppc/syslib/m8xx_wdt.c | 3
arch/ppc/syslib/mpc10x_common.c | 2
arch/ppc/syslib/mpc52xx_devices.c | 2
arch/ppc/syslib/mpc52xx_pci.c | 2
arch/ppc/syslib/mpc52xx_pci.h | 2
arch/ppc/syslib/mpc52xx_pic.c | 2
arch/ppc/syslib/mpc52xx_setup.c | 2
arch/ppc/syslib/mpc52xx_sys.c | 2
arch/ppc/syslib/mpc83xx_devices.c | 2
arch/ppc/syslib/mpc83xx_sys.c | 2
arch/ppc/syslib/mpc85xx_devices.c | 2
arch/ppc/syslib/mpc85xx_sys.c | 2
arch/ppc/syslib/mpc8xx_devices.c | 2
arch/ppc/syslib/mpc8xx_sys.c | 2
arch/ppc/syslib/mv64360_pic.c | 2
arch/ppc/syslib/mv64x60.c | 2
arch/ppc/syslib/mv64x60_dbg.c | 2
arch/ppc/syslib/mv64x60_win.c | 2
arch/ppc/syslib/ocp.c | 3
arch/ppc/syslib/open_pic.c | 2
arch/ppc/syslib/open_pic2.c | 2
arch/ppc/syslib/open_pic_defs.h | 2
arch/ppc/syslib/pci_auto.c | 2
arch/ppc/syslib/ppc4xx_dma.c | 2
arch/ppc/syslib/ppc4xx_pic.c | 2
arch/ppc/syslib/ppc4xx_pm.c | 47 -
arch/ppc/syslib/ppc4xx_sgdma.c | 2
arch/ppc/syslib/ppc83xx_setup.c | 2
arch/ppc/syslib/ppc83xx_setup.h | 2
arch/ppc/syslib/ppc85xx_common.c | 2
arch/ppc/syslib/ppc85xx_common.h | 2
arch/ppc/syslib/ppc85xx_setup.c | 2
arch/ppc/syslib/ppc85xx_setup.h | 2
arch/ppc/syslib/ppc_sys.c | 179 +++++
arch/ppc/syslib/pq2_devices.c | 2
arch/ppc/syslib/pq2_sys.c | 2
arch/ppc/syslib/prep_nvram.c | 2
arch/ppc/syslib/todc_time.c | 2
arch/ppc/syslib/xilinx_pic.c | 4
drivers/char/hvcs.c | 9
drivers/net/Kconfig | 1
include/asm-powerpc/atomic.h | 38 +
include/asm-powerpc/cputable.h | 38 +
include/asm-powerpc/cputime.h | 202 +++++
include/asm-powerpc/firmware.h | 16
include/asm-powerpc/irq.h | 6
include/asm-powerpc/iseries/mf.h | 7
include/asm-powerpc/lmb.h | 19 -
include/asm-powerpc/mmu.h | 1
include/asm-powerpc/paca.h | 7
include/asm-powerpc/pgtable-4k.h | 11
include/asm-powerpc/pgtable.h | 9
include/asm-powerpc/ppc_asm.h | 42 +
include/asm-powerpc/processor.h | 1
include/asm-powerpc/prom.h | 6
include/asm-powerpc/rwsem.h | 2
include/asm-powerpc/synch.h | 2
include/asm-powerpc/system.h | 6
include/asm-powerpc/time.h | 15
include/asm-ppc/harrier.h | 2
include/asm-ppc/ibm44x.h | 2
include/asm-ppc/ibm4xx.h | 4
include/asm-ppc/io.h | 7
include/asm-ppc/mpc10x.h | 3
include/asm-ppc/mpc52xx.h | 1
include/asm-ppc/mpc8260.h | 1
include/asm-ppc/mpc83xx.h | 1
include/asm-ppc/mpc85xx.h | 1
include/asm-ppc/mpc8xx.h | 3
include/asm-ppc/pgtable.h | 6
include/asm-ppc/ppc_sys.h | 34 +
include/asm-ppc/time.h | 5
include/asm-ppc/todc.h | 2
include/asm-ppc/xparameters.h | 18
kernel/auditsc.c | 2
lib/extable.c | 1
356 files changed, 6497 insertions(+), 1452 deletions(-)
create mode 100644 arch/powerpc/configs/mpc8540_ads_defconfig
create mode 100644 arch/powerpc/kernel/head_booke.h
create mode 100644 arch/powerpc/platforms/83xx/misc.c
create mode 100644 arch/powerpc/platforms/85xx/misc.c
create mode 100644 arch/powerpc/platforms/85xx/mpc8540_ads.h
create mode 100644 arch/powerpc/platforms/85xx/mpc85xx.h
create mode 100644 arch/powerpc/platforms/85xx/mpc85xx_ads.c
create mode 100644 arch/powerpc/platforms/85xx/pci.c
create mode 100644 arch/powerpc/platforms/pseries/firmware.c
create mode 100644 arch/powerpc/platforms/pseries/firmware.h
create mode 100644 arch/ppc/configs/ml300_defconfig
create mode 100644 arch/ppc/configs/ml403_defconfig
delete mode 100644 arch/ppc/platforms/4xx/virtex-ii_pro.c
delete mode 100644 arch/ppc/platforms/4xx/virtex-ii_pro.h
create mode 100644 arch/ppc/platforms/4xx/virtex.c
create mode 100644 arch/ppc/platforms/4xx/virtex.h
create mode 100644 arch/ppc/platforms/4xx/xilinx_ml403.c
create mode 100644 arch/ppc/platforms/4xx/xilinx_ml403.h
create mode 100644 arch/ppc/platforms/4xx/xparameters/xparameters.h
create mode 100644 arch/ppc/platforms/4xx/xparameters/xparameters_ml403.h
create mode 100644 arch/ppc/platforms/mpc8272ads_setup.c
create mode 100644 arch/ppc/platforms/mpc866ads_setup.c
create mode 100644 arch/ppc/platforms/mpc885ads_setup.c
create mode 100644 arch/ppc/platforms/pq2ads_pd.h
delete mode 100644 arch/ppc/syslib/ppc4xx_pm.c
delete mode 100644 include/asm-ppc/xparameters.h
^ permalink raw reply
* new sound driver
From: Johannes Berg @ 2006-03-22 9:35 UTC (permalink / raw)
To: linuxppc-dev; +Cc: Alastair Poole
[-- Attachment #1: Type: text/plain, Size: 4478 bytes --]
Hi,
After considering the code a while I decided that snd-powermac needs to
be rewritten. Ok, kidding, I didn't need to look at the source for
long :)
So I started to rewrite snd-powermac as snd-aoa, which I currently keep
in a git tree at http://johannes.sipsolutions.net/snd-aoa.git/
I will need a bit of help, so this email is intended to solicit that,
and to get some input on what everyone else thinks about what I've been
doing in that code.
Let me start with a brief layout. To those I've talked about this
before: please read again -- I significantly changed what I'm doing.
Since Ben says that he wants to be able to handle really old stuff with
the new driver too, I first created a virtual 'soundbus'. This is in the
module 'soundbus', and doesn't yet have any functionality in itself but
providing the driver model bus object.
I then created an i2sbus module that grabs all i2s devices from the
macio bus, enumerates their children (i2s-a, i2s-b etc) and adds them to
the soundbus.
Obviously, we'll need to add more bus backends there.
Now enter snd-aoa: snd-aoa has a rather generic architecture where the
core just initialises plugin code for different ways to find sound codec
chips. Currently, only one way is implemented -- that is going off the
layout-id property. This part (snd-aoa-fabric-layout.c) is a soundbus
driver and attaches to all soundbus nodes that have a 'sound' child with
a 'layout-id' property that it knows about. The list is encoded in
snd-aoa-layouts.c.
Plan is to make the fabrics and the codecs into modules too, but this
isn't done at the moment. Shouldn't be too hard, and should probably be
done before writing any more fabrics or codecs.
Anyway, back to what happens. Now the fabric module detects a layout-id
that it can handle, so it then goes to instantiate the codecs. Right now
I only have an onyx codec there. It tries to attach to the i2c control
interface (using two methods, but for that refer to the code). Then the
codec creates the alsa mixer devices that it can handle, using some alsa
helper code (snd-aoa-alsa) that manages the alsa card object.
That's about it. It can mute/unmute and control the left/right volume,
so it might work if you use both this and snd-powermac...
I had planned to actually get sound output working last night, but that
didn't turn out since I ended up rewriting all the lower levels.
So let me just say what the immediate plan is:
Firstly, the soundbus objects need to be able to handle data
transmission. What I'm not too sure about is how the API should look
like. I'm thinking that since all objects there are actually sound
objects (well, there's the modem too, but it can get an alsa interface
too), the soundbus objects actually get to create the alsa pcm
interfaces, somehow helped by the codecs to select the valid rates and
formats. Or the codecs create the alsa pcm streams, but refer to
soundbus object functions for handling the actual data transfer. I'd
like to push as much of the interface into the soundbus object as
possible. At this point also the question of how to program the dbdma
engine best comes up. I really don't know, because I don't quite
understand the alsa pcm api.
In any case, I'm thinking of putting dbdma register stuff into the
soundbus module and adding dbdma data to struct soundbus_dev.
Actually, this isn't quite possible. On the newer machines where you
have two codecs on the same i2s bus, we need to have the layout fabric
create the one pcm stream and have it ask the codecs what it should
advertise. Then it needs to advertise the lowest common denominator of
the multiple codecs... (Or can alsa handle pcms that change their
supported rates/formats?) Then it refers to the soundbus functions for
actual data transmission.
Another thing that needs to be done is teach the layout-id fabric module
how to handle all the dozens of platform functions and publish those to
alsa that make sense to be set by the user (like line out select etc.).
Then also register the interrupt ones and handle them appropriately. The
codecs will need to be notified on changes/interrupts though, since in
some cases things need to be switched around there too. This is just a
matter of inventing the right way to find all of the functions...
Whee. I was going to write more but for one it is already long enough,
and I also forgot what I wanted to write :)
johannes
[-- Attachment #2: This is a digitally signed message part --]
[-- Type: application/pgp-signature, Size: 793 bytes --]
^ permalink raw reply
* [PATCH] possible scheduler deadlock in 2.6.16
From: Anton Blanchard @ 2006-03-22 10:41 UTC (permalink / raw)
To: linux-kernel; +Cc: akpm, linuxppc-dev, mingo
Hi,
We have noticed lockups during boot when stress testing kexec on ppc64.
Two cpus would deadlock in scheduler code trying to grab already taken
spinlocks.
The double_rq_lock code uses the address of the runqueue to order the
taking of multiple locks. This address is a per cpu variable:
if (rq1 < rq2) {
spin_lock(&rq1->lock);
spin_lock(&rq2->lock);
} else {
spin_lock(&rq2->lock);
spin_lock(&rq1->lock);
}
On the other hand, the code in wake_sleeping_dependent uses the cpu id
order to grab locks:
for_each_cpu_mask(i, sibling_map)
spin_lock(&cpu_rq(i)->lock);
This means we rely on the address of per cpu data increasing as cpu ids
increase. While this will be true for the generic percpu implementation
it may not be true for arch specific implementations.
One way to solve this is to always take runqueues in cpu id order. To do
this we add a cpu variable to the runqueue and check it in the
double runqueue locking functions.
Thoughts?
Anton
Signed-off-by: Anton Blanchard <anton@samba.org>
---
Index: build/kernel/sched.c
===================================================================
--- build.orig/kernel/sched.c 2006-03-22 18:46:53.000000000 +1100
+++ build/kernel/sched.c 2006-03-22 20:44:20.000000000 +1100
@@ -237,6 +237,7 @@ struct runqueue {
task_t *migration_thread;
struct list_head migration_queue;
+ int cpu;
#endif
#ifdef CONFIG_SCHEDSTATS
@@ -1660,6 +1661,9 @@ unsigned long nr_iowait(void)
/*
* double_rq_lock - safely lock two runqueues
*
+ * We must take them in cpu order to match code in
+ * dependent_sleeper and wake_dependent_sleeper.
+ *
* Note this does not disable interrupts like task_rq_lock,
* you need to do so manually before calling.
*/
@@ -1671,7 +1675,7 @@ static void double_rq_lock(runqueue_t *r
spin_lock(&rq1->lock);
__acquire(rq2->lock); /* Fake it out ;) */
} else {
- if (rq1 < rq2) {
+ if (rq1->cpu < rq2->cpu) {
spin_lock(&rq1->lock);
spin_lock(&rq2->lock);
} else {
@@ -1707,7 +1711,7 @@ static void double_lock_balance(runqueue
__acquires(this_rq->lock)
{
if (unlikely(!spin_trylock(&busiest->lock))) {
- if (busiest < this_rq) {
+ if (busiest->cpu < this_rq->cpu) {
spin_unlock(&this_rq->lock);
spin_lock(&busiest->lock);
spin_lock(&this_rq->lock);
@@ -6035,6 +6039,7 @@ void __init sched_init(void)
rq->push_cpu = 0;
rq->migration_thread = NULL;
INIT_LIST_HEAD(&rq->migration_queue);
+ rq->cpu = i;
#endif
atomic_set(&rq->nr_iowait, 0);
^ permalink raw reply
* Re: [PATCH] possible scheduler deadlock in 2.6.16
From: Anton Blanchard @ 2006-03-22 12:17 UTC (permalink / raw)
To: Nick Piggin; +Cc: akpm, linuxppc-dev, mingo, linux-kernel
In-Reply-To: <4421307F.8020300@yahoo.com.au>
Hi Nick,
> You're right. I can't think of a better fix, although we've been trying
> to avoid adding cpu to the runqueue structure.
>
> I was going to suggest moving more work into wake_sleeping_dependent
> instead, but cores with 4 and more threads now make that less desirable
> I suppose.
My thoughts too. I wasnt sure if davem is planning to use the sibling
code for his niagara work, but locking us down to 2 siblings sounds like
a bad idea.
Anton
^ permalink raw reply
* Re: [PATCH] possible scheduler deadlock in 2.6.16
From: Nick Piggin @ 2006-03-22 11:09 UTC (permalink / raw)
To: Anton Blanchard; +Cc: akpm, linuxppc-dev, mingo, linux-kernel
In-Reply-To: <20060322104143.GC30422@krispykreme>
Anton Blanchard wrote:
> One way to solve this is to always take runqueues in cpu id order. To do
> this we add a cpu variable to the runqueue and check it in the
> double runqueue locking functions.
>
> Thoughts?
>
You're right. I can't think of a better fix, although we've been trying
to avoid adding cpu to the runqueue structure.
I was going to suggest moving more work into wake_sleeping_dependent
instead, but cores with 4 and more threads now make that less desirable
I suppose.
--
SUSE Labs, Novell Inc.
Send instant messages to your online friends http://au.messenger.yahoo.com
^ permalink raw reply
* Re: Running Linux 2.6.16 and Xorg 7.0 on iMac G5 rev C (iSight)
From: Étienne Bersac @ 2006-03-22 14:29 UTC (permalink / raw)
To: Benjamin Herrenschmidt; +Cc: Linuxppc-dev, debian-powerpc, ubuntu-devel
In-Reply-To: <1142992999.12137.69.camel@localhost.localdomain>
Hello,
>> - Get Ben's kernel at http://bersace03.free.fr/pub/iMac%20G5/
>> vmlinux.bz2 (mirror of http://gate.crashing.org/~benh/vmlinux.bz2).
>> bunzip2 it at /.
>
> Don't do that ! :)
I uploaded a .deb for 2.6.16 at http://bersace03.free.fr/pub/Linux/=20
iMac%20G5 . We may extract vmlinux from it and copy it to Macintosh =20
Volume, but that's untested.
I really need feedback on it. I'll write an howto at wiki.ubuntu.com.
=C9tienne.=
^ permalink raw reply
* software-triggered reset of MPC8541
From: Dan Wilson @ 2006-03-22 14:28 UTC (permalink / raw)
To: linuxppc-embedded
My apologies for asking a question in this mailing list that is somewhat=
off-topic, but this is the best list I know of for such a question:
We are trying to implement a software function to reset an 8541. The ELDK=
4.0 kernel includes an abort() function that does this by setting the=
appropriate bits in DBCR0. In our tests, this unfailingly reboots the=
unit. A colleague has put an identical function into a non-linux-based=
application on which he is working, and finds that most of the time the=
unit reboots as expected, but sometimes it just hangs.
My question is: does the linux kernel do anything special to prepare the=
processor environment for this reboot prior to calling abort()? The only=
thing I could find was a call to local_irq_disable(), which does:
static inline void local_irq_disable(void)
{
#ifdef CONFIG_BOOKE
__asm__ __volatile__("wrteei 0": : :"memory");
#else
unsigned long msr;
__asm__ __volatile__("": : :"memory");
msr =3D mfmsr();
SET_MSR_EE(msr & ~MSR_EE);
#endif
}
As the 8541 is an E500 core, I believe it is the #ifdef CONFIG_BOOKE code=
that is being executed. The wrteei 0 instruction is clear enough. What=
does the rest of that line do (i.e., the repeated colons and the memory=
command)? I haven't been able to find a memory command in the ppc=
instruction set documents that I have?
Thanks in advance for any help anyone can give to help us understand this=
code sequence better!
Best regards,
Dan.
^ permalink raw reply
* Re: software-triggered reset of MPC8541
From: Kumar Gala @ 2006-03-22 15:05 UTC (permalink / raw)
To: Dan Wilson; +Cc: linuxppc-embedded
In-Reply-To: <200603220628100675.0019366F@smtp.dslextreme.com>
On Mar 22, 2006, at 8:28 AM, Dan Wilson wrote:
> My apologies for asking a question in this mailing list that is
> somewhat off-topic, but this is the best list I know of for such a
> question:
>
> We are trying to implement a software function to reset an 8541.
> The ELDK 4.0 kernel includes an abort() function that does this by
> setting the appropriate bits in DBCR0. In our tests, this
> unfailingly reboots the unit. A colleague has put an identical
> function into a non-linux-based application on which he is working,
> and finds that most of the time the unit reboots as expected, but
> sometimes it just hangs.
>
> My question is: does the linux kernel do anything special to
> prepare the processor environment for this reboot prior to calling
> abort()? The only thing I could find was a call to
> local_irq_disable(), which does:
> static inline void local_irq_disable(void)
The problem is there is no good way of actually resetting the full
8541 from software without additional logic on whatever system you
have. The abort() is a poor mans way which is only actually
resetting the E500 core. The rest of the system logic is left in
whatever state it was before.
What you really need is to determine if there is some way to effect
and board logic you may have that handles the HRESET_REQ signal.
> {
> #ifdef CONFIG_BOOKE
> __asm__ __volatile__("wrteei 0": : :"memory");
> #else
> unsigned long msr;
> __asm__ __volatile__("": : :"memory");
> msr = mfmsr();
> SET_MSR_EE(msr & ~MSR_EE);
> #endif
> }
>
> As the 8541 is an E500 core, I believe it is the #ifdef
> CONFIG_BOOKE code that is being executed. The wrteei 0 instruction
> is clear enough. What does the rest of that line do (i.e., the
> repeated colons and the memory command)? I haven't been able to
> find a memory command in the ppc instruction set documents that I
> have?
The "memory" reference is more about GCC's assembler syntax than
anything PPC specific. Take a look at the GCC does for inline
assembly to find out more.
- kumar
^ permalink raw reply
* Re: Running Linux 2.6.16 and Xorg 7.0 on iMac G5 rev C (iSight)
From: Étienne Bersac @ 2006-03-22 16:05 UTC (permalink / raw)
To: Étienne Bersac; +Cc: debian-powerpc, ubuntu-devel, Linuxppc-dev
In-Reply-To: <500AF45B-8341-44E2-8D83-0B803D7A77EC@laposte.net>
[-- Attachment #1: Type: text/plain, Size: 111 bytes --]
Hello,
An howto is available at https://wiki.ubuntu.com/iMacG5revC . Thanks
for contributing.
Étienne.
[-- Attachment #2: Type: text/html, Size: 551 bytes --]
^ permalink raw reply
* Re: Running Linux 2.6.16 and Xorg 7.0 on iMac G5 rev C (iSight)
From: Mark Guertin @ 2006-03-22 16:33 UTC (permalink / raw)
To: Étienne Bersac; +Cc: Linuxppc-dev, debian-powerpc, ubuntu-devel
In-Reply-To: <1142992999.12137.69.camel@localhost.localdomain>
On 21-Mar-06, at 9:03 PM, Benjamin Herrenschmidt wrote:
>
>> - Get Ben's kernel at http://bersace03.free.fr/pub/iMac%20G5/
>> vmlinux.bz2 (mirror of http://gate.crashing.org/~benh/vmlinux.bz2).
>> bunzip2 it at /.
>
> Don't do that ! :)
>
> There is no such thing as benh's kernels :) that's long gone. In
> fact, I
> just removed the above one from the site... it was just a build to
> help
> you. 2.6.16 should work on this machine, if you need a pre-build
> version
> of it, try to get somebody on this list or post yourself one somewhere
> but don't spread the idea that there is still such a thing as "benh's
> kernel" :)
If you're ever looking for prebuilt kernels for powerpc check out
http://ppckernel.org/
Many prebuilt (vanilla, some custom kernels). We're always willing
to take on more configs as well (like ubuntu builds). if you want to
add some get in touch with me offlist and we can get you setup.
Makes for good regression testing as well as we keep an archive of
the kernels built.
Mark
^ permalink raw reply
* reset mpc83xx plaform.
From: David Updegraff @ 2006-03-22 17:20 UTC (permalink / raw)
To: linuxppc-embedded
[-- Attachment #1: Type: text/plain, Size: 212 bytes --]
Hi.
I think there's some typo-errs. in arch/powerpc/platforms/83xx/misc.c.
In my case, these result in board lockup at 'reboot' instead of reset.
By my reading of the PDF, it needs to be patched thusly.
-dbu.
[-- Attachment #2: resetpatch --]
[-- Type: text/plain, Size: 822 bytes --]
diff --git a/arch/powerpc/platforms/83xx/misc.c b/arch/powerpc/platforms/83xx/misc.c
index 0eb3d99..d918d45 100644
--- a/arch/powerpc/platforms/83xx/misc.c
+++ b/arch/powerpc/platforms/83xx/misc.c
@@ -24,6 +24,7 @@ void mpc83xx_restart(char *cmd)
#define RST_OFFSET 0x00000900
#define RST_PROT_REG 0x00000018
#define RST_CTRL_REG 0x0000001c
+#define RST_ENBL_REG 0x00000020
__be32 __iomem *reg;
/* map reset register space */
@@ -34,8 +35,12 @@ void mpc83xx_restart(char *cmd)
/* enable software reset "RSTE" */
out_be32(reg + (RST_PROT_REG >> 2), 0x52535445);
+ /* wait for reset to get enabled */
+ while ((in_be32 (reg + (RST_ENBL_REG >> 2)) & 1) == 0 )
+ ;
+
/* set software hard reset */
- out_be32(reg + (RST_CTRL_REG >> 2), 0x52535445);
+ out_be32(reg + (RST_CTRL_REG >> 2), 3);
for (;;) ;
}
^ permalink raw reply related
* Re: reset mpc83xx plaform.
From: Kumar Gala @ 2006-03-22 18:15 UTC (permalink / raw)
To: David Updegraff; +Cc: linuxppc-embedded
In-Reply-To: <dvs108$8d8$1@sea.gmane.org>
On Mar 22, 2006, at 11:20 AM, David Updegraff wrote:
> Hi.
>
> I think there's some typo-errs. in arch/powerpc/platforms/83xx/misc.c.
> In my case, these result in board lockup at 'reboot' instead of reset.
>
> By my reading of the PDF, it needs to be patched thusly.
Yeah, this fix should be in what Paul just sent to linus for 2.6.17.
I guess I could push to get it into 2.6.16.x if desired.
- kumar
> diff --git a/arch/powerpc/platforms/83xx/misc.c b/arch/powerpc/
> platforms/83xx/misc.c
> index 0eb3d99..d918d45 100644
> --- a/arch/powerpc/platforms/83xx/misc.c
> +++ b/arch/powerpc/platforms/83xx/misc.c
> @@ -24,6 +24,7 @@ void mpc83xx_restart(char *cmd)
> #define RST_OFFSET 0x00000900
> #define RST_PROT_REG 0x00000018
> #define RST_CTRL_REG 0x0000001c
> +#define RST_ENBL_REG 0x00000020
> __be32 __iomem *reg;
>
> /* map reset register space */
> @@ -34,8 +35,12 @@ void mpc83xx_restart(char *cmd)
> /* enable software reset "RSTE" */
> out_be32(reg + (RST_PROT_REG >> 2), 0x52535445);
>
> + /* wait for reset to get enabled */
> + while ((in_be32 (reg + (RST_ENBL_REG >> 2)) & 1) == 0 )
> + ;
> +
> /* set software hard reset */
> - out_be32(reg + (RST_CTRL_REG >> 2), 0x52535445);
> + out_be32(reg + (RST_CTRL_REG >> 2), 3);
> for (;;) ;
> }
>
> _______________________________________________
> Linuxppc-embedded mailing list
> Linuxppc-embedded@ozlabs.org
> https://ozlabs.org/mailman/listinfo/linuxppc-embedded
^ permalink raw reply
* Re: Running Linux 2.6.16 and Xorg 7.0 on iMac G5 rev C (iSight)
From: Étienne Bersac @ 2006-03-22 18:33 UTC (permalink / raw)
To: Mark Guertin; +Cc: Linuxppc-dev, debian-powerpc, ubuntu-devel
In-Reply-To: <FCCB4002-AA48-437F-98F0-4E284CBB1818@ppckernel.org>
[-- Attachment #1: Type: text/plain, Size: 93 bytes --]
I updated the Howto. feel free to check it. https://wiki.ubuntu.com/
iMacG5revC
Étienne.
[-- Attachment #2: Type: text/html, Size: 369 bytes --]
^ permalink raw reply
* Re: [PATCH] possible scheduler deadlock in 2.6.16
From: Ingo Molnar @ 2006-03-22 13:16 UTC (permalink / raw)
To: Anton Blanchard; +Cc: akpm, linuxppc-dev, linux-kernel
In-Reply-To: <20060322104143.GC30422@krispykreme>
* Anton Blanchard <anton@samba.org> wrote:
> One way to solve this is to always take runqueues in cpu id order. To
> do this we add a cpu variable to the runqueue and check it in the
> double runqueue locking functions.
>
> Thoughts?
it's fine with me - the overhead to double_rq_lock() is minimal, and
it's not critical code either.
Acked-by: Ingo Molnar <mingo@elte.hu>
Ingo
^ permalink raw reply
* [PATCH] powerpc: Add FSL SEC node to documentation (whitespace fixed)
From: Kim Phillips @ 2006-03-22 20:33 UTC (permalink / raw)
To: Paul Mackerras; +Cc: linuxppc-dev
Documentation: Added FSL SOC SEC node definition
Updated the documentation to include the definition of the SEC device
node format for Freescale SOC devices.
Signed-off-by: Kim Phillips <kim.phillips@freescale.com>
---
commit e51555b4bad3188afa02821eb4433929e4293002
tree 41d27e57f82c0f4cd93d323cca027fb995b2e508
parent dd126d5545e6e1bd584b90c0f9da35b7183e08cf
author Kim Phillips <kim.phillips@freescale.com> Wed, 22 Mar 2006 13:56:17 -0600
committer Kim Phillips <kim.phillips@freescale.com> Wed, 22 Mar 2006 13:56:17 -0600
Documentation/powerpc/booting-without-of.txt | 72 ++++++++++++++++++++++++++
1 files changed, 72 insertions(+), 0 deletions(-)
diff --git a/Documentation/powerpc/booting-without-of.txt b/Documentation/powerpc/booting-without-of.txt
index d02c649..a90dc85 100644
--- a/Documentation/powerpc/booting-without-of.txt
+++ b/Documentation/powerpc/booting-without-of.txt
@@ -1365,6 +1365,78 @@ platforms are moved over to use the flat
};
+ g) Freescale SOC SEC Security Engines
+
+ Required properties:
+
+ - device_type : Should be "crypto"
+ - model : Model of the device. Should be "SEC1" or "SEC2"
+ - compatible : Should be "talitos"
+ - reg : Offset and length of the register set for the device
+ - interrupts : <a b> where a is the interrupt number and b is a
+ field that represents an encoding of the sense and level
+ information for the interrupt. This should be encoded based on
+ the information in section 2) depending on the type of interrupt
+ controller you have.
+ - interrupt-parent : the phandle for the interrupt controller that
+ services interrupts for this device.
+ - num-channels : An integer representing the number of channels
+ available.
+ - channel-fifo-len : An integer representing the number of
+ descriptor pointers each channel fetch fifo can hold.
+ - exec-units-mask : The bitmask representing what execution units
+ (EUs) are available. It's a single 32 bit cell. EU information
+ should be encoded following the SEC's Descriptor Header Dword
+ EU_SEL0 field documentation, i.e. as follows:
+
+ bit 0 = reserved - should be 0
+ bit 1 = set if SEC has the ARC4 EU (AFEU)
+ bit 2 = set if SEC has the DES/3DES EU (DEU)
+ bit 3 = set if SEC has the message digest EU (MDEU)
+ bit 4 = set if SEC has the random number generator EU (RNG)
+ bit 5 = set if SEC has the public key EU (PKEU)
+ bit 6 = set if SEC has the AES EU (AESU)
+ bit 7 = set if SEC has the Kasumi EU (KEU)
+
+ bits 8 through 31 are reserved for future SEC EUs.
+
+ - descriptor-types-mask : The bitmask representing what descriptors
+ are available. It's a single 32 bit cell. Descriptor type
+ information should be encoded following the SEC's Descriptor
+ Header Dword DESC_TYPE field documentation, i.e. as follows:
+
+ bit 0 = set if SEC supports the aesu_ctr_nonsnoop desc. type
+ bit 1 = set if SEC supports the ipsec_esp descriptor type
+ bit 2 = set if SEC supports the common_nonsnoop desc. type
+ bit 3 = set if SEC supports the 802.11i AES ccmp desc. type
+ bit 4 = set if SEC supports the hmac_snoop_no_afeu desc. type
+ bit 5 = set if SEC supports the srtp descriptor type
+ bit 6 = set if SEC supports the non_hmac_snoop_no_afeu desc.type
+ bit 7 = set if SEC supports the pkeu_assemble descriptor type
+ bit 8 = set if SEC supports the aesu_key_expand_output desc.type
+ bit 9 = set if SEC supports the pkeu_ptmul descriptor type
+ bit 10 = set if SEC supports the common_nonsnoop_afeu desc. type
+ bit 11 = set if SEC supports the pkeu_ptadd_dbl descriptor type
+
+ ..and so on and so forth.
+
+ Example:
+
+ /* MPC8548E */
+ crypto@30000 {
+ device_type = "crypto";
+ model = "SEC2";
+ compatible = "talitos";
+ reg = <30000 10000>;
+ interrupts = <1d 3>;
+ interrupt-parent = <40000>;
+ num-channels = <4>;
+ channel-fifo-len = <24>;
+ exec-units-mask = <000000fe>;
+ descriptor-types-mask = <073f1127>;
+ };
+
+
More devices will be defined as this spec matures.
^ permalink raw reply related
* [PATCH] powerpc: Add FSL SEC node to documentation
From: Kim Phillips @ 2006-03-22 20:39 UTC (permalink / raw)
To: Paul Mackerras; +Cc: linuxppc-dev
Documentation: Added FSL SOC SEC node definition
Updated the documentation to include the definition of the SEC device
node format for Freescale SOC devices.
Signed-off-by: Kim Phillips <kim.phillips@freescale.com>
---
commit e51555b4bad3188afa02821eb4433929e4293002
tree 41d27e57f82c0f4cd93d323cca027fb995b2e508
parent dd126d5545e6e1bd584b90c0f9da35b7183e08cf
author Kim Phillips <kim.phillips@freescale.com> Wed, 22 Mar 2006 13:56:17 -0600
committer Kim Phillips <kim.phillips@freescale.com> Wed, 22 Mar 2006 13:56:17 -0600
Documentation/powerpc/booting-without-of.txt | 72 ++++++++++++++++++++++++++
1 files changed, 72 insertions(+), 0 deletions(-)
diff --git a/Documentation/powerpc/booting-without-of.txt b/Documentation/powerpc/booting-without-of.txt
index d02c649..a90dc85 100644
--- a/Documentation/powerpc/booting-without-of.txt
+++ b/Documentation/powerpc/booting-without-of.txt
@@ -1365,6 +1365,78 @@ platforms are moved over to use the flat
};
+ g) Freescale SOC SEC Security Engines
+
+ Required properties:
+
+ - device_type : Should be "crypto"
+ - model : Model of the device. Should be "SEC1" or "SEC2"
+ - compatible : Should be "talitos"
+ - reg : Offset and length of the register set for the device
+ - interrupts : <a b> where a is the interrupt number and b is a
+ field that represents an encoding of the sense and level
+ information for the interrupt. This should be encoded based on
+ the information in section 2) depending on the type of interrupt
+ controller you have.
+ - interrupt-parent : the phandle for the interrupt controller that
+ services interrupts for this device.
+ - num-channels : An integer representing the number of channels
+ available.
+ - channel-fifo-len : An integer representing the number of
+ descriptor pointers each channel fetch fifo can hold.
+ - exec-units-mask : The bitmask representing what execution units
+ (EUs) are available. It's a single 32 bit cell. EU information
+ should be encoded following the SEC's Descriptor Header Dword
+ EU_SEL0 field documentation, i.e. as follows:
+
+ bit 0 = reserved - should be 0
+ bit 1 = set if SEC has the ARC4 EU (AFEU)
+ bit 2 = set if SEC has the DES/3DES EU (DEU)
+ bit 3 = set if SEC has the message digest EU (MDEU)
+ bit 4 = set if SEC has the random number generator EU (RNG)
+ bit 5 = set if SEC has the public key EU (PKEU)
+ bit 6 = set if SEC has the AES EU (AESU)
+ bit 7 = set if SEC has the Kasumi EU (KEU)
+
+ bits 8 through 31 are reserved for future SEC EUs.
+
+ - descriptor-types-mask : The bitmask representing what descriptors
+ are available. It's a single 32 bit cell. Descriptor type
+ information should be encoded following the SEC's Descriptor
+ Header Dword DESC_TYPE field documentation, i.e. as follows:
+
+ bit 0 = set if SEC supports the aesu_ctr_nonsnoop desc. type
+ bit 1 = set if SEC supports the ipsec_esp descriptor type
+ bit 2 = set if SEC supports the common_nonsnoop desc. type
+ bit 3 = set if SEC supports the 802.11i AES ccmp desc. type
+ bit 4 = set if SEC supports the hmac_snoop_no_afeu desc. type
+ bit 5 = set if SEC supports the srtp descriptor type
+ bit 6 = set if SEC supports the non_hmac_snoop_no_afeu desc.type
+ bit 7 = set if SEC supports the pkeu_assemble descriptor type
+ bit 8 = set if SEC supports the aesu_key_expand_output desc.type
+ bit 9 = set if SEC supports the pkeu_ptmul descriptor type
+ bit 10 = set if SEC supports the common_nonsnoop_afeu desc. type
+ bit 11 = set if SEC supports the pkeu_ptadd_dbl descriptor type
+
+ ..and so on and so forth.
+
+ Example:
+
+ /* MPC8548E */
+ crypto@30000 {
+ device_type = "crypto";
+ model = "SEC2";
+ compatible = "talitos";
+ reg = <30000 10000>;
+ interrupts = <1d 3>;
+ interrupt-parent = <40000>;
+ num-channels = <4>;
+ channel-fifo-len = <24>;
+ exec-units-mask = <000000fe>;
+ descriptor-types-mask = <073f1127>;
+ };
+
+
More devices will be defined as this spec matures.
^ permalink raw reply related
* swizzling pci irqs
From: David Updegraff @ 2006-03-22 20:59 UTC (permalink / raw)
To: linuxppc-embedded
Hi.
If there were a noswizzle option to the kernel command line that
resulted in pci scan simply trusting that the bootrom/u-boot had already
correctly assigned the PCI irqs.... every tom,dick,harry, and
yours-truly wouldn't have to make a new platform to define the
swizzle-o-the-day. Or have I already missed this argument?
-dbu
^ permalink raw reply
* Re: new sound driver
From: Benjamin Herrenschmidt @ 2006-03-22 21:50 UTC (permalink / raw)
To: Johannes Berg; +Cc: linuxppc-dev, Alastair Poole
In-Reply-To: <1143020119.11724.41.camel@localhost>
On Wed, 2006-03-22 at 10:35 +0100, Johannes Berg wrote:
> Firstly, the soundbus objects need to be able to handle data
> transmission. What I'm not too sure about is how the API should look
> like. I'm thinking that since all objects there are actually sound
> objects (well, there's the modem too, but it can get an alsa interface
> too), the soundbus objects actually get to create the alsa pcm
> interfaces, somehow helped by the codecs to select the valid rates and
> formats. Or the codecs create the alsa pcm streams, but refer to
> soundbus object functions for handling the actual data transfer. I'd
> like to push as much of the interface into the soundbus object as
> possible. At this point also the question of how to program the dbdma
> engine best comes up. I really don't know, because I don't quite
> understand the alsa pcm api.
> In any case, I'm thinking of putting dbdma register stuff into the
> soundbus module and adding dbdma data to struct soundbus_dev.
that would make soundbus totally pmac specific, in which case you should
call it aoa-bus or something like that.
Regarding your previous question well... I think the soundbus can create
the pcm streams. Alsa has 2 levels: PCM objects and PCM substreams. We
need the former. Substreams are used when the harware has several
streams that are hw mixed to the same mixers which isn't the case with
apple layout. When we have multiple i2s busses, they are really
independant with separate codecs, frame rates & formats etc.. thus
separate PCM objects.
I think the sound bus should create the PCMs. Now I don't remember from
Alsa API but do we need to know the available rates in advance ? In that
case, we may want to have the bitmask provided by the fabric (from the
layout array for example).
I'm also not sure how Alsa handle changes there. For example, if you
plug a digital input, the entire bus where this input is has to be
clocked from that, thus limiting dynamically what rates/formats are
available. I'm not sure Alsa API can cope with that yet.
> Actually, this isn't quite possible. On the newer machines where you
> have two codecs on the same i2s bus, we need to have the layout fabric
> create the one pcm stream and have it ask the codecs what it should
> advertise. Then it needs to advertise the lowest common denominator of
> the multiple codecs... (Or can alsa handle pcms that change their
> supported rates/formats?) Then it refers to the soundbus functions for
> actual data transmission.
The problem is that codec objects have to be created asynchronously
since they use asynchronous i2c discovery. Unless you instanciate them
all but simply mark them "offline" and then mark them "online" later
when the hardware actually shows up. That is fine except for .. topaz
where you need to access the hw to know the chip type, thus you can't
really know everything you need early enough (or maybe you can ...)
> Another thing that needs to be done is teach the layout-id fabric module
> how to handle all the dozens of platform functions and publish those to
> alsa that make sense to be set by the user (like line out select etc.).
> Then also register the interrupt ones and handle them appropriately. The
> codecs will need to be notified on changes/interrupts though, since in
> some cases things need to be switched around there too. This is just a
> matter of inventing the right way to find all of the functions...
>
> Whee. I was going to write more but for one it is already long enough,
> and I also forgot what I wanted to write :)
Just sleep on it for now :) We definitely need a "core" module that
handles all of the gpio mess. ..
Ben.
^ permalink raw reply
* Re: swizzling pci irqs
From: Kumar Gala @ 2006-03-22 22:28 UTC (permalink / raw)
To: David Updegraff; +Cc: linuxppc-embedded
In-Reply-To: <dvsds7$ta0$1@sea.gmane.org>
On Mar 22, 2006, at 2:59 PM, David Updegraff wrote:
> Hi.
>
> If there were a noswizzle option to the kernel command line that
> resulted in pci scan simply trusting that the bootrom/u-boot had
> already
> correctly assigned the PCI irqs.... every tom,dick,harry, and
> yours-truly wouldn't have to make a new platform to define the
> swizzle-o-the-day. Or have I already missed this argument?
Sure, I do this now. Just don't build pci_auto into your pci support
and don't explicitly rescan in your pci setup. The 83xx pci code
under arch/powerpc should effective do this.
- kumar
^ permalink raw reply
* Re: [PATCH] possible scheduler deadlock in 2.6.16
From: Peter Williams @ 2006-03-22 22:52 UTC (permalink / raw)
To: Nick Piggin; +Cc: akpm, linuxppc-dev, mingo, linux-kernel
In-Reply-To: <4421307F.8020300@yahoo.com.au>
Nick Piggin wrote:
> Anton Blanchard wrote:
>
>> One way to solve this is to always take runqueues in cpu id order. To do
>> this we add a cpu variable to the runqueue and check it in the
>> double runqueue locking functions.
>>
>> Thoughts?
>>
>
> You're right. I can't think of a better fix, although we've been trying
> to avoid adding cpu to the runqueue structure.
But now that it's there it will enable further optimizations in parts of
sched.c, wouldn't it? E.g. there's a number of functions that get
passed both the run queue and the CPI id as arguments and these could be
simplified.
Peter
--
Peter Williams pwil3058@bigpond.net.au
"Learning, n. The kind of ignorance distinguishing the studious."
-- Ambrose Bierce
^ permalink raw reply
* [patch 01/13] powerpc: hvc_console updates
From: Arnd Bergmann @ 2006-03-22 23:00 UTC (permalink / raw)
To: Paul Mackerras; +Cc: Arnd Bergmann, linuxppc-dev, cbe-oss-dev, linux-kernel
In-Reply-To: <20060323203423.620978000@dyn-9-152-242-103.boeblingen.de.ibm.com>
These are some updates from both Ryan and Arnd for the hvc_console
driver:
The main point is to enable the inclusion of a console driver
for rtas, which is currrently needed for the cell platform.
Also shuffle around some data-type declarations and moves some
functions out of include/asm-ppc64/hvconsole.h and into a new
drivers/char/hvc_console.h file.
From: "Ryan S. Arnold" <rsa@us.ibm.com>
Signed-off-by: "Ryan S. Arnold" <rsa@us.ibm.com>
Signed-off-by: Arnd Bergmann <arnd.bergmann@de.ibm.com>
Index: linux-2.6.16-rc/drivers/char/hvc_console.c
===================================================================
--- linux-2.6.16-rc.orig/drivers/char/hvc_console.c
+++ linux-2.6.16-rc/drivers/char/hvc_console.c
@@ -39,8 +39,10 @@
#include <linux/sched.h>
#include <linux/spinlock.h>
#include <linux/delay.h>
+
#include <asm/uaccess.h>
-#include <asm/hvconsole.h>
+
+#include "hvc_console.h"
#define HVC_MAJOR 229
#define HVC_MINOR 0
@@ -54,17 +56,14 @@
#define HVC_CLOSE_WAIT (HZ/100) /* 1/10 of a second */
/*
- * The Linux TTY code does not support dynamic addition of tty derived devices
- * so we need to know how many tty devices we might need when space is allocated
- * for the tty device. Since this driver supports hotplug of vty adapters we
- * need to make sure we have enough allocated.
+ * These sizes are most efficient for vio, because they are the
+ * native transfer size. We could make them selectable in the
+ * future to better deal with backends that want other buffer sizes.
*/
-#define HVC_ALLOC_TTY_ADAPTERS 8
-
#define N_OUTBUF 16
#define N_INBUF 16
-#define __ALIGNED__ __attribute__((__aligned__(8)))
+#define __ALIGNED__ __attribute__((__aligned__(sizeof(long))))
static struct tty_driver *hvc_driver;
static struct task_struct *hvc_task;
@@ -154,7 +153,7 @@ static uint32_t vtermnos[MAX_NR_HVC_CONS
void hvc_console_print(struct console *co, const char *b, unsigned count)
{
- char c[16] __ALIGNED__;
+ char c[N_OUTBUF] __ALIGNED__;
unsigned i = 0, n = 0;
int r, donecr = 0, index = co->index;
@@ -473,8 +472,10 @@ static void hvc_push(struct hvc_struct *
n = hp->ops->put_chars(hp->vtermno, hp->outbuf, hp->n_outbuf);
if (n <= 0) {
- if (n == 0)
+ if (n == 0) {
+ hp->do_wakeup = 1;
return;
+ }
/* throw away output on error; this happens when
there is no session connected to the vterm. */
hp->n_outbuf = 0;
@@ -486,12 +487,19 @@ static void hvc_push(struct hvc_struct *
hp->do_wakeup = 1;
}
-static inline int __hvc_write_kernel(struct hvc_struct *hp,
- const unsigned char *buf, int count)
+static int hvc_write(struct tty_struct *tty, const unsigned char *buf, int count)
{
+ struct hvc_struct *hp = tty->driver_data;
unsigned long flags;
int rsize, written = 0;
+ /* This write was probably executed during a tty close. */
+ if (!hp)
+ return -EPIPE;
+
+ if (hp->count <= 0)
+ return -EIO;
+
spin_lock_irqsave(&hp->lock, flags);
/* Push pending writes */
@@ -510,26 +518,8 @@ static inline int __hvc_write_kernel(str
}
spin_unlock_irqrestore(&hp->lock, flags);
- return written;
-}
-static int hvc_write(struct tty_struct *tty, const unsigned char *buf, int count)
-{
- struct hvc_struct *hp = tty->driver_data;
- int written;
-
- /* This write was probably executed during a tty close. */
- if (!hp)
- return -EPIPE;
-
- if (hp->count <= 0)
- return -EIO;
-
- written = __hvc_write_kernel(hp, buf, count);
-
/*
* Racy, but harmless, kick thread if there is still pending data.
- * There really is nothing wrong with kicking the thread, even if there
- * is no buffered data.
*/
if (hp->n_outbuf)
hvc_kick();
@@ -614,6 +604,13 @@ static int hvc_poll(struct hvc_struct *h
spin_unlock_irqrestore(&hp->lock, flags);
tty_hangup(tty);
spin_lock_irqsave(&hp->lock, flags);
+ } else if ( n == -EAGAIN ) {
+ /*
+ * Some back-ends can only ensure a certain min
+ * num of bytes read, which may be > 'count'.
+ * Let the tty clear the flip buff to make room.
+ */
+ poll_mask |= HVC_POLL_READ;
}
break;
}
@@ -635,16 +632,7 @@ static int hvc_poll(struct hvc_struct *h
tty_insert_flip_char(tty, buf[i], 0);
}
- /*
- * Account for the total amount read in one loop, and if above
- * 64 bytes, we do a quick schedule loop to let the tty grok
- * the data and eventually throttle us.
- */
read_total += n;
- if (read_total >= 64) {
- poll_mask |= HVC_POLL_QUICK;
- break;
- }
}
throttled:
/* Wakeup write queue if necessary */
@@ -767,7 +755,8 @@ struct hvc_struct __devinit *hvc_alloc(u
* see if this vterm id matches one registered for console.
*/
for (i=0; i < MAX_NR_HVC_CONSOLES; i++)
- if (vtermnos[i] == hp->vtermno)
+ if (vtermnos[i] == hp->vtermno &&
+ cons_ops[i] == hp->ops)
break;
/* no matching slot, just use a counter */
Index: linux-2.6.16-rc/drivers/char/hvc_console.h
===================================================================
--- /dev/null
+++ linux-2.6.16-rc/drivers/char/hvc_console.h
@@ -0,0 +1,63 @@
+/*
+ * hvc_console.h
+ * Copyright (C) 2005 IBM Corporation
+ *
+ * Author(s):
+ * Ryan S. Arnold <rsa@us.ibm.com>
+ *
+ * hvc_console header information:
+ * moved here from include/asm-powerpc/hvconsole.h
+ * and drivers/char/hvc_console.c
+ *
+ * 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., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+ */
+
+#ifndef HVC_CONSOLE_H
+#define HVC_CONSOLE_H
+
+/*
+ * This is the max number of console adapters that can/will be found as
+ * console devices on first stage console init. Any number beyond this range
+ * can't be used as a console device but is still a valid tty device.
+ */
+#define MAX_NR_HVC_CONSOLES 16
+
+/*
+ * The Linux TTY code does not support dynamic addition of tty derived devices
+ * so we need to know how many tty devices we might need when space is allocated
+ * for the tty device. Since this driver supports hotplug of vty adapters we
+ * need to make sure we have enough allocated.
+ */
+#define HVC_ALLOC_TTY_ADAPTERS 8
+
+
+/* implemented by a low level driver */
+struct hv_ops {
+ int (*get_chars)(uint32_t vtermno, char *buf, int count);
+ int (*put_chars)(uint32_t vtermno, const char *buf, int count);
+};
+
+struct hvc_struct;
+
+/* Register a vterm and a slot index for use as a console (console_init) */
+extern int hvc_instantiate(uint32_t vtermno, int index, struct hv_ops *ops);
+
+/* register a vterm for hvc tty operation (module_init or hotplug add) */
+extern struct hvc_struct * __devinit hvc_alloc(uint32_t vtermno, int irq,
+ struct hv_ops *ops);
+/* remove a vterm from hvc tty operation (modele_exit or hotplug remove) */
+extern int __devexit hvc_remove(struct hvc_struct *hp);
+
+#endif // HVC_CONSOLE_H
Index: linux-2.6.16-rc/include/asm-powerpc/hvconsole.h
===================================================================
--- linux-2.6.16-rc.orig/include/asm-powerpc/hvconsole.h
+++ linux-2.6.16-rc/include/asm-powerpc/hvconsole.h
@@ -24,17 +24,16 @@
#ifdef __KERNEL__
/*
- * This is the max number of console adapters that can/will be found as
- * console devices on first stage console init. Any number beyond this range
- * can't be used as a console device but is still a valid tty device.
+ * PSeries firmware will only send/recv up to 16 bytes of character data per
+ * hcall.
*/
-#define MAX_NR_HVC_CONSOLES 16
+#define MAX_VIO_PUT_CHARS 16
+#define SIZE_VIO_GET_CHARS 16
-/* implemented by a low level driver */
-struct hv_ops {
- int (*get_chars)(uint32_t vtermno, char *buf, int count);
- int (*put_chars)(uint32_t vtermno, const char *buf, int count);
-};
+/*
+ * Vio firmware always attempts to fetch MAX_VIO_GET_CHARS chars. The 'count'
+ * parm is included to conform to put_chars() function pointer template
+ */
extern int hvc_get_chars(uint32_t vtermno, char *buf, int count);
extern int hvc_put_chars(uint32_t vtermno, const char *buf, int count);
Index: linux-2.6.16-rc/drivers/char/Kconfig
===================================================================
--- linux-2.6.16-rc.orig/drivers/char/Kconfig
+++ linux-2.6.16-rc/drivers/char/Kconfig
@@ -560,9 +560,19 @@ config TIPAR
If unsure, say N.
+config HVC_DRIVER
+ bool
+ help
+ Users of pSeries machines that want to utilize the hvc console front-end
+ module for their backend console driver should select this option.
+ It will automatically be selected if one of the back-end console drivers
+ is selected.
+
+
config HVC_CONSOLE
bool "pSeries Hypervisor Virtual Console support"
depends on PPC_PSERIES
+ select HVC_DRIVER
help
pSeries machines when partitioned support a hypervisor virtual
console. This driver allows each pSeries partition to have a console
Index: linux-2.6.16-rc/drivers/char/Makefile
===================================================================
--- linux-2.6.16-rc.orig/drivers/char/Makefile
+++ linux-2.6.16-rc/drivers/char/Makefile
@@ -41,11 +41,12 @@ obj-$(CONFIG_N_HDLC) += n_hdlc.o
obj-$(CONFIG_AMIGA_BUILTIN_SERIAL) += amiserial.o
obj-$(CONFIG_SX) += sx.o generic_serial.o
obj-$(CONFIG_RIO) += rio/ generic_serial.o
-obj-$(CONFIG_HVC_CONSOLE) += hvc_console.o hvc_vio.o hvsi.o
+obj-$(CONFIG_HVC_DRIVER) += hvc_console.o
+obj-$(CONFIG_HVC_CONSOLE) += hvc_vio.o hvsi.o
obj-$(CONFIG_RAW_DRIVER) += raw.o
obj-$(CONFIG_SGI_SNSC) += snsc.o snsc_event.o
obj-$(CONFIG_MMTIMER) += mmtimer.o
-obj-$(CONFIG_VIOCONS) += viocons.o
+obj-$(CONFIG_VIOCONS) += viocons.o
obj-$(CONFIG_VIOTAPE) += viotape.o
obj-$(CONFIG_HVCS) += hvcs.o
obj-$(CONFIG_SGI_MBCS) += mbcs.o
Index: linux-2.6.16-rc/drivers/char/hvc_vio.c
===================================================================
--- linux-2.6.16-rc.orig/drivers/char/hvc_vio.c
+++ linux-2.6.16-rc/drivers/char/hvc_vio.c
@@ -31,10 +31,13 @@
#include <linux/types.h>
#include <linux/init.h>
+
#include <asm/hvconsole.h>
#include <asm/vio.h>
#include <asm/prom.h>
+#include "hvc_console.h"
+
char hvc_driver_name[] = "hvc_console";
static struct vio_device_id hvc_driver_table[] __devinitdata = {
@@ -48,6 +51,14 @@ static int filtered_get_chars(uint32_t v
unsigned long got;
int i;
+ /*
+ * Vio firmware will read up to SIZE_VIO_GET_CHARS at its own discretion
+ * so we play safe and avoid the situation where got > count which could
+ * overload the flip buffer.
+ */
+ if (count < SIZE_VIO_GET_CHARS)
+ return -EAGAIN;
+
got = hvc_get_chars(vtermno, buf, count);
/*
Index: linux-2.6.16-rc/arch/powerpc/platforms/pseries/hvconsole.c
===================================================================
--- linux-2.6.16-rc.orig/arch/powerpc/platforms/pseries/hvconsole.c
+++ linux-2.6.16-rc/arch/powerpc/platforms/pseries/hvconsole.c
@@ -62,6 +62,11 @@ int hvc_put_chars(uint32_t vtermno, cons
unsigned long *lbuf = (unsigned long *) buf;
long ret;
+
+ /* hcall will ret H_PARAMETER if 'count' exceeds firmware max.*/
+ if (count > MAX_VIO_PUT_CHARS)
+ count = MAX_VIO_PUT_CHARS;
+
ret = plpar_hcall_norets(H_PUT_TERM_CHAR, vtermno, count, lbuf[0],
lbuf[1]);
if (ret == H_Success)
--
^ permalink raw reply
* [patch 02/13] powerpc: add hvc backend for rtas
From: Arnd Bergmann @ 2006-03-22 23:00 UTC (permalink / raw)
To: Paul Mackerras; +Cc: Arnd Bergmann, linuxppc-dev, cbe-oss-dev, linux-kernel
In-Reply-To: <20060323203423.620978000@dyn-9-152-242-103.boeblingen.de.ibm.com>
Current Cell hardware is using the console through a set
of rtas calls. This driver is needed to get console
output on those boards.
Signed-off-by: Arnd Bergmann <arnd.bergmann@de.ibm.com>
Index: linus-2.6/drivers/char/hvc_rtas.c
===================================================================
--- /dev/null
+++ linus-2.6/drivers/char/hvc_rtas.c
@@ -0,0 +1,138 @@
+/*
+ * IBM RTAS driver interface to hvc_console.c
+ *
+ * (C) Copyright IBM Corporation 2001-2005
+ * (C) Copyright Red Hat, Inc. 2005
+ *
+ * Author(s): Maximino Augilar <IBM STI Design Center>
+ * : Ryan S. Arnold <rsa@us.ibm.com>
+ * : Utz Bacher <utz.bacher@de.ibm.com>
+ * : David Woodhouse <dwmw2@infradead.org>
+ *
+ * inspired by drivers/char/hvc_console.c
+ * written by Anton Blanchard and Paul Mackerras
+ *
+ * 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., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+ */
+
+#include <linux/console.h>
+#include <linux/delay.h>
+#include <linux/err.h>
+#include <linux/init.h>
+#include <linux/moduleparam.h>
+#include <linux/types.h>
+
+#include <asm/irq.h>
+#include <asm/rtas.h>
+#include "hvc_console.h"
+
+#define hvc_rtas_cookie 0x67781e15
+struct hvc_struct *hvc_rtas_dev;
+
+#define RTASCONS_PUT_ATTEMPTS 16
+
+static int rtascons_put_char_token = RTAS_UNKNOWN_SERVICE;
+static int rtascons_get_char_token = RTAS_UNKNOWN_SERVICE;
+static int rtascons_put_delay = 100;
+module_param_named(put_delay, rtascons_put_delay, int, 0644);
+
+static inline int hvc_rtas_write_console(uint32_t vtermno, const char *buf, int count)
+{
+ int done;
+
+ /* if there is more than one character to be displayed, wait a bit */
+ for (done = 0; done < count; done++) {
+ int result;
+ result = rtas_call(rtascons_put_char_token, 1, 1, NULL, buf[done]);
+ if (result)
+ break;
+ }
+ /* the calling routine expects to receive the number of bytes sent */
+ return done;
+}
+
+static int hvc_rtas_read_console(uint32_t vtermno, char *buf, int count)
+{
+ int i;
+
+ for (i = 0; i < count; i++) {
+ int c, err;
+
+ err = rtas_call(rtascons_get_char_token, 0, 2, &c);
+ if (err)
+ break;
+
+ buf[i] = c;
+ }
+
+ return i;
+}
+
+static struct hv_ops hvc_rtas_get_put_ops = {
+ .get_chars = hvc_rtas_read_console,
+ .put_chars = hvc_rtas_write_console,
+};
+
+static int hvc_rtas_init(void)
+{
+ struct hvc_struct *hp;
+
+ if (rtascons_put_char_token == RTAS_UNKNOWN_SERVICE)
+ rtascons_put_char_token = rtas_token("put-term-char");
+ if (rtascons_put_char_token == RTAS_UNKNOWN_SERVICE)
+ return -EIO;
+
+ if (rtascons_get_char_token == RTAS_UNKNOWN_SERVICE)
+ rtascons_get_char_token = rtas_token("get-term-char");
+ if (rtascons_get_char_token == RTAS_UNKNOWN_SERVICE)
+ return -EIO;
+
+ BUG_ON(hvc_rtas_dev);
+
+ /* Allocate an hvc_struct for the console device we instantiated
+ * earlier. Save off hp so that we can return it on exit */
+ hp = hvc_alloc(hvc_rtas_cookie, NO_IRQ, &hvc_rtas_get_put_ops);
+ if (IS_ERR(hp))
+ return PTR_ERR(hp);
+ hvc_rtas_dev = hp;
+ return 0;
+}
+module_init(hvc_rtas_init);
+
+/* This will tear down the tty portion of the driver */
+static void __exit hvc_rtas_exit(void)
+{
+ /* Really the fun isn't over until the worker thread breaks down and the
+ * tty cleans up */
+ if (hvc_rtas_dev)
+ hvc_remove(hvc_rtas_dev);
+}
+module_exit(hvc_rtas_exit); /* before drivers/char/hvc_console.c */
+
+/* This will happen prior to module init. There is no tty at this time? */
+static int hvc_rtas_console_init(void)
+{
+ rtascons_put_char_token = rtas_token("put-term-char");
+ if (rtascons_put_char_token == RTAS_UNKNOWN_SERVICE)
+ return -EIO;
+ rtascons_get_char_token = rtas_token("get-term-char");
+ if (rtascons_get_char_token == RTAS_UNKNOWN_SERVICE)
+ return -EIO;
+
+ hvc_instantiate(hvc_rtas_cookie, 0, &hvc_rtas_get_put_ops );
+ add_preferred_console("hvc", 0, NULL);
+ return 0;
+}
+console_initcall(hvc_rtas_console_init);
Index: linus-2.6/drivers/char/Makefile
===================================================================
--- linus-2.6.orig/drivers/char/Makefile
+++ linus-2.6/drivers/char/Makefile
@@ -43,6 +43,7 @@ obj-$(CONFIG_SX) += sx.o generic_serial
obj-$(CONFIG_RIO) += rio/ generic_serial.o
obj-$(CONFIG_HVC_DRIVER) += hvc_console.o
obj-$(CONFIG_HVC_CONSOLE) += hvc_vio.o hvsi.o
+obj-$(CONFIG_HVC_RTAS) += hvc_rtas.o
obj-$(CONFIG_RAW_DRIVER) += raw.o
obj-$(CONFIG_SGI_SNSC) += snsc.o snsc_event.o
obj-$(CONFIG_MMTIMER) += mmtimer.o
Index: linus-2.6/drivers/char/Kconfig
===================================================================
--- linus-2.6.orig/drivers/char/Kconfig
+++ linus-2.6/drivers/char/Kconfig
@@ -578,6 +578,13 @@ config HVC_CONSOLE
console. This driver allows each pSeries partition to have a console
which is accessed via the HMC.
+config HVC_RTAS
+ bool "IBM RTAS Console support"
+ depends on PPC_RTAS
+ select HVC_DRIVER
+ help
+ IBM Console device driver which makes use of RTAS
+
config HVCS
tristate "IBM Hypervisor Virtual Console Server support"
depends on PPC_PSERIES
--
^ permalink raw reply
* [patch 03/13] powerpc: update cell platform detection
From: Arnd Bergmann @ 2006-03-22 23:00 UTC (permalink / raw)
To: Paul Mackerras; +Cc: Arnd Bergmann, linuxppc-dev, cbe-oss-dev, linux-kernel
In-Reply-To: <20060323203423.620978000@dyn-9-152-242-103.boeblingen.de.ibm.com>
All future firmware should have 'CBEA' in the compatible
property in order to tell us that we are running on the
cell platform, so check for that as well as the now
deprecated value we have been using so far.
Signed-off-by: Arnd Bergmann <arnd.bergmann@de.ibm.com>
diff --git a/arch/powerpc/kernel/prom_init.c b/arch/powerpc/kernel/prom_init.c
index d34fe53..fc1f169 100644
--- a/arch/powerpc/kernel/prom_init.c
+++ b/arch/powerpc/kernel/prom_init.c
@@ -1503,7 +1503,8 @@ static int __init prom_find_machine_type
#ifdef CONFIG_PPC64
if (strstr(p, RELOC("Momentum,Maple")))
return PLATFORM_MAPLE;
- if (strstr(p, RELOC("IBM,CPB")))
+ if (strstr(p, RELOC("IBM,CPB"))||
+ strstr(p, RELOC("CBEA")))
return PLATFORM_CELL;
#endif
i += sl + 1;
--
^ permalink raw reply related
* [patch 04/13] powerpc: fix cell iommu setup
From: Arnd Bergmann @ 2006-03-22 23:00 UTC (permalink / raw)
To: Paul Mackerras; +Cc: Arnd Bergmann, linuxppc-dev, cbe-oss-dev, linux-kernel
In-Reply-To: <20060323203423.620978000@dyn-9-152-242-103.boeblingen.de.ibm.com>
A small bug crept in the iommu driver when we made it more
generic. This patch is needed for boards that have a dma
window that does not start at bus address zero.
Signed-off-by: Arnd Bergmann <arnd.bergmann@de.ibm.com>
Index: linux-2.6.15-rc5/arch/powerpc/platforms/cell/iommu.c
===================================================================
--- linux-2.6.15-rc5.orig/arch/powerpc/platforms/cell/iommu.c
+++ linux-2.6.15-rc5/arch/powerpc/platforms/cell/iommu.c
@@ -289,7 +289,7 @@ static void cell_do_map_iommu(struct cel
ioc_base = iommu->mapped_base;
ioc_mmio_base = iommu->mapped_mmio_base;
- for (real_address = 0, io_address = 0;
+ for (real_address = 0, io_address = map_start;
io_address <= map_start + map_size;
real_address += io_page_size, io_address += io_page_size) {
ioste = get_iost_entry(fake_iopt, io_address, io_page_size);
@@ -302,7 +302,7 @@ static void cell_do_map_iommu(struct cel
set_iopt_cache(ioc_mmio_base,
get_ioc_hash_1way(ioste, io_address),
get_ioc_tag(ioste, io_address),
- get_iopt_entry(real_address-map_start, ioid, IOPT_PROT_RW));
+ get_iopt_entry(real_address, ioid, IOPT_PROT_RW));
}
}
--
^ permalink raw reply
* [patch 05/13] powerpc: update cell defconfig
From: Arnd Bergmann @ 2006-03-22 23:00 UTC (permalink / raw)
To: Paul Mackerras; +Cc: Arnd Bergmann, linuxppc-dev, cbe-oss-dev, linux-kernel
In-Reply-To: <20060323203423.620978000@dyn-9-152-242-103.boeblingen.de.ibm.com>
The default configuration in mainline got a little out of
sync with what we use internally.
Signed-off-by: Arnd Bergmann <arnd.bergmann@de.ibm.com>
Index: linus-2.6/arch/powerpc/configs/cell_defconfig
===================================================================
--- linus-2.6.orig/arch/powerpc/configs/cell_defconfig
+++ linus-2.6/arch/powerpc/configs/cell_defconfig
@@ -1,7 +1,7 @@
#
# Automatically generated make config: don't edit
-# Linux kernel version: 2.6.16-rc6
-# Wed Mar 15 16:19:48 2006
+# Linux kernel version: 2.6.16
+# Thu Mar 23 20:48:09 2006
#
CONFIG_PPC64=y
CONFIG_64BIT=y
@@ -30,6 +30,7 @@ CONFIG_POWER4=y
CONFIG_PPC_FPU=y
CONFIG_ALTIVEC=y
CONFIG_PPC_STD_MMU=y
+CONFIG_VIRT_CPU_ACCOUNTING=y
CONFIG_SMP=y
CONFIG_NR_CPUS=4
@@ -51,7 +52,8 @@ CONFIG_SYSVIPC=y
# CONFIG_BSD_PROCESS_ACCT is not set
CONFIG_SYSCTL=y
# CONFIG_AUDIT is not set
-# CONFIG_IKCONFIG is not set
+CONFIG_IKCONFIG=y
+CONFIG_IKCONFIG_PROC=y
# CONFIG_CPUSETS is not set
CONFIG_INITRAMFS_SOURCE=""
CONFIG_CC_OPTIMIZE_FOR_SIZE=y
@@ -85,7 +87,7 @@ CONFIG_MODULE_UNLOAD=y
CONFIG_OBSOLETE_MODPARM=y
# CONFIG_MODVERSIONS is not set
# CONFIG_MODULE_SRCVERSION_ALL is not set
-# CONFIG_KMOD is not set
+CONFIG_KMOD=y
CONFIG_STOP_MACHINE=y
#
@@ -130,7 +132,8 @@ CONFIG_CELL_IIC=y
#
# Cell Broadband Engine options
#
-CONFIG_SPU_FS=y
+CONFIG_SPU_FS=m
+CONFIG_SPUFS_MMAP=y
#
# Kernel options
@@ -144,7 +147,7 @@ CONFIG_PREEMPT_NONE=y
# CONFIG_PREEMPT is not set
CONFIG_PREEMPT_BKL=y
CONFIG_BINFMT_ELF=y
-# CONFIG_BINFMT_MISC is not set
+CONFIG_BINFMT_MISC=m
CONFIG_FORCE_MAX_ZONEORDER=13
# CONFIG_IOMMU_VMERGE is not set
CONFIG_KEXEC=y
@@ -155,13 +158,16 @@ CONFIG_ARCH_SELECT_MEMORY_MODEL=y
CONFIG_ARCH_FLATMEM_ENABLE=y
CONFIG_ARCH_SPARSEMEM_ENABLE=y
CONFIG_SELECT_MEMORY_MODEL=y
-CONFIG_FLATMEM_MANUAL=y
+# CONFIG_FLATMEM_MANUAL is not set
# CONFIG_DISCONTIGMEM_MANUAL is not set
-# CONFIG_SPARSEMEM_MANUAL is not set
-CONFIG_FLATMEM=y
-CONFIG_FLAT_NODE_MEM_MAP=y
+CONFIG_SPARSEMEM_MANUAL=y
+CONFIG_SPARSEMEM=y
+CONFIG_HAVE_MEMORY_PRESENT=y
# CONFIG_SPARSEMEM_STATIC is not set
+CONFIG_SPARSEMEM_EXTREME=y
+# CONFIG_MEMORY_HOTPLUG is not set
CONFIG_SPLIT_PTLOCK_CPUS=4
+CONFIG_MIGRATION=y
# CONFIG_PPC_64K_PAGES is not set
CONFIG_SCHED_SMT=y
CONFIG_PROC_DEVICETREE=y
@@ -232,6 +238,7 @@ CONFIG_TCP_CONG_BIC=y
# CONFIG_IP_VS is not set
CONFIG_IPV6=y
# CONFIG_IPV6_PRIVACY is not set
+# CONFIG_IPV6_ROUTER_PREF is not set
CONFIG_INET6_AH=m
CONFIG_INET6_ESP=m
CONFIG_INET6_IPCOMP=m
@@ -244,25 +251,7 @@ CONFIG_NETFILTER=y
# Core Netfilter Configuration
#
# CONFIG_NETFILTER_NETLINK is not set
-CONFIG_NETFILTER_XTABLES=m
-CONFIG_NETFILTER_XT_TARGET_CLASSIFY=m
-CONFIG_NETFILTER_XT_TARGET_MARK=m
-CONFIG_NETFILTER_XT_TARGET_NFQUEUE=m
-CONFIG_NETFILTER_XT_TARGET_NOTRACK=m
-CONFIG_NETFILTER_XT_MATCH_COMMENT=m
-CONFIG_NETFILTER_XT_MATCH_CONNTRACK=m
-# CONFIG_NETFILTER_XT_MATCH_DCCP is not set
-CONFIG_NETFILTER_XT_MATCH_HELPER=m
-CONFIG_NETFILTER_XT_MATCH_LENGTH=m
-CONFIG_NETFILTER_XT_MATCH_LIMIT=m
-CONFIG_NETFILTER_XT_MATCH_MAC=m
-CONFIG_NETFILTER_XT_MATCH_MARK=m
-CONFIG_NETFILTER_XT_MATCH_PKTTYPE=m
-CONFIG_NETFILTER_XT_MATCH_REALM=m
-CONFIG_NETFILTER_XT_MATCH_SCTP=m
-CONFIG_NETFILTER_XT_MATCH_STATE=m
-CONFIG_NETFILTER_XT_MATCH_STRING=m
-CONFIG_NETFILTER_XT_MATCH_TCPMSS=m
+# CONFIG_NETFILTER_XTABLES is not set
#
# IP: Netfilter Configuration
@@ -278,51 +267,13 @@ CONFIG_IP_NF_IRC=m
CONFIG_IP_NF_TFTP=m
CONFIG_IP_NF_AMANDA=m
# CONFIG_IP_NF_PPTP is not set
+# CONFIG_IP_NF_H323 is not set
CONFIG_IP_NF_QUEUE=m
-CONFIG_IP_NF_IPTABLES=m
-CONFIG_IP_NF_MATCH_IPRANGE=m
-CONFIG_IP_NF_MATCH_MULTIPORT=m
-CONFIG_IP_NF_MATCH_TOS=m
-CONFIG_IP_NF_MATCH_RECENT=m
-CONFIG_IP_NF_MATCH_ECN=m
-CONFIG_IP_NF_MATCH_DSCP=m
-CONFIG_IP_NF_MATCH_AH_ESP=m
-CONFIG_IP_NF_MATCH_TTL=m
-CONFIG_IP_NF_MATCH_OWNER=m
-CONFIG_IP_NF_MATCH_ADDRTYPE=m
-CONFIG_IP_NF_MATCH_HASHLIMIT=m
-CONFIG_IP_NF_MATCH_POLICY=m
-CONFIG_IP_NF_FILTER=m
-CONFIG_IP_NF_TARGET_REJECT=m
-CONFIG_IP_NF_TARGET_LOG=m
-CONFIG_IP_NF_TARGET_ULOG=m
-CONFIG_IP_NF_TARGET_TCPMSS=m
-CONFIG_IP_NF_NAT=m
-CONFIG_IP_NF_NAT_NEEDED=y
-CONFIG_IP_NF_TARGET_MASQUERADE=m
-CONFIG_IP_NF_TARGET_REDIRECT=m
-CONFIG_IP_NF_TARGET_NETMAP=m
-CONFIG_IP_NF_TARGET_SAME=m
-CONFIG_IP_NF_NAT_SNMP_BASIC=m
-CONFIG_IP_NF_NAT_IRC=m
-CONFIG_IP_NF_NAT_FTP=m
-CONFIG_IP_NF_NAT_TFTP=m
-CONFIG_IP_NF_NAT_AMANDA=m
-CONFIG_IP_NF_MANGLE=m
-CONFIG_IP_NF_TARGET_TOS=m
-CONFIG_IP_NF_TARGET_ECN=m
-CONFIG_IP_NF_TARGET_DSCP=m
-CONFIG_IP_NF_TARGET_TTL=m
-CONFIG_IP_NF_RAW=m
-CONFIG_IP_NF_ARPTABLES=m
-CONFIG_IP_NF_ARPFILTER=m
-CONFIG_IP_NF_ARP_MANGLE=m
#
# IPv6: Netfilter Configuration (EXPERIMENTAL)
#
# CONFIG_IP6_NF_QUEUE is not set
-# CONFIG_IP6_NF_IPTABLES is not set
#
# DCCP Configuration (EXPERIMENTAL)
@@ -355,7 +306,6 @@ CONFIG_IP_NF_ARP_MANGLE=m
# QoS and/or fair queueing
#
# CONFIG_NET_SCHED is not set
-CONFIG_NET_CLS_ROUTE=y
#
# Network testing
@@ -408,7 +358,7 @@ CONFIG_FW_LOADER=y
# CONFIG_BLK_DEV_COW_COMMON is not set
CONFIG_BLK_DEV_LOOP=y
# CONFIG_BLK_DEV_CRYPTOLOOP is not set
-CONFIG_BLK_DEV_NBD=y
+# CONFIG_BLK_DEV_NBD is not set
# CONFIG_BLK_DEV_SX8 is not set
CONFIG_BLK_DEV_RAM=y
CONFIG_BLK_DEV_RAM_COUNT=16
@@ -484,7 +434,23 @@ CONFIG_IDEDMA_AUTO=y
#
# Multi-device support (RAID and LVM)
#
-# CONFIG_MD is not set
+CONFIG_MD=y
+CONFIG_BLK_DEV_MD=m
+CONFIG_MD_LINEAR=m
+CONFIG_MD_RAID0=m
+CONFIG_MD_RAID1=m
+# CONFIG_MD_RAID10 is not set
+# CONFIG_MD_RAID5 is not set
+# CONFIG_MD_RAID6 is not set
+# CONFIG_MD_MULTIPATH is not set
+# CONFIG_MD_FAULTY is not set
+CONFIG_BLK_DEV_DM=m
+CONFIG_DM_CRYPT=m
+CONFIG_DM_SNAPSHOT=m
+CONFIG_DM_MIRROR=m
+CONFIG_DM_ZERO=m
+CONFIG_DM_MULTIPATH=m
+# CONFIG_DM_MULTIPATH_EMC is not set
#
# Fusion MPT device support
@@ -548,7 +514,7 @@ CONFIG_MII=y
# CONFIG_ACENIC is not set
# CONFIG_DL2K is not set
CONFIG_E1000=m
-# CONFIG_E1000_NAPI is not set
+CONFIG_E1000_NAPI=y
# CONFIG_E1000_DISABLE_PACKET_SPLIT is not set
# CONFIG_NS83820 is not set
# CONFIG_HAMACHI is not set
@@ -560,7 +526,7 @@ CONFIG_SKGE=m
# CONFIG_SK98LIN is not set
# CONFIG_TIGON3 is not set
# CONFIG_BNX2 is not set
-CONFIG_SPIDER_NET=y
+CONFIG_SPIDER_NET=m
# CONFIG_MV643XX_ETH is not set
#
@@ -678,6 +644,8 @@ CONFIG_SERIAL_CORE_CONSOLE=y
# CONFIG_SERIAL_JSM is not set
CONFIG_UNIX98_PTYS=y
# CONFIG_LEGACY_PTYS is not set
+CONFIG_HVC_DRIVER=y
+CONFIG_HVC_RTAS=y
#
# IPMI
@@ -694,14 +662,13 @@ CONFIG_WATCHDOG=y
# Watchdog Device Drivers
#
# CONFIG_SOFT_WATCHDOG is not set
-# CONFIG_WATCHDOG_RTAS is not set
+CONFIG_WATCHDOG_RTAS=y
#
# PCI-based Watchdog Cards
#
# CONFIG_PCIPCWATCHDOG is not set
# CONFIG_WDTPCI is not set
-# CONFIG_RTC is not set
CONFIG_GEN_RTC=y
# CONFIG_GEN_RTC_X is not set
# CONFIG_DTLK is not set
@@ -833,6 +800,7 @@ CONFIG_DUMMY_CONSOLE=y
#
CONFIG_USB_ARCH_HAS_HCD=y
CONFIG_USB_ARCH_HAS_OHCI=y
+CONFIG_USB_ARCH_HAS_EHCI=y
# CONFIG_USB is not set
#
@@ -852,7 +820,14 @@ CONFIG_USB_ARCH_HAS_OHCI=y
#
# InfiniBand support
#
-# CONFIG_INFINIBAND is not set
+CONFIG_INFINIBAND=y
+CONFIG_INFINIBAND_USER_MAD=m
+CONFIG_INFINIBAND_USER_ACCESS=m
+CONFIG_INFINIBAND_MTHCA=m
+CONFIG_INFINIBAND_MTHCA_DEBUG=y
+CONFIG_INFINIBAND_IPOIB=m
+CONFIG_INFINIBAND_IPOIB_DEBUG=y
+CONFIG_INFINIBAND_IPOIB_DEBUG_DATA=y
#
# EDAC - error detection and reporting (RAS) (EXPERIMENTAL)
@@ -1037,10 +1012,6 @@ 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
@@ -1058,7 +1029,7 @@ CONFIG_LOG_BUF_SHIFT=15
CONFIG_DETECT_SOFTLOCKUP=y
# CONFIG_SCHEDSTATS is not set
# CONFIG_DEBUG_SLAB is not set
-# CONFIG_DEBUG_MUTEXES is not set
+CONFIG_DEBUG_MUTEXES=y
# CONFIG_DEBUG_SPINLOCK is not set
CONFIG_DEBUG_SPINLOCK_SLEEP=y
# CONFIG_DEBUG_KOBJECT is not set
--
^ permalink raw reply
page: next (older) | prev (newer) | latest
- recent:[subjects (threaded)|topics (new)|topics (active)]
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox