* time accounting problem (powerpc only?)
From: Johannes Berg @ 2007-11-23 10:46 UTC (permalink / raw)
To: Linux Kernel list; +Cc: linuxppc-dev list
Hi,
On my powerbook, with NO_HZ and HIGH_RES_TIMERS, I observed recently
that powernowd would not ever switch between CPU speeds.
Doing some scripting to read /proc/stat every half second and print the
differences, I get output like this on a mostly idle system:
# for reference:
# [user, nice, system, idle, iowait, irq, softirq, steal, guest]
[4, 0, 3, 46, 0, 264, 0, 0, 0]
[5, 0, 4, 41, 0, 266, 0, 0, 0]
[4, 0, 7, 37, 0, 299, 0, 0, 0]
Now starting an empty while (1) loop, I see:
[53, 0, 1, 0, 0, 243, 0, 0, 0]
[53, 0, 2, 0, 0, 224, 0, 0, 0]
[45, 0, 7, 0, 0, 249, 0, 0, 0]
As you can see, the "irq" time is very high so that "user" (mostly my
CPU burning program) only accounts for maybe 15%. This leads to
powernowd thinking that all is fine and no switching is required. Also,
the whole stuff leads to top(1) displaying about 80-90% "hi" (hard irq?
calculated as irq - softirq?) time.
Does anybody have an idea why the irq time is so high? And no, I don't
think it can actually be true, I'm seeing maybe 500 interrupts/second
(most due to USB).
johannes
^ permalink raw reply
* Re: Firmware Support for USB Hub
From: Laurent Pinchart @ 2007-11-23 12:23 UTC (permalink / raw)
To: linuxppc-embedded; +Cc: Misbah khan
In-Reply-To: <13908701.post@talk.nabble.com>
[-- Attachment #1: Type: text/plain, Size: 2058 bytes --]
On Friday 23 November 2007 09:45, Misbah khan wrote:
> This is the reply that i got from the Freescale :-
>
> --------------------------------------------------------------------------
> Reply from Freescale
> In reply to your Service Request SR 1-403672820:
>
> We recommend using the MPC8272 USB controller.
> We know that customers use the MPC8272/MPC8248 USB controller.
> You can find also USB drivers in Linux software for the MPC8272.
> For example Linux BSP for Freescale MPC8272ADS contains USB slave
> driver
> (http://www.freescale.com/webapp/sps/site/overview.jsp?nodeId=0127260061033
>202A5).
>
> Linux USB driver is available in the Arabella Linux
> (http://www.arabellasw.com/products-pow2.php).
>
> If the MPC8272 is USB host, the transaction-level interface can be used.
>
> Note: The MPC8272 USB does not support high-speed mode. It can
> operate on low-speed mode (1.5MHz) or full-speed mode (12MHz).
>
> ---------------------------------------------------------------------------
>
> Can any body comment on this and help me how to start with and requirement
> is this :-
>
> I need a USB Hub to be connected to the PPC8248 board with Montavista Linux
> 2.6.10 on it what shall i do to achive it ....????The challenges you already
> know
You need a USB host driver for the CPM2 controller. There are several
solutions:
- Start with the driver available at http://cpm2usb.sourceforge.net/ and port
it for your kernel.
- Ask Montavista support for a CPM2 USB host driver (they will most likely
charge for that).
- Buy the Arabella kernel and port the driver to the Montavista kernel (ask
the Arabella support to make sure their USB host driver supports what you
need, and pay attention to possible license issues).
In the end, it boils down to writing code yourself or paying someone to do the
job.
Best regards,
Laurent Pinchart
--
Laurent Pinchart
CSE Semaphore Belgium
Chaussée de Bruxelles, 732A
B-1410 Waterloo
Belgium
T +32 (2) 387 42 59
F +32 (2) 387 42 75
[-- Attachment #2: Type: application/pgp-signature, Size: 189 bytes --]
^ permalink raw reply
* Re: cant' compile busybox-1.8.1 with eldk 4.1
From: fabien @ 2007-11-23 12:39 UTC (permalink / raw)
To: Clemens Koller; +Cc: linuxppc-embedded
In-Reply-To: <4746C1F6.9050601@anagramm.de>
Thanks Clemens i've opened a thread in busybox mailing list :
http://www.busybox.net/lists/busybox/2007-November/029322.html
2007/11/23, Clemens Koller <clemens.koller@anagramm.de>:
> fabien schrieb:
> > I try to compile busybox for my ppc custom board.
>
> What ARCH/cpu?
>
> > I successfuly
> > compile kernel 2.6.19 with
> > eldk and boot it. Now i try to get busybox working but i get some
> > errors at compile time.
> > It's look strange if someone can spend one minute to look at the compi=
le log
> > What step could i miss ?
>
> > [...]
> > /opt/eldk/usr/../ppc_8xx/usr/include/linux/param.h:4:23: error:
> > asm/param.h: No such file or directory
> > make[1]: *** [applets/applets.o] Erreur 1
> > make: *** [applets] Erreur 2
>
> It looks like your kernel headers (ARCH-specific or generic)
> are broken or missing.
> See i.e. Linux From Scratch to get an idea about the dependencies.
> Or, see latest kernel's 'make headers_install' target and how it is used.
> Google is your friend, here...
>
> The busybox mailing list would be more suited for this question.
>
> Regards,
>
> Clemens Koller
> __________________________________
> R&D Imaging Devices
> Anagramm GmbH
> Rupert-Mayer-Stra=DFe 45/1
> Linhof Werksgel=E4nde
> D-81379 M=FCnchen
> Tel.089-741518-50
> Fax 089-741518-19
> http://www.anagramm-technology.com
>
>
^ permalink raw reply
* Re: cant' compile busybox-1.8.1 with eldk 4.1
From: Wolfgang Denk @ 2007-11-23 14:48 UTC (permalink / raw)
To: fabien; +Cc: linuxppc-embedded
In-Reply-To: <f8f856500711230439q39c352ffi4cf3a206de68733a@mail.gmail.com>
In message <f8f856500711230439q39c352ffi4cf3a206de68733a@mail.gmail.com> you wrote:
> Thanks Clemens i've opened a thread in busybox mailing list :
> http://www.busybox.net/lists/busybox/2007-November/029322.html
Actually you should have asked this on the LDK mailing list instead,
see http://lists.denx.de/mailman/listinfo/eldk
But before posting, you should have read the FAQ, especially
http://www.denx.de/wiki/view/DULG/ELDKIncludeFilesMissing
Best regards,
Wolfgang Denk
--
DENX Software Engineering GmbH, MD: Wolfgang Denk & Detlev Zundel
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: (+49)-8142-66989-10 Fax: (+49)-8142-66989-80 Email: wd@denx.de
If the hours are long enough and the pay is short enough, someone
will say it's women's work.
^ permalink raw reply
* Re: Hardware debuggers for PPC74xx G4 CPUs
From: Jon Smirl @ 2007-11-23 15:03 UTC (permalink / raw)
To: benh; +Cc: Olof Johansson, linuxppc-dev
In-Reply-To: <1195777323.6970.153.camel@pasglop>
On 11/22/07, Benjamin Herrenschmidt <benh@kernel.crashing.org> wrote:
>
> On Thu, 2007-11-22 at 19:00 -0500, Jon Smirl wrote:
> > > It seems like AMCC does provide the necessary infos for 4xx
> > processors
> > > though. Jon, do you think what they provide is enough to use an open
> > > source debugger ?
> >
> > Do you have a link to the info?
>
> Not at hand, but easy to find from AMCC main product page, you can then
> go to the various eval board download pages, and some of the d/l are
> infos for JTAG debugger manufacturers.
Dominick Rath wrote OpenOCD (open source JTAG) as his senior thesis in
college, he graduated this spring and has a job now. I've sent mail to
him but he may be a lost cause.
Thesis: http://developer.berlios.de/docman/display_doc.php?docid=1367&group_id=4148
Low cost dev tools are an important part of the CPU selection process.
We went through four ARM CPUs before deciding on the MPC5200. We were
able to get ARM eval boards and JTAGs for under $500 for each of the
eval CPUs. We used the low cost evals to screen the CPUs, we didn't
want spend $5-10K until we are 90% sure we are going to use the CPU. I
returned one $5K eval board, it was a pain and it took over six months
to get a refund.
We have also learned the hard way about "port and forget" several of
the CPUs we picked had Linux ports, but the ports were five years old.
When we pushed the vendors for more recent kernels the typical answer
was, send us $50,000 and we'll see what we can do. We're not going to
send in $50K for a CPU we haven't decided to use, that answer simply
resulted in us changing CPUs. An example of this is the NXP LPC3180,
$9 with a FPU, but only a 2.6.5 kernel.
I've also only seen ARM CPUs being used in schools. You can get ARM
eval boards and a JTAG for under $100 on some ARM CPUs. AFAIK there is
no low cost PowerPC option suitable for classroom use.
--
Jon Smirl
jonsmirl@gmail.com
^ permalink raw reply
* Re: cant' compile busybox-1.8.1 with eldk 4.1
From: fabien @ 2007-11-23 15:08 UTC (permalink / raw)
To: Wolfgang Denk; +Cc: linuxppc-embedded
In-Reply-To: <20071123144834.77D1A246B5@gemini.denx.de>
2007/11/23, Wolfgang Denk <wd@denx.de>:
> In message <f8f856500711230439q39c352ffi4cf3a206de68733a@mail.gmail.com> you wrote:
> > Thanks Clemens i've opened a thread in busybox mailing list :
> > http://www.busybox.net/lists/busybox/2007-November/029322.html
>
> Actually you should have asked this on the LDK mailing list instead,
> see http://lists.denx.de/mailman/listinfo/eldk
>
> But before posting, you should have read the FAQ, especially
> http://www.denx.de/wiki/view/DULG/ELDKIncludeFilesMissing
>
> Best regards,
>
> Wolfgang Denk
>
> --
> DENX Software Engineering GmbH, MD: Wolfgang Denk & Detlev Zundel
> HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
> Phone: (+49)-8142-66989-10 Fax: (+49)-8142-66989-80 Email: wd@denx.de
> If the hours are long enough and the pay is short enough, someone
> will say it's women's work.
>
Thanks Wolfgang
i've just seen this and it's seem work !
^ permalink raw reply
* Re: time accounting problem (powerpc only?)
From: Jörg Sommer @ 2007-11-23 14:08 UTC (permalink / raw)
To: linuxppc-dev
In-Reply-To: <1195814816.4149.94.camel@johannes.berg>
Hallo Johannes,
Johannes Berg <johannes@sipsolutions.net> wrote:
> Doing some scripting to read /proc/stat every half second and print the
> differences, I get output like this on a mostly idle system:
>
> # for reference:
> # [user, nice, system, idle, iowait, irq, softirq, steal, guest]
>
> [4, 0, 3, 46, 0, 264, 0, 0, 0]
>
> As you can see, the "irq" time is very high so that "user" (mostly my
> CPU burning program) only accounts for maybe 15%. This leads to
> powernowd thinking that all is fine and no switching is required. Also,
> the whole stuff leads to top(1) displaying about 80-90% "hi" (hard irq?
> calculated as irq - softirq?) time.
I've the same problem and I see these interrupts in /proc/interrups:
% diff /proc/interrupts <(sleep 2; cat /proc/interrupts)
--- /proc/interrupts 2007-11-23 15:04:06.004846901 +0100
+++ /proc/self/fd/11 2007-11-23 15:04:05.952841422 +0100
@@ -1,15 +1,15 @@
CPU0
21: 5 MPIC 1 Edge PMac Output
24: 68 MPIC 1 Level ide1
- 25: 18063968 MPIC 1 Level VIA-PMU
+ 25: 18064241 MPIC 1 Level VIA-PMU
26: 2426 MPIC 1 Level keywest i2c
29: 1 MPIC 1 Level ohci_hcd:usb2
30: 1 MPIC 1 Edge PMac Input
39: 843910 MPIC 1 Level ide0
41: 990592 MPIC 1 Level eth0
- 42: 1415066 MPIC 1 Level keywest i2c
- 47: 2075159 MPIC 1 Level GPIO1 ADB
- 48: 6686659 MPIC 1 Level radeon@pci:0000:00:10.0
+ 42: 1415084 MPIC 1 Level keywest i2c
+ 47: 2075193 MPIC 1 Level GPIO1 ADB
+ 48: 6686778 MPIC 1 Level radeon@pci:0000:00:10.0
61: 0 MPIC 1 Edge Sound Headphone Detection
63: 94238 MPIC 1 Level ehci_hcd:usb1, ohci_hcd:usb3, ohci_hcd:usb4
BAD: 19
I don't know where they come from, but that's the cause of the high IRQ
time.
Bye, Jörg.
--
Je planmäßiger ein Mensch vorgeht,
desto stärker mag ihn der Zufall treffen.
Erich Krunau ‚Die Physiker‘
^ permalink raw reply
* Re: ML403 USB driver
From: Grant Likely @ 2007-11-23 17:31 UTC (permalink / raw)
To: Peter Korsgaard; +Cc: Lorenz Kolb, linux-usb-devel, linuxppc-embedded
In-Reply-To: <87lk8pdzcw.fsf@macbook.be.48ers.dk>
Hi Peter,
I've done a bunch more work on the host side of the c67x00 driver.
I'd like to try and get it into 2.6.25. I'm planning to post a
cleaned up set of patches to the usb-list this afternoon for review.
However, the change set between what you posted and what I have now is
quite large so I've also pushed my incremental patch set to my git
tree so you can see how it has changed from your original patchset.
(BTW, ignore the last patch in the series; that was for
experimentation only and it won't be in the cleaned up patchset)
You can see the tree at:
http://git.secretlab.ca/git/gitweb.cgi?p=linux-2.6-virtex.git;a=shortlog;h=virtex-c67x00-dev
Or you can pull from:
git://git.secretlab.ca/git/linux-2.6-virtex.git virtex-c67x00-dev
Grant Likely (17):
[C67x00] Fix calculation of frame bandwidth
[c67x00] Remove unnecessary references to pt_regs
[C67x00] Added error handling paths to lowlevel interface code
[C67x00] Change 'struct c67x00_drv' to 'struct c67x00_device'
C67x00: Add registration banner
[C67x00] Merge c67x00-hub.c into c67x00-hcd.c
C67x00: fixes for 2.6.24
c67x00: consolidate header files
C67x00: Eliminate done list lock
c67x00: Fix incorrectly handled error path.
c67x00: Tighten up error paths
c67x00: Fix race condition in ll_start()
c67x00: eliminate unnecessary INIT_COMPLETION() in low level interface.
c67x00: Use an inline function instead of #define for dbg_td
c67x00: Fix manipulation of urb_iso_count
c67x00: fix unnecessary list_for_each_entry_safe()
c67x00: eliminate done tasklet
Peter Korsgaard (4):
[C67x00] Make usb_hcd_irq work for multi-role USB controllers w/
shared irq
[C67x00] Base support for the Cypress c67x00 multi-role USB controllers
[C67x00] HCD support for Cypress c67x00
[C67x00] Gadget support for Cypress c67x00
drivers/usb/Kconfig | 2 +
drivers/usb/Makefile | 2 +
drivers/usb/c67x00/Kconfig | 22 +
drivers/usb/c67x00/Makefile | 15 +
drivers/usb/c67x00/c67x00-drv.c | 301 +++++++++
drivers/usb/c67x00/c67x00-hcd.c | 390 ++++++++++++
drivers/usb/c67x00/c67x00-hcd.h | 162 +++++
drivers/usb/c67x00/c67x00-ll-hpi.c | 512 ++++++++++++++++
drivers/usb/c67x00/c67x00-sched.c | 1188 ++++++++++++++++++++++++++++++++++++
drivers/usb/c67x00/c67x00-udc.c | 166 +++++
drivers/usb/c67x00/c67x00-udc.h | 59 ++
drivers/usb/c67x00/c67x00.h | 236 +++++++
drivers/usb/core/hcd.c | 6 +-
drivers/usb/gadget/Kconfig | 7 +
include/linux/usb/c67x00.h | 45 ++
15 files changed, 3112 insertions(+), 1 deletions(-)
create mode 100644 drivers/usb/c67x00/Kconfig
create mode 100644 drivers/usb/c67x00/Makefile
create mode 100644 drivers/usb/c67x00/c67x00-drv.c
create mode 100644 drivers/usb/c67x00/c67x00-hcd.c
create mode 100644 drivers/usb/c67x00/c67x00-hcd.h
create mode 100644 drivers/usb/c67x00/c67x00-ll-hpi.c
create mode 100644 drivers/usb/c67x00/c67x00-sched.c
create mode 100644 drivers/usb/c67x00/c67x00-udc.c
create mode 100644 drivers/usb/c67x00/c67x00-udc.h
create mode 100644 drivers/usb/c67x00/c67x00.h
create mode 100644 include/linux/usb/c67x00.h
Cheers,
g.
On 11/23/07, Peter Korsgaard <jacmet@sunsite.dk> wrote:
> >>>>> "Lorenz" == Lorenz Kolb <linuxppcemb@lkmail.de> writes:
>
> Lorenz> Hi,
>
> Lorenz> we just tried the USB driver (from Peter Korsgaard) from
> Lorenz> Grant's virtex tree.
>
> Lorenz> Nevertheless we could not get the peripheral ports work as gadgets.
> Lorenz> Has anyone tried (and probably fixed) that before?
>
> My driver so far only has host support. I'm working on the peripheral
> support (or rather, a colleage of mine is) but it's quite early days
> ..
>
> Lorenz> Anyway, only one of the two peripheral ports seems to be active.
>
> The Linux gadget stack only support a single peripheral port.
>
> --
> Bye, Peter Korsgaard
> _______________________________________________
> Linuxppc-embedded mailing list
> Linuxppc-embedded@ozlabs.org
> https://ozlabs.org/mailman/listinfo/linuxppc-embedded
>
--
Grant Likely, B.Sc., P.Eng.
Secret Lab Technologies Ltd.
grant.likely@secretlab.ca
(403) 399-0195
^ permalink raw reply
* sys_mpc83xx spi driver not probed
From: Joel Rouch @ 2007-11-23 17:02 UTC (permalink / raw)
To: linuxppc-dev
Hello
I have a custom 8349 ppc board. I have defined the spi master in the
configuration.
While booting my board, I driver is well added and linked to platform
bus, however I don't see that the probe entry point is reached.
I don't succeed to understand who is triggering the probe. Can someone
point me to the right link or explain me how to force it ?
Thanks
^ permalink raw reply
* MontaVista 4.0.1 on Xilinx ML405 board
From: gsk19 @ 2007-11-23 16:58 UTC (permalink / raw)
To: linuxppc-embedded
We built a design for ML405 using EDK 9.1.02. EDK also
creates linux drivers for MontaVista Pro 4.0.1 (2.6.10).
The drivers were copied to a clean copy of Pro 4.0.1 and the
kernel was built. When we downloaded the kernel to the target
and ran it, we got exception. We didn't get any messages on
the hyper terminal.
We used Tri-Mode Ethernet and UART lite.
MontaVista checked the integration of EDK 8.2 with ML403.
Can you help ?
^ permalink raw reply
* [RFC][PATCH 0/3] OF-platform PATA driver
From: Anton Vorontsov @ 2007-11-23 17:52 UTC (permalink / raw)
To: linuxppc-dev, linux-ide
Hi all,
Here is the PATA Platform driver using OF infrastructure.
Mostly it's just a wrapper around a bit modified pata_platform
driver.
Patches are well split for the easier review:
First one factors out platform_device specific bits and modifies
pata_platform to be a library-alike driver (with platform_device
default binding).
Second patch is OF-driver itself which is using pata_platform
"library".
Third patch is PowerPC specific, but I'm still Cc'ing linux-ide,
just to show how we're using it.
As an alternative approach we can use plain pata_platform
driver, but I'm not sure how Linux OF bindings' ideologists will
or will not like it.
So, these patches are strongly Request For Comments. Feel free
to train your nitpicking skills ;-), and/or vote for the option
you most pleased about (or suggest another?).
Thanks.
---
Down here is "alternative approach".
Probably board-neutral version may be placed somewhere in
the drivers/of/...? But who will call it: board file, or
device_initcall for all boards?
diff --git a/arch/powerpc/platforms/83xx/mpc834x_itx.c b/arch/powerpc/platforms/83xx/mpc834x_itx.c
index 150fafb..4caa90d 100644
--- a/arch/powerpc/platforms/83xx/mpc834x_itx.c
+++ b/arch/powerpc/platforms/83xx/mpc834x_itx.c
@@ -24,6 +24,7 @@
#include <linux/seq_file.h>
#include <linux/root_dev.h>
#include <linux/of_platform.h>
+#include <linux/pata_platform.h>
#include <asm/system.h>
#include <asm/atomic.h>
@@ -102,6 +103,78 @@ static int __init mpc834x_itx_probe(void)
return of_flat_dt_is_compatible(root, "MPC834xMITX");
}
+static int __init mpc834x_itx_pata_init(void)
+{
+ struct device_node *np;
+ unsigned int i;
+
+ if (!machine_is(mpc834x_itx))
+ return 0;
+
+ for (np = NULL, i = 0;
+ (np = of_find_compatible_node(np, NULL, "pata-platform"));
+ i++) {
+ int ret;
+ struct resource res[3];
+ const u32 *ioport_shift;
+ struct platform_device *pdev;
+ struct pata_platform_info pdata = {};
+
+ memset(res, 0, sizeof(res));
+
+ ret = of_address_to_resource(np, 0, &res[0]);
+ if (ret) {
+ printk(KERN_ERR "pata.%d: unable to get IO address "
+ "from the device tree\n", i);
+ goto err0;
+ }
+
+ ret = of_address_to_resource(np, 1, &res[1]);
+ if (ret) {
+ printk(KERN_ERR "pata.%d: unable to get CTL address "
+ "from the device tree\n", i);
+ goto err0;
+ }
+
+ ret = of_irq_to_resource(np, 0, &res[2]);
+ if (ret == NO_IRQ) {
+ printk(KERN_ERR "pata.%d: no IRQ\n", i);
+ goto err0;
+ }
+
+ ioport_shift = of_get_property(np, "ioport-shift", NULL);
+ if (ioport_shift)
+ pdata.ioport_shift = *ioport_shift;
+
+ pdev = platform_device_alloc("pata_platform", i);
+ if (!pdev)
+ goto err0;
+
+ ret = platform_device_add_data(pdev, &pdata, sizeof(pdata));
+ if (ret)
+ goto err1;
+
+ ret = platform_device_add_resources(pdev, res, ARRAY_SIZE(res));
+ if (ret)
+ goto err1;
+
+ ret = platform_device_register(pdev);
+ if (ret)
+ goto err1;
+
+ continue;
+err1:
+ printk(KERN_ERR "pata.%d: registration failed\n", i);
+ platform_device_del(pdev); /* will free everything */
+err0:
+ /* Even if some device failed, try others */
+ continue;
+ }
+
+ return 0;
+}
+device_initcall(mpc834x_itx_pata_init);
+
define_machine(mpc834x_itx) {
.name = "MPC834x ITX",
.probe = mpc834x_itx_probe,
^ permalink raw reply related
* [PATCH 1/3] [libata] pata_platform: make probe and remove functions device type neutral
From: Anton Vorontsov @ 2007-11-23 17:53 UTC (permalink / raw)
To: linuxppc-dev, linux-ide
In-Reply-To: <20071123175229.GA27143@localhost.localdomain>
Split pata_platform_{probe,remove} into two pieces:
1. pata_platform_{probe,remove} -- platform_device-dependant bits
2. __ptata_platform_{probe,remove} -- device type neutral bits.
This is done to not duplicate code for the OF-platform driver.
Signed-off-by: Anton Vorontsov <avorontsov@ru.mvista.com>
---
drivers/ata/pata_platform.c | 139 +++++++++++++++++++++++++------------------
drivers/ata/pata_platform.h | 12 ++++
2 files changed, 94 insertions(+), 57 deletions(-)
create mode 100644 drivers/ata/pata_platform.h
diff --git a/drivers/ata/pata_platform.c b/drivers/ata/pata_platform.c
index ac03a90..6436c38 100644
--- a/drivers/ata/pata_platform.c
+++ b/drivers/ata/pata_platform.c
@@ -93,14 +93,9 @@ static struct ata_port_operations pata_platform_port_ops = {
};
static void pata_platform_setup_port(struct ata_ioports *ioaddr,
- struct pata_platform_info *info)
+ unsigned int shift)
{
- unsigned int shift = 0;
-
/* Fixup the port shift for platforms that need it */
- if (info && info->ioport_shift)
- shift = info->ioport_shift;
-
ioaddr->data_addr = ioaddr->cmd_addr + (ATA_REG_DATA << shift);
ioaddr->error_addr = ioaddr->cmd_addr + (ATA_REG_ERR << shift);
ioaddr->feature_addr = ioaddr->cmd_addr + (ATA_REG_FEATURE << shift);
@@ -114,8 +109,12 @@ static void pata_platform_setup_port(struct ata_ioports *ioaddr,
}
/**
- * pata_platform_probe - attach a platform interface
- * @pdev: platform device
+ * __pata_platform_probe - attach a platform interface
+ * @dev: device
+ * @io_res: Resource representing I/O base
+ * @ctl_res: Resource representing CTL base
+ * @irq_res: Resource representing IRQ and its flags
+ * @ioport_shift: I/O port shift
*
* Register a platform bus IDE interface. Such interfaces are PIO and we
* assume do not support IRQ sharing.
@@ -135,42 +134,17 @@ static void pata_platform_setup_port(struct ata_ioports *ioaddr,
*
* If no IRQ resource is present, PIO polling mode is used instead.
*/
-static int __devinit pata_platform_probe(struct platform_device *pdev)
+int __devinit __pata_platform_probe(struct device *dev,
+ struct resource *io_res,
+ struct resource *ctl_res,
+ struct resource *irq_res,
+ unsigned int ioport_shift)
{
- struct resource *io_res, *ctl_res;
struct ata_host *host;
struct ata_port *ap;
- struct pata_platform_info *pp_info;
unsigned int mmio;
- int irq;
-
- /*
- * Simple resource validation ..
- */
- if ((pdev->num_resources != 3) && (pdev->num_resources != 2)) {
- dev_err(&pdev->dev, "invalid number of resources\n");
- return -EINVAL;
- }
-
- /*
- * Get the I/O base first
- */
- io_res = platform_get_resource(pdev, IORESOURCE_IO, 0);
- if (io_res == NULL) {
- io_res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
- if (unlikely(io_res == NULL))
- return -EINVAL;
- }
-
- /*
- * Then the CTL base
- */
- ctl_res = platform_get_resource(pdev, IORESOURCE_IO, 1);
- if (ctl_res == NULL) {
- ctl_res = platform_get_resource(pdev, IORESOURCE_MEM, 1);
- if (unlikely(ctl_res == NULL))
- return -EINVAL;
- }
+ int irq = 0;
+ int irq_flags = 0;
/*
* Check for MMIO
@@ -181,14 +155,15 @@ static int __devinit pata_platform_probe(struct platform_device *pdev)
/*
* And the IRQ
*/
- irq = platform_get_irq(pdev, 0);
- if (irq < 0)
- irq = 0; /* no irq */
+ if (irq_res && irq_res->start > 0) {
+ irq = irq_res->start;
+ irq_flags = irq_res->flags;
+ }
/*
* Now that that's out of the way, wire up the port..
*/
- host = ata_host_alloc(&pdev->dev, 1);
+ host = ata_host_alloc(dev, 1);
if (!host)
return -ENOMEM;
ap = host->ports[0];
@@ -209,25 +184,24 @@ static int __devinit pata_platform_probe(struct platform_device *pdev)
* Handle the MMIO case
*/
if (mmio) {
- ap->ioaddr.cmd_addr = devm_ioremap(&pdev->dev, io_res->start,
+ ap->ioaddr.cmd_addr = devm_ioremap(dev, io_res->start,
io_res->end - io_res->start + 1);
- ap->ioaddr.ctl_addr = devm_ioremap(&pdev->dev, ctl_res->start,
+ ap->ioaddr.ctl_addr = devm_ioremap(dev, ctl_res->start,
ctl_res->end - ctl_res->start + 1);
} else {
- ap->ioaddr.cmd_addr = devm_ioport_map(&pdev->dev, io_res->start,
+ ap->ioaddr.cmd_addr = devm_ioport_map(dev, io_res->start,
io_res->end - io_res->start + 1);
- ap->ioaddr.ctl_addr = devm_ioport_map(&pdev->dev, ctl_res->start,
+ ap->ioaddr.ctl_addr = devm_ioport_map(dev, ctl_res->start,
ctl_res->end - ctl_res->start + 1);
}
if (!ap->ioaddr.cmd_addr || !ap->ioaddr.ctl_addr) {
- dev_err(&pdev->dev, "failed to map IO/CTL base\n");
+ dev_err(dev, "failed to map IO/CTL base\n");
return -ENOMEM;
}
ap->ioaddr.altstatus_addr = ap->ioaddr.ctl_addr;
- pp_info = pdev->dev.platform_data;
- pata_platform_setup_port(&ap->ioaddr, pp_info);
+ pata_platform_setup_port(&ap->ioaddr, ioport_shift);
ata_port_desc(ap, "%s cmd 0x%llx ctl 0x%llx", mmio ? "mmio" : "ioport",
(unsigned long long)io_res->start,
@@ -235,26 +209,77 @@ static int __devinit pata_platform_probe(struct platform_device *pdev)
/* activate */
return ata_host_activate(host, irq, irq ? ata_interrupt : NULL,
- pp_info ? pp_info->irq_flags : 0,
- &pata_platform_sht);
+ irq_flags, &pata_platform_sht);
}
+EXPORT_SYMBOL_GPL(__pata_platform_probe);
/**
- * pata_platform_remove - unplug a platform interface
- * @pdev: platform device
+ * __pata_platform_remove - unplug a platform interface
+ * @dev: device
*
* A platform bus ATA device has been unplugged. Perform the needed
* cleanup. Also called on module unload for any active devices.
*/
-static int __devexit pata_platform_remove(struct platform_device *pdev)
+int __devexit __pata_platform_remove(struct device *dev)
{
- struct device *dev = &pdev->dev;
struct ata_host *host = dev_get_drvdata(dev);
ata_host_detach(host);
return 0;
}
+EXPORT_SYMBOL_GPL(__pata_platform_remove);
+
+static int __devinit pata_platform_probe(struct platform_device *pdev)
+{
+ struct resource *io_res;
+ struct resource *ctl_res;
+ struct resource *irq_res;
+ struct pata_platform_info *pp_info = pdev->dev.platform_data;
+
+ /*
+ * Simple resource validation ..
+ */
+ if ((pdev->num_resources != 3) && (pdev->num_resources != 2)) {
+ dev_err(&pdev->dev, "invalid number of resources\n");
+ return -EINVAL;
+ }
+
+ /*
+ * Get the I/O base first
+ */
+ io_res = platform_get_resource(pdev, IORESOURCE_IO, 0);
+ if (io_res == NULL) {
+ io_res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
+ if (unlikely(io_res == NULL))
+ return -EINVAL;
+ }
+
+ /*
+ * Then the CTL base
+ */
+ ctl_res = platform_get_resource(pdev, IORESOURCE_IO, 1);
+ if (ctl_res == NULL) {
+ ctl_res = platform_get_resource(pdev, IORESOURCE_MEM, 1);
+ if (unlikely(ctl_res == NULL))
+ return -EINVAL;
+ }
+
+ /*
+ * And the IRQ
+ */
+ irq_res = platform_get_resource(pdev, IORESOURCE_IRQ, 0);
+ if (irq_res)
+ irq_res->flags = pp_info ? pp_info->irq_flags : 0;
+
+ return __pata_platform_probe(&pdev->dev, io_res, ctl_res, irq_res,
+ pp_info ? pp_info->ioport_shift : 0);
+}
+
+static int __devexit pata_platform_remove(struct platform_device *pdev)
+{
+ return __pata_platform_remove(&pdev->dev);
+}
static struct platform_driver pata_platform_driver = {
.probe = pata_platform_probe,
diff --git a/drivers/ata/pata_platform.h b/drivers/ata/pata_platform.h
new file mode 100644
index 0000000..9752a42
--- /dev/null
+++ b/drivers/ata/pata_platform.h
@@ -0,0 +1,12 @@
+#ifndef __DRIVERS_ATA_PATA_PLATFORM_H
+#define __DRIVERS_ATA_PATA_PLATFORM_H
+
+extern int __devinit __pata_platform_probe(struct device *dev,
+ struct resource *io_res,
+ struct resource *ctl_res,
+ struct resource *irq_res,
+ unsigned int ioport_shift);
+
+extern int __devexit __pata_platform_remove(struct device *dev);
+
+#endif /* __DRIVERS_ATA_PATA_PLATFORM_H */
--
1.5.2.2
^ permalink raw reply related
* [PATCH 2/3] [libata] pata_of_platform: OF-Platform PATA device driver
From: Anton Vorontsov @ 2007-11-23 17:53 UTC (permalink / raw)
To: linuxppc-dev, linux-ide
In-Reply-To: <20071123175229.GA27143@localhost.localdomain>
Signed-off-by: Anton Vorontsov <avorontsov@ru.mvista.com>
---
drivers/ata/Kconfig | 10 +++++
drivers/ata/Makefile | 1 +
drivers/ata/pata_of_platform.c | 88 ++++++++++++++++++++++++++++++++++++++++
3 files changed, 99 insertions(+), 0 deletions(-)
create mode 100644 drivers/ata/pata_of_platform.c
diff --git a/drivers/ata/Kconfig b/drivers/ata/Kconfig
index ba63619..5a492fa 100644
--- a/drivers/ata/Kconfig
+++ b/drivers/ata/Kconfig
@@ -614,6 +614,16 @@ config PATA_PLATFORM
If unsure, say N.
+config PATA_OF_PLATFORM
+ tristate "OpenFirmware platform device PATA support"
+ depends on PATA_PLATFORM && PPC_OF
+ help
+ This option enables support for generic directly connected ATA
+ devices commonly found on embedded systems with OpenFirmware
+ bindings.
+
+ If unsure, say N.
+
config PATA_ICSIDE
tristate "Acorn ICS PATA support"
depends on ARM && ARCH_ACORN
diff --git a/drivers/ata/Makefile b/drivers/ata/Makefile
index b13feb2..ebcee64 100644
--- a/drivers/ata/Makefile
+++ b/drivers/ata/Makefile
@@ -67,6 +67,7 @@ obj-$(CONFIG_PATA_IXP4XX_CF) += pata_ixp4xx_cf.o
obj-$(CONFIG_PATA_SCC) += pata_scc.o
obj-$(CONFIG_PATA_BF54X) += pata_bf54x.o
obj-$(CONFIG_PATA_PLATFORM) += pata_platform.o
+obj-$(CONFIG_PATA_OF_PLATFORM) += pata_of_platform.o
obj-$(CONFIG_PATA_ICSIDE) += pata_icside.o
# Should be last but two libata driver
obj-$(CONFIG_PATA_ACPI) += pata_acpi.o
diff --git a/drivers/ata/pata_of_platform.c b/drivers/ata/pata_of_platform.c
new file mode 100644
index 0000000..b4eca70
--- /dev/null
+++ b/drivers/ata/pata_of_platform.c
@@ -0,0 +1,88 @@
+/*
+ * OF-platform PATA driver
+ *
+ * Copyright (c) 2007 MontaVista Software, Inc.
+ * Anton Vorontsov <avorontsov@ru.mvista.com>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License (Version 2) as
+ * published by the Free Software Foundation.
+ */
+
+#include <linux/kernel.h>
+#include <linux/module.h>
+#include <linux/of_platform.h>
+#include "pata_platform.h"
+
+static int __devinit pata_of_platform_probe(struct of_device *ofdev,
+ const struct of_device_id *match)
+{
+ int ret;
+ struct device_node *dn = ofdev->node;
+ struct resource io_res;
+ struct resource ctl_res;
+ struct resource irq_res;
+ unsigned int ioport_shift = 0;
+ uint32_t *prop;
+
+ ret = of_address_to_resource(dn, 0, &io_res);
+ if (ret) {
+ dev_err(&ofdev->dev, "can't get IO address from "
+ "device tree\n");
+ return -EINVAL;
+ }
+
+ ret = of_address_to_resource(dn, 1, &ctl_res);
+ if (ret) {
+ dev_err(&ofdev->dev, "can't get CTL address from "
+ "device tree\n");
+ return -EINVAL;
+ }
+
+ ret = of_irq_to_resource(dn, 0, &irq_res);
+ if (ret == NO_IRQ)
+ irq_res.start = irq_res.end = -1;
+ else
+ irq_res.flags = 0;
+
+ prop = (uint32_t *)of_get_property(dn, "ioport-shift", NULL);
+ if (prop)
+ ioport_shift = *prop;
+
+ return __pata_platform_probe(&ofdev->dev, &io_res, &ctl_res, &irq_res,
+ ioport_shift);
+}
+
+static int __devexit pata_of_platform_remove(struct of_device *ofdev)
+{
+ return __pata_platform_remove(&ofdev->dev);
+}
+
+static struct of_device_id pata_of_platform_match[] = {
+ {
+ .compatible = "pata-platform",
+ },
+};
+
+static struct of_platform_driver pata_of_platform_driver = {
+ .name = "pata_of_platform",
+ .match_table = pata_of_platform_match,
+ .probe = pata_of_platform_probe,
+ .remove = __devexit_p(pata_of_platform_remove),
+};
+
+static int __init pata_of_platform_init(void)
+{
+ return of_register_platform_driver(&pata_of_platform_driver);
+}
+module_init(pata_of_platform_init);
+
+static void __exit pata_platform_exit(void)
+{
+ of_unregister_platform_driver(&pata_of_platform_driver);
+}
+module_exit(pata_platform_exit);
+
+MODULE_DESCRIPTION("OF-platform PATA driver");
+MODULE_AUTHOR("Anton Vorontsov <avorontsov@ru.mvista.com>");
+MODULE_LICENSE("GPL");
--
1.5.2.2
^ permalink raw reply related
* [PATCH 3/3] [POWERPC] MPC8349E-mITX: introduce pata node, make use pata_of_platform driver
From: Anton Vorontsov @ 2007-11-23 17:53 UTC (permalink / raw)
To: linuxppc-dev, linux-ide
In-Reply-To: <20071123175229.GA27143@localhost.localdomain>
Signed-off-by: Anton Vorontsov <avorontsov@ru.mvista.com>
---
arch/powerpc/boot/dts/mpc8349emitx.dts | 9 +++++++--
arch/powerpc/platforms/83xx/mpc834x_itx.c | 17 +++++++++++++++++
2 files changed, 24 insertions(+), 2 deletions(-)
diff --git a/arch/powerpc/boot/dts/mpc8349emitx.dts b/arch/powerpc/boot/dts/mpc8349emitx.dts
index 5072f6d..898c294 100644
--- a/arch/powerpc/boot/dts/mpc8349emitx.dts
+++ b/arch/powerpc/boot/dts/mpc8349emitx.dts
@@ -249,6 +249,11 @@
device_type = "pci";
};
-
-
+ pata@f0000000 {
+ compatible = "fsl,mpc8349emitx", "pata-platform";
+ reg = <f0000000 10 f000020c 4>;
+ ioport-shift = <1>;
+ interrupts = <17 8>;
+ interrupt-parent = <&ipic>;
+ };
};
diff --git a/arch/powerpc/platforms/83xx/mpc834x_itx.c b/arch/powerpc/platforms/83xx/mpc834x_itx.c
index aa76819..150fafb 100644
--- a/arch/powerpc/platforms/83xx/mpc834x_itx.c
+++ b/arch/powerpc/platforms/83xx/mpc834x_itx.c
@@ -23,6 +23,7 @@
#include <linux/delay.h>
#include <linux/seq_file.h>
#include <linux/root_dev.h>
+#include <linux/of_platform.h>
#include <asm/system.h>
#include <asm/atomic.h>
@@ -37,6 +38,22 @@
#include "mpc83xx.h"
+static struct of_device_id mpc834x_ids[] = {
+ { .compatible = "pata-platform", },
+ {},
+};
+
+static int __init mpc834x_declare_of_platform_devices(void)
+{
+ if (!machine_is(mpc834x_itx))
+ return 0;
+
+ of_platform_bus_probe(NULL, mpc834x_ids, NULL);
+
+ return 0;
+}
+device_initcall(mpc834x_declare_of_platform_devices);
+
/* ************************************************************************
*
* Setup the architecture
--
1.5.2.2
^ permalink raw reply related
* How to map addresses beyond 4GB
From: Dell Query @ 2007-11-22 10:42 UTC (permalink / raw)
To: linuxppc-embedded
[-- Attachment #1: Type: text/plain, Size: 352 bytes --]
Hi,
I would like to ask if anyone knows how to map addresses beyond 4GB. I am trying to access the GPIO on PPC440EPx by mapping it but the address is 0x1EF600B00, which is way beyond 4GB.
May I know how to map this one?
Thanks,
dell
---------------------------------
Get easy, one-click access to your favorites. Make Yahoo! your homepage.
[-- Attachment #2: Type: text/html, Size: 436 bytes --]
^ permalink raw reply
* [PATCH 0/3] PowerPC: ibm_newemac minor fixes.
From: Valentine Barshak @ 2007-11-23 19:07 UTC (permalink / raw)
To: linuxppc-dev; +Cc: jgarzik, netdev
These patches have some minor ibm_newemac fixes.
Thanks,
Valentine.
^ permalink raw reply
* [PATCH 1/3] PowerPC: ibm_newemac correct opb_bus_freq value
From: Valentine Barshak @ 2007-11-23 19:10 UTC (permalink / raw)
To: linuxppc-dev; +Cc: jgarzik, netdev
In-Reply-To: <20071123190747.GA25654@ru.mvista.com>
The EMAC4_MR1_OBCI(freq) macro expects freg in MHz,
while opb_bus_freq is kept in Hz. Correct this.
Signed-off-by: Valentine Barshak <vbarshak@ru.mvista.com>
---
drivers/net/ibm_newemac/core.c | 2 +-
1 files changed, 1 insertion(+), 1 deletion(-)
diff -pruN linux-2.6.orig/drivers/net/ibm_newemac/core.c linux-2.6/drivers/net/ibm_newemac/core.c
--- linux-2.6.orig/drivers/net/ibm_newemac/core.c 2007-11-23 21:27:57.000000000 +0300
+++ linux-2.6/drivers/net/ibm_newemac/core.c 2007-11-23 21:47:53.000000000 +0300
@@ -402,7 +402,7 @@ static u32 __emac_calc_base_mr1(struct e
static u32 __emac4_calc_base_mr1(struct emac_instance *dev, int tx_size, int rx_size)
{
u32 ret = EMAC_MR1_VLE | EMAC_MR1_IST | EMAC4_MR1_TR |
- EMAC4_MR1_OBCI(dev->opb_bus_freq);
+ EMAC4_MR1_OBCI(dev->opb_bus_freq / 1000000);
DBG2(dev, "__emac4_calc_base_mr1" NL);
^ permalink raw reply
* [PATCH 2/3] PowerPC: ibm_newemac tah_ph typo fix
From: Valentine Barshak @ 2007-11-23 19:11 UTC (permalink / raw)
To: linuxppc-dev; +Cc: jgarzik, netdev
In-Reply-To: <20071123190747.GA25654@ru.mvista.com>
This patch fixes a typo in ibm_newemac/core.c
(tah_port should be used instead of tah_ph)
Signed-off-by: Valentine Barshak <vbarshak@ru.mvista.com>
---
drivers/net/ibm_newemac/core.c | 2 +-
1 files changed, 1 insertion(+), 1 deletion(-)
diff -pruN linux-2.6.orig/drivers/net/ibm_newemac/core.c linux-2.6/drivers/net/ibm_newemac/core.c
--- linux-2.6.orig/drivers/net/ibm_newemac/core.c 2007-11-23 21:27:57.000000000 +0300
+++ linux-2.6/drivers/net/ibm_newemac/core.c 2007-11-23 21:36:00.000000000 +0300
@@ -2427,7 +2427,7 @@ static int __devinit emac_init_config(st
if (emac_read_uint_prop(np, "tah-device", &dev->tah_ph, 0))
dev->tah_ph = 0;
if (emac_read_uint_prop(np, "tah-channel", &dev->tah_port, 0))
- dev->tah_ph = 0;
+ dev->tah_port = 0;
if (emac_read_uint_prop(np, "mdio-device", &dev->mdio_ph, 0))
dev->mdio_ph = 0;
if (emac_read_uint_prop(np, "zmii-device", &dev->zmii_ph, 0))
^ permalink raw reply
* [PATCH 3/3] PowerPC: ibm_newemac call dev_set_drvdata() before tah_reset()
From: Valentine Barshak @ 2007-11-23 19:14 UTC (permalink / raw)
To: linuxppc-dev; +Cc: jgarzik, netdev
In-Reply-To: <20071123190747.GA25654@ru.mvista.com>
The patch moves dev_set_drvdata(&ofdev->dev, dev) up before tah_reset(ofdev)
is called to avoid a NULL pointer dereference, since tah_reset uses drvdata.
Signed-off-by: Valentine Barshak <vbarshak@ru.mvista.com>
---
drivers/net/ibm_newemac/tah.c | 3 ++-
1 files changed, 2 insertions(+), 1 deletion(-)
diff -pruN linux-2.6.orig/drivers/net/ibm_newemac/tah.c linux-2.6/drivers/net/ibm_newemac/tah.c
--- linux-2.6.orig/drivers/net/ibm_newemac/tah.c 2007-11-23 21:27:57.000000000 +0300
+++ linux-2.6/drivers/net/ibm_newemac/tah.c 2007-11-23 21:35:12.000000000 +0300
@@ -116,13 +116,14 @@ static int __devinit tah_probe(struct of
goto err_free;
}
+ dev_set_drvdata(&ofdev->dev, dev);
+
/* Initialize TAH and enable IPv4 checksum verification, no TSO yet */
tah_reset(ofdev);
printk(KERN_INFO
"TAH %s initialized\n", ofdev->node->full_name);
wmb();
- dev_set_drvdata(&ofdev->dev, dev);
return 0;
^ permalink raw reply
* Re: Hardware debuggers for PPC74xx G4 CPUs
From: Jon Smirl @ 2007-11-23 20:26 UTC (permalink / raw)
To: Grant Likely; +Cc: Olof Johansson, linuxppc-dev
In-Reply-To: <9e4733910711230703w3a8ba108ybfdd0a9f2bf6f537@mail.gmail.com>
On 11/23/07, Jon Smirl <jonsmirl@gmail.com> wrote:
> On 11/22/07, Benjamin Herrenschmidt <benh@kernel.crashing.org> wrote:
> >
> > On Thu, 2007-11-22 at 19:00 -0500, Jon Smirl wrote:
> > > > It seems like AMCC does provide the necessary infos for 4xx
> > > processors
> > > > though. Jon, do you think what they provide is enough to use an open
> > > > source debugger ?
> > >
> > > Do you have a link to the info?
> >
> > Not at hand, but easy to find from AMCC main product page, you can then
> > go to the various eval board download pages, and some of the d/l are
> > infos for JTAG debugger manufacturers.
Grant, I heard back from the Amontec (a JTAG company) developers. They
are interested in doing an open JTAG for the Xilinx Microblaze. Is
that the FPGA you've been working with?
--
Jon Smirl
jonsmirl@gmail.com
^ permalink raw reply
* Re: Hardware debuggers for PPC74xx G4 CPUs
From: Grant Likely @ 2007-11-23 20:30 UTC (permalink / raw)
To: Jon Smirl; +Cc: Olof Johansson, linuxppc-dev
In-Reply-To: <9e4733910711231226p44541777n4a1190c0ecf5bb55@mail.gmail.com>
On 11/23/07, Jon Smirl <jonsmirl@gmail.com> wrote:
> On 11/23/07, Jon Smirl <jonsmirl@gmail.com> wrote:
> > On 11/22/07, Benjamin Herrenschmidt <benh@kernel.crashing.org> wrote:
> > >
> > > On Thu, 2007-11-22 at 19:00 -0500, Jon Smirl wrote:
> > > > > It seems like AMCC does provide the necessary infos for 4xx
> > > > processors
> > > > > though. Jon, do you think what they provide is enough to use an open
> > > > > source debugger ?
> > > >
> > > > Do you have a link to the info?
> > >
> > > Not at hand, but easy to find from AMCC main product page, you can then
> > > go to the various eval board download pages, and some of the d/l are
> > > infos for JTAG debugger manufacturers.
>
> Grant, I heard back from the Amontec (a JTAG company) developers. They
> are interested in doing an open JTAG for the Xilinx Microblaze. Is
> that the FPGA you've been working with?
Yes, the FPGA I'm using can host a Microblaze design; except my work
has focused on the ppc405 hard IP core instead of the microblaze core.
Regardless, this sounds interesting. Can you get JTAG debug info out of Xilinx?
Cheers,
g.
.
>
> --
> Jon Smirl
> jonsmirl@gmail.com
>
--
Grant Likely, B.Sc., P.Eng.
Secret Lab Technologies Ltd.
grant.likely@secretlab.ca
(403) 399-0195
^ permalink raw reply
* Re: time accounting problem (powerpc only?)
From: Johannes Berg @ 2007-11-23 20:37 UTC (permalink / raw)
To: Jörg Sommer; +Cc: linuxppc-dev
In-Reply-To: <slrnfkdnma.681.joerg@alea.gnuu.de>
[-- Attachment #1: Type: text/plain, Size: 1533 bytes --]
Hi,
> % diff /proc/interrupts <(sleep 2; cat /proc/interrupts)
> --- /proc/interrupts 2007-11-23 15:04:06.004846901 +0100
> +++ /proc/self/fd/11 2007-11-23 15:04:05.952841422 +0100
> @@ -1,15 +1,15 @@
> CPU0
> 21: 5 MPIC 1 Edge PMac Output
> 24: 68 MPIC 1 Level ide1
> - 25: 18063968 MPIC 1 Level VIA-PMU
> + 25: 18064241 MPIC 1 Level VIA-PMU
> 26: 2426 MPIC 1 Level keywest i2c
> 29: 1 MPIC 1 Level ohci_hcd:usb2
> 30: 1 MPIC 1 Edge PMac Input
> 39: 843910 MPIC 1 Level ide0
> 41: 990592 MPIC 1 Level eth0
> - 42: 1415066 MPIC 1 Level keywest i2c
> - 47: 2075159 MPIC 1 Level GPIO1 ADB
> - 48: 6686659 MPIC 1 Level radeon@pci:0000:00:10.0
> + 42: 1415084 MPIC 1 Level keywest i2c
> + 47: 2075193 MPIC 1 Level GPIO1 ADB
> + 48: 6686778 MPIC 1 Level radeon@pci:0000:00:10.0
> 61: 0 MPIC 1 Edge Sound Headphone Detection
> 63: 94238 MPIC 1 Level ehci_hcd:usb1, ohci_hcd:usb3, ohci_hcd:usb4
> BAD: 19
>
> I don't know where they come from, but that's the cause of the high IRQ
> time.
Are you sure about that? I'm fairly sure that I always had rather high
numbers of interrupt here. And the system isn't sluggish or unresponsive
as you'd expect if the IRQs actually did take 90% of the CPU time!
johannes
[-- Attachment #2: This is a digitally signed message part --]
[-- Type: application/pgp-signature, Size: 828 bytes --]
^ permalink raw reply
* Re: time accounting problem (powerpc only?)
From: Johannes Berg @ 2007-11-23 20:48 UTC (permalink / raw)
To: Jörg Sommer; +Cc: linuxppc-dev
In-Reply-To: <1195850245.4149.170.camel@johannes.berg>
[-- Attachment #1: Type: text/plain, Size: 908 bytes --]
On Fri, 2007-11-23 at 21:37 +0100, Johannes Berg wrote:
> Hi,
> > - 25: 18063968 MPIC 1 Level VIA-PMU
> > + 25: 18064241 MPIC 1 Level VIA-PMU
> > - 42: 1415066 MPIC 1 Level keywest i2c
> > - 47: 2075159 MPIC 1 Level GPIO1 ADB
> > - 48: 6686659 MPIC 1 Level radeon@pci:0000:00:10.0
> > + 42: 1415084 MPIC 1 Level keywest i2c
> > + 47: 2075193 MPIC 1 Level GPIO1 ADB
> > + 48: 6686778 MPIC 1 Level radeon@pci:0000:00:10.0
> Are you sure about that? I'm fairly sure that I always had rather high
> numbers of interrupt here. And the system isn't sluggish or unresponsive
> as you'd expect if the IRQs actually did take 90% of the CPU time!
Also, I'm pretty sure I see the same on my powermac (haven't tested but
I did see the same symptoms) and it has neither a PMU nor radeon :)
johannes
[-- Attachment #2: This is a digitally signed message part --]
[-- Type: application/pgp-signature, Size: 828 bytes --]
^ permalink raw reply
* Linux on ML310
From: narendra sisodiya @ 2007-11-23 22:52 UTC (permalink / raw)
To: linuxppc-embedded
[-- Attachment #1: Type: text/plain, Size: 606 bytes --]
Hi, I am working ML310 XUP virtex2Pro board. My task is to port a Linux
2.4.26 on PowerPC405. I am on the mid way
I have following question.
1. Why in every document Linux kernel 2.4.26 is used, can i use
2.6.xxversion. If yes what will be the modifications,
2. In document some are using busybox for making root file system and
in some Yellow Dog Linux. so what are the such possible options?
3. If any body has done some project then Please share your experience
with me.
--
Narendra Sisodiya
MTech (Computer Technology), IIT Delhi
+91-9999232792
http://www.techfandu.org/index.html
[-- Attachment #2: Type: text/html, Size: 713 bytes --]
^ permalink raw reply
* Re: Linux on ML310
From: Grant Likely @ 2007-11-23 23:17 UTC (permalink / raw)
To: narendra sisodiya; +Cc: linuxppc-embedded
In-Reply-To: <e3fb97f30711231452t473f7949x901e4921c20ec699@mail.gmail.com>
On 11/23/07, narendra sisodiya <narendra.sisodiya@gmail.com> wrote:
> Hi, I am working ML310 XUP virtex2Pro board. My task is to port a Linux
> 2.4.26 on PowerPC405. I am on the mid way
> I have following question.
>
>
> Why in every document Linux kernel 2.4.26 is used, can i use 2.6.xx version.
> If yes what will be the modifications,
Mainline 2.6.x has support for the virtex device but it is missing
some drivers for EMAC, TEMAC and some other devices.
You can get the drivers from my tree at http://git.secretlab.ca/ or
from the xilinx git server http://git.xilinx.com
> In document some are using busybox for making root file system and in some
> Yellow Dog Linux. so what are the such possible options?
Yellow Dog isn't a very good choice for the ppc405 with no floating
point unit. Use an embedded distro like ELDK, or build your own using
buildroot or openembedded
> If any body has done some project then Please share your experience with me.
>
>
> --
> Narendra Sisodiya
> MTech (Computer Technology), IIT Delhi
> +91-9999232792
> http://www.techfandu.org/index.html
> _______________________________________________
> Linuxppc-embedded mailing list
> Linuxppc-embedded@ozlabs.org
> https://ozlabs.org/mailman/listinfo/linuxppc-embedded
>
--
Grant Likely, B.Sc., P.Eng.
Secret Lab Technologies Ltd.
grant.likely@secretlab.ca
(403) 399-0195
^ 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