Go to file
Flavio Ceolin c47880af0d arch/xtensa: Add new MMU layer
Andy Ross re-implementation of MMU layer with some subtle changes,
like re-using existent macros, fix page table cache property when
direct mapping it in TLB.

From Andy's original commit message:

This is a reworked MMU layer, sitting cleanly below the page table
handling in the OS.  Notable differences from the original work:

+ Significantly smaller code and simpler API (just three functions to
  be called from the OS/userspace/ptable layer).

+ Big README-MMU document containing my learnings over the process, so
  hopefully fewer people need to go through this in the future.

+ No TLB flushing needed.  Clean separation of ASIDs, just requires
  that the upper levels match the ASID to the L1 page table page
  consistently.

+ Vector mapping is done with a 4k page and not a 4M page, leading to
  much more flexibility with hardware memory layout.  The original
  scheme required that the 4M region containing vecbase be mapped
  virtually to a location other than the hardware address, which makes
  confusing linkage with call0 and difficult initialization
  constraints where the exception vectors run at different addresses
  before and after MMU setup (effectively forcing them to be PIC
  code).

+ More provably correct initialization, all MMU changes happen in a
  single asm block with no memory accesses which would generate a
  refill.

Signed-off-by: Andy Ross <andyross@google.com>
Signed-off-by: Flavio Ceolin <flavio.ceolin@intel.com>
2023-11-21 15:49:48 +01:00
.github ci: do not mark coverity issues as stale 2023-11-17 08:41:30 +01:00
arch arch/xtensa: Add new MMU layer 2023-11-21 15:49:48 +01:00
boards boards: nucleo_wb55rg: Use stm32cubeprogrammer as default runner 2023-11-21 14:22:22 +01:00
cmake cmake: modules: Add zephyr_library_add_dependencies extension 2023-11-20 09:19:34 +01:00
doc doc: logging: Fix some grammar issues 2023-11-21 14:21:35 +01:00
drivers drivers/console: xtensa_sim_console: implement arch_printk_char_out() 2023-11-21 15:49:48 +01:00
dts dts: stm32wl: Configure LPUART wakeup line 2023-11-21 14:22:22 +01:00
include/zephyr kernel: Option to not use tls to get current thread 2023-11-21 15:49:48 +01:00
kernel kernel: Option to not use tls to get current thread 2023-11-21 15:49:48 +01:00
lib kernel: Option to not use tls to get current thread 2023-11-21 15:49:48 +01:00
misc cmake: modules: dts: use devicetree stub file 2023-10-20 12:18:17 -07:00
modules tfm: Change SFN and FP_HARDABI dependency 2023-11-21 09:55:24 +01:00
samples dts: stm32wl: Configure LPUART wakeup line 2023-11-21 14:22:22 +01:00
scripts pytest sample & docs: Replace native_posix with native_sim 2023-11-20 12:02:48 +01:00
share sysbuild: create sysbuild_cache function 2023-11-17 12:41:55 +01:00
snippets snippets: xen_dom0: add support for Renesas R-Car Gen3 boards 2023-09-15 11:15:00 +01:00
soc arch/xtensa: Add new MMU layer 2023-11-21 15:49:48 +01:00
submanifests modules: canopennode: make the CANopenNode module optional 2023-10-26 09:48:26 +02:00
subsys mgmt: updatehub: Fix CMakeLists.txt file 2023-11-21 08:48:04 +00:00
tests tests: mem_protect: enable for Xtensa 2023-11-21 15:49:48 +01:00
.checkpatch.conf
.clang-format
.codecov.yml
.editorconfig
.gitattributes
.gitignore scripts: compliance: add a compliance check to keep blocks of code sorted 2023-11-13 09:41:05 +01:00
.gitlint .gitlint: de-duplicate defaults with zephyr_commit_rules.py 2023-09-21 09:29:24 +02:00
.mailmap
.yamllint
CMakeLists.txt native_sim build: Fix for APPLICATION_BINARY_DIR!=CMAKE_BINARY_DIR 2023-11-17 12:42:17 +01:00
CODE_OF_CONDUCT.md
CODEOWNERS MAINTAINERS: Update maintainers/codeowners for Intel Agilex boards 2023-11-16 11:51:39 -06:00
CONTRIBUTING.rst
Kconfig
Kconfig.zephyr Kconfig: drop COMPAT_INCLUDES 2023-11-09 11:22:40 +01:00
LICENSE
MAINTAINERS.yml samples: kscan_touch: drop the kscan_touch sample 2023-11-20 09:22:03 +01:00
README.rst doc: README: Rework Resources section 2023-10-17 19:05:20 +03:00
VERSION release: bump main to v3.5.99 2023-10-20 14:32:45 +03:00
version.h.in kernel: banner: Allow for customising version 2023-08-21 10:09:46 +02:00
west.yml manifest: Update hal_nordic revision 2023-11-21 11:09:29 +01:00
zephyr-env.cmd
zephyr-env.sh

