Jump to content


  • Posts

  • Joined

  • Last visited


Recent Profile Visitors

The recent visitors block is disabled and is not being shown to other users.

  1. 1. My work is based on mainline fusb302 driver sources, Armbian replaces it with some proprietary one. Patches shouldn't apply on top of armbian's version. 2. DTB patch makes absolutely no sense unless driver has proper support for altmode negotiation and extcon notifications. There is no magic in DTB itself, it is just a configuration parameters "provider"! 3. extcon-cables and typec-altmodes - where did you get those from? I can only guess, however, those "unofficial" bindings have no relation to the current driver in mainline.
  2. Good work! Although, it solves some problem for you, I want to mention additionally: what you did and what I suggested - is just a very specific workaround rather than permanent fix . This port configuration is set to otg by default in the master (board family) dtb file purposely, and imho this is right, not a mistake anyway. Because this board supports Dual Mode on USB Type-C port, if you have proper support in all concerned drivers and enabled Dual Mode in kernel, of course. Real actual role of the port should be determined by the system automatically, based on the negotiation with other party (I purposely simplify things a lot ). This port capabilities detection and further toggling is performed by the driver of a dedicated programmable PD chip (FUSB302), which then should notify all other concerned underlaying drivers about the new role decision. My conclusion, after some intensive research performed, makes me confident to state, that current mainline fusb302 driver still misses a lot of desired functionality to support needed interaction with dwc3 driver e.g. in a right fashion If there are experts around who may argue and confirm that I'm not right, I'll be only happy to hear this!
  3. How come, USB Type-C port will magically start working if there is no proper support for this in the mainline kernel for this board family? Even if kernel version is declared as stable, this doesn't mean that 100% of the "expected" functionality will work on 100% of the platforms. If you decided to base your work on the mainline kernel versions for this board, you should already know about hardware limitations related to the presence of proprietary vendor's drivers that are not really maintained by the vendor.
  4. USB Type-C port will work as USB 3.0 port in HOST ONLY mode (which, as it appeared, is enough for the vast majority). And the only needed and sufficient change for this: &usbdrd_dwc3_0 { dr_mode = "host"; }; is to be added to the DTB
  5. Oleksii

    NanoPC T4

    My Transcend 110S SSD stoped working due to some driver changes in v5.4. But started to work again since next 5.5
  6. Oleksii

    NanoPC T4

    If you are still interested in Type-C for mainline kernels. My patches at least explain what is missing in the present drivers and why this magic dr_mode = "host" is specified everywhere in the mainline dtbs
  7. Hello, nanopc t4 folks, Some, not so long time ago, I worked on fusb302.ko driver and device tree improvements in order to make USB Type-C port working properly in the mainline 5.* kernel. I managed to get DisplayPort over type-C + some general type-c handling improved before my board simply died. Unfortunately, I was not able to finish all the planned work and cannot continue further However, I guess, working DP is already fairly good achievement that might be interesting for many of us. Hereby, I want to publish some patches to the mainline!!! driver and device tree that add missing functionality, so one can get DP+type-C working on NanoPC T4 (and all RK3399 based boards with Fairchild FUSB302 chip for PD with relatively small DT adjustments). I would be very happy if results of my work can be helpful to others and extremely happy if there any volunteers, who are willing to continue work on this subject. My primary goal was to contribute to Armbian, first of all, with a potential mainline repo contribution. What was added: Extcon notifications support (type-c related cables) in the stock fusb302 driver (developed by Google folks, but also used by Intel if I understand correctly) DisplayPort altmode is registered automatically, if device tree has proper modelling for that DisplayPort altmode is entered as soon as DP cable connection is detected (both DP+USB3.0 and DP only pin assignments are supported) DisplayPort altmode is handled by the unified DP altmode driver rather than custom out-of-tree PD chip driver "connector" node modelling in the device tree according to the mainline kernel docs and modern requirements fusb node phandle is still specified as extcon source for Rockchip's proprietary drivers, however, last can be easily adjusted to resolve extcon directly from connector node link (as soon as extcon property is declared as deprecated for all new development). fusb302 driver is now correctly linked to dwc3 driver which provides role_switch functionality (+1 step to correct "Dual Role" mode handling based on the cable detection). This also eliminates annoying error message in the boot log: "OF: graph: no port node found in /i2c@ff3d0000/typec-portc@22" Please, also notice that type-c mode is forced to Host as in the most of rk3399 based SBC dtbs presently. This is rather a workaround for such boards, than a permanent solution, until all necessary bits are developed for correct role switching in the drivers. I kindly ask some NanoPC T4 owners to build mainline kernel with my patches and test whether expected functionality also works for you. Those patches apply to linux kernel since 5.6 when I started to work, but should also apply to way earlier versions according to my brief analysis of kernel commits history. fusb302-add-extcon.patch rk3399-nanopc-t4-type-c-modeling.patch
  8. Oleksii

    M4 Died

    Thanks for advise! However, even this process will eat my time which I can more productively spend to make money for another SBC and preferably not FriendlyArm product this time I'm really disappointed and do not want to deal with a company like this anymore I gave them enough time and information to resolve the issue in a "Friendly" manner. I also spent my spare time trying to contribute to the mainline linux in order to make their boards more "Friendly". And now, it seems to me, I should look for another friends
  9. Oleksii

    M4 Died

    From what I read: "You own some RK based devices and they do work! But you stopped treating them seriously". In my situation all 100% of my RK-based SBCs are faulty "black sheeps"
  10. Oleksii

    M4 Died

    I wrote the e-mail to their tech support. No answer, indeed. Then posted my question to them via "Contact Us" form on website. No feedback ... I saw some other people complaining about boards dying with the same symptoms (one can even find some posts in the FriendlyARMs dedicated forum). I worked on mainline fusb302 controller driver extension in order to gain some missing functionality crucially needed for Rockchip's DisplayPort and Type-C drivers. I managed to get DisplayPort working properly on T4 in mainline 5.6+ kernels. My SBC simply died right in the middle of kernel sources compilation I haven't finished all the planned work and essentially wasted two weeks of my own spare time. I also described this situation to the FARM, and it looks like, they simply do not give a shit about community contribution. Neither them, nor Rockchip as a company in general I tried to complete the work in progress making use of my another M4 (also has the same Fairchild FUSB302 controller for PD), however it is useless, because USB3.0 and DP related pins are not wired at all Btw., this M4 of mine is also kind of faulty: HDMI port stopped working in the very beginning of its life, now it is completely headless Seems, I have very bad luck with this company and I don't see any reasons to buy their products anymore or even invest my time into Rockchip's based stuff.
  11. Hold on ... it seems you are going too deep and too everywhere Things are not so bad to learn and "fix" everything at once. IMHO, fusb302, extcons, alternate modes handling in PD protocol and Rockchip's CDN_DP driver are the only things that worth research if you just want to see a picture on your DP monitor
  12. It is not only a matter of compilation, some important stiff is not yet there, so nothing to compile to get proper Type-C in 5.* kernels Don't look for black cat in the dark room, it will not help ....
  13. Mainline kernel is of fairly decent quality in regard to most popular RK3399 boards. All critical components work fine and have really good support. But something, which makes such boards outstanding, still doesn't work in 5.* It is normal for the situation when vendor's developers are locked inside of their private sandboxes (they call it SDK, LTS branch whatever, we call it simpler - "legacy") and do not really see the world is bigger outside . However, I have good news for those who own RK3399 based SBCs with Fairchild FUSB302 controller responsible for type-c handling and power delivery protocol. This chip is widely popular, so there are some other users of its driver in the kernel and driver itself is very well elaborated (IMHO again). But it still misses many things that we, Rockchip+FUSB302 owners, really need. There is absolutely no need to write new drivers or wait when developers from Rockchip will do it (they won't). The driver deserves some extension and we will get both DisplayPort and properly working Type-C port (not statically fixed to USB3 host in the dtb, as many present maintainers do for their boards, but real DRD with role switching based on cable detection). I was working on this subject for two (or even three of last weeks, don't remember exactly anymore ) and managed to fill this gap and get working DP on this "silently abandoned" port. Dual Role support for Type-C was in progress, but it can be solved too indeed. Right now, I have neither technical possibility nor motivation nor even time to continue anymore. The best what I can do is to recover what I've lost and handover my patches to some other volunteers who can/want to continue development (but even this needs a lot of time). My plan A was to deliver those features to my lovely Armbian community, and then try pushing it upstream.
  14. Are you referring to mainline 5.* kernels? If so, display-port cannot work there due to such reasons: 1. If you enable cdn_dp node in device-tree, its driver will fail to bind making parent rockchip_drm driver to also fail due to incomplete structure - you will loose all other working video outputs (including HDMI) in this case This happens because of: 2. There is no extcon notifications support in the present fusb302.ko driver. Rockchip's cdn_dp driver doesn't simply know when DP sink is connected and what is current pin assignment without extcon notification. 3. There is no DisplayPort alternate mode handling in the same fusb302 driver. This is very important thing which actually enters DP mode and enables physical link between DP and your monitor. I've been working on this subject in kernel driver till today and already implemented missing things. But my NanoPC T4 board died, so I cannot continue anymore and desperately give up ...
  15. Oleksii

    M4 Died

    My NanoPC T4 seems also died today with same symptoms Yesterday it stopped booting from MMC with only red power-on light and no other attempts to boot... Then I inserted sd-card and managed to boot from it in MASKROM mode. So I decided that main image is corrupted and planned to play with recovery today. This morning, it couldn't boot at all, neither MMC nor even SD - still the same red light only and that's it. Then I connected the board to PC via type-c port. It was detected as MASKROM device, but attempt to clear internal flash simply failed. I tried different proven to work PSU (works fine with M4), another SD card, detached SSD, HDMI etc. Now I see picture which is even worse: led slightly blinks one time and no power .... damn it
  • Create New...