2024-04-19 20:27:12

by Carsten Grzemba

[permalink] [raw]
Subject: RTL8188EU driver for Illumos

Currently I try to create a driver for RL8188EU chip for Illumos. As template serves the RTWN driver of freeBSD . The starting base is the URTWN driver for RTL8192CU for Solaris from http://freenicdrivers.la.coocan.jp .
The driver works so far that WiFi scan and the registration to an AP works. I see data packages arriving on the interface.

However, no data package go outside, so that no IP connecting can be built up.

It is strange to me that communication with the AP works, but not to other stations. I suspect that the problem lies in the configuration of the TX descriptor. However, I lack the knowledge of the meaning of the individual bits. Is there a developer documentation for the TRL8188E chip public available?
It s possible to check if the firmware can not interpret the TX descriptor properly?

When comparing the descriptor with FreeBSD, different settings are noticed in DWORD5 (OFFSET 20) (data rate, RTS rate). Can these be the cause of not sending the data packet?

The current state of my work is avail at: https://github.com/cgrzemba/illumos-gate/tree/15014-urtwn-8188-3

I would be very happy if you could help me.


Kind regards

--
Carsten Grzemba


2024-04-20 18:52:37

by Bitterblue Smith

[permalink] [raw]
Subject: Re: RTL8188EU driver for Illumos

On 19/04/2024 22:57, Carsten Grzemba wrote:
> Currently I try to create a driver for RL8188EU chip for Illumos. As template serves the RTWN driver of freeBSD . The starting base is the URTWN driver for RTL8192CU for Solaris from http://freenicdrivers.la.coocan.jp .

Hi! Good luck, haha.

> The driver works so far that WiFi scan and the registration to an AP works. I see data packages arriving on the interface.
>
> However, no data package go outside, so that no IP connecting can be built up.
>
> It is strange to me that communication with the AP works, but not to other stations. I suspect that the problem lies in the configuration of the TX descriptor. However, I lack the knowledge of the meaning of the individual bits. Is there a developer documentation for the TRL8188E chip public available?

The official driver is probably the only documentation you
will find. This is the newest version I know of:
https://github.com/ivanovborislav/rtl8188eu/

This one is older but it's updated for the latest kernel:
https://github.com/lwfinger/rtl8188eu/tree/v5.2.2.4

> It s possible to check if the firmware can not interpret the TX descriptor properly?
>
> When comparing the descriptor with FreeBSD, different settings are noticed in DWORD5 (OFFSET 20) (data rate, RTS rate). Can these be the cause of not sending the data packet?

If it can transmit management frames but not data frames,
you may be using the wrong TX queue (bits 0x1f00 in dword1
of the TX descriptor), or the wrong USB endpoint.

>
> The current state of my work is avail at: https://github.com/cgrzemba/illumos-gate/tree/15014-urtwn-8188-3
>
> I would be very happy if you could help me.
>

Some things I noticed are missing from your driver:

https://github.com/ivanovborislav/rtl8188eu/blob/163badb4564be50ce11aa3e6fdd2e18f3e4c4b90/hal/rtl8188e/usb/usb_halinit.c#L1335

https://github.com/ivanovborislav/rtl8188eu/blob/163badb4564be50ce11aa3e6fdd2e18f3e4c4b90/hal/rtl8188e/rtl8188e_hal_init.c#L2764

I think it will save you a lot of headaches if you make your
driver perform exactly the same register writes as the
official driver does in the chip init/deinit functions. (You
can probably delete "#define CONFIG_IOL" and use the official
driver as reference without that stuff. rtl8xxxu works without
that.)

>
> Kind regards
>