Multi Source Translation Content

キャンセル
次の結果を表示 
表示  限定  | 次の代わりに検索 
もしかして: 

Multi Source Translation Content

ディスカッション

ソート順:
RW612 FLEXCOMM3/I2S3 Supporting driver We are using RW612 FLEXCOMM3/I2S3 with the following fixed hardware wiring: - GPIO24 = I2S DATA input from PCM6120 SDOUT - GPIO25 = I2S SCK output to PCM6120 BCLK - GPIO26 = I2S WS output to PCM6120 FSYNC The codec is PCM6120 in slave mode. RW612 is intended to be the I2S master generating BCLK/WS and receiving audio data. What we have verified: - GPIO25/GPIO26 can be driven correctly in plain GPIO mode - FLEXCOMM3 clock source is AUDIO PLL at 12.288 MHz - I2C communication with PCM6120 is working - PCM6120 register configuration is accepted Observed behavior: 1. FLEXCOMM3 configured as I2S RX with kI2S_MasterSlaveNormalMaster does not generate any SCK/WS edges on GPIO25/GPIO26. 2. FLEXCOMM3 configured as I2S TX with kI2S_MasterSlaveNormalMaster also does not work: FIFOSTAT.TXNOTFULL=1, but TXLVL remains 0 after writes to FIFOWR, and no SCK/WS edges appear on the pins. 3. PCM6120 reports missing clocks (ASI_STS=0xFF, DEV_STS1=0x80). Questions: 1. Is RW612 FLEXCOMM I2S RX in Normal Master mode expected to drive SCK/WS onto external pins? 2. Is a single FLEXCOMM instance supported for the use case “master clock generation + receive data from external codec”, or is a dual-FLEXCOMM architecture (TX master + RX slave with I2S bridge) required? 3. For FLEXCOMM3 I2S TX master, are there additional prerequisites for FIFO writes to be accepted beyond I2S_TxInit(), FIFOWR writes, and MAINENABLE? 4. Is there any known limitation specific to FLEXCOMM3 on GPIO24/25/26 (AON domain) for I2S clock output? Pls help about the topic Re: RW612 FLEXCOMM3/I2S3 Supporting driver Hi @duyhung, hope you are doing well. Would you please clarify if you are using FreeRTOS or Zephyr to perform the tests? Are you using the FRDM-RW612 board? Please also provide which version (either SDK or Zephyr) you are using, and if you're taking an example as base for your development. Additionally, the Reference Manual of RW612 (UM11865) includes a basic configuration guide for I2S peripheral in section 28.2, would you please confirm if you have followed this general steps? Re: RW612 FLEXCOMM3/I2S3 Supporting driver Hi @RomanVR , Thank you for your response. Please find the clarifications below. 1. RTOS We are using bare-metal and FreeRTOS for both test. No Zephyr is involved in these tests. All initialization and I2S configuration are done directly with the NXP SDK drivers. 2. Board We are not using the FRDM-RW612. We are using a custom Dev Board based on RW612ETA2I. The MCU is the same, but the board layout differs. The audio codec (PCM6120) is wired to FLEXCOMM3 / I2S3 on the following fixed pins: Signal GPIO Direction I2S DATA (SDOUT from PCM6120) GPIO24 Input I2S SCK (BCLK to PCM6120) GPIO25 Output I2S WS (FSYNC to PCM6120) GPIO26 Output I2C SDA (PCM6120 config) GPIO56 (FC14) Bidirectional I2C SCL (PCM6120 config) GPIO57 (FC14) Bidirectional AUX_EN (PCM6120 power) GPIO54 Output 3. SDK Version We are using SDK_2.x_RD-RW612-BGA, version 25.03.00. 4. Base Example We used rdrw612bga_i2s_dma_record_playback as the reference example. That example uses FLEXCOMM1 (TX master) + FLEXCOMM0 (RX slave) + I2S bridge, which we confirmed is working. However, our hardware constraint forces us to use a single FLEXCOMM (FC3 only) for the entire I2S link to PCM6120. PCM6120 must work in Slave mode because we dont have External clock to source for BCLK . We attempted to configure FC3 as kI2S_MasterSlaveNormalMaster to have it generate SCK/WS while receiving data. 5. UM11865 Section 28.2 – I2S Configuration Steps We have reviewed UM11865 Section 28.2 and can confirm all 6 configuration steps are followed: Step 1: Flexcomm enabled with CLOCK_EnableClock + RESET + CLOCK_AttachClk Step 2: FIFO configured (FIFOCFG=0x35, ENABLETX=1, SIZE=8) Step 3: I2S pins set via IO_MUX_SetPinMux(IO_MUX_FC3_I2S), AON MCI_IOMUX enabled Step 4: Rate configured (CFG1 MSTSLVCFG=0b11=NormalMaster, DIV=3 → BCLK=3.072MHz) Step 6: DMA enabled in FIFOCFG Despite following all steps, we observe: - No SCK/WS edges on GPIO25/GPIO26 - TX FIFO not accepting data: TXNOTFULL=1 but TXLVL stays 0 after FIFOWR writes Section 28.2 Step 4 states "For controller operation, the clock determines the I2S rate" but does not specify whether PERSEL=I2S_RECEIVE with NormalMaster is expected to drive SCK/WS onto the pads. Can you clarify: 1. Is PERSEL=I2S_RECEIVE (0b101) capable of driving SCK/WS as outputs when MSTSLVCFG=NormalMaster? 2. Why does TXLVL remain 0 after writes to FIFOWR with PERSEL=I2S_TRANSMIT? Is MAINENABLE required before FIFOWR writes are accepted? 6. Observed Issue – Our Specific Question After all configuration above, GPIO25 and GPIO26 produce zero edges. PCM6120 reports missing clocks (ASI_STS = 0xFF, DEV_STS1 = 0x80). We further ran a diagnostic: we configured FC3 as I2S TX master (instead of RX master) and found that writes to FIFOWR do not increment TXLVL — FIFOSTAT stays at 0x30 (TXNOTFULL=1, TXLVL=0) regardless of how many words we write. Relevant register state after TX master probe:   CFG1 = 0x17003C (MSTSLVCFG=3 = NormalMaster, DATALEN=24, MAINENABLE=0) DIV = 3 (divider=4, BCLK = 12.288MHz / 4 = 3.072MHz) FIFOCFG = 0x35 (ENABLETX=1, TXI2SE0=1) FIFOSTAT = 0x30 (TXNOTFULL=1, TXLVL=0 after writes) After MAINENABLE=1: STAT = 0x5 (BUSY=1, LR=1 — clock logic running internally) SCK/WS edges on GPIO25/GPIO26: 0 Our specific question to NXP: When FLEXCOMM3 I2S is configured as kI2S_MasterSlaveNormalMaster (either TX or RX), is it expected behavior on RW612 that SCK/WS are not driven onto GPIO25/GPIO26 (AON domain), even though STAT shows the peripheral is internally running? Alternatively: Is a single-FLEXCOMM topology (one FC as both clock master and RX data receiver) supported by the RW612 I2S hardware, or does RW612 always require two separate FlexComm instances (one TX master + one RX slave via I2S bridge) for this use case? Thank you. Re: RW612 FLEXCOMM3/I2S3 Supporting driver Hi @duyhung, thanks for providing additional details of your setup. Based on the reference manual (RM00278), when the I2S instance is configured in normal master mode, the SCK and WS signals are configured to be generated but not to transmit or receive data, as it is detailed in section 31.1.2 of the RM00278 in CFG1[MSTSLVCFG] register. In the I2S driver, this configuration is applied within the "I2S_TxInit();" function, which also configures the Flexcomm instance being used and the FIFO as a transmitter instance. Given the previous information, the double Flexcomm topology with shared signals (as it is done in the example you have already tested) is suggested, as it is demonstrated in a similar example shown in Figure 9 in section 3.6.2.1.1 of UM11865. RomanVR_0-1785886440838.png Additionally, if you are taking as base the I2S with DMA playback example, would you please share the modifications you have done to the example?
記事全体を表示
Will multiple Ara240's support P2P communication? Subject says everything. Can you connect multiple Ara240's through an appropriate PCIe switch and use P2P communication to run larger models? Re: Will multiple Ara240's support P2P communication? db16122_0-1785805134624.png The online resource for ARA24 is quite limited but it would be helpful with BAR2 content
記事全体を表示
新舊硬件版號差別 _0-1785831056367.png 同樣 ringo 版本,為什麼 左邊是舊的 版號 332 可以使用,右邊新的 B222 不能使用,332/B222 區別 怎麼樣 B222可以正常使用
記事全体を表示
MIMXRT1060-EVKB - Debugger no longer reaches ResetISR/main, GDB disconnects after flash programming Hi NXP Team I'm facing a strange issue with my MIMXRT1060-EVKB that started suddenly. The board was working fine previously, but now I cannot debug any application, including the SDK examples. Environment Board: MIMXRT1060-EVKB IDE: MCUXpresso IDE 24.12.x Debug Probe: On-board LinkServer Connection: USB Problem When I start a debug session: The project builds successfully. Flash programming completes successfully. After programming, the debugger resets the target but never reaches ResetISR  or main(). The GDB session immediately terminates. Console output: Closing flash driver MIMXRT1060_SFDP_QSPI.cfx Flash Write Done Flash Program Summary: 850584 bytes in 0.06 seconds Starting execution using system reset and halt target Stopped (Was Reset) [Reset from Unknown] GDB stub (crt_emu_cm_redlink) terminating - GDB protocol problem: Pipe has been closed by GDB. What I have already tried Tested with a new SDK example (UART interrupt example) — same behavior. Placed a breakpoint at ResetISR — it is never hit. main() is never reached. Performed Mass Erase — no change. Rebooted the PC. Tried on another laptop with a fresh MCUXpresso installation — same issue. Verified the DIP switches are configured for QSPI Flash boot mode, not Serial Downloader (ISP) mode. Any suggestions would be greatly helpful. Thanks Prathyush. i.MXRT 106x Re: MIMXRT1060-EVKB - Debugger no longer reaches ResetISR/main, GDB disconnects after flash programm Hi @ShellyZhang , Thank you for your suggestion. I followed the exact sequence you recommended. I disconnected the power and debug cables, toggled the last two pins of SW4 to put the board into Serial Download Mode, reconnected the board, and performed a Mass Erase using the LinkServer GUI Flash Programmer. The mass erase completed successfully. After that, I restored the board to QSPI Boot Mode, reset the board, and started a new debug session. Unfortunately, the issue still persists. The application is programmed successfully, but the debugger does not reach ResetISR or main(). I also verified that the same behavior occurs with an unmodified SDK example project, so it does not appear to be specific to my application.   Thanks, Prathyush Re: MIMXRT1060-EVKB - Debugger no longer reaches ResetISR/main, GDB disconnects after flash programm Dear @Prathyush_27 , Please try this sequency: 1. Disconnect the power cable and the debug cable from the board, then set the board boot mode to Serial Download Mode. 2. Reconnect the power cable and the debug cable, then use MCUXpresso IDE → GUI Flash Tool / LinkServer GUI Flash Programmer → Erase Flash Memory → Mass Erase. 3. Restore the board to QSPI Boot Mode, reset the board, and then start a new debug session. Best Regards, Shelly  Re: MIMXRT1060-EVKB - Debugger no longer reaches ResetISR/main, GDB disconnects after flash programm Hi Prathyush_27, Thank you for your reply. Your feedback will help us better understand the issue and may also benefit others who encounter similar problems. Best Regards, Shelly Re: MIMXRT1060-EVKB - Debugger no longer reaches ResetISR/main, GDB disconnects after flash programm Hi @ShellyZhang , Thank you for your assistance. I was able to identify the root cause of the issue. It turned out to be the SW2 DIP switch configuration. The last two switches on SW2 had been accidentally toggled, which prevented the debugger from starting the application correctly. After restoring the last two SW2 switches to their original positions, everything worked as expected. The debugger now successfully reaches ResetISR and main(), and debugging works normally. This was a configuration issue on my board rather than a problem with the SDK or the debugger. Thank you again for your support. I hope this information is helpful to anyone who encounters a similar issue in the future. Re: MIMXRT1060-EVKB - Debugger no longer reaches ResetISR/main, GDB disconnects after flash programm Dear @Prathyush_27 , Could you please try the following two approaches? 1. Verify Flash Programming and Boot Please try using MCUXpresso Secure Provisioning Tool 26.06 to program a simple LED blink application while the board is in Serial Download Mode, and then switch the boot mode back to QSPI Boot Mode. If the LED application runs successfully after a reset, it indicates that the flash device and boot process are functioning correctly. In that case, I suspect that LinkServer GUI Flash Programmer may not have completed the flash erase operation successfully. If the LED application can boot and run after a reset, please try launching a normal debug session again to see whether the issue still occurs. 2. Run the Application from RAM Please modify the project configuration to run the application from RAM: 2.1 Enable Link application to RAM: ShellyZhang_0-1785828173999.png 2.2 Under Defined Symbols, configure: ShellyZhang_1-1785828247988.png XIP_EXTERNAL_FLASH=0 XIP_BOOT_HEADER_ENABLE=0 2.3 Rebuild the project. 2.4 Start a normal debug session and run the application. Please let us know the results of both tests, especially whether the LED application can boot successfully from QSPI flash and whether the RAM-based application can run under debug. Best regards, Shelly
記事全体を表示
I want to use flexio to work as a special spi, 20bit mosi output at the same time 20 chip dac need  to be controled  at the same time , I want to use flexio  to work as special spi,  to control the dac device. deltails as below: one  cs , one clk,  20 mosi,   use 20 pins,  to  output dac values to  20 dac devices at the  same time , can you give the  mcuexpross code  and project ? thanks! 回复: I want to use flexio to work as a special spi, 20bit mosi output at the same time Is  the  question two hard  lead to  there is nobody  can give  any suggestions  ? 回复: I want to use flexio to work as a special spi, 20bit mosi output at the same time 1、 cs pull low level 2、flexio transmit 20 channel mosi evrytime, every channel transmit one bit,  one transmit use one shift register, 3、transmit 8 times use all the 8 shift registers , and every channel transmit  8 bits。 4、step 2 、3 is one  dma  transmit.  use  3 times of dma to transmit 24bit  data every channel, because  the dac chipi is  24bits. 5、pull cs high。 can  this work ok? 回复: I want to use flexio to work as a special spi, 20bit mosi output at the same time is   there anybody ? Re: I want to use flexio to work as a special spi, 20bit mosi output at the same time the  chip i use is mcxn947. 回复: I want to use flexio to work as a special spi, 20bit mosi output at the same time Hi @justdomyself  For a similar implementation, I recommend checking the FlexIO QSPI application note AN14175 and the FlexIO SPI DMA examples in the MCUXpresso SDK. The AN14175 example demonstrates how to use FlexIO timers and shifters to create custom serial interfaces, which is closer to your requirement of driving 20 DAC channels simultaneously with one clock and multiple data outputs. The FlexIO SPI DMA example is also useful for understanding the basic FlexIO timer, shifter, and DMA configuration. BR Harry 回复: I want to use flexio to work as a special spi, 20bit mosi output at the same time Where is the project code for AN14175 located? Where can I download it? 回复: I want to use flexio to work as a special spi, 20bit mosi output at the same time Hi @justdomyself  Search | NXP Semiconductors Please search AN14175 in the NXP official website. And you can click the Associated File: AN14175SW to download the software. Harry_Zhang_0-1785384066285.png BR Harry 回复: I want to use flexio to work as a special spi, 20bit mosi output at the same time An error occurred during import: justdomyself_0-1785394860116.png An error occurred during compilation: justdomyself_1-1785394889652.png An error occurred during debugging: justdomyself_2-1785394917545.png When executing BOARD_PowerMode_OD, the debug function crashes immediately with the error shown in the image above. Could you provide a newer, working project? My software version: MCUXpresso IDE v25.6 [Build 136] [2025-06-27] 回复: I want to use flexio to work as a special spi, 20bit mosi output at the same time Hi @justdomyself  You can download the SDK version corresponding to AN14175. BR Harry
記事全体を表示
Image-specific SBOM and CVE assessment support for FlexBuild LSDK-25.12 Hi NXP team, We are using LSDK-25.12_DEBIAN-13_LF-6.12.20 with FlexBuild to build a Debian-based product image for the i.MX8MP. To support our vulnerability assessment and conformity assessment under RED / EN 18031, we need to establish a repeatable process for identifying the software components and known vulnerabilities in the final shipping image. We have reviewed the FlexBuild 25.12 source tree and found that: SBOM-flexbuild.spdx.json contains only a single package entry describing the FlexBuild tool itself, rather than the contents of a built image. SCR.txt is an SDK-wide Software Content Register and does not represent the components actually installed in a specific target image. We could not identify any image-specific SBOM or CVE manifest generation mechanism in flex-builder. Based on these findings, could you please clarify the following? Does NXP currently provide an official or recommended method for generating an image-specific SBOM, such as a per-image SPDX document, from a FlexBuild Debian build? If this capability is planned, could you indicate the target release or expected availability? Does NXP currently provide or plan to provide Vigiles integration for the Debian Linux SDK / FlexBuild, equivalent to the meta-timesys workflow available for Yocto? If direct integration is not available, is manually creating and importing a CSV manifest, as described in the Vigiles FAQ, still the recommended approach for FlexBuild-based images? What are the official sources for security advisories, CVE applicability information, and security fixes for the following components included in this release? linux-imx lf-6.12.20-2.0.0 uboot-imx lf-6.12.20-2.0.0 imx-atf imx-optee-os NXP-provided firmware and binary packages, such as DDR, HDMI, VPU, and wireless firmware For example, should we rely on NXP security advisories, fixed-CVE lists in release notes, specific maintained Git branches, or another official source? What is the maintenance and security-update lifecycle for LSDK-25.12 and its associated lf-6.12.20 BSP components? In particular: For how long will security fixes be provided for this release? Which branches or repositories should be monitored for backported fixes? What upgrade cadence does NXP recommend for products requiring an ongoing vulnerability-management process? Our goal is to establish a repeatable and evidence-based SBOM and CVE assessment process for the actual shipping image. References to any official documentation, supported tools, or recommended procedures would be greatly appreciated. Thank you. Re: Image-specific SBOM and CVE assessment support for FlexBuild LSDK-25.12 Hi @Chavira , Thank you for the clarification regarding the support status of the Debian distribution. We understand that the Debian integration itself is provided as a proof of concept. However, our remaining questions concern the underlying BSP components, which as far as we can tell are the same repositories and branches consumed by the Yocto BSP releases: - linux-imx (lf-6.12.20-2.0.0) - uboot-imx (lf-6.12.20-2.0.0) - imx-atf - imx-optee-os - NXP-provided firmware binaries (DDR, HDMI, VPU, wireless) Could you please confirm, independently of which build system or root filesystem is used: 1. Are security fixes for these components delivered through the lf-* release branches, and is the fixed-CVE information published in the Yocto BSP release notes the authoritative source for CVE remediation status of these components? 2. For the lf-6.12.20 generation specifically, which subsequent lf-* releases or branches should we monitor to obtain security fixes applicable to these components? 3. What is the maintenance duration for the lf-6.12.20 BSP component generation, and what upgrade cadence does NXP recommend for products that must maintain an ongoing vulnerability-management process? We are not asking NXP to support or validate our Debian-based image; we only need to identify the official sources of security-fix information for the NXP BSP components themselves, so that we can track and apply them in our own maintenance process. Thanks Re: Image-specific SBOM and CVE assessment support for FlexBuild LSDK-25.12 Hi  @Leo_dev, Thank you for contacting NXP Support. Unfortunately, Debian is considered by NXP to be a proof of concept distribution and therefore does not receive the same level of support, validation, and long term maintenance as our Yocto based BSP releases. In fact, during boot, Debian displays a disclaimer indicating that the software is provided without any guarantee of functionality or support. As a result, issues encountered on Debian may not receive the same level of investigation or validation as those reproduced on a Yocto based image. For production development and fully supported use cases, we recommend using the Yocto BSP provided by NXP. All of our publicly available source code is hosted on GitHub and can be accessed through the following organization: https://github.com/nxp-imx Best regards, Chavira Re: Image-specific SBOM and CVE assessment support for FlexBuild LSDK-25.12 Hi @Leo_dev, 1. Yes. Security fixes for NXP BSP components are typically delivered through the official lf- release branches. The i.MX Linux BSP release notes (RN00210) and associated manifests/change logs are the primary NXP references for tracking integrated fixes and CVE remediation status 2. For the LF6.12.20 generation, monitor subsequent BSP releases such as LF6.12.34_2.1.0, LF6.12.49_2.2.0, LF6.18.2_1.0.0, and newer releases, as security and maintenance fixes are carried forward into these branches. 3. For products requiring ongoing vulnerability management, NXP's recommended practice is to regularly track and evaluate newer BSP maintenance and quarterly releases to obtain security updates and bug fixes
記事全体を表示
S32K388 TCP/IP stack 5.0.0 not working Hi @PavelL, I was able to run the example TCP/IP stack example project previously with the following configuration: • S32KDS version 3.6.5 • RTD (Real-Time Drivers) version 7.0.0 • TCP/IP Stack version 4.0.0 However, after upgrading to the following versions and did the same setup procedure, it is not working: • S32KDS version 3.6.8 • RTD (Real-Time Drivers) version 7.0.1 • TCP/IP Stack version 5.0.0 I have attached my project. Thanks for the help again. Re: S32K388 TCP/IP stack 5.0.0 not working Hello @James_Zhang_SE , I need time for investigation. I'll do my best to reply within this week. Thank you for your understanding. Best regards, Pavel Re: S32K388 TCP/IP stack 5.0.0 not working Hello @James_Zhang_SE , I apologize for delayed response caused by my workload. The root cause is EthIf_Cfg.c , as we've already discussed in this thread S32K388 tcpip stack 4.0.0 missing lwip folder while compiling The example is working now on my S32K388EVB-Q289. Anyway, I did lots of changes in your project but the most critical is the EthIf_Cfg file. All modified files can be found in the attached zip. You may check the changes by yourself. Please notice that provided code is without any warranty. Once you replace files by the patch, please do not forget to do Update Code. Best regards, Pavel Re: S32K388 TCP/IP stack 5.0.0 not working Hi Pavel, Thank you so much for your help! After applying the same steps as before, I was able to ping and test the TCP loopback. I have a few quick questions: For the Ethif Config fix and RTD workarounds, will they be added in future releases of the driver and example project? Since I'm not too familiar with this stack. When something is not working, do you have a suggested systematic way to debug? Re: S32K388 TCP/IP stack 5.0.0 not working Hello @James_Zhang_SE , Thank you for sharing your current status.   If my previous post helped to solve the issue, please mark it as a solution, as this may help other users facing a similar problem.   Regarding point 1:   I have reported the EthIf_Cfg issue to the responsible software team. The release date of the fix is not known yet. There is still an internal discussion about where the RTD workaround should be implemented, whether in the MAC driver or in the clock configuration area. For now, we need to accept the current situation and apply the workaround manually.   Regarding point 2:   My usual debug flow is to check the pin configuration, clock configuration, interrupt configuration, FIFO sizes and the required RTD workaround code. The gPTP examples are also a very good reference, because they provide functional Ethernet-related configurations that can be used for comparison. Best regards, Pavel
記事全体を表示
IMX8M Plus GPU DRAM contention We are running Yocto Linux on an IMX8M Plus What we have noticed is that during any GPU activity, we get huge latency spikes for memory access from the CPU (1-3ms spikes). This is a huge issue, as we are using XDP for networking. We have tried tuning IMX8MP_ICM_A53, IMX8MP_ICM_GPU3D and IMX8MP_ICM_GPU2D, setting them to 7, 2, 2 for QoS control. This made the latency spikes less frequent, but they are still there. The only option we found was doing absolutely no GPU activity or removing the GPU from the device tree, however this is not acceptable for our use-case. Are there some other setting that could be tuned to alleviate this behavior? We cannot have the GPU locking the DRAM for more than a 50-100 μs at most Graphics & Display Linux Re: IMX8M Plus GPU DRAM contention Hi @richardlovgren, Thank you for contacting NXP Support! Could you please tell me which BSP version you are using? Does this issue reproduce on an EVK as well, or is it only occurring on your custom hardware? Could you also provide the log files, your device tree, and any other relevant information so that I can investigate and diagnose the issue on my side? Additionally, please share the exact steps to reproduce the problem, so I can try to replicate it in my setup. Best regards, Chavira
記事全体を表示
EZH-V use case for IMXRT700 Hi team NXP! From the spec of IMXRT700 it was said to be architected in the 3 domain of media, compute and sense domain, which each of the cores on chip would require their own separate image to run. But it seems that there are only very few documented usage of the EZH-V core. I have read the application notes AN14614, AN14618 and AN14654, but there are still very few information regarding this core and it roles in graphical processing for RT700. It was said that it is used to implement the smartDMA engine, but in other MCX family MCU there are no mentioning of the existence of this core and the smartDMA can be directly used by the Arm CM33 core via the mcuxpresso sdk provided APIs. So now I am extremely confused, can I still directly use the smartDMA on iMXRT700 directly or must I build the image for the EZH-V via LLVM as per AN14614 instruction? This seems quite counterintuitive though having to resort to RPMsg for IPC communication as supposed to be directly driven by the Cpu0. On top of this, I am not aware of any actual demo or use case that has been provided by NXP that explicitly utilized this EZH-V core. I have also review the some of the source headers available, and only some very intuitive basic operations have been provided. May I know what is the usage of the EZH-V? Re: EZH-V use case for IMXRT700 okay quick update, after taking a look of the smartDMA driver in the mainline Zephyr now I understand the situation. The smartDMA has always been/planned as a standalone subsystem with its own core that could have the potential to run firmware on its own, but never have been actually presented as a fully standalone RISC-V core. TomC818_0-1785476896221.png In the current existing example, the smartDMA has never really touched the custom firmware installation path and only used as a slightly special DMA IP. So now the question should pivot to if I could still use the smartDMA in the old fashion; directly invoked via the CM33 instead of doing the complex IPC setup, as of time of writing, the smartDMA IP is yet to be exposed as a supported IP of the official maintained mimxrt700_evk. TomC818_1-1785477330180.png Re: EZH-V use case for IMXRT700 Hi @mayliu1 , Thanks for the quick reply, so you mean the smartDMA is no longer coupled to the CM33 core and therefore must be used via the EZH-V core? In NXP's other MCU family like MCX the smartDMA is coupled to the CM33 and can be directly invoked via APIs, there are application notes documenting such use cases AN14172, AN14916, and they do not involve building the standalone image for the RISC-V core.  TomC818_0-1785417939531.png So what is the current architecture on the i.MXRT700? All documents about EZH-V are very ambiguous and I am not aware of any existing demo or guides that have thoroughly covered the usage of EZH-V.  Has NXP revised the architecture of smartDMA so it is no longer part of the core CM33 system and grouped to the RISC-V companion core instead? Can I still invoke the smartDMA directly via the CM33? Re: EZH-V use case for IMXRT700 Hi @TomC818 , Thank you so much for your interest in our products and for using our community. According to AN14614 and the i.MX RT700 Reference Manual, my understanding is that the SmartDMA functionality on the i.MX RT700 is implemented through the EZH-V RISC-V core rather than as a conventional DMA peripheral such as eDMA. In general, eDMA is still the preferred solution for standard memory transfer operations and can be configured directly by the CM33 core. However, SmartDMA-related processing, such as certain graphics/data post-processing or data format conversion tasks, is typically implemented by firmware running on the EZH-V core. Based on AN14614, CPU0 is responsible for loading and booting the EZH-V firmware, after which the actual processing is performed by EZH-V. From this perspective, EZH-V behaves more like a programmable coprocessor than a traditional DMA engine. Therefore, SmartDMA on RT700 is better viewed as a programmable processing engine running on the EZH-V core, rather than a traditional DMA peripheral directly driven by CM33 alone. Wish it helps you Best Regards May Re: EZH-V use case for IMXRT700 hey umm... if NXP didn't actually prepare or have any planned support for "With the assistance of the EZH-V, the Cortex-M33 cores can be freed to perform other tasks. While the EZH-V is executing the assigned task, the CM33 cores can execute other tasks in parallel." as per the reference manual described, I think I will be pursuiting a different option from ST or Infineon, considering the fact that RT700 documentations and examples are still extremely unpolished and all over the place. Support for most of the marketted unqiue features of this MCU are very sparse and few between. With such a the complex heterogeneous architecture, such little examples and guides are just abyssal. Re: EZH-V use case for IMXRT700 On i.MX RT700, SmartDMA is not exposed in the same way as a conventional standalone DMA peripheral directly controlled by the CM33. The SmartDMA-style capability is provided through the EZH-V engine, so the typical usage model is for the CM33 to load and start the EZH-V firmware, then coordinate with it as needed. mayliu1_1-1785830645435.png
記事全体を表示
S32K358 eMIOS ISR stuck at 85°C Dear NXP Support Team, we are facing an issue on S32K358 during temperature tests at around 85°C.   In our application we use 6 eMIOS channels, each one configured to generate interrupts on both PWM edges with a frequency of 200Hz.   At 85°C, the MCU sometimes gets stuck inside one eMIOS ISR. The ISR does not exit because the code checks the interrupt flag by reading the eMIOS registers, but the flag is 0 (file Emios_Mcl_Ip_Irq.c 😞   if (0U != ((Emios_Ip_paxBase[Instance]->CH.UC[Channel].S) & (uint32)eMIOS_S_FLAG_MASK))    After debugging, we noticed that when the issue occurs, the variable containing the eMIOS base address is NULL (Emios_Ip_paxBase). When the application works correctly, the same pointer is valid and the eMIOS registers are read properly. It seems that, in some conditions, the reference to the eMIOS peripheral is corrupted or cleared during ISR execution.   Do you have any indication about possible known issues or root causes, such as stack overflow, memory corruption, concurrent accesses, ISR handling, or temperature-related behavior?   Best regards, Simon Re: S32K358 eMIOS ISR stuck at 85°C Hi vane, I'm currently using RTD 7.0.0 Re: S32K358 eMIOS ISR stuck at 85°C Hi @simon98  Which RTD version are you working with? Any additional information would be helpful. Also, in RTD versions prior to 6.0.0, there was a known issue related to the incorrect memory mapping of static variables within function scope (ARTD-159985). This issue describes a problem where the variable Emios_Ip_paxBase, defined in both Emios_Mcl_Ip.c and Emios_Mcl_Ip_Irq.c, is assigned inconsistent initialization characteristics. Further details are provided in the Software Release Notes. BR, VaneB Re: S32K358 eMIOS ISR stuck at 85°C Hi @simon98  Could you please provide a simple application that reproduces the observed behavior? Also, could you confirm whether you are working with a custom board or an evaluation board? Additionally, could you share how the testing is being performed to confirm that the issue occurs at 85 °C? Re: S32K358 eMIOS ISR stuck at 85°C Hi @VaneB , Currently i'm working with a custom board with S32K358 where i use these eMIOS_1 channels to generate PWM of 200 Hz: ch3, ch9,  ch11, ch12, ch13, ch19. Code is generated using SImulink  Putting my custom board into a climatic cell at 85°C i've observed the stucking behaviour after some time. While i was debugging with S32DS (3.6.7) I've found out that it stuck into the ISR(EMIOS1_1_IRQ) so i've put into it some custom counter near entry/exit function, and also into Emios_Pwm_IrqHandler and Emios_Pwm_Ip_IrqHandler functions, in order to detect what parts of the code are executed.  After some tests i've found out that, when it stucks, inside static void Emios_Pwm_IrqHandler(const uint8 Instance, const uint8 Channel) {     /* Check that an event occurred on Emios channel */     if (0U != ((Emios_Ip_paxBase[Instance]->CH.UC[Channel].S) & (uint32)eMIOS_S_FLAG_MASK))     {         /* Check that an event occurred on EMIOS channel */         if (0U != ((Emios_Ip_paxBase[Instance]->CH.UC[Channel].C) & ((uint32)(eMIOS_C_DMA_MASK | eMIOS_C_FEN_MASK))))         {             Emios_Pwm_Ip_IrqHandler(Instance, Channel);         }         else         {             /* Do nothing - in case of spurious interrupts, return immediately */         }     } }   the if condition: if (0U != ((Emios_Ip_paxBase[Instance]->CH.UC[Channel].S) & (uint32)eMIOS_S_FLAG_MASK))   is always 0 because, for some reason, Emios_Ip_paxBase[Instance] points to 0. This means that nobody is clearing the interrupt flag so it enters in a loop where it cannot escape.   here's the code i've used to detect this probelm: static void Emios_Pwm_IrqHandler(const uint8 Instance, const uint8 Channel) {     // uint32_t s;     // uint32_t c;     // uint32_t s_flag;     // uint32_t s_ovr;     dbg_pwm_last_instance = Instance;     dbg_pwm_last_channel = Channel;     dbg_pwm_last_base_addr = (uint32_t)Emios_Ip_paxBase[Instance];     dbg_pwm_last_c_addr = (uint32_t)&Emios_Ip_paxBase[Instance]->CH.UC[Channel].C;     dbg_pwm_last_s_addr = (uint32_t)&Emios_Ip_paxBase[Instance]->CH.UC[Channel].S;         dbg_emiosipirq_static_state1++;     /* if (Instance == 1)     {         switch (Channel)         {             case 16:                 dbg_emiosipirq_static_cnt_ch16++;                 break;             case 17:                 dbg_emiosipirq_static_cnt_ch17++;                 break;             case 18:                 dbg_emiosipirq_static_cnt_ch18++;                 break;             case 19:                 dbg_emiosipirq_static_cnt_ch19++;                 break;             default:                 dbg_emiosipirq_static_cnt_oth1++;                 break;         }     }     else     {         dbg_emiosipirq_static_cnt_oth2++;     } */     /* Lettura reale dei registri vista dal codice */    /*  s = Emios_Ip_paxBase[Instance]->CH.UC[Channel].S;     c = Emios_Ip_paxBase[Instance]->CH.UC[Channel].C;     s_flag = s & (uint32)eMIOS_S_FLAG_MASK;     s_ovr  = s & (uint32)eMIOS_S_OVR_MASK;     dbg_pwm_last_s = s;     dbg_pwm_last_c = c;     dbg_pwm_flag_mask = (uint32)eMIOS_S_FLAG_MASK;     dbg_pwm_ovr_mask = (uint32)eMIOS_S_OVR_MASK;     dbg_pwm_last_s_and_flag = s_flag;     dbg_pwm_last_s_and_ovr = s_ovr;     if (s_flag != 0U)     {         dbg_pwm_s_flag_yes++;     }     else     {         dbg_pwm_s_flag_no++;     }     if (s_ovr != 0U)     {         dbg_pwm_s_ovr_yes++;     }     else     {         dbg_pwm_s_ovr_no++;     }     if ((s_flag == 0U) && (s_ovr != 0U))     {         dbg_pwm_flag0_ovr1_count++;     }     else if ((s_flag != 0U) && (s_ovr != 0U))     {         dbg_pwm_flag1_ovr1_count++;     }     else if ((s_flag != 0U) && (s_ovr == 0U))     {         dbg_pwm_flag1_ovr0_count++;     }     else     {         dbg_pwm_flag0_ovr0_count++;     } */     /* Check that an event occurred on EMIOS channel */     if (0U != ((Emios_Ip_paxBase[Instance]->CH.UC[Channel].S) & (uint32)eMIOS_S_FLAG_MASK))     {         dbg_emiosipirq_static_state2++;         /* Check that an event occurred on EMIOS channel */         if (0U != ((Emios_Ip_paxBase[Instance]->CH.UC[Channel].C) & ((uint32)(eMIOS_C_DMA_MASK | eMIOS_C_FEN_MASK))))         {             dbg_emiosipirq_static_state3++;             Emios_Pwm_Ip_IrqHandler(Instance, Channel);         }         else         {             dbg_emiosipirq_static_state4++;             /* Do nothing - in case of spurious interrupts, return immediately */         }     }     else     {         dbg_emiosipirq_static_state5++;         //Emios_Pwm_Ip_IrqHandler(Instance, Channel);         //Emios_Pwm_Ip_IrqHandler(1, 19);     } } These are the global vars in which i've stored the addresses which Emios_Ip_paxBase should point to: dbg_pwm_last_base_addr = (uint32_t)Emios_Ip_paxBase[Instance]; dbg_pwm_last_c_addr = (uint32_t)&Emios_Ip_paxBase[Instance]->CH.UC[Channel].C; dbg_pwm_last_s_addr = (uint32_t)&Emios_Ip_paxBase[Instance]->CH.UC[Channel].S; I've put also some custom code to read NVIC registers run time: attached you can find the file with Thread, general registers, NVIC registers and variables expressions, EMIOS registers, for 6 tests i made. Also i will provide you the S32DS project i used to test this behaviour in a private message. I hope all these information could be usefull. I remain at your disposal for any further information. BR, SImon Re: S32K358 eMIOS ISR stuck at 85°C Hi @simon98  Thank you very much for providing this information. Since the code appears to be getting stuck in EMIOS1_1_IRQ, which corresponds to eMIOS 1 Channel 19 based on your configuration, let’s try to narrow the analysis to this specific part. To simplify the debugging and rule out any interference from other modules, please create a minimal test project that only includes this eMIOS configuration. This will help us isolate the behavior and better understand the root cause. For guidance, you can review the examples provided in the thread S32M27x/S32K3 – eMIOS Usage. Does the same behavior still occur? Also, if you have an evaluation board, it would be great if you could try the same code there. Re: S32K358 eMIOS ISR stuck at 85°C Hi vane, I'll try this week to give you a simple project that replicate the behaviour Re: S32K358 eMIOS ISR stuck at 85°C Hi @VaneB , I tested the issue on my custom board using a simplified configuration that only includes the six eMIOS1 channels. Unfortunately, in this setup I am not able to reproduce the error. The application runs correctly and does not get stuck in EMIOS_1_IRQ. At the moment, I am looking into whether it is feasible to load the complete project developed for our custom board onto the EVB. Before proceeding, I would also like to understand if the hardware differences between the custom board and the EVB could potentially lead to any unexpected behavior or even damage to the EVB. BR, Simon Re: S32K358 eMIOS ISR stuck at 85°C Hi @simon98  Our evaluation boards are designed mainly for use at room temperature and have not been tested or qualified for very low or very high temperatures. You may still use the evaluation boards outside the room-temperature range, but we cannot guarantee their performance under those conditions. Re: S32K358 eMIOS ISR stuck at 85°C Hi @VaneB , After several attempts, I managed to create an EVB project that reproduces the application running on my custom board as closely as possible. In particular, I configured all the pins in the same way as in my custom project. I then tested this project on my custom board under 85°C conditions, and the eMIOS ISR issue still occurred: the application continued to get stuck. After that, I tested exactly the same project on the EVB under the same temperature conditions and over (90°C), but I was not able to reproduce the issue—the EVB continued to operate correctly without getting stuck. At this point, what would you recommend as the next steps to identify the root cause of the problem and find a possible solution? Please let me know if you need any additional information, measurements, or debugging data from my side. I have attached a ZIP file containing the complete EVB project and the pictures of the K358 on my custom board and on the EVB. Thank you for your support. BR Simone Re: S32K358 eMIOS ISR stuck at 85°C Hi @simon98  As the issue is observed on your custom board but not on the EVB, it would be worthwhile to investigate whether the root cause could be hardware-related. I recommend comparing your hardware design against the EVB schematic and reviewing the S32K3 Hardware Design Guideline to verify that all relevant recommendations have been properly implemented. Re: S32K358 eMIOS ISR stuck at 85°C Hi @VaneB,   the HW design has been reviewed on our side and no evident hardware issue has been found. Also, the board is not directly comparable with the NXP EVB due to different hardware design and operating conditions.   If a customer observes temperature-related issues on a custom board, how could it be possible to obtain one-to-one support from NXP?   BR, Simon Re: S32K358 eMIOS ISR stuck at 85°C Hi @VaneB  I would like to gently follow up on this topic, as we are still investigating the issue on our side and would appreciate your feedback. In particular, if the root cause were related to RAM corruption (for example, an out-of-bounds write or stack overwrite), which registers or diagnostic information would you recommend checking on the S32K358? Are there any specific fault status registers, ECC/error reporting registers, MPU-related registers, stack monitoring features, or other debug registers that could help identify whether memory corruption has occurred before the eMIOS ISR gets stuck? Any guidance on the most useful registers to inspect during debugging would be greatly appreciated. Thank you for your support. Best regards, Simon Re: S32K358 eMIOS ISR stuck at 85°C Hi @simon98  Since this appears to be a hardware-related issue specific to your board and we can not reproduce it, it is difficult to accurately diagnose the root cause through this support channel. We recommend contacting your distributor or local NXP representative for further assistance,
記事全体を表示
CGM-RD (UM12423) — NHS2634 never asserts INTERRUPT pin, NHS2x34_Init() hangs forever NHS2x34_Init() hangs indefinitely waiting for the NHS2634's interrupt pin to go high. I'd like help determining whether this points to a hardware issue, a power-sequencing issue, or a firmware configuration problem. Sequence of events: 1. NHS2634_HOSTIF_InitSpiAndInterrupt() runs and returns success. 2. NHS2x34_PMC_ResetAFE() is called. This issues an SPI write to the PMC control register (setting the AFE reset bit). It returns success (status = 0). 3. The code then waits in the following loop, expecting the chip to assert its interrupt pin high once it is ready to accept further SPI commands. This loop never exits. while (!NHS2634_HOSTIF_GetInterruptPinLevel()) { } Diagnostics already run: 1. Confirmed via SEGGER RTT logging that the loop is genuinely spinning (a live poll counter increments continuously into the tens of millions), not frozen or crashed. The CPU is alive and actively re-checking the pin. 2. Attached a debugger (J-Link/GDB) and halted mid-loop twice. The program counter was inside NHS2634_HOSTIF_GetInterruptPinLevel() calling GPIO_PinRead() both times, consistent with active polling. 3. Read back the PMC control register immediately after writing it. Expected a non-zero pattern reflecting the reset bit plus the write-protection byte just sent, but got back 0x00000000. 4. Ran a raw SPI loopback test (shorting MOSI to MISO directly on the sensor connector, with the NHS2634 module fully disconnected). Still got 0x00000000 back on a distinctive test pattern, instead of an echo of the transmitted bytes. 5. Repeated all of the above with the NHS2634 module completely unplugged. Results were identical to when it is connected. What I am trying to determine: I am using the official NXP-provided SDK and have not modified the driver code. I need to determine whether this is a hardware issue, a power-sequencing issue, or a firmware configuration issue on my side, and whether this looks like a hardware fault specific to my unit. Any guidance on where to look next would be appreciated. MCU-LINK-PRO,  MCUXPRESSO-VSC,  BLOOD-GLUCOSE-MONITOR  @nxp, @nxp5  Communication & Control(I3C | I2C | SPI | FlexCAN | Ethernet | FlexIO) MCXA MCXC MCXN Package and IO|GPIO Power Re: CGM-RD (UM12423) — NHS2634 never asserts INTERRUPT pin, NHS2x34_Init() hangs forever Since the SPI loopback failed to read 0x00, your host microcontroller's SPI peripheral/gpio routing is not actually transferring any data. Fix your host pin muxing, clocking, and GPIO initialization
記事全体を表示
Does the S32K344's hardware QSPI support (Continuous Clock) configuration? As the title suggests, I want to continuously output a clock so that my downstream devices can process data based on this clock. Re: S32K344的硬件QSPI,是否支持(连续时钟/ Continuous SCK)的配置? Hello @Zhangbohan, Unfortunately, S32K3 SPI module does not support continuous SCK. One option is to use the "Continuous Transfer": "In Master mode, CONT keeps the PCS asserted at the end of the frame size, until a command word is received that starts a new frame." Another option is using a GPIO to act as CS and controlled by software. In either way, the SPI SCK is generated when pushing data into the SPI TX buffer. If you use standard driver (MCAL or RTD), then the SCK pulse will be control by driver through pushing data to FIFO. The user can't control it. As far as I know, only S32K9-K7-K6 devices' DSPI module support continuous SCK mode. From S32K39 Reference Manual: Julin_AragnM_1-1785269564354.png Best regards, Julián Re: S32K344的硬件QSPI,是否支持(连续时钟/ Continuous SCK)的配置? Thank you very much for your reply. I have re-evaluated my solution and have another question. Does the S32K344 support DMA transfer via QSPI? I see relevant registers at the register level; however, there are no enable or channel configuration options in QSPI_IP; it seems configurable at the MCAL layer. This makes me unsure whether QSPI+DMA is supported, and if there are any relevant examples. The existing example "Mem_43_EXFLS" doesn't seem to use DMA. Re: S32K344的硬件QSPI,是否支持(连续时钟/ Continuous SCK)的配置? Hello @Zhangbohan, Yes, QSPI instance does support DMA usage, you can refer to chapter 78.5.4.1 from the S32K3XX Reference Manual for considerations.  Julin_AragnM_1-1785887187504.png However, I am not aware of any QSPI_IP + DMA examples. Best regards, Julián 
記事全体を表示
LS1046A 10GB SFP+ Configuration on kernel 6.12 Hello,  I have a custom board with the LS1046A, and I'm trying to use fm1-mac9 with a soldered SFP+ 10GB module.  My RCW in SERDES 1 is 0x1040:  hugoacata_0-1784298387879.png So 10GB in fm1-mac9 is well covered from the RCW's perspective. Looking at the SFP power and laser everything seems healthy, but I can't seem to get it to talk/link with the sfp in front of it, so I suspect my DTB configuration is incorrect.  This is my current configuration for that MAC:  xfi10g: ethernet@f0000 {   status = "okay";   pcsphy-handle = <&pcsphy6>;   pcs-handle = <&pcsphy6>;   pcs-handle-names = "xfi";   phy-connection-type = "10gbase-r";   fixed-link {     speed = <10000>;     full-duplex;   }; }; mdio@f1000 {   status = "okay";   pcsphy6: ethernet-phy@0{     compatible = "fsl,lynx-pcs";     reg = <0x0>;   }; }; sfp_mac9: sfp {   compatible = "sff,sfp";   i2c-bus = <&i2c3>;   status = "okay"; }; For reference, I'm running linux-qoriq kernel 6.12, and the SFP probes correctly during boot reading its EEPROM. Do you have a proper example of running this type of connection in fm1-mac9?  Re: LS1046A 10GB SFP+ Configuration on kernel 6.12 How about changing per LS1046ARDB, as fm1-mac10 is SFP+, and the driver support the SFP+, too. https://github.com/nxp-qoriq/linux/blob/lf-6.12.49-2.2.0/arch/arm64/boot/dts/freescale/fsl-ls1046a-rdb.dts#L156
記事全体を表示
LPC5514JBD64E Use for WS2812. Hi, Is LPC5514JBD64E suitable for working with WS2812 for a beginner. If yes Where Can I get The Code and other Details.  Thank you. LPC55xx Re: LPC5514JBD64E Use for WS2812. hi @Kishore02  Thank you for your post! There is not information about the implementation of WS2812 for the LPC551x, you could use the Programmable Logic Unit to do it, in another devices there are example using the FlexIO modules like in application code hub for the MCXA366: https://mcuxpresso.nxp.com/appcodehub?search=an-emulating-ws2812-bus-with-flexio-on-mcx366  Also, there is a post of a colleague that implement it for a Kinetis board: NXP FlexIO Generator for the WS2812B LED Stripe Protocol Hope this information help as a reference 
記事全体を表示
i.MX8MP_EVK: YOCTO Compilation Error do_package() (Issue: tar & *at()) Hi, These are my yocto build parameters: Release: imx-linux-walnascar BSP Version: imx-6.12.49-2.2.0 MACHINE: imx8mpevk DISTRO: fsl-imx-xwayland I have been using this build environment successfully for the past couple of months. However, I suddenly started encountering the attached error. To troubleshoot, I completely cleaned the build environment, reinitialized the repository (repo init), synced everything again, and performed a fresh build. Unfortunately, I am still facing the same issue. Please find the attached log file for your reference. I would appreciate your help in identifying the root cause and suggesting a solution. i.MX 8M | i.MX 8M Mini | i.MX 8M Nano Re: i.MX8MP_EVK: YOCTO Compilation Error do_package() (Issue: tar & *at()) bitbake imx-image-core Re: i.MX8MP_EVK: YOCTO Compilation Error do_package() (Issue: tar & *at()) What "bitbake command" are you using? I will do verification. Re: i.MX8MP_EVK: YOCTO Compilation Error do_package() (Issue: tar & *at()) Thank you for your response. I verified my build environment, and it already matches the configuration you recommended. Host OS: Ubuntu 22.04.5 LTS (Jammy) GNU tar version: GNU tar 1.34 $ cat /etc/os-release PRETTY_NAME="Ubuntu 22.04.5 LTS" ... $ tar --version tar (GNU tar) 1.34 However, I still encounter the same failure Re: i.MX8MP_EVK: YOCTO Compilation Error do_package() (Issue: tar & *at()) Please check the tar version, if the host is Ubuntu 24.04 and tar is 1.35 Build inside a container or VM with: Ubuntu 22.04 LTS GNU tar 1.34 Re: i.MX8MP_EVK: YOCTO Compilation Error do_package() (Issue: tar & *at()) Please find file below,  Here i am pasting the some lines of error  DEBUG: Executing python function extend_recipe_sysroot NOTE: Direct dependencies are ['/home/vvdn/LWT_Build/sources/poky/meta/recipes-devtools/binutils/binutils-cross_2.44.bb:do_populate_sysroot', '/home/vvdn/LWT_Build/sources/poky/meta/recipes-devtools/gcc/gcc-cross_14.3.bb:do_populate_sysroot', '/home/vvdn/LWT_Build/sources/poky/meta/recipes-devtools/quilt/quilt-native_0.68.bb:do_populate_sysroot', '/home/vvdn/LWT_Build/sources/poky/meta/recipes-kernel/kern-tools/kern-tools-native_git.bb:do_populate_sysroot', 'virtual:native:/home/vvdn/LWT_Build/sources/poky/meta/recipes-core/coreutils/coreutils_9.6.bb:do_populate_sysroot', 'virtual:native:/home/vvdn/LWT_Build/sources/poky/meta/recipes-devtools/bison/bison_3.8.2.bb:do_populate_sysroot', 'virtual:native:/home/vvdn/LWT_Build/sources/poky/meta/recipes-devtools/dwarfsrcfiles/dwarfsrcfiles.bb:do_populate_sysroot', 'virtual:native:/home/vvdn/LWT_Build/sources/poky/meta/recipes-devtools/flex/flex_2.6.4.bb:do_populate_sysroot', 'virtual:native:/home/vvdn/LWT_Build/sources/poky/meta/recipes-devtools/patch/patch_2.7.6.bb:do_populate_sysroot', 'virtual:native:/home/vvdn/LWT_Build/sources/poky/meta/recipes-devtools/pkgconfig/pkgconfig_git.bb:do_populate_sysroot', 'virtual:native:/home/vvdn/LWT_Build/sources/poky/meta/recipes-devtools/pseudo/pseudo_git.bb:do_populate_sysroot', 'virtual:native:/home/vvdn/LWT_Build/sources/poky/meta/recipes-devtools/rpm/rpm_4.20.0.bb:do_populate_sysroot', 'virtual:native:/home/vvdn/LWT_Build/sources/poky/meta/recipes-extended/bc/bc_1.08.1.bb:do_populate_sysroot', 'virtual:native:/home/vvdn/LWT_Build/sources/poky/meta/recipes-kernel/kmod/kmod_34.1.bb:do_populate_sysroot'] NOTE: Installed into sysroot: [] NOTE: Skipping as already exists in sysroot: ['gettext-minimal-native', 'binutils-cross-aarch64', 'cmake-native', 'gcc-cross-aarch64', 'libtool-native', 'm4-native', 'quilt-native', 'texinfo-dummy-native', 'kern-tools-native', 'linux-libc-headers', 'file-native', 'openssl-native', 'coreutils-native', 'expat-native', 'ncurses-native', 'readline-native', 'util-linux-libuuid-native', 'zlib-native', 'bison-native', 'dwarfsrcfiles-native', 'elfutils-native', 'flex-native', 'git-native', 'gnu-config-native', 'json-c-native', 'libedit-native', 'lua-native', 'make-native', 'patch-native', 'perl-native', 'pkgconfig-native', 'pseudo-native', 'python3-native', 'rpm-native', 'bc-native', 'bzip2-native', 'libarchive-native', 'libidn2-native', 'lzlib-native', 'xz-native', 'zstd-native', 'kmod-native', 'acl-native', 'attr-native', 'curl-native', 'gdbm-native', 'gmp-native', 'gnutls-native', 'libtasn1-native', 'libcap-native', 'libffi-native', 'libgcrypt-native', 'libgpg-error-native', 'libmicrohttpd-native', 'libmpc-native', 'libunistring-native', 'mpfr-native', 'nettle-native', 'p11-kit-native', 'popt-native', 'sqlite3-native'] DEBUG: Python function extend_recipe_sysroot finished DEBUG: Executing python function sstate_task_prefunc DEBUG: Python function sstate_task_prefunc finished DEBUG: Executing python function do_package DEBUG: Executing python function package_setup_pkgv DEBUG: Python function package_setup_pkgv finished DEBUG: Executing python function package_convert_pr_autoinc DEBUG: Python function package_convert_pr_autoinc finished DEBUG: Executing python function package_prepare_pkgdata NOTE: Installed into pkgdata-sysroot: [] DEBUG: Python function package_prepare_pkgdata finished DEBUG: Executing python function perform_packagecopy ERROR: Error executing a python function in exec_func_python() autogenerated: The stack trace of python calls that resulted in this exception/failure was: File: 'exec_func_python() autogenerated', lineno: 2, function: 0001: *** 0002:perform_packagecopy(d) 0003: File: '/home/vvdn/LWT_Build/sources/poky/meta/classes-global/package.bbclass', lineno: 363, function: perform_packagecopy 0359: rpath_replace (dvar, d) 0360:} 0361:perform_packagecopy[cleandirs] = "${PKGD}" 0362:perform_packagecopy[dirs] = "${PKGD}" *** 0363: 0364:python populate_packages () { 0365: oe.package.populate_packages(d) 0366:} 0367:populate_packages[dirs] = "${D}" File: '/usr/lib/python3.10/subprocess.py', lineno: 421, function: check_output 0417: else: 0418: empty = b'' 0419: kwargs['input'] = empty 0420: *** 0421: return run(*popenargs, stdout=PIPE, timeout=timeout, check=True, 0422: **kwargs).stdout 0423: 0424: 0425:class CompletedProcess(object): File: '/usr/lib/python3.10/subprocess.py', lineno: 526, function: run 0522: # We don't call process.wait() as .__exit__ does that for us. 0523: raise 0524: retcode = process.poll() 0525: if check and retcode: *** 0526: raise CalledProcessError(retcode, process.args, 0527: output=stdout, stderr=stderr) 0528: return CompletedProcess(process.args, retcode, stdout, stderr) 0529: 0530: Exception: subprocess.CalledProcessError: Command 'tar --exclude=./sysroot-only -cf - -C /home/vvdn/LWT_Build/build/tmp/work/imx8mpevk-poky-linux/linux-imx/6.12.34+git/image -p -S . | tar -xf - -C /home/vvdn/LWT_Build/build/tmp/work/imx8mpevk-poky-linux/linux-imx/6.12.34+git/package' returned non-zero exit status 2. Subprocess output: got *at() syscall for unknown directory, fd 4 unknown base path for fd 4, path lib couldn't allocate absolute path for 'lib'. tar: ./usr/lib: Cannot mkdir: Bad address got *at() syscall for unknown directory, fd 4 unknown base path for fd 4, path lib couldn't allocate absolute path for 'lib'. got *at() syscall for unknown directory, fd 4 unknown base path for fd 4, path lib couldn't allocate absolute path for 'lib'. tar: ./usr/lib: Cannot mkdir: Bad address tar: ./usr/lib/modules: Cannot mkdir: No such file or directory Re: i.MX8MP_EVK: YOCTO Compilation Error do_package() (Issue: tar & *at()) It seems that I don't have the permission to download the attachment. Would you please resend it again? Re: i.MX8MP_EVK: YOCTO Compilation Error do_package() (Issue: tar & *at()) Hi @yipingwang  Awaiting for your prompt support in further debugging. Re: i.MX8MP_EVK: YOCTO Compilation Error do_package() (Issue: tar & *at()) On your ubuntu PC, use the command "sudo apt install tar=1.34+dfsg-1build3" Re: i.MX8MP_EVK: YOCTO Compilation Error do_package() (Issue: tar & *at()) @Sanjiv_MnsDid this resolve the issue ? Re: i.MX8MP_EVK: YOCTO Compilation Error do_package() (Issue: tar & *at()) Hi @abannish  Please try below commands this works for me... wget http://archive.ubuntu.com/ubuntu/pool/main/t/tar/tar_1.34+dfsg-1build3_amd64.deb sudo dpkg -i tar_1.34+dfsg-1build3_amd64.deb  sudo apt-mark hold tar
記事全体を表示
Flash configuration confusion RT1176 Octal DDR Hello NXP I got some issues configuring the flash memory for Macronix Octal DDR mode. I am using the PX4 code stack on a custom board based on the NXP FMU-6XRT reference design. I am using the MX25UM51245G instead of the MX25UM51345G, but the part differences are minimal. I am trying to run it in Macronix Octal DDR mode with DQS external sampling at atleast 100MHz. Reference design is running it at 200MHz. The Boot Memory Configuration succesfully tests the memory with the desired configuration even at 166MHz. The configuration I have tried is the following default config. The first one, "g_flash_config" succesfully boots, writes, read, etc, but is not ideal for the software. "g_flash_fast_config" fails. I have tried reducing the frequency to 166MHZ, 133MHz, 50 MHz, and 30MHz without results in the DTR mode in the "fast_config". I have tried using the FCB generated from the Boot Memory Configuration, but there is some struct layout differences which have made it hard to apply to the PX4 code.  I am tried different combinations of csHoldTime, csSetupTime and dataValidTime without results aswell. I tried DQS interal in low freq DTR Octal, but it did not work either. What could I try next? #include /**************************************************************************** * Public Data ****************************************************************************/ locate_data(".boot_hdr.conf") const struct flexspi_nor_config_s g_flash_config = { .memConfig = { #if !defined(CONFIG_BOARD_BOOTLOADER_INVALID_FCB) .tag = FLEXSPI_CFG_BLK_TAG, #else .tag = 0xffffffffL, #endif .version = FLEXSPI_CFG_BLK_VERSION, .readSampleClksrc=kFlexSPIReadSampleClk_LoopbackInternally, .csHoldTime = 1, .csSetupTime = 1, .deviceModeCfgEnable = 1, .deviceModeType = kDeviceConfigCmdType_Generic, .waitTimeCfgCommands = 1, .controllerMiscOption = (1u << kFlexSpiMiscOffset_SafeConfigFreqEnable), .deviceType = kFlexSpiDeviceType_SerialNOR, .sflashPadType = kSerialFlash_1Pad, .serialClkFreq = kFlexSpiSerialClk_100MHz, .sflashA1Size = 64ul * 1024u * 1024u, .dataValidTime = { [0] = {.time_100ps = 0}, }, .busyOffset = 0u, .busyBitPolarity = 0u, .lookupTable = { /* Read Dedicated 3Byte Address Read(0x03), 24bit address */ [0 + 0] = FLEXSPI_LUT_SEQ(CMD_SDR, FLEXSPI_1PAD, 0x03, RADDR_SDR, FLEXSPI_1PAD, 0x18), //0x871187ee, [0 + 1] = FLEXSPI_LUT_SEQ(READ_SDR, FLEXSPI_1PAD, 0x04, STOP_EXE, FLEXSPI_1PAD, 0),//0xb3048b20 }, }, .pageSize = 256u, .sectorSize = 4u * 1024u, .blockSize = 64u * 1024u, .isUniformBlockSize = false, .ipcmdSerialClkFreq = 1, .serialNorType = 2, .reserve2[0] = 0x7008200, }; const struct flexspi_nor_config_s g_flash_fast_config = { .memConfig = { .tag = FLEXSPI_CFG_BLK_TAG, .version = FLEXSPI_CFG_BLK_VERSION, .readSampleClksrc=kFlexSPIReadSampleClk_LoopbackInternally, .csHoldTime = 3, .csSetupTime = 3, .deviceModeCfgEnable = 1, .deviceModeType = kDeviceConfigCmdType_Spi2Xpi, .waitTimeCfgCommands = 1, .deviceModeSeq = { .seqNum = 1, .seqId = 6, /* See Lookup table for more details */ .reserved = 0, }, .deviceModeArg = 2, /* Enable OPI DDR mode */ .controllerMiscOption = (1u << kFlexSpiMiscOffset_SafeConfigFreqEnable) | (1u << kFlexSpiMiscOffset_DdrModeEnable), .deviceType = kFlexSpiDeviceType_SerialNOR, .sflashPadType = kSerialFlash_8Pads, .serialClkFreq = kFlexSpiSerialClk_133MHz, .sflashA1Size = 64ul * 1024u * 1024u, .dataValidTime = { [0] = {.time_100ps = 10}, }, .busyOffset = 0u, .busyBitPolarity = 0u, .lookupTable = { /* Read */// EEH+11H+32bit addr+20dummy cycles+ 4Bytes read data /* Macronix manual says 20 dummy cycles @ 200Mhz, FlexSPI peripheral Operand value needs to be 2N in DDR mode hence 0x28 */ [0 + 0] = FLEXSPI_LUT_SEQ(CMD_DDR, FLEXSPI_8PAD, 0xEE, CMD_DDR, FLEXSPI_8PAD, 0x11), //0x871187ee, [0 + 1] = FLEXSPI_LUT_SEQ(RADDR_DDR, FLEXSPI_8PAD, 0x20, DUMMY_DDR, FLEXSPI_8PAD, 0x28),//0xb3288b20, [0 + 2] = FLEXSPI_LUT_SEQ(READ_DDR, FLEXSPI_8PAD, 0x04, STOP_EXE, FLEXSPI_1PAD, 0x00), //0xa704, /* Read status */ [4 * 2 + 0] = FLEXSPI_LUT_SEQ(CMD_DDR, FLEXSPI_8PAD, 0x05, CMD_DDR, FLEXSPI_8PAD, 0xfa), [4 * 2 + 1] = FLEXSPI_LUT_SEQ(RADDR_DDR, FLEXSPI_8PAD, 0x20, DUMMY_DDR, FLEXSPI_8PAD, 0x04), [4 * 2 + 2] = FLEXSPI_LUT_SEQ(READ_DDR, FLEXSPI_8PAD, 0x04, STOP_EXE, FLEXSPI_1PAD, 0x00), /* Write enable SPI *///06h [4 * 3 + 0] = FLEXSPI_LUT_SEQ(CMD_SDR, FLEXSPI_1PAD, 0x06, STOP_EXE, FLEXSPI_1PAD, 0x00),//0x00000406, /* Write enable OPI SPI *///06h [4 * 4 + 0] = FLEXSPI_LUT_SEQ(CMD_DDR, FLEXSPI_8PAD, 0x06, CMD_DDR, FLEXSPI_8PAD, 0xF9), /* Erase sector */ [4 * 5 + 0] = FLEXSPI_LUT_SEQ(CMD_DDR, FLEXSPI_8PAD, 0x21, CMD_DDR, FLEXSPI_8PAD, 0xDE), [4 * 5 + 1] = FLEXSPI_LUT_SEQ(RADDR_DDR, FLEXSPI_8PAD, 0x20, STOP_EXE, FLEXSPI_1PAD, 0x00), /*Write Configuration Register 2 =01, Enable OPI DDR mode*/ //72H +32bit address + CR20x00000000 = 0x01 [4 * 6 + 0] = FLEXSPI_LUT_SEQ(CMD_SDR, FLEXSPI_1PAD, 0x72, CMD_SDR, FLEXSPI_1PAD, 0x00),//0x04000472, [4 * 6 + 1] = FLEXSPI_LUT_SEQ(CMD_SDR, FLEXSPI_1PAD, 0x00, CMD_SDR, FLEXSPI_1PAD, 0x00),//0x04000400, [4 * 6 + 2] = FLEXSPI_LUT_SEQ(CMD_SDR, FLEXSPI_1PAD, 0x00, WRITE_SDR, FLEXSPI_1PAD, 0x01),//0x20010400, /*Page program*/ [4 * 9 + 0] = FLEXSPI_LUT_SEQ(CMD_DDR, FLEXSPI_8PAD, 0x12, CMD_DDR, FLEXSPI_8PAD, 0xED),//0x87ed8712, [4 * 9 + 1] = FLEXSPI_LUT_SEQ(RADDR_DDR, FLEXSPI_8PAD, 0x20, WRITE_DDR, FLEXSPI_8PAD, 0x04),//0xa3048b20, }, }, .pageSize = 256u, .sectorSize = 4u * 1024u, .blockSize = 64u * 1024u, .isUniformBlockSize = false, .ipcmdSerialClkFreq = 1, .serialNorType = 2, .reserve2[0] = 0x7008200, }; Re: Flash configuration confusion RT1176 Octal DDR Hello @SimonHugr, If you plan to use DDR mode, please keep in mind that the byte swapping configuration must also be considered. this post provides useful information about why important take in mind the byte swapping on the MX25UM51245GXDI00 when you are using DDR mode.  I highly recommend use the Boot Memory Configuration to generate the FCB, the Secure provisioning tool v26.6 offers a template of the MX25UM51245G, which can serve as a good starting point for your configuration. Also, as you may know, this tool allows you to test your configurations. Additionally, I recommend see this community post, particularly the steps starting from point 15. That section provides a more detailed explanation of how the Secure Provisioning Tool generates the boot memory configuration and may help clarify the parameters and output produced by the tool. Finally, you can use the flexspi_nor_polling_transfer_cm7 example to validate the generated FCB and verify that read and write operations are functioning correctly before proceeding with the boot configuration. BR Habib Re: Flash configuration confusion RT1176 Octal DDR No results yet sadly, I still think it has something to do with some data order swap is done and I am missing some configuration byte somewhere... Re: Flash configuration confusion RT1176 Octal DDR Thank you Masmiseim Indeed, I noticed that the data should be swapped for example. I will go through my LUT once more. Re: Flash configuration confusion RT1176 Octal DDR Refering to this thread: https://community.nxp.com/t5/i-MX-RT-Crossover-MCUs/Internal-Boot-from-Flash-memory-not-starting-on-imxRT1176-custom/m-p/1830699 I should swap the data order by editing the misc option and according to zephyr RTOS https://github.com/zephyrproject-rtos/hal_nxp/blob/3a36ee1f8b9fc2168fc0bf80377ace8298292993/mcux/mcux-sdk-ng/devices/RT/RT1170/MIMXRT1176/drivers/romapi/fsl_romapi.h#L340-L355 the dataswap byte goes in, but I think I am missing something. .pageSize = 256u, .sectorSize = 4u * 1024u, .blockSize = 64u * 1024u, .isUniformBlockSize = false, .ipcmdSerialClkFreq = 1, .isDataOrderSwapped = true .serialNorType = 2, .reserve2[0] = 0x7008200, Re: Flash configuration confusion RT1176 Octal DDR Hey @SimonHugr, One thing I would verify first is the actual difference between the MX25UM51245G and MX25UM51345G. Although the part numbers are very similar, they are not identical devices. According to the Macronix datasheets, the MX25UM51345G explicitly supports DOPI (Double Transfer Rate OPI) Byte Mode data sequence, while the MX25UM51245G belongs to a different product variant. This can affect the command format, byte ordering and LUT configuration used by the FlexSPI controller. You can also compare my configuration which works with MX25UM513 and MX25UW6345G: https://github.com/Masmiseim36/Coremark_iMXRT/blob/master/XiP/flexspi_flash_OSPI_Macronix.c Regars Re: Flash configuration confusion RT1176 Octal DDR Hello Habib For our firmware I am not able to use the secure provisioning tool to generate the FCB, and instead the FCB needs to be loaded on boot in firmware and therefor I need to create the mem_config and flash_config struct and configure it myself. I found the zephyr project referenced a isDataOrderSwapped byte in the flash_nor_config https://github.com/zephyrproject-rtos/hal_nxp/blob/3a36ee1f8b9fc2168fc0bf80377ace8298292993/mcux/mcux-sdk-ng/devices/RT/RT1170/MIMXRT1176/drivers/romapi/fsl_romapi.h#L347-L348 and Claude reference a padSettingOverride bit on bit 5 and a dataSwap bit on bit 7 in the controllerMiscOption, but I am not sure if the LLM is heavily hallucinating this information. When generating the FCB using the Secure Provisioning tool and converting it into a C-struct using this tool https://community.nxp.com/t5/i-MX-RT-Crossover-MCUs-Knowledge/i-MX-RT-FLEXSPI-booting-guide/ta-p/1669262 I do not get bit 5 or 7 set so I think the LLM is wrong, but the isDataSwapped is set and is referenced as reserved0[0] in the FCB normally. I can not find a template for the MX25UM51245G in the secure provisioning tool, only the MX25U51245G (which is a Quad flash), the MX25UM51345G and the MX25UMxxx45G. But any config Octal DDR config that I have tried have not worked to boot. Interestingly often the MCU goes automatically into ISP mode after certain configuration despite BT_FUSE_SEL = 1 and having pins BOOTMODE0/1 = 0. This has not been consistent and I am not sure what configuration causes this. Does the MCU go into ISP mode after failing to read the flash or something? Thank you BR Re: Flash configuration confusion RT1176 Octal DDR Hello @SimonHugr, I apologies there is not a template to MX25UM51245G, only are available the MX25U51245G and MX25UM51345G. Based on your description, it seems that communication with the flash device is working correctly using your current Boot Memory Configuration settings. When you click "Convert to Complete FCB", the tool programs the configuration into the flash and then reads it back using the parameters you specified, as described below: Habib_MS_0-1784753481563.png If any of the selected settings are not supported by the flash device, the tool should report an error similar to the following: Habib_MS_1-1784753506390.png To further verify that the LUT generated using the FCB converter from the community post is functioning correctly, could you please test it with the flexspi_nor_polling_transfer_cm7 SDK example while running the application from internal RAM? Please let me know if you have questions about the example. In addition, could you provide me a few more details about the application you are trying to boot? -Is an SDK example or if your own application? -Which IDE you are using? -Is your application performing XIP or NON-XIP? -Are you accessing the flash at any point other than during the boot process? Regarding to entering in ISP mode, could you please make sure that the boot pins on your custom board followed the recommendations mentioned in the chapter 5 "Boot, reset, and miscellaneous" of the Hardware Development Guide for the MIMXRT1160/1170? This to avoid any hardware issue regarding the boot pins.   Answering your question, you can enter in ISP mode if is not available a valid image, as shown the figure 10-1 "boot flow" of the RM: Habib_MS_2-1784754516601.png BR Habib  Re: Flash configuration confusion RT1176 Octal DDR Hello Habib. I got octal SPI STR mode working at 200MHz now atleast. The problem was some magic non-described "reserve2" bytes that was being set. I also opted to set a config cmd sequence ontop of the device mode sequence setting an additional byte. Setting the byte swap did not accomplish anything, but I am happy with the speed I am able to achieve at 200MHz STR Octal Best regards
記事全体を表示
[S32G3]An abnormal value has occurred in the Can_SharedMemory word0 of LLCECAN. Hi NXP Experts, There was an abnormality in the use of the LLCE can function of the S32G399A in our project. Occasionally, there was an issue with the reception of a certain CAN message reported by the ECU, while the transmission was normal. After debugging, it was found that the can interrupt could be triggered normally, but the u32Word0 read from Can_SharedMemory changed from 0x18008 to 0x1800f, which was an abnormal value. The calculated u32MbMessageId was 0.This led to message loss. The RxMbDescIdx had a value and was changing, and word1 sometimes was 0 but was also changing. This situation occurred sporadically, and the affected CAN line was also random. Please help analyze this situation,The debugging screenshots are provided below. How should I proceed with the next debugging steps, or what solutions are there? The LLCE version is: 1.0.10 . LLCE_Abnormal.png Re: [S32G3]An abnormal value has occurred in the Can_SharedMemory word0 of LLCECAN. Hi,Joey_z Yes, we use our own boards and software. We employ LLCE in the M core and have integrated the MICROSAR com protocol stack of vector. RTD version:RTD_4.4_5.0.0_QLP03 Re: [S32G3]An abnormal value has occurred in the Can_SharedMemory word0 of LLCECAN. Hi,canhe Thank you for contacting us. Could you tell us more information? 1. Which version of RTD are you using? 2.Are you using your own boards and your own software? BR Joey Re: [S32G3]An abnormal value has occurred in the Can_SharedMemory word0 of LLCECAN. Hi NXP Experts, Syncing the information: In an abnormal situation, we read the controller status through Can_Llce_GetControllerMode as "start", and then executed a "stop->start" transition through the Can_43_LLCE_SetControllerMode interface. The abnormal CAN can recover. From the value of word0, it seems that there was an error in the internal DTE kernel of LLCE when transferring data to the shared memory. Currently, the abnormality probability is still quite high at around 20%-30%. Our team has signed the relevant NDA documents. Could you please prioritize the handling of this issue? Re: [S32G3]An abnormal value has occurred in the Can_SharedMemory word0 of LLCECAN. Hi,canhe   Ok, we will raise the priority of your questions! 1.Could you please tell me whether the CAN frames you received originated from an external device or from such the CANoe device? Is it receiving CAN or CANFD frame? 2.What is the set baud rate? Which port are you using? 3.is the frame be processed by the internal core or routed via CAN2CAN? BR Joey Re: [S32G3]An abnormal value has occurred in the Can_SharedMemory word0 of LLCECAN. Hi,canhe It seems that you have made some changes to Can_Llce_ProcessRxMb. Did you have any issues before the changes were made? Could you share the modified code? Joey_z_0-1785135823536.png BR Joey Re: [S32G3]An abnormal value has occurred in the Can_SharedMemory word0 of LLCECAN. Hi,Joey Thank you for your reply. This issue occurred before I added the debugging code. I added the debugging code to confirm the specific cause. The debugging code merely reads certain states. It seems that the value of the shared memory is abnormal. The patch has been provided to you. Re: [S32G3]An abnormal value has occurred in the Can_SharedMemory word0 of LLCECAN. Hi,canhe Thank you for your information. 1.In the scenarios where you encountered problems, what was the Busload of the CAN bus? Is the Busload too high? 2.When frame loss occurs, does the Notification report any errors? If you have any error messages, please share them with me. Joey_z_0-1785211817403.png 3.When does the error occur - during the Routing process or when the frame is sent to the Host? Is it CAN or CAN FD frame that is being used? BR Joey Re: [S32G3]An abnormal value has occurred in the Can_SharedMemory word0 of LLCECAN. Hi,Joey 1. The bus load rate is between 40% and 50%, which doesn't seem very high. 2. BCAN_RXFIFO_OVERRUN has occurred under abnormal conditions, but I also observe this notification during normal operation. 3. Currently, LLCE does not have routing functionality enabled; it only forwards data to the host. Most frames used are CAN FD, with a small number of CAN frames. Re: [S32G3]An abnormal value has occurred in the Can_SharedMemory word0 of LLCECAN. Hi,joey Thank you for your reply. I will reduce the load rate and conduct the test again. Regarding the second point you mentioned about the MB size, I have tried increasing it from 20 to 300, but there were still abnormalities. Furthermore, do you know if LLCE has any internal logic regarding the handling of shared memory? Under what circumstances would an abnormal value occur for the "word0" field? For instance, if the value of "word1" is written to "word0". Re: [S32G3]An abnormal value has occurred in the Can_SharedMemory word0 of LLCECAN. Hi,canhe 1.Test to reduce the bus load and observe whether the frequency of the problematic frames decreases. 2.Also, try to increase the number in the parameters shown in the picture. Joey_z_0-1785313583389.png BR Joey Re: [S32G3]An abnormal value has occurred in the Can_SharedMemory word0 of LLCECAN. Hi,joey 1. The received CAN frames originated from the external ECU. Currently, the abnormality is replicated in the test bench using the CANOE device for simulation. In reality, the abnormality has occurred in both situations. The majority of the received messages are CANFD frames, while a small number are CAN frames. 2. The baud rate is set at 500k for the arbitration segment, 2M for the data segment, and 80% for the sampling rate. The controller uses BCAN1-BACN5. 3. The frames are processed by the internal core. Re: [S32G3]An abnormal value has occurred in the Can_SharedMemory word0 of LLCECAN. Hi,canhe Thank you for your detail information. Are all of you using BCAN1-BACN5 to perform the receiving frame operation? I use the same version of LLCE and the same configuration as yours in a receiving testing on one port, and not encounter the similar error as yours. Joey_z_0-1785405650366.png BR Joey Re: [S32G3]An abnormal value has occurred in the Can_SharedMemory word0 of LLCECAN. Hi,Joey We mainly use BCAN1-BCAN3 to receive most of the application message frames. BCAN4 is currently not capable of sending or receiving data. BCAN5 is connected to the internal bus and transmits a small number of messages. Re: [S32G3]An abnormal value has occurred in the Can_SharedMemory word0 of LLCECAN. Hi,canhe According to the previous tests. Will reducing the CAN busload and using a single CAN channel cause any problems for you? BR Joey Re: [S32G3]An abnormal value has occurred in the Can_SharedMemory word0 of LLCECAN. Hi,joey Thank you for your help. I have completed this case. The tracking number is: 00997151. Re: [S32G3]An abnormal value has occurred in the Can_SharedMemory word0 of LLCECAN. Hi,Joey Could I kindly ask if it's convenient for you to contact the local FAE (Field Application Engineer) for on-site support or online support in China? I think this would help us solve the problem more quickly. Re: [S32G3]An abnormal value has occurred in the Can_SharedMemory word0 of LLCECAN. Hi,canhe Please try to create a case through the link below. https://support.nxp.com Regarding this issue, please fill in the relevant case information, I will help you contact the software team and LLCE experts through internal channels. BR Joey
記事全体を表示
Deep Sleep Mode of iMX937 I am using iMX95lpddr5 evk, triggered the deep sleep mode want to know about the state, clock frequency and power consumption of suspended and non suspended cores among A55, M7 and M33. Re: Deep Sleep Mode of iMX937 On i.MX95 LPDDR5 EVK, “deep sleep” maps to the i.MX 95 Suspend / DSM-style low-power cases . The A55 is suspended/power-gated; M33 is not running application workload, typically shown as clock-gated/idle ; M7 depends on whether you suspend it too or keep it as the wake/real-time core. The power numbers in AN14449 are SoC rail/group totals , not per-core power. Low-power case Cortex-A55 state / freq Cortex-M33 state / freq Cortex-M7 state / freq DDR state Reported power System in DSM Suspend; clock not detectable Clock gating; clock not detectable Suspend; clock not provided Retention 25.65 mW GROUP_SOC_FULL total  Linux Suspend + CM7 WFI Suspend / 0 Clock gating or idle / 0 WFI / 400 MHz Retention 178.48 mW GROUP_SOC_FULL total  Linux Suspend + CM7 CoreMark (TCM) Suspend / 0 Clock gating or idle / 0 CoreMark / 400 MHz Retention 197.24 mW GROUP_SOC_FULL total  Linux Suspend + CM7 FlexCAN transaction Suspend / 0 Clock gating or idle / 0 FlexCAN / 800 MHz Active, 6400 MT/s 659.71 mW GROUP_SOC_FULL total  Linux Suspend + CM7 NETC / Ethernet Suspend / 0 Clock gating or idle / 0 NETC / 800 MHz Active, 6400 MT/s 956.17 mW GROUP_SOC_FULL total  Linux Suspend + WoL A55 suspended M33 idle/low-power context wake-capable configuration; exact core table not in the retrieved chunk depends on WoL setup 342.72 mW GROUP_SOC_FULL total  A few interpretation notes: The i.MX 95 Reference Manual describes Suspend as the maximum-power-saving mode where unnecessary clocks/supplies are off, the Cortex-A55 CPU is fully power-gated, PHYs that can be powered down are off, and VDD_SOC is reduced to suspend voltage. In System in DSM , AN14449 explicitly says the usage is CA55=Suspend, CM33=Clock gating, CM7=Suspend, DDR=Retention , and also notes that because CA55 and CM33 are not working, clocks cannot be detected. For Linux suspend with M7 kept active, the non-suspended core is CM7 ; its clock is either 400 MHz for WFI/CoreMark retention cases or 800 MHz for FlexCAN/NETC cases, while A55 and M33 show 0 MHz in the case tables. The published power data is not isolated per A55/M7/M33 core . AN14449 reports rail/group measurements such as GROUP_SOC_FULL and GROUP_DRAM; for example, DSM reports vdd_arm as 0 mW and vdd_soc as 3.85 mW within a GROUP_SOC_FULL sum of 25.65 mW, but that is still rail-level, not individual-core power. Takeaway: if M7 is also suspended, DSM is about 25.65 mW; if M7 stays alive during Linux suspend, total SoC power rises from about 178–197 mW at 400 MHz to about 660–956 mW at 800 MHz depending on the peripheral workload. Re: Deep Sleep Mode of iMX937 For I.Mx95, there are several power mode including RUN mode, Lower power RUN mode, IDLE mode, SUSPEND mode and Battery Backed Secure Module mode. For detailed power consumption data, please refer to IMX95AEC datasheet. For i.Mx937, the device is at preproduction phase and only factsheet is available right now. Not sure about how the test data come from and what the deep sleep mode you refer to...
記事全体を表示
S32K312 temperature sensor inaccurate reading Hello NXP Team, I am working on the S32K312​ internal temperature sensor and need help with incorrect temperature readings. I have reviewed similar threads and confirmed the basic configurations, but the ADC results do not reflect the ambient temperature. What I have done so far: (1) TEMPSENSE clock enabled​-Screenshot attached  SunLucas_0-1784265425989.png (2)ADC configuration ADC instance: ADC0 Channel: Temperature Sensor (TEMPSENSE) Trigger mode: Software trigger SunLucas_1-1784265855587.png (3)Measurement routine Periodically start ADC conversion Wait for conversion complete flag Read ADC data register SunLucas_3-1784266057594.png (4)Result However, the converted temperature value does not match the actual ambient temperature. SunLucas_4-1784266156349.png Any guidance, clarification, or reference code for the S32K312 temperature sensor would be greatly appreciated.   Thanks in advance for your support!   Best regards, Re: S32K312 temperature sensor inaccurate reading Hi@SunLucas The temperature channel requires a relatively long sampling time, with a minimum of 1.2 microseconds. Therefore, please check the sampling time settings. Re: S32K312 temperature sensor inaccurate reading I further switched the ADC voltage reference to 0x50, but the issue persists: The temperature readings deviate significantly from the ambient temperature (28°C). Temperature data retrieved via the API exhibits severe fluctuations, as shown in the attached plot. SunLucas_2-1784276930276.png SunLucas_1-1784276815975.png Re: S32K312 temperature sensor inaccurate reading Hi@SunLucas Then you should set TempSense voltage supply to: 5V * 16 = 0x50 Re: S32K312 temperature sensor inaccurate reading The TempSense voltage supply is configured as 0x58, hardware's VDD_HV_A supply voltage is 5V SunLucas_1-1784274126228.png Re: S32K312 temperature sensor inaccurate reading Hi@SunLucas Please check the "TempSense Voltage Supply" and tell me what your current hardware's VDD_HV_A supply voltage is. Re: S32K312 temperature sensor inaccurate reading changed the sampling time division ratio from 2 to 4, but the collected temperature data is still incorrect. Please help me troubleshoot the root cause. The detailed configuration is as follows: SunLucas_0-1785819399965.png SunLucas_1-1785819416950.png SunLucas_2-1785819429465.png SunLucas_3-1785819445393.png Re: S32K312 temperature sensor inaccurate reading Hi@SunLucas You can send me your EB configuration file, and I'll check it for you. There are two points to note: first, the reference voltage of the Temper Sensor must match the onboard VDD_HV_A; second, the sampling time. Once you've verified that these two points are correct, then there are no other points to note for this module.
記事全体を表示
Issue: CONFIG_IMX_RPMSG_TTY is built as a module but appears as "not set" after flashing Android Hi NXP Team, I am working on the i.MX8M Mini LPDDR4 EVK with the Android 16 BSP and trying to enable RPMsg communication between the Cortex-A53 and Cortex-M4. Configuration I enabled the NXP RPMsg TTY driver in the kernel configuration: CONFIG_IMX_RPMSG_TTY=m I also added the module to SharedBoardConfig.mk: $(KERNEL_OUT)/drivers/rpmsg/imx_rpmsg_tty.ko The module is built successfully. The generated kernel configuration confirms it is enabled: grep CONFIG_IMX_RPMSG_TTY out/target/product/evk_8mm/obj/KERNEL_OBJ/.config Output: CONFIG_IMX_RPMSG_TTY=m The module is also generated successfully: out/target/product/evk_8mm/vendor_dlkm/lib/modules/imx_rpmsg_tty.ko and is packaged into the Android image. Runtime Observation After flashing the board, the running kernel configuration does not report the RPMsg module configurations. adb shell zcat /proc/config.gz | grep RPMSG Output: CONFIG_GKI_HIDDEN_RPMSG_CONFIGS=y # CONFIG_RPMSG_WWAN_CTRL is not set # CONFIG_RPMSG_TTY is not set # CONFIG_SND_SOC_FSL_RPMSG is not set CONFIG_RPMSG=y CONFIG_RPMSG_CHAR=y # CONFIG_RPMSG_CTRL is not set # CONFIG_RPMSG_NS is not set # CONFIG_RPMSG_QCOM_GLINK_RPM is not set # CONFIG_RPMSG_VIRTIO is not set Also, adb shell zcat /proc/config.gz | grep IMX_RPMSG returns no output. However, the corresponding RPMsg modules are loaded successfully: lsmod | grep -i rpmsg Output: snd_soc_imx_rpmsg snd_soc_rpmsg_ak4497 imx_audio_rpmsg snd_soc_fsl_rpmsg imx_pcm_rpmsg i2c_rpmsg_imx virtio_rpmsg_bus rpmsg_ns This indicates that the modules are built and loaded correctly, but /proc/config.gz does not reflect their configuration. Questions Is it expected that /proc/config.gz on the Android 16 BSP only reflects the base GKI kernel configuration and not the vendor module configuration? Why is CONFIG_IMX_RPMSG_TTY=m not visible in /proc/config.gz even though imx_rpmsg_tty.ko is built and packaged? Is there an additional configuration required for the running kernel configuration to include vendor module options? Could this behavior be related to Android GKI and vendor_dlkm module packaging? Any clarification would be appreciated. Android i.MX 8M | i.MX 8M Mini | i.MX 8M Nano Re: Issue: CONFIG_IMX_RPMSG_TTY is built as a module but appears as "not set" after flashi Hello @vp1  Hope you are doing very well. Could you please share what device tree are you using? Can you please try using the imx8mm-evk-rpmsg.dts? Best regards, Salas. Re: Issue: CONFIG_IMX_RPMSG_TTY is built as a module but appears as "not set" after flashi Hi @Manuel_Salas , Thank you for your response. Currently, my Android AOSP build is using the device tree imx8mm-evk.dts. I can see that imx8mm-evk-rpmsg.dts is also available and is built successfully. Could you please let me know how to configure the Android build to use imx8mm-evk-rpmsg.dts instead of imx8mm-evk.dts during boot? Is there any specific configuration in the Android BSP, U-Boot, or imx-mkimage that selects which device tree is packaged and loaded? Thank you for your guidance. Best regards, Vikas Patil
記事全体を表示