Commit Graph

15399 Commits

Author SHA1 Message Date
Masayuki Ishikawa
e7d44ee16e arch: armv7-a: Fix heap corruption in SMP mode
Currently up_allocate_heap() assumes that g_idle_topstack points
top of the heap memory. However, g_idle_topstack pointed incorrect
address in SMP mode which resulted in heap corruption. This PR
moves g_idle_topstack at the end of .noinit to avoid this issue.

Signed-off-by: Masayuki Ishikawa <Masayuki.Ishikawa@jp.sony.com>
2020-02-18 07:06:12 -06:00
YAMAMOTO Takashi
7513cb6921 CONFIG_ARM_SEMIHOSTING_HOSTFS: mention limited support of directories 2020-02-18 17:11:59 +08:00
YAMAMOTO Takashi
9d4e9ce21e Make this build with CONFIG_ARM_SEMIHOSTING_HOSTFS=y 2020-02-18 13:46:33 +08:00
Nathan Hartman
239537fd9d arch/arm/include/tiva/chip.h: Fix typos 2020-02-17 16:50:03 -06:00
YAMAMOTO Takashi
5ebce26cc7 Fix "unused" warnings with CONFIG_TIVA_WITH_QEMU=y 2020-02-17 13:41:10 +08:00
Xiang Xiao
866a531899 sim/rtc: Don't change the host wall clock in sim_rtc_settime 2020-02-16 09:44:04 -06:00
Gregory Nutt
5d850fb197 arch/sim/src/sim/up_oneshot.c: Eliminate warning from build test. 2020-02-15 19:47:02 +01:00
Gregory Nutt
f5e0bb2d30 Run all files modified by PR274 through nxstyle. 2020-02-15 07:17:22 -06:00
Xiang Xiao
8b5658b918 arch/sim: Implement arch rtc interface on top of rtc driver 2020-02-15 07:17:19 -06:00
Xiang Xiao
d0d4b7a531 Reimplement arch alarm timer on top of oneshot driver framework
The benefit include:

1. Simplify the implementation
2. Support both tick and tickless automatically
3. No time drift in tickless mode
4. Support critmon arch API automatically
2020-02-15 07:17:16 -06:00
Gregory Nutt
10623f65b0 arch/risc-v/src/k210/up_schedulesigaction.c: Fix some long lines. 2020-02-14 09:37:24 -06:00
Masayuki Ishikawa
382cc29c72 arch: risc-v: Add support for PROTECTED build to k210 2020-02-14 09:29:51 -06:00
Masayuki Ishikawa
5fcde14cd1 arch: risc-v: Add up_pthread_start.c and up_task_start.c to common dir 2020-02-14 09:29:51 -06:00
Masayuki Ishikawa
1a4ff4c4cd arch: risc-v: Add support for PROTECTED build to rv64gc 2020-02-14 09:29:51 -06:00
Juha Niskanen
15b78abccf Fix typos in comments 2020-02-14 08:50:45 -06:00
YAMAMOTO Takashi
f79b47ad25 tiva_serial.c: Make this buildable with certain configurations 2020-02-14 15:38:24 +08:00
YAMAMOTO Takashi
1a3f59be58 sim: Make hostfs build for macOS
* Ignore O_DIRECT if the host OS doesn't provide it.
* Use statvfs instead of statfs. The former is in POSIX and
  more widely available these days.
2020-02-13 15:17:36 +08:00
YAMAMOTO Takashi
22d002762b sim: Add more names to nuttx-names.dat 2020-02-12 20:39:08 -06:00
YAMAMOTO Takashi
3d425280b6 simuart: Don't assume a specific endian 2020-02-12 20:38:25 -06:00
Nicholas Chin
e1d35096cf arch/arm/src/imxrt/Kconfig: Fixes IMXRT_HAVE_LCD to only be selected by 1052 and 1062 and misc. typos 2020-02-12 09:42:07 -08:00
Nicholas Chin
8469de724a Fixes build issues with IMXRT Qencoder 2020-02-12 09:42:07 -08:00
Gregory Nutt
cfb7561e77 arch/arm/src/armv7-a/arm_vectors.S: Fix clobbered register in SMP mode. 2020-02-12 16:49:32 +01:00
Gregory Nutt
5f306b0461 Run all .c and .h files modified by PR 249 through nxstyle. 2020-02-12 08:17:03 -06:00
Xiang Xiao
5e99e64d9f sim/net: Replace the busy polling with work
netdriver_loop should check there is data to read before queue the work
2020-02-12 08:16:43 -06:00
Xiang Xiao
5a00657ac4 arch/sim: Change CONFIG_NET_ETHERNET to CONFIG_SIM_NETDEV 2020-02-12 08:16:33 -06:00
Xiang Xiao
6b1187b402 arch/sim: Change the return type of netdriver_setmacaddr to void 2020-02-12 08:16:23 -06:00
Xiang Xiao
582b2af912 arch/sim: Change syslog to printf in up_tapdev.c
since this file is compiled with host environment, can't call NuttX's syslog
2020-02-12 08:16:08 -06:00
Ouss4
2ff43fb8a8 Run files modified by PR239 through nxstyle. 2020-02-11 21:09:12 +00:00
Xiang Xiao
e6c67bdd78 arch/sim: Drive up_x11update by work to simplify up_idle. 2020-02-11 21:07:22 +00:00
Xiang Xiao
14a82f40d2 arch/sim: Make eventloop as an internal variable to simplify up_idle. 2020-02-11 21:07:12 +00:00
Nicholas C
c4c0d05891 arch/arm/src/imxrt; Adds clock config logic and Kconfig menus for FLEXIO on IMXRT 2020-02-10 20:36:22 -06:00
Ouss4
ac4e6618bb arch/mips: Clear the software interrupt through a common function
implemented in the chip specific code.
2020-02-10 12:40:41 -06:00
Ouss4
90043390ff arch/mips/: Fix architectures' references in Kconfigs and Toolchain.defs. 2020-02-10 12:40:41 -06:00
Ouss4
0dc1dc605d arch/mips: When a CPU implements an External Interrupt Controller,
use the IPL bits to control masking interrupts.
2020-02-10 12:40:41 -06:00
Gregory Nutt
d09af3b7f3 Run .c and .h files modified by PR241 through nxstyle. 2020-02-10 08:57:20 -06:00
Xiang Xiao
f2f385902b arch/sim: Remove the unnecessary file guard
since the same protection is already done in Makefile
2020-02-10 08:57:06 -06:00
Xiang Xiao
7fd3a3bcca xarch/sim: Call pm_initialize from up_initialize directly
We don't need the additional flexibility since sim just has one chip.
2020-02-10 08:56:51 -06:00
Xiang Xiao
978575d79a arch/sim: Pass X11 related config to host environment
Remove the hard code CONFIG_SIM_X11NOSHM value from up_x11framebuffer.c
2020-02-10 08:56:37 -06:00
Xiang Xiao
856b62ca09 arch/sim: Fix X11 segmentation fault when CONFIG_SIM_X11NOSHM isn't enabled
up_x11mapsharedmem should assign the share memory to g_framebuffer
2020-02-10 08:56:22 -06:00
Xiang Xiao
406a9adfdd arch/sim: fix up_idle call the wrong pthread_yield version
The logic want the host version but link to NuttX version
2020-02-09 07:44:51 -06:00
Xiang Xiao
e06a4226ed arch/sim: Reuse the main thread as the simulated CPU0 2020-02-09 07:43:47 -06:00
Xiang Xiao
a87271617a arch/sim: Replace pthread mutex with atomic function for up_testset
up_testset may be called from signal hander but it isn't safe to call pthread API in that context
2020-02-09 07:43:10 -06:00
Xiang Xiao
7794dc8821 arch/sim: Set idle thread stack size to zero
To avoid ps generate "Segmentation fault" because do_stackcheck
check the stack color if the stack size doesn't equal zero
BTW, it is better to set idle task stack size to zero since idle
task use the host thread and the stack size from config isn't the
actual value.
2020-02-09 07:42:19 -06:00
Xiang Xiao
bfe1d471ce sim/arch: Fix up_head.c:122:11:implicit declaration of function 'up_cpu_index' 2020-02-09 07:41:42 -06:00
Xiang Xiao
04128b4570 arch/sim/src: Rename board_lcd.c to up_lcd.c like other sim code
Rename board_lcd.c to up_lcd.c like other sim code and compile up_spiflash.c and up_qspiflash.c conditionally
2020-02-08 08:52:34 -06:00
Xiang Xiao
fa3e66fe82 arch/sim/src/: Reimplement sim uart on top of serial driver framework
The benefits include:

