]> begriffs open source - freertos/log
freertos
3 years ago[AUTO][RELEASE]: Bump file header version to "10.4.3 LTS Patch 3" V10.4.3-LTS-Patch-3
Gaurav Aggarwal [Fri, 16 Sep 2022 18:13:25 +0000 (18:13 +0000)]
[AUTO][RELEASE]: Bump file header version to "10.4.3 LTS Patch 3"

3 years ago[AUTO][RELEASE]: Bump task.h version macros to "10.4.3 LTS Patch 3"
Gaurav Aggarwal [Fri, 16 Sep 2022 18:13:24 +0000 (18:13 +0000)]
[AUTO][RELEASE]: Bump task.h version macros to "10.4.3 LTS Patch 3"

3 years agoUpdate History.txt as per PR feedback
Gaurav Aggarwal [Fri, 16 Sep 2022 16:41:56 +0000 (22:11 +0530)]
Update History.txt as per PR feedback

Signed-off-by: Gaurav Aggarwal <aggarg@amazon.com>
3 years agoFix failed CI check
Gaurav Aggarwal [Fri, 16 Sep 2022 11:13:52 +0000 (16:43 +0530)]
Fix failed CI check

Signed-off-by: Gaurav Aggarwal <aggarg@amazon.com>
3 years agoUpdate History.txt
Gaurav Aggarwal [Fri, 16 Sep 2022 10:14:40 +0000 (15:44 +0530)]
Update History.txt

Signed-off-by: Gaurav Aggarwal <aggarg@amazon.com>
3 years agoUpdate History.txt
Gaurav Aggarwal [Fri, 16 Sep 2022 10:05:57 +0000 (15:35 +0530)]
Update History.txt

Signed-off-by: Gaurav Aggarwal <aggarg@amazon.com>
3 years agoAdded checks for xIndex in ThreadLocalStorage APIs
Gaurav Aggarwal [Fri, 16 Sep 2022 09:47:39 +0000 (15:17 +0530)]
Added checks for xIndex in ThreadLocalStorage APIs

It was possible for a third party that already independently gained the
ability to execute injected code to read from or write to arbitrary
addresses by passing a negative argument as the xIndex parameter to
pvTaskGetThreadLocalStoragePointer() or
vTaskSetThreadLocalStoragePointer respectively.

This commit adds checks to ensure that passing a negative argument as
the xIndex parameter does not cause arbitrary read or write.

We thank Certibit Consulting, LLC for reporting this issue.

Signed-off-by: Gaurav Aggarwal <aggarg@amazon.com>
3 years agoRestrict unpriv task to invoke code with privilege
Gaurav Aggarwal [Thu, 8 Sep 2022 04:47:32 +0000 (10:17 +0530)]
Restrict unpriv task to invoke code with privilege

It was possible for an unprivileged task to invoke any function with
privilege by passing it as a parameter to MPU_xTaskCreate,
MPU_xTaskCreateStatic, MPU_xTimerCreate, MPU_xTimerCreateStatic, or
MPU_xTimerPendFunctionCall.

This commit ensures that MPU_xTaskCreate and MPU_xTaskCreateStatic can
only create unprivileged tasks. It also removes the following APIs:
1. MPU_xTimerCreate
2. MPU_xTimerCreateStatic
3. MPU_xTimerPendFunctionCall

We thank Huazhong University of Science and Technology for reporting
this issue.

Signed-off-by: Gaurav Aggarwal <aggarg@amazon.com>
3 years agoRemove local stack variable form MPU wrappers
Gaurav Aggarwal [Wed, 7 Sep 2022 14:19:48 +0000 (19:49 +0530)]
Remove local stack variable form MPU wrappers

It was possible for a third party that had already independently gained
the ability to execute injected code to achieve further privilege
escalation by branching directly inside a FreeRTOS MPU API wrapper
function with a manually crafted stack frame. This commit removes the
local stack variable `xRunningPrivileged` so that a manually crafted
stack frame cannot be used for privilege escalation by branching
directly inside a FreeRTOS MPU API wrapper.

We thank Certibit Consulting, LLC, Huazhong University of Science and
Technology and the SecLab team at Northeastern University for reporting
this issue.

Signed-off-by: Gaurav Aggarwal <aggarg@amazon.com>
3 years agoMake RAM regions non-executable
Gaurav Aggarwal [Wed, 7 Sep 2022 10:34:19 +0000 (16:04 +0530)]
Make RAM regions non-executable

This commit makes the privileged RAM and stack regions non-executable.

Signed-off-by: Gaurav Aggarwal <aggarg@amazon.com>
3 years agoUse highest numbered MPU regions for kernel
Gaurav Aggarwal [Wed, 7 Sep 2022 10:31:11 +0000 (16:01 +0530)]
Use highest numbered MPU regions for kernel

ARMv7-M allows overlapping MPU regions. When 2 MPU regions overlap, the
MPU configuration of the higher numbered MPU region is applied. For
example, if a memory area is covered by 2 MPU regions 0 and 1, the
memory permissions for MPU region 1 are applied.

We use 5 MPU regions for kernel code and kernel data protections and
leave the remaining for the application writer. We were using lowest
numbered MPU regions (0-4) for kernel protections and leaving the
remaining for the application writer. The application writer could
configure those higher numbered MPU regions to override kernel
protections.

This commit changes the code to use highest numbered MPU regions for
kernel protections and leave the remaining for the application writer.
This ensures that the application writer cannot override kernel
protections.

We thank the SecLab team at Northeastern University for reporting this
issue.

Signed-off-by: Gaurav Aggarwal <aggarg@amazon.com>
4 years agoUpdate History.txt for release date V10.4.3-LTS-Patch-2
Gaurav Aggarwal [Fri, 12 Nov 2021 18:56:46 +0000 (10:56 -0800)]
Update History.txt for release date

