* Re: [PATCH] PPC/PPC64: Introduce CPU_HAS_FEATURE() macro
From: Benjamin Herrenschmidt @ 2005-02-04 23:50 UTC (permalink / raw)
To: Olof Johansson
Cc: Andrew Morton, Tom Rini, Arnd Bergmann, Linux Kernel list,
linuxppc-dev list, Paul Mackerras, H. Peter Anvin, linuxppc64-dev
In-Reply-To: <20050204183514.GB17586@austin.ibm.com>
On Fri, 2005-02-04 at 12:35 -0600, Olof Johansson wrote:
> On Fri, Feb 04, 2005 at 01:36:55PM +0100, Arnd Bergmann wrote:
> > I have a somewhat similar patch that does the same to the
> > systemcfg->platform checks. I'm not sure if we should use the same inline
> > function for both checks, but I do think that they should be used in a
> > similar way, e.g. CPU_HAS_FEATURE(x) and PLATFORM_HAS_FEATURE(x).
>
> Yep. Firmware features are also on the list. I figured I'd do CPU features
> first though since they are the ones that started bugging me.
>
> > The same stuff is obviously possible for cur_cpu_spec->cpu_features as well.
> > Do you think that it will help there?
>
> Nice. It won't be quite as easy to do compile-time for cpu features.
> pSeries will need all cpus enabled since we have them all on various
> machines, etc. I guess Powermac/Maple could benefit from it. In the
> end it depends on how hairy the implementation would get vs performance
> improvement.
One other thing we did on ppc32 was to have separate ELF sections for
pmac, chrp and prep specific code & get rid of them after boot... It may
be worth bringing this back in...
Ben.
^ permalink raw reply
* Re: [PATCH] PPC/PPC64: Introduce CPU_HAS_FEATURE() macro
From: Benjamin Herrenschmidt @ 2005-02-04 23:49 UTC (permalink / raw)
To: Arnd Bergmann
Cc: Andrew Morton, Tom Rini, Linux Kernel list, linuxppc-dev list,
Paul Mackerras, H. Peter Anvin, linuxppc64-dev
In-Reply-To: <200502041336.59892.arnd@arndb.de>
On Fri, 2005-02-04 at 13:36 +0100, Arnd Bergmann wrote:
> On Freedag 04 Februar 2005 08:22, Olof Johansson wrote:
> > It's getting pretty old to have see and type cur_cpu_spec->cpu_features
> > & CPU_FTR_<feature>, when a shorter and less TLA-ridden macro is more
> > readable.
> >
> > This also takes care of the differences between PPC and PPC64 cpu
> > features for the common code; most places in PPC could be replaced with
> > the macro as well.
>
> I have a somewhat similar patch that does the same to the
> systemcfg->platform checks. I'm not sure if we should use the same inline
> function for both checks, but I do think that they should be used in a
> similar way, e.g. CPU_HAS_FEATURE(x) and PLATFORM_HAS_FEATURE(x).
Note that I would prefer cpu_has_feature(), it doesn't strictly have to
be a macro and has function semantics anyway.
> My implementation of the platform checks tries to be extra clever by turning
> runtime checks into compile time checks if possible. This reduces code size
> and in some cases execution speed. It can also be used to replace compile
> time checks, i.e. it allows us to write
>
> static inline unsigned int readl(const volatile void __iomem *addr)
> {
> if (platform_is(PLATFORM_PPC_ISERIES))
> return iSeries_readl(addr);
> if (platform_possible(PLATFORM_PPC_PSERIES))
> return eeh_readl(addr);
> return in_le32();
> }
>
> which will always result in the shortest code for any combination of
> CONFIG_PPC_ISERIES, CONFIG_PPC_PSERIES and the other platforms.
That's a good idea !
> The required code for this is roughly
>
> enum {
> PPC64_PLATFORM_POSSIBLE =
> #ifdef CONFIG_PPC_ISERIES
> PLATFORM_ISERIES |
> #endif
> #ifdef CONFIG_PPC_PSERIES
> PLATFORM_PSERIES |
> #endif
> #ifdef CONFIG_PPC_PSERIES
> PLATFORM_PSERIES_LPAR |
> #endif
> #ifdef CONFIG_PPC_POWERMAC
> PLATFORM_POWERMAC |
> #endif
> #ifdef CONFIG_PPC_MAPLE
> PLATFORM_MAPLE |
> #endif
> 0,
> PPC64_PLATFORM_ONLY =
> #ifdef CONFIG_PPC_ISERIES
> PLATFORM_ISERIES &
> #endif
> #ifdef CONFIG_PPC_PSERIES
> PLATFORM_PSERIES &
> #endif
> #ifdef CONFIG_PPC_POWERMAC
> PLATFORM_POWERMAC &
> #endif
> #ifdef CONFIG_PPC_MAPLE
> PLATFORM_MAPLE &
> #endif
> -1ul,
> };
>
> static inline platform_is(unsigned long platform)
> {
> return ((PPC64_PLATFORM_ONLY & platform)
> || (PPC64_PLATFORM_POSSIBLE & platform & systemcfg->platform));
> }
>
> static inline platform_possible(unsigned long platform)
> {
> reutrn !!(PPC64_PLATFORM_POSSIBLE & platform);
> }
>
> The same stuff is obviously possible for cur_cpu_spec->cpu_features as well.
> Do you think that it will help there?
>
> Arnd <><
> _______________________________________________
> Linuxppc64-dev mailing list
> Linuxppc64-dev@ozlabs.org
> https://ozlabs.org/cgi-bin/mailman/listinfo/linuxppc64-dev
--
Benjamin Herrenschmidt <benh@kernel.crashing.org>
^ permalink raw reply
* Re: 2.6.11-rc2 on powerbook g4 - lost interrupt
From: Benjamin Herrenschmidt @ 2005-02-04 23:37 UTC (permalink / raw)
To: William A.(Andy) Adamson; +Cc: linuxppc-dev list
In-Reply-To: <20050204135818.E67AC1BB0C@citi.umich.edu>
On Fri, 2005-02-04 at 08:58 -0500, William A.(Andy) Adamson wrote:
> hello
>
> thanks for the response.
>
> i disabled the cpufreq support. no change, config attached. the first 'lost
> interrupt' message appears after the 'hda: max request size: 1024KiB'. then
> lost interrupt messages are interleaved throughout the remaining boot, which
> eventually hangs.
>
> there is one 'lost interrupt, dma status: 8080' message
And going back to an earlier kernel fixes it ? Weird... I don't see
what's up there, I've tested this kernel on a bunch of powerbook's
without any such issue...
Ben.
^ permalink raw reply
* mac mini alsa hack
From: john stultz @ 2005-02-04 19:59 UTC (permalink / raw)
To: linuxppc-dev
Hey all,
This clearly isn't the right fix, but it allows my mac mini to play
audio. It works, but is still somewhat broken, as any time I start
playing audio X hangs for a second or so. Also using alsamixer is very
slow.
Its likely this patch also breaks whatever else uses "AOAKeylargo".
Anyway, just wanted to start the discussion on what the proper fix would
be.
thanks
-john
===== sound/ppc/pmac.c 1.36 vs edited =====
--- 1.36/sound/ppc/pmac.c 2004-12-20 18:52:47 -08:00
+++ edited/sound/ppc/pmac.c 2005-02-04 01:44:05 -08:00
@@ -964,7 +964,7 @@
if (device_is_compatible(sound, "AOAKeylargo")) {
/* Seems to support the stock AWACS frequencies, but has
a snapper mixer */
- chip->model = PMAC_SNAPPER;
+ chip->model = PMAC_SCREAMER;
// chip->can_byte_swap = 0; /* FIXME: check this */
chip->control_mask = MASK_IEPC | 0x11; /* disable IEE */
}
^ permalink raw reply
* Re: question on symbol exports
From: Chris Friesen @ 2005-02-04 20:14 UTC (permalink / raw)
To: Marcelo Tosatti
Cc: linuxppc64-dev, linuxppc-dev, Linux kernel, Arjan van de Ven
In-Reply-To: <20050204203050.GA5889@dmt.cnet>
I've added the ppc64 list to the addressees, in case they are interested.
Marcelo Tosatti wrote:
> On Tue, Feb 01, 2005 at 04:50:16PM +0100, Arjan van de Ven wrote:
>>afaik one doesn't need to do a tlb flush in code that clears the dirty
>>bit, as long as you use the proper vm functions to do so.
>>(if those need a tlb flush, those are supposed to do that for you
>>afaik).
> Yep, and "proper VM function" is include/asm-generic/pgtable.h::ptep_clear_flush_dirty(),
> which on PPC flushes the TLB.
It turns out that to call ptep_clear_flush_dirty() on ppc64 from a
module I needed to export the following symbols:
__flush_tlb_pending
ppc64_tlb_batch
hpte_update
>>Also note that your code isn't dealing with 4 level pagetables.... And
>>pagetable walking in drivers is basically almost always a mistake and a
>>sign that something is wrong.
> Or a sign that the core kernel lacks helper functions :)
Absolutely. It'd be so nice if there was a simple va_to_ptep() helper
function available.
Chris
^ permalink raw reply
* Re: Problems with Serial Port on IceCube
From: Wolfgang Denk @ 2005-02-04 19:21 UTC (permalink / raw)
To: Linas Petras; +Cc: linuxppc-embedded
In-Reply-To: <000001c50adc$c814dae0$6401a8c0@supernova>
Dear Linas,
in message <000001c50adc$c814dae0$6401a8c0@supernova> you wrote:
>
> Any ideas of whats going on ????? Is their a problem with the console support in
> Sylvain's port or something in the "standard" init scripts that come with DENX's ELDK
> 3.1 when used with a 2.6.xx kernel or have I missed something obvious?
There is nothing in the init scripts that should matter here.
Just out of curiousity: can you try another console cable? Probably a
minimal one (only 3 wires: GND + RxD + TxD) ?
Best regards,
Wolfgang Denk
--
Software Engineering: Embedded and Realtime Systems, Embedded Linux
Phone: (+49)-8142-66989-10 Fax: (+49)-8142-66989-80 Email: wd@denx.de
"There are things that are so serious that you can only joke about
them" - Heisenberg
^ permalink raw reply
* Re: [PATCH] PPC/PPC64: Introduce CPU_HAS_FEATURE() macro
From: Arnd Bergmann @ 2005-02-04 18:57 UTC (permalink / raw)
To: Olof Johansson
Cc: akpm, trini, linux-kernel, linuxppc-dev, paulus, hpa,
linuxppc64-dev
In-Reply-To: <20050204183514.GB17586@austin.ibm.com>
[-- Attachment #1: Type: text/plain, Size: 749 bytes --]
On Freedag 04 Februar 2005 19:35, Olof Johansson wrote:
> pSeries will need all cpus enabled since we have them all on various
> machines, etc. I guess Powermac/Maple could benefit from it.
Even on pSeries, we already have CONFIG_POWER4_ONLY, which could be
used to optimize away some of the checks at compile time.
I think it makes sense to extend this a bit to look more like the CPU
selection on i386 or s390 where can set the oldest CPU you want to
support. This also fits nicely with the gcc -mcpu= options.
> In the end it depends on how hairy the implementation would get vs
> performance improvement.
Fortunately, that optimization should be easy to do on top of your
patch, so we don't have to decide now.
Arnd <><
[-- Attachment #2: signature --]
[-- Type: application/pgp-signature, Size: 189 bytes --]
^ permalink raw reply
* Re: [PATCH] PPC/PPC64: Introduce CPU_HAS_FEATURE() macro
From: Olof Johansson @ 2005-02-04 18:35 UTC (permalink / raw)
To: Arnd Bergmann
Cc: akpm, trini, linux-kernel, linuxppc-dev, paulus, hpa,
linuxppc64-dev
In-Reply-To: <200502041336.59892.arnd@arndb.de>
On Fri, Feb 04, 2005 at 01:36:55PM +0100, Arnd Bergmann wrote:
> I have a somewhat similar patch that does the same to the
> systemcfg->platform checks. I'm not sure if we should use the same inline
> function for both checks, but I do think that they should be used in a
> similar way, e.g. CPU_HAS_FEATURE(x) and PLATFORM_HAS_FEATURE(x).
Yep. Firmware features are also on the list. I figured I'd do CPU features
first though since they are the ones that started bugging me.
> The same stuff is obviously possible for cur_cpu_spec->cpu_features as well.
> Do you think that it will help there?
Nice. It won't be quite as easy to do compile-time for cpu features.
pSeries will need all cpus enabled since we have them all on various
machines, etc. I guess Powermac/Maple could benefit from it. In the
end it depends on how hairy the implementation would get vs performance
improvement.
-Olof
^ permalink raw reply
* Problems with Serial Port on IceCube
From: Linas Petras @ 2005-02-04 17:13 UTC (permalink / raw)
To: linuxppc-embedded
Hi All
I'm running Sylvain Munaut's version of 2.6.10-rc2 with DENX's 3.1 ELDK =
as
the cross
compile tools with nfs mounted root filesystem and I seem to have a =
probelm
when I'm=20
connected to the "icecube" development boards serial port.
I get the u-boot 1.1.3 bootrom messages from the serial port on the
"icecube" and can=20
boot the kernel using the serial port but I don't get any messages after =
the
early=20
boot message "arch: exit". It appeared to me that the board was booting =
so I
tried to=20
telnet via the network to the board and this worked fine. So the kernel =
is
running, I=20
just don't get the "normal" bootup messages from the kernel.
If I use the standard DENX 2.4.25 kernel I get all the message going to =
the
serial=20
port OK.
Any ideas of whats going on ????? Is their a problem with the console
support in=20
Sylvain's port or something in the "standard" init scripts that come =
with
DENX's ELDK=20
3.1 when used with a 2.6.xx kernel or have I missed something obvious?
Linas Petras
------------
I know not with which weapons World War III will be faught, but World =
War IV
will be faught with sticks and stones. - Albert Einstein.
^ permalink raw reply
* Re: eldk: compiling linux for custom hardware
From: Wolfgang Denk @ 2005-02-04 17:21 UTC (permalink / raw)
To: Peter Asemann; +Cc: linuxppc-embedded
In-Reply-To: <4203940F.2010109@web.de>
In message <4203940F.2010109@web.de> you wrote:
> I'm going to compile embedded power pc linux for a custom hardware.
> I use the Denx ELDK.
> The Linux Kernel configuration (make menuconfig) asks what machine type
> to compile Linux for.
> So I have the problem that I do not know which option to choose ("none"
> is not an option in the dialogue) and that I also do not know what
You will have to port the Linux kernel for your hardware, which
includes adding appropriate entries to the config menues.
> choosing one of the existing options actually changes behind the scenes.
It will most certainly result in a configuration which is wrong for
your board.
> I'd like a Linux to drop out that supports my MPC875 chip, works with
> the LXT 970A ethernet PHY chip and (if possible) the ISP1301
> USB-on-the-go USB chip the board has and supports a serial terminal via
> SCC4 via the RXD4/TXD4 signals.
You will have to create a port (more exactly: a configuration) of the
Linux kernel for your board.
[Note: this has nothing to do with the DENX ELDK -- your subject is
somewhat misleading.]
Best regards,
Wolfgang Denk
--
Software Engineering: Embedded and Realtime Systems, Embedded Linux
Phone: (+49)-8142-66989-10 Fax: (+49)-8142-66989-80 Email: wd@denx.de
A morsel of genuine history is a thing so rare as to be always
valuable. - Thomas Jefferson
^ permalink raw reply
* Re: [PATCH] PPC/PPC64: Introduce CPU_HAS_FEATURE() macro
From: Olof Johansson @ 2005-02-04 17:20 UTC (permalink / raw)
To: Pekka Enberg
Cc: akpm, trini, linux-kernel, linuxppc-dev, penberg, paulus, hpa,
linuxppc64-dev
In-Reply-To: <84144f0205020400172d89eddf@mail.gmail.com>
On Fri, Feb 04, 2005 at 10:17:48AM +0200, Pekka Enberg wrote:
> Please drop the CPU_FTR_##x macro magic as it makes grepping more
> complicated. If the enum names are too long, just do s/CPU_FTR_/CPU_/g
> or something similar. Also, could you please make this a static inline
> function?
I considered that for a while, but decided against it because:
* cpu-has-feature(cpu-feature-foo) v cpu-has-feature(foo): I picked the
latter for readability.
* Renaming CPU_FTR_<x> -> CPU_<x> makes it less obvious that
it's actually a cpu feature it's describing (i.e. CPU_ALTIVEC vs
CPU_FTR_ALTIVEC).
* Renaming would clobber the namespace, CPU_* definitions are used in
other places in the tree.
* Can't make it an inline and still use the preprocessor concatenation.
That being said, you do have a point about grepability. However,
personally I'd be more likely to look for CPU_HAS_FEATURE than the
feature itself when reading the code, and would find that easily. The
other way around (finding all uses of a feature) is harder, but the
concatenation macro is right below the bit definitions and easy to spot.
-Olof
^ permalink raw reply
* eldk: compiling linux for custom hardware
From: Peter Asemann @ 2005-02-04 15:26 UTC (permalink / raw)
To: linuxppc-embedded
I'm going to compile embedded power pc linux for a custom hardware.
I use the Denx ELDK.
The Linux Kernel configuration (make menuconfig) asks what machine type
to compile Linux for.
So I have the problem that I do not know which option to choose ("none"
is not an option in the dialogue) and that I also do not know what
choosing one of the existing options actually changes behind the scenes.
I'd like a Linux to drop out that supports my MPC875 chip, works with
the LXT 970A ethernet PHY chip and (if possible) the ISP1301
USB-on-the-go USB chip the board has and supports a serial terminal via
SCC4 via the RXD4/TXD4 signals.
Any hint will be appreciated,
best regards,
Peter Asemann
^ permalink raw reply
* Re: [PATCH] PPC/PPC64: Introduce CPU_HAS_FEATURE() macro
From: Tom Rini @ 2005-02-04 14:45 UTC (permalink / raw)
To: Olof Johansson
Cc: akpm, linux-kernel, linuxppc-dev, paulus, hpa, linuxppc64-dev
In-Reply-To: <20050204072254.GA17565@austin.ibm.com>
On Fri, Feb 04, 2005 at 01:22:54AM -0600, Olof Johansson wrote:
> Hi,
>
> It's getting pretty old to have see and type cur_cpu_spec->cpu_features
> & CPU_FTR_<feature>, when a shorter and less TLA-ridden macro is more
> readable.
>
> This also takes care of the differences between PPC and PPC64 cpu
> features for the common code; most places in PPC could be replaced with
> the macro as well.
It'd be nice if someone went and changed ppc32's cpu feature from an
array and matched ppc64, while we're in here...
--
Tom Rini
http://gate.crashing.org/~trini/
^ permalink raw reply
* Re: 2.6.11-rc2 on powerbook g4 - lost interrupt
From: William A.(Andy) Adamson @ 2005-02-04 13:58 UTC (permalink / raw)
To: Benjamin Herrenschmidt; +Cc: William A.(Andy) Adamson, linuxppc-dev list
In-Reply-To: <1107472035.2363.59.camel@gaston>
[-- Attachment #1: Type: text/plain, Size: 936 bytes --]
hello
thanks for the response.
i disabled the cpufreq support. no change, config attached. the first 'lost
interrupt' message appears after the 'hda: max request size: 1024KiB'. then
lost interrupt messages are interleaved throughout the remaining boot, which
eventually hangs.
there is one 'lost interrupt, dma status: 8080' message
-->Andy
andros@citi.umich.edu said:
> i'm trying to get 2.6.11-rc2 to run on my powerbook g4, cpuinfo below. i
> found the discussion and patch for the adb-probe hang which i experienced.
> now i'm finding the ide subsystem is loosing interrupt's talking to the
> harddisk, hda. i attached my kernel config. i looked in the email archive
> and didn't find anything relevant. any suggestions would be appreciated. i
> delevelop NFSv4 on linux, and need the latest kernels....
benh@kernel.crashing.org said:
> Can you try disabling cpufreq support and let me know if that helps ?
> Ben.
[-- Attachment #2: powerbookg4-2.6.11-rc2-new-config --]
[-- Type: text/plain , Size: 27731 bytes --]
#
# Automatically generated make config: don't edit
# Linux kernel version: 2.6.11-rc2-CITI_NFS4_ALL-1
# Fri Feb 4 13:32:15 2005
#
CONFIG_MMU=y
CONFIG_GENERIC_HARDIRQS=y
CONFIG_RWSEM_XCHGADD_ALGORITHM=y
CONFIG_GENERIC_CALIBRATE_DELAY=y
CONFIG_HAVE_DEC_LOCK=y
CONFIG_PPC=y
CONFIG_PPC32=y
CONFIG_GENERIC_NVRAM=y
#
# Code maturity level options
#
CONFIG_EXPERIMENTAL=y
CONFIG_CLEAN_COMPILE=y
CONFIG_BROKEN_ON_SMP=y
CONFIG_LOCK_KERNEL=y
#
# General setup
#
CONFIG_LOCALVERSION=""
CONFIG_SWAP=y
CONFIG_SYSVIPC=y
# CONFIG_POSIX_MQUEUE is not set
# CONFIG_BSD_PROCESS_ACCT is not set
CONFIG_SYSCTL=y
# CONFIG_AUDIT is not set
CONFIG_LOG_BUF_SHIFT=14
CONFIG_HOTPLUG=y
CONFIG_KOBJECT_UEVENT=y
CONFIG_IKCONFIG=y
CONFIG_IKCONFIG_PROC=y
# CONFIG_EMBEDDED is not set
CONFIG_KALLSYMS=y
# CONFIG_KALLSYMS_EXTRA_PASS is not set
CONFIG_FUTEX=y
CONFIG_EPOLL=y
# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
CONFIG_SHMEM=y
CONFIG_CC_ALIGN_FUNCTIONS=0
CONFIG_CC_ALIGN_LABELS=0
CONFIG_CC_ALIGN_LOOPS=0
CONFIG_CC_ALIGN_JUMPS=0
# CONFIG_TINY_SHMEM is not set
#
# Loadable module support
#
CONFIG_MODULES=y
CONFIG_MODULE_UNLOAD=y
# CONFIG_MODULE_FORCE_UNLOAD is not set
CONFIG_OBSOLETE_MODPARM=y
# CONFIG_MODVERSIONS is not set
# CONFIG_MODULE_SRCVERSION_ALL is not set
CONFIG_KMOD=y
#
# Processor
#
CONFIG_6xx=y
# CONFIG_40x is not set
# CONFIG_44x is not set
# CONFIG_POWER3 is not set
# CONFIG_POWER4 is not set
# CONFIG_8xx is not set
# CONFIG_E500 is not set
CONFIG_ALTIVEC=y
CONFIG_TAU=y
# CONFIG_TAU_INT is not set
CONFIG_TAU_AVERAGE=y
# CONFIG_CPU_FREQ is not set
# CONFIG_CPU_FREQ_DEFAULT_GOV_PERFORMANCE is not set
# CONFIG_CPU_FREQ_DEFAULT_GOV_USERSPACE is not set
# CONFIG_PPC601_SYNC_FIX is not set
CONFIG_PM=y
CONFIG_PPC_STD_MMU=y
#
# Platform options
#
CONFIG_PPC_MULTIPLATFORM=y
# CONFIG_APUS is not set
# CONFIG_KATANA is not set
# CONFIG_WILLOW is not set
# CONFIG_CPCI690 is not set
# CONFIG_PCORE is not set
# CONFIG_POWERPMC250 is not set
# CONFIG_CHESTNUT is not set
# CONFIG_SPRUCE is not set
# CONFIG_EV64260 is not set
# CONFIG_LOPEC is not set
# CONFIG_MCPN765 is not set
# CONFIG_MVME5100 is not set
# CONFIG_PPLUS is not set
# CONFIG_PRPMC750 is not set
# CONFIG_PRPMC800 is not set
# CONFIG_SANDPOINT is not set
# CONFIG_ADIR is not set
# CONFIG_K2 is not set
# CONFIG_PAL4 is not set
# CONFIG_GEMINI is not set
# CONFIG_EST8260 is not set
# CONFIG_SBC82xx is not set
# CONFIG_SBS8260 is not set
# CONFIG_RPX8260 is not set
# CONFIG_TQM8260 is not set
# CONFIG_ADS8272 is not set
# CONFIG_PQ2FADS is not set
# CONFIG_LITE5200 is not set
CONFIG_PPC_CHRP=y
CONFIG_PPC_PMAC=y
CONFIG_PPC_PREP=y
CONFIG_PPC_OF=y
CONFIG_PPCBUG_NVRAM=y
# CONFIG_SMP is not set
CONFIG_PREEMPT=y
CONFIG_HIGHMEM=y
CONFIG_BINFMT_ELF=y
CONFIG_BINFMT_MISC=m
CONFIG_PROC_DEVICETREE=y
# CONFIG_PREP_RESIDUAL is not set
# CONFIG_CMDLINE_BOOL is not set
#
# Bus options
#
# CONFIG_ISA is not set
CONFIG_GENERIC_ISA_DMA=y
CONFIG_PCI=y
CONFIG_PCI_DOMAINS=y
CONFIG_PCI_LEGACY_PROC=y
CONFIG_PCI_NAMES=y
#
# PCCARD (PCMCIA/CardBus) support
#
# CONFIG_PCCARD is not set
#
# PC-card bridges
#
#
# Advanced setup
#
# CONFIG_ADVANCED_OPTIONS is not set
#
# Default settings for advanced configuration options are used
#
CONFIG_HIGHMEM_START=0xfe000000
CONFIG_LOWMEM_SIZE=0x30000000
CONFIG_KERNEL_START=0xc0000000
CONFIG_TASK_SIZE=0x80000000
CONFIG_BOOT_LOAD=0x00800000
#
# Device Drivers
#
#
# Generic Driver Options
#
CONFIG_STANDALONE=y
CONFIG_PREVENT_FIRMWARE_BUILD=y
# CONFIG_FW_LOADER is not set
#
# Memory Technology Devices (MTD)
#
# CONFIG_MTD is not set
#
# Parallel port support
#
# CONFIG_PARPORT is not set
#
# Plug and Play support
#
#
# Block devices
#
# CONFIG_BLK_DEV_FD is not set
# CONFIG_MAC_FLOPPY is not set
# CONFIG_BLK_CPQ_DA is not set
# CONFIG_BLK_CPQ_CISS_DA is not set
# CONFIG_BLK_DEV_DAC960 is not set
# CONFIG_BLK_DEV_UMEM is not set
# CONFIG_BLK_DEV_COW_COMMON is not set
CONFIG_BLK_DEV_LOOP=y
# CONFIG_BLK_DEV_CRYPTOLOOP is not set
# 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
CONFIG_BLK_DEV_RAM_SIZE=4096
CONFIG_BLK_DEV_INITRD=y
CONFIG_INITRAMFS_SOURCE=""
# CONFIG_LBD is not set
# CONFIG_CDROM_PKTCDVD is not set
#
# IO Schedulers
#
CONFIG_IOSCHED_NOOP=y
CONFIG_IOSCHED_AS=y
CONFIG_IOSCHED_DEADLINE=y
CONFIG_IOSCHED_CFQ=y
# CONFIG_ATA_OVER_ETH is not set
#
# ATA/ATAPI/MFM/RLL support
#
CONFIG_IDE=y
CONFIG_BLK_DEV_IDE=y
#
# Please see Documentation/ide.txt for help/info on IDE drives
#
# CONFIG_BLK_DEV_IDE_SATA is not set
CONFIG_BLK_DEV_IDEDISK=y
# CONFIG_IDEDISK_MULTI_MODE is not set
CONFIG_BLK_DEV_IDECD=y
# CONFIG_BLK_DEV_IDETAPE is not set
# CONFIG_BLK_DEV_IDEFLOPPY is not set
CONFIG_BLK_DEV_IDESCSI=y
# CONFIG_IDE_TASK_IOCTL is not set
#
# IDE chipset support/bugfixes
#
CONFIG_IDE_GENERIC=y
CONFIG_BLK_DEV_IDEPCI=y
CONFIG_IDEPCI_SHARE_IRQ=y
CONFIG_BLK_DEV_OFFBOARD=y
CONFIG_BLK_DEV_GENERIC=y
# CONFIG_BLK_DEV_OPTI621 is not set
CONFIG_BLK_DEV_SL82C105=y
CONFIG_BLK_DEV_IDEDMA_PCI=y
# CONFIG_BLK_DEV_IDEDMA_FORCED is not set
CONFIG_IDEDMA_PCI_AUTO=y
# CONFIG_IDEDMA_ONLYDISK is not set
CONFIG_BLK_DEV_AEC62XX=y
# CONFIG_BLK_DEV_ALI15X3 is not set
# CONFIG_BLK_DEV_AMD74XX is not set
CONFIG_BLK_DEV_CMD64X=y
# CONFIG_BLK_DEV_TRIFLEX is not set
# CONFIG_BLK_DEV_CY82C693 is not set
# CONFIG_BLK_DEV_CS5520 is not set
# CONFIG_BLK_DEV_CS5530 is not set
# CONFIG_BLK_DEV_HPT34X is not set
# CONFIG_BLK_DEV_HPT366 is not set
# CONFIG_BLK_DEV_SC1200 is not set
# CONFIG_BLK_DEV_PIIX is not set
# CONFIG_BLK_DEV_NS87415 is not set
CONFIG_BLK_DEV_PDC202XX_OLD=y
CONFIG_PDC202XX_BURST=y
CONFIG_BLK_DEV_PDC202XX_NEW=y
CONFIG_PDC202XX_FORCE=y
# CONFIG_BLK_DEV_SVWKS is not set
# CONFIG_BLK_DEV_SIIMAGE is not set
# CONFIG_BLK_DEV_SLC90E66 is not set
# CONFIG_BLK_DEV_TRM290 is not set
# CONFIG_BLK_DEV_VIA82CXXX is not set
CONFIG_BLK_DEV_IDE_PMAC=y
CONFIG_BLK_DEV_IDE_PMAC_ATA100FIRST=y
CONFIG_BLK_DEV_IDEDMA_PMAC=y
# CONFIG_BLK_DEV_IDE_PMAC_BLINK is not set
# CONFIG_IDE_ARM is not set
CONFIG_BLK_DEV_IDEDMA=y
# CONFIG_IDEDMA_IVB is not set
CONFIG_IDEDMA_AUTO=y
# CONFIG_BLK_DEV_HD is not set
#
# SCSI device support
#
CONFIG_SCSI=y
# CONFIG_SCSI_PROC_FS is not set
#
# SCSI support type (disk, tape, CD-ROM)
#
# CONFIG_BLK_DEV_SD is not set
# CONFIG_CHR_DEV_ST is not set
# CONFIG_CHR_DEV_OSST is not set
CONFIG_BLK_DEV_SR=y
# CONFIG_BLK_DEV_SR_VENDOR is not set
CONFIG_CHR_DEV_SG=y
#
# Some SCSI devices (e.g. CD jukebox) support multiple LUNs
#
# CONFIG_SCSI_MULTI_LUN is not set
# CONFIG_SCSI_CONSTANTS is not set
# CONFIG_SCSI_LOGGING is not set
#
# SCSI Transport Attributes
#
CONFIG_SCSI_SPI_ATTRS=y
# CONFIG_SCSI_FC_ATTRS is not set
# CONFIG_SCSI_ISCSI_ATTRS is not set
#
# SCSI low-level drivers
#
# CONFIG_BLK_DEV_3W_XXXX_RAID is not set
# CONFIG_SCSI_3W_9XXX is not set
# CONFIG_SCSI_ACARD is not set
# CONFIG_SCSI_AACRAID is not set
CONFIG_SCSI_AIC7XXX=y
CONFIG_AIC7XXX_CMDS_PER_DEVICE=253
CONFIG_AIC7XXX_RESET_DELAY_MS=15000
# CONFIG_AIC7XXX_DEBUG_ENABLE is not set
CONFIG_AIC7XXX_DEBUG_MASK=0
# CONFIG_AIC7XXX_REG_PRETTY_PRINT is not set
# CONFIG_SCSI_AIC7XXX_OLD is not set
# CONFIG_SCSI_AIC79XX is not set
# CONFIG_SCSI_DPT_I2O is not set
# CONFIG_MEGARAID_NEWGEN is not set
# CONFIG_MEGARAID_LEGACY is not set
# CONFIG_SCSI_SATA is not set
# CONFIG_SCSI_BUSLOGIC is not set
# CONFIG_SCSI_DMX3191D is not set
# CONFIG_SCSI_EATA is not set
# CONFIG_SCSI_EATA_PIO is not set
# CONFIG_SCSI_FUTURE_DOMAIN is not set
# CONFIG_SCSI_GDTH is not set
# CONFIG_SCSI_IPS is not set
# CONFIG_SCSI_INITIO is not set
# CONFIG_SCSI_INIA100 is not set
CONFIG_SCSI_SYM53C8XX_2=y
CONFIG_SCSI_SYM53C8XX_DMA_ADDRESSING_MODE=0
CONFIG_SCSI_SYM53C8XX_DEFAULT_TAGS=16
CONFIG_SCSI_SYM53C8XX_MAX_TAGS=64
# CONFIG_SCSI_SYM53C8XX_IOMAPPED is not set
# CONFIG_SCSI_IPR is not set
# CONFIG_SCSI_QLOGIC_ISP is not set
# CONFIG_SCSI_QLOGIC_FC is not set
# CONFIG_SCSI_QLOGIC_1280 is not set
CONFIG_SCSI_QLA2XXX=y
# CONFIG_SCSI_QLA21XX is not set
# CONFIG_SCSI_QLA22XX is not set
# CONFIG_SCSI_QLA2300 is not set
# CONFIG_SCSI_QLA2322 is not set
# CONFIG_SCSI_QLA6312 is not set
# CONFIG_SCSI_DC395x is not set
# CONFIG_SCSI_DC390T is not set
# CONFIG_SCSI_NSP32 is not set
# CONFIG_SCSI_DEBUG is not set
CONFIG_SCSI_MESH=y
CONFIG_SCSI_MESH_SYNC_RATE=5
CONFIG_SCSI_MESH_RESET_DELAY_MS=4000
CONFIG_SCSI_MAC53C94=y
#
# Multi-device support (RAID and LVM)
#
# CONFIG_MD is not set
#
# Fusion MPT device support
#
# CONFIG_FUSION is not set
#
# IEEE 1394 (FireWire) support
#
CONFIG_IEEE1394=m
#
# Subsystem Options
#
# CONFIG_IEEE1394_VERBOSEDEBUG is not set
CONFIG_IEEE1394_OUI_DB=y
CONFIG_IEEE1394_EXTRA_CONFIG_ROMS=y
CONFIG_IEEE1394_CONFIG_ROM_IP1394=y
#
# Device Drivers
#
# CONFIG_IEEE1394_PCILYNX is not set
CONFIG_IEEE1394_OHCI1394=m
#
# Protocol Drivers
#
CONFIG_IEEE1394_VIDEO1394=m
CONFIG_IEEE1394_SBP2=m
# CONFIG_IEEE1394_SBP2_PHYS_DMA is not set
CONFIG_IEEE1394_ETH1394=m
CONFIG_IEEE1394_DV1394=m
CONFIG_IEEE1394_RAWIO=m
# CONFIG_IEEE1394_CMP is not set
#
# I2O device support
#
# CONFIG_I2O is not set
#
# Macintosh device drivers
#
CONFIG_ADB=y
CONFIG_ADB_CUDA=y
CONFIG_ADB_PMU=y
CONFIG_PMAC_PBOOK=y
CONFIG_PMAC_APM_EMU=y
CONFIG_PMAC_BACKLIGHT=y
CONFIG_ADB_MACIO=y
CONFIG_INPUT_ADBHID=y
CONFIG_MAC_EMUMOUSEBTN=y
# CONFIG_THERM_WINDTUNNEL is not set
CONFIG_THERM_ADT746X=y
# CONFIG_ANSLCD is not set
#
# Networking support
#
CONFIG_NET=y
#
# Networking options
#
CONFIG_PACKET=y
# CONFIG_PACKET_MMAP is not set
# CONFIG_NETLINK_DEV is not set
CONFIG_UNIX=y
# CONFIG_NET_KEY is not set
CONFIG_INET=y
CONFIG_IP_MULTICAST=y
# CONFIG_IP_ADVANCED_ROUTER is not set
# CONFIG_IP_PNP is not set
# CONFIG_NET_IPIP is not set
# CONFIG_NET_IPGRE is not set
# CONFIG_IP_MROUTE is not set
# CONFIG_ARPD is not set
CONFIG_SYN_COOKIES=y
# CONFIG_INET_AH is not set
# CONFIG_INET_ESP is not set
# CONFIG_INET_IPCOMP is not set
# CONFIG_INET_TUNNEL is not set
CONFIG_IP_TCPDIAG=y
# CONFIG_IP_TCPDIAG_IPV6 is not set
#
# IP: Virtual Server Configuration
#
# CONFIG_IP_VS is not set
# CONFIG_IPV6 is not set
CONFIG_NETFILTER=y
# CONFIG_NETFILTER_DEBUG is not set
#
# IP: Netfilter Configuration
#
CONFIG_IP_NF_CONNTRACK=m
# CONFIG_IP_NF_CT_ACCT is not set
# CONFIG_IP_NF_CONNTRACK_MARK is not set
# CONFIG_IP_NF_CT_PROTO_SCTP is not set
CONFIG_IP_NF_FTP=m
CONFIG_IP_NF_IRC=m
# CONFIG_IP_NF_TFTP is not set
# CONFIG_IP_NF_AMANDA is not set
CONFIG_IP_NF_QUEUE=m
CONFIG_IP_NF_IPTABLES=m
CONFIG_IP_NF_MATCH_LIMIT=m
# CONFIG_IP_NF_MATCH_IPRANGE is not set
CONFIG_IP_NF_MATCH_MAC=m
CONFIG_IP_NF_MATCH_PKTTYPE=m
CONFIG_IP_NF_MATCH_MARK=m
CONFIG_IP_NF_MATCH_MULTIPORT=m
CONFIG_IP_NF_MATCH_TOS=m
# CONFIG_IP_NF_MATCH_RECENT is not set
CONFIG_IP_NF_MATCH_ECN=m
CONFIG_IP_NF_MATCH_DSCP=m
CONFIG_IP_NF_MATCH_AH_ESP=m
CONFIG_IP_NF_MATCH_LENGTH=m
CONFIG_IP_NF_MATCH_TTL=m
CONFIG_IP_NF_MATCH_TCPMSS=m
CONFIG_IP_NF_MATCH_HELPER=m
CONFIG_IP_NF_MATCH_STATE=m
CONFIG_IP_NF_MATCH_CONNTRACK=m
CONFIG_IP_NF_MATCH_OWNER=m
# CONFIG_IP_NF_MATCH_ADDRTYPE is not set
# CONFIG_IP_NF_MATCH_REALM is not set
# CONFIG_IP_NF_MATCH_SCTP is not set
# CONFIG_IP_NF_MATCH_COMMENT is not set
# CONFIG_IP_NF_MATCH_HASHLIMIT is not set
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 is not set
# CONFIG_IP_NF_TARGET_SAME is not set
CONFIG_IP_NF_NAT_SNMP_BASIC=m
CONFIG_IP_NF_NAT_IRC=m
CONFIG_IP_NF_NAT_FTP=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_MARK=m
# CONFIG_IP_NF_TARGET_CLASSIFY is not set
# CONFIG_IP_NF_RAW is not set
CONFIG_IP_NF_ARPTABLES=m
CONFIG_IP_NF_ARPFILTER=m
# CONFIG_IP_NF_ARP_MANGLE is not set
#
# SCTP Configuration (EXPERIMENTAL)
#
# CONFIG_IP_SCTP is not set
# CONFIG_ATM is not set
# CONFIG_BRIDGE is not set
# CONFIG_VLAN_8021Q is not set
# CONFIG_DECNET is not set
CONFIG_LLC=m
# CONFIG_LLC2 is not set
# CONFIG_IPX is not set
CONFIG_ATALK=m
# CONFIG_DEV_APPLETALK is not set
# CONFIG_X25 is not set
# CONFIG_LAPB is not set
# CONFIG_NET_DIVERT is not set
# CONFIG_ECONET is not set
# CONFIG_WAN_ROUTER is not set
#
# QoS and/or fair queueing
#
# CONFIG_NET_SCHED is not set
# CONFIG_NET_CLS_ROUTE is not set
#
# Network testing
#
# CONFIG_NET_PKTGEN is not set
# CONFIG_NETPOLL is not set
# CONFIG_NET_POLL_CONTROLLER is not set
# CONFIG_HAMRADIO is not set
# CONFIG_IRDA is not set
CONFIG_BT=m
CONFIG_BT_L2CAP=m
# CONFIG_BT_SCO is not set
CONFIG_BT_RFCOMM=m
CONFIG_BT_RFCOMM_TTY=y
# CONFIG_BT_BNEP is not set
# CONFIG_BT_HIDP is not set
#
# Bluetooth device drivers
#
# CONFIG_BT_HCIUART is not set
# CONFIG_BT_HCIVHCI is not set
CONFIG_NETDEVICES=y
# CONFIG_DUMMY is not set
# CONFIG_BONDING is not set
# CONFIG_EQUALIZER is not set
# CONFIG_TUN is not set
#
# ARCnet devices
#
# CONFIG_ARCNET is not set
#
# Ethernet (10 or 100Mbit)
#
CONFIG_NET_ETHERNET=y
CONFIG_MII=y
CONFIG_MACE=y
# CONFIG_MACE_AAUI_PORT is not set
CONFIG_BMAC=y
# CONFIG_HAPPYMEAL is not set
CONFIG_SUNGEM=y
# CONFIG_NET_VENDOR_3COM is not set
#
# Tulip family network device support
#
# CONFIG_NET_TULIP is not set
# CONFIG_HP100 is not set
CONFIG_NET_PCI=y
CONFIG_PCNET32=y
# CONFIG_AMD8111_ETH is not set
# CONFIG_ADAPTEC_STARFIRE is not set
# CONFIG_B44 is not set
# CONFIG_FORCEDETH is not set
# CONFIG_DGRS is not set
# CONFIG_EEPRO100 is not set
# CONFIG_E100 is not set
# CONFIG_FEALNX is not set
# CONFIG_NATSEMI is not set
# CONFIG_NE2K_PCI is not set
# CONFIG_8139CP is not set
# CONFIG_8139TOO is not set
# CONFIG_SIS900 is not set
# CONFIG_EPIC100 is not set
# CONFIG_SUNDANCE is not set
# CONFIG_TLAN is not set
# CONFIG_VIA_RHINE is not set
#
# Ethernet (1000 Mbit)
#
# CONFIG_ACENIC is not set
# CONFIG_DL2K is not set
# CONFIG_E1000 is not set
# CONFIG_NS83820 is not set
# CONFIG_HAMACHI is not set
# CONFIG_YELLOWFIN is not set
# CONFIG_R8169 is not set
# CONFIG_SK98LIN is not set
# CONFIG_VIA_VELOCITY is not set
# CONFIG_TIGON3 is not set
#
# Ethernet (10000 Mbit)
#
# CONFIG_IXGB is not set
# CONFIG_S2IO is not set
#
# Token Ring devices
#
# CONFIG_TR is not set
#
# Wireless LAN (non-hamradio)
#
CONFIG_NET_RADIO=y
#
# Obsolete Wireless cards support (pre-802.11)
#
# CONFIG_STRIP is not set
#
# Wireless 802.11b ISA/PCI cards support
#
CONFIG_HERMES=m
CONFIG_APPLE_AIRPORT=m
# CONFIG_PLX_HERMES is not set
# CONFIG_TMD_HERMES is not set
CONFIG_PCI_HERMES=m
# CONFIG_ATMEL is not set
#
# Prism GT/Duette 802.11(a/b/g) PCI/Cardbus support
#
# CONFIG_PRISM54 is not set
CONFIG_NET_WIRELESS=y
#
# Wan interfaces
#
# CONFIG_WAN is not set
# CONFIG_FDDI is not set
# CONFIG_HIPPI is not set
CONFIG_PPP=y
CONFIG_PPP_MULTILINK=y
# CONFIG_PPP_FILTER is not set
CONFIG_PPP_ASYNC=y
CONFIG_PPP_SYNC_TTY=m
CONFIG_PPP_DEFLATE=y
CONFIG_PPP_BSDCOMP=m
CONFIG_PPPOE=m
# CONFIG_SLIP is not set
# CONFIG_NET_FC is not set
# CONFIG_SHAPER is not set
# CONFIG_NETCONSOLE is not set
#
# ISDN subsystem
#
CONFIG_ISDN=m
#
# Old ISDN4Linux
#
# CONFIG_ISDN_I4L is not set
#
# CAPI subsystem
#
# CONFIG_ISDN_CAPI is not set
#
# Telephony Support
#
# CONFIG_PHONE is not set
#
# Input device support
#
CONFIG_INPUT=y
#
# Userland interfaces
#
CONFIG_INPUT_MOUSEDEV=y
CONFIG_INPUT_MOUSEDEV_PSAUX=y
CONFIG_INPUT_MOUSEDEV_SCREEN_X=1024
CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768
# CONFIG_INPUT_JOYDEV is not set
# CONFIG_INPUT_TSDEV is not set
CONFIG_INPUT_EVDEV=y
# CONFIG_INPUT_EVBUG is not set
#
# Input I/O drivers
#
# CONFIG_GAMEPORT is not set
CONFIG_SOUND_GAMEPORT=y
CONFIG_SERIO=y
CONFIG_SERIO_I8042=y
# CONFIG_SERIO_SERPORT is not set
# CONFIG_SERIO_CT82C710 is not set
# CONFIG_SERIO_PCIPS2 is not set
# CONFIG_SERIO_RAW is not set
#
# Input Device Drivers
#
CONFIG_INPUT_KEYBOARD=y
# CONFIG_KEYBOARD_ATKBD is not set
# CONFIG_KEYBOARD_SUNKBD is not set
# CONFIG_KEYBOARD_LKKBD is not set
# CONFIG_KEYBOARD_XTKBD is not set
# CONFIG_KEYBOARD_NEWTON is not set
CONFIG_INPUT_MOUSE=y
# CONFIG_MOUSE_PS2 is not set
# CONFIG_MOUSE_SERIAL is not set
# CONFIG_MOUSE_VSXXXAA is not set
# CONFIG_INPUT_JOYSTICK is not set
# CONFIG_INPUT_TOUCHSCREEN is not set
# CONFIG_INPUT_MISC is not set
#
# Character devices
#
CONFIG_VT=y
CONFIG_VT_CONSOLE=y
CONFIG_HW_CONSOLE=y
# CONFIG_SERIAL_NONSTANDARD is not set
#
# Serial drivers
#
# CONFIG_SERIAL_8250 is not set
#
# Non-8250 serial port support
#
# CONFIG_SERIAL_PMACZILOG is not set
CONFIG_UNIX98_PTYS=y
CONFIG_LEGACY_PTYS=y
CONFIG_LEGACY_PTY_COUNT=256
#
# IPMI
#
# CONFIG_IPMI_HANDLER is not set
#
# Watchdog Cards
#
# CONFIG_WATCHDOG is not set
CONFIG_NVRAM=y
# CONFIG_GEN_RTC is not set
# CONFIG_DTLK is not set
# CONFIG_R3964 is not set
# CONFIG_APPLICOM is not set
#
# Ftape, the floppy tape device driver
#
CONFIG_AGP=y
CONFIG_AGP_UNINORTH=y
# CONFIG_DRM is not set
# CONFIG_RAW_DRIVER is not set
#
# I2C support
#
CONFIG_I2C=y
# CONFIG_I2C_CHARDEV is not set
#
# I2C Algorithms
#
CONFIG_I2C_ALGOBIT=y
# CONFIG_I2C_ALGOPCF is not set
# CONFIG_I2C_ALGOPCA is not set
#
# I2C Hardware Bus support
#
# CONFIG_I2C_ALI1535 is not set
# CONFIG_I2C_ALI1563 is not set
# CONFIG_I2C_ALI15X3 is not set
# CONFIG_I2C_AMD756 is not set
# CONFIG_I2C_AMD8111 is not set
# CONFIG_I2C_HYDRA is not set
# CONFIG_I2C_I801 is not set
# CONFIG_I2C_I810 is not set
# CONFIG_I2C_ISA is not set
CONFIG_I2C_KEYWEST=y
# CONFIG_I2C_MPC is not set
# CONFIG_I2C_NFORCE2 is not set
# CONFIG_I2C_PARPORT_LIGHT is not set
# CONFIG_I2C_PIIX4 is not set
# CONFIG_I2C_PROSAVAGE is not set
# CONFIG_I2C_SAVAGE4 is not set
# CONFIG_SCx200_ACB is not set
# CONFIG_I2C_SIS5595 is not set
# CONFIG_I2C_SIS630 is not set
# CONFIG_I2C_SIS96X is not set
# CONFIG_I2C_STUB is not set
# CONFIG_I2C_VIA is not set
# CONFIG_I2C_VIAPRO is not set
# CONFIG_I2C_VOODOO3 is not set
# CONFIG_I2C_PCA_ISA is not set
#
# Hardware Sensors Chip support
#
# CONFIG_I2C_SENSOR is not set
# CONFIG_SENSORS_ADM1021 is not set
# CONFIG_SENSORS_ADM1025 is not set
# CONFIG_SENSORS_ADM1026 is not set
# CONFIG_SENSORS_ADM1031 is not set
# CONFIG_SENSORS_ASB100 is not set
# CONFIG_SENSORS_DS1621 is not set
# CONFIG_SENSORS_FSCHER is not set
# CONFIG_SENSORS_GL518SM is not set
# CONFIG_SENSORS_IT87 is not set
# CONFIG_SENSORS_LM63 is not set
# CONFIG_SENSORS_LM75 is not set
# CONFIG_SENSORS_LM77 is not set
# CONFIG_SENSORS_LM78 is not set
# CONFIG_SENSORS_LM80 is not set
# CONFIG_SENSORS_LM83 is not set
# CONFIG_SENSORS_LM85 is not set
# CONFIG_SENSORS_LM87 is not set
# CONFIG_SENSORS_LM90 is not set
# CONFIG_SENSORS_MAX1619 is not set
# CONFIG_SENSORS_PC87360 is not set
# CONFIG_SENSORS_SMSC47B397 is not set
# CONFIG_SENSORS_SMSC47M1 is not set
# CONFIG_SENSORS_VIA686A is not set
# CONFIG_SENSORS_W83781D is not set
# CONFIG_SENSORS_W83L785TS is not set
# CONFIG_SENSORS_W83627HF is not set
#
# Other I2C Chip support
#
# CONFIG_SENSORS_EEPROM is not set
# CONFIG_SENSORS_PCF8574 is not set
# CONFIG_SENSORS_PCF8591 is not set
# CONFIG_SENSORS_RTC8564 is not set
# CONFIG_I2C_DEBUG_CORE is not set
# CONFIG_I2C_DEBUG_ALGO is not set
# CONFIG_I2C_DEBUG_BUS is not set
# CONFIG_I2C_DEBUG_CHIP is not set
#
# Dallas's 1-wire bus
#
# CONFIG_W1 is not set
#
# Misc devices
#
#
# Multimedia devices
#
CONFIG_VIDEO_DEV=m
#
# Video For Linux
#
#
# Video Adapters
#
# CONFIG_VIDEO_BT848 is not set
# CONFIG_VIDEO_CPIA is not set
# CONFIG_VIDEO_SAA5246A is not set
# CONFIG_VIDEO_SAA5249 is not set
# CONFIG_TUNER_3036 is not set
# CONFIG_VIDEO_STRADIS is not set
# CONFIG_VIDEO_ZORAN is not set
# CONFIG_VIDEO_SAA7134 is not set
# CONFIG_VIDEO_MXB is not set
# CONFIG_VIDEO_DPC is not set
# CONFIG_VIDEO_HEXIUM_ORION is not set
# CONFIG_VIDEO_HEXIUM_GEMINI is not set
# CONFIG_VIDEO_CX88 is not set
# CONFIG_VIDEO_OVCAMCHIP is not set
#
# Radio Adapters
#
# CONFIG_RADIO_GEMTEK_PCI is not set
# CONFIG_RADIO_MAXIRADIO is not set
# CONFIG_RADIO_MAESTRO is not set
#
# Digital Video Broadcasting Devices
#
# CONFIG_DVB is not set
#
# Graphics support
#
CONFIG_FB=y
CONFIG_FB_MODE_HELPERS=y
# CONFIG_FB_TILEBLITTING is not set
# CONFIG_FB_CIRRUS is not set
# CONFIG_FB_PM2 is not set
# CONFIG_FB_CYBER2000 is not set
CONFIG_FB_OF=y
CONFIG_FB_CONTROL=y
CONFIG_FB_PLATINUM=y
CONFIG_FB_VALKYRIE=y
CONFIG_FB_CT65550=y
# CONFIG_FB_ASILIANT is not set
CONFIG_FB_IMSTT=y
# CONFIG_FB_VGA16 is not set
CONFIG_FB_RIVA=y
# CONFIG_FB_RIVA_I2C is not set
# CONFIG_FB_RIVA_DEBUG is not set
# CONFIG_FB_MATROX is not set
# CONFIG_FB_RADEON_OLD is not set
# CONFIG_FB_RADEON is not set
# CONFIG_FB_ATY128 is not set
# CONFIG_FB_ATY is not set
# CONFIG_FB_SAVAGE is not set
# CONFIG_FB_SIS is not set
# CONFIG_FB_NEOMAGIC is not set
# CONFIG_FB_KYRO is not set
# CONFIG_FB_3DFX is not set
# CONFIG_FB_VOODOO1 is not set
# CONFIG_FB_TRIDENT is not set
# CONFIG_FB_VIRTUAL is not set
#
# Console display driver support
#
CONFIG_VGA_CONSOLE=y
CONFIG_DUMMY_CONSOLE=y
CONFIG_FRAMEBUFFER_CONSOLE=y
# CONFIG_FONTS is not set
CONFIG_FONT_8x8=y
CONFIG_FONT_8x16=y
#
# Logo configuration
#
CONFIG_LOGO=y
CONFIG_LOGO_LINUX_MONO=y
CONFIG_LOGO_LINUX_VGA16=y
CONFIG_LOGO_LINUX_CLUT224=y
# CONFIG_BACKLIGHT_LCD_SUPPORT is not set
#
# Sound
#
CONFIG_SOUND=y
CONFIG_DMASOUND_PMAC=y
CONFIG_DMASOUND=y
#
# Advanced Linux Sound Architecture
#
CONFIG_SND=y
CONFIG_SND_TIMER=y
CONFIG_SND_PCM=y
CONFIG_SND_SEQUENCER=y
CONFIG_SND_SEQ_DUMMY=y
CONFIG_SND_OSSEMUL=y
CONFIG_SND_MIXER_OSS=y
CONFIG_SND_PCM_OSS=y
CONFIG_SND_SEQUENCER_OSS=y
# CONFIG_SND_VERBOSE_PRINTK is not set
# CONFIG_SND_DEBUG is not set
#
# Generic devices
#
# CONFIG_SND_DUMMY is not set
# CONFIG_SND_VIRMIDI is not set
# CONFIG_SND_MTPAV is not set
# CONFIG_SND_SERIAL_U16550 is not set
# CONFIG_SND_MPU401 is not set
#
# PCI devices
#
# CONFIG_SND_ALI5451 is not set
# CONFIG_SND_ATIIXP is not set
# CONFIG_SND_ATIIXP_MODEM is not set
# CONFIG_SND_AU8810 is not set
# CONFIG_SND_AU8820 is not set
# CONFIG_SND_AU8830 is not set
# CONFIG_SND_AZT3328 is not set
# CONFIG_SND_BT87X is not set
# CONFIG_SND_CS46XX is not set
# CONFIG_SND_CS4281 is not set
# CONFIG_SND_EMU10K1 is not set
# CONFIG_SND_EMU10K1X is not set
# CONFIG_SND_CA0106 is not set
# CONFIG_SND_KORG1212 is not set
# CONFIG_SND_MIXART is not set
# CONFIG_SND_NM256 is not set
# CONFIG_SND_RME32 is not set
# CONFIG_SND_RME96 is not set
# CONFIG_SND_RME9652 is not set
# CONFIG_SND_HDSP is not set
# CONFIG_SND_TRIDENT is not set
# CONFIG_SND_YMFPCI is not set
# CONFIG_SND_ALS4000 is not set
# CONFIG_SND_CMIPCI is not set
# CONFIG_SND_ENS1370 is not set
# CONFIG_SND_ENS1371 is not set
# CONFIG_SND_ES1938 is not set
# CONFIG_SND_ES1968 is not set
# CONFIG_SND_MAESTRO3 is not set
# CONFIG_SND_FM801 is not set
# CONFIG_SND_ICE1712 is not set
# CONFIG_SND_ICE1724 is not set
# CONFIG_SND_INTEL8X0 is not set
# CONFIG_SND_INTEL8X0M is not set
# CONFIG_SND_SONICVIBES is not set
# CONFIG_SND_VIA82XX is not set
# CONFIG_SND_VIA82XX_MODEM is not set
# CONFIG_SND_VX222 is not set
#
# ALSA PowerMac devices
#
CONFIG_SND_POWERMAC=y
#
# Open Sound System
#
# CONFIG_SOUND_PRIME is not set
#
# USB support
#
# CONFIG_USB is not set
CONFIG_USB_ARCH_HAS_HCD=y
CONFIG_USB_ARCH_HAS_OHCI=y
#
# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' may also be needed; see USB_STORAGE Help for more information
#
#
# USB Gadget Support
#
# CONFIG_USB_GADGET is not set
#
# MMC/SD Card support
#
# CONFIG_MMC is not set
#
# InfiniBand support
#
# CONFIG_INFINIBAND is not set
#
# File systems
#
CONFIG_EXT2_FS=y
# CONFIG_EXT2_FS_XATTR is not set
CONFIG_EXT3_FS=y
CONFIG_EXT3_FS_XATTR=y
# CONFIG_EXT3_FS_POSIX_ACL is not set
# CONFIG_EXT3_FS_SECURITY is not set
CONFIG_JBD=y
# CONFIG_JBD_DEBUG is not set
CONFIG_FS_MBCACHE=y
CONFIG_REISERFS_FS=m
# CONFIG_REISERFS_CHECK is not set
# CONFIG_REISERFS_PROC_INFO is not set
# CONFIG_REISERFS_FS_XATTR is not set
# CONFIG_JFS_FS is not set
CONFIG_XFS_FS=y
# CONFIG_XFS_RT is not set
# CONFIG_XFS_QUOTA is not set
# CONFIG_XFS_SECURITY is not set
# CONFIG_XFS_POSIX_ACL is not set
# CONFIG_MINIX_FS is not set
# CONFIG_ROMFS_FS is not set
# CONFIG_QUOTA is not set
CONFIG_DNOTIFY=y
# CONFIG_AUTOFS_FS is not set
# CONFIG_AUTOFS4_FS is not set
#
# CD-ROM/DVD Filesystems
#
CONFIG_ISO9660_FS=y
CONFIG_JOLIET=y
CONFIG_ZISOFS=y
CONFIG_ZISOFS_FS=y
CONFIG_UDF_FS=m
CONFIG_UDF_NLS=y
#
# DOS/FAT/NT Filesystems
#
CONFIG_FAT_FS=m
CONFIG_MSDOS_FS=m
CONFIG_VFAT_FS=m
CONFIG_FAT_DEFAULT_CODEPAGE=437
CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1"
# CONFIG_NTFS_FS is not set
#
# Pseudo filesystems
#
CONFIG_PROC_FS=y
CONFIG_PROC_KCORE=y
CONFIG_SYSFS=y
# CONFIG_DEVFS_FS is not set
# CONFIG_DEVPTS_FS_XATTR is not set
CONFIG_TMPFS=y
# CONFIG_TMPFS_XATTR is not set
# CONFIG_HUGETLB_PAGE is not set
CONFIG_RAMFS=y
#
# Miscellaneous filesystems
#
# CONFIG_ADFS_FS is not set
# CONFIG_AFFS_FS is not set
CONFIG_HFS_FS=m
CONFIG_HFSPLUS_FS=m
# CONFIG_BEFS_FS is not set
# CONFIG_BFS_FS is not set
# CONFIG_EFS_FS is not set
# CONFIG_CRAMFS is not set
# CONFIG_VXFS_FS is not set
# CONFIG_HPFS_FS is not set
# CONFIG_QNX4FS_FS is not set
# CONFIG_SYSV_FS is not set
# CONFIG_UFS_FS is not set
#
# Network File Systems
#
CONFIG_NFS_FS=y
CONFIG_NFS_V3=y
# CONFIG_NFS_V4 is not set
# CONFIG_NFS_DIRECTIO is not set
CONFIG_NFSD=y
CONFIG_NFSD_V3=y
# CONFIG_NFSD_V4 is not set
# CONFIG_NFSD_TCP is not set
CONFIG_LOCKD=y
CONFIG_LOCKD_V4=y
CONFIG_EXPORTFS=y
CONFIG_SUNRPC=y
# CONFIG_RPCSEC_GSS_KRB5 is not set
# CONFIG_RPCSEC_GSS_SPKM3 is not set
CONFIG_SMB_FS=m
# CONFIG_SMB_NLS_DEFAULT is not set
# CONFIG_CIFS is not set
# CONFIG_NCP_FS is not set
# CONFIG_CODA_FS is not set
# CONFIG_AFS_FS is not set
#
# Partition Types
#
CONFIG_PARTITION_ADVANCED=y
# CONFIG_ACORN_PARTITION is not set
# CONFIG_OSF_PARTITION is not set
# CONFIG_AMIGA_PARTITION is not set
# CONFIG_ATARI_PARTITION is not set
CONFIG_MAC_PARTITION=y
# CONFIG_MSDOS_PARTITION is not set
# CONFIG_LDM_PARTITION is not set
# CONFIG_SGI_PARTITION is not set
# CONFIG_ULTRIX_PARTITION is not set
# CONFIG_SUN_PARTITION is not set
# CONFIG_EFI_PARTITION is not set
#
# Native Language Support
#
CONFIG_NLS=y
CONFIG_NLS_DEFAULT="iso8859-1"
CONFIG_NLS_CODEPAGE_437=m
# CONFIG_NLS_CODEPAGE_737 is not set
# CONFIG_NLS_CODEPAGE_775 is not set
CONFIG_NLS_CODEPAGE_850=m
# CONFIG_NLS_CODEPAGE_852 is not set
# CONFIG_NLS_CODEPAGE_855 is not set
# CONFIG_NLS_CODEPAGE_857 is not set
# CONFIG_NLS_CODEPAGE_860 is not set
# CONFIG_NLS_CODEPAGE_861 is not set
# CONFIG_NLS_CODEPAGE_862 is not set
# CONFIG_NLS_CODEPAGE_863 is not set
# CONFIG_NLS_CODEPAGE_864 is not set
# CONFIG_NLS_CODEPAGE_865 is not set
# CONFIG_NLS_CODEPAGE_866 is not set
# CONFIG_NLS_CODEPAGE_869 is not set
# CONFIG_NLS_CODEPAGE_936 is not set
# CONFIG_NLS_CODEPAGE_950 is not set
# CONFIG_NLS_CODEPAGE_932 is not set
# CONFIG_NLS_CODEPAGE_949 is not set
# CONFIG_NLS_CODEPAGE_874 is not set
# CONFIG_NLS_ISO8859_8 is not set
# CONFIG_NLS_CODEPAGE_1250 is not set
# CONFIG_NLS_CODEPAGE_1251 is not set
# CONFIG_NLS_ASCII is not set
CONFIG_NLS_ISO8859_1=m
# CONFIG_NLS_ISO8859_2 is not set
# CONFIG_NLS_ISO8859_3 is not set
# CONFIG_NLS_ISO8859_4 is not set
# CONFIG_NLS_ISO8859_5 is not set
# CONFIG_NLS_ISO8859_6 is not set
# CONFIG_NLS_ISO8859_7 is not set
# CONFIG_NLS_ISO8859_9 is not set
# CONFIG_NLS_ISO8859_13 is not set
# CONFIG_NLS_ISO8859_14 is not set
# CONFIG_NLS_ISO8859_15 is not set
# CONFIG_NLS_KOI8_R is not set
# CONFIG_NLS_KOI8_U is not set
CONFIG_NLS_UTF8=y
#
# Library routines
#
CONFIG_CRC_CCITT=y
CONFIG_CRC32=y
# CONFIG_LIBCRC32C is not set
CONFIG_ZLIB_INFLATE=y
CONFIG_ZLIB_DEFLATE=y
#
# Profiling support
#
# CONFIG_PROFILING is not set
#
# Kernel hacking
#
# CONFIG_DEBUG_KERNEL is not set
CONFIG_DEBUG_PREEMPT=y
CONFIG_BOOTX_TEXT=y
#
# Security options
#
# CONFIG_KEYS is not set
# CONFIG_SECURITY is not set
#
# Cryptographic options
#
# CONFIG_CRYPTO is not set
#
# Hardware crypto devices
#
^ permalink raw reply
* Re: new binutils breaks "tlbie" instruction in kernel?
From: Segher Boessenkool @ 2005-02-04 0:55 UTC (permalink / raw)
To: Benjamin Herrenschmidt; +Cc: Chris Friesen, linuxppc-dev list
In-Reply-To: <1107407613.2363.9.camel@gaston>
> On Wed, 2005-02-02 at 12:39 -0600, Chris Friesen wrote:
>> The "tlbie" instruction has a bit which may be set to indicate regular
>> or large page size. This used to be set via an optional second
>> parameter.
>>
>> Apparently some time between binutils versions 2.15.91.0.2 and
>> 2.15.92.0.2 a change went in to make this second parameter mandatory,
>> which breaks the kernel ppc code.
> Wasn't it fixed ?
>
> Ben.
My patch indeed was backed out. If ever I find the time I'll get it
back
in though, but without affecting tlbie (the syntax for tlbie is
different
when you look at the PEM or at the Books; the patch was supposed to
handle
a problem in the cmpXX insns only). Someone should get the PEM and the
architecture books back in line ;-)
Segher
^ permalink raw reply
* Re: [PATCH] PPC/PPC64: Introduce CPU_HAS_FEATURE() macro
From: Arnd Bergmann @ 2005-02-04 12:36 UTC (permalink / raw)
To: linuxppc64-dev; +Cc: akpm, trini, linux-kernel, linuxppc-dev, paulus, hpa
In-Reply-To: <20050204072254.GA17565@austin.ibm.com>
[-- Attachment #1: Type: text/plain, Size: 2368 bytes --]
On Freedag 04 Februar 2005 08:22, Olof Johansson wrote:
> It's getting pretty old to have see and type cur_cpu_spec->cpu_features
> & CPU_FTR_<feature>, when a shorter and less TLA-ridden macro is more
> readable.
>
> This also takes care of the differences between PPC and PPC64 cpu
> features for the common code; most places in PPC could be replaced with
> the macro as well.
I have a somewhat similar patch that does the same to the
systemcfg->platform checks. I'm not sure if we should use the same inline
function for both checks, but I do think that they should be used in a
similar way, e.g. CPU_HAS_FEATURE(x) and PLATFORM_HAS_FEATURE(x).
My implementation of the platform checks tries to be extra clever by turning
runtime checks into compile time checks if possible. This reduces code size
and in some cases execution speed. It can also be used to replace compile
time checks, i.e. it allows us to write
static inline unsigned int readl(const volatile void __iomem *addr)
{
if (platform_is(PLATFORM_PPC_ISERIES))
return iSeries_readl(addr);
if (platform_possible(PLATFORM_PPC_PSERIES))
return eeh_readl(addr);
return in_le32();
}
which will always result in the shortest code for any combination of
CONFIG_PPC_ISERIES, CONFIG_PPC_PSERIES and the other platforms.
The required code for this is roughly
enum {
PPC64_PLATFORM_POSSIBLE =
#ifdef CONFIG_PPC_ISERIES
PLATFORM_ISERIES |
#endif
#ifdef CONFIG_PPC_PSERIES
PLATFORM_PSERIES |
#endif
#ifdef CONFIG_PPC_PSERIES
PLATFORM_PSERIES_LPAR |
#endif
#ifdef CONFIG_PPC_POWERMAC
PLATFORM_POWERMAC |
#endif
#ifdef CONFIG_PPC_MAPLE
PLATFORM_MAPLE |
#endif
0,
PPC64_PLATFORM_ONLY =
#ifdef CONFIG_PPC_ISERIES
PLATFORM_ISERIES &
#endif
#ifdef CONFIG_PPC_PSERIES
PLATFORM_PSERIES &
#endif
#ifdef CONFIG_PPC_POWERMAC
PLATFORM_POWERMAC &
#endif
#ifdef CONFIG_PPC_MAPLE
PLATFORM_MAPLE &
#endif
-1ul,
};
static inline platform_is(unsigned long platform)
{
return ((PPC64_PLATFORM_ONLY & platform)
|| (PPC64_PLATFORM_POSSIBLE & platform & systemcfg->platform));
}
static inline platform_possible(unsigned long platform)
{
reutrn !!(PPC64_PLATFORM_POSSIBLE & platform);
}
The same stuff is obviously possible for cur_cpu_spec->cpu_features as well.
Do you think that it will help there?
Arnd <><
[-- Attachment #2: signature --]
[-- Type: application/pgp-signature, Size: 189 bytes --]
^ permalink raw reply
* Re: Linux on Virtex-II Pro P20 development board...
From: Jakob Viketoft @ 2005-02-04 11:40 UTC (permalink / raw)
To: Andrei Konovalov; +Cc: Linux PPC Embedded list
In-Reply-To: <420232BF.9070302@ru.mvista.com>
Andrei Konovalov wrote:
> Jakob,
>
> Why are you using 2.6.8.1 which is rather old and doesn't have
> any Virtex-II Pro support?
Well, I had the notion of not being right on the bleeding edge, but then
it would probably make more sense to use the 2.4.x kernel. I've updated
now anyway... :)
Thanks for all the info! I'm just about to download the bitstream and
the kernel to the board and I'll see where it goes from there...
Oh, and I seem to have failed to mention that it's a Memec Design 2VPxx
FF1152 board, it almost looks like it's more supported in the 2.4.x
kernel, am I right?
Cheers,
/Jakob
> Virtex-II Pro support in 2.6 is very minimalistic at the moment:
> http://linux.bkbits.net:8080/linux-2.5/cset@1.1938.115.48
>
> Nevertheless, it should be enough to bring up your board
> with 16x50 UART and ramdisk (I mean adding your platform using
> ML300 as a template).
>
> This stuff works for me in the following configuration:
> board:
> Xilinx ML300
> bitstream:
> http://www.xilinx.com/ise/embedded/edk6_2docs/edk_62i_examples.htm
> Example #7
> kernel:
> 2.6.11-rc1
> .config:
> attached
>
> You could also need the TLB bug fix mentioned at:
>
> http://support.xilinx.com/xlnx/xil_ans_display.jsp?iLanguageID=1&iCountryID=1&getPagePath=14052
>
> (look for "Solution 12")
> and
> http://ppc.bkbits.net:8080/linuxppc-2.4/cset@1.1282
>
>
> Best regards,
> Andrei
>
>
> Jakob Viketoft wrote:
>
>> Hello everyone!
>>
>> I've just started trying to get the Linux (2.6.8.1) kernel to run on
>> the above mentioned board (or, specifically, a PPC405 on the Xilinx
>> Virtex-II Pro 2VP20). I just figured I'd ask around and see if any of
>> you have got this board running and then what kernel modifications
>> where necessary and IP blocks (from the development kit) you've used.
>> At the moment I'm primarily interested in the PPC and a serial port,
>> later on the TP port will be useful as well.
>>
>> I've previously ported the 2.4.x kernel to Cirrus Logic EP7312 (ARM)
>> chip, but that was some years ago and with the new kernel, chip and
>> structure of the PPC arch of the kernel I'm a bit disoriented. Any
>> help would be greatly appreciated!
>>
>> Regards,
>> /Jakob
>> _______________________________________________
>> Linuxppc-embedded mailing list
>> Linuxppc-embedded@ozlabs.org
>> https://ozlabs.org/mailman/listinfo/linuxppc-embedded
>>
>
>
> ------------------------------------------------------------------------
>
> #
> # Automatically generated make config: don't edit
> # Linux kernel version: 2.6.11-rc1
> # Thu Feb 3 16:14:59 2005
> #
> CONFIG_MMU=y
> CONFIG_GENERIC_HARDIRQS=y
> CONFIG_RWSEM_XCHGADD_ALGORITHM=y
> CONFIG_GENERIC_CALIBRATE_DELAY=y
> CONFIG_HAVE_DEC_LOCK=y
> CONFIG_PPC=y
> CONFIG_PPC32=y
> CONFIG_GENERIC_NVRAM=y
>
> #
> # Code maturity level options
> #
> CONFIG_EXPERIMENTAL=y
> CONFIG_CLEAN_COMPILE=y
> CONFIG_BROKEN_ON_SMP=y
>
> #
> # General setup
> #
> CONFIG_LOCALVERSION="ank"
> CONFIG_SWAP=y
> CONFIG_SYSVIPC=y
> # CONFIG_POSIX_MQUEUE is not set
> CONFIG_BSD_PROCESS_ACCT=y
> # CONFIG_BSD_PROCESS_ACCT_V3 is not set
> CONFIG_SYSCTL=y
> # CONFIG_AUDIT is not set
> CONFIG_LOG_BUF_SHIFT=14
> CONFIG_HOTPLUG=y
> CONFIG_KOBJECT_UEVENT=y
> # CONFIG_IKCONFIG is not set
> CONFIG_EMBEDDED=y
> CONFIG_KALLSYMS=y
> # CONFIG_KALLSYMS_ALL is not set
> # CONFIG_KALLSYMS_EXTRA_PASS is not set
> CONFIG_FUTEX=y
> CONFIG_EPOLL=y
> # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
> CONFIG_SHMEM=y
> CONFIG_CC_ALIGN_FUNCTIONS=0
> CONFIG_CC_ALIGN_LABELS=0
> CONFIG_CC_ALIGN_LOOPS=0
> CONFIG_CC_ALIGN_JUMPS=0
> # CONFIG_TINY_SHMEM is not set
>
> #
> # Loadable module support
> #
> CONFIG_MODULES=y
> CONFIG_MODULE_UNLOAD=y
> # CONFIG_MODULE_FORCE_UNLOAD is not set
> CONFIG_OBSOLETE_MODPARM=y
> CONFIG_MODVERSIONS=y
> # CONFIG_MODULE_SRCVERSION_ALL is not set
> CONFIG_KMOD=y
>
> #
> # Processor
> #
> # CONFIG_6xx is not set
> CONFIG_40x=y
> # CONFIG_44x is not set
> # CONFIG_POWER3 is not set
> # CONFIG_POWER4 is not set
> # CONFIG_8xx is not set
> # CONFIG_E500 is not set
> # CONFIG_MATH_EMULATION is not set
> # CONFIG_CPU_FREQ is not set
> CONFIG_4xx=y
>
> #
> # IBM 4xx options
> #
> # CONFIG_ASH is not set
> # CONFIG_BUBINGA is not set
> # CONFIG_CPCI405 is not set
> # CONFIG_EP405 is not set
> # CONFIG_OAK is not set
> # CONFIG_REDWOOD_5 is not set
> # CONFIG_REDWOOD_6 is not set
> # CONFIG_SYCAMORE is not set
> # CONFIG_WALNUT is not set
> CONFIG_XILINX_ML300=y
> CONFIG_IBM405_ERR77=y
> CONFIG_IBM405_ERR51=y
> CONFIG_XILINX_OCP=y
> CONFIG_VIRTEX_II_PRO=y
> CONFIG_EMBEDDEDBOOT=y
> # CONFIG_PPC4xx_DMA is not set
> CONFIG_PPC_GEN550=y
> # CONFIG_PM is not set
> CONFIG_UART0_TTYS0=y
> # CONFIG_UART0_TTYS1 is not set
> CONFIG_NOT_COHERENT_CACHE=y
>
> #
> # Platform options
> #
> # CONFIG_PC_KEYBOARD is not set
> # CONFIG_SMP is not set
> # CONFIG_PREEMPT is not set
> # CONFIG_HIGHMEM is not set
> CONFIG_BINFMT_ELF=y
> # CONFIG_BINFMT_MISC is not set
> CONFIG_CMDLINE_BOOL=y
> CONFIG_CMDLINE="console=ttyS0,9600 ip=off root=/dev/ram"
>
> #
> # Bus options
> #
> # CONFIG_PCI is not set
> # CONFIG_PCI_DOMAINS is not set
>
> #
> # PCCARD (PCMCIA/CardBus) support
> #
> # CONFIG_PCCARD is not set
>
> #
> # PC-card bridges
> #
>
> #
> # Advanced setup
> #
> CONFIG_ADVANCED_OPTIONS=y
> CONFIG_HIGHMEM_START=0xfe000000
> # CONFIG_LOWMEM_SIZE_BOOL is not set
> CONFIG_LOWMEM_SIZE=0x30000000
> # CONFIG_KERNEL_START_BOOL is not set
> CONFIG_KERNEL_START=0xc0000000
> # CONFIG_TASK_SIZE_BOOL is not set
> CONFIG_TASK_SIZE=0x80000000
> # CONFIG_CONSISTENT_START_BOOL is not set
> CONFIG_CONSISTENT_START=0xff100000
> # CONFIG_CONSISTENT_SIZE_BOOL is not set
> CONFIG_CONSISTENT_SIZE=0x00200000
> # CONFIG_BOOT_LOAD_BOOL is not set
> CONFIG_BOOT_LOAD=0x00400000
>
> #
> # Device Drivers
> #
>
> #
> # Generic Driver Options
> #
> CONFIG_STANDALONE=y
> CONFIG_PREVENT_FIRMWARE_BUILD=y
> # CONFIG_FW_LOADER is not set
> # CONFIG_DEBUG_DRIVER is not set
>
> #
> # Memory Technology Devices (MTD)
> #
> # CONFIG_MTD is not set
>
> #
> # Parallel port support
> #
> # CONFIG_PARPORT is not set
>
> #
> # Plug and Play support
> #
>
> #
> # Block devices
> #
> # CONFIG_BLK_DEV_FD is not set
> # CONFIG_BLK_DEV_COW_COMMON is not set
> CONFIG_BLK_DEV_LOOP=y
> # CONFIG_BLK_DEV_CRYPTOLOOP is not set
> # CONFIG_BLK_DEV_NBD is not set
> CONFIG_BLK_DEV_RAM=y
> CONFIG_BLK_DEV_RAM_COUNT=16
> CONFIG_BLK_DEV_RAM_SIZE=8192
> CONFIG_BLK_DEV_INITRD=y
> CONFIG_INITRAMFS_SOURCE=""
> # CONFIG_LBD is not set
> # CONFIG_CDROM_PKTCDVD is not set
>
> #
> # IO Schedulers
> #
> CONFIG_IOSCHED_NOOP=y
> CONFIG_IOSCHED_AS=y
> CONFIG_IOSCHED_DEADLINE=y
> CONFIG_IOSCHED_CFQ=y
> # CONFIG_ATA_OVER_ETH is not set
>
> #
> # ATA/ATAPI/MFM/RLL support
> #
> # CONFIG_IDE is not set
>
> #
> # SCSI device support
> #
> # CONFIG_SCSI is not set
>
> #
> # Multi-device support (RAID and LVM)
> #
> # CONFIG_MD is not set
>
> #
> # Fusion MPT device support
> #
>
> #
> # IEEE 1394 (FireWire) support
> #
>
> #
> # I2O device support
> #
>
> #
> # Macintosh device drivers
> #
>
> #
> # Networking support
> #
> CONFIG_NET=y
>
> #
> # Networking options
> #
> CONFIG_PACKET=y
> CONFIG_PACKET_MMAP=y
> CONFIG_NETLINK_DEV=y
> CONFIG_UNIX=y
> # CONFIG_NET_KEY is not set
> CONFIG_INET=y
> CONFIG_IP_MULTICAST=y
> CONFIG_IP_ADVANCED_ROUTER=y
> CONFIG_IP_MULTIPLE_TABLES=y
> CONFIG_IP_ROUTE_MULTIPATH=y
> CONFIG_IP_ROUTE_VERBOSE=y
> # CONFIG_IP_PNP is not set
> # CONFIG_NET_IPIP is not set
> # CONFIG_NET_IPGRE is not set
> # CONFIG_IP_MROUTE is not set
> # CONFIG_ARPD is not set
> # CONFIG_SYN_COOKIES is not set
> # CONFIG_INET_AH is not set
> # CONFIG_INET_ESP is not set
> # CONFIG_INET_IPCOMP is not set
> CONFIG_INET_TUNNEL=y
> CONFIG_IP_TCPDIAG=y
> # CONFIG_IP_TCPDIAG_IPV6 is not set
> # CONFIG_IPV6 is not set
> # CONFIG_NETFILTER is not set
> CONFIG_XFRM=y
> # CONFIG_XFRM_USER is not set
>
> #
> # SCTP Configuration (EXPERIMENTAL)
> #
> # CONFIG_IP_SCTP is not set
> # CONFIG_ATM is not set
> # CONFIG_BRIDGE is not set
> # CONFIG_VLAN_8021Q is not set
> # CONFIG_DECNET is not set
> # CONFIG_LLC2 is not set
> # CONFIG_IPX is not set
> # CONFIG_ATALK is not set
> # CONFIG_X25 is not set
> # CONFIG_LAPB is not set
> # CONFIG_NET_DIVERT is not set
> # CONFIG_ECONET is not set
> # CONFIG_WAN_ROUTER is not set
>
> #
> # QoS and/or fair queueing
> #
> CONFIG_NET_SCHED=y
> CONFIG_NET_SCH_CLK_JIFFIES=y
> # CONFIG_NET_SCH_CLK_GETTIMEOFDAY is not set
> # CONFIG_NET_SCH_CLK_CPU is not set
> CONFIG_NET_SCH_CBQ=m
> CONFIG_NET_SCH_HTB=m
> # CONFIG_NET_SCH_HFSC is not set
> CONFIG_NET_SCH_PRIO=m
> CONFIG_NET_SCH_RED=m
> CONFIG_NET_SCH_SFQ=m
> CONFIG_NET_SCH_TEQL=m
> CONFIG_NET_SCH_TBF=m
> CONFIG_NET_SCH_GRED=m
> CONFIG_NET_SCH_DSMARK=m
> # CONFIG_NET_SCH_NETEM is not set
> CONFIG_NET_SCH_INGRESS=m
> CONFIG_NET_QOS=y
> CONFIG_NET_ESTIMATOR=y
> CONFIG_NET_CLS=y
> CONFIG_NET_CLS_TCINDEX=m
> CONFIG_NET_CLS_ROUTE4=m
> CONFIG_NET_CLS_ROUTE=y
> CONFIG_NET_CLS_FW=m
> CONFIG_NET_CLS_U32=m
> # CONFIG_CLS_U32_PERF is not set
> # CONFIG_NET_CLS_IND is not set
> CONFIG_NET_CLS_RSVP=m
> CONFIG_NET_CLS_RSVP6=m
> # CONFIG_NET_CLS_ACT is not set
> CONFIG_NET_CLS_POLICE=y
>
> #
> # Network testing
> #
> # CONFIG_NET_PKTGEN is not set
> # CONFIG_NETPOLL is not set
> # CONFIG_NET_POLL_CONTROLLER is not set
> # CONFIG_HAMRADIO is not set
> # CONFIG_IRDA is not set
> # CONFIG_BT is not set
> CONFIG_NETDEVICES=y
> # CONFIG_DUMMY is not set
> # CONFIG_BONDING is not set
> # CONFIG_EQUALIZER is not set
> # CONFIG_TUN is not set
> # CONFIG_ETHERTAP is not set
>
> #
> # Ethernet (10 or 100Mbit)
> #
> # CONFIG_NET_ETHERNET is not set
> # CONFIG_IBM_EMAC is not set
>
> #
> # Ethernet (1000 Mbit)
> #
>
> #
> # Ethernet (10000 Mbit)
> #
>
> #
> # Token Ring devices
> #
>
> #
> # Wireless LAN (non-hamradio)
> #
> # CONFIG_NET_RADIO is not set
>
> #
> # Wan interfaces
> #
> # CONFIG_WAN is not set
> # CONFIG_PPP is not set
> # CONFIG_SLIP is not set
> # CONFIG_SHAPER is not set
> # CONFIG_NETCONSOLE is not set
>
> #
> # ISDN subsystem
> #
> # CONFIG_ISDN is not set
>
> #
> # Telephony Support
> #
> # CONFIG_PHONE is not set
>
> #
> # Input device support
> #
> # CONFIG_INPUT is not set
>
> #
> # Userland interfaces
> #
>
> #
> # Input I/O drivers
> #
> # CONFIG_GAMEPORT is not set
> CONFIG_SOUND_GAMEPORT=y
> # CONFIG_SERIO is not set
> # CONFIG_SERIO_I8042 is not set
>
> #
> # Input Device Drivers
> #
>
> #
> # Character devices
> #
> # CONFIG_VT is not set
> # CONFIG_SERIAL_NONSTANDARD is not set
>
> #
> # Serial drivers
> #
> CONFIG_SERIAL_8250=y
> CONFIG_SERIAL_8250_CONSOLE=y
> CONFIG_SERIAL_8250_NR_UARTS=4
> # CONFIG_SERIAL_8250_EXTENDED is not set
>
> #
> # Non-8250 serial port support
> #
> CONFIG_SERIAL_CORE=y
> CONFIG_SERIAL_CORE_CONSOLE=y
> CONFIG_UNIX98_PTYS=y
> # CONFIG_LEGACY_PTYS is not set
>
> #
> # IPMI
> #
> CONFIG_IPMI_HANDLER=m
> # CONFIG_IPMI_PANIC_EVENT is not set
> CONFIG_IPMI_DEVICE_INTERFACE=m
> # CONFIG_IPMI_SI is not set
> CONFIG_IPMI_WATCHDOG=m
> # CONFIG_IPMI_POWEROFF is not set
>
> #
> # Watchdog Cards
> #
> # CONFIG_WATCHDOG is not set
> # CONFIG_NVRAM is not set
> # CONFIG_GEN_RTC is not set
> # CONFIG_DTLK is not set
> # CONFIG_R3964 is not set
>
> #
> # Ftape, the floppy tape device driver
> #
> # CONFIG_AGP is not set
> # CONFIG_DRM is not set
> # CONFIG_RAW_DRIVER is not set
>
> #
> # I2C support
> #
> # CONFIG_I2C is not set
>
> #
> # Dallas's 1-wire bus
> #
> # CONFIG_W1 is not set
>
> #
> # Misc devices
> #
>
> #
> # Multimedia devices
> #
> # CONFIG_VIDEO_DEV is not set
>
> #
> # Digital Video Broadcasting Devices
> #
> # CONFIG_DVB is not set
>
> #
> # Graphics support
> #
> # CONFIG_FB is not set
> # CONFIG_BACKLIGHT_LCD_SUPPORT is not set
>
> #
> # Sound
> #
> # CONFIG_SOUND is not set
>
> #
> # USB support
> #
> # CONFIG_USB_ARCH_HAS_HCD is not set
> # CONFIG_USB_ARCH_HAS_OHCI is not set
>
> #
> # NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' may also be needed; see USB_STORAGE Help for more information
> #
>
> #
> # USB Gadget Support
> #
> # CONFIG_USB_GADGET is not set
>
> #
> # MMC/SD Card support
> #
> # CONFIG_MMC is not set
>
> #
> # InfiniBand support
> #
> # CONFIG_INFINIBAND is not set
>
> #
> # File systems
> #
> CONFIG_EXT2_FS=y
> # CONFIG_EXT2_FS_XATTR is not set
> # CONFIG_EXT3_FS is not set
> # CONFIG_JBD is not set
> # CONFIG_REISERFS_FS is not set
> # CONFIG_JFS_FS is not set
> # CONFIG_XFS_FS is not set
> # CONFIG_MINIX_FS is not set
> # CONFIG_ROMFS_FS is not set
> # CONFIG_QUOTA is not set
> CONFIG_DNOTIFY=y
> # CONFIG_AUTOFS_FS is not set
> # CONFIG_AUTOFS4_FS is not set
>
> #
> # CD-ROM/DVD Filesystems
> #
> # CONFIG_ISO9660_FS is not set
> # CONFIG_UDF_FS is not set
>
> #
> # DOS/FAT/NT Filesystems
> #
> CONFIG_FAT_FS=y
> CONFIG_MSDOS_FS=y
> CONFIG_VFAT_FS=y
> CONFIG_FAT_DEFAULT_CODEPAGE=437
> CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1"
> # CONFIG_NTFS_FS is not set
>
> #
> # Pseudo filesystems
> #
> CONFIG_PROC_FS=y
> CONFIG_PROC_KCORE=y
> CONFIG_SYSFS=y
> # CONFIG_DEVFS_FS is not set
> # CONFIG_DEVPTS_FS_XATTR is not set
> CONFIG_TMPFS=y
> # CONFIG_TMPFS_XATTR is not set
> # CONFIG_HUGETLB_PAGE is not set
> CONFIG_RAMFS=y
>
> #
> # Miscellaneous filesystems
> #
> # CONFIG_ADFS_FS is not set
> # CONFIG_AFFS_FS is not set
> # CONFIG_HFS_FS is not set
> # CONFIG_HFSPLUS_FS is not set
> # CONFIG_BEFS_FS is not set
> # CONFIG_BFS_FS is not set
> # CONFIG_EFS_FS is not set
> # CONFIG_CRAMFS is not set
> # CONFIG_VXFS_FS is not set
> # CONFIG_HPFS_FS is not set
> # CONFIG_QNX4FS_FS is not set
> # CONFIG_SYSV_FS is not set
> # CONFIG_UFS_FS is not set
>
> #
> # Network File Systems
> #
> # CONFIG_NFS_FS is not set
> # CONFIG_NFSD is not set
> # CONFIG_EXPORTFS is not set
> # CONFIG_SMB_FS is not set
> # CONFIG_CIFS is not set
> # CONFIG_NCP_FS is not set
> # CONFIG_CODA_FS is not set
> # CONFIG_AFS_FS is not set
>
> #
> # Partition Types
> #
> # CONFIG_PARTITION_ADVANCED is not set
> CONFIG_MSDOS_PARTITION=y
>
> #
> # Native Language Support
> #
> CONFIG_NLS=y
> CONFIG_NLS_DEFAULT="iso8859-1"
> # CONFIG_NLS_CODEPAGE_437 is not set
> # CONFIG_NLS_CODEPAGE_737 is not set
> # CONFIG_NLS_CODEPAGE_775 is not set
> # CONFIG_NLS_CODEPAGE_850 is not set
> # CONFIG_NLS_CODEPAGE_852 is not set
> # CONFIG_NLS_CODEPAGE_855 is not set
> # CONFIG_NLS_CODEPAGE_857 is not set
> # CONFIG_NLS_CODEPAGE_860 is not set
> # CONFIG_NLS_CODEPAGE_861 is not set
> # CONFIG_NLS_CODEPAGE_862 is not set
> # CONFIG_NLS_CODEPAGE_863 is not set
> # CONFIG_NLS_CODEPAGE_864 is not set
> # CONFIG_NLS_CODEPAGE_865 is not set
> # CONFIG_NLS_CODEPAGE_866 is not set
> # CONFIG_NLS_CODEPAGE_869 is not set
> # CONFIG_NLS_CODEPAGE_936 is not set
> # CONFIG_NLS_CODEPAGE_950 is not set
> # CONFIG_NLS_CODEPAGE_932 is not set
> # CONFIG_NLS_CODEPAGE_949 is not set
> # CONFIG_NLS_CODEPAGE_874 is not set
> # CONFIG_NLS_ISO8859_8 is not set
> # CONFIG_NLS_CODEPAGE_1250 is not set
> # CONFIG_NLS_CODEPAGE_1251 is not set
> # CONFIG_NLS_ASCII is not set
> CONFIG_NLS_ISO8859_1=y
> # CONFIG_NLS_ISO8859_2 is not set
> # CONFIG_NLS_ISO8859_3 is not set
> # CONFIG_NLS_ISO8859_4 is not set
> # CONFIG_NLS_ISO8859_5 is not set
> # CONFIG_NLS_ISO8859_6 is not set
> # CONFIG_NLS_ISO8859_7 is not set
> # CONFIG_NLS_ISO8859_9 is not set
> # CONFIG_NLS_ISO8859_13 is not set
> # CONFIG_NLS_ISO8859_14 is not set
> # CONFIG_NLS_ISO8859_15 is not set
> # CONFIG_NLS_KOI8_R is not set
> # CONFIG_NLS_KOI8_U is not set
> # CONFIG_NLS_UTF8 is not set
>
> #
> # IBM 40x options
> #
>
> #
> # Library routines
> #
> CONFIG_CRC_CCITT=y
> CONFIG_CRC32=y
> # CONFIG_LIBCRC32C is not set
>
> #
> # Profiling support
> #
> # CONFIG_PROFILING is not set
>
> #
> # Kernel hacking
> #
> CONFIG_DEBUG_KERNEL=y
> # CONFIG_MAGIC_SYSRQ is not set
> # CONFIG_SCHEDSTATS is not set
> # CONFIG_DEBUG_SLAB is not set
> # CONFIG_DEBUG_SPINLOCK is not set
> # CONFIG_DEBUG_SPINLOCK_SLEEP is not set
> # CONFIG_DEBUG_KOBJECT is not set
> # CONFIG_DEBUG_INFO is not set
> # CONFIG_DEBUG_FS is not set
> # CONFIG_KGDB is not set
> # CONFIG_XMON is not set
> CONFIG_BDI_SWITCH=y
> # CONFIG_SERIAL_TEXT_DEBUG is not set
> CONFIG_PPC_OCP=y
>
> #
> # Security options
> #
> # CONFIG_KEYS is not set
> # CONFIG_SECURITY is not set
>
> #
> # Cryptographic options
> #
> # CONFIG_CRYPTO is not set
>
> #
> # Hardware crypto devices
> #
^ permalink raw reply
* Re: Edge Interrupts (Virtex-II Pro)
From: Andrei Konovalov @ 2005-02-04 11:31 UTC (permalink / raw)
To: Joshua Lamorie; +Cc: linuxppc-embedded
In-Reply-To: <4202E286.1010206@xiphos.ca>
Joshua Lamorie wrote:
> Gidday there,
>
> Is there a cleaner way to specify that an interrupt is edge triggered
> other than directly accessing irq_desc_t irq_desc []?
In case of ML300 (which is the only Virtex-II Pro board in the linux-2.5
tree so far) this is done in platforms/xilinx_ml300.c:ml300_init_irq()
based on XPAR_INTC_0_KIND_OF_INTR value defined in the xparameters.h:
for (i = 0; i < NR_IRQS; i++) {
if (XPAR_INTC_0_KIND_OF_INTR & (0x80000000 >> i))
irq_desc[i].status &= ~IRQ_LEVEL;
else
irq_desc[i].status |= IRQ_LEVEL;
}
As this code is not board specific at all,
I would move it to arch/ppc/syslib/xilinx_pic.c:ppc4xx_pic_init().
Does it sound reasonable (I'll prepare the patch this weekend then)?
Hmm...
Looks like I've forgotten to change the irq numbering here...
Must be
if (XPAR_INTC_0_KIND_OF_INTR & (0x00000001 << i))
I think...
Will check.
Thanks,
Andrei
P.S.
Just in case you use 2.4.
2.4 kernel is almost the same to 2.6 in this sense.
But the irq numbering is different.
> In my module, when I request_irq, if it succeeds I do the following.
>
> irq_desc[iIRQ].status &= ~(IRQ_LEVEL);
>
> Is there a better way?
>
> Thanks in advance
>
> Joshua
>
^ permalink raw reply
* Re: new binutils breaks "tlbie" instruction in kernel?
From: David Woodhouse @ 2005-02-04 10:11 UTC (permalink / raw)
To: Chris Friesen; +Cc: linuxppc-dev list
In-Reply-To: <42023D23.6020406@nortel.com>
On Thu, 2005-02-03 at 09:02 -0600, Chris Friesen wrote:
> > Wasn't it fixed ?
>
> Not sure what "it" you mean. The current kernel code does not have the
> third parm. I'm not sure about the latest binutils, but 2.15.92.0.2 is
> what a vendor wants to build on.
Binutils was changed in early September last year to require the extra
argument. We objected, and it was fixed again about a month later to
_not_ require the argument. If you're using 2.15.92.0.2, then apply this
patch to it:
2004-10-09 Alan Modra <amodra@bigpond.net.au>
* ppc-opc.c: Revert 2004-09-09 change.
--- opcodes/ppc-opc.c 7 Oct 2004 15:34:08 -0000 1.76
+++ opcodes/ppc-opc.c 9 Oct 2004 01:21:03 -0000 1.77
@@ -300,7 +300,7 @@ const struct powerpc_operand powerpc_ope
/* The L field in a D or X form instruction. */
#define L FXM4 + 1
- { 1, 21, 0, 0, 0 },
+ { 1, 21, 0, 0, PPC_OPERAND_OPTIONAL },
/* The LEV field in a POWER SC form instruction. */
#define LEV L + 1
--
dwmw2
^ permalink raw reply
* Re: uart.c: avoid changing parameter RAM on-the-fly for the console
From: Steffen Rumler @ 2005-02-04 8:55 UTC (permalink / raw)
To: Dan Malek; +Cc: linuxppc
In-Reply-To: <754ecc31c2497b32a0c3f6df5ce21881@embeddededge.com>
> would you please read Documentation/CodingStyle and
> try sending the patch again?
What in detail is wrong concerning the coding style ?
Note, this is a serious problem for us.
> Although it doesn't make too much difference in this case,
> 2.4.20 is pretty old and it helps to get patches against
> the latest kernels.
2.4.20 is the kernel we are actually using.
> I suspect there is something else amiss, but I'll take a
> look at it. What is the speed of the processor and the
> baud rate?
CPU: MPC859T
CPU clock: 133Mhz
Baud Rate: 19200
Steffen
--
--------------------------------------------------------------
Steffen Rumler
ICN CP D NT SW 3
Siemens AG
Hofmannstr. 51 Email: Steffen.Rumler@siemens.com
D-81359 Munich Phone: +49 89 722-44061
Germany Fax : +49 89 722-36703
--------------------------------------------------------------
^ permalink raw reply
* Re: [PATCH] PPC/PPC64: Introduce CPU_HAS_FEATURE() macro
From: Pekka Enberg @ 2005-02-04 8:17 UTC (permalink / raw)
To: Olof Johansson
Cc: akpm, trini, linux-kernel, linuxppc-dev, penberg, paulus, hpa,
linuxppc64-dev
In-Reply-To: <20050204072254.GA17565@austin.ibm.com>
Hi,
On Fri, 4 Feb 2005 01:22:54 -0600, Olof Johansson <olof@austin.ibm.com> wrote:
> +#define CPU_HAS_FEATURE(x) (cur_cpu_spec->cpu_features & CPU_FTR_##x)
> +
Please drop the CPU_FTR_##x macro magic as it makes grepping more
complicated. If the enum names are too long, just do s/CPU_FTR_/CPU_/g
or something similar. Also, could you please make this a static inline
function?
Pekka
^ permalink raw reply
* [PATCH] PPC/PPC64: Introduce CPU_HAS_FEATURE() macro
From: Olof Johansson @ 2005-02-04 7:22 UTC (permalink / raw)
To: linuxppc64-dev, linuxppc-dev, linux-kernel; +Cc: akpm, trini, paulus, hpa
Hi,
It's getting pretty old to have see and type cur_cpu_spec->cpu_features
& CPU_FTR_<feature>, when a shorter and less TLA-ridden macro is more
readable.
This also takes care of the differences between PPC and PPC64 cpu
features for the common code; most places in PPC could be replaced with
the macro as well.
Signed-off-by: Olof Johansson <olof@austin.ibm.com>
---
linux-2.5-olof/arch/ppc/kernel/ppc_htab.c | 8 +++---
linux-2.5-olof/arch/ppc/kernel/setup.c | 4 +--
linux-2.5-olof/arch/ppc/kernel/temp.c | 2 -
linux-2.5-olof/arch/ppc/mm/mmu_decl.h | 2 -
linux-2.5-olof/arch/ppc/mm/ppc_mmu.c | 4 +--
linux-2.5-olof/arch/ppc/platforms/pmac_cpufreq.c | 2 -
linux-2.5-olof/arch/ppc/platforms/pmac_setup.c | 2 -
linux-2.5-olof/arch/ppc/platforms/pmac_smp.c | 4 +--
linux-2.5-olof/arch/ppc/platforms/sandpoint.c | 6 ++---
linux-2.5-olof/arch/ppc64/kernel/align.c | 2 -
linux-2.5-olof/arch/ppc64/kernel/iSeries_setup.c | 2 -
linux-2.5-olof/arch/ppc64/kernel/pSeries_lpar.c | 2 -
linux-2.5-olof/arch/ppc64/kernel/process.c | 4 +--
linux-2.5-olof/arch/ppc64/kernel/setup.c | 6 ++---
linux-2.5-olof/arch/ppc64/kernel/smp.c | 2 -
linux-2.5-olof/arch/ppc64/kernel/sysfs.c | 22 +++++++++----------
linux-2.5-olof/arch/ppc64/mm/hash_native.c | 14 ++++++------
linux-2.5-olof/arch/ppc64/mm/hash_utils.c | 2 -
linux-2.5-olof/arch/ppc64/mm/hugetlbpage.c | 2 -
linux-2.5-olof/arch/ppc64/mm/init.c | 10 ++++----
linux-2.5-olof/arch/ppc64/mm/slb.c | 4 +--
linux-2.5-olof/arch/ppc64/mm/stab.c | 2 -
linux-2.5-olof/arch/ppc64/oprofile/op_model_power4.c | 2 -
linux-2.5-olof/arch/ppc64/oprofile/op_model_rs64.c | 2 -
linux-2.5-olof/arch/ppc64/xmon/xmon.c | 8 +++---
linux-2.5-olof/drivers/macintosh/via-pmu.c | 2 -
linux-2.5-olof/drivers/md/raid6altivec.uc | 2 -
linux-2.5-olof/include/asm-ppc/cputable.h | 2 +
linux-2.5-olof/include/asm-ppc64/cacheflush.h | 2 -
linux-2.5-olof/include/asm-ppc64/cputable.h | 2 +
linux-2.5-olof/include/asm-ppc64/mmu_context.h | 4 +--
linux-2.5-olof/include/asm-ppc64/page.h | 2 -
32 files changed, 70 insertions(+), 66 deletions(-)
diff -puN include/asm-ppc64/cputable.h~cpu-has-feature include/asm-ppc64/cputable.h
--- linux-2.5/include/asm-ppc64/cputable.h~cpu-has-feature 2005-02-04 00:33:25.000000000 -0600
+++ linux-2.5-olof/include/asm-ppc64/cputable.h 2005-02-04 00:33:26.000000000 -0600
@@ -66,6 +66,8 @@ struct cpu_spec {
extern struct cpu_spec cpu_specs[];
extern struct cpu_spec *cur_cpu_spec;
+#define CPU_HAS_FEATURE(x) (cur_cpu_spec->cpu_features & CPU_FTR_##x)
+
/* firmware feature bitmask values */
#define FIRMWARE_MAX_FEATURES 63
diff -puN arch/ppc64/kernel/align.c~cpu-has-feature arch/ppc64/kernel/align.c
--- linux-2.5/arch/ppc64/kernel/align.c~cpu-has-feature 2005-02-04 00:33:25.000000000 -0600
+++ linux-2.5-olof/arch/ppc64/kernel/align.c 2005-02-04 00:33:26.000000000 -0600
@@ -238,7 +238,7 @@ fix_alignment(struct pt_regs *regs)
dsisr = regs->dsisr;
- if (cur_cpu_spec->cpu_features & CPU_FTR_NODSISRALIGN) {
+ if (CPU_HAS_FEATURE(NODSISRALIGN)) {
unsigned int real_instr;
if (__get_user(real_instr, (unsigned int __user *)regs->nip))
return 0;
diff -puN arch/ppc64/kernel/iSeries_setup.c~cpu-has-feature arch/ppc64/kernel/iSeries_setup.c
--- linux-2.5/arch/ppc64/kernel/iSeries_setup.c~cpu-has-feature 2005-02-04 00:33:25.000000000 -0600
+++ linux-2.5-olof/arch/ppc64/kernel/iSeries_setup.c 2005-02-04 00:33:26.000000000 -0600
@@ -267,7 +267,7 @@ unsigned long iSeries_process_mainstore_
unsigned long i;
unsigned long mem_blocks = 0;
- if (cur_cpu_spec->cpu_features & CPU_FTR_SLB)
+ if (CPU_HAS_FEATURE(SLB))
mem_blocks = iSeries_process_Regatta_mainstore_vpd(mb_array,
max_entries);
else
diff -puN arch/ppc64/kernel/idle.c~cpu-has-feature arch/ppc64/kernel/idle.c
diff -puN arch/ppc64/kernel/process.c~cpu-has-feature arch/ppc64/kernel/process.c
--- linux-2.5/arch/ppc64/kernel/process.c~cpu-has-feature 2005-02-04 00:33:26.000000000 -0600
+++ linux-2.5-olof/arch/ppc64/kernel/process.c 2005-02-04 00:33:26.000000000 -0600
@@ -388,12 +388,12 @@ copy_thread(int nr, unsigned long clone_
kregs = (struct pt_regs *) sp;
sp -= STACK_FRAME_OVERHEAD;
p->thread.ksp = sp;
- if (cur_cpu_spec->cpu_features & CPU_FTR_SLB) {
+ if (CPU_HAS_FEATURE(SLB)) {
unsigned long sp_vsid = get_kernel_vsid(sp);
sp_vsid <<= SLB_VSID_SHIFT;
sp_vsid |= SLB_VSID_KERNEL;
- if (cur_cpu_spec->cpu_features & CPU_FTR_16M_PAGE)
+ if (CPU_HAS_FEATURE(16M_PAGE))
sp_vsid |= SLB_VSID_L;
p->thread.ksp_vsid = sp_vsid;
diff -puN arch/ppc64/kernel/smp.c~cpu-has-feature arch/ppc64/kernel/smp.c
--- linux-2.5/arch/ppc64/kernel/smp.c~cpu-has-feature 2005-02-04 00:33:26.000000000 -0600
+++ linux-2.5-olof/arch/ppc64/kernel/smp.c 2005-02-04 00:33:26.000000000 -0600
@@ -416,7 +416,7 @@ int __devinit __cpu_up(unsigned int cpu)
paca[cpu].default_decr = tb_ticks_per_jiffy / decr_overclock;
- if (!(cur_cpu_spec->cpu_features & CPU_FTR_SLB)) {
+ if (!CPU_HAS_FEATURE(SLB)) {
void *tmp;
/* maximum of 48 CPUs on machines with a segment table */
diff -puN arch/ppc64/kernel/sysfs.c~cpu-has-feature arch/ppc64/kernel/sysfs.c
--- linux-2.5/arch/ppc64/kernel/sysfs.c~cpu-has-feature 2005-02-04 00:33:26.000000000 -0600
+++ linux-2.5-olof/arch/ppc64/kernel/sysfs.c 2005-02-04 00:33:26.000000000 -0600
@@ -63,7 +63,7 @@ static int __init smt_setup(void)
unsigned int *val;
unsigned int cpu;
- if (!cur_cpu_spec->cpu_features & CPU_FTR_SMT)
+ if (!CPU_HAS_FEATURE(SMT))
return 1;
options = find_path_device("/options");
@@ -86,7 +86,7 @@ static int __init setup_smt_snooze_delay
unsigned int cpu;
int snooze;
- if (!cur_cpu_spec->cpu_features & CPU_FTR_SMT)
+ if (!CPU_HAS_FEATURE(SMT))
return 1;
smt_snooze_cmdline = 1;
@@ -167,7 +167,7 @@ void ppc64_enable_pmcs(void)
* On SMT machines we have to set the run latch in the ctrl register
* in order to make PMC6 spin.
*/
- if (cur_cpu_spec->cpu_features & CPU_FTR_SMT) {
+ if (CPU_HAS_FEATURE(SMT)) {
ctrl = mfspr(CTRLF);
ctrl |= RUNLATCH;
mtspr(CTRLT, ctrl);
@@ -266,7 +266,7 @@ static void register_cpu_online(unsigned
struct sys_device *s = &c->sysdev;
#ifndef CONFIG_PPC_ISERIES
- if (cur_cpu_spec->cpu_features & CPU_FTR_SMT)
+ if (CPU_HAS_FEATURE(SMT))
sysdev_create_file(s, &attr_smt_snooze_delay);
#endif
@@ -275,7 +275,7 @@ static void register_cpu_online(unsigned
sysdev_create_file(s, &attr_mmcr0);
sysdev_create_file(s, &attr_mmcr1);
- if (cur_cpu_spec->cpu_features & CPU_FTR_MMCRA)
+ if (CPU_HAS_FEATURE(MMCRA))
sysdev_create_file(s, &attr_mmcra);
sysdev_create_file(s, &attr_pmc1);
@@ -285,12 +285,12 @@ static void register_cpu_online(unsigned
sysdev_create_file(s, &attr_pmc5);
sysdev_create_file(s, &attr_pmc6);
- if (cur_cpu_spec->cpu_features & CPU_FTR_PMC8) {
+ if (CPU_HAS_FEATURE(PMC8)) {
sysdev_create_file(s, &attr_pmc7);
sysdev_create_file(s, &attr_pmc8);
}
- if (cur_cpu_spec->cpu_features & CPU_FTR_SMT)
+ if (CPU_HAS_FEATURE(SMT))
sysdev_create_file(s, &attr_purr);
}
@@ -303,7 +303,7 @@ static void unregister_cpu_online(unsign
BUG_ON(c->no_control);
#ifndef CONFIG_PPC_ISERIES
- if (cur_cpu_spec->cpu_features & CPU_FTR_SMT)
+ if (CPU_HAS_FEATURE(SMT))
sysdev_remove_file(s, &attr_smt_snooze_delay);
#endif
@@ -312,7 +312,7 @@ static void unregister_cpu_online(unsign
sysdev_remove_file(s, &attr_mmcr0);
sysdev_remove_file(s, &attr_mmcr1);
- if (cur_cpu_spec->cpu_features & CPU_FTR_MMCRA)
+ if (CPU_HAS_FEATURE(MMCRA))
sysdev_remove_file(s, &attr_mmcra);
sysdev_remove_file(s, &attr_pmc1);
@@ -322,12 +322,12 @@ static void unregister_cpu_online(unsign
sysdev_remove_file(s, &attr_pmc5);
sysdev_remove_file(s, &attr_pmc6);
- if (cur_cpu_spec->cpu_features & CPU_FTR_PMC8) {
+ if (CPU_HAS_FEATURE(PMC8)) {
sysdev_remove_file(s, &attr_pmc7);
sysdev_remove_file(s, &attr_pmc8);
}
- if (cur_cpu_spec->cpu_features & CPU_FTR_SMT)
+ if (CPU_HAS_FEATURE(SMT))
sysdev_remove_file(s, &attr_purr);
}
#endif /* CONFIG_HOTPLUG_CPU */
diff -puN arch/ppc64/mm/hash_native.c~cpu-has-feature arch/ppc64/mm/hash_native.c
--- linux-2.5/arch/ppc64/mm/hash_native.c~cpu-has-feature 2005-02-04 00:33:26.000000000 -0600
+++ linux-2.5-olof/arch/ppc64/mm/hash_native.c 2005-02-04 00:33:26.000000000 -0600
@@ -217,10 +217,10 @@ static long native_hpte_updatepp(unsigne
}
/* Ensure it is out of the tlb too */
- if ((cur_cpu_spec->cpu_features & CPU_FTR_TLBIEL) && !large && local) {
+ if (CPU_HAS_FEATURE(TLBIEL) && !large && local) {
tlbiel(va);
} else {
- int lock_tlbie = !(cur_cpu_spec->cpu_features & CPU_FTR_LOCKLESS_TLBIE);
+ int lock_tlbie = !CPU_HAS_FEATURE(LOCKLESS_TLBIE);
if (lock_tlbie)
spin_lock(&native_tlbie_lock);
@@ -245,7 +245,7 @@ static void native_hpte_updateboltedpp(u
unsigned long vsid, va, vpn, flags = 0;
long slot;
HPTE *hptep;
- int lock_tlbie = !(cur_cpu_spec->cpu_features & CPU_FTR_LOCKLESS_TLBIE);
+ int lock_tlbie = !CPU_HAS_FEATURE(LOCKLESS_TLBIE);
vsid = get_kernel_vsid(ea);
va = (vsid << 28) | (ea & 0x0fffffff);
@@ -273,7 +273,7 @@ static void native_hpte_invalidate(unsig
Hpte_dword0 dw0;
unsigned long avpn = va >> 23;
unsigned long flags;
- int lock_tlbie = !(cur_cpu_spec->cpu_features & CPU_FTR_LOCKLESS_TLBIE);
+ int lock_tlbie = !CPU_HAS_FEATURE(LOCKLESS_TLBIE);
if (large)
avpn &= ~0x1UL;
@@ -292,7 +292,7 @@ static void native_hpte_invalidate(unsig
}
/* Invalidate the tlb */
- if ((cur_cpu_spec->cpu_features & CPU_FTR_TLBIEL) && !large && local) {
+ if (CPU_HAS_FEATURE(TLBIEL) && !large && local) {
tlbiel(va);
} else {
if (lock_tlbie)
@@ -360,7 +360,7 @@ static void native_flush_hash_range(unsi
j++;
}
- if ((cur_cpu_spec->cpu_features & CPU_FTR_TLBIEL) && !large && local) {
+ if (CPU_HAS_FEATURE(TLBIEL) && !large && local) {
asm volatile("ptesync":::"memory");
for (i = 0; i < j; i++)
@@ -368,7 +368,7 @@ static void native_flush_hash_range(unsi
asm volatile("ptesync":::"memory");
} else {
- int lock_tlbie = !(cur_cpu_spec->cpu_features & CPU_FTR_LOCKLESS_TLBIE);
+ int lock_tlbie = !CPU_HAS_FEATURE(LOCKLESS_TLBIE);
if (lock_tlbie)
spin_lock(&native_tlbie_lock);
diff -puN arch/ppc64/mm/hash_utils.c~cpu-has-feature arch/ppc64/mm/hash_utils.c
--- linux-2.5/arch/ppc64/mm/hash_utils.c~cpu-has-feature 2005-02-04 00:33:26.000000000 -0600
+++ linux-2.5-olof/arch/ppc64/mm/hash_utils.c 2005-02-04 00:33:26.000000000 -0600
@@ -190,7 +190,7 @@ void __init htab_initialize(void)
* _NOT_ map it to avoid cache paradoxes as it's remapped non
* cacheable later on
*/
- if (cur_cpu_spec->cpu_features & CPU_FTR_16M_PAGE)
+ if (CPU_HAS_FEATURE(16M_PAGE))
use_largepages = 1;
/* create bolted the linear mapping in the hash table */
diff -puN arch/ppc64/mm/hugetlbpage.c~cpu-has-feature arch/ppc64/mm/hugetlbpage.c
--- linux-2.5/arch/ppc64/mm/hugetlbpage.c~cpu-has-feature 2005-02-04 00:33:26.000000000 -0600
+++ linux-2.5-olof/arch/ppc64/mm/hugetlbpage.c 2005-02-04 00:33:26.000000000 -0600
@@ -705,7 +705,7 @@ unsigned long hugetlb_get_unmapped_area(
if (len & ~HPAGE_MASK)
return -EINVAL;
- if (!(cur_cpu_spec->cpu_features & CPU_FTR_16M_PAGE))
+ if (!CPU_HAS_FEATURE(16M_PAGE))
return -EINVAL;
if (test_thread_flag(TIF_32BIT)) {
diff -puN arch/ppc64/mm/init.c~cpu-has-feature arch/ppc64/mm/init.c
--- linux-2.5/arch/ppc64/mm/init.c~cpu-has-feature 2005-02-04 00:33:26.000000000 -0600
+++ linux-2.5-olof/arch/ppc64/mm/init.c 2005-02-04 00:33:26.000000000 -0600
@@ -752,7 +752,7 @@ void __init mem_init(void)
*/
void flush_dcache_page(struct page *page)
{
- if (cur_cpu_spec->cpu_features & CPU_FTR_COHERENT_ICACHE)
+ if (CPU_HAS_FEATURE(COHERENT_ICACHE))
return;
/* avoid an atomic op if possible */
if (test_bit(PG_arch_1, &page->flags))
@@ -763,7 +763,7 @@ void clear_user_page(void *page, unsigne
{
clear_page(page);
- if (cur_cpu_spec->cpu_features & CPU_FTR_COHERENT_ICACHE)
+ if (CPU_HAS_FEATURE(COHERENT_ICACHE))
return;
/*
* We shouldnt have to do this, but some versions of glibc
@@ -796,7 +796,7 @@ void copy_user_page(void *vto, void *vfr
return;
#endif
- if (cur_cpu_spec->cpu_features & CPU_FTR_COHERENT_ICACHE)
+ if (CPU_HAS_FEATURE(COHERENT_ICACHE))
return;
/* avoid an atomic op if possible */
@@ -832,8 +832,8 @@ void update_mmu_cache(struct vm_area_str
unsigned long flags;
/* handle i-cache coherency */
- if (!(cur_cpu_spec->cpu_features & CPU_FTR_COHERENT_ICACHE) &&
- !(cur_cpu_spec->cpu_features & CPU_FTR_NOEXECUTE)) {
+ if (!CPU_HAS_FEATURE(COHERENT_ICACHE) &&
+ !CPU_HAS_FEATURE(NOEXECUTE)) {
unsigned long pfn = pte_pfn(pte);
if (pfn_valid(pfn)) {
struct page *page = pfn_to_page(pfn);
diff -puN arch/ppc64/mm/slb.c~cpu-has-feature arch/ppc64/mm/slb.c
--- linux-2.5/arch/ppc64/mm/slb.c~cpu-has-feature 2005-02-04 00:33:26.000000000 -0600
+++ linux-2.5-olof/arch/ppc64/mm/slb.c 2005-02-04 00:33:26.000000000 -0600
@@ -51,7 +51,7 @@ static void slb_flush_and_rebolt(void)
WARN_ON(!irqs_disabled());
- if (cur_cpu_spec->cpu_features & CPU_FTR_16M_PAGE)
+ if (CPU_HAS_FEATURE(16M_PAGE))
ksp_flags |= SLB_VSID_L;
ksp_esid_data = mk_esid_data(get_paca()->kstack, 2);
@@ -139,7 +139,7 @@ void slb_initialize(void)
unsigned long flags = SLB_VSID_KERNEL;
/* Invalidate the entire SLB (even slot 0) & all the ERATS */
- if (cur_cpu_spec->cpu_features & CPU_FTR_16M_PAGE)
+ if (CPU_HAS_FEATURE(16M_PAGE))
flags |= SLB_VSID_L;
asm volatile("isync":::"memory");
diff -puN arch/ppc64/mm/stab.c~cpu-has-feature arch/ppc64/mm/stab.c
--- linux-2.5/arch/ppc64/mm/stab.c~cpu-has-feature 2005-02-04 00:33:26.000000000 -0600
+++ linux-2.5-olof/arch/ppc64/mm/stab.c 2005-02-04 00:33:26.000000000 -0600
@@ -227,7 +227,7 @@ void stab_initialize(unsigned long stab)
{
unsigned long vsid = get_kernel_vsid(KERNELBASE);
- if (cur_cpu_spec->cpu_features & CPU_FTR_SLB) {
+ if (CPU_HAS_FEATURE(SLB)) {
slb_initialize();
} else {
asm volatile("isync; slbia; isync":::"memory");
diff -puN arch/ppc64/oprofile/op_model_power4.c~cpu-has-feature arch/ppc64/oprofile/op_model_power4.c
--- linux-2.5/arch/ppc64/oprofile/op_model_power4.c~cpu-has-feature 2005-02-04 00:33:26.000000000 -0600
+++ linux-2.5-olof/arch/ppc64/oprofile/op_model_power4.c 2005-02-04 00:33:26.000000000 -0600
@@ -54,7 +54,7 @@ static void power4_reg_setup(struct op_c
*
* It has been verified to work on POWER5 so we enable it there.
*/
- if (cur_cpu_spec->cpu_features & CPU_FTR_MMCRA_SIHV)
+ if (CPU_HAS_FEATURE(MMCRA_SIHV))
mmcra_has_sihv = 1;
/*
diff -puN arch/ppc64/oprofile/op_model_rs64.c~cpu-has-feature arch/ppc64/oprofile/op_model_rs64.c
--- linux-2.5/arch/ppc64/oprofile/op_model_rs64.c~cpu-has-feature 2005-02-04 00:33:26.000000000 -0600
+++ linux-2.5-olof/arch/ppc64/oprofile/op_model_rs64.c 2005-02-04 00:33:26.000000000 -0600
@@ -114,7 +114,7 @@ static void rs64_cpu_setup(void *unused)
/* reset MMCR1, MMCRA */
mtspr(SPRN_MMCR1, 0);
- if (cur_cpu_spec->cpu_features & CPU_FTR_MMCRA)
+ if (CPU_HAS_FEATURE(MMCRA))
mtspr(SPRN_MMCRA, 0);
mmcr0 |= MMCR0_FCM1|MMCR0_PMXE|MMCR0_FCECE;
diff -puN arch/ppc64/xmon/xmon.c~cpu-has-feature arch/ppc64/xmon/xmon.c
--- linux-2.5/arch/ppc64/xmon/xmon.c~cpu-has-feature 2005-02-04 00:33:26.000000000 -0600
+++ linux-2.5-olof/arch/ppc64/xmon/xmon.c 2005-02-04 00:33:26.000000000 -0600
@@ -723,7 +723,7 @@ static void insert_cpu_bpts(void)
{
if (dabr.enabled)
set_controlled_dabr(dabr.address | (dabr.enabled & 7));
- if (iabr && (cur_cpu_spec->cpu_features & CPU_FTR_IABR))
+ if (iabr && CPU_HAS_FEATURE(IABR))
set_iabr(iabr->address
| (iabr->enabled & (BP_IABR|BP_IABR_TE)));
}
@@ -751,7 +751,7 @@ static void remove_bpts(void)
static void remove_cpu_bpts(void)
{
set_controlled_dabr(0);
- if ((cur_cpu_spec->cpu_features & CPU_FTR_IABR))
+ if (CPU_HAS_FEATURE(IABR))
set_iabr(0);
}
@@ -1098,7 +1098,7 @@ bpt_cmds(void)
break;
case 'i': /* bi - hardware instr breakpoint */
- if (!(cur_cpu_spec->cpu_features & CPU_FTR_IABR)) {
+ if (!CPU_HAS_FEATURE(IABR)) {
printf("Hardware instruction breakpoint "
"not supported on this cpu\n");
break;
@@ -2496,7 +2496,7 @@ void xmon_init(void)
void dump_segments(void)
{
- if (cur_cpu_spec->cpu_features & CPU_FTR_SLB)
+ if (CPU_HAS_FEATURE(SLB))
dump_slb();
else
dump_stab();
diff -puN include/asm-ppc64/cacheflush.h~cpu-has-feature include/asm-ppc64/cacheflush.h
--- linux-2.5/include/asm-ppc64/cacheflush.h~cpu-has-feature 2005-02-04 00:33:26.000000000 -0600
+++ linux-2.5-olof/include/asm-ppc64/cacheflush.h 2005-02-04 00:33:26.000000000 -0600
@@ -40,7 +40,7 @@ extern void __flush_dcache_icache(void *
static inline void flush_icache_range(unsigned long start, unsigned long stop)
{
- if (!(cur_cpu_spec->cpu_features & CPU_FTR_COHERENT_ICACHE))
+ if (!CPU_HAS_FEATURE(COHERENT_ICACHE))
__flush_icache_range(start, stop);
}
diff -puN include/asm-ppc64/mmu_context.h~cpu-has-feature include/asm-ppc64/mmu_context.h
--- linux-2.5/include/asm-ppc64/mmu_context.h~cpu-has-feature 2005-02-04 00:33:26.000000000 -0600
+++ linux-2.5-olof/include/asm-ppc64/mmu_context.h 2005-02-04 00:33:26.000000000 -0600
@@ -59,11 +59,11 @@ static inline void switch_mm(struct mm_s
return;
#ifdef CONFIG_ALTIVEC
- if (cur_cpu_spec->cpu_features & CPU_FTR_ALTIVEC)
+ if (CPU_HAS_FEATURE(ALTIVEC))
asm volatile ("dssall");
#endif /* CONFIG_ALTIVEC */
- if (cur_cpu_spec->cpu_features & CPU_FTR_SLB)
+ if (CPU_HAS_FEATURE(SLB))
switch_slb(tsk, next);
else
switch_stab(tsk, next);
diff -puN include/asm-ppc64/page.h~cpu-has-feature include/asm-ppc64/page.h
--- linux-2.5/include/asm-ppc64/page.h~cpu-has-feature 2005-02-04 00:33:26.000000000 -0600
+++ linux-2.5-olof/include/asm-ppc64/page.h 2005-02-04 00:33:26.000000000 -0600
@@ -67,7 +67,7 @@
#define HAVE_ARCH_HUGETLB_UNMAPPED_AREA
#define in_hugepage_area(context, addr) \
- ((cur_cpu_spec->cpu_features & CPU_FTR_16M_PAGE) && \
+ (CPU_HAS_FEATURE(16M_PAGE) && \
( (((addr) >= TASK_HPAGE_BASE) && ((addr) < TASK_HPAGE_END)) || \
( ((addr) < 0x100000000L) && \
((1 << GET_ESID(addr)) & (context).htlb_segs) ) ) )
diff -puN arch/ppc64/kernel/pSeries_lpar.c~cpu-has-feature arch/ppc64/kernel/pSeries_lpar.c
--- linux-2.5/arch/ppc64/kernel/pSeries_lpar.c~cpu-has-feature 2005-02-04 00:34:36.000000000 -0600
+++ linux-2.5-olof/arch/ppc64/kernel/pSeries_lpar.c 2005-02-04 00:34:52.000000000 -0600
@@ -505,7 +505,7 @@ void pSeries_lpar_flush_hash_range(unsig
int i;
unsigned long flags = 0;
struct ppc64_tlb_batch *batch = &__get_cpu_var(ppc64_tlb_batch);
- int lock_tlbie = !(cur_cpu_spec->cpu_features & CPU_FTR_LOCKLESS_TLBIE);
+ int lock_tlbie = !CPU_HAS_FEATURE(LOCKLESS_TLBIE);
if (lock_tlbie)
spin_lock_irqsave(&pSeries_lpar_tlbie_lock, flags);
diff -puN arch/ppc64/kernel/setup.c~cpu-has-feature arch/ppc64/kernel/setup.c
--- linux-2.5/arch/ppc64/kernel/setup.c~cpu-has-feature 2005-02-04 00:35:01.000000000 -0600
+++ linux-2.5-olof/arch/ppc64/kernel/setup.c 2005-02-04 00:35:41.000000000 -0600
@@ -315,7 +315,7 @@ static void __init setup_cpu_maps(void)
maxcpus = ireg[num_addr_cell + num_size_cell];
/* Double maxcpus for processors which have SMT capability */
- if (cur_cpu_spec->cpu_features & CPU_FTR_SMT)
+ if (CPU_HAS_FEATURE(SMT))
maxcpus *= 2;
if (maxcpus > NR_CPUS) {
@@ -339,7 +339,7 @@ static void __init setup_cpu_maps(void)
*/
for_each_cpu(cpu) {
cpu_set(cpu, cpu_sibling_map[cpu]);
- if (cur_cpu_spec->cpu_features & CPU_FTR_SMT)
+ if (CPU_HAS_FEATURE(SMT))
cpu_set(cpu ^ 0x1, cpu_sibling_map[cpu]);
}
@@ -767,7 +767,7 @@ static int show_cpuinfo(struct seq_file
seq_printf(m, "unknown (%08x)", pvr);
#ifdef CONFIG_ALTIVEC
- if (cur_cpu_spec->cpu_features & CPU_FTR_ALTIVEC)
+ if (CPU_HAS_FEATURE(ALTIVEC))
seq_printf(m, ", altivec supported");
#endif /* CONFIG_ALTIVEC */
diff -puN drivers/macintosh/via-pmu.c~cpu-has-feature drivers/macintosh/via-pmu.c
--- linux-2.5/drivers/macintosh/via-pmu.c~cpu-has-feature 2005-02-04 00:35:56.000000000 -0600
+++ linux-2.5-olof/drivers/macintosh/via-pmu.c 2005-02-04 00:36:28.000000000 -0600
@@ -2389,7 +2389,7 @@ pmac_suspend_devices(void)
enable_kernel_fp();
#ifdef CONFIG_ALTIVEC
- if (cur_cpu_spec[0]->cpu_features & CPU_FTR_ALTIVEC)
+ if (CPU_HAS_FEATURE(ALTIVEC))
enable_kernel_altivec();
#endif /* CONFIG_ALTIVEC */
diff -puN include/asm-ppc/cputable.h~cpu-has-feature include/asm-ppc/cputable.h
--- linux-2.5/include/asm-ppc/cputable.h~cpu-has-feature 2005-02-04 00:37:02.000000000 -0600
+++ linux-2.5-olof/include/asm-ppc/cputable.h 2005-02-04 00:40:29.000000000 -0600
@@ -61,6 +61,8 @@ struct cpu_spec {
extern struct cpu_spec cpu_specs[];
extern struct cpu_spec *cur_cpu_spec[];
+#define CPU_HAS_FEATURE(x) (cur_cpu_spec[0]->cpu_features & CPU_FTR_##x)
+
#endif /* __ASSEMBLY__ */
/* CPU kernel features */
diff -puN arch/ppc/mm/ppc_mmu.c~cpu-has-feature arch/ppc/mm/ppc_mmu.c
--- linux-2.5/arch/ppc/mm/ppc_mmu.c~cpu-has-feature 2005-02-04 00:51:34.000000000 -0600
+++ linux-2.5-olof/arch/ppc/mm/ppc_mmu.c 2005-02-04 00:52:27.000000000 -0600
@@ -138,7 +138,7 @@ void __init setbat(int index, unsigned l
union ubat *bat = BATS[index];
if (((flags & _PAGE_NO_CACHE) == 0) &&
- (cur_cpu_spec[0]->cpu_features & CPU_FTR_NEED_COHERENT))
+ CPU_HAS_FEATURE(NEED_COHERENT))
flags |= _PAGE_COHERENT;
bl = (size >> 17) - 1;
@@ -191,7 +191,7 @@ void __init MMU_init_hw(void)
extern unsigned int hash_page[];
extern unsigned int flush_hash_patch_A[], flush_hash_patch_B[];
- if ((cur_cpu_spec[0]->cpu_features & CPU_FTR_HPTE_TABLE) == 0) {
+ if (!CPU_HAS_FEATURE(HPTE_TABLE)) {
/*
* Put a blr (procedure return) instruction at the
* start of hash_page, since we can still get DSI
diff -puN arch/ppc/mm/mmu_decl.h~cpu-has-feature arch/ppc/mm/mmu_decl.h
--- linux-2.5/arch/ppc/mm/mmu_decl.h~cpu-has-feature 2005-02-04 00:52:45.000000000 -0600
+++ linux-2.5-olof/arch/ppc/mm/mmu_decl.h 2005-02-04 00:53:03.000000000 -0600
@@ -75,7 +75,7 @@ static inline void flush_HPTE(unsigned c
unsigned long pdval)
{
if ((Hash != 0) &&
- (cur_cpu_spec[0]->cpu_features & CPU_FTR_HPTE_TABLE))
+ CPU_HAS_FEATURE(HPTE_TABLE))
flush_hash_pages(0, va, pdval, 1);
else
_tlbie(va);
diff -puN arch/ppc/kernel/setup.c~cpu-has-feature arch/ppc/kernel/setup.c
--- linux-2.5/arch/ppc/kernel/setup.c~cpu-has-feature 2005-02-04 00:54:27.000000000 -0600
+++ linux-2.5-olof/arch/ppc/kernel/setup.c 2005-02-04 00:55:17.000000000 -0600
@@ -619,7 +619,7 @@ machine_init(unsigned long r3, unsigned
/* Checks "l2cr=xxxx" command-line option */
int __init ppc_setup_l2cr(char *str)
{
- if (cur_cpu_spec[0]->cpu_features & CPU_FTR_L2CR) {
+ if (CPU_HAS_FEATURE(L2CR)) {
unsigned long val = simple_strtoul(str, NULL, 0);
printk(KERN_INFO "l2cr set to %lx\n", val);
_set_L2CR(0); /* force invalidate by disable cache */
@@ -720,7 +720,7 @@ void __init setup_arch(char **cmdline_p)
* Systems with OF can look in the properties on the cpu node(s)
* for a possibly more accurate value.
*/
- if (cur_cpu_spec[0]->cpu_features & CPU_FTR_SPLIT_ID_CACHE) {
+ if (CPU_HAS_FEATURE(SPLIT_ID_CACHE)) {
dcache_bsize = cur_cpu_spec[0]->dcache_bsize;
icache_bsize = cur_cpu_spec[0]->icache_bsize;
ucache_bsize = 0;
diff -puN arch/ppc/kernel/temp.c~cpu-has-feature arch/ppc/kernel/temp.c
--- linux-2.5/arch/ppc/kernel/temp.c~cpu-has-feature 2005-02-04 00:55:40.000000000 -0600
+++ linux-2.5-olof/arch/ppc/kernel/temp.c 2005-02-04 00:56:17.000000000 -0600
@@ -223,7 +223,7 @@ int __init TAU_init(void)
/* We assume in SMP that if one CPU has TAU support, they
* all have it --BenH
*/
- if (!(cur_cpu_spec[0]->cpu_features & CPU_FTR_TAU)) {
+ if (!CPU_HAS_FEATURE(TAU)) {
printk("Thermal assist unit not available\n");
tau_initialized = 0;
return 1;
diff -puN arch/ppc/platforms/pmac_cpufreq.c~cpu-has-feature arch/ppc/platforms/pmac_cpufreq.c
--- linux-2.5/arch/ppc/platforms/pmac_cpufreq.c~cpu-has-feature 2005-02-04 00:56:40.000000000 -0600
+++ linux-2.5-olof/arch/ppc/platforms/pmac_cpufreq.c 2005-02-04 00:57:21.000000000 -0600
@@ -230,7 +230,7 @@ static int __pmac pmu_set_cpu_speed(int
enable_kernel_fp();
#ifdef CONFIG_ALTIVEC
- if (cur_cpu_spec[0]->cpu_features & CPU_FTR_ALTIVEC)
+ if (CPU_HAS_FEATURE(ALTIVEC))
enable_kernel_altivec();
#endif /* CONFIG_ALTIVEC */
diff -puN arch/ppc/platforms/pmac_setup.c~cpu-has-feature arch/ppc/platforms/pmac_setup.c
--- linux-2.5/arch/ppc/platforms/pmac_setup.c~cpu-has-feature 2005-02-04 00:56:44.000000000 -0600
+++ linux-2.5-olof/arch/ppc/platforms/pmac_setup.c 2005-02-04 00:57:33.000000000 -0600
@@ -274,7 +274,7 @@ pmac_setup_arch(void)
pmac_find_bridges();
/* Checks "l2cr-value" property in the registry */
- if (cur_cpu_spec[0]->cpu_features & CPU_FTR_L2CR) {
+ if (CPU_HAS_FEATURE(L2CR)) {
struct device_node *np = find_devices("cpus");
if (np == 0)
np = find_type_devices("cpu");
diff -puN arch/ppc/platforms/pmac_smp.c~cpu-has-feature arch/ppc/platforms/pmac_smp.c
--- linux-2.5/arch/ppc/platforms/pmac_smp.c~cpu-has-feature 2005-02-04 00:56:46.000000000 -0600
+++ linux-2.5-olof/arch/ppc/platforms/pmac_smp.c 2005-02-04 00:57:55.000000000 -0600
@@ -119,7 +119,7 @@ static volatile int sec_tb_reset = 0;
static void __init core99_init_caches(int cpu)
{
- if (!(cur_cpu_spec[0]->cpu_features & CPU_FTR_L2CR))
+ if (!CPU_HAS_FEATURE(L2CR))
return;
if (cpu == 0) {
@@ -132,7 +132,7 @@ static void __init core99_init_caches(in
printk("CPU%d: L2CR set to %lx\n", cpu, core99_l2_cache);
}
- if (!(cur_cpu_spec[0]->cpu_features & CPU_FTR_L3CR))
+ if (!CPU_HAS_FEATURE(L3CR))
return;
if (cpu == 0){
diff -puN arch/ppc/platforms/sandpoint.c~cpu-has-feature arch/ppc/platforms/sandpoint.c
--- linux-2.5/arch/ppc/platforms/sandpoint.c~cpu-has-feature 2005-02-04 00:56:53.000000000 -0600
+++ linux-2.5-olof/arch/ppc/platforms/sandpoint.c 2005-02-04 00:58:28.000000000 -0600
@@ -319,10 +319,10 @@ sandpoint_setup_arch(void)
* We will do this now with good known values. Future versions
* of DINK32 are supposed to get this correct.
*/
- if (cur_cpu_spec[0]->cpu_features & CPU_FTR_SPEC7450)
+ if (CPU_HAS_FEATURE(SPEC7450))
/* 745x is different. We only want to pass along enable. */
_set_L2CR(L2CR_L2E);
- else if (cur_cpu_spec[0]->cpu_features & CPU_FTR_L2CR)
+ else if (CPU_HAS_FEATURE(L2CR))
/* All modules have 1MB of L2. We also assume that an
* L2 divisor of 3 will work.
*/
@@ -330,7 +330,7 @@ sandpoint_setup_arch(void)
| L2CR_L2RAM_PIPE | L2CR_L2OH_1_0 | L2CR_L2DF);
#if 0
/* Untested right now. */
- if (cur_cpu_spec[0]->cpu_features & CPU_FTR_L3CR) {
+ if (CPU_HAS_FEATURE(L3CR)) {
/* Magic value. */
_set_L3CR(0x8f032000);
}
diff -puN arch/ppc/kernel/ppc_htab.c~cpu-has-feature arch/ppc/kernel/ppc_htab.c
--- linux-2.5/arch/ppc/kernel/ppc_htab.c~cpu-has-feature 2005-02-04 00:59:10.000000000 -0600
+++ linux-2.5-olof/arch/ppc/kernel/ppc_htab.c 2005-02-04 01:00:12.000000000 -0600
@@ -108,7 +108,7 @@ static int ppc_htab_show(struct seq_file
PTE *ptr;
#endif /* CONFIG_PPC_STD_MMU */
- if (cur_cpu_spec[0]->cpu_features & CPU_FTR_604_PERF_MON) {
+ if (CPU_HAS_FEATURE(604_PERF_MON)) {
mmcr0 = mfspr(SPRN_MMCR0);
pmc1 = mfspr(SPRN_PMC1);
pmc2 = mfspr(SPRN_PMC2);
@@ -209,7 +209,7 @@ static ssize_t ppc_htab_write(struct fil
if ( !strncmp( buffer, "reset", 5) )
{
- if (cur_cpu_spec[0]->cpu_features & CPU_FTR_604_PERF_MON) {
+ if (CPU_HAS_FEATURE(604_PERF_MON)) {
/* reset PMC1 and PMC2 */
mtspr(SPRN_PMC1, 0);
mtspr(SPRN_PMC2, 0);
@@ -221,7 +221,7 @@ static ssize_t ppc_htab_write(struct fil
}
/* Everything below here requires the performance monitor feature. */
- if ( !cur_cpu_spec[0]->cpu_features & CPU_FTR_604_PERF_MON )
+ if (!CPU_HAS_FEATURE(604_PERF_MON))
return count;
/* turn off performance monitoring */
@@ -339,7 +339,7 @@ int proc_dol2crvec(ctl_table *table, int
"0.5", "1.0", "(reserved2)", "(reserved3)"
};
- if (!(cur_cpu_spec[0]->cpu_features & CPU_FTR_L2CR))
+ if (!CPU_HAS_FEATURE(L2CR))
return -EFAULT;
if ( /*!table->maxlen ||*/ (*ppos && !write)) {
diff -puN drivers/md/raid6altivec.uc~cpu-has-feature drivers/md/raid6altivec.uc
--- linux-2.5/drivers/md/raid6altivec.uc~cpu-has-feature 2005-02-04 01:08:58.808596448 -0600
+++ linux-2.5-olof/drivers/md/raid6altivec.uc 2005-02-04 01:09:35.001094352 -0600
@@ -108,7 +108,7 @@ int raid6_have_altivec(void);
int raid6_have_altivec(void)
{
/* This assumes either all CPUs have Altivec or none does */
- return cur_cpu_spec->cpu_features & CPU_FTR_ALTIVEC;
+ return CPU_HAS_FEATURE(ALTIVEC):
}
#endif
_
^ permalink raw reply
* Edge Interrupts (Virtex-II Pro)
From: Joshua Lamorie @ 2005-02-04 2:48 UTC (permalink / raw)
To: linuxppc-embedded
Gidday there,
Is there a cleaner way to specify that an interrupt is edge triggered
other than directly accessing irq_desc_t irq_desc []?
In my module, when I request_irq, if it succeeds I do the following.
irq_desc[iIRQ].status &= ~(IRQ_LEVEL);
Is there a better way?
Thanks in advance
Joshua
--
Xiphos Technologies
(514) 848-9640 x227
(514) 848-9644 fax
www.xiplink.com
_______________________________________________
The information transmitted is intended only for the
person or entity to which it is addressed and may contain
confidential and/or privileged material. If you have
received this in error, please contact the sender and delete
this communication and any copy immediately. Thank you.
^ permalink raw reply
* Re: PPC440GP and Ebony board, ask for documents
From: Shawn Jin @ 2005-02-04 1:12 UTC (permalink / raw)
To: Linuxppc-embedded
In-Reply-To: <20050204010154.GB1714@gate.ebshome.net>
> https://www.amcc.com/cardiff/apply.jsp
>
> There is also e-mail of "Technical Publications Group" on that page,
> you can try e-mailing them.
I appreciate the info. Thank you. BTW, AMCC's info on the signup page
is really confusing. It's said that information about PowerPC doesn't
require a MyAMCC account. :(
-Shawn.
^ permalink raw reply
* Re: PPC440GP and Ebony board, ask for documents
From: Eugene Surovegin @ 2005-02-04 1:01 UTC (permalink / raw)
To: Shawn Jin; +Cc: Linuxppc-embedded
In-Reply-To: <c3d0340b05020316435b037135@mail.gmail.com>
On Thu, Feb 03, 2005 at 04:43:39PM -0800, Shawn Jin wrote:
> > > I have an IBM eBony board without any documents. Since IBM pulled off
> > > all the documents related ppc440 after they sold the business to AMCC,
> > > googling cannot find any documents about eBony schematics, board's
> > > user manual and evaluation board kit user's manual.
> >
> > All these documents are available at AMCC web.
>
> A URL is much appreciated. Seriously I cannot find them as you said.
I saw eval board docs in password-protected part of www.amcc.com. To
register use:
https://www.amcc.com/cardiff/apply.jsp
There is also e-mail of "Technical Publications Group" on that page,
you can try e-mailing them.
--
Eugene
^ 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