User Details
- User Since
- Jul 19 2021, 9:28 AM (98 w, 2 d)
Sep 15 2022
Aug 18 2022
Looks good to me, thanks!
May 17 2022
Add a simple check for the argument whether it matches only one option. In case of ambiguity return an error.
May 16 2022
Rebase the revision.
Rebase the revision.
May 9 2022
Do not return immediately in case TRUST ANCHORS are NULL, as openpgp may be supported as well.
Fix style issues.
May 4 2022
Match args with shortest prefix. Add help message and prevent from running with invalid path.
Feb 10 2022
The driver doesn't use Programmable Clock Mode because it does not converges to the SDHCI standard here.
In case of ls1028 the generic code (even with the added support) won't switch to PCM considering it unsupported... Obviously, we can switch to PCM on our own, but all that logic must be performed in additional function like fsl_sdhc_fdt_set_clock. IMHO that is not the case to rewrite the function to use PCM.
Divided Clock Mode can be used without any additional helper functions, but then divider 3 is unavailable - we won't get 600/3=200MHz for HS200. DCM is inapplicable.
Feb 8 2022
We still need to apply a limited clock division errata. Basically in HS400 mode and that mode only the controller can only use a limited set of divisors. I will try to modify the generic code to support Programmable Clock Mode and test it against ls1028 whether HS400 mode works correctly with or without errata application. Then we could possibly get rid of the problematic sdhci_fsl_fdt_set_clock function, and possibly apply the errata in some other, less invasive way.
Feb 7 2022
There are still some conditions under which this patch is valid and necessary. On ls1028a the base clock is 600MHz, therefore to obtain 200MHz frequency for HS200 we need divider 3. As SDHCI standard does not support odd dividers, this patch allows to use them. With this, we can use 200MHz instead of 150MHz for HS200 for faster transfers.
As it comes to the SDHCI_CLOCK_CONTROL register, it is captured properly in sdhci_fsl_fdt_read_2 function - we read controller register responsible for clock stability indicator and set flag if matched. I can't see any other invalid usages of aforementioned.
Feb 1 2022
Abandon this revision as retuning is handled in https://reviews.freebsd.org/D34027 patch, which covers all cases and fixes.
Jan 31 2022
Change voltage switching logic. After setting registers check for errata flag for missing regulator and use syscon register for voltage switch if necessary. Check for a fixed regulator presence afterwards, as it still might be possible and use it.
Jan 27 2022
Fix typos. Don't return from function right after voltage switching with a syscon, but go to the fixed regulator logic.
Jan 25 2022
Jan 4 2022
Rebase patch on HEAD.
Rebase patch on HEAD.
Rebase patch on HEAD.
Rebase on HEAD
Dec 20 2021
Dec 17 2021
Update commit log with differential information.
Dec 16 2021
Dec 9 2021
Apparently LX2160A requires window pointer errata enabled for tuning to succeed. (SDHCI_FSL_TUNING_ERRATUM_TYPE2)
Unfortunately on this SoC we have a generic compat string for SDHCI driver, so there is no easy way to detect and apply it.
For now, I will prepare a patch that disables HS200/HS400 modes for all boards that use the generic compat.
Dec 8 2021
Remove redundant variable.
Update commit log. Add helper function for polling registers. Fix typos and remove redundant variables declaration.
Update commit log.
Update commit log.
Dec 7 2021
Fix typo in commit log: s/LS1028A/LS1012A.
Dec 1 2021
Change time period in license entry from 2021 to 2020 - 2021.
Nov 30 2021
Change function's names to more self-descriptive, reflecting followed ARM instructions behavior.
Nov 29 2021
Remove conversion helper function, as it is separate commit.
Nov 25 2021
Move signed -> unsigned helper function to libkern.h.
Nov 3 2021
Oct 22 2021
Split driver into two separate drivers, each for north bridge or south bridge domain.
Oct 6 2021
Oct 4 2021
Sep 13 2021
Rebase against main
Rebase against main
Rebase against main
Sep 3 2021
Aug 17 2021
Added back neta entry in sys/arm64/conf/std.marvell.