public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
From: David Brigada <brigad@rpi.edu>
To: Jordan Crouse <jordan.crouse@amd.com>
Cc: jim.cromie@gmail.com, LKML <linux-kernel@vger.kernel.org>,
	linux-geode@lists.infradead.org
Subject: Re: PCI-ISA Bridge not operating
Date: Fri, 11 Jul 2008 16:14:42 -0400	[thread overview]
Message-ID: <4877BF32.9040304@rpi.edu> (raw)
In-Reply-To: <20080711191045.GB29570@cosmic.amd.com> (sfid-20080711_200754_453336_5E9C284C)

Jordan Crouse wrote:
> On 11/07/08 14:58 -0400, David Brigada wrote:
>> David Brigada wrote:
>>> Jordan Crouse wrote:
>>>> On 11/07/08 10:58 -0400, David Brigada wrote:
>>>>> Hi,
>>>>>
>>>>> I'm working with the MSM800XEV board from Digital-Logic.  This board 
>>>>> uses a Geode LX800 for a CPU and has the CS5536 companion board also 
>>>>> installed.  The board works with an IT8888G IC that provides a PCI/ISA 
>>>>> bridge to a PC/104 bus that is externally provided.
>>>>>
>>>>> If I boot with FreeDOS, I can twiddle I/O ports, and the proper ISA 
>>>>> signaling comes over the PC/104 bus.  In Linux, the /IOW or /IOR line 
>>>>> goes low as expected, but the address doesn't come over the bus.  The 
>>>>> DOS that I'm running doesn't seem to have any specific drivers for the 
>>>>> chip, I'm guessing that the hardware should "just work" --- the IT8888G 
>>>>> is designed to grab I/O requests in the ISA range off the PCI bus after 
>>>>> a short delay if nothing else grabs them first.
>>>>>
>>>>> I have a feeling that it has something to do with the CS5536 companion 
>>>>> chip, as it seems as though there is a driver for a PCI/ISA bridge on 
>>>>> that chip, though I can't get much detail from AMD's datasheet on that 
>>>>> functionality.  I do know that on the MSM800XEV, any such functionality 
>>>>> is wired to the IT8888G, not the CS5536.
>>>>>
>>>>> There are two kernel config options related to the PCI IDs of the parts 
>>>>> of the device that handle the ISA bus, CONFIG_SCx200_ACB and 
>>>>> CONFIG_CS5535_GPIO.  I've tried disabling both, but it doesn't seem to help.
>>>>>
>>>>> In lspci, the CS5536 PCI/ISA bridge is shown, but not the IT8888G.
>>>>>
>>>>> Any ideas?
>>>> ISA should indeed "just work".  The only thing I'm wondering is if
>>>> the kernel is interfering (it shouldn't).  I assume that since it works
>>>> in FreeDOS that there is no possibility that something on the PCI bus
>>>> is grabbing the cycles instead.
>>> That's what I'm thinking --- that the CS5536 PCI/ISA bridge is claiming 
>>> the cycles.
>>>
>>>> How are you trying to access the device in Linux?  Through a kernel module
>>>> or a user application running as root?
>>> I've tried both.  I have a kernel module that I wrote for the hardware. 
>>>   When I couldn't get that working, I tried looping some code that keeps 
>>> touching the same I/O port that I'm using.
>>>
>>>> Jordan
>>>>
>>> Dave
>> Looking through the documentation for the CS5536, in the "CS56536 
>> Companion Device Data Book," section 5.2.8, it says the following:
>>
>>  > If the SDOFF (Subtractive Decode Off) bit in the GLPCI_MSR_CTRL (MSR
>>  > 51000010h[10]) is cleared (reset value), any PCI transaction, other
>>  > than Configuration Read/Write, Interrupt Acknowledge, and Special
>>  > Cycle transactions, not claimed by any device (i.3., not asserting
>>  > DEVSEL#) within the default active decode cycles (three cycles
>>  > immediately after FRAME# being asserted) will be accepted by GLPCI_SB
>>  > at the fourth clock edge.
>>
>> This is the same behavior that the IT8888G chip uses --- it waits three 
>> cycles for another device to claim it and then passes the transaction 
>> along.  I'm guessing that the CS5536 might be grabbing it (maybe it's 
>> electrically closer, or the logic is more optimized) before the IT8888G 
>> can handle it.
>>
>> Does this seem feasible as to what could be happening?
> 
> Sure, but then why does FreeDOS work?  It shouldn't be any different
> when the bits hit the line.
> 
> Jordan

That *is* puzzling.  When I do lspci, the entry for the IT8888G does not 
appear.  I don't have much experience with PCI internals.  Would that be 
because there is no driver for it in the kernel, or is there something 
more insidious afoot?

Dave

  reply	other threads:[~2008-07-11 20:15 UTC|newest]

Thread overview: 9+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2008-07-11 14:58 PCI-ISA Bridge not operating David Brigada
2008-07-11 16:48 ` Jordan Crouse
2008-07-11 16:55   ` David Brigada
2008-07-11 18:58     ` David Brigada
2008-07-11 19:10       ` Jordan Crouse
2008-07-11 20:14         ` David Brigada [this message]
2008-07-11 20:29           ` Jordan Crouse
2008-07-11 20:31             ` David Brigada
2008-07-11 20:52               ` Jordan Crouse

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=4877BF32.9040304@rpi.edu \
    --to=brigad@rpi.edu \
    --cc=jim.cromie@gmail.com \
    --cc=jordan.crouse@amd.com \
    --cc=linux-geode@lists.infradead.org \
    --cc=linux-kernel@vger.kernel.org \
    /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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox