* Re: [RFC][PATCH] ibm_newemac: PowerPC 440EP/440GR EMAC PHY clock workaround
From: Valentine Barshak @ 2008-03-05 17:46 UTC (permalink / raw)
To: benh; +Cc: linuxppc-dev
In-Reply-To: <1204185299.15052.381.camel@pasglop>
Benjamin Herrenschmidt wrote:
> On Tue, 2008-02-26 at 09:02 -0600, Josh Boyer wrote:
>> Seems the code will do the right thing since everything is using
>> flags. I suppose my question can be withdrawn. It is slightly
>> confusing to do it that way though. Perhaps a function to do
>> read-modify-writes on DCRs would be welcome. dcr_modify anyone?
>
> Yup, we probably want to expose a dcri_clrset(), though I would also
> expose then __mtdcri/__mfdcri (non locked version) and the spinlock in
> case somebody wants to do something fancy.
I've made a patch which adds dcri_clrset function, but I haven't exposed
the unlocked versions though. I think that dcri_clrset is sufficient for
working with indirect dcr (at least for now, since the most fancy stuff
done with it atm is read/modify/write) and exposing the unlocked version
may lead to its misuse.
I'll submit the patch shortly.
Thanks,
Valentine.
>
> Cheers,
> Ben.
>
>
> _______________________________________________
> Linuxppc-dev mailing list
> Linuxppc-dev@ozlabs.org
> https://ozlabs.org/mailman/listinfo/linuxppc-dev
^ permalink raw reply
* Re: [PATCH] Fix wrapper platform for adder875, and combine defconfigs.
From: Scott Wood @ 2008-03-05 17:34 UTC (permalink / raw)
To: galak, paulus; +Cc: linuxppc-dev
In-Reply-To: <20080220183338.GA9282@loki.buserror.net>
On Wed, Feb 20, 2008 at 12:33:38PM -0600, Scott Wood wrote:
> This fixes the following bug:
> http://ozlabs.org/pipermail/linuxppc-dev/2008-February/051979.html
Can someone apply this for 2.6.25? Adder875 does not currently build.
-Scott
^ permalink raw reply
* Re: [PATCH 3/4] Emerson KSI8560 device tree
From: Scott Wood @ 2008-03-05 17:31 UTC (permalink / raw)
To: Alexandr Smirnov, linuxppc-dev
In-Reply-To: <20080304232940.GB8399@localhost.localdomain>
On Wed, Mar 05, 2008 at 10:29:40AM +1100, David Gibson wrote:
> On Tue, Mar 04, 2008 at 07:35:40PM +0300, Alexandr Smirnov wrote:
> > + device_type = "network";
> > + model = "TSEC";
> > + compatible = "gianfar";
>
> This still looks like the old binding.
Unfortunately, only the mdio node has a new binding. The gianfar driver
itself (or rather the glue code in fsl_soc.c) still insists on the above.
-Scott
^ permalink raw reply
* [PATCH] Fix kernel panic in arch_arm_kprobe
From: Ionut Nicu @ 2008-03-05 16:12 UTC (permalink / raw)
To: linuxppc-dev; +Cc: Ionut Nicu
The code in arch_arm_kprobe was trying to set a breakpoint which
resulted in a page fault because the kernel text pages were write
protected. Disable the write protect when CONFIG_KPROBES is defined.
Signed-off-by: Ionut Nicu <ionut.nicu@freescale.com>
---
include/asm-powerpc/pgtable-ppc32.h | 3 ++-
1 files changed, 2 insertions(+), 1 deletions(-)
diff --git a/include/asm-powerpc/pgtable-ppc32.h b/include/asm-powerpc/pgtable-ppc32.h
index d1332bb..ce66f72 100644
--- a/include/asm-powerpc/pgtable-ppc32.h
+++ b/include/asm-powerpc/pgtable-ppc32.h
@@ -428,7 +428,8 @@ extern int icache_44x_need_flush;
#define _PAGE_IO (_PAGE_KERNEL | _PAGE_NO_CACHE | _PAGE_GUARDED)
#define _PAGE_RAM (_PAGE_KERNEL | _PAGE_HWEXEC)
-#if defined(CONFIG_KGDB) || defined(CONFIG_XMON) || defined(CONFIG_BDI_SWITCH)
+#if defined(CONFIG_KGDB) || defined(CONFIG_XMON) || defined(CONFIG_BDI_SWITCH) ||\
+ defined(CONFIG_KPROBES)
/* We want the debuggers to be able to set breakpoints anywhere, so
* don't write protect the kernel text */
#define _PAGE_RAM_TEXT _PAGE_RAM
--
1.5.4.2
^ permalink raw reply related
* Long boot delay with agpgart
From: Wolfgang Pfeiffer @ 2008-03-05 16:33 UTC (permalink / raw)
To: linux-ppc; +Cc: debian-powerpc
Hi All
System: Debian unstable .. many packages very fresh.
Patched 2.6.25-rc3
$ cat /proc/cpuinfo
processor : 0
cpu : 7447A, altivec supported
clock : 833.333000MHz
revision : 0.5 (pvr 8003 0105)
bogomips : 16.57
timebase : 8320000
platform : PowerMac
machine : PowerBook5,8
motherboard : PowerBook5,8 MacRISC3 Power Macintosh
detected as : 287 (PowerBook G4 15")
pmac flags : 00000019
L2 cache : 512K unified
pmac-generation : NewWorld
I'm not sure this is something that should be reported to
linuxppc-dev@ozlabs.org, but as I'm using a fresh patched git kernel
(please see
http://patchwork.ozlabs.org/linuxppc/patch?order=state&id=17107
for more on that) that I even uploaded for others to use, I thought it
might be a sane idea to post it here also.
Also the problem reported here only happened once: but this whole
thing was looking so ugly I thought it might be better to ask people
knowing more than I do ..
Here's what happened:
After upgrading quite a few packages today, I rebooted the machine:
The boot process began being stuck the moment some agpgart init
routine started:
Excerpt from kern.log that moment:
[ 6.882357] usbcore: registered new device driver usb
[ 36.732011] uninorth_agp: gave up waiting for init of module agpgart.
[ 36.733009] uninorth_agp: Unknown symbol agp_bridge
[ 66.734008] uninorth_agp: gave up waiting for init of module agpgart.
[ 66.735011] uninorth_agp: Unknown symbol agp_find_bridge
[ 96.736009] uninorth_agp: gave up waiting for init of module agpgart.
[ 96.737010] uninorth_agp: Unknown symbol agp_device_command
The whole log for that time, and a successful reboot some time later,
is here:
http://geocities.com/wolfgangpfeiffer/kern.log.txt
The boot routine got stuck for maybe 4 or 7 minutes with that agpgart
problem.
In the end the system/machine seemed to be booting cleanly. I then
rebooted again with a different kernel (some 2.6.18, IIRC) - just to
check what's up, with no problems I were aware of. I then repeatedly
rebooted the machine with 2.6.25-rc3 where the first boot blocking
happened, again with no problems.
The kernel this happened with is a patched git version: 2.6.25-rc3 -
please see the patchwork.ozlabs.org URL above for more on that.
My question:
*** 1:
Does this smell like some hardware bug?
*** 2:
Is it harmless? - I don't remember a problem like that has happened
to me over the last years ... or at least not over the last 2 years,
or so ..
*** 3:
Your guesses?
And following a list of the packages I upgraded today (for those not
being familiar with Debian: just ignore the ".list" suffix at the end
at the end of the package names, please ...)
Mar 5 13:13 transcode-doc.list
Mar 5 13:13 sendmail-doc.list
Mar 5 13:13 sendmail.list
Mar 5 13:13 sensible-mda.list
Mar 5 13:13 sendmail-base.list
Mar 5 13:13 sendmail-cf.list
Mar 5 13:13 rt2500-source.list
Mar 5 13:12 nmap.list
Mar 5 13:12 pvm.list
Mar 5 13:12 mplayer-doc.list
Mar 5 13:12 lsb-release.list
Mar 5 13:12 hddtemp.list
Mar 5 13:12 libconfig-inifiles-perl.list
Mar 5 13:12 libpvm3.list
Mar 5 13:12 lm-sensors.list
Mar 5 13:12 bluez-hcidump.list
Mar 5 13:12 dcraw.list
Mar 5 13:12 gs-esp.list
Mar 5 13:12 gs-gpl.list
Mar 5 13:12 ytalk.list
Mar 5 13:12 ktalkd.list
Mar 5 13:12 xorg.list
Mar 5 13:12 xserver-xorg-dev.list
Mar 5 13:12 xlibs-data.list
Mar 5 13:12 xterm.list
Mar 5 13:12 xchm.list
Mar 5 13:12 xli.list
Mar 5 13:12 x-ttcidfont-conf.list
Mar 5 13:12 xutils.list
Mar 5 13:12 ttf-opensymbol.list
Mar 5 13:12 type-handling.list
Mar 5 13:12 unrar-free.list
Mar 5 13:12 unrar.list
Mar 5 13:12 ttf-dejavu-core.list
Mar 5 13:12 ttf-dejavu-extra.list
Mar 5 13:12 ttf-dejavu.list
Mar 5 13:12 ttf-bengali-fonts.list
Mar 5 13:12 ttf-tamil-fonts.list
Mar 5 13:12 ttf-telugu-fonts.list
Mar 5 13:12 ttf-kannada-fonts.list
Mar 5 13:12 ttf-malayalam-fonts.list
Mar 5 13:12 ttf-oriya-fonts.list
Mar 5 13:12 ttf-punjabi-fonts.list
Mar 5 13:12 ttf-devanagari-fonts.list
Mar 5 13:12 ttf-gujarati-fonts.list
Mar 5 13:12 ttf-baekmuk.list
Mar 5 13:12 ttf-indic-fonts.list
Mar 5 13:12 tcpdump.list
Mar 5 13:12 tk8.4.list
Mar 5 13:12 tcl8.4.list
Mar 5 13:12 sudo.list
Mar 5 13:12 t1utils.list
Mar 5 13:12 streamripper.list
Mar 5 13:12 sbcl.list
Mar 5 13:12 smartmontools.list
Mar 5 13:12 ssl-cert.list
Mar 5 13:12 rsync.list
Mar 5 13:12 sane-utils.list
Mar 5 13:12 python-gnome2.list
Mar 5 13:12 python-libxml2.list
Mar 5 13:12 rcs.list
Mar 5 13:12 python-gtk2.list
Mar 5 13:12 python-glade2.list
Mar 5 13:12 python-numeric.list
Mar 5 13:12 python-gobject.list
Mar 5 13:12 python-cairo.list
Mar 5 13:12 psfontmgr.list
Mar 5 13:12 privoxy.list
Mar 5 13:12 powernowd.list
Mar 5 13:12 po-debconf.list
Mar 5 13:12 powermgmt-base.list
Mar 5 13:12 perl-tk.list
Mar 5 13:12 pmount.list
Mar 5 13:12 p7zip-full.list
Mar 5 13:12 openoffice.org-thesaurus-en-us.list
Mar 5 13:12 openoffice.org-filter-mobiledev.list
Mar 5 13:12 openoffice.org-java-common.list
Mar 5 13:12 ntpdate.list
Mar 5 13:12 ocrad.list
Mar 5 13:12 noatun-plugins.list
Mar 5 13:12 noatun.list
Mar 5 13:11 netpbm.list
Mar 5 13:11 networkstatus.list
Mar 5 13:11 nfs-kernel-server.list
Mar 5 13:11 myspell-en-us.list
Mar 5 13:11 ncompress.list
Mar 5 13:11 mpeg2dec.list
Mar 5 13:11 mpeg4ip-utils.list
Mar 5 13:11 myspell-de-de.list
Mar 5 13:11 mesa-utils.list
Mar 5 13:11 mjpegtools.list
Mar 5 13:11 module-assistant.list
Mar 5 13:11 menu.list
Mar 5 13:11 mc.list
Mar 5 13:11 manpages-dev.list
Mar 5 13:11 lisa.list
Mar 5 13:11 locate.list
Mar 5 13:11 libxmuu-dev.list
Mar 5 13:11 libxmuu1.list
Mar 5 13:11 libxosd2.list
Mar 5 13:11 libxalan2-java.list
Mar 5 13:11 libxfont1.list
Mar 5 13:11 libxmlsec1-openssl.list
Mar 5 13:11 libxmlsec1.list
Mar 5 13:11 libwpg-0.1-1.list
Mar 5 13:11 libwps-0.1-1.list
Mar 5 13:11 libxerces2-java.list
Mar 5 13:11 libvlc0.list
Mar 5 13:11 libwnck-common.list
Mar 5 13:11 libwnck22.list
Mar 5 13:11 libwpd8c2a.list
Mar 5 13:11 libt1-5.list
Mar 5 13:11 libtextwrap1.list
Mar 5 13:11 libtool.list
Mar 5 13:11 libswscalecvs0.list
Mar 5 13:11 libsensors4.list
Mar 5 13:11 libservlet2.4-java.list
Mar 5 13:11 libsox0.list
Mar 5 13:11 libpulse-browse0.list
Mar 5 13:11 libpulse0.list
Mar 5 13:11 libsdl-mixer1.2.list
Mar 5 13:11 libpcsclite1.list
Mar 5 13:11 libpoppler-glib2.list
Mar 5 13:11 libpostproccvs51.list
Mar 5 13:11 libpulse-dev.list
Mar 5 13:11 libpulse-mainloop-glib0.list
Mar 5 13:11 pcscd.list
Mar 5 13:11 libccid.list
Mar 5 13:11 libopensync0.list
Mar 5 13:11 libpam-gnome-keyring.list
Mar 5 13:11 libnspr4-0d.list
Mar 5 13:11 libnss-db.list
Mar 5 13:11 libsqlite3-0.list
Mar 5 13:11 libmpeg4ip-0.list
Mar 5 13:11 libmx4j-java.list
Mar 5 13:11 libnetpbm10.list
Mar 5 13:11 libmpeg2-4.list
Mar 5 13:11 libmjpegtools0.list
Mar 5 13:11 libmp4v2-0.list
Mar 5 13:11 libmailtools-perl.list
Mar 5 13:11 ocaml-base-nox.list
Mar 5 13:11 liblog4j1.2-java-gcj.list
Mar 5 13:11 liblogfile-rotate-perl.list
Mar 5 13:11 libltdl3.list
Mar 5 13:11 libmad-ocaml.list
Mar 5 13:11 libk3b3.list
Mar 5 13:11 libkdcraw2.list
Mar 5 13:11 liblog4j1.2-java.list
Mar 5 13:11 libintl-perl.list
Mar 5 13:11 libio-compress-base-perl.list
Mar 5 13:11 libiso9660-5.list
Mar 5 13:11 libjline-java.list
Mar 5 13:11 libical0.list
Mar 5 13:11 libieee1284-3.list
Mar 5 13:11 libgutenprintui2-1.list
Mar 5 13:11 libgtk2-perl.list
Mar 5 13:11 libgtkspell0.list
Mar 5 13:11 libgnomevfs2-common.list
Mar 5 13:11 shared-mime-info.list
Mar 5 13:11 libglu1-xorg-dev.list
Mar 5 13:11 libglu1-xorg.list
Mar 5 13:11 libgmp3c2.list
Mar 5 13:11 libglib2.0-data.list
Mar 5 13:11 libgksu2-0.list
Mar 5 13:11 libgtop2-7.list
Mar 5 13:11 libgtop2-common.list
Mar 5 13:11 xbase-clients.list
Mar 5 13:11 libgcj8-jar.list
Mar 5 13:11 libgimp2.0.list
Mar 5 13:11 libgcj7-jar.list
Mar 5 13:11 libexif12.list
Mar 5 13:11 libexif-dev.list
Mar 5 13:11 libevent-rpc-perl.list
Mar 5 13:11 libecj-java.list
Mar 5 13:11 libenchant1c2a.list
Mar 5 13:11 libevent-perl.list
Mar 5 13:11 libglib-perl.list
Mar 5 13:11 libcurses-ui-perl.list
Mar 5 13:11 libdb4.6++.list
Mar 5 13:11 libdvdread-dev.list
Mar 5 13:11 libdvdread3.list
Mar 5 13:10 libcommons-cli-java.list
Mar 5 13:10 libcompress-raw-zlib-perl.list
Mar 5 13:10 libconfig-file-perl.list
Mar 5 13:10 libcurses-perl.list
Mar 5 13:10 libchm1.list
Mar 5 13:10 libcommons-lang-java.list
Mar 5 13:10 libcdio7.list
Mar 5 13:10 libcairo-perl.list
Mar 5 13:10 libcucul-dev.list
Mar 5 13:10 libcaca-dev.list
Mar 5 13:10 libcaca0.list
Mar 5 13:10 libbonoboui2-0.list
Mar 5 13:10 libbonoboui2-common.list
Mar 5 13:10 libcucul0.list
Mar 5 13:10 libbonobo2-common.list
Mar 5 13:10 libbonobo2-0.list
Mar 5 13:10 libarts1-xine.list
Mar 5 13:10 libavahi-glib1.list
Mar 5 13:10 libavutilcvs49.list
Mar 5 13:10 libarts1-mpeglib.list
Mar 5 13:10 mpeglib.list
Mar 5 13:10 libaa1-dev.list
Mar 5 13:10 libarts1-akode.list
Mar 5 13:10 libarts1-audiofile.list
Mar 5 13:10 ktip.list
Mar 5 13:10 libaa1.list
Mar 5 13:10 ksysguard.list
Mar 5 13:10 ksysguardd.list
Mar 5 13:10 libavahi-compat-libdnssd1.list
Mar 5 13:10 libsensors3.list
Mar 5 13:10 ksvg.list
Mar 5 13:10 liblcms1-dev.list
Mar 5 13:10 liblcms1.list
Mar 5 13:10 ksplash.list
Mar 5 13:10 ksnapshot.list
Mar 5 13:10 kscreensaver-xsavers.list
Mar 5 13:10 ksig.list
Mar 5 13:10 krec.list
Mar 5 13:10 kscd.list
Mar 5 13:10 kpdf.list
Mar 5 13:10 kpersonalizer.list
Mar 5 13:10 kpager.list
Mar 5 13:10 kooka.list
Mar 5 13:10 libkscan1.list
Mar 5 13:10 konq-plugins.list
Mar 5 13:10 konsole.list
Mar 5 13:10 knewsticker-scripts.list
Mar 5 13:10 knotes.list
Mar 5 13:10 libfinance-quote-perl.list
Mar 5 13:10 kmix.list
Mar 5 13:10 libhtml-tableextract-perl.list
Mar 5 13:10 libwww-perl.list
Mar 5 13:10 kmenuedit.list
Mar 5 13:10 kmid.list
Mar 5 13:10 kmailcvt.list
Mar 5 13:10 kmail.list
Mar 5 13:10 libksieve0.list
Mar 5 13:10 libmimelib1c2a.list
Mar 5 13:10 klipper.list
Mar 5 13:10 libkmime2.list
Mar 5 13:10 libkpimidentities1.list
Mar 5 13:10 khelpcenter.list
Mar 5 13:10 kicker-applets.list
Mar 5 13:10 gs.list
Mar 5 13:10 kdeprint.list
Mar 5 13:10 kghostview.list
Mar 5 13:10 kdepasswd.list
Mar 5 13:10 libkonq4.list
Mar 5 13:10 kdenetwork-filesharing.list
Mar 5 13:10 kdenetwork.list
Mar 5 13:10 kwifimanager.list
Mar 5 13:10 ksirc.list
Mar 5 13:10 krdc.list
Mar 5 13:10 krfb.list
Mar 5 13:10 libslp1.list
Mar 5 13:10 kpf.list
Mar 5 13:10 kppp.list
Mar 5 13:10 kopete.list
Mar 5 13:10 kdict.list
Mar 5 13:10 kdnssd.list
Mar 5 13:10 kget.list
Mar 5 13:10 knewsticker.list
Mar 5 13:10 kdemultimedia-kfile-plugins.list
Mar 5 13:10 kdenetwork-kfile-plugins.list
Mar 5 13:10 kdemultimedia-kappfinder-data.list
Mar 5 13:10 libtheora-dev.list
Mar 5 13:10 libtheora0.list
Mar 5 13:10 kdemultimedia-doc-html.list
Mar 5 13:10 kdebluetooth.list
Mar 5 13:10 kdegraphics-kfile-plugins.list
Mar 5 13:10 libpoppler-qt2.list
Mar 5 13:10 libpoppler2.list
Mar 5 13:10 python-dbus.list
Mar 5 13:10 python-qt4-dbus.list
Mar 5 13:10 python-qt4.list
Mar 5 13:09 python2.4-minimal.list
Mar 5 13:09 python2.4.list
Mar 5 13:09 python-qt4-common.list
Mar 5 13:09 python-sip4.list
Mar 5 13:09 libqt4-core.list
Mar 5 13:09 libqt4-gui.list
Mar 5 13:09 kdeartwork.list
Mar 5 13:09 kdebase-bin-kde3.list
Mar 5 13:09 kscreensaver.list
Mar 5 13:09 libkbluetooth0.list
Mar 5 13:09 kdeartwork-theme-window.list
Mar 5 13:09 kdewallpapers.list
Mar 5 13:09 ksmserver.list
Mar 5 13:09 kwin.list
Mar 5 13:09 kdeartwork-theme-icon.list
Mar 5 13:09 kdeartwork-misc.list
Mar 5 13:09 kdeartwork-style.list
Mar 5 13:09 kdeaddons-kfile-plugins.list
Mar 5 13:09 kdeartwork-emoticons.list
Mar 5 13:09 kdemultimedia-kio-plugins.list
Mar 5 13:09 kaudiocreator.list
Mar 5 13:09 libkcddb1.list
Mar 5 13:09 kate-plugins.list
Mar 5 13:09 libtidy-0.99-0.list
Mar 5 13:09 tidy.list
Mar 5 13:09 kappfinder.list
Mar 5 13:09 kate.list
Mar 5 13:09 kaddressbook-plugins.list
Mar 5 13:09 kamera.list
Mar 5 13:09 kaddressbook.list
Mar 5 13:09 libkleopatra1.list
Mar 5 13:09 kaboodle.list
Mar 5 13:09 libgpgme11.list
Mar 5 13:09 libpth20.list
Mar 5 13:09 john.list
Mar 5 13:09 juk.list
Mar 5 13:09 libakode2.list
Mar 5 13:09 initramfs-tools.list
Mar 5 13:09 installation-report.list
Mar 5 13:09 java-package.list
Mar 5 13:09 httping.list
Mar 5 13:09 klibc-utils.list
Mar 5 13:09 libklibc.list
Mar 5 13:09 htdig.list
Mar 5 13:09 hal.list
Mar 5 13:09 hdparm.list
Mar 5 13:09 hspell.list
Mar 5 13:09 lockfile-progs.list
Mar 5 13:09 usbutils.list
Mar 5 13:09 gutenprint-doc.list
Mar 5 13:09 gutenprint-locales.list
Mar 5 13:09 gstreamer0.10-alsa.list
Mar 5 13:09 gtkpbbuttons-common.list
Mar 5 13:09 gtkpbbuttons.list
Mar 5 13:09 gpm.list
Mar 5 13:09 libgstreamer-plugins-base0.10-0.list
Mar 5 13:09 libgstreamer0.10-0.list
Mar 5 13:09 gnome-keyring.list
Mar 5 13:09 libhal-storage1.list
Mar 5 13:09 git-doc.list
Mar 5 13:09 libgnome-keyring0.list
Mar 5 13:09 gimp-help-common.list
Mar 5 13:09 gimp-help-en.list
Mar 5 13:08 ghostscript.list
Mar 5 13:08 gsfonts.list
Mar 5 13:08 ghostscript-x.list
Mar 5 13:08 gv.list
Mar 5 13:08 gettext.list
Mar 5 13:08 gdb.list
Mar 5 13:08 gcj-4.2-base.list
Mar 5 13:08 libgcj8-1.list
Mar 5 13:08 gij-4.2.list
Mar 5 13:08 libgcj8-1-awt.list
Mar 5 13:08 g++.list
Mar 5 13:08 gaim-data.list
Mar 5 13:08 gaim.list
Mar 5 13:08 gcc.list
Mar 5 13:08 fvwm.list
Mar 5 13:08 librsvg2-2.list
Mar 5 13:08 fping.list
Mar 5 13:08 libfribidi-dev.list
Mar 5 13:08 libfribidi0.list
Mar 5 13:08 librsvg2-common.list
Mar 5 13:08 fortune-mod.list
Mar 5 13:08 fortunes-off.list
Mar 5 13:08 fortunes.list
Mar 5 13:08 fam.list
Mar 5 13:08 fetchmail.list
Mar 5 13:08 fortunes-min.list
Mar 5 13:08 faad.list
Mar 5 13:08 fakeroot.list
Mar 5 13:08 libfaad-dev.list
Mar 5 13:08 libfaad0.list
Mar 5 13:08 escputil.list
Mar 5 13:08 emacs21-common.list
Mar 5 13:07 emacs21-bin-common.list
Mar 5 13:07 emacs21.list
Mar 5 13:07 dselect.list
Mar 5 13:07 dvd+rw-tools.list
Mar 5 13:07 em8300-headers.list
Mar 5 13:07 docbook-xsl.list
Mar 5 13:07 dpatch.list
Mar 5 13:07 doc-base.list
Mar 5 13:07 scrollkeeper.list
Mar 5 13:07 discover1.list
Mar 5 13:07 libscrollkeeper0.list
Mar 5 13:07 discover1-data.list
Mar 5 13:07 libdiscover1.list
Mar 5 13:07 dcoprss.list
Mar 5 13:07 dict.list
Mar 5 13:07 librss1.list
Mar 5 13:07 cvs.list
Mar 5 13:07 dbus-x11.list
Mar 5 13:07 cupsys-driver-gutenprint.list
Mar 5 13:07 cupsys-bsd.list
Mar 5 13:07 cupsys-client.list
Mar 5 13:07 libgutenprint2.list
Mar 5 13:07 cupsys-common.list
Mar 5 13:07 cpufrequtils.list
Mar 5 13:07 libcpufreq0.list
Mar 5 13:07 libsysfs-dev.list
Mar 5 13:07 libsysfs2.list
Mar 5 13:07 cpp-4.1.list
Mar 5 13:07 gcc-4.1-base.list
Mar 5 13:07 gcc-4.1.list
Mar 5 13:07 libstdc++6-4.1-dev.list
Mar 5 13:07 clamav-base.list
Mar 5 13:07 g++-4.1.list
Mar 5 13:07 libmudflap0-dev.list
Mar 5 13:07 cl-binary-types.list
Mar 5 13:07 cl-kmrcl.list
Mar 5 13:07 cl-rt.list
Mar 5 13:07 cl-asdf.list
Mar 5 13:07 common-lisp-controller.list
Mar 5 13:07 cjk-latex.list
Mar 5 13:07 latex-cjk-common.list
Mar 5 13:07 realpath.list
Mar 5 13:07 cdrdao.list
Mar 5 13:07 cdparanoia.list
Mar 5 13:07 libao2.list
Mar 5 13:07 libcdparanoia0-dev.list
Mar 5 13:07 libcdparanoia0.list
Mar 5 13:07 ca-certificates.list
Mar 5 13:07 ccache.list
Mar 5 13:07 openssl.list
Mar 5 13:07 bluez-gnome.list
Mar 5 13:07 libidl0.list
Mar 5 13:07 liborbit2.list
Mar 5 13:07 gconf2.list
Mar 5 13:07 libhal1.list
Mar 5 13:07 psmisc.list
Mar 5 13:07 gconf2-common.list
Mar 5 13:07 bluetooth.list
Mar 5 13:07 bluez-utils.list
Mar 5 13:07 libbluetooth2.list
Mar 5 13:07 binutils.list
Mar 5 13:07 bash-doc.list
Mar 5 13:07 bcm43xx-fwcutter.list
Mar 5 13:07 avahi-daemon.list
Mar 5 13:07 avahi-utils.list
Mar 5 13:07 libavahi-core5.list
Mar 5 13:07 libdaemon0.list
Mar 5 13:07 dbus.list
Mar 5 13:07 autoconf.list
Mar 5 13:07 autotools-dev.list
Mar 5 13:07 audacity.list
Mar 5 13:07 libwxgtk2.6-0.list
Mar 5 13:07 libflac++6.list
Mar 5 13:07 libwxbase2.6-0.list
Mar 5 13:06 ascii.list
Mar 5 13:06 aspell-de.list
Mar 5 13:06 atlantikdesigner.list
Mar 5 13:06 artsbuilder.list
Mar 5 13:06 armagetron.list
Mar 5 13:06 armagetronad-common.list
Mar 5 13:06 libsdl-image1.2.list
Mar 5 13:06 aptitude-doc-en.list
Mar 5 13:06 arj.list
Mar 5 13:06 armagetronad.list
Mar 5 13:06 apt-listchanges.conffiles
Mar 5 13:06 apt-listchanges.config
Mar 5 13:06 apt-listchanges.list
Mar 5 13:06 apt-listchanges.md5sums
Mar 5 13:06 apt-listchanges.postinst
Mar 5 13:06 apt-listchanges.postrm
Mar 5 13:06 apt-listchanges.preinst
Mar 5 13:06 apt-listchanges.prerm
Mar 5 13:06 apt-listchanges.templates
Mar 5 13:06 apt-spy.list
Mar 5 13:06 apt-listbugs.conffiles
Mar 5 13:06 apt-listbugs.list
Mar 5 13:06 apt-listbugs.md5sums
Mar 5 13:06 apt-listbugs.postinst
Mar 5 13:06 apt-listbugs.postrm
Mar 5 13:06 apt-listbugs.preinst
Mar 5 13:06 liblocale-ruby1.8.list
Mar 5 13:06 libxml-parser-ruby1.8.list
Mar 5 13:06 ruby.list
Mar 5 13:06 ruby1.8.list
Mar 5 13:06 libruby1.8.list
Mar 5 13:06 apt-doc.list
Mar 5 13:06 antlr.list
Mar 5 13:06 libgcj7-1.list
Mar 5 13:06 libgcj-common.list
Mar 5 13:06 libgcj7-1-awt.list
Mar 5 13:06 gcj-4.1-base.list
Mar 5 13:06 gij-4.1.list
Mar 5 13:06 alsaplayer-common.list
Mar 5 13:06 libflac8.list
Mar 5 13:06 alsaplayer-gtk.list
Mar 5 13:06 libpango1.0-0.list
Mar 5 13:06 libthai-data.list
Mar 5 13:06 libthai0.list
Mar 5 13:06 libpango1.0-common.list
Mar 5 13:06 defoma.list
Mar 5 13:06 libdatrie0.list
Mar 5 13:06 libpango1.0-dev.list
Mar 5 13:06 alsaplayer-alsa.list
Mar 5 13:06 libcairo2-dev.list
Mar 5 13:06 libcairo2.list
Mar 5 13:06 alsa-utils.list
Mar 5 13:06 akregator.list
Mar 5 13:06 alsa-base.list
Mar 5 13:06 linux-sound-base.list
Mar 5 13:06 libkcal2b.list
Mar 5 13:06 libkdepim1a.list
Mar 5 13:06 kdelibs-data.list
Mar 5 13:06 libktnef1.list
Mar 5 13:06 kdelibs4c2a.list
Mar 5 13:06 kdelibs4-dev.list
Mar 5 13:06 libavahi-qt3-1.list
Mar 5 13:06 libavahi-qt3-dev.list
Mar 5 13:06 libfam-dev.list
Mar 5 13:06 libfam0.list
Mar 5 13:06 libxml2-utils.list
Mar 5 13:06 libavahi-client-dev.list
Mar 5 13:06 libavahi-client3.list
Mar 5 13:06 libdbus-1-3.list
Mar 5 13:06 libdbus-1-dev.list
Mar 5 13:06 libavahi-common-data.list
Mar 5 13:06 libavahi-common-dev.list
Mar 5 13:06 libavahi-common3.list
Mar 5 13:06 aspell.list
Mar 5 13:06 libaspell-dev.list
Mar 5 13:06 libaspell15.list
Mar 5 13:06 libarts1c2a.list
Mar 5 13:06 libjack0.100.0-dev.list
Mar 5 13:06 libvorbis0a.list
Mar 5 13:06 libogg0.list
Mar 5 13:06 libvorbis-dev.list
Mar 5 13:06 libvorbisenc2.list
Mar 5 13:06 libvorbisfile3.list
Mar 5 13:06 libogg-dev.list
Mar 5 13:06 libqt3-mt.list
Mar 5 13:06 qt3-dev-tools.list
Mar 5 13:06 libqt3-headers.list
Mar 5 13:06 libxmu-dev.list
Mar 5 13:06 libxmu6.list
Mar 5 13:06 libglu1-mesa-dev.list
Mar 5 13:06 libglu1-mesa.list
Mar 5 13:06 libqt3-compat-headers.list
Mar 5 13:06 libqt3-mt-dev.list
Mar 5 13:05 libgl1-mesa-dev.list
Mar 5 13:05 libgl1-mesa-dri.list
Mar 5 13:05 libgl1-mesa-glx.list
Mar 5 13:05 mesa-common-dev.list
Mar 5 13:05 libaudio-dev.list
Mar 5 13:05 libfreebob0.list
Mar 5 13:05 libraw1394-8.list
Mar 5 13:05 libraw1394-dev.list
Mar 5 13:05 jackd.list
Mar 5 13:05 libjack0.list
Mar 5 13:05 libjack-dev.list
Mar 5 13:05 libasound2-dev.list
Mar 5 13:05 libasound2.list
Mar 5 13:05 libaudio2.list
Mar 5 13:05 libarts1-dev.list
Mar 5 13:05 libartsc0-dev.list
Mar 5 13:05 libartsc0.list
Mar 5 13:05 libglib2.0-0.list
Mar 5 13:05 libglib2.0-dev.list
Mar 5 13:05 libart-2.0-2.list
Mar 5 13:05 libart-2.0-dev.list
Mar 5 13:05 abook.list
Mar 5 13:05 texinfo.list
Mar 5 13:05 python-support.list
Mar 5 13:05 strace.list
Mar 5 13:05 openssh-client.list
Mar 5 13:05 pciutils.list
Mar 5 13:05 python-central.list
Mar 5 13:05 openssh-server.list
Mar 5 13:05 nfs-common.list
Mar 5 13:05 portmap.list
Mar 5 13:05 ncurses-term.list
Mar 5 13:05 mime-support.list
Mar 5 13:05 mutt.list
Mar 5 13:05 lsof.list
Mar 5 13:05 locales.list
Mar 5 13:05 libpcre3.list
Mar 5 13:05 libidn11-dev.list
Mar 5 13:05 libidn11.list
Mar 5 13:05 libpcre3-dev.list
Mar 5 13:05 libpcrecpp0.list
Mar 5 13:05 gettext-base.list
Mar 5 13:05 less.list
Mar 5 13:05 libgpmg1.list
Mar 5 13:05 file.list
Mar 5 13:05 libmagic1.list
Mar 5 13:05 doc-linux-text.list
Mar 5 13:05 dictionaries-common.list
Mar 5 13:05 dnsutils.list
Mar 5 13:05 bind9-host.list
Mar 5 13:05 libbind9-30.list
Mar 5 13:05 liblwres30.list
Mar 5 13:05 libdns32.list
Mar 5 13:05 libisc32.list
Mar 5 13:05 libisccc30.list
Mar 5 13:05 libisccfg30.list
Mar 5 13:05 at.list
Mar 5 13:05 makedev.list
Mar 5 13:05 procps.list
Mar 5 13:05 libattr1-dev.list
Mar 5 13:05 libattr1.list
Mar 5 13:05 update-inetd.list
Mar 5 13:05 traceroute.list
Mar 5 13:05 tasksel.list
Mar 5 13:05 manpages.list
Mar 5 13:05 nano.list
Mar 5 13:05 tasksel-data.list
Mar 5 13:05 man-db.list
Mar 5 13:05 libusb-0.1-4.list
Mar 5 13:05 libusb-dev.list
Mar 5 13:05 libsasl2-2.list
Mar 5 13:05 libtasn1-3-dev.list
Mar 5 13:05 libtasn1-3.list
Mar 5 13:05 libdb4.6.list
Mar 5 13:05 libsasl2-modules.list
Mar 5 13:05 libssl-dev.list
Mar 5 13:05 libssl0.9.8.list
Mar 5 13:05 libsasl2-dev.list
Mar 5 13:05 libgcrypt11.list
Mar 5 13:05 libncursesw5.list
Mar 5 13:05 bzip2.list
Mar 5 13:05 libbz2-1.0.list
Mar 5 13:05 libgcrypt11-dev.list
Mar 5 13:05 iptables.list
Mar 5 13:05 iputils-ping.list
Mar 5 13:05 klogd.list
Mar 5 13:05 laptop-detect.list
Mar 5 13:05 libbz2-dev.list
Mar 5 13:05 sysklogd.list
Mar 5 13:05 info.list
Mar 5 13:05 cron.list
Mar 5 13:05 gpgv.list
Mar 5 13:05 groff-base.list
Mar 5 13:05 adduser.list
Mar 5 13:05 cpio.list
Mar 5 13:05 sysv-rc.list
Mar 5 13:04 libuuid1.list
Mar 5 13:04 passwd.list
Mar 5 13:04 libss2.list
Mar 5 13:04 libblkid1.list
Mar 5 13:04 initscripts.list
Mar 5 13:04 libdevmapper1.02.1.list
Mar 5 13:04 xserver-xorg.list
Mar 5 13:04 xserver-xorg-video-all.list
Mar 5 13:04 xserver-xorg-video-trident.list
Mar 5 13:04 xserver-xorg-video-mga.list
Mar 5 13:04 xserver-xorg-video-nv.list
Mar 5 13:04 xserver-xorg-video-ati.list
Mar 5 13:04 xserver-xorg-input-all.list
Mar 5 13:04 xserver-xorg-input-evdev.list
Mar 5 13:04 xserver-xorg-input-mouse.list
Mar 5 13:04 xserver-xorg-input-synaptics.list
Mar 5 13:04 cpp.list
Mar 5 13:04 xinit.list
Mar 5 13:04 xkb-data.list
Mar 5 13:04 libxext-dev.list
Mar 5 13:04 libxext6.list
Mar 5 13:04 libxmu-headers.list
Mar 5 13:04 x11-common.list
Mar 5 13:04 foomatic-db-engine.list
Mar 5 13:04 imlib-base.list
Mar 5 13:04 curl.list
Mar 5 13:04 libkadm55.list
Mar 5 13:04 libkrb53.list
Mar 5 13:04 libkeyutils1.list
Mar 5 13:04 libkrb5-dev.list
Mar 5 13:04 comerr-dev.list
Mar 5 13:04 libcomerr2.list
Mar 5 13:04 libxml2.list
Mar 5 13:04 libxml2-dev.list
Mar 5 13:04 zlib1g-dev.list
Mar 5 13:04 zlib1g.list
Mar 5 13:04 foomatic-filters.list
Mar 5 13:04 ucf.list
Mar 5 13:04 foomatic-db.list
Mar 5 13:04 console-common.list
Mar 5 13:04 flex.list
Mar 5 13:04 console-data.list
Mar 5 13:04 sysvinit-utils.list
Mar 5 13:04 ncurses-base.list
Mar 5 13:04 libncurses5-dev.list
Mar 5 13:04 libncurses5.list
Mar 5 13:04 bsdutils.list
Mar 5 13:03 base-passwd.list
Mar 5 13:03 util-linux.list
Mar 5 13:03 lsb-base.list
Mar 5 13:03 tar.list
Mar 5 13:03 sed.list
Mar 5 13:03 ncurses-bin.list
Mar 5 13:03 mount.list
Mar 5 13:02 mktemp.list
Mar 5 13:02 login.list
Mar 5 13:02 hostname.list
Mar 5 13:02 gzip.list
Mar 5 13:02 grep.list
Mar 5 13:02 findutils.list
Mar 5 13:02 e2fsprogs.list
Mar 5 13:02 e2fslibs.list
Mar 5 13:02 libc6.list
Mar 5 13:02 libc6-ppc64.list
Mar 5 13:02 libc6-dev.list
Mar 5 13:02 libc6-dev-ppc64.list
Mar 5 13:02 linux-libc-dev.list
Mar 5 13:02 tzdata.list
Mar 5 13:02 debconf-i18n.list
Mar 5 13:02 debconf.list
Mar 5 13:02 liblocale-gettext-perl.list
Mar 5 13:02 libtext-charwidth-perl.list
Mar 5 13:02 libtext-iconv-perl.list
Mar 5 13:02 libtext-wrapi18n-perl.list
Mar 5 13:02 dpkg.list
Mar 5 13:02 coreutils.list
Mar 5 13:02 bash.list
Mar 5 13:01 debianutils.list
Thanks in anticipation
Best Regards
Wolfgang
--
http://heelsbroke.blogspot.com/
http://keyserver.mine.nu/pks/lookup?search=0xE3037113&fingerprint=on
^ permalink raw reply
* Re: ARCH=ppc -> ARCH=powerpc : help needed for dts file
From: Scott Wood @ 2008-03-05 16:32 UTC (permalink / raw)
To: benh; +Cc: linuxppc-dev, Philippe De Muyter
In-Reply-To: <1204693264.21545.165.camel@pasglop>
Benjamin Herrenschmidt wrote:
> So at this stage, that's not enough information. We need to know exactly how
> you have wired things on your board, and somebody from fsl needs to tell
> me how the ExtIrq are routed to the MPIC on that guy.
This part's easy -- the external IRQ is used as the mpic interrupt
number as-is (internal IRQs start at 16).
> Once that's done, you seem to have grasped the interrupt map... for any
> device or slot, you provide the mapping between idsel/pirq line on one side,
> and mpic interrupt & sense on the other. For PCI, sense is always 1 for an
> mpic so you mostly have to check your actual MPIC source numbers.
>
>>From your .dts, I see you've been doing some swizzling of slots using
> interrupts 1...4 ... do that correspond to EXTIRQ 5....8 ?
No, those correspond to the EXT1-4 that are the other side of the #ifdef
for this board in arch/ppc. :-)
-Scott
^ permalink raw reply
* Re: [patch 09/16] parisc: use generic pci_enable_resources()
From: Kyle McMartin @ 2008-03-05 16:17 UTC (permalink / raw)
To: Bjorn Helgaas
Cc: linux-arch, Chris Zankel, Grant Grundler, linux-parisc,
Matthew Wilcox, Kyle McMartin, linuxppc-dev, Paul Mackerras,
linux-pci, Russell King
In-Reply-To: <20080304185821.554040328@ldl.fc.hp.com>
On Tue, Mar 04, 2008 at 11:56:55AM -0700, Bjorn Helgaas wrote:
> Use the generic pci_enable_resources() instead of the arch-specific code.
>
> Unlike this arch-specific code, the generic version:
> - checks PCI_NUM_RESOURCES (11), not DEVICE_COUNT_RESOURCE (12), resources
> - skips resources that have neither IORESOURCE_IO nor IORESOURCE_MEM set
> - skips ROM resources unless IORESOURCE_ROM_ENABLE is set
> - checks for resource collisions with "!r->parent"
>
> Signed-off-by: Bjorn Helgaas <bjorn.helgaas@hp.com>
>
Acked-by: Kyle McMartin <kyle@mcmartin.ca>
^ permalink raw reply
* Re: ARCH=ppc -> ARCH=powerpc : help needed for dts file
From: Philippe De Muyter @ 2008-03-05 16:15 UTC (permalink / raw)
To: Benjamin Herrenschmidt; +Cc: Scott Wood, linuxppc-dev
In-Reply-To: <1204693264.21545.165.camel@pasglop>
Hi Ben,
thanks for all the answers,
On Wed, Mar 05, 2008 at 04:01:04PM +1100, Benjamin Herrenschmidt wrote:
>
> > I also attach my current (not working) dts file attempt. It is actually
> > a modified mpc8540ads.dts file.
> >
> > I now thinks that the ide-cs (hda) discovery or not depends on the cold
> > or warm reboot.
> >
> > Here are the patches for my config (MEIP_8540) relative to a vanilla
> > linux-2.6.24. I hacked the MPC8540ADS config. The PCI4520 is the
> > multi-function chip from TI (dual-socket pc-card + iee1394 ohci and two-port
> > phy)
>
> .../...
>
> > +#ifdef CONFIG_MEIP_8540
> > + (IRQ_SENSE_LEVEL | IRQ_POLARITY_NEGATIVE), // External 0 : nINTPFO
> > + (IRQ_SENSE_LEVEL | IRQ_POLARITY_NEGATIVE), // External 1 : nINTRTC
> > + (IRQ_SENSE_LEVEL | IRQ_POLARITY_NEGATIVE), // External 2 : nINTPLD
> > + (IRQ_SENSE_LEVEL | IRQ_POLARITY_NEGATIVE), // External 3 : nINTSTX
> > + (IRQ_SENSE_LEVEL | IRQ_POLARITY_NEGATIVE), // External 4 : nINTPHY
> > +#if defined(CONFIG_PCI)
> > + (IRQ_SENSE_LEVEL | IRQ_POLARITY_NEGATIVE), /* External 5 : PCI4520 MFUNC 0 */
> > + (IRQ_SENSE_LEVEL | IRQ_POLARITY_NEGATIVE), /* External 6 : PCI4520 MFUNC 1 */
> > + (IRQ_SENSE_LEVEL | IRQ_POLARITY_NEGATIVE), /* External 7 : PCI4520 MFUNC 2 */
> > + (IRQ_SENSE_LEVEL | IRQ_POLARITY_NEGATIVE), /* External 8 : PCI4520 MFUNC 3 */
> > + (IRQ_SENSE_LEVEL | IRQ_POLARITY_NEGATIVE), /* External 9 : PCI4520 MFUNC 4 */
> > + (IRQ_SENSE_LEVEL | IRQ_POLARITY_NEGATIVE), /* External 10 : PCI4520 MFUNC 5 */
> > + (IRQ_SENSE_LEVEL | IRQ_POLARITY_NEGATIVE), /* External 11 : PCI4520 MFUNC 6 */
> > +#else
> > + 0x0, /* External 6: */
> > + 0x0, /* External 7: */
> > + 0x0, /* External 8: */
> > + 0x0, /* External 9: */
> > + 0x0, /* External 10: */
> > + 0x0, /* External 11: */
> > +#endif
> > +#else
> > 0x0, /* External 0: */
> > #if defined(CONFIG_PCI)
> > (IRQ_SENSE_LEVEL | IRQ_POLARITY_NEGATIVE), /* External 1: PCI slot 0 */
> > @@ -77,6 +100,7 @@
> > 0x0, /* External 9: */
> > 0x0, /* External 10: */
> > 0x0, /* External 11: */
> > +#endif
> > };
>
> Ok, so based on the above, I deduce that you have 12 external interrupt
> sources:
>
> 0...4 are those nINT* things. They correspond apparently do discrete
> devices on your board. You will have to create device nodes in your .dts
> for these with the appropriate interrupts property for each of these.
>
> The rest are ... hrm... weird. You -appear- to have 5 to 8 going to PCI,
> to PIRQA...D. Do that mean that you have wired your connectors on the board
> such that the interrupt does not depend on the actual slot number ?
I asked the guy who designed the hardware, and if I understand correctly :
- the i/o and memory resources of the pci device are connected to the pci bus
- the interrupts are directly connected to the MPIC
Can I describe that in the dts file ?
Philippe
>
> Or are you doing some swizzling ?
>
> Also, I would need to know how those external IRQs are connected to the MPIC,
> I don't have the spec of that chip here. Hrm. Somebody from freescale can
> help him here ?
>
> It's also not clear to me what your interrupts 9 10 and 11 are since you
> seem to only talk about PIRQA...D which is only 4 lines ..
>
> So at this stage, that's not enough information. We need to know exactly how
> you have wired things on your board, and somebody from fsl needs to tell
> me how the ExtIrq are routed to the MPIC on that guy.
>
> Once that's done, you seem to have grasped the interrupt map... for any
> device or slot, you provide the mapping between idsel/pirq line on one side,
> and mpic interrupt & sense on the other. For PCI, sense is always 1 for an
> mpic so you mostly have to check your actual MPIC source numbers.
>
> >From your .dts, I see you've been doing some swizzling of slots using
> interrupts 1...4 ... do that correspond to EXTIRQ 5....8 ?
>
> Ben.
>
> >
> > /* ************************************************************************ */
> > --- ./arch/ppc/platforms/85xx/mpc85xx_ads_common.hbk 2008-01-24 22:58:37.000000000 +0000
> > +++ ./arch/ppc/platforms/85xx/mpc85xx_ads_common.h 2008-02-20 16:36:07.000000000 +0000
> > @@ -29,10 +29,17 @@
> > extern void mpc85xx_ads_map_io(void) __init;
> >
> > /* PCI interrupt controller */
> > +#ifdef CONFIG_MEIP_8540
> > +#define PIRQA MPC85xx_IRQ_EXT5
> > +#define PIRQB MPC85xx_IRQ_EXT6
> > +#define PIRQC MPC85xx_IRQ_EXT7
> > +#define PIRQD MPC85xx_IRQ_EXT8
> > +#else
> > #define PIRQA MPC85xx_IRQ_EXT1
> > #define PIRQB MPC85xx_IRQ_EXT2
> > #define PIRQC MPC85xx_IRQ_EXT3
> > #define PIRQD MPC85xx_IRQ_EXT4
> > +#endif
> >
> > #define MPC85XX_PCI1_LOWER_IO 0x00000000
> > #define MPC85XX_PCI1_UPPER_IO 0x00ffffff
^ permalink raw reply
* Could you tell me how to use the Flat Device Tree for linux-2.6.22?
From: 郭劲 @ 2008-03-05 15:09 UTC (permalink / raw)
To: linuxppc-embedded
Hi, freescale,
I want to use the Flat Device Tree for linux-2.6.22, my board is mpc8360. could
you give me an example? thanks.
^ permalink raw reply
* The question about the linux Exception during the GETH test on MPC8360?
From: 郭劲 @ 2008-03-05 15:00 UTC (permalink / raw)
To: linuxppc-embedded
HI,friends,
I tested the GETH on MPC8360 by "iperf", after several times test, the linux is
dead, please see follow information. Then I slow down the core frequency from
667MHZ to 533MHZ, the test is OK, could you tell me where has the problem?
Thanks.
/ # iperf -c 192.168.0.2 -i 6 -t 600
------------------------------------------------------------
Client connecting to 192.168.0.2, TCP port 5001
TCP window size: 27.9 KByte (default)
------------------------------------------------------------
[ 3] local 192.168.0.202 port 2079 connected with 192.168.0.2 port 5001
[ 3] 0.0- 6.0 sec 267 MBytes 374 Mbits/sec
[ 3] 6.0-12.0 sec 268 MBytes 375 Mbits/sec
[ 3] 12.0-18.0 sec 267 MBytes 374 Mbits/sec
[ 3] 18.0-24.0 sec 266 MBytes 372 Mbits/sec
[ 3] 24.0-30.0 sec 256 MBytes 358 Mbits/sec
[ 3] 30.0-36.0 sec 264 MBytes 369 Mbits/sec
[ 3] 36.0-42.0 sec 268 MBytes 374 Mbits/sec
[ 3] 42.0-48.0 sec 268 MBytes 375 Mbits/sec
kernel BUG in skb_checksum at net/core/skbuff.c:1120!
Oops: Exception in kernel mode, sig: 5 [#1]
NIP: C00FC1D8 LR: C00FC004 SP: C01A9BF0 REGS: c01a9b40 TRAP: 0700 Tainted: P
MSR: 00029032 EE: 1 PR: 0 FP: 0 ME: 1 IR/DR: 11
TASK = c0191ab0[0] 'swapper' THREAD: c01a8000
Last syscall: 120
GPR00: 00000000 C01A9BF0 C0191AB0 00000000 00000000 001A3916 00000008 CED5C080
GPR08: 0E874000 CED5C660 CED5C0A0 CED5C05E C01D58B4 FAEA00A8 0FFFE000 007FFF00
GPR16: 0FFF8450 00000000 00000003 007FFEB0 00259DF0 0FFFF8E8 00800000 00000020
GPR24: C04EB360 00000000 BE570CCD 00000042 C0101174 000005A8 00000042 00000020
Call trace: [c0100f80] [c0101300] [c0118308] [c01186dc] [c0129678]
[c012ad1c]
[c012d238] [c001e3f8] [c0019d94] [c0019e60] [c0005
Kernel panic - not syncing: Aiee, killing interrupt handler!
<0>Rebooting in 180 seconds..
Follow is the UBoot information about my mpc8360 board:
U-Boot 1.2.0 (Mar 5 2008 - 17:47:06) MPC83XX
CPU: e300c1, MPC8360E, Rev: 20 at 660 MHz, CSB: 330 MHz
Board: Freescale MPC8360EMDS
I2C: ready
DRAM:
DIMM type: 32MX64U-40B
SPD size: 128
EEPROM size: 256
Memory type: 7
Row addr: 13
Column addr: 10
# of rows: 1
Row density: 64
# of banks: 4
Data width: 64
Chip width: 8
Refresh rate: 82
CAS latencies: 0C
Write latencies: 02
tRP: 72
tRCD: 72
DDR DIMM: data bus width is 64 bit without ECC2
DDRC ECC mode: OFF
SDRAM on Local Bus: 64 MB
DDR RAM: 256 MB
FLASH: 16 MB
PCI clock is 66MHz
PCI 32bit bus on PMC1 & PMC2 & PMC3
In: serial
Out: serial
Err: serial
Net: UEC: PHY is Marvell 88E11x1 (1410cc1)
FSL UEC0: Full Duplex
FSL UEC0: Speed 1000BT
FSL UEC0: Link is up
FSL UEC0
Hit any key to stop autoboot: 0
=> clocks
Clock configuration Guo Jing:
Core: 660 MHz
Coherent System Bus: 330 MHz
QE: 396 MHz
BRG: 198 MHz
Local Bus Controller: 330 MHz
Local Bus: 82 MHz
DDR: 330 MHz
DDR Secondary: 330 MHz
SEC: 110 MHz
I2C1: 330 MHz
I2C2: 330 MHz
^ permalink raw reply
* Re: [patch 08/16] mn10300: use generic pci_enable_resources()
From: David Howells @ 2008-03-05 15:13 UTC (permalink / raw)
To: Bjorn Helgaas
Cc: linux-arch, Chris Zankel, Grant Grundler, linux-parisc,
Matthew Wilcox, Kyle McMartin, linuxppc-dev, Paul Mackerras,
linux-pci, linux-arm-kernel, Russell King
In-Reply-To: <20080304185821.354198782@ldl.fc.hp.com>
Bjorn Helgaas <bjorn.helgaas@hp.com> wrote:
> Use the generic pci_enable_resources() instead of the arch-specific code.
>
> Unlike this arch-specific code, the generic version:
> - checks PCI_NUM_RESOURCES (11), not 6, resources
> - skips resources that have neither IORESOURCE_IO nor IORESOURCE_MEM set
> - skips ROM resources unless IORESOURCE_ROM_ENABLE is set
> - checks for resource collisions with "!r->parent"
>
> Signed-off-by: Bjorn Helgaas <bjorn.helgaas@hp.com>
Acked-by: David Howells <dhowells@redhat.com>
^ permalink raw reply
* Re: [patch 05/16] frv: use generic pci_enable_resources()
From: David Howells @ 2008-03-05 14:52 UTC (permalink / raw)
To: Bjorn Helgaas
Cc: linux-arch, Chris Zankel, Grant Grundler, linux-parisc,
Matthew Wilcox, Kyle McMartin, linuxppc-dev, Paul Mackerras,
linux-pci, linux-arm-kernel, Russell King
In-Reply-To: <20080304185820.723623873@ldl.fc.hp.com>
Bjorn Helgaas <bjorn.helgaas@hp.com> wrote:
> Use the generic pci_enable_resources() instead of the arch-specific code.
>
> Unlike this arch-specific code, the generic version:
> - checks PCI_NUM_RESOURCES (11), not 6, resources
> - skips resources that have neither IORESOURCE_IO nor IORESOURCE_MEM set
> - skips ROM resources unless IORESOURCE_ROM_ENABLE is set
> - checks for resource collisions with "!r->parent"
>
> Signed-off-by: Bjorn Helgaas <bjorn.helgaas@hp.com>
Acked-by: David Howells <dhowells@redhat.com>
^ permalink raw reply
* Re: [patch 01/16] PCI: add generic pci_enable_resources()
From: David Howells @ 2008-03-05 14:53 UTC (permalink / raw)
To: Bjorn Helgaas
Cc: linux-arch, Chris Zankel, Grant Grundler, linux-parisc,
Matthew Wilcox, Kyle McMartin, linuxppc-dev, Paul Mackerras,
linux-pci, linux-arm-kernel, Russell King
In-Reply-To: <20080304185819.885549413@ldl.fc.hp.com>
Bjorn Helgaas <bjorn.helgaas@hp.com> wrote:
> Each architecture has its own pcibios_enable_resources() implementation.
> These differ in many minor ways that have nothing to do with actual
> architectural differences. Follow-on patches will make most arches
> use this generic version instead.
>
> This version is based on powerpc, which seemed most up-to-date. The only
> functional difference from the x86 version is that this uses "!r->parent"
> to check for resource collisions instead of "!r->start && r->end".
>
> Signed-off-by: Bjorn Helgaas <bjorn.helgaas@hp.com>
Acked-by: David Howells <dhowells@redhat.com>
^ permalink raw reply
* Re: Unresolved symbols while inserting a module in linux
From: ravi.rao @ 2008-03-05 15:01 UTC (permalink / raw)
To: mahendra varman
Cc: linuxppc-embedded-bounces+ravi.rao=rflelect.com, linux-kernel,
linuxppc-embedded
In-Reply-To: <4ac2955e0803050644g2ccd2e46n305d2790389b517@mail.gmail.com>
[-- Attachment #1: Type: text/plain, Size: 3921 bytes --]
Hi,
In 2.6 kernel All the functions that are being used by a module should
have been exported by the provider..
For Example If your driver module say foo.ko wants to use function x ( )
defined in bar.c, then in bar.c the function x () had be exported using
EXPORT_SYMBOL_GPL(x); If not when you try to insmod foo.ko U will get
unresolved symbol x.
There should be something similar in 2.4..
Thanks,
Ravishankar Govindarao
RFL Electronics Inc.
E-mail : Ravi.Rao@rflelect.com
Voice: 973.334.3100 Ext. 233
Fax: 973.334.3863
CONFIDENTIALITY NOTE
This e-mail, including any attachments, may contain confidential and/or
legally privileged information. The Information is intended only for the
use of the individual or entity named on this e-mail . If you are not the
intended recipient, you are hereby notified that any disclosure, copying,
distribution, or the taking of any action in reliance on the contents of
this transmitted Information is strictly prohibited. Further, if you are
not the intended recipient, please notify us by return e-mail and delete
the Information promptly.
"mahendra varman" <mahendravarman15@gmail.com>
Sent by: linuxppc-embedded-bounces+ravi.rao=rflelect.com@ozlabs.org
03/05/2008 09:44 AM
To
linuxppc-embedded@ozlabs.org, linux-kernel@vger.kernel.org
cc
Subject
Unresolved symbols while inserting a module in linux
Hi all
For a customised hdlc card we have written hdlc driver.
we need to compile it as a module in linux 2.4.25 version
Thru Config.in we have defined the customised driver as tristate and
selected 'M' in menuconfig for that driver
The other dependencies generic hdlc driver, cisco , framedelay , ppp
etc are compiled as configured within the kernel itself
By giving make modules we have produced driver.o file
When I insert the driver.o using insmod iam getting the following
unresolved symbols
Even though the dependencies have been configured with the kernel
itself iam getting these unresolved symbols
If we use modprobe driver.o (or) modprobe driver it is reporting
driver:applet not found..
Help me to produce a module with its dependencies also to solve the
unresolved symbols error
Thanks
---------------------------------------------------- unresolved
symbols after insmod
------------------------------------------------------
Using driver.o
insmod: unresolved symbol pci_write_config_byte
insmod: unresolved symbol __netdev_watchdog_up
insmod: unresolved symbol schedule_timeout
insmod: unresolved symbol __kfree_skb
insmod: unresolved symbol alloc_skb
insmod: unresolved symbol pci_register_driver
insmod: unresolved symbol register_hdlc_device
insmod: unresolved symbol unregister_hdlc_device
insmod: unresolved symbol __release_region
insmod: unresolved symbol kmalloc
insmod: unresolved symbol pci_free_consistent
insmod: unresolved symbol pci_free_consistent
insmod: unresolved symbol __save_flags_ptr
insmod: unresolved symbol ioremap
insmod: unresolved symbol cpu_raise_softirq
insmod: unresolved symbol free_irq
insmod: unresolved symbol __out_of_line_bug
insmod: unresolved symbol iounmap
insmod: unresolved symbol pci_alloc_consistent
insmod: unresolved symbol iomem_resource
insmod: unresolved symbol kfree
insmod: unresolved symbol strlen
insmod: unresolved symbol request_irq
insmod: unresolved symbol netif_rx
insmod: unresolved symbol pci_unregister_driver
insmod: unresolved symbol skb_over_panic
insmod: unresolved symbol pci_set_master
insmod: unresolved symbol hdlc_ioctl
insmod: unresolved symbol jiffies
insmod: unresolved symbol __copy_tofrom_user
insmod: unresolved symbol __restore_flags
insmod: unresolved symbol softnet_data
insmod: unresolved symbol __request_region
insmod: unresolved symbol printk
insmod: unresolved symbol __cli
_______________________________________________
Linuxppc-embedded mailing list
Linuxppc-embedded@ozlabs.org
https://ozlabs.org/mailman/listinfo/linuxppc-embedded
[-- Attachment #2: Type: text/html, Size: 5852 bytes --]
^ permalink raw reply
* Unresolved symbols while inserting a module in linux
From: mahendra varman @ 2008-03-05 14:44 UTC (permalink / raw)
To: linuxppc-embedded, linux-kernel
Hi all
For a customised hdlc card we have written hdlc driver.
we need to compile it as a module in linux 2.4.25 version
Thru Config.in we have defined the customised driver as tristate and
selected 'M' in menuconfig for that driver
The other dependencies generic hdlc driver, cisco , framedelay , ppp
etc are compiled as configured within the kernel itself
By giving make modules we have produced driver.o file
When I insert the driver.o using insmod iam getting the following
unresolved symbols
Even though the dependencies have been configured with the kernel
itself iam getting these unresolved symbols
If we use modprobe driver.o (or) modprobe driver it is reporting
driver:applet not found..
Help me to produce a module with its dependencies also to solve the
unresolved symbols error
Thanks
---------------------------------------------------- unresolved
symbols after insmod
------------------------------------------------------
Using driver.o
insmod: unresolved symbol pci_write_config_byte
insmod: unresolved symbol __netdev_watchdog_up
insmod: unresolved symbol schedule_timeout
insmod: unresolved symbol __kfree_skb
insmod: unresolved symbol alloc_skb
insmod: unresolved symbol pci_register_driver
insmod: unresolved symbol register_hdlc_device
insmod: unresolved symbol unregister_hdlc_device
insmod: unresolved symbol __release_region
insmod: unresolved symbol kmalloc
insmod: unresolved symbol pci_free_consistent
insmod: unresolved symbol pci_free_consistent
insmod: unresolved symbol __save_flags_ptr
insmod: unresolved symbol ioremap
insmod: unresolved symbol cpu_raise_softirq
insmod: unresolved symbol free_irq
insmod: unresolved symbol __out_of_line_bug
insmod: unresolved symbol iounmap
insmod: unresolved symbol pci_alloc_consistent
insmod: unresolved symbol iomem_resource
insmod: unresolved symbol kfree
insmod: unresolved symbol strlen
insmod: unresolved symbol request_irq
insmod: unresolved symbol netif_rx
insmod: unresolved symbol pci_unregister_driver
insmod: unresolved symbol skb_over_panic
insmod: unresolved symbol pci_set_master
insmod: unresolved symbol hdlc_ioctl
insmod: unresolved symbol jiffies
insmod: unresolved symbol __copy_tofrom_user
insmod: unresolved symbol __restore_flags
insmod: unresolved symbol softnet_data
insmod: unresolved symbol __request_region
insmod: unresolved symbol printk
insmod: unresolved symbol __cli
^ permalink raw reply
* Re: [PATCH 3/4] Emerson KSI8560 device tree
From: Alexandr Smirnov @ 2008-03-05 14:45 UTC (permalink / raw)
To: David Gibson; +Cc: linuxppc-dev
In-Reply-To: <20080304232940.GB8399@localhost.localdomain>
Hi
David, could you please explain what do you mean by "old bindind"? I
looked through ppc_dev listing,
documentation, and how it's done for other boards, but didn't find any
difference with my code. Maybe
you're talking about future changes in ethernet driver registration?
Thanks,
Alexandr.
David Gibson wrote:
>> + device_type = "network";
>> + model = "TSEC";
>> + compatible = "gianfar";
>>
>
> This still looks like the old binding.
>
^ permalink raw reply
* Re: [BUG] 2.6.25-rc3-mm1 kernel panic while bootup on powerpc ()
From: Mel Gorman @ 2008-03-05 14:31 UTC (permalink / raw)
To: Christoph Lameter
Cc: linuxppc-dev, Kamalesh Babulal, linux-mm, Pekka J Enberg,
Andrew Morton
In-Reply-To: <Pine.LNX.4.64.0803041205370.18277@schroedinger.engr.sgi.com>
On (04/03/08 12:07), Christoph Lameter didst pronounce:
> I think this is the correct fix.
>
> The NUMA fallback logic should be passing local_flags to kmem_get_pages()
> and not simply the flags.
>
> Maybe a stable candidate since we are now simply
> passing on flags to the page allocator on the fallback path.
>
> Signed-off-by: Christoph Lameter <clameter@sgi.com>
Acked-by: Mel Gorman <mel@csn.ul.ie>
Thanks Christoph.
>
> ---
> mm/slab.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> Index: linux-2.6.25-rc3-mm1/mm/slab.c
> ===================================================================
> --- linux-2.6.25-rc3-mm1.orig/mm/slab.c 2008-03-04 12:01:07.430911920 -0800
> +++ linux-2.6.25-rc3-mm1/mm/slab.c 2008-03-04 12:04:54.449857145 -0800
> @@ -3277,7 +3277,7 @@ retry:
> if (local_flags & __GFP_WAIT)
> local_irq_enable();
> kmem_flagcheck(cache, flags);
> - obj = kmem_getpages(cache, flags, -1);
> + obj = kmem_getpages(cache, local_flags, -1);
> if (local_flags & __GFP_WAIT)
> local_irq_disable();
> if (obj) {
>
--
Mel Gorman
Part-time Phd Student Linux Technology Center
University of Limerick IBM Dublin Software Lab
^ permalink raw reply
* Re: [BUG] 2.6.25-rc3-mm1 kernel panic while bootup on powerpc ()
From: Mel Gorman @ 2008-03-05 14:02 UTC (permalink / raw)
To: Andrew Morton
Cc: linuxppc-dev, kamalesh, linux-mm, penberg, stable,
Christoph Lameter
In-Reply-To: <20080304123459.364f879b.akpm@linux-foundation.org>
On (04/03/08 12:34), Andrew Morton didst pronounce:
> On Tue, 4 Mar 2008 12:07:39 -0800 (PST)
> Christoph Lameter <clameter@sgi.com> wrote:
>
> > I think this is the correct fix.
> >
> > The NUMA fallback logic should be passing local_flags to kmem_get_pages()
> > and not simply the flags.
> >
> > Maybe a stable candidate since we are now simply
> > passing on flags to the page allocator on the fallback path.
>
> Do we know why this is only reported in 2.6.25-rc3-mm1?
>
> Why does this need fixing in 2.6.24.x?
>
I don't believe it needs to be fixed in 2.6.24.3. The call-sites in
lib/radix-tree.c there look like
ret = kmem_cache_alloc(radix_tree_node_cachep,
set_migrateflags(gfp_mask, __GFP_RECLAIMABLE));
node = kmem_cache_alloc(radix_tree_node_cachep,
set_migrateflags(gfp_mask, __GFP_RECLAIMABLE));
and set_migrateflags() looks like
#define GFP_MOVABLE_MASK (__GFP_RECLAIMABLE|__GFP_MOVABLE)
static inline gfp_t set_migrateflags(gfp_t gfp, gfp_t migrate_flags)
{
BUG_ON((gfp & GFP_MOVABLE_MASK) == GFP_MOVABLE_MASK);
return (gfp & ~(GFP_MOVABLE_MASK)) | migrate_flags;
}
so the flags were already getting cleared and the WARN_ON could not
trigger in this path. In 2.6.25-rc3-mm1, the patch
remove-set_migrateflags.patch gets rid of set_migateflags()
which led to this situation.
The surprise is that it didn't get caught in an earlier -mm but it could
be because it only affected slab.
--
Mel Gorman
Part-time Phd Student Linux Technology Center
University of Limerick IBM Dublin Software Lab
^ permalink raw reply
* HugeTLB on MPC 85xx ?
From: Fillod Stephane @ 2008-03-05 13:04 UTC (permalink / raw)
To: linuxppc-embedded
Hi,
Most of you know already about HugeTLB
(Documentation/vm/hugetlbpage.txt).
Is there any plan of HugeTLB support for the MPC 85xx platform?
This is IMO an important feature missing in Linux for those great SoC.
Would any 4K assumption in the kernel be a showstopper for HugeTLB?
On a similar SoC, is there any status about "Huge-page support for
ppc440"?
http://thread.gmane.org/gmane.linux.ports.ppc.embedded/14814
Thanks
--=20
Stephane
^ permalink raw reply
* RE: I2S driver
From: Pedro Luis D. L. @ 2008-03-05 12:36 UTC (permalink / raw)
To: linuxppc-embedded
[-- Attachment #1: Type: text/plain, Size: 504 bytes --]
Angelo wrote:
>
> Pedro wrote:
>>Which library do you mean? I don't understand, sorry.
>
> In your previous mail (with code), each lines with an "#include " don't show the name of header file.
>
> thanks
>
Ups! Sorry, I send the code as an attached file, then.
>
>
> ________________________________
> L'email della prossima generazione? Puoi averla con la Nuova Yahoo! Mail
_________________________________________________________________
MSN Video.
http://video.msn.com/?mkt=es-es
[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: mpc52xx_spi.c --]
[-- Type: text/x-csrc, Size: 18977 bytes --]
/***************************************************************************
* Copyright (C) 2007 by Pedro L. Domínguez *
* pedro.dominguez@aed-engineering.com *
* *
* This program is free software; you can redistribute it and/or modify *
* it under the terms of the GNU General Public License as published by *
* the Free Software Foundation; either version 2 of the License, or *
* (at your option) any later version. *
* *
* This program is distributed in the hope that it will be useful, *
* but WITHOUT ANY WARRANTY; without even the implied warranty of *
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
* GNU General Public License for more details. *
* *
* You should have received a copy of the GNU General Public License *
* along with this program; if not, write to the *
* Free Software Foundation, Inc., *
* 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. *
* *
* History *
* Original Version by Bernhard Kuhn <bkuhn@freescale.com> *
* for 2.6.16 kernel *
***************************************************************************/
#define SPI_DBG
#ifdef SPI_DBG
#define DBG(x...) printk("(debug) " x)
#else
#define DBG(x...)
#endif
#include <linux/init.h>
#include <linux/kernel.h>
#include <linux/module.h>
#include <linux/slab.h>
#include <linux/fs.h>
#include <linux/errno.h>
#include <linux/types.h>
#include <linux/proc_fs.h>
#include <linux/fcntl.h>
#include <linux/spinlock.h>
#include <linux/platform_device.h>
#include <asm/system.h>
#include <asm/uaccess.h>
#include <asm/io.h>
#include <linux/string.h>
#include <linux/autoconf.h>
#include <linux/timer.h>
#include <linux/init.h>
#include <linux/version.h>
#include <linux/sched.h>
#include <linux/smp_lock.h>
#include <linux/miscdevice.h>
#include <linux/interrupt.h>
#include <linux/irq.h>
#include <linux/ioport.h>
#include <linux/poll.h>
#include <asm/io.h>
#include <asm/uaccess.h>
#include <asm/system.h>
#include <asm/delay.h>
#include <asm/mpc52xx.h>
#include <asm/mpc52xx_psc.h>
#include <asm/of_platform.h>
#include <sysdev/bestcomm/bestcomm.h>
#include <sysdev/bestcomm/gen_bd.h>
#include <sysdev/bestcomm/bestcomm_priv.h>
#include <sound/pcm.h>
#include <sound/asound.h>
// #include <sound/typedefs.h>
#define BPF 2 // bytes per frame
#define SLOTS 2
#define SAMPLESIZE (BPF*SLOTS)
#define FPP 1024 // bytes per copy period
#define PERIODS 8 // periods
#define PERIODSIZE (SAMPLESIZE/2*FPP)
#define BUFSIZE (SAMPLESIZE*FPP*PERIODS)
#define FPP_HW 128
//512 // 10 ms
#define PERIODS_HW 8 // periods
#define PERIODSIZE_HW (SAMPLESIZE*FPP_HW)
#define FIFOSIZE 512
#define RX_GRAN 4
#define TX_GRAN 4
#define RX_ALARM 0x120
#define TX_ALARM FIFOSIZE - (TX_GRAN * 4) - 208
#define DELAY_TIME_SLOT 0x20000000
#define GEN_CLK_INT 0x00800000
#define MULTIWD_ENABLE 0x00400000
#define CLK_POL_RISING 0x00200000
#define PROCFS_NAME "MPC52xx_SPI"
#define MCLKEN_DIV 0x8001
#define DRV_NAME "mpc52xx-psc-spi"
#define PROCFS_MAX_SIZE 1024
#define BUF_FRAMES 300
/* MBAR position */
#define MPC52xx_MBAR 0xf0000000 /* Phys address */
#define MPC52xx_MBAR_VIRT 0xf0000000 /* Virt address */
#define MPC52xx_MBAR_SIZE 0x00010000
#define MPC52xx_PA(x) ((phys_addr_t)(MPC52xx_MBAR + (x)))
#define MPC52xx_VA(x) ((void __iomem *)(MPC52xx_MBAR_VIRT + (x)))
/* Registers zone offset/size */
#define MPC52xx_MMAP_CTL_OFFSET 0x0000
#define MPC52xx_MMAP_CTL_SIZE 0x068
#define MPC52xx_SDRAM_OFFSET 0x0100
#define MPC52xx_SDRAM_SIZE 0x010
#define MPC52xx_CDM_OFFSET 0x0200
#define MPC52xx_CDM_SIZE 0x038
#define MPC52xx_INTR_OFFSET 0x0500
#define MPC52xx_INTR_SIZE 0x04c
#define MPC52xx_GPTx_OFFSET(x) (0x0600 + ((x)<<4))
#define MPC52xx_GPT_SIZE 0x010
#define MPC52xx_RTC_OFFSET 0x0800
#define MPC52xx_RTC_SIZE 0x024
#define MPC52xx_GPIO_OFFSET 0x0b00
#define MPC52xx_GPIO_SIZE 0x040
#define MPC52xx_GPIO_WKUP_OFFSET 0x0c00
#define MPC52xx_GPIO_WKUP_SIZE 0x028
#define MPC52xx_PCI_OFFSET 0x0d00
#define MPC52xx_PCI_SIZE 0x100
#define MPC52xx_SDMA_OFFSET 0x1200
#define MPC52xx_SDMA_SIZE 0x100
#define MPC52xx_XLB_OFFSET 0x1f00
#define MPC52xx_XLB_SIZE 0x100
#define MPC52xx_PSCx_OFFSET(x) (((x)!=6)?(0x1e00+((x)<<9)):0x2c00)
#define MPC52xx_PSC_SIZE 0x0a0
#define PORT_CONFIG_PSC1 0x00000006
#define PSC1_CLK_EN 0x00000020
typedef unsigned long uint32;
typedef unsigned long UInteger32;
typedef unsigned short UInteger16;
struct proc_dir_entry *Our_Proc_File;
struct SPI_buffer {
char *va;
dma_addr_t pa;
};
static struct SPI_buffer SPI_tx_silence;
static struct SPI_buffer SPI_rx_bufs;
typedef struct _node {
struct SPI_buffer buffer;
struct _node *next;
} Node;
static Node *LastNode;
static Node *FirstNode;
Node *FirstNodeFree;
Node *LastNodeFree;
struct bcom_task *tx_bcom;
struct bcom_task *rx_bcom;
int r_irq;
int t_irq;
struct mpc52xx_psc *psc;
struct mpc52xx_spi_priv {
struct device *dev;
resource_size_t mem_start;
resource_size_t mem_len;
int irq;
struct mpc52xx_psc __iomem *psc;
struct bcom_task *tsk_tx;
spinlock_t dma_lock;
int period_byte_size;
u32 period_start, period_end, period_next_p;
};
static int initiator_tx;
static int initiator_rx;
static struct snd_pcm_substream *snd_SPI_substream;
static int snd_SPImgt_running = 0;
static int snd_SPImgt_started = 2;
static int SPI_pos = 0;
static int SPI_play = 0;
static int nodecounter=0;
static unsigned int dmablockcounter=0;
static struct hrtimer start_timer;
static struct timeval tclockup = {.tv_sec = 1,.tv_usec = 0};
static struct timeval tclockdown= {.tv_sec = 0,.tv_usec = 615080};
static ktime_t kt_timedown, kt_timeup ;
void (*hook_per_elap)(int, int);
UInteger32 (*hook_frames_rcv)(void);
int SPI_buffers_init(void) {
int i;
Node *node;
FirstNodeFree = (Node *)kmalloc(sizeof(Node), GFP_KERNEL);
FirstNodeFree->buffer.va = kmalloc(PERIODSIZE_HW, GFP_DMA);
FirstNodeFree->buffer.pa = virt_to_phys((void *)FirstNodeFree->buffer.va);
node = FirstNodeFree;
for (i=1;i<BUF_FRAMES;i++)
{
node->next = (Node *)kmalloc(sizeof(Node), GFP_KERNEL);
node->next->buffer.va = kmalloc(PERIODSIZE_HW, GFP_DMA);
node->next->buffer.pa = virt_to_phys((void *)node->next->buffer.va);
node = node->next;
}
LastNodeFree = node;
LastNodeFree->next=NULL;
DBG("SPI_buffers_init()\n");
// prepare reception buffer
SPI_rx_bufs.va = kmalloc(BUFSIZE, GFP_DMA);
SPI_rx_bufs.pa = virt_to_phys((void *)SPI_rx_bufs.va);
// prepare silence buffer
SPI_tx_silence.va = kmalloc(BUFSIZE, GFP_DMA);
SPI_tx_silence.pa = virt_to_phys((void *)SPI_tx_silence.va);
memset(SPI_tx_silence.va,0,BUFSIZE);
return 0;
}
int snd_SPI_pcm_trigger(struct snd_pcm_substream *substream, int cmd) {
#ifdef SND_I2S_DEBUG
printk("snd_SPI_pcm_trigger\n");
#endif
switch (cmd) {
case SNDRV_PCM_TRIGGER_START:
case SNDRV_PCM_TRIGGER_RESUME:
#ifdef SND_I2S_DEBUG
printk("START\n");
#endif
snd_SPI_substream=substream;
snd_SPImgt_started=2;
snd_SPImgt_running=1;
break;
case SNDRV_PCM_TRIGGER_STOP:
case SNDRV_PCM_TRIGGER_SUSPEND:
#ifdef SND_I2S_DEBUG
printk("STOP\n");
#endif
snd_SPImgt_running=0;
break;
case SNDRV_PCM_TRIGGER_PAUSE_PUSH:
printk(" PAUSE_PUSH\n");
break;
case SNDRV_PCM_TRIGGER_PAUSE_RELEASE:
printk(" PAUSE_RELEASE\n");
break;
default:
return -EINVAL;
}
return 0;
};
EXPORT_SYMBOL(snd_SPI_pcm_trigger);
static irqreturn_t SPI_rx_irq(int irq, void *dev_id) {
// no need for TaskIntClear(rxtask), OS masks and acks IRQ
struct mpc52xx_spi_priv *priv = dev_id;
spin_lock(&priv->dma_lock);
while (bcom_buffer_done(rx_bcom)) {
struct bcom_gen_bd *bd;
bcom_retrieve_buffer(rx_bcom, NULL, NULL);
/* Submit a new one */
bd = (struct bcom_gen_bd *) bcom_prepare_next_buffer(rx_bcom);
bd->status = 512;
bd->buf_pa = SPI_rx_bufs.pa;
bcom_submit_next_buffer(rx_bcom, NULL);
bcom_enable(rx_bcom);
}
spin_unlock(&priv->dma_lock);
return IRQ_HANDLED;
};
static irqreturn_t SPI_tx_irq(int irq, void *dev_id) {
// no need for TaskIntClear(txtask), OS masks and acks IRQ
struct mpc52xx_spi_priv *priv = dev_id;
struct bcom_gen_bd *bd;
Node *node;
if(psc->mpc52xx_psc_status&0x1800) {
printk("PSC Reset\n");
psc->command = MPC52xx_PSC_RST_RX;
psc->command = MPC52xx_PSC_RST_TX;
psc->command = MPC52xx_PSC_SEL_MODE_REG_1;
psc->command = MPC52xx_PSC_RST_ERR_STAT;
psc->command = MPC52xx_PSC_TX_ENABLE | MPC52xx_PSC_RX_ENABLE;
};
spin_lock(&priv->dma_lock);
for(;;)
{
if(!bcom_buffer_done(tx_bcom)) {
break;
}
bcom_retrieve_buffer(tx_bcom, NULL, NULL);
/* Submit a new one */
bd = (struct bcom_gen_bd *) bcom_prepare_next_buffer(tx_bcom);
if (snd_SPImgt_running)
{
if((FirstNode == NULL)) {
bd->status = PERIODSIZE_HW;
bd->buf_pa = SPI_tx_silence.pa;
bcom_submit_next_buffer(tx_bcom, NULL);
if(hook_per_elap != NULL) {
hook_per_elap(SPI_pos, SPI_play);
}
}
else
{
node=FirstNode;
FirstNode=node->next;
if(FirstNode==NULL)LastNode=NULL;
bd->status = PERIODSIZE_HW;
bd->buf_pa = (void *)(((u32)node->buffer.pa));
bcom_submit_next_buffer(tx_bcom, NULL);
node->next=NULL;
if(LastNodeFree!=NULL)
LastNodeFree->next=node;
LastNodeFree=node;
if(FirstNodeFree==NULL)FirstNodeFree=LastNodeFree;
nodecounter--;
}
dmablockcounter++;
} else {
bd->status = PERIODSIZE_HW;
bd->buf_pa = SPI_tx_silence.pa;
bcom_submit_next_buffer(tx_bcom, NULL);
}
bcom_enable(tx_bcom);
}
spin_unlock(&priv->dma_lock);
return IRQ_HANDLED;
};
typedef struct {
unsigned short l;
unsigned short r;
} sample_t;
static int frame=0;
static Node *nodebuild;
static int counter =0;
static int *ptr=NULL;
int snd_SPI_pcm_copy(struct snd_pcm_substream *substream,
int voice,
snd_pcm_uframes_t pos,
void *src,
snd_pcm_uframes_t count) {
snd_pcm_uframes_t i;
// sample_t* data = (sample_t*) src;
UInteger32 *data = (UInteger32 *) src;
int cnt=count;
// unsigned short aux;
// printk("1.cnt %d, frame %d\n",cnt, frame);
while (cnt > 0)
{
counter++;
if(counter == 1000){
// printk("Frames: %d\n",nodecounter);
counter=0;
}
if(ptr==NULL)
{
if(FirstNodeFree != NULL)
{
nodebuild = FirstNodeFree;
FirstNodeFree = FirstNodeFree->next;
if(FirstNodeFree==NULL)LastNodeFree=NULL;
}
else
{
nodebuild = (Node *)kmalloc(sizeof(Node), GFP_KERNEL);
nodebuild->buffer.va = kmalloc(PERIODSIZE_HW, GFP_DMA);
nodebuild->buffer.pa = virt_to_phys((void *)nodebuild->buffer.va);
nodebuild->next=NULL;
// printk("Getting more Frames buffers, num of nodes %d\n",nodecounter);
}
ptr=(int *)nodebuild->buffer.va;
frame=0;
}
// printk("2.cnt %d, frame %d\n",cnt, frame);
if(cnt >= (FPP_HW -frame))
{
for(i=0;i<(FPP_HW-frame);i++) {
// printk(" 0x%04x ",data->l);
// printk(" 0x%04x ",data->r);
//Big Endian
// aux=((data->l>>8)&0xff)+((data->l << 8)&0xff00);
// *(ptr+(i*SLOTS)+(frame*SLOTS)) = (aux<<16);
// aux=((data->r>>8)&0xff)+((data->r << 8)&0xff00);
// *(ptr+(i*SLOTS)+(frame*SLOTS)+1) = (aux<<16);
//Little Endian
// *(ptr+(i*SLOTS)+(frame*SLOTS)) = (data->l<<16);
// *(ptr+(i*SLOTS)+(frame*SLOTS)+1) = (data->r<<16);
//Raw Data
// printk("src: 0x%08x\n", *(UInteger32 *)data);
*(ptr+i) = *(UInteger32 *)data;
data++;
};
cnt=cnt-(FPP_HW-frame);
frame=0;
ptr=NULL;
nodebuild->next=NULL;
if(LastNode != NULL) LastNode->next = nodebuild;
if(FirstNode == NULL) FirstNode = nodebuild;
LastNode = nodebuild;
nodecounter++;
// printk("3.cnt %d, frame %d\n",cnt, frame);
}
else
{
for(i=0;i<cnt;i++) {
// printk("%04x ",data->l);
// printk("%04x ",data->r);
//Big Endian
// aux=((data->l>>8)&0xff)+((data->l << 8)&0xff00);
// *(ptr+(i*SLOTS)+(frame*SLOTS)) = (aux<<16);
// aux=((data->r>>8)&0xff)+((data->r << 8)&0xff00);
// *(ptr+(i*SLOTS)+(frame*SLOTS)+1) = (aux<<16);
//Little Endian
// *(ptr+(i*SLOTS)+(frame*SLOTS)) = (data->l<<16);
// *(ptr+(i*SLOTS)+(frame*SLOTS)+1) = (data->r<<16);
//Raw Data
*(ptr+i) = *(UInteger32 *)data;
data++;
// printk("f\n");
}
frame=cnt+frame;
cnt=0;
// printk("4.cnt %d, frame %d\n",cnt, frame);
}
}
return 0;
};
EXPORT_SYMBOL(snd_SPI_pcm_copy);
static enum hrtimer_restart timer_funct (void *data) {
static unsigned int counter = 0;
static unsigned int start = 0;
UInteger32 framesnum;
static int diff=0;
counter = dmablockcounter*128;
dmablockcounter=0;
framesnum=hook_frames_rcv();
// printk("Frequenz=%d\n",framesnum);
if(snd_SPImgt_running){
diff=diff+counter-framesnum;
start=1;
}
else
{
start=0;
}
hrtimer_forward(&start_timer, hrtimer_cb_get_time(&start_timer),kt_timeup);
return HRTIMER_RESTART;
}
static void SPI_setup(void)
{
// printk("SPI_setup()\n");
int psc_num = 1, rv;
phys_addr_t rx_fifo;
phys_addr_t tx_fifo;
struct bcom_bd *bd;
struct mpc52xx_spi_priv *priv;
uint32 SICR;
struct mpc52xx_cdm __iomem *cdm;
priv = (struct mpc52xx_spi_priv *)kmalloc(sizeof(struct mpc52xx_spi_priv), GFP_KERNEL);
struct mpc52xx_gpio __iomem *gpio =
(struct mpc52xx_gpio __iomem *) MPC52xx_PA(MPC52xx_GPIO_OFFSET);
switch(psc_num) {
case 1:
initiator_tx = BCOM_INITIATOR_PSC1_TX;
initiator_rx = BCOM_INITIATOR_PSC1_RX;
break;
case 2:
initiator_tx = BCOM_INITIATOR_PSC2_TX;
initiator_rx = BCOM_INITIATOR_PSC2_RX;
break;
default:
panic("snd-SPImgt.o: invalid value for psc_num (%i)\n",psc_num);
break;
};
// printk("Before request mem region\n");
if (!request_mem_region(0xF0002000, 0x00000100, DRV_NAME)) {
printk(KERN_ERR DRV_NAME ": request_mem_region failed\n");
rv = -EBUSY;
}
// printk("Before ioremaps\n");
psc = ioremap(MPC52xx_PA(MPC52xx_PSCx_OFFSET(1)), MPC52xx_PSC_SIZE);
gpio = ioremap(MPC52xx_PA(MPC52xx_GPIO_OFFSET), MPC52xx_GPIO_SIZE);
cdm = ioremap(MPC52xx_PA(MPC52xx_CDM_OFFSET), MPC52xx_CDM_SIZE);
psc->tfdata = 0xF0010000; // Power-down [Table 1, MAX5712 Datasheet]
gpio->port_config |= PORT_CONFIG_PSC1;
cdm->clk_enables |= PSC1_CLK_EN;
cdm->mclken_div_psc1 = 0x8010;
rx_fifo = MPC52xx_PA(MPC52xx_PSCx_OFFSET(psc_num))+0x60;
tx_fifo = MPC52xx_PA(MPC52xx_PSCx_OFFSET(psc_num))+0x80;
spin_lock_init(&priv->dma_lock);
// printk("Before Tasks init\n");
rx_bcom = bcom_gen_bd_rx_init(2, (phys_addr_t)rx_fifo, initiator_rx, BCOM_IPR_PSC1_RX, 512);
tx_bcom = bcom_gen_bd_tx_init(8, (phys_addr_t)tx_fifo, initiator_tx, BCOM_IPR_PSC1_TX);
r_irq = bcom_get_task_irq(rx_bcom);
t_irq = bcom_get_task_irq(tx_bcom);
printk("r_irq %d 0x%08x t_irq %d 0x%08x, r_tasknum %d, t_tasknum %d\n", r_irq, r_irq, t_irq, t_irq, rx_bcom->tasknum, tx_bcom->tasknum);
psc->command = (MPC52xx_PSC_TX_DISABLE | MPC52xx_PSC_RX_DISABLE);
psc->command = MPC52xx_PSC_RST_RX;
psc->command = MPC52xx_PSC_RST_TX;
psc->command = MPC52xx_PSC_RST_ERR_STAT;
psc->op1 = 0x03;
udelay(10);
psc->op0 = 0x02;
udelay(50);
SICR = 0x0F90E000;
psc->command = 0x0A;
psc->sicr = SICR;
psc->ctur = 0x03;
psc->ctlr = 0x34;
psc->ccr = 0x070F0000;
psc->rfalarm = RX_ALARM;
psc->tfalarm = TX_ALARM;
psc->rfcntl = RX_GRAN;
psc->tfcntl = TX_GRAN;
psc->isr_imr.isr = 0x00;
psc->isr_imr.imr = 0x00;
psc->mode = 0x00; /* set RX interrupt to RxRDY */
psc->command = (MPC52xx_PSC_TX_ENABLE | MPC52xx_PSC_RX_ENABLE);
psc->tfdata = 0xF0010000; // Power-down [Table 1, MAX5712 Datasheet]
udelay(100);
psc->tfdata = 0xF0000000; // Wake-up [Table 1, MAX5712 Datasheet]
udelay(100);
// printk("Before request_irq's\n");
if (request_irq(r_irq, &SPI_rx_irq, /*IRQF_DISABLED*/0, "SPI rx dma", priv)) {
printk(KERN_ERR "SPI: SDMA rx irq allocation failed\n");
return;
}
if (request_irq(t_irq, &SPI_tx_irq, /*IRQF_DISABLED*/0, "SPI tx dma", priv)) {
printk(KERN_ERR "SPI: SDMA tx irq allocation failed\n");
return;
}
bcom_gen_bd_tx_reset(tx_bcom);
bcom_gen_bd_rx_reset(rx_bcom);
// printk("Before submitting a buffer\n");
spin_lock(&priv->dma_lock);
while (!bcom_queue_full(tx_bcom)) {
struct bcom_gen_bd *bd;
/* Submit a new one */
bd = (struct bcom_gen_bd *) bcom_prepare_next_buffer(tx_bcom);
bd->status = PERIODSIZE_HW;
bd->buf_pa = SPI_tx_silence.pa;
bcom_submit_next_buffer(tx_bcom, NULL);;
}
spin_unlock(&priv->dma_lock);
bd = bcom_prepare_next_buffer(rx_bcom);
bd->status = 512;
bd->data[0] = SPI_rx_bufs.pa;
bcom_submit_next_buffer(rx_bcom, (void *)SPI_rx_bufs.pa);
psc->command = MPC52xx_PSC_RST_RX;
psc->command = MPC52xx_PSC_RST_TX;
psc->command = MPC52xx_PSC_TX_ENABLE | MPC52xx_PSC_RX_ENABLE;
bcom_enable(tx_bcom);
bcom_enable(rx_bcom);
kt_timeup = timeval_to_ktime(tclockup);
kt_timedown = timeval_to_ktime(tclockdown);
hrtimer_init(&start_timer, CLOCK_REALTIME, HRTIMER_MODE_REL);
start_timer.function = timer_funct;
// printk("Before exit in Setup_SPI()\n");
}
void register_period_elapsed(void (*funcptr)()) {
/* printk("Function registered\n");*/
hook_per_elap = funcptr;
};
void register_hook_frames_rcv(UInteger32 (*funcptr)()) {
/* printk("Function registered\n");*/
hook_frames_rcv = funcptr;
hrtimer_start(&start_timer, kt_timeup, HRTIMER_MODE_REL);
};
int snd_SPI_pcm_prepare(struct snd_pcm_substream * substream) {
#ifdef SND_I2S_DEBUG
snd_pcm_runtime_t *runtime = substream->runtime;
printk("snd_I2Smgt_pcm_prepare\n");
printk(" runtime->buffer_size=%i\n",(int)runtime->buffer_size);
printk(" runtime->period_size=%i\n",(int)runtime->period_size);
printk(" runtime->periods=%i\n",(int)runtime->periods);
#endif
SPI_play = SPI_pos = 0;
return 0;
};
EXPORT_SYMBOL(register_period_elapsed);
EXPORT_SYMBOL(register_hook_frames_rcv);
EXPORT_SYMBOL(snd_SPI_pcm_prepare);
int SPIspeaker_init(void) {
SPI_buffers_init();
SPI_setup();
return 0;
}
void SPIspeaker_exit(void) {
/* Freeing buffer SPIspeaker */
if (SPI_rx_bufs.va) {
kfree(SPI_rx_bufs.va);
}
if (SPI_tx_silence.va) {
kfree(SPI_tx_silence.va);
}
}
module_init(SPIspeaker_init);
module_exit(SPIspeaker_exit);
MODULE_DESCRIPTION("MPC52xx SPI");
MODULE_AUTHOR("Pedro Domínguez,,,, (pedro.dominguez@aed-engineering.com)");
MODULE_LICENSE("GPL");
^ permalink raw reply
* Re: [PATCH 8/11] cell: generalize io-workarounds code
From: Arnd Bergmann @ 2008-03-05 11:52 UTC (permalink / raw)
To: linuxppc-dev; +Cc: paulus
In-Reply-To: <20080305.173611.1791041378.kouish@swc.toshiba.co.jp>
On Wednesday 05 March 2008, Ishizaki Kou wrote:
> This patch splits cell io-workaround code into spider-pci dependent
> code and a generic part, and also adds interfaces to the generic
> io-workaround mechanism.
>
> Signed-off-by: Kou Ishizaki <kou.ishizaki@toshiba.co.jp>
> ---
>
> Please test on CellBlade because I don't have any access to CellBlade.
>
Ok, I'll ask around for volunteers to test it, he patch looks good so far.
^ permalink raw reply
* RE: Virtual device hdlc0 asks to que packet!
From: Joakim Tjernlund @ 2008-03-05 11:52 UTC (permalink / raw)
To: rmcguire; +Cc: linuxppc-embedded
In-Reply-To: <1204711476.20637.54.camel@gentoo-jocke.transmode.se>
On Wed, 2008-03-05 at 11:04 +0100, Joakim Tjernlund wrote:
> On Wed, 2008-03-05 at 00:43 -0800, Russell McGuire wrote:
> > Jocke,
> >
> > I wonder how one change this? I don't remember any of the API calls
> > referencing this, so maybe the default to 1000? Or perhaps that is protocol
> > specific. I will hunt through some of Freescale's Ethernet drivers and see
> > if I can't find anything.
>
> default is 1000 for ethernet.
> See tx_queue_len in net/ethernet/eth.c,
> ether_setup(struct net_device *dev)
>
> Maybe you can find out from there.
In
int mpc8360hdlc_register_netdev_ops(struct net_device *dev, dev_data_t *dev_data)
add
dev->tx_queue_len = 100;
Jocke
^ permalink raw reply
* Re: [PATCH 11/11] hvcbeat: fix buffer manipulation
From: Arnd Bergmann @ 2008-03-05 11:51 UTC (permalink / raw)
To: linuxppc-dev; +Cc: paulus
In-Reply-To: <20080305.174154.660275727.kouish@swc.toshiba.co.jp>
On Wednesday 05 March 2008, Ishizaki Kou wrote:
> This patch fixes a potential bug at drivers/char/hvc_beat.c.
> =A0- hvc_put_term_char routine will decrement "rest" variable twice,
> =A0 =A0and forget to advance "buf" pointer by "nlen" bytes.
> This bug was not hit because the output handler in
> drivers/char/hvc_console.c splits given output into 16 bytes
> at maximum.
>=20
> Reported-by: Timur Tabi <timur@freescale.com>
> Signed-off-by: Kou Ishizaki <kou.ishizaki@toshiba.co.jp>
Acked-by: Arnd Bergmann <arnd@arndb.de>
obviously correct
^ permalink raw reply
* Re: [PATCH 10/11] celleb: add support for PCI Express
From: Arnd Bergmann @ 2008-03-05 11:49 UTC (permalink / raw)
To: linuxppc-dev; +Cc: paulus
In-Reply-To: <20080305.173919.1683988103.kouish@swc.toshiba.co.jp>
On Wednesday 05 March 2008, Ishizaki Kou wrote:
> This patch adds support for PCI Express port on Celleb. I/O space
> of this PCI Express port is not mapped in memory space. So we use
> the io-workaround mechanism to make accesses indirect.
>
> Signed-off-by: Kou Ishizaki <kou.ishizaki@toshiba.co.jp>
Acked-by: Arnd Bergmann <arnd@arndb.de>
This one looks good, but I wonder if we should make it possible to
also use it on QS20, which the current code doesn't allow.
It's a rather hypothetical question, because QS20 has been replaced
by QS21 as a product and it never supported PCIe cards with I/O space
mappings, but it would be the "right" thing to do.
Since you don't have the QS20 hardware to test that, and I currently
doubt anyone at IBM has the energy to do the work, it will probably
never get done. If you send another version of the patch, maybe you
can add comments to hint that this is actually possible, just hasn't
been implemented.
^ permalink raw reply
* Re: [PATCH 9/11] celleb: consolidate io-workarounds code
From: Arnd Bergmann @ 2008-03-05 11:43 UTC (permalink / raw)
To: linuxppc-dev; +Cc: paulus
In-Reply-To: <20080305.173755.-1264110031.kouish@swc.toshiba.co.jp>
On Wednesday 05 March 2008, Ishizaki Kou wrote:
> Now, we can use generic io-workarounds mechanism and the workaround
> code for spider-pci. This patch changes Celleb PCI code to use
> spider-pci code.
>
> Signed-off-by: Kou Ishizaki <kou.ishizaki@toshiba.co.jp>
Acked-by: Arnd Bergmann <arnd@arndb.de>
Removing code is always good, and this one obviously only impacts
celleb, so I'm confident it doesn't hurt on QS20.
^ 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