zha-ng / EZSP-Firmware

EZSP Firmware
GNU General Public License v3.0
25 stars 19 forks source link

"Standard" EZSP GP firmware settings for EFR32MG first gen #8

Open MattWestb opened 3 years ago

MattWestb commented 3 years ago

EZSP 6.8.0.2 have adding one "NCP UART HW GP MULTIRAIL (Hardware Flow Control)" sample that shall implanting GP functionality in the NCP.

Its need 2 GP parameters in the firmware for making it possible "talking with GP devices" and also some extra commands is implanted for making it easier to doing the GP things.

For EFR32MG2X its shall not being any problem cooking firmware for but for earlier device its running out of flash and ram then trying compiling it.

I was trying doing one "Billy" by HW configuration UART0 pins and SW flow control and its resulting in:

======================================================================
======== LINKER ERROR: Not enough flash (Application space)
======================================================================

c:/ssv5/developer/toolchains/gnu_arm/7.2_2017q4/bin/../lib/gcc/arm-none-eabi/7.2.1/../../../../arm-none-eabi/bin/ld.exe: 

======================================================================
======== LINKER ERROR: Not enough RAM
======================================================================

That was expected then Silabs have putting the NVM3 to unrealistic values (as in all examples in SS 3.1).

By setting:

NVM3 Library provider: NVM3 Flash pages: 8

Green Power Stack library: Green Power Proxy Table Size: 50 Green Power Sink Table Size: 50

I can still compiling OK (with GNU ARM tool change) and have some free space in the flash. I have not testing the normal NCP functionality only if its was possible compiling it and all parameters is left default.

Its also possible doing on "light" firmware with only the GP setting in one EZSP 6.7.9.0 and skipping NVM3 and the GP commands and doing the commands in the host system if cant getting enough resources for normal NCP operations but i think its not one good way to going.

Before "some persons" is starting spamming different firmware with strange setting / not working i think its better that the "zigpy core" is looking for good settings for normal functions and also for GP that is working good together and can being used of all community firmware cooker and also putting working firmware (with OK settings) in the zigpy Wiki on recommended coordinator firmware.

If its possible doing on EZSPGP for EM35X devices i dont knowing and if its worse the work testing and implanting it and it can being that first gen shall not getting support if its not working OK with the normal (core) function of the NCP but i leaving it to Zigpy core devs to make decisions in those cases.

Perhaps different levels of GP: GP1 = Reduced connectivity (first gen / EM35X) 20 GP devices. GP2 = High connectivity (Second gen / first with extended hardware (521 or more flash) 100 GP devices.

And config parameters in ZHA with GP0 = no GP and GP1 for reduced and GP2 for full GP or testing how many GP proxy / sink table its possible allocating in the NCP ?

MattWestb commented 3 years ago

I have finding one build guide for EZSP NCP with GP support: https://www.silabs.com/community/wireless/zigbee-and-thread/knowledge-base.entry.html/2019/01/16/adding_green_powerp-yoot

So very likely its possible making for all devices that we have doing EZSP 6.7.8.0 only need what parameters that shall being standard for ZHA for EZSPGP.