Incoming updates to the nRF clock driver require some extra enum
definitions from the nRFx HAL which were not available in HW
model versions before 1.4 => update it.
Also as the nrf52_bsim does not yet support DTS, include a define
for the clock IRQ interrupt number (as the new clock driver will
be using the DTS macro instead of the nRF MDK value.
Signed-off-by: Alberto Escolar Piedras <alpi@oticon.com>
This commit renames the CLOCK_CONTROL_NRF5 Kconfig symbol to
CLOCK_CONTROL_NRF. The change is required to aleviates confusion
when selecting the symbol in nRF9160 SOC definition.
Signed-off-by: Ioannis Glaropoulos <Ioannis.Glaropoulos@nordicsemi.no>
In 4940a3cac2 a compile time
check of the HW model version was added. This check worked
fine for cases in which the problem was that people had not
fetched a new enough version of the HW models.
But in some cases people will have fetched a new enough version
but be (unknowingly) in a past detached HEAD (or old tag).
With this change we ensure that the required tag is an actual
ancestor for the current HW models version HEAD
Also fail with an error, instead of just printing a warning.
Users can still disable this warning if they know what they are
doing.
Signed-off-by: Alberto Escolar Piedras <alpi@oticon.com>
With this change, drivers or components can register on runtime
their own command line arguments.
What this change does is to use the dynamic command line arguments
API from BabbleSim's libUtil and provides a function for the
drivers to add their own.
Note that this change requires v1.3 of the HW models (which remove
a dependency on the board command line arguments structure)
Signed-off-by: Alberto Escolar Piedras <alpi@oticon.com>
This function can only be used when the arguments structure memory
layout starts as in bs_basic_dev_args_t.
This assumption is just too dangerous in this board as somebody
may change the structure in the future unaware of this weird
requirement.
=> Do not use this function but do what it does in place.
Signed-off-by: Alberto Escolar Piedras <alpi@oticon.com>
When the -nosim option is used the user may still want to set
either the simulation ID string (-s) or the device number (-d)
to control the tracing prefixes and/or dump folder, but may not
care to set both of them.
=> This change allows it, while the old behaviour is otherwise
maintained (setting both or none with -nosim)
Signed-off-by: Alberto Escolar Piedras <alpi@oticon.com>
In commit d8e3ea6bc2
the LF clock interrupt was enabled, which causes its interrupt
handler to be used. This interrupt handler interacts with the
NRF_POWER registers.
Therefore require using the newer HW models which include a stub
of this registers.
Signed-off-by: Alberto Escolar Piedras <alpi@oticon.com>
If we just had the kernel's implementation, we could
just move this to lib/, but possible arch-specific
implementations dictate that we just make this a
syscall.
Signed-off-by: Andrew Boie <andrew.p.boie@intel.com>
This can help find unused symbols. Those end up without a type if
'default' is used instead of 'def_bool', which generates a warning.
Search for "Kconfig.defconfig" in
https://docs.zephyrproject.org/latest/application/kconfig-tips.html for
a longer explanation.
Keep the 'def_bool' for the following symbols, which seem to be
deliberately defined only in Kconfig.defconfig files:
- ALTERA_AVALON_I2C
- ALTERA_AVALON_MSGDMA
- ALTERA_AVALON_PIO
- ALTERA_AVALON_QSPI
- ALTERA_AVALON_SYSID
- CLOCK_CONTROL_IMX_CCM
- CPU_EM4_DMIPS
- CPU_EM4_FPUDA
- CPU_EM4_FPUS
- FP_FPU_DA
- I2C_GECKO
Signed-off-by: Ulf Magnusson <Ulf.Magnusson@nordicsemi.no>
In #10543 some include directives are modified to include some
folders in the path to the nrfx hal headers.
This would break things with the previous nRF52 HW models as the
replacement hal files were not placed in a folder matching that
path, and the include path was not pointing directly at the folder
containing the files.
Therefore, require the latest HW models version (which replicates
that folder structure), and add a new -I for the compiler 2 folders
higher.
Signed-off-by: Alberto Escolar Piedras <alpi@oticon.com>
Added a check at compile time to ensure the HW models are either
the desired version or newer.
Otherwise print a warning.
The check can be disabled by setting the enviroment variable
NO_NRF52_BSIM_VERSION_WARNING.
Signed-off-by: Alberto Escolar Piedras <alpi@oticon.com>
This is only a codestyle fix with no functional implications.
A few structures typedefs are removed. The structures are not in
use yet outside of the board code.
Signed-off-by: Alberto Escolar Piedras <alpi@oticon.com>
Fixed a typo in the warning message printed when the user does not
pass any parameters (and therefore does not connect to a BabbleSim
Phy)
Signed-off-by: Alberto Escolar Piedras <alpi@oticon.com>
Fixed a very unlikely NULL pointer dereference, which could occur
in an error condition, triggered if the test/fake HW timer model
was enabled but there was no registered handler for that timer tick.
The de-reference was in the error message printout.
Fixes#10778
Signed-off-by: Alberto Escolar Piedras <alpi@oticon.com>
To ensure we can always go back in time, let's explicitly list the
NRF52 HW models version which should be used with each version of
the nrf52_bsim board
Signed-off-by: Alberto Escolar Piedras <alpi@oticon.com>
Added a new simulated board, which models the NRF52832 SOC.
Its main use is for workstation testing and simulation of
the BLE stack and any application which relies mostly on it.
It uses BabbleSim (http://Babblesim.github.io) for the radio
simulation.
And the NRF52 HW models hosted in that same GitHub organization:
https://github.com/BabbleSim/ext_NRF52_hw_models
For speed it uses the POSIX arch to (not) emulate the CPU.
It uses Vanilla Zephyr, with a couple of configuration differences:
* It uses (like other POSIX arch boards) the system libC
* It does not use the nrfx hosted by Zehpyr in ext/, but the one
provided by the HW models.
Otherwise it relies in the same drivers as the real NRF52 boards.
Signed-off-by: Alberto Escolar Piedras <alpi@oticon.com>