Topics

How to add support for Silabs EFM32JG12B?


Christian Taedcke
 

Hello,

i want to add support for the Silabs EFM32JG12B soc. It is nearly the same as the already supported EFM32PG12B. It has the exact same peripherals, memory etc, only a different core. The EFM32JG12B has a Cortex-M3, the EFM32PG12B a Cortex-M4.
Because of this Silabs does not provide an extra development board, since binaries built for the EFM32JG12B can run on the EFM32PG12B. So the recommended development board for the EFM32JG12B is efm32pg_stk3402a

Questions:

1. How to deal with a soc that only differs in the core? I would like to reuse (without copying) a lot of stuff from the efm32pg12b (i.e. the folder soc/arm/silabs_exx32/efm32pg12b and the device tree stuff). Any hints on how to do that?
2. Since there is no development board for the EFM32JG12B soc, i would like to add the possibility to the board efm32pg_stk3402a to compile for the EFM32JG12B instead of the EFM32PG12B. Is that possible or are there other recommendations?

Regards,
Christian


Kumar Gala
 

I owe a response to this, but haven’t had time to think about it in a lot of detail.

On Nov 19, 2019, at 6:02 AM, Christian Taedcke <hacking@...> wrote:

Hello,

i want to add support for the Silabs EFM32JG12B soc. It is nearly the same as the already supported EFM32PG12B. It has the exact same peripherals, memory etc, only a different core. The EFM32JG12B has a Cortex-M3, the EFM32PG12B a Cortex-M4.
Does the EFM32PG12B Cortex-M4 have floating point support?

Because of this Silabs does not provide an extra development board, since binaries built for the EFM32JG12B can run on the EFM32PG12B. So the recommended development board for the EFM32JG12B is efm32pg_stk3402a

Questions:

1. How to deal with a soc that only differs in the core? I would like to reuse (without copying) a lot of stuff from the efm32pg12b (i.e. the folder soc/arm/silabs_exx32/efm32pg12b and the device tree stuff). Any hints on how to do that?
So I don’t know if renaming efm32pg12b to efm32Xg12b makes sense to cover the 2 variants.

2. Since there is no development board for the EFM32JG12B soc, i would like to add the possibility to the board efm32pg_stk3402a to compile for the EFM32JG12B instead of the EFM32PG12B. Is that possible or are there other recommendations?
It should be doable, we have several boards that support different “configurations” already. Examples are the dual core SoCs in which we have one board dir but different <BOARD>_CFG.yaml and such for the different variants.

Not sure if that gives you enough to start with.

- k


Christian Taedcke
 

Am Freitag, den 22.11.2019, 08:17 -0600 schrieb Kumar Gala:
I owe a response to this, but haven’t had time to think about it in a
lot of detail.
Thank you, i missed the answer somehow. Your mail gives me some good
pointers.


On Nov 19, 2019, at 6:02 AM, Christian Taedcke <hacking@...
wrote:
Hello,

i want to add support for the Silabs EFM32JG12B soc. It is nearly
the same as the already supported EFM32PG12B. It has the exact same
peripherals, memory etc, only a different core. The EFM32JG12B has
a Cortex-M3, the EFM32PG12B a Cortex-M4.
Does the EFM32PG12B Cortex-M4 have floating point support?
Yes, it does.


Because of this Silabs does not provide an extra development board,
since binaries built for the EFM32JG12B can run on the EFM32PG12B.
So the recommended development board for the EFM32JG12B is
efm32pg_stk3402a

Questions:

1. How to deal with a soc that only differs in the core? I would
like to reuse (without copying) a lot of stuff from the efm32pg12b
(i.e. the folder soc/arm/silabs_exx32/efm32pg12b and the device
tree stuff). Any hints on how to do that?
So I don’t know if renaming efm32pg12b to efm32Xg12b makes sense to
cover the 2 variants.
There is also the e.g. efm32gg12b which has more peripherals and the
peripherals are at different addresses.

But since most of the abstraction is handled by the silabs gecko hal,
it might be good to combine multiple families in the same soc folder.
I will give it a try and open a RFC later.


2. Since there is no development board for the EFM32JG12B soc, i
would like to add the possibility to the board efm32pg_stk3402a to
compile for the EFM32JG12B instead of the EFM32PG12B. Is that
possible or are there other recommendations?
It should be doable, we have several boards that support different
“configurations” already. Examples are the dual core SoCs in which
we have one board dir but different <BOARD>_CFG.yaml and such for the
different variants.
I did not think about that. That helps. I will have a look at the nxp
board lpcxpresso54114.


Not sure if that gives you enough to start with.
It does, thank you.

Regards,
Christian