make this consistent with flash size check. This issue caused platforms
with 8k to be completelty ignored.
Signed-off-by: Anas Nashif <anas.nashif@intel.com>
Check if any board files have changed and build more tests with this
board to uncover any build regressions.
Signed-off-by: Anas Nashif <anas.nashif@intel.com>
The JLinkGDBServer was printing log messages that messed with debugging
in -tui mode. Run it in silent mode instead.
Signed-off-by: Maureen Helm <maureen.helm@nxp.com>
The API name space for Bluetooth is bt_* and BT_* so it makes sense to
align the Kconfig name space with this. The additional benefit is that
this also makes the names shorter. It is also in line with what Linux
uses for Bluetooth Kconfig entries.
Some Bluetooth-related Networking Kconfig defines are renamed as well
in order to be consistent, such as NET_L2_BLUETOOTH.
Signed-off-by: Johan Hedberg <johan.hedberg@intel.com>
The revert commit title is usually prefixed with "Revert" which causes
the title to become longer than the allowed limit. Allow such commits to
keep revert commits consistent with the original commit message.
Signed-off-by: Anas Nashif <anas.nashif@intel.com>
When including referecnes to external resources using a URL, keep the
line with URL in one line to not break the link and allow this to pass
the gitlint test.
Signed-off-by: Anas Nashif <anas.nashif@intel.com>
This introduces an schema-based YAML validation process when loading
any YAML file, before doing any operations on them. An exception will
be raised at SanityConfigParser() if the file fails to verify with the
given schema.
Schemas are defined for the platform files in board///*.yaml and for
the (sample|testcase).yaml files. The verification is done using the
pykwalify python library. If not installed, a warning is printed and
the verification schema is skipped. At some point, we might want to
force it being installed.
The verification library is made a separate module (scl.py) so it can
be easily imported by others.
Signed-off-by: Inaky Perez-Gonzalez <inaky.perez-gonzalez@intel.com>
AFAIK an ini file system was ported to a yaml file system. But some
ini file references still remain.
This patch changes all ini file mentions into yaml.
Signed-off-by: Sebastian Bøe <sebastian.boe@nordicsemi.no>
The CPU first checks the page directory entry for write
or user permissions on a particular page before looking
at the page table entry.
If a region configured all pages to be non user accessible,
and this was changed for a page within it to be accessible,
the PDE would not be updated and any access would still
return a page fault.
The least amount of runtime logic to deal with this is to
indicate at build time that some pages within a region may
be marked writable or user accessible at runtime, and to
pre-set the flags in the page directory entry accordingly.
The driving need for this is the region configuration for
kernel memory, which will have user permissions set at
runtime for stacks and user-configured memory domains.
Signed-off-by: Andrew Boie <andrew.p.boie@intel.com>
This patch removes the gen_idt subdirectory from the clean target as
this directory is no longer in use due to recent changes to the way the
gen_idt is generated.
Signed-off-by: Andy Gross <andy.gross@linaro.org>
Using __hash__() is unpredictable and produces different results for
different python processes. This has been causing unnecessary rebuilds
due to changing header files at the top of the dependency tree.
Just use _GEN_OFFSETS_H_.
Jira: ZEP-2457
Signed-off-by: Anas Nashif <anas.nashif@intel.com>
In some cases, it's possible to share a DTC overlay across multiple
boards (one example is when the overlay just has to choose a
zephyr,code-partition and set it to a well-known value).
To support this, only go looking around in DTC_OVERLAY_DIR if
DTC_OVERLAY_FILE is not already given.
Signed-off-by: Marti Bolivar <marti.bolivar@linaro.org>
This addition would catch tests being added or modified and would run
those tests with --all and catch issues with non default board
configurations before they get merged into the tree.
Signed-off-by: Anas Nashif <anas.nashif@intel.com>
For CONFIG_UART_PIPE_ON_DEV_NAME the chosen property is
"zephyr,uart-pipe" not ""zephyr,bt-mon-uart".
Signed-off-by: Kumar Gala <kumar.gala@linaro.org>
We have the same pattern for how we map a chosen property to the device
label that generates a Kconfig define. Rather than duplicating the code
over and over again, lets just iterate over a list of defines and chosen
properties. This also provides us a list we can use in the future to
special case handle the defines associated with names.
Signed-off-by: Kumar Gala <kumar.gala@linaro.org>
This patch fixes following error of python script.
TypeError: cannot use a string pattern on a bytes-like object
Jira: ZEP-2290
Signed-off-by: Punit Vara <punit.vara@intel.com>
We now create a special IA hardware task for handling
double faults. This has a known good stack so that if
the kernel tries to push stack data onto an unmapped page,
we don't triple-fault and reset the system.
Signed-off-by: Andrew Boie <andrew.p.boie@intel.com>
We will need this for stack memory protection scenarios
where a writable GDT with Task State Segment descriptors
will be used. The addresses of the TSS segments cannot be
put in the GDT via preprocessor magic due to architecture
requirments that the address be split up into different
fields in the segment descriptor.
Signed-off-by: Andrew Boie <andrew.p.boie@intel.com>
This has one use-case: configuring the double-fault #DF
exception handler to do an IA task switch to a special
IA task with a known good stack, such that we can dump
diagnostic information and then panic.
Will be used for stack overflow detection in kernel mode,
as otherwise the CPU will triple-fault and reset.
Signed-off-by: Andrew Boie <andrew.p.boie@intel.com>
This is one less host tool we have to compile for every build,
and makes the build tools more portable across host OSes.
The code is also much simpler to maintain.
Issue: ZEP-2063
Signed-off-by: Andrew Boie <andrew.p.boie@intel.com>
By having this as a Python script rather than a host executable, this
should simplify the build process on non-Unix platforms.
With this change, pyelftools is now required to build Zephyr. Please
consult the getting started documentation for your host platform for
installation instructions.
Jira: ZEP-2062
Signed-off-by: Leandro Pereira <leandro.pereira@intel.com>
List all required modules in one file and just call pip with this
file to install all needed modules instead of listing them
individually.
Added gitlint and pyocd and other required packages to the list.
Signed-off-by: Anas Nashif <anas.nashif@intel.com>
Current version of extract_dts_include.py assumes end subnode
of pinctrl is 'pin'. This fix allows having different names.
Signed-off-by: Erwan Gouriou <erwan.gouriou@linaro.org>
def_label generation was assuming node names always have address
(eg: rcc@40023800). This was generating incorrect def_labels
when node names doen't have address (eg: pin-controller)
With this fix, this case is now taken into account
Signed-off-by: Erwan Gouriou <erwan.gouriou@linaro.org>
patch uses chosen property zephyr,bt-uart, zephyr,uart-pipe
and zephyr,bt-mon-uart to determine the uart instance to be
used for bluetooth,uart_pipe and bluetooth_monitor and generate
appropriate configs.
Signed-off-by: Savinay Dharmappa <savinay.dharmappa@intel.com>
Commands for objdump and nm where hardcoded in size_report
script, which failed on MacOS as it tried to use ones from
Xcode. Fixed the script to pick the right objdump and nm
from the toolchain being used to build the application.
Signed-off-by: Vinayak Kariappa Chettimada <vich@nordicsemi.no>
Its possible that #size-cells is 0 (ie i2c bus). So we should handle
either #address-cells or #size-cells being 0 in extract_reg_prop. This
means that the reg property in reduced map will end up being an integer,
so we need to convert it to a list with one element. We also need to
not output any address-cell or size-cell related info if the respective
cell is 0.
Signed-off-by: Kumar Gala <kumar.gala@linaro.org>
We can use the chosen property "zephyr,console" to determine what uart
should be used as the console and find its name to generate a define for
CONFIG_UART_CONSOLE_ON_DEV_NAME.
Signed-off-by: Kumar Gala <kumar.gala@linaro.org>
Verbose output now prints the value of the raw data provided by
soc.c file. The page directories are printed with the correct
address ranges for each required region.
Updated the page table number calculation and also updated other
calculations which use this information.
Signed-off-by: Adithya Baglody <adithya.nagaraj.baglody@intel.com>
It's useful to see what original memory regions were configured
in code via the MMU_BOOT_REGION() macros.
Signed-off-by: Andrew Boie <andrew.p.boie@intel.com>
Upcoming memory protection features will be placing some additional
constraints on kernel objects:
- They need to reside in memory owned by the kernel and not the
application
- Certain kernel object validation schemes will require some run-time
initialization of all kernel objects before they can be used.
Per Ben these initializer macros were never intended to be public. It is
not forbidden to use them, but doing so requires care: the memory being
initialized must reside in kernel space, and extra runtime
initialization steps may need to be peformed before they are fully
usable as kernel objects. In particular, kernel subsystems or drivers
whose objects are already in kernel memory may still need to use these
macros if they define kernel objects as members of a larger data
structure.
It is intended that application developers instead use the
K_<object>_DEFINE macros, which will automatically put the object in the
right memory and add them to a section which can be iterated over at
boot to complete initiailization.
There was no K_WORK_DEFINE() macro for creating struct k_work objects,
this is now added.
k_poll_event and k_poll_signal are intended to be instatiated from
application memory and have not been changed.
Signed-off-by: Andrew Boie <andrew.p.boie@intel.com>
If the depends_on has more than one item we need to match all of those
dependencies in the supported list.
Signed-off-by: Kumar Gala <kumar.gala@linaro.org>
The script failed on certain corner cases. Whenever the memory region
was falling on the PDE boundary, the glitch was causing incorrect
PTE to be generated.
JIRA: ZEP-2328
Signed-off-by: Adithya Baglody <adithya.nagaraj.baglody@intel.com>
This patch fixes issues with the IRQ definitions when using
the interrupt-names property in the DT entry.
Signed-off-by: Andy Gross <andy.gross@linaro.org>
This script was assuming that all XIP data copied sections
were contiguous. However with application memory partitioning
enabled, this is not the case; in between the kernel data sections
and the app data sections will be the kernel's BSS and noinit.
As a quick fix, reset the last section compared if we encounter
the kernel's BSS section.
Signed-off-by: Andrew Boie <andrew.p.boie@intel.com>
Makefiles which start QEMU (make run) have been changed to operate
off of the QEMU_INSTANCE variable. QEMU_INSTANCE is simply appended
to the pid and sock file names. This makes us able to run multiple
QEMU Zephyr instances of the same sample.
Signed-off-by: John Andersen <john.s.andersen@intel.com>
Some testcases can only be built with certain toolchains. Instead of
using filters, add support for toolchain keyword which enables
whitelisting and exclusion.
Signed-off-by: Anas Nashif <anas.nashif@intel.com>
Put the results of the config-sanitycheck into their own log so we can
see warnings from that stage of the build.
Signed-off-by: Kumar Gala <kumar.gala@linaro.org>
If we have more than one board of a given type we need to be able to
specify the board_id to select which specific board that the pyocd
command should target. Introduce an environment variable PYOCD_BOARD_ID
to we can set that will get passed to the pyocd command that needs it.
Here's an example:
$ make -C samples/hello_world/ BOARD=frdm_k64f flash PYOCD_BOARD_ID=1234
Signed-off-by: Kumar Gala <kumar.gala@linaro.org>