Signed-off-by: Gaurav Aggarwal <aggarg@amazon.com>
4 years ago[AUTO][RELEASE]: Bump file header version to "10.4.3 LTS Patch 2"
Gaurav Aggarwal [Thu, 7 Oct 2021 02:33:51 +0000 (19:33 -0700)]
[AUTO][RELEASE]: Bump file header version to "10.4.3 LTS Patch 2"

4 years ago[AUTO][RELEASE]: Bump task.h version macros to "10.4.3 LTS Patch 2"
Gaurav Aggarwal [Thu, 7 Oct 2021 02:33:45 +0000 (19:33 -0700)]
[AUTO][RELEASE]: Bump task.h version macros to "10.4.3 LTS Patch 2"

4 years agoUpdate History.txt for 10.4.3 LTS Patch 2
Gaurav Aggarwal [Thu, 7 Oct 2021 02:16:30 +0000 (19:16 -0700)]
Update History.txt for 10.4.3 LTS Patch 2

Signed-off-by: Gaurav Aggarwal <aggarg@amazon.com>
4 years agoChange xPortRaisePrivilege and vPortResetPrivilege to macros
Gaurav Aggarwal [Thu, 7 Oct 2021 02:13:48 +0000 (19:13 -0700)]
Change xPortRaisePrivilege and vPortResetPrivilege to macros

This prevents non-kernel code from calling these functions.

Signed-off-by: Gaurav Aggarwal <aggarg@amazon.com>
4 years agoUpdate History.txt V10.4.3-LTS-Patch-1
Gaurav Aggarwal [Fri, 10 Sep 2021 18:53:24 +0000 (11:53 -0700)]
Update History.txt

Signed-off-by: Gaurav Aggarwal <aggarg@amazon.com>
4 years ago[AUTO][RELEASE]: Bump file header version to "10.4.3 LTS Patch 1"
Gaurav Aggarwal [Thu, 19 Aug 2021 18:22:55 +0000 (11:22 -0700)]
[AUTO][RELEASE]: Bump file header version to "10.4.3 LTS Patch 1"

4 years ago[AUTO][RELEASE]: Bump task.h version macros to "10.4.3 LTS Patch 1"
Gaurav Aggarwal [Thu, 19 Aug 2021 18:22:49 +0000 (11:22 -0700)]
[AUTO][RELEASE]: Bump task.h version macros to "10.4.3 LTS Patch 1"

4 years agoUpdate History.txt for 10.4.3 LTS Patch 1
Gaurav Aggarwal [Thu, 19 Aug 2021 17:45:18 +0000 (10:45 -0700)]
Update History.txt for 10.4.3 LTS Patch 1

Signed-off-by: Gaurav Aggarwal <aggarg@amazon.com>
4 years agoFix free secure context for Cortex-M23 ports
Gaurav Aggarwal [Thu, 19 Aug 2021 00:46:27 +0000 (17:46 -0700)]
Fix free secure context for Cortex-M23 ports

Update the branching condition to correctly free secure context when
there is one.

Signed-off-by: Gaurav Aggarwal <aggarg@amazon.com>
4 years agoImplement secure stack sealing as per ARM's recommendation
Gaurav Aggarwal [Thu, 19 Aug 2021 00:36:55 +0000 (17:36 -0700)]
Implement secure stack sealing as per ARM's recommendation

Signed-off-by: Gaurav Aggarwal <aggarg@amazon.com>
4 years agoAssociate secure context with task handle
Gaurav Aggarwal [Thu, 19 Aug 2021 00:31:22 +0000 (17:31 -0700)]
Associate secure context with task handle

The secure side context management code now checks that the secure
context being saved or restored belongs to the task being switched-out
or switched-in respectively.

Signed-off-by: Gaurav Aggarwal <aggarg@amazon.com>
4 years agoPre-allocate secure-side context structures
Gaurav Aggarwal [Wed, 18 Aug 2021 23:21:55 +0000 (16:21 -0700)]
Pre-allocate secure-side context structures

This commit improves ARMv8-M security by pre-allocating secure-side task
context structures and changing how tasks reference a secure-side
context structure when calling a secure function. The new configuration
constant secureconfigMAX_SECURE_CONTEXTS sets the number of secure
context structures to pre-allocate. secureconfigMAX_SECURE_CONTEXTS
defaults to 8 if left undefined.

Signed-off-by: Gaurav Aggarwal <aggarg@amazon.com>
5 years agoUpdate History.txt V10.4.3
Cobus van Eeden [Tue, 15 Dec 2020 15:18:49 +0000 (07:18 -0800)]
Update History.txt

