All of lore.kernel.org
 help / color / mirror / Atom feed
From: rbrad@beavis.ybsoft.com (Ryan Bradetich)
To: Grant Grundler <grundler@puffin.external.hp.com>
Cc: parisc-linux@lists.parisc-linux.org
Subject: Re: [parisc-linux] help debuging HMPC
Date: Mon, 16 Jul 2001 21:39:29 -0600	[thread overview]
Message-ID: <20010716213929.A20026@beavis.ybsoft.com> (raw)
In-Reply-To: <200107161338.HAA20386@puffin.external.hp.com>

On Mon, Jul 16, 2001 at 07:38:00AM -0600, Grant Grundler wrote:
> Ryan Bradetich wrote:
> > 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?  
> 
> Erm, right...dino_outX takes three...but the address is the second arg
> and should be found in GR25 too. ATM, I can't explain why I found the
> IO port address in GR24 when debugging a PCI problem on the A500.

I am confused about this also.

This is from the Documentation/parisc/registers file:

    r23-r26: these are arg3-arg0, i.e. you can use them if you
        don't care about the values that were passed in anymore.


this is from my latest register dump:

	r24-27   0000ff40 f2000064 040067f0 102ac010

The first thing that threw me was GR25 was obviously larger then the
u16 address being passed into dino_in32 function.  The other thing is
that value looks like a valid IO address.

I then checked to see how the values being passed to the gsc_writel 
function (I macro-expanded the function and pasted it here for easy 
reference):  

static u32 dino_in32 (struct pci_hba_data *d, u16 addr) 
{
	u32 v;
	unsigned long flags;

	spin_lock_irqsave(&(DINO_DEV(d)->dinosaur_pen), flags);

	/* tell HW which IO Port address */ \
	gsc_writel((u32) addr & ~3, d->base_addr + DINO_PCI_ADDR);

	/* generate I/O PORT read cycle */
	v = gsc_readl(d->base_addr+DINO_IO_DATA+(addr&0));

	spin_unlock_irqrestore(&(DINO_DEV(d)->dinosaur_pen), flags);
	return le32_to_cpu(v); \
}

The register value for GR24 looks to be a 16 bit value, and the value
for GR25 is the calculated value for d->base_addr + DINO_PCI_ADDR.

Dino version 3.1 (bridge mode) found at 0xf2000000
#define DINO_PCI_ADDR		0x064
#define DINO_IO_DATA		0x06c


So a couple of questions :)

1.  Is the HPMC really in the gsc_writel function and just not showing up
until the I/O port read cycle (gsc_readl function)?

2. Is the documentation correct for the resgister usage?

Thanks,

- Ryan

> grant
> 
> Grant Grundler
> parisc-linux {PCI|IOMMU|SMP} hacker
> +1.408.447.7253
> 

-- 

      reply	other threads:[~2001-07-17  3:39 UTC|newest]

Thread overview: 5+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2001-07-13 17:01 [parisc-linux] help debuging HMPC Ryan Bradetich
2001-07-14  6:20 ` Grant Grundler
2001-07-16  3:31   ` Ryan Bradetich
2001-07-16 13:38     ` Grant Grundler
2001-07-17  3:39       ` Ryan Bradetich [this message]

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20010716213929.A20026@beavis.ybsoft.com \
    --to=rbrad@beavis.ybsoft.com \
    --cc=grundler@puffin.external.hp.com \
    --cc=parisc-linux@lists.parisc-linux.org \
    --cc=rbradetich@uswest.net \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.