.. raw:: html

   <a href="https://www.zephyrproject.org">
     <p align="center">
       <picture>
         <source media="(prefers-color-scheme: dark)" srcset="doc/_static/images/logo-readme-dark.svg">
         <source media="(prefers-color-scheme: light)" srcset="doc/_static/images/logo-readme-light.svg">
         <img src="doc/_static/images/logo-readme-light.svg">
       </picture>
     </p>
   </a>

   <a href="https://bestpractices.coreinfrastructure.org/projects/74"><img
   src="https://bestpractices.coreinfrastructure.org/projects/74/badge"></a>
   <a
   href="https://github.com/zephyrproject-rtos/zephyr/actions/workflows/twister.yaml?query=branch%3Amain">
   <img
   src="https://github.com/zephyrproject-rtos/zephyr/actions/workflows/twister.yaml/badge.svg?event=push"></a>


The Zephyr Project is a scalable real-time operating system (RTOS) supporting
multiple hardware architectures, optimized for resource constrained devices,
and built with security in mind.

The Zephyr OS is based on a small-footprint kernel designed for use on
resource-constrained systems: from simple embedded environmental sensors and
LED wearables to sophisticated smart watches and IoT wireless gateways.

The Zephyr kernel supports multiple architectures, including ARM (Cortex-A,
Cortex-R, Cortex-M), Intel x86, ARC, Nios II, Tensilica Xtensa, and RISC-V,
SPARC, MIPS, and a large number of `supported boards`_.

.. below included in doc/introduction/introduction.rst


Getting Started
***************

Welcome to Zephyr! See the `Introduction to Zephyr`_ for a high-level overview,
and the documentation's `Getting Started Guide`_ to start developing.

.. start_include_here

Community Support
*****************

Community support is provided via mailing lists and Discord; see the Resources
below for details.

.. _project-resources:

Resources
*********

Here's a quick summary of resources to help you find your way around:

Getting Started
---------------

  | 📖 `Zephyr Documentation`_
  | 🚀 `Getting Started Guide`_
  | 🙋🏽 `Tips when asking for help`_
  | 💻 `Code samples`_

Code and Development
--------------------

  | 🌐 `Source Code Repository`_
  | 📦 `Releases`_
  | 🤝 `Contribution Guide`_

Community and Support
---------------------

  | 💬 `Discord Server`_ for real-time community discussions
  | 📧 `User mailing list (users@lists.zephyrproject.org)`_
  | 📧 `Developer mailing list (devel@lists.zephyrproject.org)`_
  | 📬 `Other project mailing lists`_
  | 📚 `Project Wiki`_

Issue Tracking and Security
---------------------------

  | 🐛 `GitHub Issues`_
  | 🔒 `Security documentation`_
  | 🛡️ `Security Advisories Repository`_
  | ⚠️ Report security vulnerabilities at vulnerabilities@zephyrproject.org

Additional Resources
--------------------
  | 🌐 `Zephyr Project Website`_
  | 📺 `Zephyr Tech Talks`_

.. _Zephyr Project Website: https://www.zephyrproject.org
.. _Discord Server: https://chat.zephyrproject.org
.. _supported boards: https://docs.zephyrproject.org/latest/boards/index.html
.. _Zephyr Documentation: https://docs.zephyrproject.org
.. _Introduction to Zephyr: https://docs.zephyrproject.org/latest/introduction/index.html
.. _Getting Started Guide: https://docs.zephyrproject.org/latest/develop/getting_started/index.html
.. _Contribution Guide: https://docs.zephyrproject.org/latest/contribute/index.html
.. _Source Code Repository: https://github.com/zephyrproject-rtos/zephyr
.. _GitHub Issues: https://github.com/zephyrproject-rtos/zephyr/issues
.. _Releases: https://github.com/zephyrproject-rtos/zephyr/releases
.. _Project Wiki: https://github.com/zephyrproject-rtos/zephyr/wiki
.. _User mailing list (users@lists.zephyrproject.org): https://lists.zephyrproject.org/g/users
.. _Developer mailing list (devel@lists.zephyrproject.org): https://lists.zephyrproject.org/g/devel
.. _Other project mailing lists: https://lists.zephyrproject.org/g/main/subgroups
.. _Code samples: https://docs.zephyrproject.org/latest/samples/index.html
.. _Security documentation: https://docs.zephyrproject.org/latest/security/index.html
.. _Security Advisories Repository: https://github.com/zephyrproject-rtos/zephyr/security
.. _Tips when asking for help: https://docs.zephyrproject.org/latest/develop/getting_started/index.html#asking-for-help
.. _Zephyr Tech Talks: https://www.zephyrproject.org/tech-talks