5 years agoUpdated History.txt for V10.4.3 (#233)
Joseph Julicher [Tue, 15 Dec 2020 14:51:11 +0000 (07:51 -0700)]
Updated History.txt for V10.4.3 (#233)

5 years ago[AUTO][RELEASE]: Bump task.h version macros to "10.4.3"
Cobus van Eeden [Mon, 14 Dec 2020 18:13:41 +0000 (10:13 -0800)]
[AUTO][RELEASE]: Bump task.h version macros to "10.4.3"

5 years ago[AUTO][RELEASE]: Bump file header version to "10.4.3"
Cobus van Eeden [Mon, 14 Dec 2020 18:13:39 +0000 (10:13 -0800)]
[AUTO][RELEASE]: Bump file header version to "10.4.3"

5 years agoUpdated History.txt for V10.4.3 (#232)
Joseph Julicher [Mon, 14 Dec 2020 18:10:55 +0000 (11:10 -0700)]
Updated History.txt for V10.4.3 (#232)

5 years agoPosix Port: Comment and remove unused variables (#230)
alfred gedeon [Mon, 14 Dec 2020 01:33:45 +0000 (17:33 -0800)]
Posix Port: Comment and remove unused variables (#230)

* Posix Port: Comment and remove unused variables
* Fix header, replace tabs with spaces

5 years agoadd assert for addition overflow on queue creation (#225)
Cobus van Eeden [Mon, 7 Dec 2020 19:48:51 +0000 (11:48 -0800)]
add assert for addition overflow on queue creation (#225)

5 years agoAdd addition overflow check for stream buffer (#226)
Cobus van Eeden [Mon, 7 Dec 2020 19:07:31 +0000 (11:07 -0800)]
Add addition overflow check for stream buffer (#226)

5 years agoImprove heap2 bounds checking (#224)
Cobus van Eeden [Mon, 7 Dec 2020 18:36:27 +0000 (10:36 -0800)]
Improve heap2 bounds checking (#224)

* Improve heap bounds checking in pvPortMalloc

5 years agoPrevent unprivileged task from altering MPU configuration (#227)
Gaurav-Aggarwal-AWS [Mon, 7 Dec 2020 17:53:22 +0000 (09:53 -0800)]
Prevent unprivileged task from altering MPU configuration (#227)

This change removes the FreeRTOS System Calls (aka MPU wrappers) for the
following kernel APIs:
- xTaskCreateRestricted
- xTaskCreateRestrictedStatic
- vTaskAllocateMPURegions

A system call allows an unprivileged task to execute a kernel API which
is otherwise accessible to privileged software only. The above 3 APIs
can create a new task with a different MPU configuration or alter the
MPU configuration of an existing task. This an be (mis)used by an
unprivileged task to grant itself access to a region which it does not
have access to.

Removing the system calls for these APIs ensures that an unprivileged
task cannot execute this APIs. If an unprivileged task attempts to
execute any of these API, it will result in a Memory Fault.

Signed-off-by: Gaurav Aggarwal <aggarg@amazon.com>
5 years agoUpdate branch of c-sdk repo to main (#223)
Gaurav-Aggarwal-AWS [Wed, 2 Dec 2020 22:12:16 +0000 (14:12 -0800)]
Update branch of c-sdk repo to main (#223)

Also add missing apostrophe to stdint.readme

Signed-off-by: Gaurav Aggarwal <aggarg@amazon.com>
5 years agoAdd kernel header check workflow (#219)
David Chalco [Tue, 17 Nov 2020 23:40:10 +0000 (15:40 -0800)]
Add kernel header check workflow (#219)

5 years ago[AUTO][RELEASE]: Bump task.h version macros to "10.4.2" V10.4.2
David Chalco [Tue, 10 Nov 2020 22:42:58 +0000 (14:42 -0800)]
[AUTO][RELEASE]: Bump task.h version macros to "10.4.2"

5 years ago[AUTO][RELEASE]: Bump file header version to "10.4.2"
David Chalco [Tue, 10 Nov 2020 22:42:58 +0000 (14:42 -0800)]
[AUTO][RELEASE]: Bump file header version to "10.4.2"

5 years agoUpdate release date (#217)
David Chalco [Mon, 9 Nov 2020 23:46:02 +0000 (15:46 -0800)]
Update release date (#217)

5 years agoUpdate History.txt for 10.4.2 (#216)
David Chalco [Mon, 9 Nov 2020 16:37:54 +0000 (08:37 -0800)]
Update History.txt for 10.4.2 (#216)

* Update History.txt for 10.4.2

* Update History.txt

Co-authored-by: RichardBarry <3073890+RichardBarry@users.noreply.github.com>
5 years agoEnsure interrupts are enabled at first task start (#214)
Gaurav-Aggarwal-AWS [Thu, 5 Nov 2020 17:26:56 +0000 (09:26 -0800)]
Ensure interrupts are enabled at first task start (#214)

Critical sections in FreeRTOS are implemented using the following two
functions:

void vPortEnterCritical( void )
{
    portDISABLE_INTERRUPTS();
    uxCriticalNesting++;
}

void vPortExitCritical( void )
{
    uxCriticalNesting--;

    if( uxCriticalNesting == 0 )
    {
        portENABLE_INTERRUPTS();
    }
}

uxCriticalNesting is initialized to a large value at the start and set
to zero when the scheduler is started (xPortStartScheduler). As a
result, before the scheduler is started, a pair of enter/exit critical
section will leave the interrupts disabled because uxCriticalNesting
will not reach zero in the vPortExitCritical function. This is done to
ensure that the interrupts remain disabled from the time first FreeRTOS
API is called to the time when the scheduler is started. The scheduler
starting code is expected to enure that interrupts are enabled before
the first task starts executing.

Cortex-M33 ports were not enabling interrupts before starting the first
task and as a result, the first task was started with interrupts
disabled. This PR fixes the issue by ensuring that interrupts are
enabled before the first task is started.

Signed-off-by: Gaurav Aggarwal <aggarg@amazon.com>
5 years agoporthardware.h file update for AVR Mega0 and Dx (#212)
filipgeorge [Tue, 27 Oct 2020 19:26:52 +0000 (21:26 +0200)]
porthardware.h file update for AVR Mega0 and Dx (#212)

* Added guard for ioavr.h include in AVR Dx porthardware.h file.
* Added guard for ioavr.h include in AVR Mega0 porthardware.h file.

5 years agoUpstream stack masking fix to GCC ports. (#210)
Carl Lundin [Tue, 27 Oct 2020 18:32:09 +0000 (11:32 -0700)]
Upstream stack masking fix to GCC ports. (#210)

Co-authored-by: Cobus van Eeden <35851496+cobusve@users.noreply.github.com>
5 years agoupdate interrupt vector names for ATMega32 (#196)
Jon Snow [Mon, 26 Oct 2020 20:31:15 +0000 (16:31 -0400)]
update interrupt vector names for ATMega32 (#196)

5 years agoAdded CODEOWNERS file (#209)
Cobus van Eeden [Mon, 26 Oct 2020 20:24:55 +0000 (13:24 -0700)]
Added CODEOWNERS file (#209)

5 years agoXtensa: fix the coproc_area incorrect issue (#117)
magicse7en [Mon, 26 Oct 2020 18:47:21 +0000 (02:47 +0800)]
Xtensa: fix the coproc_area incorrect issue (#117)

* Xtensa: fix the coproc_area incorrect issue

foss-xtensa/amazon-freertos#2 mentioned a issue:
1.
In function pxPortInitialiseStack(StackType_t *pxTopOfStack....)
p = (uint32_t *)(((uint32_t) pxTopOfStack - XT_CP_SIZE) & ~0xf);

In function prvInitialiseNewTask (file: task.c)
pxTopOfStack = (pxStack + (ulStackDepth - 1)) & (~portBYTE_ALIGNMENT_MASK)

So the co-processor area is at
p = (uint32_t *)(((uint32_t)((pxStack + (ulStackDepth - 1)) & (~portBYTE_ALIGNMENT_MASK)) - XT_CP_SIZE) & ~0xf);

2.
In function vPortStoreTaskMPUSettings( .... , StackType_t pxBottomOfStack ...)
xMPUSettings->coproc_area = (StackType_t)((((uint32_t)(pxBottomOfStack + usStackDepth - 1)) - XT_CP_SIZE) & ~0xf);

pxBottomOfStack = pxStack

=> xMPUSettings->coproc_area = (StackType_t*)((((uint32_t)(pxStack+ ulStackDepth - 1)) - XT_CP_SIZE ) & ~0xf);

The p is coproc_area that should be equal to xMPUSettings->coproc_area.

For example, assume pxStack is 0xa0000000, ulStackDepth is 0x2000,
portBYTE_ALIGNMENT_MASK is 0x7f, XT_CP_SIZE is 0x100.

The p = (uint32_t)(((uint32_t)((pxStack + (ulStackDepth - 1)) & (~portBYTE_ALIGNMENT_MASK)) - XT_CP_SIZE) & ~0xf)
      = 0xa0001e80
The xMPUSettings->coproc_area = (StackType_t)((((uint32_t)(pxStack+ usStackDepth - 1)) - XT_CP_SIZE ) & ~0xf)
                              = 0xa0001ef0
Obviously, the p is not equal to the xMPUSettings->coproc_area, which will cause context switching error.

Signed-off-by: magicse7en <magicse7en@outlook.com>
* Update port.c

Co-authored-by: Carl Lundin <53273776+lundinc2@users.noreply.github.com>
5 years agoXtensa: fix stack overlap coproc_area issue (#118)
magicse7en [Mon, 26 Oct 2020 18:07:32 +0000 (02:07 +0800)]
Xtensa: fix stack overlap coproc_area issue (#118)

In function pxPortInitialiseStack of port.c:
sp = ( StackType_t * ) ( ( ( UBaseType_t ) ( pxTopOfStack + 1 )  - XT_CP_SIZE - XT_STK_FRMSZ ) & ~0xf );
We assume XT_CP_SIZE is 0xE4, XT_STK_FRMSZ is 0xA0, pxTopOfStack is 0xA0000000, sp is 0x9FFFFE80.
From port.c, we know the frame->a1 as below:
frame->a1 = ( UBaseType_t ) sp + XT_STK_FRMSZ;  /* physical top of stack frame    */
So frame->a1 is 0x9FFFFF20. Therefore the interrupt stack frame range is 0x9FFFFE80 ~ 0x9FFFFF20.

The coproc_area is: p = ( uint32_t * ) ( ( ( uint32_t ) pxTopOfStack - XT_CP_SIZE ) & ~0xf );
So its value is 0x9FFFFF10. Obviously, the interrupt stack frame overlaps the coproc_area.

Co-authored-by: Carl Lundin <53273776+lundinc2@users.noreply.github.com>
5 years agoFix: Pass lexicon.txt as a parameter (#208)
alfred gedeon [Fri, 23 Oct 2020 18:33:41 +0000 (11:33 -0700)]
Fix: Pass lexicon.txt as a parameter (#208)

* Fix: pass lexicon.txt as a parameter

* Fix lexicon location

5 years agoFix missed yield in xTaskResumeFromISR (#207)
Gaurav-Aggarwal-AWS [Fri, 23 Oct 2020 00:09:35 +0000 (17:09 -0700)]
Fix missed yield in xTaskResumeFromISR (#207)

If a higher priority task than the currently running task was resumed
using xTaskResumeFromISR and the user chose to ignore the return value
of xTaskResumeFromISR to initiate a context switch using
portYIELD_FROM_ISR, we were not doing the context switch on the next run
of the scheduler. This change fixes this by marking a yield as pending
to ensure that the context switch is performed on the next run of the
scheduler.

Signed-off-by: Gaurav Aggarwal <aggarg@amazon.com>
5 years agoMove markdown files and lexicon into .github directory (#205)
alfred gedeon [Thu, 22 Oct 2020 01:40:43 +0000 (18:40 -0700)]
Move markdown files and lexicon into .github directory (#205)

* Move markdown files and lexicon into .github directory

5 years agoFix: C++ compiler warning (#203)
alfred gedeon [Tue, 20 Oct 2020 22:37:14 +0000 (15:37 -0700)]
Fix: C++ compiler warning (#203)

5 years agoRecently vTaskDelayUntil() was updated to xTaskDelayUntil() because the function...
RichardBarry [Sun, 11 Oct 2020 21:04:49 +0000 (14:04 -0700)]
Recently vTaskDelayUntil() was updated to xTaskDelayUntil() because the function now returns a value.  The PR didn't make the same change in the MPU port, or update the constants required to include the xTaskDelayUntil() function in the build. (#199)

This PR:
Changes the INCLUDE_vTaskDelayUntil compile time constant to INCLUDE_xTaskDelayUntil.
Updates FreeRTOS.h to ensure backward compatibility for projects that already have INCLUDE_vTaskDelayUntil defined.
Updates the MPU prototypes, wrapper and implementation to use the updated xTaskDelayUntil() function.

Tests to be checked into the FreeRTOS/FreeRTOS repository after this PR.

5 years agoxStreamBufferSend() caps the maximum amount of data a stream buffer can send to the...
RichardBarry [Sun, 11 Oct 2020 04:47:54 +0000 (21:47 -0700)]
xStreamBufferSend() caps the maximum amount of data a stream buffer can send to the maximum capacity of the buffer - however the value to which the length is capped was wrong, and is correct by this check in.  Likewise when sending to a message buffer if the send length is too long the block time is set to 0 to ensure the sending task does not wait indefinitely for the impossible send to complete - but the length check was wrong, and is corrected by this check in. (#195)

5 years agoMinor updates to formatting and MISRA compliance of the PR used to update the vTaskDe...
RichardBarry [Sun, 11 Oct 2020 04:42:38 +0000 (21:42 -0700)]
Minor updates to formatting and MISRA compliance of the PR used to update the vTaskDelayUntil() function to xTaskDelayUntil(). (#198)

5 years agomatching the preprocessor conditionals for xTaskGetCurrentTaskHandle() (#197)
Joseph Julicher [Fri, 9 Oct 2020 01:44:30 +0000 (18:44 -0700)]
matching the preprocessor conditionals for xTaskGetCurrentTaskHandle() (#197)

5 years agovTaskDelayUntil improvement (#77) 187/head
Spacefish [Fri, 9 Oct 2020 00:46:47 +0000 (02:46 +0200)]
vTaskDelayUntil improvement (#77)

* vTaskDelayUntil improvement

* suggestions implemented

* xTaskDelayUntil #define added

* doc small fix

* small formatting stuff

* more small formatting stuff

* Update lexicon.txt

Co-authored-by: Carl Lundin <53273776+lundinc2@users.noreply.github.com>
Co-authored-by: Carl Lundin <lundinc@amazon.com>
5 years agoReintroduce Espressif's IDF v4.2 changes to ESP32 port (#193)
Carl Lundin [Thu, 8 Oct 2020 18:03:27 +0000 (11:03 -0700)]
Reintroduce Espressif's IDF v4.2 changes to ESP32 port (#193)

* Renamed old port to ESP_IDF_V3

* Update ESP32 port files to support IDF v4.2.

* Add changes required to support ESP32-S2

Co-authored-by: Shubham Kulkarni <shubham.kulkarni@espressif.com>
5 years agoPosix: Fix no task switching issue if a task ended its main function (#184)
Reda Maher [Tue, 6 Oct 2020 01:06:51 +0000 (03:06 +0200)]
Posix: Fix no task switching issue if a task ended its main function (#184)

* Posix: Fix no task switching issue if a task ended

When the main function of a task exits, no task switching happened.
This is because all the remaining tasks are waiting on the condition
variable. The fix is to trigger a task switch and mark the exiting
task as "Dying" to be suspened and exited properly from the scheduler.

* Posix: Assert and stop if the Task function returned

* Posix: just assert if a task returned from its main function

Co-authored-by: alfred gedeon <alfred2g@hotmail.com>
5 years agoNo functional changes. (#194)
RichardBarry [Sun, 4 Oct 2020 04:26:22 +0000 (21:26 -0700)]
No functional changes. (#194)

Shorted overly verbose and opinionated comments in xStreamBufferSend().
Remove the unnecessary xIsFeasible variable from xStreamBufferSend().

5 years agoOpenOCD Support: Re-introduce uxTopUsedPriority (#188)
David Chalco [Thu, 1 Oct 2020 19:40:21 +0000 (12:40 -0700)]
OpenOCD Support: Re-introduce uxTopUsedPriority (#188)

* re-introduce uxTopUsedPriority. Prevent removal by optimization

* Make uxTopUsedPriority volatile to avoid optimizer + code comment

Co-authored-by: Cobus van Eeden <35851496+cobusve@users.noreply.github.com>
5 years agoUpdate issue templates
Cobus van Eeden [Thu, 1 Oct 2020 00:58:12 +0000 (17:58 -0700)]
Update issue templates

5 years agoUpdate issue templates (#191)
Cobus van Eeden [Thu, 1 Oct 2020 00:28:28 +0000 (17:28 -0700)]
Update issue templates (#191)

5 years agoCreate config.yml (#190)
Cobus van Eeden [Thu, 1 Oct 2020 00:10:49 +0000 (17:10 -0700)]
Create config.yml (#190)

5 years agoPosix: Free the allocated memory after deleting a task or ending the scheduler (...
Reda Maher [Tue, 29 Sep 2020 21:06:10 +0000 (23:06 +0200)]
Posix: Free the allocated memory after deleting a task or ending the scheduler (#181)

* Posix: Free Idle task resources after ending the scheduler

In case of using Posix simulator and ending the scheduler, it does
not free the resources allocated by the idle task. This
causes the memory checkers (Valgrind, Address Sanitizers, ..) to
complain.

* Posix: Free the condition variable memory in the correct place

In case of deleting a task from another task, the deletion happens
immediately and the thread is canceled but the memory allocated by
the task condition variable is not freed. This causes the memory
checkers (Valgrind, Address sanitizers, ..) to complain.

* Posix: End Timer thread and free its resources after ending the scheduler

5 years agoFix Stack alignment for Microchip PIC32MX port (#182)
Gaurav-Aggarwal-AWS [Mon, 28 Sep 2020 07:16:18 +0000 (00:16 -0700)]
Fix Stack alignment for Microchip PIC32MX port (#182)

* Fix Stack alignment for Microchip PIC32MX port

The stack of a task was not 8 byte aligned. Adding one more unused space
at the beginning of task stack (before simulated context) ensures that
the stack is 8 byte aligned. The stack (with simulated context) of a
newly created task looks like the following:

                    +------------+
                    | UNUSED     |
                    +------------+
                    | UNUSED     |
                    +------------+
                    | 0xDEADBEEF |
                    +------------+
                    | 0x12345678 |
                ^   +------------+
                |   | CAUSE      | <-- SP After Context Restore
                |   +------------+
                |   | STATUS     |
                |   +------------+
                |   | EPC        |
                |   +------------+
                |   | ra         |
                |   +------------+
                |   | s8         |
                |   +------------+
                |   | t9         |
                |   +------------+
                |   | t8         |
                |   +------------+
                |   | t7         |
                |   +------------+
                |   | t6         |
                |   +------------+
                |   | t5         |
                |   +------------+
                |   | t4         |
                |   +------------+
                |   | t3         |
                |   +------------+
                |   | t2         |
                |   +------------+
                |   | t1         |
                |   +------------+
    Context     |   | t0         |
  (132 bytes)   |   +------------+
                |   | a3         |
                |   +------------+
                |   | a2         |
                |   +------------+
                |   | a1         |
                |   +------------+
                |   | a0         |
                |   +------------+
                |   | v1         |
                |   +------------+
                |   | v0         |
                |   +------------+
                |   | s7         |
                |   +------------+
                |   | s6         |
                |   +------------+
                |   | s5         |
                |   +------------+
                |   | s4         |
                |   +------------+
                |   | s3         |
                |   +------------+
                |   | s2         |
                |   +------------+
                |   | s1         |
                |   +------------+
                |   | s0         |
                |   +------------+
                |   | at         |
                |   +------------+
                |   | HI         |
                |   +------------+
                |   | LO         |
                |   +------------+
                V   |            |
                    +------------+
                    |            | <-- SP After Context Save
                    +------------+

Signed-off-by: Gaurav Aggarwal <aggarg@amazon.com>
* Update comment

Signed-off-by: Gaurav Aggarwal <aggarg@amazon.com>
5 years agoMaintenance: Add readme.txt in each Renesas RX folder to show recommended port (...
NoMaY (a user of Japan.RenesasRulz.com) [Mon, 28 Sep 2020 07:09:49 +0000 (16:09 +0900)]
Maintenance: Add readme.txt in each Renesas RX folder to show recommended port (#152)

* Maintenance: Add readme.txt in each Renesas RX folder to show recomended port
* Update readme.txt in each Renesas RX folder regarding to Notes *1 and *2 (both are RX100 port)

5 years agoMaintenance: Github workflow URL checker (#179)
alfred gedeon [Thu, 24 Sep 2020 19:35:22 +0000 (12:35 -0700)]
Maintenance: Github workflow URL checker (#179)

* Remove non needed spell checks

* FreeRTOS Kernel Spelling Update (#170)

* FreeRTOS Kernel Spelling Update

* Added spell check to kernel repository.
* Fixed small spelling errors in various kernel source files.
* Added documentation for spellcheck.

Note: Only kernel files are checked for spelling, and portable files are ignored.

* Fix exit 0

* Remove spell

* add echo

* Call script from ci

* Fix script location

* Print pwd

* Fix script

* Fix script

* Remove some lines from script

* uncomment lines and fix exit

* use bash instead of sh

* Move url checker to the action directory

* Separate spell and url checkers

* Fix bad merge from master

* Fix yml file error

* Add another step to the url checker

Co-authored-by: Carl Lundin <53273776+lundinc2@users.noreply.github.com>
5 years agoFix some broken/redirected URL (#172)
alfred gedeon [Mon, 21 Sep 2020 22:49:55 +0000 (15:49 -0700)]
Fix some broken/redirected URL (#172)

* Style: fix some broken/redirect links

* Fix: atmel url

* Fix microchip typo

* Fix url links

* Fix shortcut link

* Comment: fix line wrapping

* Style: fix line wrapping to 80 chars

* Add now microchip beside Atmel

* Fix link in History

* Add Now Microchip before Atmel link

* Comment: add *

5 years agoUpdated wording of ulTaskNotifyTakeIndexed fix (#178) V10.4.1-kernel-only
Cobus van Eeden [Fri, 18 Sep 2020 17:22:09 +0000 (10:22 -0700)]
Updated wording of ulTaskNotifyTakeIndexed fix (#178)

5 years agoUpdate History.txt and fix versioning in asm files (#177)
Cobus van Eeden [Fri, 18 Sep 2020 15:05:13 +0000 (08:05 -0700)]
Update History.txt and fix versioning in asm files (#177)

5 years agoUpdate version number to 10.4.1 (#173)
David Chalco [Thu, 17 Sep 2020 22:25:15 +0000 (15:25 -0700)]
Update version number to 10.4.1 (#173)

5 years agoFix: Rename parameter uxIndexToNotify to uxIndexToWaitOn (#174)
Ravishankar Bhagavandas [Thu, 17 Sep 2020 20:16:39 +0000 (13:16 -0700)]
Fix: Rename parameter uxIndexToNotify to uxIndexToWaitOn (#174)

5 years agoFreeRTOS Kernel Spelling Update (#170)
Carl Lundin [Wed, 16 Sep 2020 18:17:39 +0000 (11:17 -0700)]
FreeRTOS Kernel Spelling Update (#170)

* FreeRTOS Kernel Spelling Update

* Added spell check to kernel repository.
* Fixed small spelling errors in various kernel source files.
* Added documentation for spellcheck.

Note: Only kernel files are checked for spelling, and portable files are ignored.

5 years agoFix broken #warning message in ARM_CMx_MPU/portmacro.h between 10.3.1 and 10.4.0... V10.4.0-kernel-only
NoMaY (a user of Japan.RenesasRulz.com) [Tue, 15 Sep 2020 08:55:55 +0000 (17:55 +0900)]
Fix broken #warning message in ARM_CMx_MPU/portmacro.h between 10.3.1 and 10.4.0 (#171)

5 years agoSets the version number to 10.4.0 in assembly files. The (#166)
RichardBarry [Mon, 14 Sep 2020 16:49:46 +0000 (09:49 -0700)]
Sets the version number to 10.4.0 in assembly files.  The (#166)

assembly files were missed when the other source files had
their version numbers updated.

5 years agoUpdate version number to 10.4.0 (#153)
David Chalco [Fri, 11 Sep 2020 02:49:34 +0000 (19:49 -0700)]
Update version number to 10.4.0 (#153)

5 years agoUpdate History.txt (#160)
yngki [Thu, 10 Sep 2020 22:01:08 +0000 (15:01 -0700)]
Update History.txt (#160)

* Update History.txt

* Update History.txt

Co-authored-by: Cobus van Eeden <35851496+cobusve@users.noreply.github.com>
5 years agoFix: Comment - xTaskIncrementTick loop - to adhere to demo requirement (#162)
alfred gedeon [Thu, 10 Sep 2020 21:36:34 +0000 (14:36 -0700)]
Fix: Comment - xTaskIncrementTick loop - to adhere to demo requirement (#162)

Co-authored-by: Alfred Gedeon <gedeonag@amazon.com>
5 years agoRevert "RISC-V: Add RV32E / FPU support for GCC (#140)" (#163)
Joseph Julicher [Thu, 10 Sep 2020 19:46:15 +0000 (12:46 -0700)]
Revert "RISC-V: Add RV32E / FPU support for GCC (#140)" (#163)

This reverts commit 0037a6c574f43937d181d4d47fdc2bdd562bbcc3.

5 years agoAdd url link for Linux Simulator documentation (#161)
Cobus van Eeden [Wed, 9 Sep 2020 21:35:52 +0000 (14:35 -0700)]
Add url link for Linux Simulator documentation (#161)

5 years agoRISC-V: Add RV32E / FPU support for GCC (#140)
Emmanuel Puerto [Wed, 9 Sep 2020 18:06:16 +0000 (20:06 +0200)]
RISC-V: Add RV32E / FPU support for GCC (#140)

* Change vPortSetupTimerInterrupt in order to have 64bits access on rv64

* Support RV32E - RISC-V architecture (GCC)

Signed-off-by: Emmanuel Puerto <emmanuel.puerto@sifive.com>
* Support FPU - RISC-V architecture (GCC)

Signed-off-by: Emmanuel Puerto <emmanuel.puerto@sifive.com>
* Fix interrupt managment and FPU initialization

5 years agoIntroduce Trusted Firmware M support in Kernel on ARM Cortex M33 (#108)
sherryzhang [Wed, 9 Sep 2020 15:15:50 +0000 (23:15 +0800)]
Introduce Trusted Firmware M support in Kernel on ARM Cortex M33 (#108)

This port adds the support that FreeRTOS applications can call the secure
    services in Trusted Firmware M(TF-M) via PSA Platform Security
    Architecture(PSA) API based on Arm Cortex-M33 platform with GCC compiler.

    More information:
    PSA - https://www.arm.com/why-arm/architecture/platform-security-architecture
    TF-M - https://git.trustedfirmware.org/trusted-firmware-m.git/

Change-Id: I2e771b66e8d75927abc2505a187a16250d504db2
Signed-off-by: Sherry Zhang <sherry.zhang2@arm.com>
5 years agoSynopsys ARC v1 Port: add support to Synopsys ARC v1 series cores (#110)
YuguoWH [Tue, 8 Sep 2020 15:40:17 +0000 (23:40 +0800)]
Synopsys ARC v1 Port: add support to Synopsys ARC v1 series cores (#110)

* Synopsys Port: Adding support to Synopsys ARC v1 series cores
ARC v1 cores include ARC605, ARC610d, and ARC710d

Signed-off-by: Yuguo Zou <yuguo.zou@synopsys.com>
* Synopsys ARC v1 port: run uncrustify to fix code style

Signed-off-by: Yuguo Zou <yuguo.zou@synopsys.com>
* Synopsys port: modify license headers, change copyright only

Signed-off-by: Yuguo Zou <yuguo.zou@synopsys.com>
5 years agoChange the Linux Port to use condition variables instead of Signals (#156)
alfred gedeon [Mon, 7 Sep 2020 16:56:28 +0000 (09:56 -0700)]
Change the Linux Port to use condition variables instead of Signals (#156)

* Posix port with pthread cond instead of signals
* Comment: replace signal with pthread_cond
Co-authored-by: Alfred Gedeon <gedeonag@amazon.com>
5 years agoFix compiler warning in config assert() on 64 bit architecture (#158)
RichardBarry [Mon, 7 Sep 2020 05:08:00 +0000 (22:08 -0700)]
Fix compiler warning in config assert() on 64 bit architecture (#158)

* Replace the following code that was used to force an assert:
configASSERT( pxTCB->ulNotifiedValue[ uxIndexToNotify ] == ~0UL );

with:
configASSERT( xTickCount == ( TickType_t ) 0 );

Because the former generates a warning on 64-bit architectures.

5 years agoChange the header file name into lower case so it can work on GNU/Linux for MinGW...
Ming Yue [Fri, 28 Aug 2020 21:59:30 +0000 (14:59 -0700)]
Change the header file name into lower case so it can work on GNU/Linux for MinGW cross-compiling. (#144)

5 years agoRevert "Fix: Add Parenthesis around if-statement in macro (#138)" (#148)
alfred gedeon [Fri, 28 Aug 2020 21:19:31 +0000 (14:19 -0700)]
Revert "Fix: Add Parenthesis around if-statement in macro (#138)" (#148)

This reverts commit 45e97bd246e115ca9ebdd6538939478c6c6e6343.

5 years agoRevert "Fix race condition when tracing is enabled (#95)" (#149)
Ming Yue [Fri, 28 Aug 2020 21:17:29 +0000 (14:17 -0700)]
Revert "Fix race condition when tracing is enabled (#95)" (#149)

This reverts commit 61635d5b8b7ae1e783026f37eb66757509010130.

5 years agoUpdate history.txt (#150)
RichardBarry [Fri, 28 Aug 2020 21:14:29 +0000 (14:14 -0700)]
Update history.txt (#150)

* Update History.txt ready for the 10.4.0 release.

5 years agoUse unsigned constant in pdMS_TO_TICKS(). (#147)
Gary Wicker [Fri, 28 Aug 2020 18:50:31 +0000 (11:50 -0700)]
Use unsigned constant in pdMS_TO_TICKS(). (#147)

5 years agoRevert "Fix inaccurate ticks in windows port (#142)" (#143)
Cobus van Eeden [Thu, 27 Aug 2020 19:06:03 +0000 (12:06 -0700)]
Revert "Fix inaccurate ticks in windows port (#142)" (#143)

This reverts commit d85fd461d9a17811f8d0d8fa11fcebf7fa542ee4.

5 years agoFix inaccurate ticks in windows port (#142)
Cobus van Eeden [Thu, 27 Aug 2020 17:12:51 +0000 (10:12 -0700)]
Fix inaccurate ticks in windows port (#142)

5 years agoRemoving general-inquiry.md to divert people to the forums. (#141)
Cobus van Eeden [Wed, 26 Aug 2020 19:08:39 +0000 (12:08 -0700)]
Removing general-inquiry.md to divert people to the forums. (#141)

5 years agoFix: Add Parenthesis around if-statement in macro (#138)
alfred gedeon [Wed, 26 Aug 2020 17:50:35 +0000 (10:50 -0700)]
Fix: Add Parenthesis around if-statement in macro (#138)

Co-authored-by: Alfred Gedeon <gedeonag@amazon.com>
5 years agoUpdate Renesas GCC compiler ports (#135)
Ravishankar Bhagavandas [Mon, 24 Aug 2020 22:32:45 +0000 (15:32 -0700)]
Update Renesas GCC compiler ports (#135)

* Add RX200 GCC compiler

Signed-off-by: Dinh Van Nam <vannam.dinh.xt@renesas.com>
* Update GCC compiler for:
 * RX600v2
 * RX600
 * RX100

Signed-off-by: Dinh Van Nam <vannam.dinh.xt@renesas.com>
* Use configINCLUDE_PLATFORM_H_INSTEAD_OF_IODEFINE_H flag

* Use configINCLUDE_PLATFORM_H_INSTEAD_OF_IODEFINE_H flag RX100, RX200

Co-authored-by: Dinh Van Nam <vannam.dinh.xt@renesas.com>
5 years agoStyle: Add uncrustify guards, fix asm (#136)
alfred gedeon [Mon, 24 Aug 2020 22:32:02 +0000 (15:32 -0700)]
Style: Add uncrustify guards, fix asm (#136)

Co-authored-by: Alfred Gedeon <gedeonag@amazon.com>
5 years agoStyle: Make freertos.org = FreeRTOS.org and add https (#134)
alfred gedeon [Fri, 21 Aug 2020 18:30:39 +0000 (11:30 -0700)]
Style: Make freertos.org = FreeRTOS.org and add https (#134)

* Style: make freertos.org = FreeRTOS.org also add https

* Style: Fix freertos into FreeRTOS

* Style: Fix freertos into FreeRTOS

Co-authored-by: Alfred Gedeon <gedeonag@amazon.com>
5 years agoFix compiler issues cause by formatting assembly code on ESP32 port (#133)
Carl Lundin [Fri, 21 Aug 2020 17:55:58 +0000 (10:55 -0700)]
Fix compiler issues cause by formatting assembly code on ESP32 port (#133)

5 years agoStyle: Change FreeRTOS websites in comments (#131)
alfred gedeon [Thu, 20 Aug 2020 21:59:28 +0000 (14:59 -0700)]
Style: Change FreeRTOS websites in comments (#131)

* Style: Change FreeRTOS websites in comments

* Style: Change freertos to FreeRTOS in comments

* Style: Remove broken link

Co-authored-by: Alfred Gedeon <gedeonag@amazon.com>
5 years agoRevert "Update ESP32 port files (#92)" (#132)
Carl Lundin [Thu, 20 Aug 2020 21:41:44 +0000 (14:41 -0700)]
Revert "Update ESP32 port files (#92)" (#132)

This reverts commit adbfca54200d9665eb6b94da302b5268616072c0.