[parisc-linux] C3600/J5600 support

Bjorn Helgaas bjorn_helgaas@hp.com
Tue, 18 Sep 2001 14:40:37 -0600


I don't have time to pursue C3600/J5600 issues, so I'm forwarding this to 
the list in case anyone else wants to look at it.  I got C3600 to boot 
with a small ugly hack (see below), so I think a clean solution shouldn't 
be too hard to find.

Bjorn


----------  Forwarded Message  ----------

Subject: Re: C3600 LBA problem
Date: Thu, 13 Sep 2001 01:11:32 -0600
From: Grant Grundler <grundler@puffin.external.hp.com>
To: Bjorn Helgaas <bjorn_helgaas@hp.com>

Bjorn Helgaas wrote:
> Hi Grant,
>
> I'm playing with a C3600.  Not sure if the kernel is "supposed" to work
> on this or not, but it seems pretty close.

Rick Jones and I tried to boot on a J5600 and it HPMC'd too.
It wasn't a priority to pursue at the time.

> When I boot the current cvs kernel (with EARLY_BOOTUP_DEBUG) on the
> C3600, I get an HPMC while doing a config space read just after finding
> an LBA:
>
>   lba version TR4.0 (0x5) found at 0xfffffffffed30000
>   <HPMC>
>
> >From the PIM, I see:
>
>   PC: 1024ca44 (_gsc_readb+4)
>     1024ca44:   0f 40 00 1c     ldb  r0(sr0,r26),ret0
>   R26: fffffffffed3004a
>   RP: 10111130 (in lba_cfg_read)
>
> I don't see anything wrong with the address we're trying to read -- it
> looks like a valid byte in the CONFIG_DATA CSR.
>
> I notice in lba_cfg_read##size that since this is a TR4 LBA, we don't
> use the old workaround code.  However, if I short-circuit the version
> testing so we DO use the old code, the kernel boots just fine!  I.e.,
> with the following change to lba_pci.c:
>
> -       if ((!LBA_TR4PLUS(d)) && (!LBA_SKIP_PROBE(d))) { \
> +       if (1 /*(!LBA_TR4PLUS(d)) && (!LBA_SKIP_PROBE(d))*/) { \
>
> it works.  Any ideas on how to pursue this?

Several ideas:
o Sprockets firmware *does* program the chipset a bit differently
  than PAT PDC firmware - notably DMA hint registers. Dump *all* LBA
  registers from A500, C3K, and C3600 boot and see what's different.
  It also might be a difference in how Astro or the CPU is initialized
  but LBA is a starting point.

o Talk to Sprockets firmware team. JL Marsh is my contact though I
  think he's been working on IA64 firmware for quite some time.
  Find out if any of the differences are obvious to them.

o Look at later versions of HPUX LBA code to see if they do anything
  different. I based my code on 990P (r11_rose_latest or something like
 that). Joe Loos (Cupertino) would know who "owns" LBA support for HPUX. I
 haven't talked to him in a while and don't even know if he's
  still around.

>   I'm also testing on an A500,
> which looks like it has TR4 LBAs as well, so I know the TR4PLUS path
> isn't completely broken.

Exactly. A500 is working for everyone so I'm pretty sure it's not
a fundemental HW problem.

> Oh, I'll attach all the console output from both boots.

mh doesn't deal well with attachments. I need to get to bed anyway.
I will unpack/look at those tomorrow for you.

hope this helps,
grant

-------------------------------------------------------