Skip to content

package/sharc-firmware: new package - #129

Open
katiaTsaruk wants to merge 1 commit into
adi-2026.02-yfrom
add-sharc-firmware
Open

package/sharc-firmware: new package#129
katiaTsaruk wants to merge 1 commit into
adi-2026.02-yfrom
add-sharc-firmware

Conversation

@katiaTsaruk

@katiaTsaruk katiaTsaruk commented Aug 25, 2026

Copy link
Copy Markdown

Pre-built SHARC DSP rpmsg example firmware. Installs
adi_adsp_core1_fw.ldr and adi_adsp_core2_fw.ldr to /lib/firmware/
for use with the ADI remoteproc driver.

Firmware source: https://github.com/analogdevicesinc/rpmsg-examples

@katiaTsaruk katiaTsaruk self-assigned this Aug 25, 2026
@katiaTsaruk
katiaTsaruk changed the base branch from master to adi-2026.02-y August 25, 2026 14:49
@pamolloy pamolloy added this to ADSP Aug 25, 2026
Comment thread package/sharc-firmware/Config.in Outdated
bool "sharc-firmware"
help
Pre-built SHARC DSP rpmsg example firmware binaries.
Installs adi_adsp_core1_fw.ldr and adi_adsp_core2_fw.ldr

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

Probably don't want to hardcode these file names in the package description. I currently have a PR open to add a new example

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

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

the problem is that the driver expects this files and loads them automatically in this case. Otherwise user needs to specify the files manually

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

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

oh wait you mean from config, will do

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

Although the vendor directory may not require changing the devicetree today, it combined with the fact that the dt is using generic/meaningless filenames means that we should update the devicetree for both of these points.

Comment thread package/sharc-firmware/Config.in Outdated
help
Pre-built SHARC DSP rpmsg example firmware binaries.
Installs adi_adsp_core1_fw.ldr and adi_adsp_core2_fw.ldr
to /lib/firmware/ for use with the ADI remoteproc driver.

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

You don't need to specify that the remoteproc driver is from ADI since it should be transparent to the user.

The remoteproc driver loads the firmware onto the DSP core and executes it, but that isn't the point of installing the firmware. Just like installing a userspace application isn't to use systemd to start the program.

Comment thread package/sharc-firmware/Config.in Outdated
config BR2_PACKAGE_SHARC_FIRMWARE
bool "sharc-firmware"
help
Pre-built SHARC DSP rpmsg example firmware binaries.

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

Maybe mention Analog Devices, Inc. somewhere and what processors have these DSP cores (i.e. the A5 and A55 chips listed in https://analogdevicesinc.github.io/documentation/products/adsp/index.html). Note we need to add SC846!

$(TARGET_DIR)/lib/firmware/adi_adsp_core1_fw.ldr
$(INSTALL) -D -m 0644 \
$(@D)/echo_example/rpmsg_echo_example_Core2/Debug/rpmsg_echo_example_Core2.ldr \
$(TARGET_DIR)/lib/firmware/adi_adsp_core2_fw.ldr

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

How many packages install in /lib/firmware/ vs. /lib/firmware/<vendor>/?

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

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

this is what I told before, so the dts defines the name "adi_adsp_core1_fw.ldr", so if I add the vendor subfolder it won't match anymore

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

Normally in Buildroot there is a vendor directory, but for now we can just install in /lib/firmware/ so we don't need to change the devicetree, but eventually we should move it into a vendor directory, which should create a Github Issue for

@pamolloy

Copy link
Copy Markdown
Collaborator

Since this will go mainline I'd rephrase the commit message a little to be imperative (e.g. "Introduce a package to install ...") and remove the link since it is already contained in the package.

Comment thread package/sharc-firmware/Config.in Outdated
Comment on lines +4 to +6
Pre-built SHARC DSP rpmsg example firmware binaries from
Analog Devices, Inc. for ADSP-SC57x, ADSP-SC58x, ADSP-SC594,
ADSP-SC598, and ADSP-SC846 processors.

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.

What about:

	  Pre-built SHARC firmware implementing RPMsg echo examples
	  for validating communication between Linux and the SHARC
	  cores on supported ADSP processors.

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.

Plus are those processors supports the same ldr?

@katiaTsaruk katiaTsaruk Aug 26, 2026

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

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

Good question, these packages were built for SC598. SC57x and SC58x use the older SHARC+, so need the separate firmware. I changed the text to your suggestion, as it is definitely much more safe.

@@ -0,0 +1,21 @@
################################################################################
#
# sharc-firmware

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.

Name sounds quite generic, are there any plans to extend that package with more stuff or is it just going to be RPMsg examples? If so we should rename.

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

It will just contain SHARC firmware. The naming matches other similar packages in Buildroot. For Buildroot maintainers or end users this name tells them that it is a package containing official firmware from ADI to run on the SHARC DSP cores.

Comment thread package/sharc-firmware/sharc-firmware.mk
define SHARC_FIRMWARE_INSTALL_TARGET_CMDS
$(INSTALL) -D -m 0644 \
$(@D)/echo_example/rpmsg_echo_example_Core1/Debug/rpmsg_echo_example_Core1.ldr \
$(TARGET_DIR)/lib/firmware/adi_adsp_core1_fw.ldr

@pamolloy pamolloy Aug 26, 2026

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

If this was a normal Linux userspace package you could add this as an install target in the project build file (i.e. meson). However here you could create a Makefile/CMakeLists/meson.build to just install the binaries in the rpmsg-examples repo.

This is also helpful because then we don't need to duplicate this in Yocto later.

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

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

I agree it is a good idea to do it and would also be consistent with other packages. Do you think, it should be done as the follow up in the other pr or still here, as I will need to change rpmsg-examples repo first.

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

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

Provide pre-built SHARC DSP rpmsg example firmware binaries for
Analog Devices ADSP-SC5xx processors. Installs firmware to
/lib/firmware/ for use with remoteproc.

Signed-off-by: Kateryna Tsaruk <kateryna.tsaruk@analog.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

Status: No status

Development

Successfully merging this pull request may close these issues.

3 participants