Multi Source Translation Content

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

Multi Source Translation Content

Discussions

Sort by:
Imx8 AAOS14 窗口管理器问题 你好 我已经在 iMX 8 QM MEK 板上刷新了 AAOS 14。我遇到了屏幕分辨率(窗口大小)的问题。默认屏幕尺寸为1024x600。 我要求屏幕尺寸为1920x1080。 我附上一些屏幕截图供你参考。请告诉我在哪里可以修改 AAOS 14 源代码以改变屏幕尺寸。 Re: Imx8 AAOS14 Window Manager issue 你好 更改 MX8 的分辨率 连接到设备的命令行或使用 ADB 等开发者工具。 使用命令 adb shell wm size 查看当前物理屏幕尺寸。 要临时更改分辨率,请使用 wm size x 命令(例如, wm size 1280x720 )。 要恢复到默认分辨率,请使用 wm size reset 命令。 要持续更改默认分辨率,可能需要修改 bootargs,这是设备用户指南中详细介绍的更高级的过程。   此致
View full article
UART FIFOモードでFIFOの内容にアクセスする方法 こんにちは専門家の皆様 お客様: Zoox チップ: S32G399A お客様は QNX で UART DMA モードを有効にしたいと考えています。彼らが遭遇した問題は、余分な文字が定期的に表示されることです。お客様は、この余分な文字は DMA と UART RX FIFO 間の相互作用によって発生したのではないかと疑っています。彼らは、(FIFO が空でない) フラグが BDRL と BDRM の実際のデータを正確に反映していないと考えています。デバッグ ツールを使用して BDRL レジスタと BDRM レジスタを監視したところ、これら 2 つのレジスタにアクセスできないことがわかりました。したがって、UART RX FIFO の内容を正確に反映する他の方法はありますか? よろしくお願いいたします。 マオリン・パン RTD Re: How to access FIFO contents in UART FIFO mode こんにちは@Maolin_Panさん DMA を使用する場合、レジスタ BDRL(Tx データ)、BDRM(Rx データ) は FIFO になります。Rx のレジスタ BDRM から読み取る以外に、FIFO の内容を反映する方法は見つかりませんでした。 よろしくお願いいたします。 ニ
View full article
如何通过标签溯源 NXP IC 的晶圆产地 如何通过标签溯源 NXP IC 晶圆产地 如何通过上图的标签追踪的晶圆产地? 如何通过上图中的标签追踪集成电路的晶片产地? Re: 如何通过标签溯源 NXP IC的晶圆产地 How to trace the origin of NXP IC wafers through their labels 亲爱的顾客 为避免伪造,我们不允许提供标签上可见的数字/字符的含义,很抱歉。我们建议您联系购买此零件的代理商。我们的授权代理商可以根据您的特定订单向恩智浦代表查询更多信息,并为您提供详细信息。 https://www.nxp.com/support/sample-and-buy/distributor-network:DISTRIBUTORS 感谢您的理解。祝您愉快 顺祝商祺! 帕夫拉
View full article
i.MX 8QuadMax - imxvideoconvert_g2d エラー こんにちは、 私は数日間これに格闘してきました。本質的には、カメラからフレームをキャプチャし、それらにオーバーレイを施し、H264 にエンコードしてファイルに保存する gstreamer アプリケーションをビルディングしています。appsrc および appsink gstreamer 要素を使用してパイプラインを動作させました。基本的に、私のパイプラインは次のようになります。 ファイルから NV12 フレームを読み取ります (現時点ではカメラを置き換えます) -> IMXVideoConvert -- (RGBA) --> appsink ---- フレーム オーバーレイ ----> IMXVideoConvert --- NV12 ---> V4L2H264Encoder --> ファイル 問題は 2 番目の IMXVideConvert での caps ネゴシエーションにあり、HW H264 エンコーダーに必要な NV12 形式を出力することは不可能のようです。要素の SRC 機能にリストされているにもかかわらず、NV12 形式を出力できません。NV12 への変換を試みると、「サポートされているものに変換できませんでした...」というエラーが表示されて失敗します。ただし、NV12 は入力形式として機能し、他の形式 (BGRx、UYVY パススルー) への変換は正常に機能します。 テストに使用する基本的なパイプライン: gst-launch-1.0 videotestsrc バッファ数= 5 ! \ video/x-raw、フォーマット= UYVY、幅= 320 、高さ= 240 ! \ imxvideoconvert_g2d ! \ video/x-raw、フォーマット= NV12 ! \ fakesink OS情報: root@apalis-imx8-06959030:~/tests# cat /etc/os-release ID=tdx-xwayland NAME="TDX Wayland と XWayland" バージョン="6.8.3-devel-20250930110137+build.0 (カークストーン)" バージョンID=6.8.3-devel-20250930110137-ビルド.0 PRETTY_NAME="TDX Wayland と XWayland 6.8.3-devel-20250930110137+build.0 (kirkstone)" DISTRO_CODENAME="カークストーン" 他にサポートCANデータがあればお知らせください。残念ながら、この時点では、このため PoC を完了することができません。 i.MX 8ファミリ | i.MX 8QuadMax (8QM) | 8QuadPlus マルチメディア Re: i.MX 8QuadMax - imxvideoconvert_g2d error こんにちは@AlexxS 、 デバッグ ログでは、imxvideoconvert が出力している警告をCAN確認できますが、問題の解決に役立つ低レベルのログがあるかどうかが気になります。この環境変数を使用してパイプラインを実行し、結果のデバッグ ログを共有していただけますか? GST_DEBUG=*imxvideoconvert*:DEBUG よろしくお願いいたします。 フランシス・ギンドン RidgeRunの組み込みソフトウェアエンジニア お問い合わせ:support@ridgerun.com 開発者ウィキ: https://developer.ridgerun.com/ ウェブサイト: http://www.ridgerun.com/
View full article
如何在 UART FIFO 模式下访问 FIFO 内容 专家们,你们好、 客户:Zoox 芯片S32G399A 客户希望在 QNX 中启用 UART DMA 模式。他们遇到的问题是,一个额外的字符会定期出现。客户怀疑这个额外字符是由 DMA 和 UART RX FIFO 之间的交互作用造成的。他们认为,(先进先出未清空)标志不能准确反映 BDRL 和 BDRM 中的实际数据。当我使用调试工具监测 BDRL 和 BDRM 寄存器时,我发现这两个寄存器不可访问。因此,是否有其他方法可以准确反映 UART RX FIFO 中的内容? 顺祝商祺! 潘茂林 RTD Re: How to access FIFO contents in UART FIFO mode 嗨,@Maolin_Pan、 使用 DMA 时,寄存器 BDRL(Tx 数据)和 BDRM(Rx 数据)为先进先出寄存器。除了从寄存器 BDRM 读取 Rx 外,我没有找到任何反映 FIFO 内容的方法。 顺祝商祺! Nhi
View full article
How to access FIFO contents in UART FIFO mode Hello experts, Customer: Zoox Chips: S32G399A The customer wants to enable UART DMA mode in QNX. The issue they encountered is that an extra character appears periodically. The customer suspects that this extra character is caused by the interaction between DMA and the UART RX FIFO. They believe that the (FIFO Not Empty) flag does not accurately reflect the actual data in BDRL and BDRM. When I used a debugging tool to monitor the BDRL and BDRM registers, I found that these two registers are not accessible. Therefore, is there any other way to accurately reflect the content in the UART RX FIFO? Best regards, Maolin Pan RTD Re: How to access FIFO contents in UART FIFO mode Hi @Maolin_Pan , When DMA used, registers BDRL(Tx data), BDRM(Rx Data) are FIFO. I didn't find any way to reflect the content of FIFO except read from the register BDRM for Rx.  Best regards, Nhi
View full article
i.MX 8QuadMax - imxvideoconvert_g2d 错误 您好, 这几天我一直在和这个问题作斗争。本质上,我们正在构建一个 gstreamer 应用程序,它可以捕获来自摄像机的帧,对其进行一些叠加,编码为 H264,然后保存到文件中。使用 appsrc 和 appsink gstreamer 元素使管道正常工作。从根本上说,我的管道是这样的: 从文件中读取 NV12 帧(暂时取代摄像机) -> IMXVideoConvert -- (RGBA) --> appsink ---- 帧叠加 ----> IMXVideoConvert --- NV12 ---> V4L2H264Encoder --> 文件 问题出在第二个 IMXVideConvert 的盖帽协商上,似乎无法让它输出 HW H264 编码器所需的 NV12 格式。尽管 NV12 格式列在元素 SRC 功能中,但它不能输出 NV12 格式。任何转换到 NV12 的尝试都会失败,提示 "转换无法转换......我们支持的任何形式"。不过,NV12 可以作为输入格式使用,转换为其他格式(BGRx、UYVY 直通)也能正常工作。 用于测试的基本管道: gst-launch-1.0 videotestsrc num-buffers = 5! \ video/x-raw,格式 = UYVY,宽度 = 320 ,高度 = 240! \ imxvideoconvert_g2d! \ vide o/x-raw,格式 = NV12! \ fakesin k 操作系统信息: root @apalis-imx8-06959030:~/tests# cat /etc/os-release id=tdx-xWayland NAME= " TDX Wayland with xWayland " 版本= " 6.8.3-devel-20250930110137+build.0 (kirkstone) " version_id=6.8.3-devel-20250930110137-b uild.0 PRETTY_NAME= " TDX Wayland with xWayland 6.8.3-devel-20250930110137+版本.0 (kirkstone) " DISTRO_CODENAME= " kirkstone " 如果需要更多数据,请告诉我。这恐怕会阻碍我们完成 PoC。 i.MX 8 系列 | i.MX 8QuadMax (8QM) | 8QuadPlus 多媒体 Re: i.MX 8QuadMax - imxvideoconvert_g2d error 你好@AlexxS、 在你的调试日志中,我可以看到 imxvideoconvert 发出的警告,但我想知道是否有更低级别的日志可以帮助解决问题。您能否使用该环境变量运行您的管道,然后共享生成的调试日志? GST_DEBUG=*imxvideoconvert*:DEBUG Regards, Francis Guindon Embedded SW Engineer at RidgeRun 联系我们:support@ridgerun.com 开发者维基:https://developer.ridgerun.com/ 网站: http://www.ridgerun.com/
View full article
i.MX 8QuadMax - imxvideoconvert_g2d error Hi, I've been battling with this for a few days. Essentially we are building a gstreamer application that captures frames from a camera, does some overlays on them, encodes to H264 and then saves to a file. Got the pipeline working using appsrc and appsink gstreamer elements. Fundamentally, my pipeline is like this: Read NV12 frames from file (replaces the camera for now) -> IMXVideoConvert -- (RGBA) --> appsink ---- frame overlays ----> IMXVideoConvert --- NV12 ---> V4L2H264Encoder --> File The problem is with caps negotiations on the second IMXVideConvert, seems like it's impossible to get it to output the NV12 format which is required by the HW H264 encoder. It cannot output NV12 format despite it being listed in the element's SRC capabilities. Any attempt to convert to NV12 fails with 'transform could not transform... in anything we support'. However, NV12 works as an input format, and conversion to other formats (BGRx, UYVY passthrough) works correctly. Basic pipeline to test with: gst-launch-1.0 videotestsrc num-buffers=5 ! \ video/x-raw,format=UYVY,width=320,height=240 ! \ imxvideoconvert_g2d ! \ video/x-raw,format=NV12 ! \ fakesink OS info: root@apalis-imx8-06959030:~/tests# cat /etc/os-release ID=tdx-xwayland NAME="TDX Wayland with XWayland" VERSION="6.8.3-devel-20250930110137+build.0 (kirkstone)" VERSION_ID=6.8.3-devel-20250930110137-build.0 PRETTY_NAME="TDX Wayland with XWayland 6.8.3-devel-20250930110137+build.0 (kirkstone)" DISTRO_CODENAME="kirkstone" Let me know if there's any more data I can help with. This is stopping our PoC from being completed at this point I'm afraid. i.MX 8 Family | i.MX 8QuadMax (8QM) | 8QuadPlus Multimedia Re: i.MX 8QuadMax - imxvideoconvert_g2d error Hi @AlexxS, In your debug log I can see the warnings that the imxvideoconvert is throwing, but I'm wondering if there are lower level logs that could help fix the issue. Could you run your pipeline with this environment variable and then share the resulting debug log? GST_DEBUG=*imxvideoconvert*:DEBUG Regards, Francis Guindon Embedded SW Engineer at RidgeRun Contact us: support@ridgerun.com Developers wiki: https://developer.ridgerun.com/ Website: http://www.ridgerun.com/
View full article
一部のUdiskがMCIMX6ULL-EVK評価ボードで列挙に失敗する 128GB と 64GB の 2 つの Udisk があります。これら 2 つは両方とも MX8MP-EVK 評価ボードで列挙できます。MCIMX6ULL-EVK 評価ボードでは 64GB を列挙できますが、64GB は列挙できません。 MCIMX6ULL-EVK 評価ボードの NXP デモ ファームウェア L4.1.15_2.0.0 と L5.4.24-2.1.0_images_MX6UL7D の両方でこの問題を再現できます。 以下は、MCIMX6ULL-EVK 評価ボードのテスト ログです。 NXP i.MX リリース ディストリビューション 5.4-zeus imx6ul7d ttymxc0 imx6ul7d ログイン: root 最終ログイン: 2020年5月28日(木) 16:05:12 UTC、tty7 ルート@imx6ul7d:~# ルート@imx6ul7d:~# root@imx6ul7d:~# 64GBのudiskを試すが、いつも失敗する -sh: 変更: コマンドが見つかりません ルート@imx6ul7d:~# ルート@imx6ul7d:~# root@imx6ul7d:~# [ 33.127440] VSD_3V3: 無効化 [ 33.130571] CAN-3v3: 無効化 [ 33.977402] usb 1-1: ci_hdrc を使用した新しい高速 USB デバイス番号 2 [ 34.030526] usb 1-1: 新しいUSBデバイスが見つかりました、idVendor=346d、idProduct=5678、bcdDevice= 3.20 [ 34.038928] usb 1-1: 新しいUSBデバイス文字列: Mfr=1、製品=2、SerialNumber=3 [ 34.046215] usb 1-1: 製品: ディスク 20 [ 34.056993] usb 1-1: メーカー: USB [ 34.064009] usb 1-1: シリアル番号: FC31114725D35 [ 34.081397] usb-storage 1-1:1.0: USBマスストレージデバイスが検出されました [ 34.105046] SCSIホスト0: USBストレージ1-1:1.0 [ 35.129674] scsi 0:0:0:0: ダイレクトアクセス ベンダー C 製品コード 3.20 PQ: 0 ANSI: 4 [ 35.154632] sd 0:0:0:0: [sda] 122880000 512バイトの論理ブロック: (62.9 GB/58.6 GiB) [ 35.170574] sd 0:0:0:0: [sda] 書き込み保護はオフです [ 35.190603] sd 0:0:0:0: [sda] キャッシュモードページが見つかりません [ 35.195948] sd 0:0:0:0: [sda] ドライブキャッシュを想定: ライトスルー [ 35.236559] sda: sda1 [ 35.252883] sd 0:0:0:0: [sda] SCSIリムーバブルディスクが接続されました [ 35.273942] usb 1-1: USB切断、デバイス番号2 [ 35.284399] sd 0:0:0:0: [sda] タグ#0 失敗 結果: ホストバイト=DID_ERROR ドライバーバイト=DRIVER_OK [ 35.292811] sd 0:0:0:0: [sda] タグ#0 CDB: 読み取り(10) 28 00 07 52 ff 80 00 00 08 00 [ 35.300184] blk_update_request: I/Oエラー、デバイスSDA、セクター122879872 op 0x0:(READ) フラグ0x80700 phys_seg 1 prioクラス0 [ 35.320469] scsi 0:0:0:0: [sda] tag#0 失敗 結果: ホストバイト=DID_ERROR ドライバーバイト=DRIVER_OK [ 35.329034] scsi 0:0:0:0: [sda] タグ#0 CDB: 読み取り(10) 28 00 07 52 ff 80 00 00 08 00 [ 35.336534] blk_update_request: I/Oエラー、デバイスSDA、セクター122879872 op 0x0:(READ) フラグ0x0 phys_seg 1 prioクラス0 [ 35.347154] デバイスSDAのバッファI/Oエラー、論理ブロック15359984、非同期ページ読み取り [ 35.727532] usb 1-1: ci_hdrc を使用した新しい高速 USB デバイス番号 3 [ 46.307351] USB 1-1: デバイスがアドレス3を受け入れません、エラー -110 [ 46.457428] usb 1-1: ci_hdrc を使用した新しい高速 USB デバイス番号 4 [ 51.967329] USB 1-1: デバイスがアドレス4を受け入れません、エラー -71 [ 51.973421] usb usb1-port1: 電源を入れ直す [ 52.467402] usb 1-1: ci_hdrc を使用した新しい高速 USB デバイス番号 5 [ 52.637376] USB 1-1: デバイス応答なし、デバイスディスクリプタ読み取り/64、エラー -71 [ 57.927378] USB 1-1: デバイス応答なし、デバイスディスクリプタ読み取り/64、エラー -71 [ 58.197409] usb 1-1: ci_hdrc を使用した新しい高速 USB デバイス番号 6 [ 58.367365] USB 1-1: デバイス応答なし、デバイスディスクリプタ読み取り/64、エラー -71 [ 63.687362] USB 1-1: デバイス応答なし、デバイスディスクリプタ読み取り/64、エラー -71 [ 63.807378] usb usb1-port1: USBデバイスを列挙できません ルート@imx6ul7d:~# ルート@imx6ul7d:~# ルート@imx6ul7d:~# ルート@imx6ul7d:~# root@imx6ul7d:~# [ 76.317394] usb 1-1: ci_hdrc を使用して新しい高速USBデバイス番号7を作成しました [ 76.370177] usb 1-1: 新しいUSBデバイスが見つかりました、idVendor=346d、idProduct=5678、bcdDevice= 3.20 [ 76.378577] usb 1-1: 新しいUSBデバイス文字列: Mfr=1、製品=2、SerialNumber=3 [ 76.385854] usb 1-1: 製品: ディスク 20 [ 76.397014] usb 1-1: メーカー: USB [ 76.403918] usb 1-1: シリアル番号: FC31114725D35 [ 76.422972] usb-storage 1-1:1.0: USBマスストレージデバイスが検出されました [ 76.445697] SCSIホスト0: USBストレージ1-1:1.0 [ 77.529821] scsi 0:0:0:0: ダイレクトアクセス ベンダー C 製品コード 3.20 PQ: 0 ANSI: 4 [ 77.554400] sd 0:0:0:0: [sda] 122880000 512バイトの論理ブロック: (62.9 GB/58.6 GiB) [ 77.570541] sd 0:0:0:0: [sda] 書き込み保護はオフです [ 77.587488] sd 0:0:0:0: [sda] キャッシュモードページが見つかりません [ 77.592898] sd 0:0:0:0: [sda] ドライブキャッシュを想定: ライトスルー [ 77.648590] sda: sda1 [ 77.662782] sd 0:0:0:0: [sda] SCSIリムーバブルディスクが接続されました [ 77.683719] usb 1-1: USB切断、デバイス番号7 [ 77.694214] sd 0:0:0:0: [sda] タグ#0 失敗 結果: ホストバイト=DID_ERROR ドライバーバイト=DRIVER_OK [ 77.702615] sd 0:0:0:0: [sda] タグ#0 CDB: 読み取り(10) 28 00 07 52 ff 80 00 00 08 00 [ 77.709992] blk_update_request: I/Oエラー、デバイスSDA、セクター122879872 op 0x0:(READ) フラグ0x80700 phys_seg 1 prioクラス0 [ 77.730370] scsi 0:0:0:0: [sda] tag#0 失敗 結果: ホストバイト=DID_ERROR ドライバーバイト=DRIVER_OK [ 77.738932] scsi 0:0:0:0: [sda] タグ#0 CDB: 読み取り(10) 28 00 07 52 ff 80 00 00 08 00 [ 77.746434] blk_update_request: I/Oエラー、デバイスSDA、セクター122879872 op 0x0:(READ) フラグ0x0 phys_seg 1 prioクラス0 [ 77.757035] デバイスSDAのバッファI/Oエラー、論理ブロック15359984、非同期ページ読み取り [ 78.147306] usb 1-1: ci_hdrc を使用した新しい高速 USB デバイス番号 8 [ 86.837348] USB 1-1: デバイスがアドレス8を受け入れません、エラー -71 [ 87.947309] usb 1-1: ci_hdrc を使用した新しい高速 USB デバイス番号 9 [ 88.397411] USB 1-1: デバイスがアドレス9を受け入れません、エラー -71 [ 88.403501] usb usb1-port1: 電源を入れ直す ルート@imx6ul7d:~# ルート@imx6ul7d:~# ルート@imx6ul7d:~# ルート@imx6ul7d:~# ルート@imx6ul7d:~# ルート@imx6ul7d:~# ルート@imx6ul7d:~# root@imx6ul7d:~# 128GB udisk を変更すると、常に成功します -sh: 変更: コマンドが見つかりません ルート@imx6ul7d:~# ルート@imx6ul7d:~# ルート@imx6ul7d:~# root@imx6ul7d:~# [ 134.957400] usb 1-1: ci_hdrc を使用して新しい高速USBデバイス番号11を作成しました [ 135.010205] usb 1-1: 新しいUSBデバイスが見つかりました、idVendor=346d、idProduct=5678、bcdDevice= 3.20 [ 135.018605] usb 1-1: 新しいUSBデバイス文字列: Mfr=1、製品=2、SerialNumber=3 [ 135.025887] usb 1-1: 製品: ディスク 20 [ 135.037000] usb 1-1: メーカー: USB [ 135.043977] usb 1-1: シリアル番号: FC2900B1485C4 [ 135.062849] usb-storage 1-1:1.0: USBマスストレージデバイスが検出されました [ 135.085469] SCSIホスト0: USBストレージ1-1:1.0 [ 136.169604] scsi 0:0:0:0: ダイレクト アクセス ベンダー C 製品コード 3.20 PQ: 0 ANSI: 4 [ 136.194433] sd 0:0:0:0: [sda] 245760000 512バイトの論理ブロック: (126 GB/117 GiB) [ 136.210578] sd 0:0:0:0: [sda] 書き込み保護はオフです [ 136.227848] sd 0:0:0:0: [sda] キャッシュモードページが見つかりません [ 136.233272] sd 0:0:0:0: [sda] ドライブキャッシュを想定: ライトスルー [ 136.289093] sda: sda1 [ 136.310555] sd 0:0:0:0: [sda] SCSIリムーバブルディスクが接続されました [ 138.115645] EXT4-fs (sda1): 順序付きデータモードでマウントされたファイルシステム。オプション: (null) ルート@imx6ul7d:~# ルート@imx6ul7d:~# ルート@imx6ul7d:~# ルート@imx6ul7d:~# df ファイルシステム 1Kブロック 使用済み 使用可能 使用率 マウント先 /dev/root 1215192 746488 387904 66% / devtmpfs 168088 4 168084 1% /dev tmpfs 250520 0 250520 0% /dev/shm tmpfs 250520 8972 241548 4% /run tmpfs 250520 0 250520 0% /sys/fs/cgroup tmpfs 250520 4 250516 1% /tmp tmpfs 250520 148 250372 1% /var/volatile /dev/mmcblk1p1 27130 10722 16408 40% /run/media/mmcblk1p1 tmpfs 50104 4 50100 1% /run/media/ユーザー/0 /dev/sda1 120819424 61452 114597592 1% /run/media/sda1 root@imx6ul7d:~# [ 161.140099] usb 1-1: USB切断、デバイス番号11 [ 164.677402] usb 1-1: ci_hdrc を使用して新しい高速USBデバイス番号12を作成しました [ 164.730130] usb 1-1: 新しいUSBデバイスが見つかりました、idVendor=346d、idProduct=5678、bcdDevice= 3.20 [ 164.738530] usb 1-1: 新しいUSBデバイス文字列: Mfr=1、製品=2、SerialNumber=3 [ 164.745816] usb 1-1: 製品: ディスク 20 [ 164.756858] usb 1-1: メーカー: USB [ 164.763932] usb 1-1: シリアル番号: FC2900B1485C4 [ 164.790406] usb-storage 1-1:1.0: USBマスストレージデバイスが検出されました [ 164.822090] SCSIホスト0: USBストレージ1-1:1.0 [ 165.849535] scsi 0:0:0:0: ダイレクト アクセス ベンダー C 製品コード 3.20 PQ: 0 ANSI: 4 [ 165.874608] sd 0:0:0:0: [sda] 245760000 512バイトの論理ブロック: (126 GB/117 GiB) [ 165.887981] sd 0:0:0:0: [sda] 書き込み保護はオフです [ 165.907494] sd 0:0:0:0: [sda] キャッシュモードページが見つかりません [ 165.912845] sd 0:0:0:0: [sda] ドライブキャッシュを想定: ライトスルー [ 165.958829] sda: sda1 [ 165.979338] sd 0:0:0:0: [sda] SCSIリムーバブルディスクが接続されました [ 167.820051] EXT4-fs (sda1): 順序付きデータモードでマウントされたファイルシステム。オプション: (null) ルート@imx6ul7d:~# ルート@imx6ul7d:~# root@imx6ul7d:~# [ 178.797249] usb 1-1: USB切断、デバイス番号12 ルート@imx6ul7d:~# ルート@imx6ul7d:~# ルート@imx6ul7d:~# ルート@imx6ul7d:~# root@imx6ul7d:~# 64GB udisk を再試行するが、常に失敗する -sh: 変更: コマンドが見つかりません ルート@imx6ul7d:~# ルート@imx6ul7d:~# root@imx6ul7d:~# [ 206.277395] usb 1-1: ci_hdrc を使用して新しい高速USBデバイス番号13を作成しました [ 206.330256] usb 1-1: 新しいUSBデバイスが見つかりました、idVendor=346d、idProduct=5678、bcdDevice= 3.20 [ 206.338667] usb 1-1: 新しいUSBデバイス文字列: Mfr=1、製品=2、SerialNumber=3 [ 206.345948] usb 1-1: 製品: ディスク 20 [ 206.356882] usb 1-1: メーカー: USB [ 206.363925] usb 1-1: シリアル番号: FC31114725D35 [ 206.381244] usb-storage 1-1:1.0: USBマスストレージデバイスが検出されました [ 206.403761] scsi ホスト0: usb-storage 1-1:1.0 [ 207.449663] scsi 0:0:0:0: ダイレクトアクセス ベンダー C 製品コード 3.20 PQ: 0 ANSI: 4 [ 207.474740] sd 0:0:0:0: [sda] 122880000 512バイトの論理ブロック: (62.9 GB/58.6 GiB) [ 207.487973] sd 0:0:0:0: [sda] 書き込み保護はオフです [ 207.510688] sd 0:0:0:0: [sda] キャッシュモードページが見つかりません [ 207.516111] sd 0:0:0:0: [sda] ドライブキャッシュを想定: ライトスルー [ 207.558710] sda: sda1 [ 207.579364] sd 0:0:0:0: [sda] SCSIリムーバブルディスクが接続されました [ 207.596929] usb 1-1: USB切断、デバイス番号13 [ 207.602671] sd 0:0:0:0: [sda] タグ#0 失敗 結果: ホストバイト=DID_ERROR ドライバーバイト=DRIVER_OK [ 207.611076] sd 0:0:0:0: [sda] タグ#0 CDB: 読み取り(10) 28 00 07 52 ff 80 00 00 08 00 [ 207.618463] blk_update_request: I/Oエラー、デバイスSDA、セクター122879872 op 0x0:(READ) フラグ0x80700 phys_seg 1 prioクラス0 [ 207.643260] scsi 0:0:0:0: [sda] tag#0 失敗 結果: ホストバイト=DID_ERROR ドライバーバイト=DRIVER_OK [ 207.651824] scsi 0:0:0:0: [sda] タグ#0 CDB: 読み取り(10) 28 00 07 52 ff 80 00 00 08 00 [ 207.659379] blk_update_request: I/Oエラー、デバイスSDA、セクター122879872 op 0x0:(READ) フラグ0x0 phys_seg 1 prioクラス0 [ 207.669949] デバイスSDAのバッファI/Oエラー、論理ブロック15359984、非同期ページ読み取り [ 208.067342] usb 1-1: ci_hdrc を使用した新しい高速 USB デバイス番号 14 ルート@imx6ul7d:~# ルート@imx6ul7d:~# ルート@imx6ul7d:~# root@imx6ul7d:~# [ 218.627329] usb 1-1: デバイスがアドレス14を受け入れません、エラー -110 [ 218.777517] usb 1-1: ci_hdrc を使用した新しい高速 USB デバイス番号 15 [ 224.287335] USB 1-1: デバイスがアドレス15を受け入れません、エラー -71 [ 224.293525] usb usb1-port1: 電源を入れ直してみる [ 224.787394] usb 1-1: ci_hdrc を使用した新しい高速 USB デバイス番号 16 [ 224.957376] USB 1-1: デバイス応答なし、デバイスディスクリプタ読み取り/64、エラー -71 [ 230.247424] USB 1-1: デバイス応答なし、デバイスディスクリプタ読み取り/64、エラー -71 [ 230.517415] usb 1-1: ci_hdrc を使用した新しい高速 USB デバイス番号 17 [ 230.687412] USB 1-1: デバイス応答なし、デバイスディスクリプタ読み取り/64、エラー -71 [ 236.007405] USB 1-1: デバイス応答なし、デバイスディスクリプタ読み取り/64、エラー -71 [ 236.127474] usb usb1-port1: USBデバイスを列挙できません ルート@imx6ul7d:~# ルート@imx6ul7d:~# ルート@imx6ul7d:~# root@imx6ul7d:~# [ 1177.397394] usb 1-1: ci_hdrc を使用して新しい高速USBデバイス番号18を作成しました [ 1177.450285] usb 1-1: 新しいUSBデバイスが見つかりました、idVendor=346d、idProduct=5678、bcdDevice= 3.20 [ 1177.458688] usb 1-1: 新しいUSBデバイス文字列: Mfr=1、製品=2、SerialNumber=3 [ 1177.465961] usb 1-1: 製品: ディスク 20 [ 1177.476789] usb 1-1: メーカー: USB [ 1177.483826] usb 1-1: シリアル番号: FC31114725D35 [ 1177.503847] usb-storage 1-1:1.0: USBマスストレージデバイスが検出されました [ 1177.525431] SCSIホスト0: USBストレージ1-1:1.0 [ 1178.569560] scsi 0:0:0:0: ダイレクトアクセス ベンダー C 製品コード 3.20 PQ: 0 ANSI: 4 [ 1178.595649] sd 0:0:0:0: [sda] 122880000 512バイトの論理ブロック: (62.9 GB/58.6 GiB) [ 1178.612255] sd 0:0:0:0: [sda] 書き込み保護はオフです [ 1178.634376] sd 0:0:0:0: [sda] キャッシュモードページが見つかりません [ 1178.639860] sd 0:0:0:0: [sda] ドライブキャッシュを想定: ライトスルー [ 1178.667061] sda: sda1 [ 1178.683380] sd 0:0:0:0: [sda] SCSIリムーバブルディスクが接続されました [ 1178.704463] usb 1-1: USB切断、デバイス番号18 [ 1178.713191] sd 0:0:0:0: [sda] タグ#0 失敗 結果: ホストバイト=DID_ERROR ドライバーバイト=DRIVER_OK [ 1178.721585] sd 0:0:0:0: [sda] タグ#0 CDB: 読み取り(10) 28 00 07 52 ff 80 00 00 08 00 [ 1178.728953] blk_update_request: I/Oエラー、デバイスSDA、セクター122879872 op 0x0:(READ) フラグ0x80700 phys_seg 1 prioクラス0 [ 1178.753859] scsi 0:0:0:0: [sda] tag#0 失敗 結果: ホストバイト=DID_ERROR ドライバーバイト=DRIVER_OK [ 1178.762423] scsi 0:0:0:0: [sda] タグ#0 CDB: 読み取り(10) 28 00 07 52 ff 80 00 00 08 00 [ 1178.769993] blk_update_request: I/Oエラー、デバイスSDA、セクター122879872 op 0x0:(READ) フラグ0x0 phys_seg 1 prioクラス0 [ 1178.780566] デバイスSDAのバッファI/Oエラー、論理ブロック15359984、非同期ページ読み取り [ 1179.167312] usb 1-1: ci_hdrc を使用して新しい高速USBデバイス番号19を作成しました [ 1179.747351] USB 1-1: デバイスがアドレス19を受け入れません、エラー -71 [ 1231.457317] usb 1-1: ci_hdrc を使用した新しい高速 USB デバイス番号 21 [ 1231.509890] usb 1-1: 新しいUSBデバイスが見つかりました、idVendor=346d、idProduct=5678、bcdDevice= 3.20 [ 1231.518295] usb 1-1: 新しいUSBデバイス文字列: Mfr=1、Product=2、SerialNumber=3 [ 1231.525582] usb 1-1: 製品: ディスク 20 [ 1231.536329] usb 1-1: メーカー: USB [ 1231.543336] usb 1-1: シリアル番号: FC31114725D35 [ 1231.561890] usb-storage 1-1:1.0: USBマスストレージデバイスが検出されました [ 1231.584731] SCSIホスト0: USBストレージ1-1:1.0 [ 1232.649677] scsi 0:0:0:0: ダイレクトアクセス ベンダー C 製品コード 3.20 PQ: 0 ANSI: 4 [ 1232.674366] sd 0:0:0:0: [sda] 122880000 512バイトの論理ブロック: (62.9 GB/58.6 GiB) [ 1232.687983] sd 0:0:0:0: [sda] 書き込み保護はオフです [ 1232.710654] sd 0:0:0:0: [sda] キャッシュモードページが見つかりません [ 1232.716076] sd 0:0:0:0: [sda] ドライブキャッシュを想定: ライトスルー [ 1232.768537] sda: sda1 [ 1232.790606] sd 0:0:0:0: [sda] SCSIリムーバブルディスクが接続されました [ 1232.809177] usb 1-1: USB切断、デバイス番号21 [ 1232.820341] sd 0:0:0:0: [sda] タグ#0 失敗 結果: ホストバイト=DID_ERROR ドライバーバイト=DRIVER_OK [ 1232.828769] sd 0:0:0:0: [sda] タグ#0 CDB: 読み取り(10) 28 00 07 52 ff 80 00 00 08 00 [ 1232.836102] blk_update_request: I/Oエラー、デバイスSDA、セクター122879872 op 0x0:(READ) フラグ0x80700 phys_seg 1 prioクラス0 [ 1232.858688] scsi 0:0:0:0: [sda] tag#0 失敗 結果: ホストバイト=DID_ERROR ドライバーバイト=DRIVER_OK [ 1232.867266] scsi 0:0:0:0: [sda] タグ#0 CDB: 読み取り(10) 28 00 07 52 ff 80 00 00 08 00 [ 1232.874768] blk_update_request: I/Oエラー、デバイスSDA、セクター122879872 op 0x0:(READ) フラグ0x0 phys_seg 1 prioクラス0 [ 1232.885360] デバイスSDAのバッファI/Oエラー、論理ブロック15359984、非同期ページ読み取り [ 1233.277349] usb 1-1: ci_hdrc を使用した新しい高速 USB デバイス番号 22 ルート@imx6ul7d:~# ルート@imx6ul7d:~# ルート@imx6ul7d:~# df ファイルシステム 1Kブロック 使用済み 使用可能 使用率 マウント先 /dev/root 1215192 746488 387904 66% / devtmpfs 168088 4 168084 1% /dev tmpfs 250520 0 250520 0% /dev/shm tmpfs 250520 8952 241568 4% /実行 tmpfs 250520 0 250520 0% /sys/fs/cgroup tmpfs 250520 4 250516 1% /tmp tmpfs 250520 184 250336 1% /var/volatile /dev/mmcblk1p1 27130 10722 16408 40% /run/media/mmcblk1p1 tmpfs 50104 4 50100 1% /run/user/0 root@imx6ul7d:~# [ 1243.827330] usb 1-1: デバイスがアドレス22を受け入れません、エラー -110 [ 1243.977433] usb 1-1: ci_hdrc を使用した新しい高速 USB デバイス番号 23 root@imx6ul7d:~# [ 1249.487330] usb 1-1: デバイスがアドレス23を受け入れません、エラー -71 [ 1249.493511] usb usb1-port1: 電源を入れ直す [ 1249.987411] usb 1-1: ci_hdrc を使用した新しい高速 USB デバイス番号 24 [ 1250.157372] USB 1-1: デバイス応答なし、デバイスディスクリプタ読み取り/64、エラー -71 [ 1255.447396] USB 1-1: デバイス応答なし、デバイスディスクリプタ読み取り/64、エラー -71 [ 1255.717429] usb 1-1: ci_hdrc を使用した新しい高速 USB デバイス番号 25 [ 1255.887415] USB 1-1: デバイス応答なし、デバイスディスクリプタ読み取り/64、エラー -71 [ 1261.207667] USB 1-1: デバイス応答なし、デバイスディスクリプタ読み取り/64、エラー -71 [ 1261.327356] usb usb1-port1: USBデバイスを列挙できません Udisk を除き、ハードウェアとソフトウェアは両方とも NXP 製です。この問題の根本的な原因は何でしょうか? i.MX6UL Re: Some Udisks fail to be enumerated in the MCIMX6ULL-EVK evaluation board この問題の根本的な原因は、この 64GB Udisk が USB 2.0 と適切に下位互換性がないことです。 Re: Some Udisks fail to be enumerated in the MCIMX6ULL-EVK evaluation board タイプミスの訂正: 128GB Udisk はMCIMX6ULL-EVK 評価ボードで列挙できますが、64GB Udisk は列挙できません。   追加情報:前述の Thinkplus Udisk はどちらもLenovo ブランドの製品です。下の図に示すように:
View full article
在 S32G2 上调出 PFE 子系统 我正在寻找一个简单的示例,说明如何启动 PFE 子系统并设置相应的时钟。我编写了一个驱动程序,应该可以在本地 A53(没有 Linux)上运行。 时钟从未出现过。我知道,在我研究这个逻辑之前,我甚至无法读取 PFE 寄存器,现在它们读取了,但并非所有东西都能正常工作,我将其归结为这个原因。 以下是启动子系统的基本代码(非常零散,恩智浦也没有明确解释),如果能提供源代码示例,将不胜感激。 pfe_init(void) { /* 启用 */ /* 设置 DMA 一致性 */ 易变 uint32_t 尝试; RDC.RD2_CTRL_REG.B.RD2_CTRL_UNLOCK = 1; RDC.RD2_CTRL_REG.B.RD2_CTRL_REG . = 0; 尝试 = 0; 虽然(RDC.RD2_STAT_REG.B.RD2_STAT_REG . != 0)     { 尝试++; 如果(尝试 > MAX_TRIES) { 打破;      }    } 尝试 = 0; 虽然(RDC.RD2_STAT_REG.B.RD2_STAT_REG . != 0)     { 尝试++; 如果(尝试 > MAX_TRIES) { 打破;      }    } /**((volatile unsigned int *)0x4007ca00) = 0x3f; */ S32G_GPR.PFE_COH_EN.B.DDR = true; S32G_GPR.PFE_COH_EN.B.HIF0 = true; S32G_GPR.PFE_COH_EN.B.HIF1 = true; S32G_GPR.PFE_COH_EN.B.HIF2 = true; S32G_GPR.PFE_COH_EN.B.HIF3 = true; S32G_GPR.PFE_COH_EN.B.UTIL = true; /* 设置 EMAC 模式 -RGMII (ALL PFES)*/ S32G_GPR.pfe_emacx_intf_sel.B.EMAC0 = 2; S32G_GPR.pfe_emacx_intf_sel.B.EMAC1 = 2; S32G_GPR.pfe_emacx_intf_sel.B.EMAC2 = 2; /* 启用 PFE 电源 */ S32G_GPR.PFE_PWR_CTRL.B.PWRACK = 0; S32G_GPR.PFE_PWR_CTRL.B.PWRCLAMP = 0; S32G_GPR.PFE_PWR_CTRL.B.PWRDWN = 0; S32G_GPR.PFE_PWR_CTRL.B.PWRISO = 0;     S32G_GPR.GENCTRL1.B.CTRL = 1; /* 设置& 启用 PFE 系统时钟 */ /* 设置并启用 PFE PE 时钟 */ S32G_GPR.LLCE_CTRL.B.EXEVENT = 0; S32G_GPR.LLCE_CTRL.B.LINDIVSEL = 0; S32G_GPR.LLCE_CTRL.B.llce_htm0_trc_dis = 0; S32G_GPR.LLCE_CTRL.B.LLCE_HTM1_TRC_DIS = 0; S32G_GPR.LLCE_CTRL.B.llce_lspi_trig_in = 0; S32G_GPR.LLCE_CTRL.B.PFE_2_LLCE_INT_HS_BP = 0;     S32G_GPR.GENCTRL1.B.CTRL = 1; /* 设置 EMAC Tx/RX 时钟 */ S32G_GPR.GENCTRL0.B.accel_flxnc_rd0_idlereq = 0;/* 正常运行 */ S32G_GPR.GENCTRL0.B.accel_flxnc_ref_div = 0;/* 除以 2 */ S32G_GPR.GENCTRL0.B.USBPWRFLT = 0;     尝试 = 0; 做{         MC_ME.prtn2_cofb0_clken.B.REQ0 = 1; MC_ME.prtn2_cofb0_clken.B.REQ1 = 1; MC_ME.prtn2_cofb0_clken.B.REQ2 = 1; MC_ME.prtn2_cofb0_clken.B.REQ3 = 1; 写入控制键(); MC_ME.PRTN2_PCONF.B.OSSE = 1; MC_ME.PRTN2_PCONF.B.PCE = 1; MC_ME.PRTN2_PUPD.B.OSSUD = 1; MC_ME.PRTN2_PUPD.B.PCUD = 1;                 /* 告诉硬件检查上述寄存器是否有变化 */ 写入控制键();         尝试++; 如果(尝试 > MAX_TRIES) { break; /* 代码在这里失效-时钟永远不会启用 , 因此 RESET 后不会出现 */      }         } 而(MC_ME.prtn2_cofb0_stat.R != 0xf); /* RESET PFE */ MC_RGM.PRST_0[2].PRST_0.B.PERIPH_0_RST = 1; 尝试 = 0; 虽然(MC_RGM.PSTAT_0[2].PSTAT_0.B.PERIPH_0_STAT != 1)     { 尝试++; 如果(尝试 > MAX_TRIES) { 打破;      } } 尝试 = 0; 做{ S32G_GPR.GENCTRL1.B.CTRL = 0;         /* 将 PFE 从 RESET 中移除 */ MC_RGM.PRST_0[2].PRST_0.B.PERIPH_0_RST = 0; MC_ME.PRTN2_PCONF.B.OSSE = 1; MC_ME.PRTN2_PCONF.B.PCE = 1; MC_ME.PRTN2_PUPD.B.OSSUD = 1; MC_ME.PRTN2_PUPD.B.PCUD = 1;                 /* 告诉硬件检查上述寄存器是否有变化 */ 写入控制键();         尝试++; 如果(尝试 > MAX_TRIES) { 打破;      } } 而(MC_RGM.PSTAT_0[2].PSTAT_0.B.PERIPH_0_STAT == 1); MC_ME.PRTN2_PCONF.B.OSSE = 0; MC_ME.PRTN2_PCONF.B.PCE = 1; MC_ME.PRTN2_PUPD.B.OSSUD = 1; MC_ME.PRTN2_PUPD.B.PCUD = 1;     /* 告诉硬件检查上述寄存器是否有变化 */ 写入控制键();     尝试 = 0; 虽然(MC_RGM.PSTAT_0[2].PSTAT_0.B.PERIPH_0_STAT != 0)     { 尝试++; 如果(尝试 > MAX_TRIES) { 打破; }    }     } Re: PFE subsystem bring up on S32G2 你好,@aaronbaranoff、 我们没有任何关于 HIF 及其环形缓冲器的具体文件。到目前为止,我已经与大家分享了有关《欧洲常规武装力量条约》的所有文件,我们没有更多的相关文件了。也就是说,你可以查看 LNX PFE 驱动程序用户手册的第 2.1 节网络接口或 PFE FCI API 参考的第 11.5.2 节配置示例和 11.7 Egress QoS。 关于 "无复杂性 "的数据包收发,如果您想利用 PFE,恐怕无法避免其复杂性,如果您愿意,可以使用 GMAC 模块,该模块相当简单,但您需要在主内核中处理所有操作。 Re: PFE subsystem bring up on S32G2 您是否有关于 HIF,特别是环形缓冲区结构和寄存器的文件? 这样我就能在不复杂的情况下发送和接收数据包。如何通过 MTL 中的 DEBUG FIFO 接口传输和接收数据? Re: PFE subsystem bring up on S32G2 你好,@aaronbaranoff、 我在发送任何帧之前进行了转储,以显示 PFE 寄存器的配置。 要确切地知道如何使用 PFE 发送代码包,我强烈建议你查看 PFE MCAL API,特别是,检查从 example_application\ src\ sample_app_ethswt_eth.c 开始的函数调用,在 tst_PFE_sendDummyFrame () 中有对 API eth_43_PFE_Transmit () 的调用,MCAL 代码包括很多运行时编译可能对你没有用的检查,你可以根据需要删除代码,但这是关于如何使用 PFE 发送功能的最佳参考。 谢谢! Re: PFE subsystem bring up on S32G2 红色区域的所有寄存器均不可访问(回读始终为 0)。我无法与它们对话,而且您的 PFE 代码似乎也没有使用它们(否则我就会认为它们会有非零值),因此这似乎证实了在 PFE 使用的 GMAC 实例中缺少 DMA 接口。因此,将原始数据包从PFE Mac发送出去的唯一方法是通过从机接口(恩智浦未记录)或调试接口(寄存器有记录但未记录顺序)。请提供帮助,确认或纠正我的猜测。 Re: PFE subsystem bring up on S32G2 谢谢你的转储。 当我比较你和我的寄存器设置时我发现你没有为任何队列/频道安装振铃缓冲区或列表地址。那您是如何发送数据包的?显然不是记录的 DMA 接口。PFE MAC 是否禁用了该接口?如果是,我该如何发送数据包? Re: PFE subsystem bring up on S32G2 你好,@aaronbaranoff、 抱歉回复晚了,这里是所有 PFE EMAC 寄存器(从 0x460A8000-0x460A936C 开始)的完整转储数据,您可以使用任何十六进制查看器进行检查。 该转存是在完成所有初始化后进行的。 Re: PFE subsystem bring up on S32G2 我注意到以下位置的数值有所不同。 EL1N0xFFFF0000460A8800 的值为 0x00003FF7,问题是这不是一个有记录的寄存器?是什么? Re: PFE subsystem bring up on S32G2 在查看了您的 PFE 配置后,我发现它也没有完全初始化。您尚未写信给名单上的地址(或者您无法写信给名单上的地址) 0x00000000 EL1N:0xFFFF0000460A9114 00000000 0x00000000 0x00000000 EL1N:0xFFFF0000460A9118 00000000 0x00000000 0x00000000 EL1N:0xFFFF0000460A911C 00000000 0x00000000 Re: PFE subsystem bring up on S32G2 此外,您能否转储并比较 ACCEL_PLL 的寄存器设置,根据文档,我们将其设置为 600 Mhz。 确保在比较之前完全启用 PFE_MAC_2 和时钟。 Re: PFE subsystem bring up on S32G2 我是糊涂了,还是漏掉了什么?我认为我们的 PFE 设置已经足够接近(MAC 地址和其他非关键设置)。但我们的 CGM_2 设置有偏差。也许你这边的差异是在设置之前捕获的。 根据文件(见下面的图片),用于 PFE_MAC2。 CGM_2 Mux 0 需要设置为 33 ACCEL_PLL_PH1_CLK(与之匹配)。 CGM2 Mux 3 需要设置为 PERIPH_PLL_PHI5_CLK(我已经设置了,但您指向的是 FIRC_CLK)。 CGM2 Mux 6 需要设置为 PFE_MAC2_RX_CLK(我已经设置了,但您指向的是 FIRC_CLK)。 Re: PFE subsystem bring up on S32G2 你好,@aaronbaranoff、 以下是我发现的不同之处,格式与上次相同。对于 MC_CGM_2,我在与上次相同的行中停止了程序;对于 PFE_EMAC,我在此处停止了程序: 如果更改后行为有所不同,请告诉我。 Re: PFE subsystem bring up on S32G2 还有一个数据点。我甚至尝试将 PFE_MAC2 置于环回(通过 MAC_CONFIGURATION)寄存器第 12 位。 但仍然无法与这些 DMA 相关寄存器通信。 Re: PFE subsystem bring up on S32G2 你好,@aaronbaranoff、 感谢您提供的信息,请给我一些时间检查这些登记簿。 我会尽快给您回复 Re: PFE subsystem bring up on S32G2 你能否将我的 MC_CGM_2 寄存器与你的进行比较?我认为有一些钟不见了,因为所有的 PFE 钟表都在那个部分。 Re: PFE subsystem bring up on S32G2 此外还有 DMA_SysBus_Mode(回读失败)。就像没有配置内部时钟一样。但是,由于 PRTN2_COFB0_STAT 始终报告为 0,我无法进行检查。 Re: PFE subsystem bring up on S32G2 这是无法成功写入 DMA_CH0_RxDesc_Ring_Length 和 DMA_CH0_RxDesc_List_Address 之前的寄存器。当我向它们写入并读回数值时,即使我写入的是一个有效地址,读回的数值也是 0。 不过,我可以成功获取链路状态、写入和回读寄存器(如 MAC 地址)。 该代码与我们成功控制 GMAC 的代码几乎完全相同。但是,PFE_MAC2 不允许读写某些寄存器。(主要与 DMA 有关)。除了寄存器比较之外。除了 PFE_MAC2 之外还需要其他东西来启用其 DMA(附加时钟或 RESET)吗? 因此,在我的代码中我添加了检查,结果如下 DMA_CH0_TxDesc_List_Address (回读失败) DMA_CH0_TxDesc_Ring_Length (回读失败) DMA_CH0_RxDesc_List_Address (回读失败) DMA_CH0_RxDesc_Ring_Length (回读失败) MTL_TxQ0_Operation_Mode(值正确,但无法修改) MTL_RxQ0_Operation_Mode(值正确,但无法修改) MAC_RxQ_Ctrl0(不允许接受写入值) Re: PFE subsystem bring up on S32G2 你好,@aaronbaranoff、 你的意思是 PFE EMAC 中的寄存器正确吗?这与 GMAC 参考手册中描述的寄存器相同。 如果是这样,您能否共享所有寄存器的转储数据,以便我将它们与演示程序在发送前的寄存器状态进行比较。 预先表示感谢。 Re: PFE subsystem bring up on S32G2 其表现就好像内部时钟不正确。但由于子系统错误无法让我们读取状态,因此很难判断。我已确认 PIn Mux 设置为正确的引脚,时钟看起来也设置正确。 Re: PFE subsystem bring up on S32G2 感谢您提供的差异。唯一令人惊讶的是,PFE 内部模块的 CLKEN 并没有在代码中设置。这是一个已知的问题吗?我想这是被忽视了,或者是不需要。 0x0000000F EL1N:0x0000000040088530 00000000 0x00000000 X 好的,我的 PFE GMAC 已经退出 RESET 状态并且我的链接状态有效。不过,我还有一个问题。 在 DMA 读写之外的所有寄存器中,我都能看到写入的内容。但是,DMA(TX 或 RX)似乎允许我们写入(没有错误),但数值却无法保留(会读回 0)。我还漏掉了什么吗?就好像我需要额外的外部步骤才能让 PFE GMAC 成真,而这些步骤并没有记录在案。 Re: PFE subsystem bring up on S32G2 你好,@aaronbaranoff、 很抱歉迟迟没有回复。在配置 PRTN2_COFB0_CLKEN 寄存器之前,我终于获得了寄存器的差异,你可以在附件中的 xlsx 文件中找到它们,你会发现差异用红色"X" 标记,每个寄存器转储在不同的页面中。 我的登记就是在这种情况下进行的: Re: PFE subsystem bring up on S32G2 你好,@aaronbaranoff、 感谢您提供的所有信息。我试着测试 PFE 演示程序,但在使用 S32 调试探针时遇到了一些问题,导致出现硬故障。我需要按照演示程序说明中的建议,用劳特巴赫调试器进行测试。不过,我现在没有带,我需要下周去买一个,然后进行测试。 关于电话,我和我的团队不处理与客户的通话,此外,我通常需要花相当长的时间来查找相关信息以便回复。 很抱歉迟迟未收到相关回复。 Re: PFE subsystem bring up on S32G2 你在哪个时区,也许什么时候可以互动工作。 Re: PFE subsystem bring up on S32G2 还添加了 S32G_GPR Re: PFE subsystem bring up on S32G2 随附寄存器数据(调试器中的 excel 格式) Re: PFE subsystem bring up on S32G2 你好,@aaronbaranoff、 如前所述,MC_ME.PRTN2_COFB0_STAT.R 为 0 似乎是一个已知问题,目前只有跳过检查这一变通办法。为找到根本原因,我想到的下一个办法是将您的寄存器与我的寄存器进行比较,请发送 MC_ME 整个寄存器的寄存器转储,就在配置 PRTN2_COFB0_STAT 之前,这样我就可以将其与一个可用示例进行比较。 谢谢! Re: PFE subsystem bring up on S32G2 我甚至尝试将其推送到启动加载程序的最早期阶段,结果也是一样。 MC_ME.PRTN2_COFB0_STAT.R 为 0(应为 0xf)...... 为什么? Re: PFE subsystem bring up on S32G2 还是没找到。PFE 分区未完全初始化。块时钟不启用。没有关于预期顺序的明确文件。开机过程在 S32G2 参考手册的图 148 中,但没有提及区块时钟(PRTN2_COFB0_STAT 或 PRTN2_COFB0_STAT 或 PRTN2_COFB0_CLKEN)。我希望其他在这方面有经验的用户能提供一个代码示例。它已RESET,PCS 标志显示时钟已启用,但区块时钟未启用,但不知道原因。我甚至试着把肾外钟排除在外。通过使用 FIRC。 设置(PFE_MACx_RX_CLK、PFE_MACx_TX_CLK、PFE_PE_CLK)后,将使用默认的 FIRC。PFE 分区仍处于 RESET 状态,但已启用的区块时钟会被忽略。我试过在剩余的 PFE 分区退出 RESET 之前和之后移动区块时钟启用也不会产生任何影响。 我尝试过 EL1 和 EL3 模式。我甚至尝试忽略 PRTN2_COFB0_STAT,不管我是否尝试通过 PRTN2_COFB0_CLKEN REQs 启用,如果我忽略了状态,那么我就可以读取 PFE 寄存器,但向某些寄存器的写入却失败了,而且行为也不正确。见表 195。 我正在使用 RDB2 板(直到我们的板准备就绪),但运气不佳。 Re: PFE subsystem bring up on S32G2 你好,@aaronbaranoff、 您能详细解释一下这句话吗? "但块级时钟不会启用。如果忽略状态,虽然可以读取许多 PFE GMAC 寄存器,但在向 DMA 寄存器写入数据时,无法获得链接状态。" 我查看了文档,和你一样,我没有看到任何关于 EL3 和 EL0 的具体说明,不过,我建议使用 EL0,以避免访问内存区域时出现任何问题。 Re: PFE subsystem bring up on S32G2 我复制了恩智浦的代码,但增加了检查功能。PFE 子系统已 RESET,但模块级时钟未启用。如果忽略状态,虽然可以读取许多 PFE GMAC 寄存器,但在向 DMA 寄存器写入数据时,无法获得链接状态。 我相信状态是一条线索,但却不知道为什么。在启动 PFE 之前,我已经启用了时钟和引脚复用器。 关于 EL1 与 EL3 模式或类似模式,我在文档中没有看到任何其他规定。 Re: PFE subsystem bring up on S32G2 你好,@aaronbaranoff、 感谢您对 AUTOSAR 驱动程序错误的参考,我在内部检查了与该错误修复相关的更改,更改的函数是 p ower_ip_mc_me_configureCOFB (),你可以在 RTD 5.0.0 中看到最终的实现QLP3.据我所知,问题不出在写入过程中,而是在读取验证时,你会在函数中看到,当 POWER_IP_MC_ME_PRTN2_COFB0_STAT_RESERVED 被定义为 ad STD_ON 时,分区索引的验证会被跳过。检查任何 S32G 的配置文件,都会发现 POWER_IP_MC_ME_PRTN2_COFB0_STAT_RESERVED 为 true,例如:Resource_TS_T40D11M50I0R0\resource\CORTEXM_S32G2XXM7_s32g274a_bga525.properties: 我的理解是,注册验证存在一个已知的问题,目前跳过它是已知的解决方法。 Re: PFE subsystem bring up on S32G2 甚至 AUTOSAR 代码也报告了类似的问题,但却没有解决方案或说明。 Re: PFE subsystem bring up on S32G2 我要问的不是驱动程序那么具体。这是一个简单的注册(参考手册)问题。 我试图让 0-3 块在 PRTN2_COFB0_STAT 中启用其时钟。 即使我想按 47.4 版使用你们的驱动程序我需要(按照本文档"MC_ME 分区 2 映射" 部分所述,在 MC_ME 中启用 PFE COFB 时钟)。 这是最基本的顺序,但它不起作用,而且数据表也没有提供所需的任何其他信息。分区已RESET,参考手册中的图 148 未涵盖在分区内启用区块时钟。 mc_me.prtn2_cofb0_clken.b.req0 = 1; mc_me.prtn2_cofb0_clken.b.req1 = 1; mc_me.prtn2_cofb0_clken.b.req2 = 1; mc_me.prtn2_cofb0_clken.b.req3 = 1; mc_me.prtn2_pconf.b.osse = 1; mc_me.prtn2_pupd.b.ossud = 1; mc_me.prtn2_pconf.b.pce = 1; mc_me.prtn2_pupd.b.pcud = 1; /* 告诉硬件检查上述寄存器是否有变化 */ Write_Control_Key(); 之后,我读取了PRTN2_COFB0_STAT,但状态从未显示时钟已启用。 Re: PFE subsystem bring up on S32G2 你好,@aaronbaranoff、 感谢您再次联系我们。在这次运动中,我无法分享以前没有分享过的任何资源,例如参考手册、FCI API文档以及代码或代码示例。由于 A53 的软件支持主要集中在 Linux 系统上,而 PFE 又是一个非常复杂的模块,因此我无法通过查看您的程序为您提供太多支持,但我可以像以往一样建议您查看已提供的实现方案,并根据您的需求进行调整。 我可以在内部检查是否有计划版本更多与PFE初始化相关的文档,但是我无法确定会对您的案例有所帮助。 我会再联系你的
View full article
S32K3 SAR ADC の ADC 変換完了を適切に確認する方法 こんにちは。私は ADC_Sar_Ip ライブラリを使用して S32K3 シリーズ マイクロコントローラ上の SAR ADC に取り組んでおり、AUTOSAR ベースではないコードを使用しています。特定の ADC チャネルから値を読み取りたいのですが、これまでに記述したコードスニペットは次のとおりです。 uint16_t ADC_Get_Value(uint32 adc_Instance_u32,uint32 channel_Idx_u32) { uint16_t データ; Adc_Sar_Ip_StartConversion(adc_Instance_u32、ADC_SAR_IP_CONV_CHAIN_NORMAL); Adc_Sar_Ip_GetStatusFlags(adc_Instance_u32) != 35 の場合; データ = Adc_Sar_Ip_GetConvData(adc_Instance_u32、channel_Idx_u32); データを返します。 } NXP SAR ADC IP ドライバが変換を開始するための API (Adc_Sar_Ip_StartConversion) を提供していることに気付きましたが、変換の終了を確認するための API は特に見つかりませんでした。 実験的に、変換が完了すると Adc_Sar_Ip_GetStatusFlags によって返されるステータス フラグが 32 に達することが確認された。SO、while ループでこの値を使用しました。この方法は私にとってはうまく機能しますが、これが変換の完了を検出するための正しい方法または推奨される方法であるかどうかはわかりません。 私の質問は次のとおりです: S32K3 SAR ADC ドライバには、変換の終了をチェックするための公式 API がありますか? 値が 32 になるまで Adc_Sar_Ip_GetStatusFlags をポーリングするとなぜ機能するのでしょうか?この動作は保証されていますか、それとも現在のドライバのバージョンに依存しますか? API がない場合、ADC 変換の完了を処理するための推奨される方法は何ですか (ステータス フラグのポーリング、割り込みの使用、遅延の追加など)。 Re: How to Properly Check ADC Conversion Completion on S32K3 SAR ADC 当社製品にご興味をお持ちいただき、また当社コミュニティに貢献していただき、ありがとうございます。 あなたのアプローチは正しいようです。 しかし、BCTU トリガー スキームは、ADC のデフォルトかつ推奨されるハードウェア トリガー 方法です。 次のコミュニティ投稿を参照できるとのことです: S32M27x/S32K3 – eMIOS/BTCU/ADC/DMA – [RTD600] -> https://community.nxp.com/t5/S32M-Knowledge-Base/S32M27x-S32K3-eMIOS-BTCU-ADC-DMA-RTD600/ta-p/2155542 このような例では、GPIO4 は BCTU ウォーターマーク通知で切り替えられます。これは、FIFO 内のアクティブなエントリの数がウォーターマーク レベルを超えるたびに発生し、データの読み取りが可能になります。 別の方法としては、Bctu_Ip ドライバの「最後の変換通知のリスト」を使用するか、BCTU を使用していない場合は、変換の終了通知を使用できます。しかし、このモードの例はありません。 この情報が役に立つことを願います。
View full article
PFE subsystem bring up on S32G2 I am looking for a simple example of how to power up the PFE sub system and setting up the appropriate clocks. I have a driver that I have written that should work on a native A53 (no Linux).  The clocks never come up. I know that prior to me working on this logic I could not get the PFE registers to even read now they read but not everything is working and I have traced it down to this. Here is the basic code to init the subsystem (this is very fragmented and not clearly explain by NXP) so any source example would be appreciated. pfe_init(void) {     /* Enable */     /* Setup DMA coherency */     volatile uint32_t tries;     RDC.RD2_CTRL_REG.B.RD2_CTRL_UNLOCK = 1;     RDC.RD2_CTRL_REG.B.RD2_INTERCONNECT_INTERFACE_DISABLE = 0;     tries = 0;     while (RDC.RD2_STAT_REG.B.RD2_INTERCONNECT_INTERFACE_DISABLE_REQ_ACK_STAT != 0 )     {         tries++;         if (tries > MAX_TRIES)         {             break;         }     }     tries = 0;     while (RDC.RD2_STAT_REG.B.RD2_INTERCONNECT_INTERFACE_DISABLE_STAT != 0)     {         tries++;         if (tries > MAX_TRIES)         {             break;         }     }     /**((volatile unsigned int *)0x4007ca00) = 0x3f; */     S32G_GPR.PFE_COH_EN.B.DDR = true;     S32G_GPR.PFE_COH_EN.B.HIF0 = true;     S32G_GPR.PFE_COH_EN.B.HIF1 = true;     S32G_GPR.PFE_COH_EN.B.HIF2 = true;     S32G_GPR.PFE_COH_EN.B.HIF3 = true;     S32G_GPR.PFE_COH_EN.B.UTIL = true;     /* Setup EMAC modes -RGMII (ALL PFES)*/     S32G_GPR.PFE_EMACX_INTF_SEL.B.EMAC0 = 2;     S32G_GPR.PFE_EMACX_INTF_SEL.B.EMAC1 = 2;     S32G_GPR.PFE_EMACX_INTF_SEL.B.EMAC2 = 2;     /* Enable power for PFE */     S32G_GPR.PFE_PWR_CTRL.B.PWRACK = 0;     S32G_GPR.PFE_PWR_CTRL.B.PWRCLAMP = 0;     S32G_GPR.PFE_PWR_CTRL.B.PWRDWN = 0;     S32G_GPR.PFE_PWR_CTRL.B.PWRISO = 0;         S32G_GPR.GENCTRL1.B.CTRL = 1;     /* Setup & Enable the PFE Sys Clock */     /* Setup and Enable the PFE PE Clock */     S32G_GPR.LLCE_CTRL.B.EXEVENT = 0;     S32G_GPR.LLCE_CTRL.B.LINDIVSEL = 0;     S32G_GPR.LLCE_CTRL.B.LLCE_HTM0_TRC_DIS = 0;     S32G_GPR.LLCE_CTRL.B.LLCE_HTM1_TRC_DIS = 0;     S32G_GPR.LLCE_CTRL.B.LLCE_LSPI_TRIG_IN = 0;     S32G_GPR.LLCE_CTRL.B.PFE_2_LLCE_INT_HS_BP = 0;         S32G_GPR.GENCTRL1.B.CTRL = 1;     /* Setup EMAC Tx/RX clocks */     S32G_GPR.GENCTRL0.B.ACCEL_FLXNC_RD0_IDLEREQ = 0; /* normal operation */     S32G_GPR.GENCTRL0.B.ACCEL_FLXNC_REF_DIV = 0; /* Divide by 2 */     S32G_GPR.GENCTRL0.B.USBPWRFLT = 0;             tries = 0;         do {                 MC_ME.PRTN2_COFB0_CLKEN.B.REQ0 = 1;         MC_ME.PRTN2_COFB0_CLKEN.B.REQ1 = 1;         MC_ME.PRTN2_COFB0_CLKEN.B.REQ2 = 1;         MC_ME.PRTN2_COFB0_CLKEN.B.REQ3 = 1;         Write_Control_Key();         MC_ME.PRTN2_PCONF.B.OSSE = 1;         MC_ME.PRTN2_PCONF.B.PCE = 1;         MC_ME.PRTN2_PUPD.B.OSSUD = 1;         MC_ME.PRTN2_PUPD.B.PCUD = 1;                         /* Tell hardware to check above registers for changes */         Write_Control_Key();                 tries++;         if (tries > MAX_TRIES)         {             break; /* code dies here - the clocks never get enabled                       therefore it does not come out of reset */         }             } while (MC_ME.PRTN2_COFB0_STAT.R != 0xf);     /* Put PFE in reset */     MC_RGM.PRST_0[2].PRST_0.B.PERIPH_0_RST = 1;     tries = 0;     while (MC_RGM.PSTAT_0[2].PSTAT_0.B.PERIPH_0_STAT != 1)     {         tries++;         if (tries > MAX_TRIES)         {             break;         }     }         tries = 0;     do {         S32G_GPR.GENCTRL1.B.CTRL = 0;                 /* Take the PFE out of reset */         MC_RGM.PRST_0[2].PRST_0.B.PERIPH_0_RST = 0;         MC_ME.PRTN2_PCONF.B.OSSE = 1;         MC_ME.PRTN2_PCONF.B.PCE = 1;         MC_ME.PRTN2_PUPD.B.OSSUD = 1;         MC_ME.PRTN2_PUPD.B.PCUD = 1;                         /* Tell hardware to check above registers for changes */         Write_Control_Key();                 tries++;         if (tries > MAX_TRIES)         {             break;         }     } while (MC_RGM.PSTAT_0[2].PSTAT_0.B.PERIPH_0_STAT == 1);     MC_ME.PRTN2_PCONF.B.OSSE = 0;     MC_ME.PRTN2_PCONF.B.PCE = 1;     MC_ME.PRTN2_PUPD.B.OSSUD = 1;     MC_ME.PRTN2_PUPD.B.PCUD = 1;         /* Tell hardware to check above registers for changes */     Write_Control_Key();         tries = 0;     while (MC_RGM.PSTAT_0[2].PSTAT_0.B.PERIPH_0_STAT != 0)     {         tries++;         if (tries > MAX_TRIES)         {             break;         }             }     } Re: PFE subsystem bring up on S32G2 Hello @aaronbaranoff, We do not have any specific documentation regarding the  HIF and its ring buffers. To this point I have already shared all documentation regarding the PFE, there is no more documents we have on that. That said, you can check section 2.1 Network Interfaces of the LNX PFE Driver User Manual or section 11.5.2 Configuration example and 11.7 Egress QoS of the PFE FCI API Reference. Regarding the Tx and Rx of packets 'without the complexities', I'm afraid that there is no way to avoid the PFE complexities if you want to take advantage of it, if you prefer you can use the GMAC module, which is quite simpler, however you will need to handle all the operations in the main core. Re: PFE subsystem bring up on S32G2 Do you have any documnetion on HIF particularly the ring buffer structure and the registers? On a seperate not so I can get it transmitting nad recieving packets without the complexities. How do I transmit and recived via the DEBUG FIFO interface in the MTL.  Re: PFE subsystem bring up on S32G2 Hello @aaronbaranoff, I took the dump just before sending any frames, to show the PFE registers configuration. To know exactly how to send packages using PFE, I strongly recommend you check the PFE MCAL API, in particular, check the function calls starting from example_application\src\sample_app_ethswt_eth.c, in Tst_Pfe_SendDummyFrame() there is a call to the API Eth_43_PFE_Transmit(), the MCAL code includes a lot of runtime and compilation checks that may not be useful to you, you can strip the code as you require, however that is the best reference on how to use the PFE send functionality. Thanks Re: PFE subsystem bring up on S32G2 None of the registers in the Red area are NOT accessible (readback 0 always). I can’t talk to them and your PFE code does not seem to use them (otherwise I would expect them to have non-zero values), so that seems to confirm the DMA interface is missing on the instantiations of the GMACs used for the PFE. So, the only way to send raw packets out of the PFE MACs is via the Slave interface (not documented by NXP) or the Debug Interface (which the registers are documented but not the sequence). Please Help and confirm or correct my suspicions. Re: PFE subsystem bring up on S32G2 Thank you for the dump. When I compare your register settings and mine. I find you have no ring buffers or list addresses set up for any queues/channel.s How then are you sending packets? Clearly not the documented DMA interface. Is that inteface disabled on the PFE MACs? If so how do I send packets? Re: PFE subsystem bring up on S32G2 Hello @aaronbaranoff, Sorry for the late reply,  here is the complete dump for all the PFE EMAC registers, from 0x460A8000-0x460A936C, you can check it with any hex viewer. This dump was taken after finishing all initialization. Re: PFE subsystem bring up on S32G2 I noticed a diff in values with the following location. EL1N0xFFFF0000460A8800 you have a value of 0x00003FF7 the issue is that is not a documented register? What is it? Re: PFE subsystem bring up on S32G2 After stating at you PFE configuration I realized it too was not fully initilalized. You had yet to write to the list addresses (or you can't) 0x00000000 EL1N:0xFFFF0000460A9114 00000000 0x00000000 0x00000000 EL1N:0xFFFF0000460A9118 00000000 0x00000000 0x00000000 EL1N:0xFFFF0000460A911C 00000000 0x00000000 Re: PFE subsystem bring up on S32G2 I addition can you dump and compare the register settings for the ACCEL_PLL per the documention we are setting it to 600 Mhz.  Make sure the PFE_MAC_2 and the clocks are fully enabled prior to the compare.  Re: PFE subsystem bring up on S32G2 I am confused or am I missing something. Our PFE setting I believe are close enough (MAC addresses, and other non-critical settings). But our CGM_2 settings are way off. Maybe the differs were captured on your side were before they were setup. For PFE_MAC2 according to the documention (see images below). CGM_2 Mux 0 needs to be set to 33 ACCEL_PLL_PH1_CLK (That we match) CGM2 Mux 3 needs to be set to PERIPH_PLL_PHI5_CLK (I have that set but you are pointing to FIRC_CLK)  CGM2 Mux 6 needs to be set to PFE_MAC2_RX_CLK(I have that set but you are pointing to FIRC_CLK)  Re: PFE subsystem bring up on S32G2 Hello @aaronbaranoff, Here are the differences I found, same format as last time. For the MC_CGM_2 I stopped the program in the same line as last time, for the PFE_EMAC I stopped here: Let me know if the behavior is different after the changes.  Re: PFE subsystem bring up on S32G2 One more data point. I even tried putting the PFE_MAC2 in loopback (via the MAC_CONFIGURATION) register bit 12.  Still can't talk to those DMA related registers.  Re: PFE subsystem bring up on S32G2 Hello @aaronbaranoff, Thanks for the information, Please allow me some time to check those registers. I will get back to you as soon as possible Re: PFE subsystem bring up on S32G2 Could you also compare my MC_CGM_2 registers to yours. I Think there is some clock that is missing and since all the PFE clocks are in that section.  Re: PFE subsystem bring up on S32G2 Also DMA_SysBus_Mode (failed readback). It is like an internal clock is not configured. But, I have not way of checking that since the PRTN2_COFB0_STAT always reports 0. Re: PFE subsystem bring up on S32G2 Here is the registers just prior to me not being able to successfully write to DMA_CH0_RxDesc_Ring_Length and to DMA_CH0_RxDesc_List_Address. When I write to them and read back the value it reads back 0 even though I write a valid address. I however can sucessfuly get the link status, write and readback registers like the MAC address.  This code is virtually identical to the code we are sucessfully using control the GMAC. But, on the PFE_MAC2 it does not allow use to read and write to certain registers. (mostly DMA related). In addition to the register comparison. Are the any other things outside of the PFE_MAC2 needed to enable its DMA (addition clocks or resets)?  So in my code. I added checks and the following fail. DMA_CH0_TxDesc_List_Address  (failed readback) DMA_CH0_TxDesc_Ring_Length  (failed readback) DMA_CH0_RxDesc_List_Address  (failed readback) DMA_CH0_RxDesc_Ring_Length  (failed readback) MTL_TxQ0_Operation_Mode (is correct value but I can’t modify it) MTL_RxQ0_Operation_Mode (is correct value but I can’t modify it) MAC_RxQ_Ctrl0 (does not allow accept the write values) Re: PFE subsystem bring up on S32G2 Hello @aaronbaranoff, You mean the registers in the PFE EMAC correct? this is, the same registers described in the GMAC reference manual. If so, can you share a dump of all the registers, so that I can compare them with the registers state of the demo app just before sending. Thanks in advance.  Re: PFE subsystem bring up on S32G2 It behaves as if the internal clocks are not correct. But since the Subsystem bug does not let us read the status it is hard to tell. I have verified the PIn Mux is setup to the correct pins and the clocks look like they are setup correctly.  Re: PFE subsystem bring up on S32G2 Thank you for the diffs. The only surprise was the CLKENs for the blocks inside the PFE were not set in the code you. Is that a known issue? I guess it is ignored or not needed.  0x0000000F EL1N:0x0000000040088530 00000000 0x00000000 X OK, my PFE GMAC has come out of reset and I have valid link status. However, I have one more issue. All the registers outside of the DMA read and write, I can see our writes written as expected. But the DMA ones (TX or RX) seemed to allow us to write (no errors) but the value does not stick (it reads back 0). Is there something else that I am missing. It is like there is an extra external step I need to get the PFE GMAC to come to life that is not documented. Re: PFE subsystem bring up on S32G2 Hello @aaronbaranoff, Sorry for such a delay in my reply. I was finally able to obtain the differences in the registers just before configuring the  PRTN2_COFB0_CLKEN register, you can find them in the xlsx file attached, you will find the differences marked with a red "X", each register dump is in a different page. My registers were taken in this context: Re: PFE subsystem bring up on S32G2 Hello @aaronbaranoff,  Thanks for all the info. I tried testing the PFE Demo application, however with the S32 Debug Probe I have encountered some problems that lead to a hard fault. I will need to test this with a Lauterbach debugger, as suggested in the description the demo app. However, I do not have one with me at this exact time, I will need to get one next week and perform the tests. Regards the call, me and my team do not handle calls with customer, moreover, it usually takes me quite some time to find relevant information for a reply. Sorry for the delay on the relevant reply. Re: PFE subsystem bring up on S32G2 What time zone are you in maybe when can work interactively. Re: PFE subsystem bring up on S32G2 Also added S32G_GPR Re: PFE subsystem bring up on S32G2 Attached are the registers dumbs (in excel from the debugger) Re: PFE subsystem bring up on S32G2 Hello @aaronbaranoff, As mentioned, it seems that the fact that MC_ME.PRTN2_COFB0_STAT.R is 0 is a know issue with only a workaround for now, skipping the check. The next thing I can think of to find the root cause is to compare your registers to mine, Please send a register dump of the MC_ME whole register rage, just before configuring PRTN2_COFB0_STAT, that way I can compare it to one of the available examples. Thanks Re: PFE subsystem bring up on S32G2 I even tried pushing this to the very early stages in the bootloader and had the same results.  MC_ME.PRTN2_COFB0_STAT.R is 0 (it should 0xf)... WHY?!? Re: PFE subsystem bring up on S32G2 Still no luck. PFE Partition does not fully initialize. The block clocks do not enable. There is no clear documentation on the expected sequence. The turn-on process is in Figure 148 of the S32G2 Reference Manual but it does not mention the block clocks (PRTN2_COFB0_STAT or PRTN2_COFB0_CLKEN). I am hoping some other user who has had luck with this can post an example bit of code. It comes out of reset and the PCS flag says the clocks are enabled but the block clocks don't get enabled but, not clue as to why. I even trying taking the exterenal clocks out of the picture. by using the FIRC.  After setting up (PFE_MACx_RX_CLK, PFE_MACx_TX_CLK, PFE_PE_CLK) to used the default FIRC. PFE partition still comes out of reset but the block clocks being enabled is ignored. I have tried that moving the block clock enable before and after the rest of the is PFE partition out of reset also no impact. I have tried in EL1 and EL3 modes. I have even trying ignoring the PRTN2_COFB0_STAT regardless of my attempts to enable via  PRTN2_COFB0_CLKEN REQs if I ignore the status that then I can read the PFE registers but writing to some registers fail and the behavior is not correct. See Table 195.  I am using the RDB2 board (untill our board is ready) but have not had any luck.  Re: PFE subsystem bring up on S32G2 Hello @aaronbaranoff, Can you elaborate on this statement?  "but the block level clocks do not enable. If I ignore the status the behavior is that I don't get link status although I can read many of the PFE GMAC registers when I write to the DMA registers the values don't stick." I have checked the documentation and just as you, I did not see anything specific considering EL3 vs EL0, however, I would recommend using EL0 to avoid any issue accessing the memory regions.  Re: PFE subsystem bring up on S32G2 I have replicated NXP's code but added checking. The PFE subsystem comes out of reset but the block level clocks do not enable. If I ignore the status the behavior is that I don't get link status although I can read many of the PFE GMAC registers when I write to the DMA registers the values don't stick. I believe that the status is a clue but get NO insight as to why. I have enabled the clocks and the pin mux prior to the PFE init. Are there any other rules about being in EL1 vs EL3 mode or similiar I don't see any in the documention. Re: PFE subsystem bring up on S32G2 Hello @aaronbaranoff, Thanks for the reference on the AUTOSAR driver bug, I checked internally the change related to that bug fix, the function that got changed is Power_Ip_MC_ME_ConfigureCOFB(), you can see the final implementation in the RTD 5.0.0 QLP3. For what I understand, the problem is not in the writing part of the process, but when reading to verify, you will see in the function that when POWER_IP_MC_ME_PRTN2_COFB0_STAT_RESERVED is defined ad STD_ON the validation for PartitionIndex is skipped. Checking the configuration files for any S32G you will see POWER_IP_MC_ME_PRTN2_COFB0_STAT_RESERVED is true, for example: Resource_TS_T40D11M50I0R0\resource\CORTEXM_S32G2XXM7_s32g274a_bga525.properties: what I understand is that there is a known issue with that register validation and for now skipping it is the know workaround. Re: PFE subsystem bring up on S32G2 Even the AUTOSAR code reports issues with similar things but no solution or clarity. Re: PFE subsystem bring up on S32G2 What I am asking is not driver specific. This is a simple register (reference manual) question. I am trying to get Blocks 0-3 to have their clocks enabled in PRTN2_COFB0_STAT.  Even if I wanted to use your driver per 47.4 I need to (Enable PFE COFB clocks in MC_ME as described in the "MC_ME partition 2 mapping" section in this document.) This is basic sequence but it does not work and the datasheet does not give any insight as to anything else that is needed. The partition comes out of reset and Figure 148 in the Reference Manual does not cover enabling the block clocks inside the partition.  MC_ME.PRTN2_COFB0_CLKEN.B.REQ0 = 1; MC_ME.PRTN2_COFB0_CLKEN.B.REQ1 = 1; MC_ME.PRTN2_COFB0_CLKEN.B.REQ2 = 1; MC_ME.PRTN2_COFB0_CLKEN.B.REQ3 = 1; MC_ME.PRTN2_PCONF.B.OSSE = 1; MC_ME.PRTN2_PUPD.B.OSSUD = 1; MC_ME.PRTN2_PCONF.B.PCE = 1; MC_ME.PRTN2_PUPD.B.PCUD = 1; /* Tell hardware to check above registers for changes */ Write_Control_Key(); After this I read PRTN2_COFB0_STAT but the status never shows the clocks enabled.  Re: PFE subsystem bring up on S32G2 Hello @aaronbaranoff, Thanks for reaching out to us again. At the movement I cannot share any resource that I have not shared before, for instance, the reference manual, FCI API documentation and code or code samples. Since the SW support for the A53 is very focused on Linux and the PFE being such a complicated module, I cannot offer you much support by looking at your program, I can suggest the same I always do, to check the already offered implementations and adapt them to your needs. I can check internally if there is any plan to release more documents related to the PFE initialization, however I cannot ensure there will be anything helpful for your case. I will get back to you
View full article
如何正确检查 S32K3 SAR ADC 的 ADC 转换完成情况 你好,我正在使用 S32K3 系列微控制器上的 SAR ADC 和 ADC_Sar_Ip 库,我打算使用非自动雷达代码。我想从一个特定的 ADC 通道读取一个值,以下是我目前编写的代码片段: uint16_t ADC_Get_Value(uint32 adc_Instance_u32,uint32 channel_Idx_u32) { uint16_t data; Adc_Sar_Ip_StartConversion(adc_Instance_u32, ADC_SAR_IP_CONV_CHAIN_NORMAL); while (Adc_Sar_Ip_GetStatusFlags(adc_Instance_u32) != 35); data = Adc_Sar_Ip_GetConvData(adc_Instance_u32, channel_Idx_u32); return data; } 我注意到恩智浦 SAR ADC IP 驱动程序提供了启动转换的 API(Adc_Sar_Ip_StartConversion),但我找不到专门用于检查转换结束的 API。 通过实验,我发现当转换完成时,Adc_Sar_Ip_GetStatusFlags 返回的状态标志会达到 32,因此我在 while 循环中使用了这个值。使用这种方法对我来说很有效,但我不确定这是否是检测转换完成的正确或推荐方法。 我的问题是 S32K3 SAR ADC 驱动程序中是否有检查转换结束的官方 API? 为什么在值变成 32 之前轮询 adc_sar_ip_getStatusFlags 起作用?这种行为是有保证的,还是取决于当前的驱动程序版本? 如果没有 API,那么处理 ADC 转换完成的推荐方法是什么:轮询状态标志、使用中断或增加延迟? Re: How to Properly Check ADC Conversion Completion on S32K3 SAR ADC 感谢您关注我们的产品并为我们的社区做出贡献。 你的方法似乎是正确的。 但是,BCTU 触发方案是 ADC 的默认和建议硬件触发方法。 说您可以参考以下社区帖子: S32M27x/S32K3 - eMIOS/BTCU/ADC/DMA - [RTD600]-> https://community.nxp.com/t5/S32M-Knowledge-Base/S32M27x-S32K3-eMIOS-BTCU-ADC-DMA-RTD600/ta-p/2155542 在此示例中,每当 FIFO 中的有效条目数超过水印水平时,GPIO4 就会在 BCTU 水印通知中切换,因此数据可供读取。 另一种方法是使用 Bctu_Ip 驱动程序中的"List last conversion notification" ,如果不使用 BCTU,也可以使用转换结束通知。但这种模式并没有范例。 希望这些信息对您有所帮助。
View full article
有些 Udisk 无法在 MCIMX6ULL-EVK 评估板中枚举 我们有两个 128GB 和 64GB 的 Udisk。两者都可以在 MX8MP-EVK 评估板中列出。64GB 可以在 MCIMX6ULL-EVK 评估板中列出,但是 64GB 不能。 恩智浦在 MCIMX6ULL-EVK 评估板中的两个演示固件 L4.1.15_2.0.0 和 L5.4.24-2.1.0_images_mx6UL7D 都可以重现这个问题。 以下是 MCIMX6ULL-EVK 评估板上的测试日志: 恩智浦 i.MX 版本 5.4-zeus imx6ul7d ttymxc0 imx6ul7d 登录: root 最后登录Thu May 28 16:05:12 UTC 2020 on tty7 root@imx6ul7d:~# root@imx6ul7d:~# root@imx6ul7d:~# 尝试 64GB udisk,但总是失败 -sh: change: command not found root @imx6ul7d:~# ro ot @imx6ul7d:~# root @imx6ul7d:~#[33.127440] VSD_3V3:禁用 [33.130571] can-3v3:禁用 [33.977402] usb 1-1:使用 ci_ hdrc [34.030526] usb 1-1:找到了新 USB 设备,idvendor=346D,idProduct=567 8,bProduct=5678 CDDevice= 3.20 [34.038928] usb 1-1:新 USB 设备字符串:Mfr=1,产品 = 2,序列号 = 3 [34.046215] usb 1-1:产品:磁盘 20 [34.056 993] usb 1-1: 制造商:USB[34.064009] usb 1-1:序列号:FC31114725D35 [34.081397] usb-storage 1-1:1.0:检测到 USB 大容量存储设备 [34.105046] sc si host0:usb-storage 1-1:1.0 [35.129674] scsi 0:0:0:0:直接访问供应商产品代码 3.20 PQ:0 ANSI:4 [35.154632] sd 0:0:0:0:[sda] 122880000 512 字节逻辑块:(62.9 GB/58.6 GiB) [35.170574] sd 0:0:0:[sda] 122880000 512 字节逻辑块:(62.9 GB/58.6 GiB) [35.170574] sd 0:0:0:[sda] 122880000] 写入保护已关闭 [35. 190603] sd 0:0:0:0:[sda] 未找到缓存模式页面 [35.195948] sd 0:0:0:[sda] 假设驱动器缓存:通过 [35.236559] 写入 sda:sda1 [35.252883] sd 0:0:0:0:[sda] 连接的 SCSI 可移动磁盘 [35.2739 42] usb 1-1:断开 USB 连接,设备编号 2 [35.284399] sd 0:0:0:0:[sda] 标签 #0 失败结果:hostByte=did_Error driverbyte=driver_OK [35.292811] sd 0:0:0:[sda] 标签 #0 CDB:读取 (10) 28 00 07 52 ff 80 00 00 08 00 [35.300184] blk_update_request:I/O 错误,dev sda,扇区 122879872 op 0x0 😞 READ) 标志 0x80700 phys_seg 1 pri o class 0 [35.320469] scsi 0:0:0:0:[sda] 标签 #0 失败结果:hostByte=did_Error driverByte=driver_OK [35.329034] scsi 0:0:0:0:[sda] da] 标签 #0 CDB:阅读 (10) 28 00 07 52 ff 80 00 00 00 08 00 [35.336534] blk_update_request:I/O 错误,dev sda,扇区 122879872 op 0x0 😞 读取) 标志 0x0 prio class 0 [35 .347154] dev sda 出现缓冲区 I/O 错误,逻辑块 15359984,异步页面读取 [35.727532] usb 1-1:使用 ci_3 的新高速 USB 设备 3 hdrc [46.307351] usb 1-1:设备不接受地址 3,错误 -110 [46.457428] usb 1-1:使用 ci_hdrc [51.967329] usb 1-1:设备不接受地址 4,错误 -71 [51.973421] ] usb usb1-port1:尝试重启电源 [52.467402] usb 1-1:使用 ci_hdrc [52.637376] usb 1-1:设备无响应,设备描述符读取/64,错误 -71 [57.927378] usb 1-1:设备无响应,设备描述符读取/64 ,错误 -71 [58.197409] usb 1-1:使用 ci_hdrc [58.367365] usb 1-1:设备无响应,设备描述符读取/6 4,错误 -71 [63.687362] usb 1-1:设备无响应,设备描述符读取/64,错误 -71 [63.807378] usb usb1-port1:无法枚举 USB 设备 root @imx6ul7d:~# root @imx6ul7d:~# root @imx6ul7d:~# root @imx6ul7d:~# root @imx6ul7d:~#[76.317394] usb 1-1:使用 ci_hdrc [76.370177] usb 1-1:找到新的 USB 设备,idvendor=346D,idProduct=5678,bcdDevice= 3.20 [76.378577] usb 1-1:新 USB 设备字符串:Mfr=1,产品 = 2,序列号 = 3 [76.385854] usb 1-1:产品:磁盘 20 [76.3970 14] usb 1-1:制造商:USB [76.403918] usb 1-1:制造商:USB [76.403918] USB 1-1: 序列号:FC31114725D35[76.422972] usb-storage 1-1:1.0:检测到 USB 大容量存储设备 [76.445697] scsi host0:usb-storage 1-1:1.0 [77.529821] scsi 0:0:0:直接访问供应商产品代码 3.20 PQ:0 ANSI:4 [77.554400] sd 0:0:0:0:[sda] 122880000 512 字节逻辑块:(62.9 GB/58.6 GiB)[77.570541] sd 0:0:0:[sda] 写入保护已关闭 [77.587488] sd 0:0:0:0:[sda] 未找到缓存模式页面 [77.592898] sd 0:0:0:[sda] 假设驱动器缓存:通过 [77.648590] sd 0:0:0 写入 sda:sda 1 [77.662782] sd 0:0:0:0:[sda] 附加 SC S SI 可移动磁盘[77. 683719] usb 1-1:断开 USB 连接, 设备编号 7[77.694214] sd 0:0:0:0:[sda] 标签 #0 失败结果:hostByte=did_error driverbyte=driver_OK [77.702615] sd 0:0:0:[sda] 标签 #0 CDB:阅读 (10) 28 00 07 52 ff 80 00 00 08 00 [77.709992] blk_update_request:I/O 错误,开发人员,扇区 122879872 op 0x0 😞 读取) 标志 0x80700 phys_seg 1 pri o class 0 [77.730370] scsi 0:0:0:0:[sda] 标签 #0 失败结果:hostByte=did_Error driverByte=driver_OK [77.738932] scsi 0:0:0:0:[sda] 标签 #0 CDB:阅读 (10) 28 00 07 52 ff 80 00 00 00 08 00[77.746434] blk_update_request:I/O 错误,dev sda,扇区 122879872 op 0x0 😞 读取) 标志 0x0 prio class 0 [77.757035] dev sda 出现缓冲区 I/O 错误,逻辑块 15359984,异步页面读取 [78.147306] usb 1-1:使用 ci_8 的新高速 USB 设备编号 8 h drc [86.837348] usb 1-1:设备不接受地址 8,错误 -71 [87.947309] usb 1-1:使用 ci_hdrc [88.397411] usb 1-1:设备 不接受地址 9,错误 -71 [8 8.403501] usb usb1-port1 :尝试重启电源 root @imx6ul7d:~# root @imx6ul7d:~# ro ot @imx6ul7d:~# root @imx6ul7d:~# root @imx6ul7d:~# root @imx6ul7d:~# root @imx6ul7d:~# roo t @imx6ul7d:~# 更改 128GB udisk,总是成功的 -sh:更改:找不到命令 @imx6ul7d:~# ro ot @imx6ul7d:~# root @imx6ul7d: ~# root:~#[134.957400] usb 1- 1: 使用 ci 的新高速 USB 设备编号 11 _hdrc [135.010205] usb 1-1: 全新 USB @imx6ul7d 设备已找到,idvendor=346D,idProduct=5678,bcdDevice= 3.20[135.018605] usb 1-1:新 USB 设备字符串:Mfr=1,产品=2,序列号=3 [135.025887] usb 1-1:产品:磁盘 20 [135.037000] usb 1-1:制造商:USB [135.043977] usb 1-1:序列号:FC2900B1485C4 [135.062849] usb-storage 1-1:1.0:检测到 USB 大容量存储设备 [135.085469] scsi ho st0:usb-storage 1-1: 1. 0 [136.169604] scsi 0:0:0:直接访问供应商产品代码 3.20 PQ:0 ANSI:4 [136.194433] sd 0:0:0:0:[sda] 245760000 512 字节逻辑块:(126 GB/117 GiB) [136.210578] sd 0:0:0:[sda] 写入保护已关闭 [136.22784 8] sd 0:0:0:0:[sda] 未找到缓存模式页面 [136.233 272] sd 0:0:0:[sda] 假设驱动器缓存:通过 [136.289093] 写入 sda:sda1 [136.310555] sd 0:0:0:0:[sda] 已连接 SCSI 可拆卸磁盘 [138. 115645] ext4-FS (sda1) :已挂载 采用有序数据模式的文件系统。选项:(空) root @imx6ul7d:~# root @imx6ul7d:~# root @imx6ul7d:~# root @imx6ul7d:~# df 文件系统 1K 块已使用百分比安装在 /dev/ root 上 1215192 746488 387904 66%/devtmpfs 168088 4 168084 1% /dev tmpfs 250520 0 0% /d ev/shm tmpfs 250520 8972 241548 4% /run tmpfs 250520 250520 0% /run tmpfs 250520 8972 241548 4% /run tmpfs 250520 250520 0% /run tmp0 250520 0% /sys/fs/cgrou p tmpfs 250520 4 250516 1% /tmp tmpfs 250520 148 250372 1% /var/valitle /dev /mmcblk1p 1 27 130 10722 16408 40% /run/media/mmcblk1p1 tmpfs 50104 4 50100 1% /run/user/0/ dev/sda1 120819424 61452 114592 1% /run/media/sda1 root @imx6ul7d:~# [161.140099] usb 1-1:USB 1-1:USB 断开连接,设备编号 11 [164.677402] usb 1-1:全新使用 ci_hdrc [164.730130] usb 1-1 的编号 12 的高速 USB 设备:找到了新的 USB 设备,idvendor=346D,idProduct=5 678,bcdDevice= 3.20 [164.738530] usb 1-1:新 USB 设备字符串:Mfr=1,产品=2,序列号 =3[16 4.745816] us b 1-1: 产品:磁盘 20[164.756858] usb 1-1:制造商:USB [164.763932] usb 1-1:序列号:FC2900B1485C4 [164.790406] us b-storage 1-1:1.0:检测到 USB 大容量存储设备 [164.822090] scsi host0: usb-存储 1-1:1.0 [165.849535] scsi 0:0:0:直接访问供应商产品代码 3.20 PQ:0 ANSI:4 [165.874608] sd 0:0:0:0:[sda] 245760000 512 字节逻辑块:(126 GB/117 GiB) [165.887981] sd 0:0:0:[sda] 245760000 512 字节逻辑块:(126 GB/117 GiB) [165.887981] sd 0:0:0:[sda] 写入保护已关闭 [165.907494] sd 0:0:0:0:[sda] 未找到缓存模式页面 [165.912 845] sd 0:0:0:[sda] 假设驱动器缓存:通过 [165.958829] 写入 sda:sda1 [165.979338] sd 0:0:0:0:[sda] 连接的 S CSI 可移动磁盘 [16 7.820051] ext4-FS (sda1):已安装 采用有序数据模式的文件系统。选项:(空) root @imx6ul7d:~# root @imx6ul7d:~# root @imx6ul7d:~#[178.797249] usb 1-1:USB 断开连接,设备编号 12 root @imx6ul7d:~# root @imx6ul7d:~# roo t @imx6ul7d:~# root @imx6ul7d:~# root @imx6ul7d:~# 重试 64GB udisk,总是失败 -sh:更改:找不到命令 ro ot @imx6ul7d:~# root @imx6ul7d:~# root @imx6ul7d:~# [206.277395] usb 1-1: 使用 ci_hdrc [206. 330256] usb 1-1:找到新 USB 设备,idvendor=346D,idProduct=5678,bcdDevice= 3.20 [206.338667] usb 1-1:新 USB 设备字符串: Mfr=1,产品 = 2,序列号 = 3[206.345948] usb 1-1:产品:磁盘 20 [206.356882] usb 1-1:制造商:USB[206.363925] usb 1-1:序列号:FC31114725D35 [206.381244] usb-存储 1-1:1.0:检测到 US B 大容量存储设备 [206.403761] scsi 主机 0:usb-存储 1-1: 1. 0 [207.449663] scsi 0:0:0:0:直接访问供应商产品代码 3.20 PQ:0 ANSI:4 [207.474740] sd 0:0:0:0:0:[sda] 122880000 512 字节逻辑块:(62.9 GB/58.6 GiB) [207.487973] sd 0:0:0: 0:[sda] 122880000 512 字节逻辑块:(62.9 GB/58.6 GiB) [207. 487973] sd 0:0:0:[s da] 写入保护已关闭 [207.510688] sd 0:0:0:0:[sda] 未找到缓存模式页面 [207.516111] sd 0:0:0:[sda] 假设驱动器缓存:通过 [207.558710] 写入 sda:sda1 [207.579364] sd 0:0:0:0:[sda] 附加 S CSI 可移动磁盘[20 7.596929] usb 1-1:USB 断开连接,设备编号 13[207.602671] sd 0:0:0:[sda] 标签 #0 失败结果:hostByte=did_error driverbyte=driver_OK [207.611076] sd 0:0:0:[sda] 标签 #0 CDB:读取 (10) 28 00 07 52 ff 80 00 00 00 08 00 [207.618463] blk_update63 _request:I/O 错误,开发人员,扇区 122879872 op 0x0 😞 读取) 标志 0x80700 phys_seg 1 pri o class 0 [207.643260] scsi 0:0:0:0:[sda] 标签 #0 失败结果:hostByte=did_Error driverByte=driver_OK [207.651824] scsi 0:0:0:0:0:0:0:[sda] 标签 #0 CDB:阅读 (10) 28 00 07 52 ff 80 00 00 08 00[207.659379] blk_update_request:I/O 错误,dev sda,扇区 122879872 op 0x0 😞 读取) 标志 0x0 prio class 0[207.669949] dev sda 出现缓冲 I/O 错误,逻辑块 15359984,异步页面读取 [208.067342] usb 1-1:使用的新高速 USB 设备编号 14 ci_h drc root @imx6ul7d:~# root @imx6ul7d:~# root @imx6ul7d:~# roo t @imx6ul7d:~#[218.627329] usb 1-1:设备不接受地址 14,错误 -110 [218.777517] usb 1-1: 使用 ci_hdrc [224.287335] usb 1-1:设备不接受地址 15,错误 -71 [224.293525] usb usb1-port1:尝试重启电源 [224.787394] usb 1-1:使用 ci_hdrc[224.957376] usb 1- 1:设备无 响应,设备 描述符读取/64,错误 -71[230.247424] usb 1-1:设备无响应,设备描述符读取/64,错误 -71 [230.517415] usb 1-1:使用 ci_hdrc [230.687 412] usb 1-1:设备无响应,设备描述符读取/64,错误 -71 [236.007405] usb 1-1:设备无响应,设备描述符读取/64,错误- 71 [236.127474] usb usb 1-port1:无法枚举 USB 设备 root @imx6ul7d:~# root @imx6ul7d:~# root @imx6ul7d:~# root @imx6ul7d:~#[1177.397394] usb 1-1: 使用 ci_hdrc [1177.450285] usb 1-1:找到了新的 USB 设备,idvendor=346D,idProduct=5678,bcdDevice= 3.20 [1177.458688] usb 1-1:新的 USB 设备字符串:Mvendor=346D,idProduct=5678,bcdDevice= 3.20 [1177.458688] usb 1-1:新 USB 设备字符串:Mvendor=346D,idProduct=fr=1,产品=2,序列号 =3 [1177.465961] usb 1-1:产品:磁盘 20[1177.476789] usb 1-1:制造商:USB [1177.483826] usb 1-1: 序列号:FC31114725D35[1177.503847] usb-storage 1-1:1.0:检测到 USB 大容量存储设备[ 1177.525431] scsi host0:usb -storage 1-1:1.0 [1178.569560] scsi 0:0:0:0:直接访问供应商产品代码 3.20 PQ:0 ANSI:4 [1178.595649] sd 0:0:0:0:[sda] 122880000 512 字节逻辑块:(62.9 GB/58.6 GiB) [1178.612255] sd 0:0:0:[sda] 122880000 512 字节逻辑块:(62.9 GB/58.6 GiB) [1178.612 255] sd 0:0:0:[sda] 122880000] 写入保护已关闭 [1178.634376] sd 0:0:0:0:[sda] 未找到缓存模式页面 [1178.639860] sd 0:0:0:[sda] 假设驱动器缓存:通过 [1178.667061] 写入 sda:sda1 [1178.683380] sd 0:0:0:0:[sda] 已连接 S CSI 可拆卸磁盘 [1178.70 4463] usb 1-1:USB 断开连接,设备编号 18 [1178.713191] sd 0:0:0:[sda] 标签 #0 失败结果:hostByte=did_error driverbyte=driver_OK [1178.721585] sd 0:0:0:[sda] 标签 #0 CDB:读取 (10) 28 00 07 52 ff 80 00 00 00 08 00 [1178.728953] blk_update53 _request:I/O 错误,开发人员,扇区 122879872 op 0x0 😞 READ) 标志 0x80700 phys_seg 1 pri o class 0 [1178.753859] scsi 0:0:0:0:0:[sda] 标签 #0 失败结果:hostByte=did_Error driverByte=driver_OK [1178.762423] scsi 0:0:0:0:0:[sda] 标签 #0 CDB:阅读 (10) 28 00 07 52 ff 80 00 00 08 00 [1178.769993] blk_update_request:I/O 错误、dev sda、扇区 122879872 op 0x0 😞 读取) 标志 0x0 prio class 0 [1178.780566] dev sda 出现缓冲区 I/O 错误,逻辑块 15359984,异步页面读取 [1179.167312] usb 1-1:新高速 USB 设备编号 19 使用 ci_hdrc [1179.747351] usb 1-1:设备不接受地址 19,错误 -71 [1231.457317] usb 1-1:使用 ci_hdr c [1231.509890 ] usb 1-1:找到新 USB 设备,id vendor= 346d,idProduct=5678,bcdDevice= 3.20 [1231.518295] usb 1-1:新 USB 设备字符串:Mfr=1,产品 = 2,序列号 = 3 [1231.525582] usb 1-1:产品:磁盘 20 [1231.536329] usb 1-1:制造商:USB [123 1.543336] usb 1-1: 序列号:FC31114725D35 [1231.561890] usb-storage 1-1:1.0:检测到 USB 大容量存储设备 [1231.584731] scsi host0:usb-storage 1-1:1.0 [1232.649677] scsi 0:0:0:直接访问供应商产品代码 3.20 PQ:0 ANSI:4 [1232.674366] sd 0:0:0:0:[sda] 122880000 512 字节逻辑块:(62.9 GB/58.6 GiB)[1232.687983] sd 0:0:0:0:[sda] 写入保护已关闭 [1232.710654] sd 0:0:0:0:0:[sda] 未找到缓存模式页面 [1232.716076] sd 0:0:0:[sda] 假设驱动器缓存:通过 [1232.768537] sd 0:0:0 写入 sda:sda 1 [1232.790606] sd 0:0:0:0:[sda] 已附上 SCSI 可移动磁盘 [1232.809177] usb 1-1:USB 断开连接,设备编号 21[1232.820341] sd 0:0:0:[sda] 标签 #0 失败结果:hostByte=did_error driverbyte=driver_OK [1232.828769] sd 0:0:0:[sda] 标签 #0 CDB:读取 (10) 28 00 07 52 ff 80 00 00 08 00 [1232.836102] blk_102 update_request:I/O 错误,dev sda,扇区 122879872 op 0x0 😞 读取) 标志 0x80700 phys_seg 1 pri o class 0 [1232.858688] scsi 0:0:0:0:0:0:0:0:0:0:0:0 0: [sda] 标签 #0 CDB:阅读 (10) 28 00 07 52 ff 80 #0 00 00 08 00[1232.874768] blk_update_request:I/O 错误,开发人员,扇区 122879872 op 0x0 😞 读取) 标志 0x0 phys_seg 1 prio class 0 [12 32.885360] dev sda 出现缓冲区 I/O 错误,逻辑块 15359984,异步页面读取 [1233.277349] usb 1-1:使用的新高速 USB 设备编号 22 ci_h drc root @imx6ul7d:~# root @imx6ul7d:~# root @imx6ul7d:~# df 文件系统 1K 个区块已使用百分比安装在 /dev/ root 1215192 746488 387904 66%/devtmpfs 168088 4 168084 1% /dev tmpfs 250520 0 250520 0 0% /dev/shm tmpfs 250520 241568 4% /run tmpfs 250520 0 250520 0% /run tmpfs 250520 0 250520 0% sys/fs/cgrou p tmpfs 250520 4 250516 1% /tmp tmp fs 250520 184 250336 1% /var/var/volatile /dev/mmcblk1p1 27130 107 22 16408 40% /run/ mmcblk1 p1 tmpfs 50104 4 50100 1% /run/user/0 root @imx6ul7d:~# [1243.827330] us b 1-1:设备不接受地址 22,错误 -110 [1243.977433] usb 1-1:使用 ci_hdrc 的新高速 USB 设备 编号 23 root @imx6ul7d:~# [1249.487330] usb 1-1:设备不接受地址 23,错误 -71 [1249.493511] usb usb1-port1:尝试重启电源 [1249.987 411] usb 1-1:使用 ci_hdrc [1250.157372] usb 1-1: 设备无响应,设备描述符读取/64,错误 -71 [1255.372]] usb 1-1:设备无响应,设备描述符读取/64,错误 -71 [1255.717429] usb 1-1:使用 ci_hdrc [1255.887415] usb 1-1:使用 ci_hdrc[1255. 887415] usb 1-1:设备 编号 响应,设备描述符读取/64,错误 -71[1261.207667] usb 1-1:设备无响应,设备描述符读取/64,错误 -71 [1261.327356] usb usb1-port1:无法枚举 USB 设备 除 Udisk 外,硬件和软件均来自恩智浦。造成这一问题的根本原因是什么? i.MX6UL Re: Some Udisks fail to be enumerated in the MCIMX6ULL-EVK evaluation board 问题的根本原因是这款 64GB Udisk 无法向后兼容 USB 2.0。 Re: Some Udisks fail to be enumerated in the MCIMX6ULL-EVK evaluation board 更正错字:128GB 的 Udisk 可以在 MCIMX6ULL-EVK 评估板中枚举,而 64GB 的 Udisk 不能。   其他信息: 上述两款 Thinkplus Udisk 均为 联想品牌产品。如下图所示:
View full article
Some Udisks fail to be enumerated in the MCIMX6ULL-EVK evaluation board We have two Udisks with 128GB and 64GB. Both two can be enumerated in the MX8MP-EVK evaluation board. The 64GB can be  enumerated in MCIMX6ULL-EVK evaluation board, but the 64GB not. Both of NXP's demo firmwares L4.1.15_2.0.0 and L5.4.24-2.1.0_images_MX6UL7D in MCIMX6ULL-EVK evaluation board can reproduce this issue. The following is the test log on the MCIMX6ULL-EVK Evaluation Board: NXP i.MX Release Distro 5.4-zeus imx6ul7d ttymxc0 imx6ul7d login: root Last login: Thu May 28 16:05:12 UTC 2020 on tty7 root@imx6ul7d:~# root@imx6ul7d:~# root@imx6ul7d:~# try 64gb udisk, awlays fail -sh: change: command not found root@imx6ul7d:~# root@imx6ul7d:~# root@imx6ul7d:~# [ 33.127440] VSD_3V3: disabling [ 33.130571] can-3v3: disabling [ 33.977402] usb 1-1: new high-speed USB device number 2 using ci_hdrc [ 34.030526] usb 1-1: New USB device found, idVendor=346d, idProduct=5678, bcdDevice= 3.20 [ 34.038928] usb 1-1: New USB device strings: Mfr=1, Product=2, SerialNumber=3 [ 34.046215] usb 1-1: Product: Disk 20 [ 34.056993] usb 1-1: Manufacturer: USB [ 34.064009] usb 1-1: SerialNumber: FC31114725D35 [ 34.081397] usb-storage 1-1:1.0: USB Mass Storage device detected [ 34.105046] scsi host0: usb-storage 1-1:1.0 [ 35.129674] scsi 0:0:0:0: Direct-Access VendorC ProductCode 3.20 PQ: 0 ANSI: 4 [ 35.154632] sd 0:0:0:0: [sda] 122880000 512-byte logical blocks: (62.9 GB/58.6 GiB) [ 35.170574] sd 0:0:0:0: [sda] Write Protect is off [ 35.190603] sd 0:0:0:0: [sda] No Caching mode page found [ 35.195948] sd 0:0:0:0: [sda] Assuming drive cache: write through [ 35.236559] sda: sda1 [ 35.252883] sd 0:0:0:0: [sda] Attached SCSI removable disk [ 35.273942] usb 1-1: USB disconnect, device number 2 [ 35.284399] sd 0:0:0:0: [sda] tag#0 FAILED Result: hostbyte=DID_ERROR driverbyte=DRIVER_OK [ 35.292811] sd 0:0:0:0: [sda] tag#0 CDB: Read(10) 28 00 07 52 ff 80 00 00 08 00 [ 35.300184] blk_update_request: I/O error, dev sda, sector 122879872 op 0x0:(READ) flags 0x80700 phys_seg 1 prio class 0 [ 35.320469] scsi 0:0:0:0: [sda] tag#0 FAILED Result: hostbyte=DID_ERROR driverbyte=DRIVER_OK [ 35.329034] scsi 0:0:0:0: [sda] tag#0 CDB: Read(10) 28 00 07 52 ff 80 00 00 08 00 [ 35.336534] blk_update_request: I/O error, dev sda, sector 122879872 op 0x0:(READ) flags 0x0 phys_seg 1 prio class 0 [ 35.347154] Buffer I/O error on dev sda, logical block 15359984, async page read [ 35.727532] usb 1-1: new high-speed USB device number 3 using ci_hdrc [ 46.307351] usb 1-1: device not accepting address 3, error -110 [ 46.457428] usb 1-1: new high-speed USB device number 4 using ci_hdrc [ 51.967329] usb 1-1: device not accepting address 4, error -71 [ 51.973421] usb usb1-port1: attempt power cycle [ 52.467402] usb 1-1: new high-speed USB device number 5 using ci_hdrc [ 52.637376] usb 1-1: device no response, device descriptor read/64, error -71 [ 57.927378] usb 1-1: device no response, device descriptor read/64, error -71 [ 58.197409] usb 1-1: new high-speed USB device number 6 using ci_hdrc [ 58.367365] usb 1-1: device no response, device descriptor read/64, error -71 [ 63.687362] usb 1-1: device no response, device descriptor read/64, error -71 [ 63.807378] usb usb1-port1: unable to enumerate USB device root@imx6ul7d:~# root@imx6ul7d:~# root@imx6ul7d:~# root@imx6ul7d:~# root@imx6ul7d:~# [ 76.317394] usb 1-1: new high-speed USB device number 7 using ci_hdrc [ 76.370177] usb 1-1: New USB device found, idVendor=346d, idProduct=5678, bcdDevice= 3.20 [ 76.378577] usb 1-1: New USB device strings: Mfr=1, Product=2, SerialNumber=3 [ 76.385854] usb 1-1: Product: Disk 20 [ 76.397014] usb 1-1: Manufacturer: USB [ 76.403918] usb 1-1: SerialNumber: FC31114725D35 [ 76.422972] usb-storage 1-1:1.0: USB Mass Storage device detected [ 76.445697] scsi host0: usb-storage 1-1:1.0 [ 77.529821] scsi 0:0:0:0: Direct-Access VendorC ProductCode 3.20 PQ: 0 ANSI: 4 [ 77.554400] sd 0:0:0:0: [sda] 122880000 512-byte logical blocks: (62.9 GB/58.6 GiB) [ 77.570541] sd 0:0:0:0: [sda] Write Protect is off [ 77.587488] sd 0:0:0:0: [sda] No Caching mode page found [ 77.592898] sd 0:0:0:0: [sda] Assuming drive cache: write through [ 77.648590] sda: sda1 [ 77.662782] sd 0:0:0:0: [sda] Attached SCSI removable disk [ 77.683719] usb 1-1: USB disconnect, device number 7 [ 77.694214] sd 0:0:0:0: [sda] tag#0 FAILED Result: hostbyte=DID_ERROR driverbyte=DRIVER_OK [ 77.702615] sd 0:0:0:0: [sda] tag#0 CDB: Read(10) 28 00 07 52 ff 80 00 00 08 00 [ 77.709992] blk_update_request: I/O error, dev sda, sector 122879872 op 0x0:(READ) flags 0x80700 phys_seg 1 prio class 0 [ 77.730370] scsi 0:0:0:0: [sda] tag#0 FAILED Result: hostbyte=DID_ERROR driverbyte=DRIVER_OK [ 77.738932] scsi 0:0:0:0: [sda] tag#0 CDB: Read(10) 28 00 07 52 ff 80 00 00 08 00 [ 77.746434] blk_update_request: I/O error, dev sda, sector 122879872 op 0x0:(READ) flags 0x0 phys_seg 1 prio class 0 [ 77.757035] Buffer I/O error on dev sda, logical block 15359984, async page read [ 78.147306] usb 1-1: new high-speed USB device number 8 using ci_hdrc [ 86.837348] usb 1-1: device not accepting address 8, error -71 [ 87.947309] usb 1-1: new high-speed USB device number 9 using ci_hdrc [ 88.397411] usb 1-1: device not accepting address 9, error -71 [ 88.403501] usb usb1-port1: attempt power cycle root@imx6ul7d:~# root@imx6ul7d:~# root@imx6ul7d:~# root@imx6ul7d:~# root@imx6ul7d:~# root@imx6ul7d:~# root@imx6ul7d:~# root@imx6ul7d:~# change 128gb udisk, always sucess -sh: change: command not found root@imx6ul7d:~# root@imx6ul7d:~# root@imx6ul7d:~# root@imx6ul7d:~# [ 134.957400] usb 1-1: new high-speed USB device number 11 using ci_hdrc [ 135.010205] usb 1-1: New USB device found, idVendor=346d, idProduct=5678, bcdDevice= 3.20 [ 135.018605] usb 1-1: New USB device strings: Mfr=1, Product=2, SerialNumber=3 [ 135.025887] usb 1-1: Product: Disk 20 [ 135.037000] usb 1-1: Manufacturer: USB [ 135.043977] usb 1-1: SerialNumber: FC2900B1485C4 [ 135.062849] usb-storage 1-1:1.0: USB Mass Storage device detected [ 135.085469] scsi host0: usb-storage 1-1:1.0 [ 136.169604] scsi 0:0:0:0: Direct-Access VendorC ProductCode 3.20 PQ: 0 ANSI: 4 [ 136.194433] sd 0:0:0:0: [sda] 245760000 512-byte logical blocks: (126 GB/117 GiB) [ 136.210578] sd 0:0:0:0: [sda] Write Protect is off [ 136.227848] sd 0:0:0:0: [sda] No Caching mode page found [ 136.233272] sd 0:0:0:0: [sda] Assuming drive cache: write through [ 136.289093] sda: sda1 [ 136.310555] sd 0:0:0:0: [sda] Attached SCSI removable disk [ 138.115645] EXT4-fs (sda1): mounted filesystem with ordered data mode. Opts: (null) root@imx6ul7d:~# root@imx6ul7d:~# root@imx6ul7d:~# root@imx6ul7d:~# df Filesystem 1K-blocks Used Available Use% Mounted on /dev/root 1215192 746488 387904 66% / devtmpfs 168088 4 168084 1% /dev tmpfs 250520 0 250520 0% /dev/shm tmpfs 250520 8972 241548 4% /run tmpfs 250520 0 250520 0% /sys/fs/cgroup tmpfs 250520 4 250516 1% /tmp tmpfs 250520 148 250372 1% /var/volatile /dev/mmcblk1p1 27130 10722 16408 40% /run/media/mmcblk1p1 tmpfs 50104 4 50100 1% /run/user/0 /dev/sda1 120819424 61452 114597592 1% /run/media/sda1 root@imx6ul7d:~# [ 161.140099] usb 1-1: USB disconnect, device number 11 [ 164.677402] usb 1-1: new high-speed USB device number 12 using ci_hdrc [ 164.730130] usb 1-1: New USB device found, idVendor=346d, idProduct=5678, bcdDevice= 3.20 [ 164.738530] usb 1-1: New USB device strings: Mfr=1, Product=2, SerialNumber=3 [ 164.745816] usb 1-1: Product: Disk 20 [ 164.756858] usb 1-1: Manufacturer: USB [ 164.763932] usb 1-1: SerialNumber: FC2900B1485C4 [ 164.790406] usb-storage 1-1:1.0: USB Mass Storage device detected [ 164.822090] scsi host0: usb-storage 1-1:1.0 [ 165.849535] scsi 0:0:0:0: Direct-Access VendorC ProductCode 3.20 PQ: 0 ANSI: 4 [ 165.874608] sd 0:0:0:0: [sda] 245760000 512-byte logical blocks: (126 GB/117 GiB) [ 165.887981] sd 0:0:0:0: [sda] Write Protect is off [ 165.907494] sd 0:0:0:0: [sda] No Caching mode page found [ 165.912845] sd 0:0:0:0: [sda] Assuming drive cache: write through [ 165.958829] sda: sda1 [ 165.979338] sd 0:0:0:0: [sda] Attached SCSI removable disk [ 167.820051] EXT4-fs (sda1): mounted filesystem with ordered data mode. Opts: (null) root@imx6ul7d:~# root@imx6ul7d:~# root@imx6ul7d:~# [ 178.797249] usb 1-1: USB disconnect, device number 12 root@imx6ul7d:~# root@imx6ul7d:~# root@imx6ul7d:~# root@imx6ul7d:~# root@imx6ul7d:~# retry 64gb udisk, always fail -sh: change: command not found root@imx6ul7d:~# root@imx6ul7d:~# root@imx6ul7d:~# [ 206.277395] usb 1-1: new high-speed USB device number 13 using ci_hdrc [ 206.330256] usb 1-1: New USB device found, idVendor=346d, idProduct=5678, bcdDevice= 3.20 [ 206.338667] usb 1-1: New USB device strings: Mfr=1, Product=2, SerialNumber=3 [ 206.345948] usb 1-1: Product: Disk 20 [ 206.356882] usb 1-1: Manufacturer: USB [ 206.363925] usb 1-1: SerialNumber: FC31114725D35 [ 206.381244] usb-storage 1-1:1.0: USB Mass Storage device detected [ 206.403761] scsi host0: usb-storage 1-1:1.0 [ 207.449663] scsi 0:0:0:0: Direct-Access VendorC ProductCode 3.20 PQ: 0 ANSI: 4 [ 207.474740] sd 0:0:0:0: [sda] 122880000 512-byte logical blocks: (62.9 GB/58.6 GiB) [ 207.487973] sd 0:0:0:0: [sda] Write Protect is off [ 207.510688] sd 0:0:0:0: [sda] No Caching mode page found [ 207.516111] sd 0:0:0:0: [sda] Assuming drive cache: write through [ 207.558710] sda: sda1 [ 207.579364] sd 0:0:0:0: [sda] Attached SCSI removable disk [ 207.596929] usb 1-1: USB disconnect, device number 13 [ 207.602671] sd 0:0:0:0: [sda] tag#0 FAILED Result: hostbyte=DID_ERROR driverbyte=DRIVER_OK [ 207.611076] sd 0:0:0:0: [sda] tag#0 CDB: Read(10) 28 00 07 52 ff 80 00 00 08 00 [ 207.618463] blk_update_request: I/O error, dev sda, sector 122879872 op 0x0:(READ) flags 0x80700 phys_seg 1 prio class 0 [ 207.643260] scsi 0:0:0:0: [sda] tag#0 FAILED Result: hostbyte=DID_ERROR driverbyte=DRIVER_OK [ 207.651824] scsi 0:0:0:0: [sda] tag#0 CDB: Read(10) 28 00 07 52 ff 80 00 00 08 00 [ 207.659379] blk_update_request: I/O error, dev sda, sector 122879872 op 0x0:(READ) flags 0x0 phys_seg 1 prio class 0 [ 207.669949] Buffer I/O error on dev sda, logical block 15359984, async page read [ 208.067342] usb 1-1: new high-speed USB device number 14 using ci_hdrc root@imx6ul7d:~# root@imx6ul7d:~# root@imx6ul7d:~# root@imx6ul7d:~# [ 218.627329] usb 1-1: device not accepting address 14, error -110 [ 218.777517] usb 1-1: new high-speed USB device number 15 using ci_hdrc [ 224.287335] usb 1-1: device not accepting address 15, error -71 [ 224.293525] usb usb1-port1: attempt power cycle [ 224.787394] usb 1-1: new high-speed USB device number 16 using ci_hdrc [ 224.957376] usb 1-1: device no response, device descriptor read/64, error -71 [ 230.247424] usb 1-1: device no response, device descriptor read/64, error -71 [ 230.517415] usb 1-1: new high-speed USB device number 17 using ci_hdrc [ 230.687412] usb 1-1: device no response, device descriptor read/64, error -71 [ 236.007405] usb 1-1: device no response, device descriptor read/64, error -71 [ 236.127474] usb usb1-port1: unable to enumerate USB device root@imx6ul7d:~# root@imx6ul7d:~# root@imx6ul7d:~# root@imx6ul7d:~# [ 1177.397394] usb 1-1: new high-speed USB device number 18 using ci_hdrc [ 1177.450285] usb 1-1: New USB device found, idVendor=346d, idProduct=5678, bcdDevice= 3.20 [ 1177.458688] usb 1-1: New USB device strings: Mfr=1, Product=2, SerialNumber=3 [ 1177.465961] usb 1-1: Product: Disk 20 [ 1177.476789] usb 1-1: Manufacturer: USB [ 1177.483826] usb 1-1: SerialNumber: FC31114725D35 [ 1177.503847] usb-storage 1-1:1.0: USB Mass Storage device detected [ 1177.525431] scsi host0: usb-storage 1-1:1.0 [ 1178.569560] scsi 0:0:0:0: Direct-Access VendorC ProductCode 3.20 PQ: 0 ANSI: 4 [ 1178.595649] sd 0:0:0:0: [sda] 122880000 512-byte logical blocks: (62.9 GB/58.6 GiB) [ 1178.612255] sd 0:0:0:0: [sda] Write Protect is off [ 1178.634376] sd 0:0:0:0: [sda] No Caching mode page found [ 1178.639860] sd 0:0:0:0: [sda] Assuming drive cache: write through [ 1178.667061] sda: sda1 [ 1178.683380] sd 0:0:0:0: [sda] Attached SCSI removable disk [ 1178.704463] usb 1-1: USB disconnect, device number 18 [ 1178.713191] sd 0:0:0:0: [sda] tag#0 FAILED Result: hostbyte=DID_ERROR driverbyte=DRIVER_OK [ 1178.721585] sd 0:0:0:0: [sda] tag#0 CDB: Read(10) 28 00 07 52 ff 80 00 00 08 00 [ 1178.728953] blk_update_request: I/O error, dev sda, sector 122879872 op 0x0:(READ) flags 0x80700 phys_seg 1 prio class 0 [ 1178.753859] scsi 0:0:0:0: [sda] tag#0 FAILED Result: hostbyte=DID_ERROR driverbyte=DRIVER_OK [ 1178.762423] scsi 0:0:0:0: [sda] tag#0 CDB: Read(10) 28 00 07 52 ff 80 00 00 08 00 [ 1178.769993] blk_update_request: I/O error, dev sda, sector 122879872 op 0x0:(READ) flags 0x0 phys_seg 1 prio class 0 [ 1178.780566] Buffer I/O error on dev sda, logical block 15359984, async page read [ 1179.167312] usb 1-1: new high-speed USB device number 19 using ci_hdrc [ 1179.747351] usb 1-1: device not accepting address 19, error -71 [ 1231.457317] usb 1-1: new high-speed USB device number 21 using ci_hdrc [ 1231.509890] usb 1-1: New USB device found, idVendor=346d, idProduct=5678, bcdDevice= 3.20 [ 1231.518295] usb 1-1: New USB device strings: Mfr=1, Product=2, SerialNumber=3 [ 1231.525582] usb 1-1: Product: Disk 20 [ 1231.536329] usb 1-1: Manufacturer: USB [ 1231.543336] usb 1-1: SerialNumber: FC31114725D35 [ 1231.561890] usb-storage 1-1:1.0: USB Mass Storage device detected [ 1231.584731] scsi host0: usb-storage 1-1:1.0 [ 1232.649677] scsi 0:0:0:0: Direct-Access VendorC ProductCode 3.20 PQ: 0 ANSI: 4 [ 1232.674366] sd 0:0:0:0: [sda] 122880000 512-byte logical blocks: (62.9 GB/58.6 GiB) [ 1232.687983] sd 0:0:0:0: [sda] Write Protect is off [ 1232.710654] sd 0:0:0:0: [sda] No Caching mode page found [ 1232.716076] sd 0:0:0:0: [sda] Assuming drive cache: write through [ 1232.768537] sda: sda1 [ 1232.790606] sd 0:0:0:0: [sda] Attached SCSI removable disk [ 1232.809177] usb 1-1: USB disconnect, device number 21 [ 1232.820341] sd 0:0:0:0: [sda] tag#0 FAILED Result: hostbyte=DID_ERROR driverbyte=DRIVER_OK [ 1232.828769] sd 0:0:0:0: [sda] tag#0 CDB: Read(10) 28 00 07 52 ff 80 00 00 08 00 [ 1232.836102] blk_update_request: I/O error, dev sda, sector 122879872 op 0x0:(READ) flags 0x80700 phys_seg 1 prio class 0 [ 1232.858688] scsi 0:0:0:0: [sda] tag#0 FAILED Result: hostbyte=DID_ERROR driverbyte=DRIVER_OK [ 1232.867266] scsi 0:0:0:0: [sda] tag#0 CDB: Read(10) 28 00 07 52 ff 80 00 00 08 00 [ 1232.874768] blk_update_request: I/O error, dev sda, sector 122879872 op 0x0:(READ) flags 0x0 phys_seg 1 prio class 0 [ 1232.885360] Buffer I/O error on dev sda, logical block 15359984, async page read [ 1233.277349] usb 1-1: new high-speed USB device number 22 using ci_hdrc root@imx6ul7d:~# root@imx6ul7d:~# root@imx6ul7d:~# df Filesystem 1K-blocks Used Available Use% Mounted on /dev/root 1215192 746488 387904 66% / devtmpfs 168088 4 168084 1% /dev tmpfs 250520 0 250520 0% /dev/shm tmpfs 250520 8952 241568 4% /run tmpfs 250520 0 250520 0% /sys/fs/cgroup tmpfs 250520 4 250516 1% /tmp tmpfs 250520 184 250336 1% /var/volatile /dev/mmcblk1p1 27130 10722 16408 40% /run/media/mmcblk1p1 tmpfs 50104 4 50100 1% /run/user/0 root@imx6ul7d:~# [ 1243.827330] usb 1-1: device not accepting address 22, error -110 [ 1243.977433] usb 1-1: new high-speed USB device number 23 using ci_hdrc root@imx6ul7d:~# [ 1249.487330] usb 1-1: device not accepting address 23, error -71 [ 1249.493511] usb usb1-port1: attempt power cycle [ 1249.987411] usb 1-1: new high-speed USB device number 24 using ci_hdrc [ 1250.157372] usb 1-1: device no response, device descriptor read/64, error -71 [ 1255.447396] usb 1-1: device no response, device descriptor read/64, error -71 [ 1255.717429] usb 1-1: new high-speed USB device number 25 using ci_hdrc [ 1255.887415] usb 1-1: device no response, device descriptor read/64, error -71 [ 1261.207667] usb 1-1: device no response, device descriptor read/64, error -71 [ 1261.327356] usb usb1-port1: unable to enumerate USB device Except for the Udisk, both the hardware and software are from NXP. What could be the root cause of this issue? i.MX6UL Re: Some Udisks fail to be enumerated in the MCIMX6ULL-EVK evaluation board The root cause of the issue is that this 64GB Udisk cannot properly backwardly compatible with USB 2.0. Re: Some Udisks fail to be enumerated in the MCIMX6ULL-EVK evaluation board Correction for a typo: The 128GB Udisk can be enumerated in MCIMX6ULL-EVK evaluation board, while the 64GB Udisk cannot.   Additional Information: Both of the aforementioned Thinkplus Udisk are  products of the Lenovo brand. As shown in the figure below:
View full article
How to Properly Check ADC Conversion Completion on S32K3 SAR ADC Hi, I am working with the SAR ADC on the S32K3 series microcontroller with ADC_Sar_Ip Library, I am going for non autosar based codes. I want to read a value from a specific ADC channel, and here’s the code snippet I have written so far: uint16_t ADC_Get_Value(uint32 adc_Instance_u32,uint32 channel_Idx_u32) { uint16_t data; Adc_Sar_Ip_StartConversion(adc_Instance_u32, ADC_SAR_IP_CONV_CHAIN_NORMAL); while (Adc_Sar_Ip_GetStatusFlags(adc_Instance_u32) != 35); data = Adc_Sar_Ip_GetConvData(adc_Instance_u32, channel_Idx_u32); return data; } I noticed that the NXP SAR ADC IP driver provides an API to start conversion (Adc_Sar_Ip_StartConversion), but I could not find an API specifically for checking the end of conversion. Experimentally, I observed that the status flags returned by Adc_Sar_Ip_GetStatusFlags reach 32 when the conversion is complete, so I used this value in my while loop. Using this method works for me, but I am unsure if this is the correct or recommended way to detect conversion completion. My questions are: Is there an official API in the S32K3 SAR ADC driver to check for end-of-conversion? Why does polling Adc_Sar_Ip_GetStatusFlags until the value becomes 32 work? Is this behavior guaranteed, or is it dependent on the current driver version? If there is no API, what is the recommended way to handle ADC conversion completion: polling the status flags, using interrupts, or adding delays? Re: How to Properly Check ADC Conversion Completion on S32K3 SAR ADC Thank you for your interest in our products and for contributing to our community. Your approach seems correct. But the BCTU triggering scheme is the default and suggested hardware trigger method for the ADC. Said that you could refer to the following community post: S32M27x/S32K3 – eMIOS/BTCU/ADC/DMA – [RTD600] -> https://community.nxp.com/t5/S32M-Knowledge-Base/S32M27x-S32K3-eMIOS-BTCU-ADC-DMA-RTD600/ta-p/2155542 In such example, the he GPIO4 is toggled in BCTU Watermark Notification, which happens every time the number of active entries in FIFO exceeds the watermark level, and therefore the data is available for reading. Another way is using the "List last conversion notification" in Bctu_Ip driver, or if not using the BCTU, you can use the end of conversions notifications. But there is no example for this modes. I hope this information is helpful.
View full article
S32G2でPFEサブシステムを起動 PFE サブシステムに電源を投入し、適切なクロックを設定する方法の簡単な例を探しています。私が作成したドライバはネイティブ A53 (Linux なし) で動作するはずです。時計は決して動きません。このロジックに取り組む前は、PFE レジスタを読み取ることすらできなかったのですが、今は読み取れるようになりましたが、すべてが機能しているわけではなく、原因をたどってみると、このようになっていました。 サブシステムを初期化するための基本コードは次のとおりです (これは非常に断片化されており、NXP では明確に説明されていません)。SO、ソース例があれば幸いです。 pfe_init ( void ) { /* 有効にする */ /* DMAコヒーレンスの設定 */     volatile uint32_t試行;     RDC . RD2_CTRL_REG . B . RD2_CTRL_UNLOCK = 1 ;     RDC . RD2_CTRL_REG . B . RD2_INTERCONNECT_INTERFACE_DISABLE = 0 ;     試行回数= 0 ;     ( RDC . RD2_STAT_REG . B . RD2_INTERCONNECT_INTERFACE_DISABLE_REQ_ACK_STAT != 0 )の間     {         ++を試行します。         if (試行回数> MAX_TRIES ) {             壊す;      }    }     試行回数= 0 ;     ( RDC . RD2_STAT_REG . B . RD2_INTERCONNECT_INTERFACE_DISABLE_STAT != 0 )の間     {         ++を試行します。         if (試行回数> MAX_TRIES ) {             壊す;      }    } /**((揮発性符号なし整数 *)0x4007ca00) = 0x3f; */     S32G_GPR . PFE_COH_EN . B . DDR = true ;     S32G_GPR . PFE_COH_EN . B . HIF0 = true ;     S32G_GPR . PFE_COH_EN . B . HIF1 = true ;     S32G_GPR . PFE_COH_EN . B . HIF2 = true ;     S32G_GPR . PFE_COH_EN . B . HIF3 = true ;     S32G_GPR . PFE_COH_EN . B . UTIL = true ; /* EMACモードの設定 -RGMII (ALL PFES)*/     S32G_GPR . PFE_EMACX_INTF_SEL . B . EMAC0 = 2 ;     S32G_GPR . PFE_EMACX_INTF_SEL . B . EMAC1 = 2 ;     S32G_GPR . PFE_EMACX_INTF_SEL . B . EMAC2 = 2 ; /* PFEの電源を有効にする */     S32G_GPR . PFE_PWR_CTRL . B . PWRACK = 0 ;     S32G_GPR . PFE_PWR_CTRL . B . PWRCLAMP = 0 ;     S32G_GPR . PFE_PWR_CTRL . B . PWRDWN = 0 ;     S32G_GPR . PFE_PWR_CTRL . B . PWRISO = 0 ;         S32G_GPR . GENCTRL1 . B . CTRL = 1 ; /* PFE システムクロックの設定と有効化 */ /* PFE PEクロックの設定と有効化 */     S32G_GPR . LLCE_CTRL . B . EXEVENT = 0 ;     S32G_GPR . LLCE_CTRL . B . LINDIVSEL = 0 ;     S32G_GPR . LLCE_CTRL . B . LLCE_HTM0_TRC_DIS = 0 ;     S32G_GPR . LLCE_CTRL . B . LLCE_HTM1_TRC_DIS = 0 ;     S32G_GPR . LLCE_CTRL . B . LLCE_LSPI_TRIG_IN = 0 ;     S32G_GPR . LLCE_CTRL . B . PFE_2_LLCE_INT_HS_BP = 0 ;         S32G_GPR . GENCTRL1 . B . CTRL = 1 ; /* EMAC Tx/RXクロックの設定 */     S32G_GPR . GENCTRL0 . B . ACCEL_FLXNC_RD0_IDLEREQ = 0 ; /* 通常動作 */     S32G_GPR . GENCTRL0 . B . ACCEL_FLXNC_REF_DIV = 0 ; /* 2で割る */     S32G_GPR . GENCTRL0 . B . USBPWRFLT = 0 ;         試行回数= 0 ;     する{                 MC_ME . PRTN2_COFB0_CLKEN . B . REQ0 = 1 ;         MC_ME . PRTN2_COFB0_CLKEN . B . REQ1 = 1 ;         MC_ME . PRTN2_COFB0_CLKEN . B . REQ2 = 1 ;         MC_ME . PRTN2_COFB0_CLKEN . B . REQ3 = 1 ;         書き込みコントロールキー();         MC_ME . PRTN2_PCONF . B . OSSE = 1 ;         MC_ME . PRTN2_PCONF . B . PCE = 1 ;         MC_ME . PRTN2_PUPD . B . OSSUD = 1 ;         MC_ME . PRTN2_PUPD . B . PCUD = 1 ;                 /* ハードウェアに上記のレジスタの変更をチェックするように指示します */         書き込みコントロールキー();                 ++を試行します。         if (試行回数> MAX_TRIES ) {             break ; /* ここでコードが終了 - クロックは有効になりません したがってリセットから抜け出せない*/      }         } while ( MC_ME . PRTN2_COFB0_STAT . R != 0xf ); /* PFEをリセットする */     MC_RGM . PRST_0 [ 2 ] . PRST_0 . B . PERIPH_0_RST = 1 ;     試行回数= 0 ;     ( MC_RGM . PSTAT_0 [ 2 ] . PSTAT_0 . B . PERIPH_0_STAT != 1 )の間     {         ++を試行します。         if (試行回数> MAX_TRIES ) {             壊す;      } }     試行回数= 0 ;     する{         S32G_GPR . GENCTRL1 . B . CTRL = 0 ;         /* PFEをリセットから解除する */         MC_RGM . PRST_0 [ 2 ] . PRST_0 . B . PERIPH_0_RST = 0 ;         MC_ME . PRTN2_PCONF . B . OSSE = 1 ;         MC_ME . PRTN2_PCONF . B . PCE = 1 ;         MC_ME . PRTN2_PUPD . B . OSSUD = 1 ;         MC_ME . PRTN2_PUPD . B . PCUD = 1 ;                 /* ハードウェアに上記のレジスタの変更をチェックするように指示します */         書き込みコントロールキー();                 ++を試行します。         if (試行回数> MAX_TRIES ) {             壊す;      } } while ( MC_RGM . PSTAT_0 [ 2 ] . PSTAT_0 . B . PERIPH_0_STAT == 1 );     MC_ME . PRTN2_PCONF . B . OSSE = 0 ;     MC_ME . PRTN2_PCONF . B . PCE = 1 ;     MC_ME . PRTN2_PUPD . B . OSSUD = 1 ;     MC_ME . PRTN2_PUPD . B . PCUD = 1 ;     /* ハードウェアに上記のレジスタの変更をチェックするように指示します */     書き込みコントロールキー();         試行回数= 0 ;     ( MC_RGM . PSTAT_0 [ 2 ] . PSTAT_0 . B . PERIPH_0_STAT != 0 )の間     {         ++を試行します。         if (試行回数> MAX_TRIES ) {             壊す; }    }     } Re: PFE subsystem bring up on S32G2 こんにちは@aaronbaranoff 、 HIF とそのリング バッファに関する具体的なドキュメントはありません。現時点では、PFE に関するすべてのドキュメントをすでに共有しており、これ以上の文書はありません。ただし、 『LNX PFE ドライバー ユーザー マニュアル』のセクション2.1「ネットワーク インターフェース」 、または『PFE FCI API リファレンス』のセクション11.5.2「構成例」およびセクション11.7「出力 QoS」を確認できます。 複雑さのないパケットの Tx と Rx に関しては、それを利用したい場合、PFE の複雑さを回避する方法はないと思います。希望する場合は、かなり単純な GMAC モジュールを使用することもCANますが、すべての操作をメイン コアで処理する必要があります。 Re: PFE subsystem bring up on S32G2 HIF、特にリング バッファ構造とレジスタに関するドキュメントはありますか? 別にSOしないと、複雑な操作をせずにパケットを送受信できなくなります。MTL の DEBUG FIFO インターフェースを介して送信および受信するにはどうすればよいですか。 Re: PFE subsystem bring up on S32G2 こんにちは@aaronbaranoff 、 PFE レジスタの構成を表示するために、フレームを送信する直前にダンプを取得しました。 PFE を使用してパッケージを送信する方法を正確に知るには、PFE MCAL API を確認することを強くお勧めします。特に、example_application\src\sample_app_ethswt_eth.c から始まる関数呼び出しを確認すると、Tst_Pfe_SendDummyFrame() には API Eth_43_PFE_Transmit() への呼び出しがあり、MCAL コードには多くのランタイム チェックとコンパイル チェックが含まれていますが、これらは役に立たない可能性があります。必要に応じてコードを削除できますが、これは PFE 送信機能の使用方法に関する最良のリファレンスです。 よろしくお願いします。 Re: PFE subsystem bring up on S32G2 赤色の領域のレジスタはいずれもアクセスできません (常に 0 をリードバックします)。私はそれらと通信できず、PFE コードではそれらを使用していないようです (そうでなければ、それらがゼロ以外の値を持つことが予想されます)。SO、PFE に使用される GMAC のインスタンス化で DMA インターフェースが欠落していることが確認されるようです。SO、PFE MAC から生のパケットを送信する唯一の方法は、スレーブ インターフェース (NXP では文書化されていません) またはデバッグ インターフェース (レジスタは文書化されていますが、シーケンスは文書化されていません) を使用することです。私の疑念を確認または訂正して助けてください。 Re: PFE subsystem bring up on S32G2 ダンプしてくれてありがとう。 あなたのレジスタ設定と私のレジスタ設定を比較すると。どのキュー/チャネルにもリング バッファーまたはリスト アドレスが設定されていないようです。では、どのようにパケットを送信しているのでしょうか?明らかに文書化された DMA インターフェースではありません。そのインターフェースは PFE MAC で無効になっていますか?もしSOなら、どうやってパケットを送信すればいいのでしょうか? Re: PFE subsystem bring up on S32G2 こんにちは@aaronbaranoff 、 返信が遅くなり申し訳ありません。0x460A8000 から 0x460A936C までのすべての PFE EMAC レジスタの完全なダンプがここにあります。任意の 16 進ビューアでCAN確認できます。 このダンプは、すべての初期化が完了した後に取得されました。 Re: PFE subsystem bring up on S32G2 次の場所で値が異なることに気付きました。 EL1N0xFFFF0000460A8800 の値は 0x00003FF7 ですが、問題はそれが文書化されたレジスタではないということですか?それは何ですか? Re: PFE subsystem bring up on S32G2 PFE 構成を確認した後、これも完全に初期化されていないことに気付きました。リストのアドレスにまだ書き込んでいない(またはCANない) 0x00000000 EL1N:0xFFFF0000460A9114 00000000 0x00000000 0x00000000 EL1N:0xFFFF0000460A9118 00000000 0x00000000 0x00000000 EL1N:0xFFFF0000460A911C 00000000 0x00000000 Re: PFE subsystem bring up on S32G2 さらに、ドキュメントに従って ACCEL_PLL のレジスタ設定をダンプして比較できますか。設定は 600 MHz に設定しています。 比較の前に、PFE_MAC_2 とクロックが完全に有効になっていることを確認してください。 Re: PFE subsystem bring up on S32G2 私は混乱していますか、それとも何かを見逃していますか。私たちの PFE 設定は十分近いと思います (MAC アドレスやその他の重要でない設定)。しかし、CGM_2 の設定は大きく外れています。おそらく、設定前にあなたの側で差異がキャプチャされたのでしょう。 ドキュメントによると、PFE_MAC2 の場合 (下の画像を参照)。 CGM_2 Mux 0は33 ACCEL_PLL_PH1_CLKに設定する必要があります(一致させる必要があります) CGM2 Mux 3 は PERIPH_PLL_PHI5_CLK に設定する必要があります (設定はしていますが、FIRC_CLK を指定しています) CGM2 Mux 6 は PFE_MAC2_RX_CLK に設定する必要があります (設定はしていますが、FIRC_CLK を指定しています) Re: PFE subsystem bring up on S32G2 こんにちは@aaronbaranoff 、 私が見つけた違いは次のとおりです。形式は前回と同じです。MC_CGM_2 の場合は前回と同じ行でプログラムを停止し、PFE_EMAC の場合はここで停止しました。 変更後に動作が変わった場合はお知らせください。 Re: PFE subsystem bring up on S32G2 もう1つのデータポイント。PFE_MAC2 をループバック (MAC_CONFIGURATION 経由) レジスタ ビット 12 に配置することも試みました。それでも、DMA 関連のレジスタと通信できません。 Re: PFE subsystem bring up on S32G2 こんにちは@aaronbaranoff 、 情報をありがとうございます。それらのレジスターを確認するのに少し時間をください。 できるだけ早くご連絡いたします Re: PFE subsystem bring up on S32G2 私の MC_CGM_2 レジスタをあなたのものと比較していただけますか。すべての PFE クロックがそのセクションにあるため、欠落しているクロックがあると思います。 Re: PFE subsystem bring up on S32G2 また、DMA_SysBus_Mode (読み取りバック失敗)。内部クロックが設定されていないようです。しかし、PRTN2_COFB0_STAT は常に 0 を報告するため、それを確認する方法はありません。 Re: PFE subsystem bring up on S32G2 以下は、DMA_CH0_RxDesc_Ring_Length と DMA_CH0_RxDesc_List_Address に正常に書き込むことができなかった直前のレジスタです。これらに書き込んで値を読み戻すと、有効なアドレスを書き込んでも 0 が読み戻されます。 ただし、リンク ステータスを取得し、MAC アドレスなどのレジスタを書き込んで読み戻すことは正常にCAN。 このコードは、GMAC を制御するために使用しているコードと実質的に同一です。ただし、PFE_MAC2 では、特定のレジスタの読み取りと書き込みは許可されません。(主に DMA 関連)。レジスター比較に加えて。DMA を有効にするために、PFE_MAC2 以外に何か必要なものはありますか (追加のクロックまたはリセット)? 私のコードではこうです。チェックを追加しましたが、次のエラーが発生します。 DMA_CH0_TxDesc_List_Address (リードバック失敗) DMA_CH0_TxDesc_Ring_Length (リードバック失敗) DMA_CH0_RxDesc_List_Address(リードバック失敗) DMA_CH0_RxDesc_Ring_Length (リードバック失敗) MTL_TxQ0_Operation_Mode (正しい値ですが変更できません) MTL_RxQ0_Operation_Mode (正しい値ですが変更できません) MAC_RxQ_Ctrl0 (書き込み値の受け入れを許可しない) Re: PFE subsystem bring up on S32G2 こんにちは@aaronbaranoff 、 PFE EMAC 内のレジスタのことですか? これは、GMAC リファレンス マニュアルに記載されているのと同じレジスタです。 もしSOなら、すべてのレジスタのダンプを共有して、送信直前のデモ アプリのレジスタの状態と比較することCAN。 前もって感謝します。 Re: PFE subsystem bring up on S32G2 内部クロックが正しくないかのような動作をします。しかし、サブシステムのバグによりステータスを読み取ることができないため、判断するのは困難です。PIn Mux が正しいピンに設定されており、クロックも正しく設定されていることを確認しました。 Re: PFE subsystem bring up on S32G2 差分をありがとうございます。唯一驚いたのは、PFE 内のブロックの CLKEN がコード内で設定されていなかったことです。それは既知の問題ですか?無視されるか、必要ではないのだと思います。 0x0000000F EL1N:0x0000000040088530 00000000 0x00000000 X OK、PFE GMAC はリセットから復帰し、リンク ステータスが有効になりました。しかし、もう一つ問題があります。DMA の外側のすべてのレジスタは読み取りと書き込みが行われており、書き込みが期待どおりに行われていることがCANます。しかし、DMA のもの (TX または RX) では書き込みは可能 (エラーなし) のように見えますが、値は保持されません (0 が読み取られます)。他に見逃しているものがあるでしょうか。PFE GMAC を動作させるために必要な、文書化されていない追加の外部ステップがあるようです。 Re: PFE subsystem bring up on S32G2 こんにちは@aaronbaranoff 、 返信が遅くなり申し訳ありません。最終的に、PRTN2_COFB0_CLKEN レジスタを構成する直前のレジスタの違いを取得することができました。それらは添付の xlsx ファイルで見つかります。違いは赤い「X」でマークされており、各レジスタ ダンプは別のページにあります。 私のレジスターは次のような文脈で取得されました: Re: PFE subsystem bring up on S32G2 こんにちは@aaronbaranoff 、 すべての情報に感謝します。PFE デモ アプリケーションをテストしようとしましたが、S32 デバッグ プローブでハード フォールトにつながるいくつかの問題が発生しました。デモ アプリの説明で示唆されているように、これを Lauterbach デバッガーでテストする必要があります。しかし、現時点では持っていないので、来週入手してテストを行う必要があります。 電話に関してですが、私と私のチームはお客様との電話に対応しておらず、さらに返信に必要な情報を探すのにかなり時間がかかります。 関連する返信が遅れて申し訳ございません。 Re: PFE subsystem bring up on S32G2 あなたが現在お住まいのタイムゾーンはいつですか。インタラクティブに作業はCANでしょうか。 Re: PFE subsystem bring up on S32G2 S32G_GPRも追加されました Re: PFE subsystem bring up on S32G2 添付されているのはレジスタダム(デバッガーからのExcel内)です Re: PFE subsystem bring up on S32G2 こんにちは@aaronbaranoff 、 前述のように、MC_ME.PRTN2_COFB0_STAT.R が 0 であるという事実は既知の問題であり、現時点ではチェックをスキップする回避策しかないようです。根本原因を見つけるために次に考えられるのは、あなたのレジスタと私のレジスタを比較することです。PRTN2_COFB0_STAT を構成する直前に、MC_ME レジスタ範囲全体のレジスタ ダンプを送信してください。そうすれば、利用可能な例の 1 つと比較できます。 よろしくお願いします。 Re: PFE subsystem bring up on S32G2 これをブートローダーの非常に早い段階にプッシュしてみましたが、結果は同じでした。 MC_ME.PRTN2_COFB0_STAT.R は 0 です (0xf である必要があります)... なぜ?!? Re: PFE subsystem bring up on S32G2 まだ運がない。PFE パーティションが完全に初期化されていません。ブロック クロックは有効になりません。予想されるシーケンスに関する明確なドキュメントはありません。電源投入プロセスは S32G2 リファレンス マニュアルの図 148 に記載されていますが、ブロック クロック (PRTN2_COFB0_STAT または PRTN2_COFB0_CLKEN) については触れられていません。これをうまく利用できた他のユーザーが、サンプルコードの一部を投稿してくれることを期待しています。リセットから復帰し、PCS フラグにはクロックが有効になっていると表示されますが、ブロック クロックは有効になりません。ただし、その理由はわかりません。外部クロックを画像から取り除くことも試みています。FIRC を使用することにより。 (PFE_MACx_RX_CLK、PFE_MACx_TX_CLK、PFE_PE_CLK) を設定した後、デフォルトの FIRC を使用します。PFE パーティションはリセットから復帰しますが、有効化されているブロック クロックは無視されます。ブロック クロック イネーブルを、PFE パーティションの残りの部分をリセットの前後に移動することも試しましたが、影響はありませんでした。 EL1モードとEL3モードで試しました。PRTN2_COFB0_CLKEN REQ を介して有効にしようとしたにもかかわらず、PRTN2_COFB0_STAT を無視しようとしました。ステータスを無視すると、PFE レジスタを読み取ることはできますが、一部のレジスタへの書き込みは失敗し、動作が正しくありません。表195を参照してください。 私は RDB2 ボードを使用していますが (ボードが準備できるまで)、うまくいきませんでした。 Re: PFE subsystem bring up on S32G2 こんにちは@aaronbaranoff 、 この発言について詳しく説明していただけますか?しかし、ブロック レベルのクロックは有効になりません。ステータスを無視すると、DMA レジスタに書き込むときに多くの PFE GMAC レジスタを読み取ることはCANますが、値が保持されないため、リンク ステータスが取得されません。 ドキュメントを確認しましたが、あなたと同じように、EL3 と EL0 を比較した場合の具体的な点は見つかりませんでした。ただし、メモリ領域へのアクセスに関する問題を回避するために、EL0 を使用することをお勧めします。 Re: PFE subsystem bring up on S32G2 NXP のコードを複製しましたが、チェックを追加しました。PFE サブシステムはリセットから復帰しますが、ブロック レベル クロックは有効になりません。ステータスを無視すると、DMA レジスタに書き込むときに多くの PFE GMAC レジスタを読み取ることはCANますが、値が保持されないという動作になり、リンク ステータスが取得されません。 ステータスは手がかりになると信じていますが、その理由についてはまったくわかりません。PFE の初期化の前に、クロックとピン MUX を有効にしました。 EL1 モードと EL3 モード、または類似のモードに関して、他に何かルールはありますか? ドキュメントには何も記載されていません。 Re: PFE subsystem bring up on S32G2 こんにちは@aaronbaranoff 、 AUTOSARドライバのバグに関する参照をありがとうございます。そのバグ修正に関連する変更を内部的に確認しました。変更された関数はPower_Ip_MC_ME_ConfigureCOFB()です。RTD 5.0.0の最終実装を確認できます。QLP3。私の理解では、問題はプロセスの書き込み部分にあるのではなく、検証のために読み取ると、POWER_IP_MC_ME_PRTN2_COFB0_STAT_RESERVED が定義され、STD_ON の場合に PartitionIndex の検証がスキップされることが関数内でわかります。任意の S32G の構成ファイルを確認すると、POWER_IP_MC_ME_PRTN2_COFB0_STAT_RESERVED が true であることがわかります。例: Resource_TS_T40D11M50I0R0\resource\CORTEXM_S32G2XXM7_s32g274a_bga525.properties : 私が理解しているのは、そのレジスタ検証には既知の問題があり、現時点ではそれをスキップすることが既知の回避策であるということです。 Re: PFE subsystem bring up on S32G2 AUTOSAR コードでも同様の問題が報告されていますが、解決策や明確さは示されていません。 Re: PFE subsystem bring up on S32G2 私が尋ねているのはドライバ特有のものではありません。これは単純なレジスタ(リファレンスマニュアル)に関する質問です。 PRTN2_COFB0_STAT でブロック 0 ~ 3 のクロックを有効にしようとしています。たとえ47.4のドライバを使いたかったとしてもこのドキュメントの「MC_ME パーティション 2 マッピング」セクションで説明されているように、MC_ME で PFE COFB クロックを有効にする必要があります。 これは基本的なシーケンスですが、機能せず、データシートには他に必要なものについての情報は一切記載されていません。パーティションはリセットから復帰しますが、リファレンス マニュアルの図 148 ではパーティション内のブロック クロックの有効化については説明されていません。 MC_ME.PRTN2_COFB0_CLKEN.B.REQ0 = 1; MC_ME.PRTN2_COFB0_CLKEN.B.REQ1 = 1; MC_ME.PRTN2_COFB0_CLKEN.B.REQ2 = 1; MC_ME.PRTN2_COFB0_CLKEN.B.REQ3 = 1; MC_ME.PRTN2_PCONF.B.OSSE = 1; MC_ME.PRTN2_PUPD.B.OSSUD = 1; MC_ME.PRTN2_PCONF.B.PCE = 1; MC_ME.PRTN2_PUPD.B.PCUD = 1; /* ハードウェアに上記のレジスタの変更をチェックするように指示します */ コントロールキーを書き込みます(); この後、PRTN2_COFB0_STAT を読み取りましたが、ステータスにはクロックが有効になっていることが示されません。 Re: PFE subsystem bring up on S32G2 こんにちは@aaronbaranoff 、 再度ご連絡いただきありがとうございます。この移行では、リファレンス・マニュアル、FCI API ドキュメント、コード、コード サンプルなど、これまで共有したことのないリソースを共有することはできません。A53 のソフトウェア サポートは Linux に重点が置かれており、PFE は非常に複雑なモジュールであるため、プログラムを見ても多くのサポートを提供することはできませんが、私がいつも行っているように、既に提供されている実装をチェックして、ニーズに合わせて調整することをお勧めします。 PFE の初期化に関連するドキュメントをさらに公開する予定があるかどうかは社内で確認できますが、お客様のCASEに役立つものがあるかどうかは保証できません。 折り返しご連絡いたします
View full article
RW610 WiFi Direct Implementation Hi, I'm looking to use the RW610 chipset for an upcoming project and was wondering whether its hardware can support Wi-Fi Direct. In addition, does anyone know where i can obtain application note or any documentation that explains the implementation and operation of Wi-Fi Direct for the RW610 chipset module. Thank you so much in advance. Re: RW610 WiFi Direct Implementation Hello @Designer11, hope you are doing well and sorry for the late reply. The Wi-Fi example "wpa_supplicant" within SDK version 25.09, is compatible with Wi-Fi Direct/P2P feature, however to enable the feature it is required to define the macro: CONFIG_WPA_SUPP_P2P inside the "wifi_config.h"  file. For more information about WFD interface please refer to UM11442 on section 3.8.1.5. Please let me know if this information is helpful. Re: RW610 WiFi Direct Implementation Hello @Designer11, hope you are doing well. I will check this internally and I will inform you once I get a response from the internal team. Thank you for your patience.
View full article
有关演示电机驱动器 MCSPTE1AK344 的问题 你好 我正在尝试查看示例代码并熟悉 MATLAB NXP 嵌入式编码器。 我正在使用 MCSPTE1AK344 运行示例代码"s32k344_mc_pmsm_2sh_s32ct.mdl" 。 PWM 以何种模式配置? 如何计算工作时间/周期? 数值是否在时钟周期内?什么是预缩放器? 谢谢! 阿里
View full article
尝试使用演示应用程序设置选项 A 时,获取 GSR 值 = C7040001 原问题回复:GM S32K324 需要配置垫圈 - 第 2 页 - NXP 社区 客户 - GM 客户尝试使用 RTD 和 tresos 在默认垫圈配置 0b00 的 S32K344 设备中设置时钟选项 A,但出现了 C7040001 错误。 当 FAE 在他们那里使用 RTD 示例尝试相同的配置时,也遇到了同样的问题。 当我尝试在默认垫圈配置下直接向所需寄存器(PLL、MC_CGM)写入值来设置时钟配置选项 A 时,我这边工作正常。 请帮我解决这个问题。我在这里附上了FAE的demo_app项目供你参考。 RTD:SW32K3_S32M27x_RTD_R21-11_6.0.0_D2506 开发软件包 3.6.2 优先级:高 RTD S32DS 来源:恩智浦内部来源:恩智浦内部 Re: Getting GSR value = C7040001, when trying to set option A using Demo app 你好,@Nhi_Nguyen、 我发现了错误,我之前是用通用 HSE 固件和标准演示程序进行测试的,所以才会在 GSR 寄存器中出现错误。 我用标准 HSE 固件(2.55)测试了该应用程序,现在在我这里运行正常。 您可以关闭此票。感谢您的支持。 此致 Dhvani Singhal Re: Getting GSR value = C7040001, when trying to set option A using Demo app 你好,@Nhi_Nguyen、 非常感谢你的确认。我会在我这边再试一次。然后告诉你。 此致 Dhvani Singhal Re: Getting GSR value = C7040001, when trying to set option A using Demo app 你好@DhvaniSinghal、 我试着更改了 UTEST,并确认这没有造成任何问题。它正确地遵循了《马币》。我为此使用了 Demo 应用程序。 顺祝商祺! Nhi Re: Getting GSR value = C7040001, when trying to set option A using Demo app 你好@DhvaniSinghal、 1.遵循 RM,应该相同。如果不是,则应来自 HW,如果 HW 团队没有更新 RM,我们不会处理此问题。要测试您的请求,我需要用 Mem 驱动程序创建项目,这需要更多时间,但从我的角度来看,我们不需要这样做,因为我在这里没有发现任何问题。 2。RTD 示例在未安装 HSE 的板上运行。我从另一支队伍借了这个板。我想你可以从 HSE 固件版本中找到 HSE 代码包,对吧?您可以向他们询问0x00000101 的值。抱歉,我不在 HSE 工作,所以对此一无所知。 顺祝商祺! Nhi Re: Getting GSR value = C7040001, when trying to set option A using Demo app 你好,@Nhi_Nguyen、 非常感谢。如果您在UTEST中对垫圈位( HSE_CLK_MODE_AN_GSKT_CTRL= 0x00000101)进行编程,那么它应该也能正常工作。对不对? 还有一个问题,如果UTEST 中的默认垫片配置是 ( HSE_CLK_MODE_AN_GSKT_CTRL= 0x00000101),为什么您的 S32K344 样品中没有? 此致 Dhvani Singhal Re: Getting GSR value = C7040001, when trying to set option A using Demo app 你好@DhvaniSinghal、 这就是情况(2): 这是案例 (1) 演示应用程序: 如果您需要更多信息,请告诉我。 顺祝商祺! Nhi Re: Getting GSR value = C7040001, when trying to set option A using Demo app 你好,@Nhi_Nguyen、 请运行应用程序至第 68 行,查看 HSE 是否仍处于活动状态。如 (1),您在运行应用程序时只分发了 PLL API。 此致 Dhvani Singhal Re: Getting GSR value = C7040001, when trying to set option A using Demo app 你好@DhvaniSinghal、 我没有发现您所附的演示程序有任何问题。返回结果为 (1),没有任何变化。 (2) 我使用了您的演示程序,并按照 (2) 中的图像更改了 PLL,使其与您的寄存器相同,结果没有问题。 顺祝商祺! Nhi Re: Getting GSR value = C7040001, when trying to set option A using Demo app 你好,@Nhi_Nguyen、 HSE 固件仅在安全启动的情况下配置 PLL。因此,屏幕截图中的共享配置仅适用于安全启动的情况。但是在这里,我们在非安全启动中配置时钟。 您是否再次尝试过共享演示应用程序?在将时钟配置为选项 A 后,向 HSE 固件发出服务。我对演示程序有疑问,演示程序中缺少一些东西。 或者,如果您有任何演示应用程序,我们可以在设备中配置时钟选项A。请与我分享该项目。 此致 Dhvani Singhal Re: Getting GSR value = C7040001, when trying to set option A using Demo app 你好@DhvaniSinghal、 好的,我又看了一下您的 UTEST,是选项 A。 我的板之前安装了 HSE 固件。就是这样: 如果 HSE 固件会导致问题,可能是因为时钟配置是在 HSE 固件中设置的,需要在应用程序中保留。 关于这一点,我想您可以询问 HSE 小组。 您尝试将时钟配置更改为 (2) 并运行了吗? 顺祝商祺! Nhi Re: Getting GSR value = C7040001, when trying to set option A using Demo app 你好,@Nhi_Nguyen、 谢谢您的解释。但根据 DCF 值的共享片段,S32K344 的 HSE_CLK_MODE_AN_GSKT_CTRL 默认值为0x00000101。我没有在UTEST中为时钟配置编程任何值。这是默认值。 请提供测试所用的 HSE FW 版本和 SBAF 版本。另外,请检查在执行 FAE 演示应用程序后,您是否收到任何 HSE 服务的响应。 我在同一个样品上用相同的 HSE 固件版本测试了这两个应用程序。只有在演示应用程序项目(FAE)中才会出错。请在下面找到屏幕截图以供参考。 我使用的是:HSE FW 版本:s32k3x4_hse_fw_0.5.0_2.55.0_pb250130 SBAF 版本: 0.15.0 RC6 此致 Dhvani Singhal Re: Getting GSR value = C7040001, when trying to set option A using Demo app 你好@DhvaniSinghal、 这是 FAE 项目,我称之为 (1) 这是根据您的寄存器相应更改的时钟,因为我在比较您的寄存器和 FAE 项目时看到了 PLLDV 之间的差异,我称之为 (2) 就我而言,UTEST 如下: 未对HSE_CLK_MODE_AN_GSKT_CTRL进行更改,因此默认为选项 A 但在您的案例中,HSE_CLK_MODE_AN_GSKT_CTRL 被设置为选项 A++,这只是针对 S32K388。 在我看来 - 项目(1)或(2)的时钟配置没有问题,因为 GSR 没有升高。 - 您的问题应该是 HSE 时钟选项更改为 A++(仅支持 S32K388)造成的。因为您使用的是 S32K344,所以在更改HSE_CLK_MODE_AN_GSKT_CTRL时无法切换到 A++。也许就是这个原因。 - 对于解决方案,我想你可以选择其中之一: + 再次安装 HSE 固件,将 UTEST 配置 RESET 为默认选项 A。 + 使用 MemInfls 清除 dcf_client_utest_misc。 顺祝商祺! Nhi Re: Getting GSR value = C7040001, when trying to set option A using Demo app 你好,@Nhi_Nguyen、 它是 MU 登记册的一部分。请找到以下片段以供参考: 是,在 GSR - C7040001 的值中,04 表示时钟错误。 寄存器的预期值全是 0。 请运行应用程序一次以查看此错误。 此致 Dhvani Singhal Re: Getting GSR value = C7040001, when trying to set option A using Demo app 你好@DhvaniSinghal、 因为我不在 HSE 工作,所以我还有一个问题,如何读取寄存器 GSR?是否在 MU 中? 在 GSR - C7040001 的值中,04 表示 HSE 时钟错误?该寄存器的期望值是多少?是 00 而不是 04 吗? 顺祝商祺! Nhi Re: Getting GSR value = C7040001, when trying to set option A using Demo app 你好,@Nhi_Nguyen、 GSR - C7040001:这表明 HSE 时钟上发生了 CMU(时钟监控单元)篡改事件。它通常发生在时钟设置超出预期范围时。 我已经在 S32K344 设备 上测试了 时钟配置选项 A ,它在我这端运行正常。 请查看数值片段: 此致 Dhvani Singhal Re: Getting GSR value = C7040001, when trying to set option A using Demo app 你好@DhvaniSinghal、 - 什么是C7040001 错误?您能描述一下这个问题吗? - 请将 PLL、MC_CGM 中所有寄存器的值以及自己编写寄存器时的代码发给我。 顺祝商祺! Nhi
View full article