* [parisc-linux] Re: Trident video card caused Kernel Panic on HP Visualize 785/B2000 with rebuilt 2.6.11-rc6-pa1 kernel
[not found] <5.1.1.6.1.20050615221250.02a429c0@pop.singnet.com.sg>
@ 2005-06-15 19:06 ` Grant Grundler
2005-06-20 20:45 ` Bjorn Helgaas
[not found] ` <5.1.1.6.1.20050701204720.02abaec0@pop.singnet.com.sg>
1 sibling, 1 reply; 11+ messages in thread
From: Grant Grundler @ 2005-06-15 19:06 UTC (permalink / raw)
To: J. L. Lee; +Cc: parisc-linux
On Wed, Jun 15, 2005 at 10:59:21PM +0800, J. L. Lee wrote:
...
> The B2000 booted past the initial RAM disk, discovered the built-in
> hardware and the PCI Trident card, then disaster struck. Kernel panic after
> the discovery of the Trident card.
Thanks for the good problem description - I know those take a long
time to write up.
But this isn't a "kernel panic" - it's a "High Priority Machine Check" (HPMC).
The difference is the platform chipset detected an error vs something
in the kernel. Fortunately the register dump and other console
output gives enough clues.
The HPMC occurs when tridentfb.c tries to poke at:
if (chip_id == TGUI9660) {
outb(RevisionID,0x3C4);
revision = inb(0x3C5);
...
This generally can't work on parisc.
Only if the trident card is plugged in under PCI bus 0.
The driver needs to map the hard coded address to some PCI resource.
What does your "lspci -v" output say?
You could hack around this with "#ifndef CONFIG_PARISC"
and hardcode the "chip_id" to the model you have.
You could then find out if the rest of the code has a chance of working.
hth,
grant
_______________________________________________
parisc-linux mailing list
parisc-linux@lists.parisc-linux.org
http://lists.parisc-linux.org/mailman/listinfo/parisc-linux
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [parisc-linux] Re: Trident video card caused Kernel Panic on HP Visualize 785/B2000 with rebuilt 2.6.11-rc6-pa1 kernel
2005-06-15 19:06 ` [parisc-linux] Re: Trident video card caused Kernel Panic on HP Visualize 785/B2000 with rebuilt 2.6.11-rc6-pa1 kernel Grant Grundler
@ 2005-06-20 20:45 ` Bjorn Helgaas
2005-06-21 2:06 ` Grant Grundler
0 siblings, 1 reply; 11+ messages in thread
From: Bjorn Helgaas @ 2005-06-20 20:45 UTC (permalink / raw)
To: parisc-linux
On Wednesday 15 June 2005 1:06 pm, Grant Grundler wrote:
> The HPMC occurs when tridentfb.c tries to poke at:
> if (chip_id == TGUI9660) {
> outb(RevisionID,0x3C4);
> revision = inb(0x3C5);
> ...
>
> This generally can't work on parisc.
> Only if the trident card is plugged in under PCI bus 0.
> The driver needs to map the hard coded address to some PCI resource.
0x3C4 and 0x3C5 are in the legacy VGA port range. Does Astro have
programmable routing for that range? If so, this could probably
be made to work with enough kernel support. I'm working on some
similar stuff for ia64.
_______________________________________________
parisc-linux mailing list
parisc-linux@lists.parisc-linux.org
http://lists.parisc-linux.org/mailman/listinfo/parisc-linux
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [parisc-linux] Re: Trident video card caused Kernel Panic on HP Visualize 785/B2000 with rebuilt 2.6.11-rc6-pa1 kernel
2005-06-20 20:45 ` Bjorn Helgaas
@ 2005-06-21 2:06 ` Grant Grundler
2005-06-23 18:59 ` Kyle McMartin
0 siblings, 1 reply; 11+ messages in thread
From: Grant Grundler @ 2005-06-21 2:06 UTC (permalink / raw)
To: Bjorn Helgaas; +Cc: parisc-linux
On Mon, Jun 20, 2005 at 02:45:19PM -0600, Bjorn Helgaas wrote:
> On Wednesday 15 June 2005 1:06 pm, Grant Grundler wrote:
> > The HPMC occurs when tridentfb.c tries to poke at:
> > if (chip_id == TGUI9660) {
> > outb(RevisionID,0x3C4);
> > revision = inb(0x3C5);
> > ...
> >
> > This generally can't work on parisc.
> > Only if the trident card is plugged in under PCI bus 0.
> > The driver needs to map the hard coded address to some PCI resource.
>
> 0x3C4 and 0x3C5 are in the legacy VGA port range.
Bjorn,
ok - thanks for the follow up.
> Does Astro have programmable routing for that range?
Supposedly yes. But it was never verified by the HW teams and
I've been told that it is in fact broken.
If someone wants to poke at this anyway, the "STATUS_CONTROL"
register documented in:
http://ftp.parisc-linux.org/docs/chips/elroy_ers.ps
describes the "VGA Enable bit":
| VGA Enable (bit 3, 0x8)
| If ve = 1, VGA frame buffer and IOP space accesses will never be
| claimed by ELROY, regardless of range register programming. This bit
| must be set if a VGA device is located on this PCI bus. Only one
| ELROY in the system should have its ve bit set.
| If ve = 0, ELROY may claim VGA space, depending on range register
| programming.
ie a "directed range" could be programmed to redirect accesses from
MMIO space to a particular Elroy. Requires programming a directed
range in Astro and a matched "Extra LMMIO" range in Elroy.
I've never messed with this and always depended on firmware
to deal with range registers.
| VGA Frame Buffer Space
| The VGA frame buffer space is a fixed 128 k region from 640 k to (768 k - 1).
| The only PCI bus in the system that will claim this space is the one
| with the VGA Enable bit set. This PCI bus will also claim accesses to
| VGA I/O Space.
| VGA I/O Port Space
| The VGA I/O space is the fixed I/O space region from 0x03B0 through
| 0x03DF and the 10 bit aliases.
...
| Also, even if the VGA I/O Space overlaps the I/O space of another
| PCI bus, only the PCI bus with its VGA Enable bit set will respond
| to these ranges.
Just remember it may not work at all or fail in some wierd way.
If if doesn't work, don't ask me since I won't know either.
> If so, this could probably
> be made to work with enough kernel support. I'm working on some
> similar stuff for ia64.
Note that pa8800 boxes also use ZX1 chipset. Please keep
parisc-linux cc'd on any patches you cook up for this.
thanks again ,
grant
_______________________________________________
parisc-linux mailing list
parisc-linux@lists.parisc-linux.org
http://lists.parisc-linux.org/mailman/listinfo/parisc-linux
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [parisc-linux] Re: Trident video card caused Kernel Panic on HP Visualize 785/B2000 with rebuilt 2.6.11-rc6-pa1 kernel
2005-06-21 2:06 ` Grant Grundler
@ 2005-06-23 18:59 ` Kyle McMartin
2005-06-23 19:09 ` Grant Grundler
0 siblings, 1 reply; 11+ messages in thread
From: Kyle McMartin @ 2005-06-23 18:59 UTC (permalink / raw)
To: Grant Grundler; +Cc: parisc-linux, Bjorn Helgaas
On Mon, Jun 20, 2005 at 08:06:05PM -0600, Grant Grundler wrote:
> ie a "directed range" could be programmed to redirect accesses from
> MMIO space to a particular Elroy. Requires programming a directed
> range in Astro and a matched "Extra LMMIO" range in Elroy.
> I've never messed with this and always depended on firmware
> to deal with range registers.
>
I've been looking at the Astro and Elroy ERS trying to understand
this. Does this mean that even if the "VGA Enable" logic is broken,
we could still force VGA accesses to be routed to a specific PCI
device, or are we out of luck?
If it's feasible, I'm willing to take some time to look into this.
Cheers,
--
Kyle McMartin
_______________________________________________
parisc-linux mailing list
parisc-linux@lists.parisc-linux.org
http://lists.parisc-linux.org/mailman/listinfo/parisc-linux
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [parisc-linux] Re: Trident video card caused Kernel Panic on HP Visualize 785/B2000 with rebuilt 2.6.11-rc6-pa1 kernel
2005-06-23 18:59 ` Kyle McMartin
@ 2005-06-23 19:09 ` Grant Grundler
2005-06-23 19:24 ` Bjorn Helgaas
0 siblings, 1 reply; 11+ messages in thread
From: Grant Grundler @ 2005-06-23 19:09 UTC (permalink / raw)
To: Kyle McMartin; +Cc: parisc-linux, Bjorn Helgaas
On Thu, Jun 23, 2005 at 02:59:25PM -0400, Kyle McMartin wrote:
> > ie a "directed range" could be programmed to redirect accesses from
> > MMIO space to a particular Elroy. Requires programming a directed
> > range in Astro and a matched "Extra LMMIO" range in Elroy.
> > I've never messed with this and always depended on firmware
> > to deal with range registers.
> >
>
> I've been looking at the Astro and Elroy ERS trying to understand
> this. Does this mean that even if the "VGA Enable" logic is broken,
> we could still force VGA accesses to be routed to a specific PCI
> device, or are we out of luck?
We can force any MMIO accesses to any rope with "Directed Ranges" on Astro.
We can NOT force IO Port accesses to anything.
> If it's feasible, I'm willing to take some time to look into this.
I'm not sure it's "feasible" unless we can get around IO Port space
routing issues.
grant
>
> Cheers,
> --
> Kyle McMartin
_______________________________________________
parisc-linux mailing list
parisc-linux@lists.parisc-linux.org
http://lists.parisc-linux.org/mailman/listinfo/parisc-linux
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [parisc-linux] Re: Trident video card caused Kernel Panic on HP Visualize 785/B2000 with rebuilt 2.6.11-rc6-pa1 kernel
2005-06-23 19:09 ` Grant Grundler
@ 2005-06-23 19:24 ` Bjorn Helgaas
2005-06-23 20:18 ` Grant Grundler
0 siblings, 1 reply; 11+ messages in thread
From: Bjorn Helgaas @ 2005-06-23 19:24 UTC (permalink / raw)
To: Grant Grundler; +Cc: Kyle McMartin, parisc-linux
On Thursday 23 June 2005 1:09 pm, Grant Grundler wrote:
> On Thu, Jun 23, 2005 at 02:59:25PM -0400, Kyle McMartin wrote:
> > > ie a "directed range" could be programmed to redirect accesses from
> > > MMIO space to a particular Elroy. Requires programming a directed
> > > range in Astro and a matched "Extra LMMIO" range in Elroy.
> > > I've never messed with this and always depended on firmware
> > > to deal with range registers.
> > >
> >
> > I've been looking at the Astro and Elroy ERS trying to understand
> > this. Does this mean that even if the "VGA Enable" logic is broken,
> > we could still force VGA accesses to be routed to a specific PCI
> > device, or are we out of luck?
>
> We can force any MMIO accesses to any rope with "Directed Ranges" on Astro.
> We can NOT force IO Port accesses to anything.
>
> > If it's feasible, I'm willing to take some time to look into this.
>
> I'm not sure it's "feasible" unless we can get around IO Port space
> routing issues.
If the IO port routing is broken, I don't know whether we can do
anything useful. X emulates the option ROM to initialize the card,
and the ROM typically does IO port accesses that have to appear on
the bus as accesses in the 0x3b0-0x3df range.
Even without Astro VGA routing, the emulator or kernel could remap
those accesses so they get routed to the correct bus. But that's
not enough, because then they won't appear on the bus in the
0x3b0-0x3df range that the card is expecting.
_______________________________________________
parisc-linux mailing list
parisc-linux@lists.parisc-linux.org
http://lists.parisc-linux.org/mailman/listinfo/parisc-linux
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [parisc-linux] Re: Trident video card caused Kernel Panic on HP Visualize 785/B2000 with rebuilt 2.6.11-rc6-pa1 kernel
2005-06-23 19:24 ` Bjorn Helgaas
@ 2005-06-23 20:18 ` Grant Grundler
2005-06-23 20:22 ` Bjorn Helgaas
2005-06-23 20:30 ` Kyle McMartin
0 siblings, 2 replies; 11+ messages in thread
From: Grant Grundler @ 2005-06-23 20:18 UTC (permalink / raw)
To: Bjorn Helgaas; +Cc: Kyle McMartin, parisc-linux
On Thu, Jun 23, 2005 at 01:24:21PM -0600, Bjorn Helgaas wrote:
> > I'm not sure it's "feasible" unless we can get around IO Port space
> > routing issues.
>
> If the IO port routing is broken, I don't know whether we can do
> anything useful. X emulates the option ROM to initialize the card,
> and the ROM typically does IO port accesses that have to appear on
> the bus as accesses in the 0x3b0-0x3df range.
On parisc the emulator would have to call into the Elroy PCI
support (drivers/parisc/lba_pci.c) to generate the IO port accesses.
Ie parisc has no "load/store IO Port space" instructions.
It all has to be done by directly poking the Elroy registers
on the right elroy.
IA64 could do this as well but doesn't have an "lba_pci.c" driver.
Everything is "nicely" encapsulate by SAL calls and IA64 can
directly generate IO Port space load/stores (in/out) so it
wouldn't normally need a PCI Host Bus controller driver.
> Even without Astro VGA routing, the emulator or kernel could remap
> those accesses so they get routed to the correct bus. But that's
> not enough, because then they won't appear on the bus in the
> 0x3b0-0x3df range that the card is expecting.
Given the above, we can poke any value we want in to the Elroy registers
in order to generate the right IO port space addresses.
grant
_______________________________________________
parisc-linux mailing list
parisc-linux@lists.parisc-linux.org
http://lists.parisc-linux.org/mailman/listinfo/parisc-linux
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [parisc-linux] Re: Trident video card caused Kernel Panic on HP Visualize 785/B2000 with rebuilt 2.6.11-rc6-pa1 kernel
2005-06-23 20:18 ` Grant Grundler
@ 2005-06-23 20:22 ` Bjorn Helgaas
2005-06-23 20:30 ` Kyle McMartin
1 sibling, 0 replies; 11+ messages in thread
From: Bjorn Helgaas @ 2005-06-23 20:22 UTC (permalink / raw)
To: Grant Grundler; +Cc: Kyle McMartin, parisc-linux
On Thursday 23 June 2005 2:18 pm, Grant Grundler wrote:
> On parisc the emulator would have to call into the Elroy PCI
> support (drivers/parisc/lba_pci.c) to generate the IO port accesses.
> Ie parisc has no "load/store IO Port space" instructions.
> It all has to be done by directly poking the Elroy registers
> on the right elroy.
> > Even without Astro VGA routing, the emulator or kernel could remap
> > those accesses so they get routed to the correct bus. But that's
> > not enough, because then they won't appear on the bus in the
> > 0x3b0-0x3df range that the card is expecting.
>
> Given the above, we can poke any value we want in to the Elroy registers
> in order to generate the right IO port space addresses.
Hmmm.... very interesting idea. The hook is already there
(ia64_pci_legacy_read() is an example for ia64), so parisc
could implement something similar that poked Elroy directly.
_______________________________________________
parisc-linux mailing list
parisc-linux@lists.parisc-linux.org
http://lists.parisc-linux.org/mailman/listinfo/parisc-linux
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [parisc-linux] Re: Trident video card caused Kernel Panic on HP Visualize 785/B2000 with rebuilt 2.6.11-rc6-pa1 kernel
2005-06-23 20:18 ` Grant Grundler
2005-06-23 20:22 ` Bjorn Helgaas
@ 2005-06-23 20:30 ` Kyle McMartin
2005-06-23 20:46 ` Bjorn Helgaas
1 sibling, 1 reply; 11+ messages in thread
From: Kyle McMartin @ 2005-06-23 20:30 UTC (permalink / raw)
To: Grant Grundler; +Cc: parisc-linux, Bjorn Helgaas
On Thu, Jun 23, 2005 at 02:18:07PM -0600, Grant Grundler wrote:
> > Even without Astro VGA routing, the emulator or kernel could remap
> > those accesses so they get routed to the correct bus. But that's
> > not enough, because then they won't appear on the bus in the
> > 0x3b0-0x3df range that the card is expecting.
>
> Given the above, we can poke any value we want in to the Elroy registers
> in order to generate the right IO port space addresses.
>
Given this, it's probably feasible then to wrap (out|in)X with a
vga_(out|in)X define in each of the drivers and emulate it as best we
can with Elroy?
Sorry if I'm misunderstanding, this is over my head right now. :)
--
Kyle McMartin
_______________________________________________
parisc-linux mailing list
parisc-linux@lists.parisc-linux.org
http://lists.parisc-linux.org/mailman/listinfo/parisc-linux
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [parisc-linux] Re: Trident video card caused Kernel Panic on HP Visualize 785/B2000 with rebuilt 2.6.11-rc6-pa1 kernel
2005-06-23 20:30 ` Kyle McMartin
@ 2005-06-23 20:46 ` Bjorn Helgaas
0 siblings, 0 replies; 11+ messages in thread
From: Bjorn Helgaas @ 2005-06-23 20:46 UTC (permalink / raw)
To: Kyle McMartin; +Cc: parisc-linux
On Thursday 23 June 2005 2:30 pm, Kyle McMartin wrote:
> On Thu, Jun 23, 2005 at 02:18:07PM -0600, Grant Grundler wrote:
> > > Even without Astro VGA routing, the emulator or kernel could remap
> > > those accesses so they get routed to the correct bus. But that's
> > > not enough, because then they won't appear on the bus in the
> > > 0x3b0-0x3df range that the card is expecting.
> >
> > Given the above, we can poke any value we want in to the Elroy registers
> > in order to generate the right IO port space addresses.
>
> Given this, it's probably feasible then to wrap (out|in)X with a
> vga_(out|in)X define in each of the drivers and emulate it as best we
> can with Elroy?
The part I was talking about is for user-land. Late last year,
Jesse Barnes added some new files in sysfs (see the bottom of
Documentation/filesystems/sysfs-pci.txt).
At the same time, they added some stuff to X to use these new
sysfs files for access to the legacy MMIO and I/O port ranges.
I don't think this has made it into a released X yet, but it's
in Xorg CVS.
I haven't really looked into the in-kernel accessors. They'd
probably need work like you mention. Ben H. proposed a VGA
arbiter that I think would be involved. But my guess is that
you'd only need something like that if you want the in-kernel
framebuffer driver or something. With the stuff Jesse added,
X can run the option ROM to initialize any card, so you may
not need the framebuffer drivers.
_______________________________________________
parisc-linux mailing list
parisc-linux@lists.parisc-linux.org
http://lists.parisc-linux.org/mailman/listinfo/parisc-linux
^ permalink raw reply [flat|nested] 11+ messages in thread
* [parisc-linux] Re: Trident video card caused Kernel Panic on HP Visualize 785/B2000 with rebuilt 2.6.11-rc6-pa1 kernel
[not found] ` <5.1.1.6.1.20050701204720.02abaec0@pop.singnet.com.sg>
@ 2005-07-02 7:44 ` Grant Grundler
0 siblings, 0 replies; 11+ messages in thread
From: Grant Grundler @ 2005-07-02 7:44 UTC (permalink / raw)
To: J. L. Lee; +Cc: parisc-linux
On Fri, Jul 01, 2005 at 08:55:21PM +0800, J. L. Lee wrote:
> >Only if the trident card is plugged in under PCI bus 0.
> >The driver needs to map the hard coded address to some PCI resource.
> >What does your "lspci -v" output say?
Lee,
Can you please post the "lspci -v" output?
> Pls adv if by 'PCI bus 0' you mean the first (counting from the top of the
> box) available PCI slot (4 slots in mine) in my B2000?
No. PCI Bus != slot. Normally parisc machines don't have
slots on PCI bus 0 - that's usually reserved for "built-in" devices.
> >You could hack around this with "#ifndef CONFIG_PARISC"
> >and hardcode the "chip_id" to the model you have.
> >You could then find out if the rest of the code has a chance of working.
>
> Where can I find the line "#ifndef CONFIG_PARISC" and how to hardcode the
> "chip_id" to the model I have? Where can I get the "chip_id" info? by
> 'lspci -v' & 'cat /proc/iomem'?
Sorry, sounds like my advice is a bit beyond your current skill level.
Can someone cook up a patch for him to try?
grant
_______________________________________________
parisc-linux mailing list
parisc-linux@lists.parisc-linux.org
http://lists.parisc-linux.org/mailman/listinfo/parisc-linux
^ permalink raw reply [flat|nested] 11+ messages in thread
end of thread, other threads:[~2005-07-02 7:44 UTC | newest]
Thread overview: 11+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
[not found] <5.1.1.6.1.20050615221250.02a429c0@pop.singnet.com.sg>
2005-06-15 19:06 ` [parisc-linux] Re: Trident video card caused Kernel Panic on HP Visualize 785/B2000 with rebuilt 2.6.11-rc6-pa1 kernel Grant Grundler
2005-06-20 20:45 ` Bjorn Helgaas
2005-06-21 2:06 ` Grant Grundler
2005-06-23 18:59 ` Kyle McMartin
2005-06-23 19:09 ` Grant Grundler
2005-06-23 19:24 ` Bjorn Helgaas
2005-06-23 20:18 ` Grant Grundler
2005-06-23 20:22 ` Bjorn Helgaas
2005-06-23 20:30 ` Kyle McMartin
2005-06-23 20:46 ` Bjorn Helgaas
[not found] ` <5.1.1.6.1.20050701204720.02abaec0@pop.singnet.com.sg>
2005-07-02 7:44 ` Grant Grundler
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox