New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
USB Serial doesn't work with newest Haswell Macs #193
Comments
Quoting from mbed.org for the lazy ;) -> "I have been using USBSerial for 1/2 year now on FRDM-KL25Z with no problems at all. All of a sudden (when testing on a new MacBook Air 2013) - I see that when connected to either USB port, the device no longer pops up in the /dev/tty.xxx list. The error that dmesg displays is: 1 At the moment, I am trying to modify the kext "driver" files in /System/Library/Extensions to grab my particular VID/PID and force some USB serial driver/module. My guess:
I have also tried to build with the latest mbed code from github (same result). .. these are just guesses... digging further. UPDATE: I tried to make the VID/PID the same as for the main flashing port that seems to mount fine as a USB serial device on the mac... the problem then might be in the details of the CDC setup. I am attaching the two printouts of lsusb from linux with the details." |
I can't include the txt printouts as attachments - so pasting in here: KL25Z normal flashing port (CDC profile works on the new mac):
Same output - but from the USB Serial (=> USB CDC) generated profile from the "user port" of the KL25Z board:
|
OK - I have investigated this a bit further: The FRDM-KL25Z fresh from factory has firmware on it from Freescale that WORKS ON THE NEW MACS while the mbed USB CDC/Serial doesn't. I have tried to hack the CDC USB descriptors in USBCDC.cpp to match as good as possible but it seems to be some handshake after the initial init that goes wrong. I see a difference in endpoint values in the descriptor but have no idea where to change in the underlying USB code - please help me out there ;) I am including a dump of the working Freescale (factory) firmware descriptor (when attached to the user USB port -> new haswell macbook air):
|
There is an update from Apple who were so kind to take a look at the issue (bought a board, installed the firmware and did tests..) - they found the following: "This is not an OS X problem. It is a low level problem with the board when communicating with a USB 3.0 controller. The device is not responding to a SET_ADDRESS command. In other cases, it does not respond to the GET_DESCRIPTOR(CONFIGURATION). It has nothing to do with the descriptors programmed." I am not a USB low level expert - so I hope that there are someone here who can help me out with what this means. br |
Seems to have been fixed with 43113cf great work (and I hope it is stable 👍 ) |
See: https://mbed.org/questions/2599/Is-USBSerial-giving-problems-on-new-Hasw/
To save people some time: The main flashing port on an untouched KL25Z (from factory) works fine on these macs (comes up with the additional tty USB port in /dev/tty.usbmodem....).
In the issue mentioned on mbed.org, I've included the CDC (and rest of USB) profiles as shown in linux for the two ports. As you can see there seem to be some things missing from what the mbed CDC should have been reporting (e.g. power consumption defaults to 100mA and some other params are not the same). It could be that the new apple devices are more strict in SW or HW and that we need to get the parameters fixed on the mbed side to match.
The text was updated successfully, but these errors were encountered: