Skip to content

Add TI LP-MSPM0L1117 board#102398

Draft
heghe wants to merge 3 commits intozephyrproject-rtos:mainfrom
heghe:lp-mspm0l1117
Draft

Add TI LP-MSPM0L1117 board#102398
heghe wants to merge 3 commits intozephyrproject-rtos:mainfrom
heghe:lp-mspm0l1117

Conversation

@heghe
Copy link
Copy Markdown
Contributor

@heghe heghe commented Jan 16, 2026

This adds support for TI LP-MSPM0L1117 board.

This is a draft PR since it depends on zephyrproject-rtos/hal_ti#80

Early feedback is welcomed, especially on the gpio_mspm driver since I don't know if those ifdefs for PINCM LUTs are maintainable if more SoC are added.

Razvan Heghedus added 3 commits January 16, 2026 12:02
According to TI datasheet, MSPM0L1117 has support
for MPU with 8 programmable regions(chapter 8.2).

Link: https://www.ti.com/lit/ds/symlink/mspm0l1116.pdf
Signed-off-by: Razvan Heghedus <razvan.heghedus@protonmail.com>
Existing LUTs for MSPM0L are not pin compatible with MSPM0L1117,
so add the correct configuration based on TI datasheet.

Link: https://www.ti.com/lit/ds/symlink/mspm0l1116.pdf
Signed-off-by: Razvan Heghedus <razvan.heghedus@protonmail.com>
MSPM0L1117 Launchpad is an easy to use evaluation module (EVM) based
on the MSPM0L1117. It has 16KB SRAM and 128KB Flash.

Signed-off-by: Razvan Heghedus <razvan.heghedus@protonmail.com>
@sonarqubecloud
Copy link
Copy Markdown

select CLOCK_CONTROL
select SOC_EARLY_INIT_HOOK

config SOC_MSPM0L1117
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

A PR for this already exists: #104522

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Didn't know about your PR, Then I should drop my change and rebase on top of yours.

source [find interface/xds110.cfg]
adapter speed 10000

source [find target/ti_mspm0.cfg] No newline at end of file
Copy link
Copy Markdown
Member

@Ayush1325 Ayush1325 Mar 9, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

In upstream openocd, the path for this file is now target/ti/mspm0.cfg. I have tested it with mspm0l1117 flashing. I also was not able to use west flash directly and had to use the following openocd command to flash:

openocd -f tcl/board/ti/mspm0-launchpad.cfg -c 'init' -c 'reset init' -c 'flash write_image erase /mnt/zephyr.hex' -c 'reset run' -c shutdown

Basically, the openocd command west flash was creating was missing the initial -c 'init'. So have you tested this on your end?

Also there is already board/ti/mspm0-launchpad.cfg in upstream openocd so maybe directly source it?

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Well, I didn't used OpenOCD for debugging/flashing. I used Lauterbach. This file was copied from
lp_mspm0l2228 since it's using the same xds110 interface. I just assumed that information is correct/up to date.

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ok, so at least west flash is working now. The problem was with my board.cmake. The working board.cmake is:

if(CONFIG_SOC_MSPM0L1117)
  board_runner_args(openocd "--no-halt" "--no-targets" "--gdb-client-port=3339" "--config=${BOARD_DIR}/support/openocd.cfg")
  include(${ZEPHYR_BASE}/boards/common/openocd.board.cmake)
endif()

And my openocd.cfg is as follows:

source [find board/ti/mspm0-launchpad.cfg]

Open OCD is used to program the flash memory on the devices. It may be necessary in
earlier versions to use a branch of open OCD onto the device.

Before OpenOCD is public, one can clone `This Repo <https://github.com/openocd-org/openocd.git>`_,
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

You are just pointing to upstream openocd now (which is correct). So the line probably needs to be updated? It's just that the openocd shipped with zephyr sdk does not have mspm0 support. Upstream openocd already has the support.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

In similar fashion to openocd.cfg, this part was taken from l2228 documentation.

But I guess, that in both cases this information should be update.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants