* machine checks with MPC107 and read_config?
@ 2004-04-13 20:52 Andrew Klossner
2004-04-13 23:52 ` Mark A. Greer
0 siblings, 1 reply; 2+ messages in thread
From: Andrew Klossner @ 2004-04-13 20:52 UTC (permalink / raw)
To: linuxppc-embedded
I'm bringing up 2.6 on some embedded boards using G3/G4 CPUs and an
MPC107. We've been running vxWorks on these boards for years and we
know the chips pretty well.
During startup, the first attempt to read the config space from an
unpopulated devfn causes an oops: machine check.
Looking at arch/ppc/syslib/indirect_pci.c, I see the fundamental
read-config operation, but I don't see it bracketed by writes to
MPC107 registers to temporarily disable master-abort error enable.
Specifically, I would expect bit 1 "PCI master-abort error enable" to
be turned off in register 0xc0 "Error enabling register 1", then
restored at the end of the routine, and I would expect to see a test
of bit 13 "received master-abort" in register 0x06 "PCI status
register" to see whether the config-space access succeeded.
Before I sidestep the code in mpc10x_common.c and indirect_pci.c, let
me ask: does everybody else run with master-abort detection turned
off? Doesn't that hurt your ability to find bad pointers into
I/O space? Or am I overlooking something here?
Thanks,
Andrew Klossner
** Sent via the linuxppc-embedded mail list. See http://lists.linuxppc.org/
^ permalink raw reply [flat|nested] 2+ messages in thread
* Re: machine checks with MPC107 and read_config?
2004-04-13 20:52 machine checks with MPC107 and read_config? Andrew Klossner
@ 2004-04-13 23:52 ` Mark A. Greer
0 siblings, 0 replies; 2+ messages in thread
From: Mark A. Greer @ 2004-04-13 23:52 UTC (permalink / raw)
To: Andrew Klossner; +Cc: linuxppc-embedded
Andrew Klossner wrote:
>I'm bringing up 2.6 on some embedded boards using G3/G4 CPUs and an
>MPC107. We've been running vxWorks on these boards for years and we
>know the chips pretty well.
>
>During startup, the first attempt to read the config space from an
>unpopulated devfn causes an oops: machine check.
>
Do you have the bridge's regs mapped into virtual memory? Use an
existing platform that uses the mpc107 like the sandpoint as an
example. Pay special attention to the use of the 'set_bat' and
'io_block_mapping' routines.
>Looking at arch/ppc/syslib/indirect_pci.c, I see the fundamental
>read-config operation, but I don't see it bracketed by writes to
>MPC107 registers to temporarily disable master-abort error enable.
>Specifically, I would expect bit 1 "PCI master-abort error enable" to
>be turned off in register 0xc0 "Error enabling register 1", then
>restored at the end of the routine, and I would expect to see a test
>of bit 13 "received master-abort" in register 0x06 "PCI status
>register" to see whether the config-space access succeeded.
>
You are correct. The mpc10x_common.c code is basic and more concerned
with getting the bridge to use the proper address map than anything
else. The level of detection and, presumably, handling just isn't
there. If you need it, I'm afraid you're going to have to implement it.
>Before I sidestep the code in mpc10x_common.c and indirect_pci.c, let
>me ask: does everybody else run with master-abort detection turned
>off?
>
Maybe the MAC guys worry about it but AFAIK, most other platforms don't.
> Doesn't that hurt your ability to find bad pointers into
>I/O space?
>
Maybe but you're probably going to notice other symptoms of bad I/O
space pointers anyway, so is it worth it?
> Or am I overlooking something here?
Maybe I am?
Mark
** Sent via the linuxppc-embedded mail list. See http://lists.linuxppc.org/
^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2004-04-13 23:52 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2004-04-13 20:52 machine checks with MPC107 and read_config? Andrew Klossner
2004-04-13 23:52 ` Mark A. Greer
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).