[parisc-linux] help debuging HMPC
Ryan Bradetich
rbrad@beavis.ybsoft.com
Sun, 15 Jul 2001 21:31:57 -0600
On Sat, Jul 14, 2001 at 12:20:00AM -0600, Grant Grundler wrote:
> > This is the instruction that causes the HPMC (IAOQ address - 8):
> > ldwa r0(r26),r26
>
> Given the IOAQ data below, I'm pretty sure GR26 is garbage.
>
> Anyway, the IO port address is most likely still in GR24
> since it's the third arg to dino_inX. The call to gsc_readX
> won't (shouldn't) clobber that.
Just a quick clarification:
I macro expanded dino_in32 into this:
static u32 dino_in32 (struct pci_hba_data *d, u16 addr);
dino_in32 only takes two arguments, so I should check GR25 and manually
perform the calculations in the dino_in32 to get the proper address
passed to the _gsc_readl function, correct?
> The stack is just a temporary storage space for code to save registers.
> IOAQ reflects the state of the CPU and has nothing to do with stack.
Doh .. ok. This makes sense to me now. *sigh*
> > running the astk command from the build-tools also does
> > not show the dino_in32 or the _gsc_readl addresses in
> > the stack trace either.
>
> right - only time you'll see a function address (which was part
> of the call chain) is when GR02 gets saved.
> gsc_readX is a "leaf" routine and thus doesn't save GR02.
> The last thing on the stack should be the caller to dino_inX().
This also make sense to me. Thanks for your time and explaination Grant!
- Ryan
> grant
>
> Grant Grundler
> parisc-linux {PCI|IOMMU|SMP} hacker
> +1.408.447.7253
>
>
> _______________________________________________
> parisc-linux mailing list
> parisc-linux@lists.parisc-linux.org
> http://lists.parisc-linux.org/cgi-bin/mailman/listinfo/parisc-linux
>
--