Re: Add support for RK356x eMMC controller

2024-02-26 Thread Patrick Wildt
On Mon, Feb 26, 2024 at 04:47:53PM +0100, Mizsei Zolt??n wrote:
> Hi,
> 
> on NetBSD  the following is used to support the eMMC modules on RK356x. Would 
> it possible to implement asomething similar for OpenBSD?
> 
> https://github.com/NetBSD/src/commit/f30b89bb4385f5fe218ff86be5d458a51fc62d4c
> 
> For more info see the original commit message below:
> 
> "acpi: sdhc: Add support for RK356x eMMC controller.
> RK356x has a DesignWare eMMC controller that is somewhat SDHCI compliant,
> with one major problem -- the clock divisor doesn't actually work. To
> change the clock card on Rockchip SoCs, the clock frequency needs to be
> adjusted in the Clock & Reset Unit (CRU) directly.
> 
> The RK356x UEFI implementation introduces a DSM that allows drivers to
> request firmware assistance in setting the card clock rate, for instances
> like this where the divisor is broken.

RK356x is not a viable platform for use with ACPI.  I'd recommend to
switch to a Linux-mainline device tree and use a current U-Boot, if
possible.



Add support for RK356x eMMC controller

2024-02-26 Thread Mizsei Zoltán
Hi,

on NetBSD  the following is used to support the eMMC modules on RK356x. Would 
it possible to implement asomething similar for OpenBSD?

https://github.com/NetBSD/src/commit/f30b89bb4385f5fe218ff86be5d458a51fc62d4c

For more info see the original commit message below:

"acpi: sdhc: Add support for RK356x eMMC controller.
RK356x has a DesignWare eMMC controller that is somewhat SDHCI compliant,
with one major problem -- the clock divisor doesn't actually work. To
change the clock card on Rockchip SoCs, the clock frequency needs to be
adjusted in the Clock & Reset Unit (CRU) directly.

The RK356x UEFI implementation introduces a DSM that allows drivers to
request firmware assistance in setting the card clock rate, for instances
like this where the divisor is broken.

>From the UEFI README:

  Function 1: Set Card Clock

  The _DSM control method parameters for the Set Card Clock function are
  as follows:

  Arguments

   * Arg0: UUID = 434addb0-8ff3-49d5-a724-95844b79ad1f
   * Arg1: Revision = 0
   * Arg2: Function Index = 1
   * Arg3: Target card clock rate in Hz.

  Return

   The actual card clock rate in Hz. Will be less than or equal to the
   target clock rate. Returns 0 if the target clock rate could not be set."

Thanks.

--Z--