
On Sun, Jul 03, 2022 at 11:22:51PM +0100, Andre Przywara wrote:
On Sun, 3 Jul 2022 21:20:20 +0200 Michal Suchanek msuchanek@suse.de wrote:
Hi,
many ARM SoCs have a mask rom feature that provides interface for downloading firmware over USB.
Downstream rockchip u-boot has 'brom' or 'rbrom' command for this purpose, and downstream sunxi u-boot provides 'efex' command. p-boot has code for entering FEL on A64 SoC.
Thanks for bringing this up. We have discussed several options before, including some true FEL reset commands, which do not depend on the SPL doing the branch. But I guess we can just start with this one and expand it from there.
With this patch I am able to activate the USB downloader on a rk3399 but the rkflashtool fails to communicate with the device. On a H2+ I can get into the FEL mode and get flash parameters. YMMV
I don't have any great idea how to structure this so that the command does not need platform-specific code. Is there an example of a command that has platform-specific implementations?
I don't think that's a problem: there are already platform specific commands, you just put them in a separate file and mark them as "depends on ARCH_SUNXI" (or whatever) in cmd/Kconfig and be done. No need to boil the ocean here in trying to be generic. That's why I wouldn't put them in cmd/boot.c, especially since you don't seem to share any code?
The reset implementation also does not share any actual code between platforms, has different implementation on each platform, and is cross-platform command that provides the same functionality on each paltform.
Because the functionality can be provided on multiple platfroms the goal is to provide cross-platform user interface for it.
Thanks
Michal