Re: [PATCH v3] parisc: Fix crash due alternative coding for NP iopdir_fdc bit

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On 2019-05-29 10:15 a.m., Helge Deller wrote:
> On 28.05.19 20:40, John David Anglin wrote:
>> On 2019-05-28 1:39 p.m., Sven Schnelle wrote:
>>> Hi,
>>>
>>> On Tue, May 28, 2019 at 07:24:29PM +0200, Rolf Eike Beer wrote:
>>>> Am Dienstag, 28. Mai 2019, 19:06:48 CEST schrieb John David Anglin:
>>>>> On 2019-05-28 11:38 a.m., Sven Schnelle wrote:
>>>>>> Interesting. Now that you mention it i see that my C3750 reports the same.
>>>>>> Google returned the following page
>>>>>> https://support.hpe.com/hpsc/swd/public/detail?swItemId=PF_CCJ70020
>>>>>>
>>>>>> Which is 2.0, and only mentions "C3650/C3700/C3750/J6700/J6750 firmware"
>>>>>> So maybe these machines have NP set, and machines "below" (like C3600)
>>>>>> don't have it set.
>>>>>>
>>>>>> I wonder what happens if you try to flash a 5.0 firmware to such a box.
>>>>> From what I see, the "C3650/C3700/C3750/J6700/J6750" and "HP 9000 Model
>>>>> B1000/C3000/J5000/J7000" use different firmware.
>>>> Which makes sense as the former have use a 8600 CPU, while the latter have
>>>> 8700 ones.
>>> Exactly. And as:
>>>
>>> a) All C3600 PDC versions clear the NP bit
>>> b) All C37XX/J5000 PDC version set the NP bit
>>>
>>> i don't think there's some bug in the PDC. I would guess that the patch Carlo
>>> reported to fix issues is just hiding the real problem. Would be interesting
>>> to run Carlo's Test on a C37XX.
>> Probably, hardware cache coherent I/O is not implemented correctly for Elroy based systems.
>> https://www.hpl.hp.com/hpjournal/96feb/feb96a6.pdf
>> Does it work on C360?
> I slowly start to get confused...
Ditto.
> Just thinking about another possibility: Maybe we can rely on the value of the
> NP iopdir_fdc bit only on machines with >= PA8700 CPUs?
> For older machines (which would need opdir_fdc) HP-UX or other operating
> systems decides on the found CPU.
> This would explain why it's not  set on Carlo's C3600, and if Sven's C240
> (with a PA8200 CPU) doesn't has the bit set too, then this could explain this theory.
We have this comment in ccio-dma.c:

        /* FIXME: PCX_W platforms don't need FDC/SYNC. (eg C360)
        **        PCX-U/U+ do. (eg C200/C240)
        **        PCX-T'? Don't know. (eg C110 or similar K-class)
        **
        ** See PDC_MODEL/option 0/SW_CAP word for "Non-coherent IO-PDIR bit".
        **
        ** "Since PCX-U employs an offset hash that is incompatible with
        ** the real mode coherence index generation of U2, the PDIR entry
        ** must be flushed to memory to retain coherence."
        */

The NP bit is set in C3700 series, C8000 and rp3440.  It needs to be set in PCX-U/U+ because the
PCX-U employs an offset hash that is incompatible with the real mode coherence index generation
of U2.

The above states that C360 doesn't need FDC/SYNC.  It would be interesting to test C360.  The comment
seems wrong since openpa states C200/C240 use the UTurn I/O adapter Runway to GSC bridge.

The C3000 and up use Astro instead of UTurn.  The NP bit suggests the C3000 to C3600 don't need to
flush.  Yet latter versions C3650-C3750 need to flush.  This seems like a strange regression as HP went
to some trouble to do coherent I/O.

Anyway, I'm wondering if this has something to do with offset relationship of physical to virtual memory
in the kernel space.  It seems to me that the I/O adapter has to generate virtual addresses that are
compatible with the kernel.

Do we have ERS for one of the Cxxxx machines?

Dave

-- 
John David Anglin  dave.anglin@xxxxxxxx





[Index of Archives]     [Linux SoC]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux