Gregory Nutt
33d711166e
arch/arm/src/armv7-a/Toolchain.defs: Correct conditional logic. Was mixing C preprocess and Makefile semantics.
2019-03-20 08:17:38 -06:00
Gregory Nutt
006c48692f
arch/arm/src/armv7-a/arm_scu.c: Another place where universal cached control change bork a compile due to missing ARM_DSB() definition.
2019-03-19 16:56:04 -06:00
Gregory Nutt
aed32d35fa
Fix typo in last commit found in build testing.
2019-03-19 13:26:46 -06:00
Gregory Nutt
c1beda8a34
ARMv7-A/R: Add barriers.h header file for consistency with ARMv7-M.
2019-03-19 13:20:23 -06:00
zhangyuan7
471a18ee4d
arch/arm: Add the initial cortex-a7 archtiecture support
2019-03-19 11:51:29 -06:00
Xiang Xiao
cc1595f232
arm/armv7-a: Add mmu_l1_map_regions() to remove the code duplication.
2019-03-19 11:30:37 -06:00
Xiang Xiao
75a97657be
arch/arm/src/armv7-a/sctlr.h: Add SCR bit definitions.
2019-03-19 11:22:44 -06:00
liuzhuang
517f391267
arch/arm/src/armv7-a/arm_gicv2.c: Don't use GIC_ICDDCR_ENABLEGRP1 for NONSECURE since this bit doesn't exist in this mode.
2019-03-19 11:20:45 -06:00
Xiang Xiao
7e9a060202
arch/arm/src/armv7-a: Fix assemble error when including gic.h
2019-03-19 11:19:09 -06:00
zhangyuan7
f36ce38991
arch/arm/src/armv7-a/arm_head.S: add weak attribute to arm_data_initialize so platform could provide the new implemenation as needed.
2019-03-19 11:16:52 -06:00
zhangyuan7
2bc3eddb79
arch/arm/src/armv7-a: Guard some assembly files if configuration not selected.
2019-03-19 11:15:21 -06:00
zhangyuan7
c59dabe41c
arch/arm/src/armv7-a: Remove inclusion pg_macros.h for armv7-a since this header file does not exist.
2019-03-19 11:13:27 -06:00
zhangyuan7
3d171340db
arch/arm/armv7-a: Support thumb mode and fix interworking issue.
2019-03-19 11:10:41 -06:00
Xiang Xiao
64252a298f
arch/: Unify the cache interface for all architectures
2019-03-19 10:37:13 -06:00
Bilal Wasim
1690f2ca8b
arch/arm/src/armv7-a/mmu.h: pdating the cp15_wrttb and cp15_wrdacr functions to use inline assembly in the correct way. The incorrect method was generating errors as ARMv7-a expects the MCR/MRC instructions to provide registers as an argument(MRC p15, 0, <Rt>, c2, c0, 0) and the code was providing a constant value(and hence the build error).
2019-03-14 17:14:56 -06:00
Gregory Nutt
a2e62f557d
Squashed commit of the following:
...
sched/init/nx_bringup.c: Fix a naming collision.
sched/init: Rename os_start() to nx_start()
sched/init: Rename os_smp* to nx_smp*
sched/init: Rename os_bringup to nx_bringup
sched/init: rename all internal static functions to begin with nx_ vs os_
2019-02-04 16:20:35 -06:00
Gregory Nutt
bb623d1e04
This commit renames all internal OS functions defined under sched/task so that they begin with the prefix. For example, nxtask_exit() vs. task_exit().
...
Squashed commit of the following:
Trivial, cosmetic
sched/, arch/, and include: Rename task_vforkstart() as nxtask_vforkstart()
sched/, arch/, and include: Rename task_vforkabort() as nxtask_vforkabort()
sched/, arch/, and include: Rename task_vforksetup() as nxtask_vfork_setup()
sched/: Rename notify_cancellation() as nxnotify_cancellation()
sched/: Rename task_recover() to nxtask_recover()
sched/task, sched/pthread/, Documentation/: Rename task_argsetup() and task_terminate() to nxtask_argsetup() and nxtask_terminate(), respectively.
sched/task: Rename task_schedsetup() to nxtask_schedsetup()
sched/ (plus some binfmt/, include/, and arch/): Rename task_start() and task_starthook() to nxtask_start() and nxtask_starthook().
arch/ and sched/: Rename task_exit() and task_exithook() to nxtask_exit() and nxtask_exithook(), respectively.
sched/task: Rename all internal, static, functions to begin with the nx prefix.
2019-02-04 13:42:51 -06:00
Gregory Nutt
a77c073797
arch/: Fix an interlock that was broken by commit 641a98a434
in all implementations of up_sigdeliver.
2019-02-03 17:14:32 -06:00
Gregory Nutt
641a98a434
arch/: The saved return register state is available on the user stack. Thic commit reorders some logic so that certain, critical registers are preserved in the TCB. This does not make the logic 100% secure, but does prevent some obvious things. sched/signal/sig_delivery: Add a flag to the TCB to indicate that we are in a signal handler. Use this flag to assure that a there a never attempts to nest signal handling operations on a thread. This was guaranteed before but when locking of pre-emption during signal delivering was eliminated in a previous commit, there was a remote possibility of an attempt to do nested signal handling. This flag assures that there is only one signal handled at a time.
2019-02-03 15:29:47 -06:00
Xiang Xiao
763ba51b78
arch/xxx/src/xxx/up_assert.c: Dump CPU0 IDLE stack only when PID equals 0. IDLE threads of other CPUs do not need this special check
2019-01-26 10:59:23 -06:00
Petro Karashchenko
5e48ca91fc
arch/arm/src/armv7-a/mmu.h: Fix some typos; Use TLBIMVA vs TLBIMVAAIS to invalidate the Cortex-A8 cache.
2019-01-06 07:49:21 -06:00
Petro Karashchenko
dff605a5b8
arch/arm/src/armv7-a/arm_mmu.c: Fix end address calculation for mmu_invalidate_region() API
2019-01-06 07:38:04 -06:00
Gregory Nutt
db24306435
arch/assertion logic: Fix additional places where the test for an IDLE task is incorrect. It is not invalid in all configurations to check for PID==0. However, the logic fixed in these places lackes sufficient intelligence to find the right stack for the CPU IDLE thread and could still show the wrong stack.
2018-12-18 17:45:46 -06:00
Gregory Nutt
ec9265aa95
arch assertions: Correct duplicated logic from commit dbf01d12b7
. Checking for PID == zero is not a valid way to test for the IDLE task in all configurations! This is only true in the single CPU configuration. In multiple CPU configurations, there will be a separate IDLE task for each CPU with a different PID.
2018-12-18 17:35:42 -06:00
Xiang Xiao
dbf01d12b7
Assertions: Identify the running task correctly when dumping task state information. It takes time to switch to the target task after g_readytorun has been modified. If panic/assert happen during this period, the dump will contain the incorrect and confusing information due to the difference between the real running task and the return value of this_task(). This change resolve this problem by adding g_running_task to track the real running task through the context switch.
2018-11-15 07:11:51 -06:00
Xiang Xiao
543f4ed8ec
arch/ all assertion functions: up_assert move the register dump to first make the more important info first
2018-11-11 12:53:59 -06:00
Xiang Xiao
dfe788be25
arch/ all assertion functinos: up_stackdump dump the full stack if stack overflow the stack info is very useful to find the backtrace
2018-11-11 12:52:36 -06:00
Xiang Xiao
e4106a3744
arch/ assertions files: up_registerdump capture the general register if not yet saved and up_saveusercontext is implemented, the register dump is very useful to find the cause of failure.
2018-11-11 12:50:50 -06:00
Gregory Nutt
2b3ec4172d
arch/: Add 'BOARD_ASSERT_RESET_VALUE' in config/Kconfig and replace reboot status '0' to 'CONFIG_BOARD_ASSERT_RESET_VALUE'.
2018-11-10 14:06:46 -06:00
Gregory Nutt
b823fd83bd
arch/arm/src/armv7-a: Replicate the same fix was previously commited for the armv7-r.
2018-09-20 21:40:29 -06:00
Xiang Xiao
7a9309370f
arm syscalls: svcall/sycall logic needs to get the ucontext argument from R4 instead of stack since all syscall parameters pass from registers in syscall.h
2018-08-24 07:11:18 -06:00
Xiang Xiao
e1202d2ed3
Replace all ASSERT with DEBUGASSERT to save the code space
2018-08-24 06:58:30 -06:00
Xiang Xiao
467d2a58ea
Replace non critical PANIC with DEBUGPANIC to save the code space
2018-08-24 06:21:15 -06:00
Xiang Xiao
a465b6f0d4
configs/: Change CONFIG_BOARD_RESET_ON_CRASH to CONFIG_BOARD_RESET_ON_ASSERT, arch/: Implement call to board_reset() if in all implementations of up_assert() when CONFIG_BOARD_RESET_ON_ASSERT=y.
2018-08-22 17:04:39 -06:00
Gregory Nutt
8c61c2f31b
Remove trailing spaces at the end of lines.
2018-08-13 07:39:38 -06:00
Alan Carvalho de Assis
283b73edc5
Fix lots of typos in C comments and Kconfig help text
2018-07-08 18:24:45 -06:00
Gregory Nutt
bb88f8d0bb
Squashed commit of the following:
...
A few bugfixes in initial testing on the i.MX6. Behavior seems a little more stable, but there are still memory corruption issues. Also print CPU number on assertion.
Add a file missed in the last big commit.
arch/arm/src/armv7a and imx6: Add support for per-CPU IRQ and FIQ interrupt stacks (bugfix). Add support so that up_assert will print the correct interrupt stack on an assertion (FIQ stack is still not printed).
arch/arm/src/lc823450: Combine the content of smp_macros.h into chip.h. Add support so that up_assert will print the correct interrupt stack on an assertion.
2018-06-21 10:59:58 -06:00
Gregory Nutt
a94e3284b3
syslog: Enable is partial, crippled version of syslog_flush(); arch/: Call syslog_flush() from assertion handling logic.
2018-06-07 16:29:16 -06:00
Gregory Nutt
8aa486515e
arch/: Correct critical section logic associated with the recent signal handler changes (yet again).
2018-06-06 17:39:10 -06:00
Gregory Nutt
b5c6d9c849
Update some comments.
2018-06-06 17:20:01 -06:00
Gregory Nutt
a581d7c2e3
arch/: Relasted to last big change to force interrupts to be disabled. In the SMP case, we still must call leave_critical_section() at least once in order to compensate for the fact that the irqcount was incremented in up_schedsigaction().
2018-06-06 17:04:12 -06:00
Gregory Nutt
977d41d519
Based on a change recommended by Mark Shulte:
...
Signal handlers maybe run with interrupts enabled or disabled, depending on how the task the received the signal was blocked. (i.e.: If sem_wait() is called, then we disable interrupts, then block the currently running task). This could be dangerous, because user code would be running with interrupts disabled.
This change forces interrupts to be enabled in up_sigdeliver() before executing the signal handler calling up_irq_enable() explicitly. This is safe because, when we return to normal execution, interrupts will be restored to their previous state when the signal handler returns.
2018-06-06 09:54:30 -06:00
Gregory Nutt
de6b13b3ab
Per OpenGroup.org, syslog -- and, hence, nonstandard vsyslog, and debug wrappers -- does not return a value. Rename _vsyslog to nx_vsyslog. Use internal nx_vsyslog in the few cases where a return value is required.
2018-03-04 08:07:07 -06:00
Gregory Nutt
3ddea73dc1
arch/arm/src/armv7-a: Port the SMP change by Masayuki Ishikawa to the ARMv7-A family.
2018-02-14 08:36:34 -06:00
Gregory Nutt
de34b4523f
sched/ and arch/arm/src/armv7-a: Replace a few more occurrences of this_task() with current_task(cpu) in an effort to get the i.MX6 working in SMP mode again. It does not yet work, sadly.
2018-02-06 11:17:33 -06:00
Gregory Nutt
8aa1538506
arch/arm/src/armv7-a: Found some additional places were the new this_task() function cannot be called in the i.MX6 SMP configuration.
2018-02-06 10:33:28 -06:00
Gregory Nutt
5c5d19f1c8
Some ommissions from previous commit.
2018-02-04 12:36:51 -06:00
Gregory Nutt
1e59d9dd14
armv7-a, armv7-r, armv7-m: Add atomic read-add-write and read-subtract-write functions.
2018-02-04 12:22:03 -06:00
Gregory Nutt
2683f713ab
Make sure that labeling is used consistently in all function headers (part 3).
2018-02-01 12:17:03 -06:00
Gregory Nutt
1567b82429
Make sure that labeling is used consistently in all function headers (part 2).
2018-02-01 12:03:55 -06:00