-
Notifications
You must be signed in to change notification settings - Fork 76
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Template projects #82
Conversation
@puddly for every manifest will it need a corresponding .slcp? or can the .slcp be some what generic, just defining the components needed. and the manifest handling the settings and the board setup? though I do see some settings defined in the .slcp |
@tube0013 The SLCPs are generic, you can see the source tree here: https://github.com/puddly/silabs-firmware-builder/tree/puddly/project-templates/src. The manifest is the same as before, just more settings moved into it: https://github.com/puddly/silabs-firmware-builder/blob/puddly/project-templates/manifests/nabucasa/skyconnect_zigbee_ncp.yaml |
Okay I think I understand now, this looks like it will make my builds a lot easier with the different radios. Now I just need to figure out how to make it work with a zigbee_minimal project and a zap config. |
For the most part the SLCP templates are just the project SLCPs with chip components removed, nothing more. I think I can make this work with an in-tree project as well if you aren't going to use a template, so you can just commit your whole repo and it will build from the SS project itself, like before. |
I like this better. I don't want to use SS at all if possible😂 |
I'd prefer |
When flashing, we always use software flow control, never hardware. This metadata isn't accessible from the application itself, or the bootloader. Do you rely on it beyond flashing? |
I don't mean about flashing, I mean about the user being able to know what setting to use in their app of choice based on the firmware filename (quick identification) and metadata (can be processed by the flasher to tell the user, or at least logged). |
What about a name: SkyConnect Zigbee
device: EFR32MG21A020F512IM32
base_project: src/zigbee_ncp
+filename: "{manifest_name}_{ezsp_version}_{variant}"
sdk: "gecko_sdk:4.4.4"
toolchain: "12.2.1.20221205"
gbl:
fw_type: zigbee_ncp
+ variant: sw_flow
dynamic: ["ezsp_version"]
baudrate: 115200 This would produce In the future, I'll add I don't really think software flow control alone really warrants an entirely new firmware type if it's a single tweak to settings. Zigbee is the only firmware with it (for now). |
Agreed.
That will be specific to firmware using those commands though (obviously), but indeed a good one to have in that case. |
* Remove `ncp-uart-hw` * Create `skyconnect_zigbee_ncp` * Create a `zigbee_ncp` project template * Make project generation work * Migrate bootloader next * Migrate `ot-rcp` to `openthread_rcp` * Drop multi-PAN * Drop firmware eraser * Fix existing manifests for Zigbee, Thread, and bootloader firmwares * Drop Z-Wave * Clean up Zigbee firmware config * Clean up OpenThread configs as well * Add the `rail_util_rssi` component * Update the README * Rename `ot-rcp` to `openthread_rcp` * Rename `ncp-uart-hw` to `zigbee_ncp` * Initial commit of zwave firmware * Z-Wave tweaks * Upgrade Z-Wave to Simplicity SDK * Z-Wave tweaks * Support Simplicity SDK as well * Add Simplicity SDK to `Dockerfile` * Adjust URL in Dockerfile * Drop cproject normalization * Make the GBL config clearer by specifying the dynamic version keys * Implement support for the `fw_variant` key * Bump metadata version
It looks like we've come full circle 😄.
This PR replaces our in-tree projects with templates deriving from the SDK examples. It should remove fragile code to strip off board-specific project customizations. We create a temporary project based on the template, modify it, then generate a chip-specific one to finally build.
I've taken this opportunity to drop unused firmwares (multi-PAN, the firmware eraser, and Z-Wave) and rename existing ones:
bootloader-uart-xmodem
->bootloader
ot-rcp
->openthread_rcp
ncp-uart-hw
->zigbee_ncp
Z-Wave has been upgraded to the Simplicity SDK.
For debugging, you can run the project builder with
--no-clean-build-dir
and import the project into Simplicity Studio. Change the project generator from "Makefile" to "Simplicity IDE Project", force generation, and then clean the project root.