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

[ale] PCI kernel drivers and IO remapping



No virtual machines for this particular system.  There's only one OS 
running directly on the hardware, we're just at a loss why the remapping 
isn't working properly in one kernel version and fine in another.

On 4/5/2013 14:16, Matt Hessel wrote:
> most of the io remapping I've seen happens in virtualization - like when
> you want to reserve a hardware card to be accessible by a virtual machine
> On Apr 5, 2013 3:35 PM, "Alex Carver" <agcarver+ale at acarver.net> wrote:
>
>> Anyone familiar with IO remapping for PCI hardware?
>>
>> My office mate at work has a scientific data collector card in an Ubuntu
>> machine.  At some point recently, the kernel (and most likely libraries)
>> updated which broke an ioremap_nocache function.  In the code, it attempts:
>>
>> device->ioaddr = ( unsigned long )ioremap_nocache( memaddr, REGS_SIZE );
>>
>> But this returns zero instead of an IO address.
>>
>> He booted an older kernel (3.0.0.12), recompiled the driver and the
>> detection works again.  Neither one of us understands what changed in the
>> kernel or related code.  The driver code has not changed so it's something
>> to do with the kernel.
>>
>>
>>
>>
>>
>> The output messages are below.  The first block is the problematic kernel,
>> the second block is the rolled-back kernel with successful detection.
>>
>> Bad detection:
>> [    8.040080] (astropci_init): +-----------------------------**--+
>> [    8.040082] (astropci_init): |   ASTROPCI - Initialization   |
>> [    8.040083] (astropci_init): +-----------------------------**--+
>> [    8.040109] (astropci_probe): looking for ARC PCI boards ...
>> [    8.040120] astropci 0000:06:00.0: PCI INT A -> GSI 16 (level, low) ->
>> IRQ 16
>> [    8.040124] (astropci_probe): memaddr: f9df0000
>> [    8.040137] Modules linked in: astropci(O+) psmouse serio_raw shpchp
>> ppdev dcdbas soundcore x38_edac snd_page_alloc edac_core parport_pc mac_hid
>> lp parport usbhid hid firewire_ohci firewire_core crc_itu_t tg3
>> [    8.040180]  [<f84f8201>] ? astropci_probe+0xdb/0x257 [astropci]
>> [    8.040187]  [<f84f8201>] ? astropci_probe+0xdb/0x257 [astropci]
>> [    8.040190]  [<f84f8201>] astropci_probe+0xdb/0x257 [astropci]
>> [    8.040229]  [<f84671ae>] astropci_init+0x1ae/0x1000 [astropci]
>> [    8.040246] (astropci_probe): device->ioaddr: 0(astropci_probe):
>> IOremap failed for device 0000:06:00.0,         region 0x9C @ 0xF9DF0000
>> [    8.040249] (astropci_probe): finished looking for ARC PCI boards
>>
>>
>>
>> Good detection:
>> [  162.065395] (astropci_init): +-----------------------------**--+
>> [  162.065397] (astropci_init): |   ASTROPCI - Initialization   |
>> [  162.065399] (astropci_init): +-----------------------------**--+
>> [  162.065433] (astropci_probe): looking for ARC PCI boards ...
>> [  162.065444] astropci 0000:06:00.0: PCI INT A -> GSI 16 (level, low) ->
>> IRQ 16
>> [  162.065445] (astropci_probe): successfully enabled device
>> (astropci_probe): successfully requested regions
>> [  162.065450] (astropci_probe): memaddr: f9df0000(astropci_probe):
>> assigned device->ioaddr
>> [  162.065460] (astropci_probe): device->ioaddr: f82fe000
>> [  162.065461] (astropci_probe): whooop
>> [  162.065463] (astropci_probe): ISR name: astropci0 device num: 0
>> [  162.065470] (astropci_probe): Successfully probed device 0, irqDevNum:
>> 1, has_irq: 1, irq 16, func 0
>> [  162.065923] (astropci_probe): finished looking for ARC PCI boards
>> ______________________________**_________________
>> Ale mailing list
>> Ale at ale.org
>> http://mail.ale.org/mailman/**listinfo/ale<http://mail.ale.org/mailman/listinfo/ale>
>> See JOBS, ANNOUNCE and SCHOOLS lists at
>> http://mail.ale.org/mailman/**listinfo<http://mail.ale.org/mailman/listinfo>
>>
>
>
>
> _______________________________________________
> Ale mailing list
> Ale at ale.org
> http://mail.ale.org/mailman/listinfo/ale
> See JOBS, ANNOUNCE and SCHOOLS lists at
> http://mail.ale.org/mailman/listinfo
>