1. Simplify the implementation
2. Support Ctrl+C automatically
3. Support poll automatically
4. Call pm_activity automatically
5. Save one polling thread
2020-02-08 07:52:26 -06:00
Xiang Xiao
6d69439f58 Call xxx_timer_initialize from clock subsystem
Call xxx_timer_initialize from clock subsystem to make timer ready for use as soon as possiblei and revert the workaround:

commit 0863e771a9
Author: Gregory Nutt <gnutt@nuttx.org>
Date:   Fri Apr 26 07:24:57 2019 -0600

    Revert "sched/clock/clock_initialize.c:  clock_inittime() needs to be done with CONFIG_SCHED_TICKLESS and clock_initialize should skip clock_inittime() for external RTC case since the RTC isn't ready yet."

    This reverts commit 2bc709d4b9.

    Commit 2bc709d4b9 was intended to handle the case where up_timer_gettime may not start from zero case.  However, this change has the side-effect of breaking every implementation of tickless mode:  After this change the tickless timer structures are used before they are initialized in clock_inittime().  Initialization happens later when up_initialize is called() when arm_timer_initialize().

    Since the tickless mode timer is very special, one solution might be to

    1. Rename xxx_timer_initialize to up_timer_initialize
    2  Move up_timer_initialize to include/nuttx/arch.h
    3.  Call it from clock subsystem instead up_initialize

    Basically, this change make timer initialization almost same as rtc initialization(up_rtc_initialize).

    For now, however, we just need to revert the change.
2020-02-08 07:40:06 -06:00
Xiang Xiao
76bbed07a4 Call up_irqinitialize from irq subsystem
Call up_irqinitialize from irq subsystem to make the irq ready for use as soon as possible
2020-02-08 07:39:22 -06:00
Xiang Xiao
a8de37fbec Ensure all source code end with one and only one newline
by this command:
git ls-files -z | while IFS= read -rd '' f; do tail -c1 < "$f" | read -r _ || echo >> "$f"; done
2020-02-08 07:25:56 -06:00
Masayuki Ishikawa
81f1133174 ELF64 support (#220)
* include: Introduce elf64.h and elf.h

    Added elf64.h for 64bit ELF support and moved common definitions
    from elf32.h to elf.h. Also introduced Elf_xxx to be used in
    common libraries such as binfmt.

  * binfmt, include, modlib, module: Add support for ELF64

    Elf_xxx must be used instead of Elf32_xxx to support ELF64.
    To use ELF64, CONFIG_ELF_64BIT must be enabled.

  * binfmt, modlib: Add support for relocate address

  * arch: risc-v: Add include/elf.h

  * libs: machine: Add risc-v related files.

    NOTE: Currently only supports ELF64

  * boards: maix-bit: Add elf and posix_spawn configurations

  * boards: maix-bit: Add support for module configuration
2020-02-07 17:10:23 -06:00