forked from zephyrproject-rtos/zephyr
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
kernel: app_smem: allowing pinning memory partitions
This allows memory partitions to be put into the pinned section so they are available during boot. For example, the stack guard (in libc partition) is needed during boot but before the paging mechanism is initialized. Without pinning it in physical memory, it would fault in early boot process. A new cmake property app_smem,pinned_partitions is introduced so that additional partitions can be pinned if needed. Signed-off-by: Daniel Leung <[email protected]>
- Loading branch information
Showing
10 changed files
with
217 additions
and
27 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,42 @@ | ||
/* | ||
* Copyright (c) 2021 Intel Corporation. | ||
* | ||
* SPDX-License-Identifier: Apache-2.0 | ||
*/ | ||
|
||
/* | ||
* This hackish way of including files is due to CMake issues: | ||
* https://gitlab.kitware.com/cmake/cmake/issues/11985 | ||
* https://gitlab.kitware.com/cmake/cmake/issues/13718 | ||
* | ||
* When using the "Unix Makefiles" generator, CMake simply | ||
* greps for "#include" to generate dependency list. | ||
* So if doing it normally, both files are being included | ||
* in the dependency list. This creates weird dependency | ||
* issue: | ||
* | ||
* 1. Using A.ld to create a linker script A.cmd. | ||
* 2. Using A.cmd to generate A_prebuilt.elf. | ||
* 3. Using A_prebuilt.elf to create B.ld. | ||
* 4. Creating B.cmd with B.ld. | ||
* 5. Creating B_prebuilt.elf using B.cmd. | ||
* | ||
* Since the dependency list of A.cmd contains both | ||
* A.ld and B.ld, when make is invoked again, B.ld | ||
* is newer than A.cmd so everything from this point on | ||
* gets rebuilt. In order to break this cycle, this | ||
* hackish needs to be used since CMake does not parse | ||
* macros, and thus these will not appear in | ||
* the dependency list. The dependencies should then be | ||
* put in CMakeLists.txt instead. | ||
* | ||
* Note: Ninja generator does not suffer from this issue. | ||
*/ | ||
#ifdef LINKER_APP_SMEM_UNALIGNED | ||
#define APP_SMEM_LD <app_smem_pinned_unaligned.ld> | ||
#else | ||
#define APP_SMEM_LD <app_smem_pinned_aligned.ld> | ||
#endif | ||
|
||
#include APP_SMEM_LD | ||
#undef APP_SMEM_LD |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,7 @@ | ||
/* | ||
* Copyright (c) 2021 Intel Corporation. | ||
* | ||
* SPDX-License-Identifier: Apache-2.0 | ||
*/ | ||
|
||
/* Empty file */ |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,7 @@ | ||
/* | ||
* Copyright (c) 2021 Intel Corporation. | ||
* | ||
* SPDX-License-Identifier: Apache-2.0 | ||
*/ | ||
|
||
/* Empty file */ |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters