-
Notifications
You must be signed in to change notification settings - Fork 1.3k
Teensy 4.1 cannot boot 7.0 #5086
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
Comments
I had the same issue on a imxrt1010_evk
Ran in debug mode and got the following stack:
Hope this helps. |
installed a simple "blink led" code.py on 7.0.0-alpha-5 and can see that the code is running, even though there is no REPL or CIRCUITPY drive. |
I started looking at this today and haven't had a ton of success. It appears #4689 caused an assertion error due to the bulk size of the high speed end point that #4774 fixed. At the #4774 commit it appears to work with CDC only. MSC causes issues similar to what Dave saw above. I don't see this issue on main though. main as of d294692 seems to run but fails to enumerate even with CDC only:
The cdc_msc example works on the imx rt 1011 at hathach/tinyusb@63f7dfe. I'll keep poking at this. |
Twist! I left it while writing this up and it eventually enumerated:
|
I wonder if the clock accuracy is marginal. |
(EDIT: see below)
|
I take back the HID thing. In 6.x, HID endpoint descriptors still had a max length of 64. |
I've ordered a Beagle 480 to sniff the USB HS so I'll pick this up once I get it next week. |
If we just turn off high speed for now, can we get these boards working? Would it be worth it to allow people to try them for other things? |
I'd rather just wait instead of spending any more time on it. There is plenty of other work to do for 7.0.0. |
FYI, I found the issue. The iMX code was sleeping when pending USB actions were queued up. This caused the device to not respond. The interrupt that would have woken from sleep had already occurred. |
There is a race between when we run background tasks and when we sleep. If an interrupt happens between the two, then we may delay executing the background task. On some ports we checked this for TinyUSB already. On iMX RT, we didn't which caused USB issues. This PR makes it more generic for all background tasks including USB. Fixes #5086 and maybe others.
CircuitPython version
Code/REPL
Behavior
I flash the mentioned 7.0.0 versions and when I plug the teensy back in, after about 3 minutes, all I get is this USB descriptor:

Description
No response
Additional information
No response
The text was updated successfully, but these errors were encountered: