Question about smc911x driver (16/32 Bit support)
Hi,
in the source code there is a preprocessor directive #error "SMC911X: Only 32-bit bus is supported".
We use a LAN9215i, which has a 16 Bit data interface only, connected to an i.MX31.
The LAN9215 is in the driver's ID list.
According to the data sheet accesses have to be 2x16 Bit to build the device's internal 32 Bit format.
What does this non-32-Bit exclusion exactly mean?
Will the driver work on our HW configuration?
Confused,
Jens
Hi Jens,
Quoted 8 lines · Jens Gehrlein
Hi,
in the source code there is a preprocessor directive #error "SMC911X: Only 32-bit bus is supported".
We use a LAN9215i, which has a 16 Bit data interface only, connected to an i.MX31.
Quoted 8 lines
The LAN9215 is in the driver's ID list.
According to the data sheet accesses have to be 2x16 Bit to build the device's internal 32 Bit format.
What does this non-32-Bit exclusion exactly mean? Will the driver work on our HW configuration?
This #error message was included, because if you look at the code you'll see that the read/write accessors are 32-bit operations *(u32 * ). These may or may not work on your configuration. It should be trivial to write accessors for a 16-bit bus, but nobody had hardware to try it out on. Please do so and submit a patch.
Quoted 2 lines
Confused,
Jens
regards,
Ben
Hi Ben,
Quoted 16 lines · Ben Warren
Hi Jens,
Quoted 13 lines · Jens Gehrlein
Hi,
in the source code there is a preprocessor directive #error "SMC911X: Only 32-bit bus is supported".
We use a LAN9215i, which has a 16 Bit data interface only, connected to an i.MX31.
The LAN9215 is in the driver's ID list.
According to the data sheet accesses have to be 2x16 Bit to build the device's internal 32 Bit format.
Quoted 8 lines
Quoted 3 lines
What does this non-32-Bit exclusion exactly mean? Will the driver work on our HW configuration?
This #error message was included, because if you look at the code you'll see that the read/write accessors are 32-bit operations *(u32 * ). These may or may not work on your configuration. It should be trivial to write accessors for a 16-bit bus, but nobody had hardware to try it out on. Please do so and submit a patch.
Yes, it seems, that we just need two additional functions which split a 32 Bit access into two 16 Bit accesses. That should be easy. I'm going to create a patch as soon as I get the HW. But first I want to test whether the processor splits itself automatically.
Thank you very much.
Best Regards,
Jens
Hi Jens,
Quoted 20 lines · Jens Gehrlein
Quoted 11 lines
Quoted 11 lines
in the source code there is a preprocessor directive #error "SMC911X: Only 32-bit bus is supported".
We use a LAN9215i, which has a 16 Bit data interface only, connected to an i.MX31.
The LAN9215 is in the driver's ID list.
According to the data sheet accesses have to be 2x16 Bit to build the device's internal 32 Bit format.
Quoted 8 lines
Quoted 3 lines
What does this non-32-Bit exclusion exactly mean? Will the driver work on our HW configuration?
This #error message was included, because if you look at the code you'll see that the read/write accessors are 32-bit operations *(u32 * ). These may or may not work on your configuration. It should be trivial to write accessors for a 16-bit bus, but nobody had hardware to try it out on. Please do so and submit a patch.
Quoted 4 lines
Yes, it seems, that we just need two additional functions which split a 32 Bit access into two 16 Bit accesses. That should be easy. I'm going to create a patch as soon as I get the HW. But first I want to test whether the processor splits itself automatically.
Well, the i.MX31 Litekit board has a 16-bit LAN9117 and that seems to work with the 32-bit flag set in the config file.
/Magnus
Hi Magnus,
Quoted 23 lines · Magnus Lilja
Hi Jens,
Quoted 20 lines · Jens Gehrlein
Quoted 19 lines
Quoted 6 lines
in the source code there is a preprocessor directive #error "SMC911X: Only 32-bit bus is supported".
We use a LAN9215i, which has a 16 Bit data interface only, connected to an i.MX31.
Quoted 8 lines
The LAN9215 is in the driver's ID list.
According to the data sheet accesses have to be 2x16 Bit to build the device's internal 32 Bit format.
What does this non-32-Bit exclusion exactly mean? Will the driver work on our HW configuration?
This #error message was included, because if you look at the code you'll see that the read/write accessors are 32-bit operations *(u32 * ). These may or may not work on your configuration. It should be trivial to write accessors for a 16-bit bus, but nobody had hardware to try it out on. Please do so and submit a patch.
Quoted 8 lines
Quoted 4 lines
Yes, it seems, that we just need two additional functions which split a 32 Bit access into two 16 Bit accesses. That should be easy. I'm going to create a patch as soon as I get the HW. But first I want to test whether the processor splits itself automatically.
Well, the i.MX31 Litekit board has a 16-bit LAN9117 and that seems to work with the 32-bit flag set in the config file.
That's good news. I would prefer, though, to break this into two 16-bit accesses so we don't need to wonder what architectures it would work on. Would you be able to try something out, since you have hardware?
regards,
Ben
Hi Ben,
Quoted 7 lines
Quoted 3 lines
Well, the i.MX31 Litekit board has a 16-bit LAN9117 and that seems to work with the 32-bit flag set in the config file.
That's good news. I would prefer, though, to break this into two 16-bit accesses so we don't need to wonder what architectures it would work on. Would you be able to try something out, since you have hardware?
If someone publishes a patch I can certainly try it on the hardware.
Regards, Magnus
Hi Magnus, Ben,
Quoted 11 lines · Magnus Lilja
Hi Ben,
Quoted 7 lines
Quoted 3 lines
Well, the i.MX31 Litekit board has a 16-bit LAN9117 and that seems to work with the 32-bit flag set in the config file.
That's good news. I would prefer, though, to break this into two 16-bit accesses so we don't need to wonder what architectures it would work on. Would you be able to try something out, since you have hardware?
If someone publishes a patch I can certainly try it on the hardware.
I already prepared the patch, but currently I can't test it, and I'm not sure if I did it right. Please be patient.
Meanwhile, I report successful execution of the current driver yesterday on our HW developer's board with 16 bit port size. The i.MX31 splits the 32 bit word (I knew that from PowerPC, but wasn't sure of ARM).
Regards,
Jens