Mramプローブがubootで動作しないこんにちは、imx6q ボードの nvram compatible = "everspin,mr25h40"; を使用しています。uboot 2020 では、ボード ファイルでパッド設定を以下のように構成しました:-
静的iomux_v3_cfg_t const ecspi5_pads [] = {
MX6_PAD_SD1_CLK__ECSPI5_SCLK | MUX_PAD_CTRL (SPI_PAD_CTRL)、
MX6_PAD_SD1_DAT0__ECSPI5_MISO | MUX_PAD_CTRL (SPI_PAD_CTRL)、
MX6_PAD_SD1_CMD__ECSPI5_MOSI | MUX_PAD_CTRL (SPI_PAD_CTRL)、
MX6_PAD_SD1_DAT1__ECSPI5_SS0 | MUX_PAD_CTRL (NO_PAD_CTRL)、
};
uboot2024 では、プローブ用の dts エントリが厳密に必要なので、以下のように dts エントリを追加しました :-
&ecspi5 {
pinctrl-names = "デフォルト";
ピンctrl-0 = <&pinctrl_ecspi5>;
ステータス = "正常";
mram@0 {
#アドレスセル = <1>;
#セルサイズ = <1>;
互換性 = "spi-device";
spi-max-frequency = <30000000>;
レジスタ = <0>;
};
};
pinctrl_ecspi5: ecspi5grp {
fsl、ピン = <
MX6QDL_PAD_SD1_DAT0__ECSPI5_MISO 0x1b0b1
MX6QDL_PAD_SD1_CMD__ECSPI5_MOSI 0x1b0b1
MX6QDL_PAD_SD1_CLK__ECSPI5_SCLK 0x1b0b1
MX6QDL_PAD_SD1_DAT1__ECSPI5_SS0 0x1b0b1
>;
};
これらの変更を加えて uboot 2024 をビルドし、デバイスを起動すると、dm tree コマンドを実行すると、プローブされていないと表示されます。
SO、MRAM プローブが動作するように uboot 2024 dts を構成する方法を教えてください。チップ選択として gpio も使用してみましたが、それでも同じ問題が発生しました。
i.MX6QuadRe: Mram probe is not working in ubootこんにちは、
互換性のあるプロパティを次のように変更してみてください:
互換性 = "everspin,mr25h40",
最大周波数に関しては、SPI サブシステムはクロックを整数で分割することしかできないことに注意してください。
たとえば、この場合、SPI で使用されるクロックは 80MHz SO、次のように割ります。
80/1 = 80MHz
80/2 = 40MHz
80/3 = 26.66MHz
80/4 = 20MHz
ドライバは、分周器を使用してコマンドで構成されたクロックに近似しますが、正確には 30 MHz にはなりませんが、デバイスでサポートされている 40 MHz 未満になります。
上記を考慮して、GPIO をチップセレクトとして使用してみてください。
U-boot に使用している kconfig オプションを共有していただけますか?
よろしくお願いいたします。
Re: Mram probe is not working in ubootこんにちは、
情報をいただきありがとうございます。kconfig オプションに問題は見当たりません。
カスタム ドライバが必要ない場合は、次のデバイス ツリー構成を確認してください。
https://github.com/nxp-imx/uboot-imx/blob/4ddbad60eff308a5b356fb9ab8734ac382ddd692/dts/upstream/Bind...
よろしくお願いいたします。
Re: Mram probe is not working in ubootこんにちは、JorgeCasさん
uboot .configを添付しました以下に、compatible = "everspin,mr25h40" と指定するドライバがないことがわかります。uboot 2024 ソース コードには、これを補うために必要なすべての変更、つまり必要な dts の変更とドライバの変更について教えてください。Re: Mram probe is not working in ubootこんにちは、JorgeCasさん
以下にdefconfigを添付しましたので、確認して必要な変更があれば指示してください。