amolina,
Please take a look at the Getting Started page for DK2 M4 development here: https://wiki.st.com/stm32mpu/wiki/Getting_started/STM32MP1_boards/STM32MP157x-DK2/Develop_on_Arm%C2%AE_Cortex%C2%AE-M4. You can follow the same procedure if you get an STLink debugger. For the hardware setup(posted for BRK, works for RED as well), please see https://octavosystems.com/forums/topic/getting-started-with-osd32mp1-brk-st-link-jtag-interface/.
Best,
Neeraj
Gil,
Apparently Sales contacted you, but did not hear back. They will follow-up with you again.
Best,
Neeraj
Marco,
It looks like you are using a tag-connect based solution for JTAG. Can you post the setup/connectors you are using?
According to TI, TCKRTN, TRSTN, EMU0/1 connections are necessary for JTAG to work: https://e2e.ti.com/support/processors-group/processors/f/processors-forum/768213/am3358-jtag-connection-of-am335x. TCKRTN is used for adaptive clocking as described here: https://dev.ti.com/tirex/explore/node?node=AOi9Jj0vmBMJ0KQKaKITgg__FUz-xrs__LATEST.
Best,
Neeraj
Mach,
Do you have your EMU0/1 pins pulled up per Errata 1.0.36(https://www.ti.com/lit/er/sprz360i/sprz360i.pdf)?
Can you post the JTAG circuit? See OSD3358-SM-RED design(https://octavosystems.com/docs/osd3358-sm-red-schematics-pdf/) for reference.
Please double check whether the JTAG connector is soldered correctly if it was hand soldered.
Does the board power up(Is OSD335x alive)? See https://octavosystems.com/app_notes/osd335x-design-tutorial/bare-minimum-boot/boot-process/ for more info.
Best,
Neeraj
Stjepan,
Debian SDK can build images for BRK and RED boards. In order to set it to build for BRK, please change this line: https://github.com/octavosystems/osd32mp1-build-tools/blob/master/Makefile#L26 to stm32mp157c-osd32mp1-brk and set BOOT_EMMC = 0 as BRK does not have an eMMC on board. We will update the README to make this clear.
Best,
Neeraj
Ashvin,
Unfortunately, you cannot assign SPI6 to the M4 core, but SPI1/2/3/4/5 are available to be assigned to the M4. You can see the options for assignment in CubeMX tool on the left hand side of the Pinout and Configuration tab of CubeMX. The SPI peripherals are listed in the category “Connectivity”
A good way to understand the device tree changes you need to add an SPI interface and assign it to the M4 core is by using the Minimcal CubeMX project in the application note: https://octavosystems.com/app_notes/stm32mp1-cubemx-tutorial-for-osd32mp15x/
1. Download the Minimal CubeMX project linked in the above app note.
2. Generate code with the default settings and store the generated device trees in a folder
3. Modify the project to add SPI interface and assign it to the M4 core in the Pinout & Configuration tab of CubeMX
4. Generate new code and store it in a different folder
5. Compare the device trees generated for TF-A, U-Boot and Kernel. You will see new pinmuxing, clocking and m4_spi related entries in the newly generated device trees. CubeMX also generates the initialization code for the SPI interface on M4. So, you can open the M4 project in Cube IDE and start developing your code.
On Clock source, the minimal CubeMX project file has HSE enabled for BRK by default(OSD32MP1 has an oscillator integrated for HSE). You can select the clock source for SPI peripheral in the Clock Configuration tab of the CuebMX project.
Please review the links in https://octavosystems.com/forums/topic/spi-clock-issue/#post-12220 for more detailed information about how peripherals are assigned to M4 and their development.
Best,
Neeraj
amolina,
https://github.com/octavosystems/osd32mp1-build-tools/tree/master/patches directory in the Debian SDK contains all the patches applied to TF-A, U-Boot and Kernel for OSD32MP1-BRK and OSD32MP1-RED boards. The patches mainly contain device tree files additions. The following procedure should help you modify the device tree on the RED board:
1. Download TF-A, U-Boot and kernel source code from ST’s github repos(https://github.com/STMicroelectronics). Make sure you switch to the kernel version that is listed in the Debian SDK
2. Apply the patches from the build-tools directory linked above. This will add the device trees for BRK and RED board to the repositories.
3. Modify the device trees as per your application needs. For SPI, please take a look at ST’s guide to SPI device tree here: https://wiki.st.com/stm32mpu/wiki/SPI_device_tree_configuration
4. Generate the patches for the additional modifications you made for the device tree
5. Add those patches to the patches directory under the build-tools directory of the Debian SDK
6. Build the Linux image as described in the README for the Debian SDK.
Best,
Neeraj
Gil,
The documentation for the Developer’s package can be found here: https://wiki.st.com/stm32mpu/wiki/STM32MP1_Developer_Package. wiki.st.com is the main portal for support materials regarding STM32MP1. You can grab the latest patches to support OSD32MP1 development board in the meta-octavo-osd32mp1 layer here: https://github.com/octavosystems/meta-octavo-osd32mp1.
You will just need to copy the patches into respective TF-A, U-Boot and Kernel source directories of the Developer Package and follow the instructions in the Developer Package wiki page.
For more customizability, we recommend using the meta-octavo-osd32mp1 OpenSTLinux compatible layer that allows you to fully customize your Linux image.
Best,
Neeraj
Gil,
Our team will contact you offline to resolve this issue.
Best,
Neeraj
Gil,
The Debian SDK builds everything from sources and is not a binary. You can find the list of repositories it downloads code from in the README: https://github.com/octavosystems/osd32mp1-debian. Only the GPU drivers are binaries(same as OpenSTLinux). Please take a look at the Makefile: https://github.com/octavosystems/osd32mp1-build-tools/blob/master/Makefile that is the central piece of how the compilation and building of the image happens.
Best,
Neeraj
Farid,
Please take a look at the example Flashlayout file for eMMC here: https://wiki.st.com/stm32mpu/wiki/STM32CubeProgrammer_flashlayout#e-E2-80-A2MMC_with_FIP. Starter Package from ST(https://www.st.com/en/embedded-software/stm32mp1starter.html) also has several examples: https://wiki.st.com/stm32mpu/wiki/STM32MP1_Starter_Package_-_images.
Best,
Neeraj
Stjepan,
The power modes allowed are described in the app notes linked in my previous replies. An equivalent power mode would be LP-Stop mode.
Best,
Neeraj
Gil,
We have not tired it, but https://wiki.stmicroelectronics.cn/stm32mpu/wiki/How_to_configure_U-Boot_for_your_board#Console indicates that what you are assuming it true.
best,
Neeraj
Gil,
Can you explain a little bit more?
When you disconnect TX of PC/RPi to RED, you are able to see good UART output along with good boot to kernel?
What does the UART output look like when you connected RPi to RED fully?
Best,
Neeraj
Stjepan,
You can run the M4 and put the A7 in a low power state, but it will not be as low power as 500uA. Please take a look at https://wiki.st.com/stm32mpu/wiki/Power_overview and https://www.st.com/resource/en/application_note/an5109-stm32mp15x-lines-using-lowpower-modes-stmicroelectronics.pdf for more information on power states of each subsystem.
An additional note is that in some of the low power states, since the A7 will loose all information, it will re-initialize the MCU and rerun the application software for the microcontroller.
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