We believe they were able to boot the board, but we do not have the root cause information on what the problem was.
Best,
Neeraj
bpiquette,
The recommendation was added based on section 9.2.2.2 of TPS65217C datasheet(https://www.ti.com/lit/ds/symlink/tps65217.pdf) and app note(https://www.ti.com/lit/an/slva901/slva901.pdf).
We have seen a customer see spikes at VIN_USB preventing the board from booting through VIN_AC. Please probe voltage at VIN_USB when you are powering the board to see if there grounding the USB is the problem in your use case.
Best,
Neeraj
Gil,
You can chose any AF to build your interfaces. Please take a look into STM32CubeMX to build your pin configuration.
The pin muxing takes place in TF-A, u-boot and Linux kernel based on the deice trees for each of those components in the boot chain. For example, if you are trying to boot from eMMC, you will need to setup the SDMMC peripheral in TF-A, u-boot and kernel device tree. In general, u-boot and kernel device trees are the same. TF-A device tree can be minimal to setup the boot interfaces and clock tree.
Please note that by default, to boot from a certain interface, you will need certain pin assignments. Take a look at https://wiki.st.com/stm32mpu/wiki/STM32MP15_ROM_code_overview for all the pin configuration options needed. If you want, you can modify these default pin configurations using OTP registers.
STM32MP157C and STM32MP153C do not differ in pin configuration. So, you can use OSD32MP157C and OSD32MP153C as long as you know the differences in the internal SoC functionality.
Best,
Neeraj
BillR,
Glad you are able to resolve your problem. As you indicated, eMMC and SD card have different partition layouts. Please see https://wiki.st.com/stm32mpu-ecosystem-v2/wiki/STM32CubeProgrammer_flashlayout for reference.
Best,
Neeraj
Gil,
Apologies for not being clear. Yes, STLink should be used to debug boot phases of A7, and can be used to debug full applications on M4. For debugging full Linux applications, ethernet connection is required. Please take a look at https://wiki.st.com/stm32mpu/wiki/GDB for all use cases. On the other hand, tracing applications do not require ethernet/STLink, just a UART terminal for messages.
Best,
Neeraj
Gil,
You can debug the kernel using GDB. Please see https://wiki.st.com/stm32mpu/wiki/Category:Debugging_tools, specifically, https://wiki.st.com/stm32mpu/wiki/Debugging_the_Linux_kernel_using_the_GDB. Tools available to trace and debug on Linux are described here: https://wiki.st.com/stm32mpu/wiki/Linux_tracing,_monitoring_and_debugging#Trace_and_debug_overview_per_Linux_software_frameworks.
Best,
Neeraj
Farid,
USB Flashing is the officially supported method to flashing eMMC or other flash memories on board from ST. You can add an SD card slot if you want to boot an image from preprogrammed SD card. Unfortunately, JTAG cannot be used to program eMMC and is not a supported use case from ST. Please see https://community.st.com/s/question/0D53W000004HK91SAG/how-to-connect-and-debug-cortexa7-cores-on-stm32mp157cdk2 for a related discussion, application level debug is supported on A7, but baremetal is not officially supported.
Best,
Neeraj
Gil,
1. Yes. You can also add an SD card slot to boot with a Linux image
2. Yes
3. No, Engineering mode offers JTAG debugging for the M4 core using Cube IDE/Keil
4. Using JTAG, you will be able to debug on the M4 core specifically. The A7 core does not have JTAG debugging support via Cube IDE/Keil. You will need to use something like gdb
Best,
Neeraj
Gil,
You cannot use the M4 core without powering up the PMIC completely. In fact, see https://wiki.st.com/stm32mpu/wiki/STM32MP15_ROM_code_overview, which states that the A7 needs to boot up first before M4 can execute code.
If you don’t have provisions to change the hardware configurations for VDD, BYPASS_REG1V8 and VDDA_REG1V8, during programming and production, we recommend you make some modifications to your board design.
Best,
Neeraj
Gil,
Please take a look here: https://wiki.st.com/stm32mpu/wiki/STM32CubeProgrammer_STPMIC1_NVM_management. The page states that PMIC NVM programming is only supported in USB/serial boot mode.
If you want to, you can probably create an M4 program to flash the PMIC NVM, but this mode is not different from normal boot in terms of the power up of the PMIC and power rails.
Best,
Neeraj
Rodrigo,
Have you tried using “make headers_install” using the Debian SDK(https://github.com/octavosystems/osd32mp1-debian)? Please see https://www.kernel.org/doc/html/latest/kbuild/headers_install.html for more information. You can modify the Makefile to build the Debian image here: https://github.com/octavosystems/osd32mp1-build-tools/blob/master/Makefile#L91.
Best,
Neeraj
Gil,
First, I am assuming you want to run baremetal code on the M4 core and not on the A7 as baremetal code is not supported on the A7. There are a couple of ways of debugging code on M4. Please take a look at the following links:
1. M4 getting started from ST: https://wiki.st.com/stm32mpu/wiki/Getting_started/STM32MP1_boards/STM32MP157x-DK2/Develop_on_Arm%C2%AE_Cortex%C2%AE-M4
2. Cube IDE how to: https://wiki.st.com/stm32mpu/wiki/How_to_debug_a_user_space_application_with_STM32CubeIDE
If you are looking to debug the kernel, this page: https://wiki.st.com/stm32mpu/wiki/Linux_tracing,_monitoring_and_debugging provides all the tools available to you. Additionally, https://wiki.st.com/stm32mpu/wiki/STM32MP1_Platform_trace_and_debug_environment_overview takes you through all the tools/debug ports available for debug on each software component.
GDB can be used to debug the boot stages: https://wiki.st.com/stm32mpu/wiki/GDB.
As for the JTAG hardware, we recommend STLINK. Please see https://octavosystems.com/forums/topic/getting-started-with-osd32mp1-brk-st-link-jtag-interface/ for a guide to use for the BRK/RED board.
You can also use Engineering boot mode(https://wiki.st.com/stm32mpu/wiki/STM32CubeMP1_development_guidelines) to debug on M4 without any interference from the A7. You can see the boot switch configuration for Engineering boot mode on the 1st sheet of OSD32MP1-RED schematics: https://octavosystems.com/docs/osd32mp15x-red-schematic-pdf/.
Hope this helps.
Best,
Neeraj
Gil,
“VIO is connected to VDD internally in the SIP” – Yes, this is a problem.
Since PMIC comes up by default according to the programming in NVM, you cannot stop the power up midway.
You can program the PMIC using ST’s Cube Programmer(https://www.st.com/en/development-tools/stm32cubeprog.html), but that requires the device to be powered up as well. There is no JTAG port on the PMIC, so programming through JTAG would need to be done through the M4.
We previously had success pulling NRST low and supplying VIO via VDD externally to re-program the PMIC. Please let us know here if you can try that with the current spin of your board.
Best,
Neeraj
imahgin,
Please check back during the first week of January for an update on the issues.
Best,
Neeraj
mkleox,
Thank you for the input on this. A user guide for the Debian SDK is on the roadmap for app note releases. We will be working on it after the release of Debian SDK v3.0.
Best,
Neeraj
Octavo Systems LLC all rights reserved
OCTAVO is registered in the U.S. Patent and Trademark Office. OSD, C-SiP, and the Octavo Logo are trademarks of Octavo Systems LLC.
"*" indicates required fields
"*" indicates required fields
"*" indicates required fields
"*" indicates required fields