Hi Willy,
On 08/30/2011 01:36 PM, Willy Lambert wrote:
> 2011/8/30 Wolfgang Grandegger <[email protected]>
>
>> On 08/30/2011 11:18 AM, Willy Lambert wrote:
>>> 2011/8/18 Marc Kleine-Budde <[email protected]>
>>>
>>>> On 08/18/2011 07:55 AM, Oliver Hartkopp wrote:
>>>>> On 16.08.2011 21:45, Willy Lambert wrote:
>>>>>
>>>>>> Hi all,
>>>>>>
>>>>>> I used sja1000 on a 32bits system and I am trying to switch to a 64b
>>>> system.
>>>>>> It not possible to select CONFIG_SJA1000_ISA when CONFIG_ISA is not
>> set,
>>>> which
>>>>>> is not available when CONFIG_X86_64 is set.
>>>>>>
>>>>>> As in xenomai "socket" drivers I am able to use my board, I wonder why
>>>> this is
>>>>>> not possible under a vanilla linux. I access my HW by iomem (the
>>>> equivalent
>>>>>> xenomai driver is xeno_can_mem), is there an equivalent socket can
>>>> driver ?
>>>>>
>>>>>
>>>>> Hi Willy,
>>>>>
>>>>> i've looked into
>>>>>
>>>>> http://lxr.linux.no/#linux+v3.0.3/drivers/tty/serial/8250.c
>>>>>
>>>>> which should have a similar problem, as these old-style serial hardware
>>>> is
>>>>> also using the ISA bus.
>>>>>
>>>>> But the serial drivers are now depending on HAS_IOMEM
>>>>>
>>>>> http://lxr.linux.no/#linux+v3.0.3/drivers/tty/serial/Kconfig#L4
>>>>>
>>>>> and they use platform calls
>>>>>
>>>>> http://lxr.linux.no/#linux+v3.0.3/drivers/tty/serial/8250.c#L3177
>>>>>
>>>>> like platform_device_alloc(), platform_device_add(),
>>>>> platform_driver_register() and friends ...
>>>>>
>>>>> http://lxr.linux.no/#linux+v3.0.3/drivers/tty/serial/8250.c#L3349
>>>>>
>>>>> The sja1000_isa.c still uses the ISA pendants
>>>>>
>>>>>
>>>>
>> http://lxr.linux.no/#linux+v3.0.3/drivers/net/can/sja1000/sja1000_isa.c#L253
>>>>>
>>>>> So IMO the sja1000_isa driver 'just' needs to be converted like they
>> did
>>>> with
>>>>> the serial drivers.
>>>>>
>>>>> @Wolfgang/Marc: Or is it better to create some platform bindings for
>> x86
>>>> and
>>>>> use the 'sja1000_platform' driver??
>>>>
>>>> A platform driver is of course sexier :)
>>>>
>>>> Marc
>>>>
>>>
>>> Does someone know what is to do in order to make this sja1000_platform
>>> driver in my case ?
>>
>> I think we have first to fix the HAS_ISA vs. HAS_IOMEM issue. The
>> sja1000 driver supports both, I/O port and memory mapped accesses. For
>> the first we need HAS_ISA and for the latter HAS_IOMEM... that's my
>> current understanding. I will have a closer look later today or tomorrow.
>>
>
> Thanks in advance, I am using IOMEM, so this fix should be directly usefull
> for me.
What CAN hardware are you using? And what bus is it
connected to? Why do I ask? In "arch/x86/Kconfig" there is:
# x86_64 have no ISA slots, but can have ISA-style DMA.
config ISA_DMA_API
bool "ISA-style DMA support" if (X86_64 && EXPERT)
default y
help
Enables ISA-style DMA support for devices requiring such controllers.
If unsure, say Y.
if X86_32
config ISA
bool "ISA support"
---help---
Find out whether you have ISA slots on your motherboard. ISA is the
name of a bus system, i.e. the way the CPU talks to the other stuff
inside your box. Other bus systems are PCI, EISA, MicroChannel
(MCA) or VESA. ISA is an older system, now being displaced by PCI;
newer boards don't support it. If you have ISA, say Y, otherwise N.
Maybe the assumption that the x86_64 does not have ISA slots is wrong and we
should fix that instead of moving to a platform driver like Oliver suggested.
Wolfgang.
_______________________________________________
Socketcan-users mailing list
[email protected]
https://lists.berlios.de/mailman/listinfo/socketcan-users