package/sharc-firmware: new package - #129
Conversation
| bool "sharc-firmware" | ||
| help | ||
| Pre-built SHARC DSP rpmsg example firmware binaries. | ||
| Installs adi_adsp_core1_fw.ldr and adi_adsp_core2_fw.ldr |
There was a problem hiding this comment.
Probably don't want to hardcode these file names in the package description. I currently have a PR open to add a new example
There was a problem hiding this comment.
the problem is that the driver expects this files and loads them automatically in this case. Otherwise user needs to specify the files manually
There was a problem hiding this comment.
oh wait you mean from config, will do
There was a problem hiding this comment.
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.
| 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. |
There was a problem hiding this comment.
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.
| config BR2_PACKAGE_SHARC_FIRMWARE | ||
| bool "sharc-firmware" | ||
| help | ||
| Pre-built SHARC DSP rpmsg example firmware binaries. |
There was a problem hiding this comment.
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 |
There was a problem hiding this comment.
How many packages install in /lib/firmware/ vs. /lib/firmware/<vendor>/?
There was a problem hiding this comment.
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
There was a problem hiding this comment.
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
|
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. |
1496cae to
8004494
Compare
| 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. |
There was a problem hiding this comment.
What about:
Pre-built SHARC firmware implementing RPMsg echo examples
for validating communication between Linux and the SHARC
cores on supported ADSP processors.
There was a problem hiding this comment.
Plus are those processors supports the same ldr?
There was a problem hiding this comment.
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 | |||
There was a problem hiding this comment.
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.
There was a problem hiding this comment.
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.
| 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 |
There was a problem hiding this comment.
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.
There was a problem hiding this comment.
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.
There was a problem hiding this comment.
8004494 to
4f73f08
Compare
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>
4f73f08 to
fce256a
Compare
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
sharc-firmware.hash