LinuxQuestions.org
Visit Jeremy's Blog.
Go Back   LinuxQuestions.org > Forums > Linux Forums > Linux - Hardware
User Name
Password
Linux - Hardware This forum is for Hardware issues.
Having trouble installing a piece of hardware? Want to know if that peripheral is compatible with Linux?

Notices

Reply
 
Search this Thread
Old 01-11-2013, 01:04 PM   #1
jdamon
LQ Newbie
 
Registered: Oct 2012
Posts: 2

Rep: Reputation: Disabled
32 bit Linux Kernel not recognising PCI I/O port unlike 64 bit counter part


Hi,

I just completed a port of the standard Linux PCI (wdt_pci) watchdog driver to support ACCES I/O's PCI watchdog, but I have found something strange, specifically in terms of how 32bit Linux kernels are allocating memory and I/O ports for the PCI Watchdog board.

Here's an example of the correct output , using a 2.6.32.60 64 bit kernel ( built from kernel.org ), that includes the correct memory and I/O ports based off of Bars 0-2 on the PCI device. In this case , the I/O ports that are required to be correct start at addres 0xd080.


lspci -vv -xx -s 04:06.0
04:06.0 Class ff00: ACCES I/O Products, Inc. PCI-WDG-CSM (rev 02)
Subsystem: ACCES I/O Products, Inc. PCI-WDG-CSM
Control: I/O+ Mem+ BusMaster- SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
Status: Cap- 66MHz- UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
Interrupt: pin A routed to IRQ 11
Region 0: Memory at ff700000 (32-bit, non-prefetchable) [size=128]
Region 1: I/O ports at d000 [size=128]
Region 2: I/O ports at d080 [size=16]
Kernel modules: aio_wdt
00: 4f 49 c0 22 03 00 80 02 02 00 00 ff 10 00 00 00
10: 00 00 70 ff 01 d0 00 00 81 d0 00 00 00 00 00 00
20: 00 00 00 00 00 00 00 00 00 00 00 00 4f 49 c0 22
30: 00 00 00 00 00 00 00 00 00 00 00 00 0b 01 00 00


However, when this is performed under a 32bit version of the exact same kernel release , I see the following:

04:06.0 Class ff00: ACCES I/O Products, Inc. PCI-WDG-CSM (rev 02)
Subsystem: ACCES I/O Products, Inc. PCI-WDG-CSM
Control: I/O+ Mem+ BusMaster- SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
Status: Cap- 66MHz- UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
Interrupt: pin A routed to IRQ 11
Region 0: Memory at ff700000 (32-bit, non-prefetchable) [size=128]
Region 1: I/O ports at d000 [size=128]
Region 2: [virtual] Memory at 0000d080 (32-bit, non-prefetchable) [size=16]
00: 4f 49 c0 22 03 00 80 02 02 00 00 ff 10 00 00 00
10: 00 00 70 ff 01 d0 00 00 00 00 00 00 00 00 00 00
20: 00 00 00 00 00 00 00 00 00 00 00 00 4f 49 c0 22
30: 00 00 00 00 00 00 00 00 00 00 00 00 0b 01 00 00


Does anyone have any ideas of ways to correct this. The problem is that once the Kernel has allocated the I/O ports at region d080 incorrectly, I am unable to correctly write to this memory address and actually talk to the hardware. It is believe that this used to work with older Kernels ( 2.4 days ) but I have yet been able to verify this. I am including this last statement in case it jogs someone's memory.


Thanks for any suggestions.
 
Old 01-12-2013, 11:35 PM   #2
ukiuki
Senior Member
 
Registered: May 2010
Location: Planet Earth
Distribution: Debian
Posts: 1,028

Rep: Reputation: 365Reputation: 365Reputation: 365Reputation: 365
Did you tried with 3.x.x kernels?

Regards
 
  


Reply


Thread Tools Search this Thread
Search this Thread:

Advanced Search

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is Off
HTML code is Off


Similar Threads
Thread Thread Starter Forum Replies Last Post
[SOLVED] Installing 32 bit RPMs on 64 bit Linux conflicts with 64 bit packages gheibia Linux - Server 1 08-18-2011 01:33 AM
How do I find whether any linux kernel supports 32-bit or 64-bit architecture? dev_d Linux - Newbie 3 02-24-2010 02:52 PM
Help: Issue to port Linux 2.6.11-1 32-bit kernel to HP Server charlie_li Linux - Kernel 1 11-10-2009 04:45 AM
compiling 64 bit kernel in 32 bit linux MadnessASAP Linux - Hardware 6 05-04-2009 11:47 AM
How to check whether kernel is 32 bit or 64 bit in linux? kauuttt Linux - Kernel 11 04-22-2009 07:33 AM


All times are GMT -5. The time now is 05:08 PM.

Main Menu
My LQ
Write for LQ
LinuxQuestions.org is looking for people interested in writing Editorials, Articles, Reviews, and more. If you'd like to contribute content, let us know.
Main Menu
Syndicate
RSS1  Latest Threads
RSS1  LQ News
Twitter: @linuxquestions
identi.ca: @linuxquestions
Facebook: linuxquestions Google+: linuxquestions
Open Source Consulting | Domain Registration