The SPI2_CS_X and SPI2_SCK pins are used for connection to the LTE modem.
These pins are the special pins for the host interface that are set
automatically by latching the SYSTEM0/1 pins. So, it causes a problem
with increased current consumption when the modem is in power off state.
To prevent it, set these pins to GPIO HiZ during board initialization.
Summary:
- This commit enables to test C++ static object in ELF (hello++3)
Impact:
- elf defconfig only
Testing:
- Tested with spresense
Signed-off-by: Masayuki Ishikawa <Masayuki.Ishikawa@jp.sony.com>
The driver is provided by Spresense SDK
ISX019 has the DOL-HDR feature, which combines images with different exposure so that
both bright and dark data of high-contrast subject can be viewed at the same time.
Signed-off-by: Alin Jerpelea <alin.jerpelea@sony.com>
Change pin initialization timing for camera from board power on to camera device
power on for the following purposes.
- avoid unnecessary power consumption
- Make the corresponding pins available for other uses when camera is not in use
Selecting this option will pass "-Map=$(TOPDIR)$(DELIM)nuttx.map" to ld
when linking NuttX ELF. That file can be useful for verifying
and debugging magic section games, and for seeing which
pieces of code get eliminated with DEBUG_OPT_UNUSED_SECTIONS.
Signed-off-by: chao.an <anchao@xiaomi.com>
Enable this option to optimization the unused input sections with the
linker by compiling with " -ffunction-sections -fdata-sections ", and
linking with " --gc-sections ".
Signed-off-by: chao.an <anchao@xiaomi.com>
It caused i2c tool not to work due to i2c uninitializing processing.
Since this process is not necessary in the normal case, we will
move it to the error case.
## Summary
A lot of linker scripts were listed twice, once for unix, once for windows.
This PR cleans up the logic so they're only listed once.
## Impact
Any opportunity to use a single source of truth and reduce lines of code is a win!
## Testing
CI will test all build
State of problem:
- Some drivers that do not support write operations (does not
have write handler or ioctl do not perform any write actions)
are registered with write permissions
- Some drivers that do not support read operation (does not
have read handler or ioctl do not perform any read actions)
are registered with read permissions
- Some drivers are registered with execute permissions
Solution:
- Iterate code where register_driver() is used and change 'mode'
parameter to reflect the actual read/write operations executed
by a driver
- Remove execute permissions from 'mode' parameter
Signed-off-by: Petro Karashchenko <petro.karashchenko@gmail.com>
since the related code was removed by:
commit 4d5a964f29
Author: Jiuzhu Dong <dongjiuzhu1@xiaomi.com>
Date: Tue Feb 23 18:04:13 2021 +0800
net: unify socket into file descriptor
Signed-off-by: Xiang Xiao <xiaoxiang@xiaomi.com>
1. If CONFIG_SCHED_INSTRUMENTATION_SWITCH is enabled, then these additional interfaces are expected:
sched_note_suspend
sched_note_resume
at the same time,If CONFIG_SMP is enabled,then expected:
sched_note_cpu_pause
sched_note_cpu_paused
sched_note_cpu_resume
sched_note_cpu_resumed
2. other board if enable SCHED_INSTRUMENTATION,SCHED_INSTRUMENTATION_SWITCH to defconfig.
Summary:
- This commits adjusts the following settings for spresense
- CONFIG_FAT_MAXFNAME : 255 to 128
- CONFIG_NAME_MAX : 765 to 128
Impact:
- None
Testing:
- Tested with spresense:wifi_smp
Signed-off-by: Masayuki Ishikawa <Masayuki.Ishikawa@jp.sony.com>
Rearchitect video driver:
- Define two video I/F(struct imgsensor_ops_s and struct imgdata_ops_s),
and support them.
- CISIF driver supports new video I/F struct imgdata_ops_s.
- ISX012 driver supports new video I/F struct imgsensor_ops_s.
- Move ISX012 driver to general driver directory.
This reverts commit 45672c269d.
Because:
* It's very confusing to have cc as LD.
* I don't see what "-nostartfiles -nodefaultlibs" in LDFLAGS are
supposed to do when we use LD directly. It would be simpler to
remove them from our LDFLAGS.
several configs are used for testing and need the BSD components
more information about license can be found here
https://www.apache.org/legal/resolved.html#category-a
Signed-off-by: Alin Jerpelea <alin.jerpelea@sony.com>
Summary:
- I noticed that the RNDIS networking is unstable when running
nxplayer + command execution via telnet
- This commit is a workaround to fix this issue by disabling
CONFIG_TCP_WRITE_BUFFERS. Also, CONFIG_SENDFILE_BUFSIZE is
increased to improve the webserver performance.
Impact:
- spresense:rndis_smp only
Testing:
- Tested with nxplayer, telnetd and webserver
Signed-off-by: Masayuki Ishikawa <Masayuki.Ishikawa@jp.sony.com>
The patch
Make: use gcc as LD
introduced use of GCC wrapper as linker. LD variable references GCC
executable now. But when GCC wrapper s used to build relocatable
loadable objects (ELF executables and modules) then it causes
linking of toolchain default libc and other libraries even when -r
is usd. Another problem is that incorrect multiarch variant is selected
for libraries search and possibly even for LTO or C++ templates
instantiating and other glue code which causes fails during linking
if CFLAGS selects non/default miltiarch variant.
Corresponding CFLAGS are passed to LDMODULEFLAGS and LDELFFLAGS
as well as -nostartfiles -nodefaultlibs options.
Separate line is used to easily find and adjust lines if link
process is changed in future.
Signed-off-by: Pavel Pisa <ppisa@pikron.com>
Summary:
- This commit adds CONFIG_NET_TCP_WRITE_BUFFERS=y to
rndis and rndis_smp defconfigs
Impact:
- webserver performance will be improved
Testing:
- Tested with nxplayer, telnetd, webserver, iperf
Signed-off-by: Masayuki Ishikawa <Masayuki.Ishikawa@jp.sony.com>
Summary:
- I noticed that spresense:rndis_smp and spresense:wifi_smp
do not boot due to the recent change in nx_start.c
- As the result of the discussion, I understand that we have to
add CONFIG_BOARD_LATE_INITIALIZE=y for SMP
Impact:
- spresense only
Testing:
- Tested with spresense:rndis_smp and spresense:wifi_smp
Signed-off-by: Masayuki Ishikawa <masayuki.ishikawa@gmail.com>
Summary:
- I noticed that Telnet session is sometimes not closed
when tested with nxplayer + command stress test
- The symptom relates to the change of IOB throttling in TCP
but we are still finding the root cause.
- This commit is just a workaround to avoid the issue by
disabling telnet character mode.
Impact:
- spresense:rndis, spresense:rndis_smp only
Testing:
- Tested with nxplayer (HTTP audio streaming) + command stress test
Signed-off-by: Masayuki Ishikawa <Masayuki.Ishikawa@jp.sony.com>
Summary:
- This commit adds the following configs to spresense:elf
+CONFIG_DEBUG_FULLOPT=y
+CONFIG_DEBUG_SYMBOLS=y
+CONFIG_STACK_COLORATION=y
Impact:
- None
Testing:
- Tested with spresense
Signed-off-by: Masayuki Ishikawa <masayuki.ishikawa@gmail.com>
Summary:
- This commit converts data to the physical address for DMA transfer.
Impact:
- cxd56_imageproc.c and cxd56_audio_dma.c
Testing:
- Not tested
Signed-off-by: Kazuya Hioki <Kazuya.Hioki@sony.com>
Signed-off-by: Masayuki Ishikawa <Masayuki.Ishikawa@jp.sony.com>
Summary:
- In order to support the atomic instructions by ldrex/strex instruction
in NuttX SMP, the data or later sections are mapped to the system bus.
Impact:
- Bootloader for Spresense SDK 2.1.0 or later must be installed
- Loops per msec must be adjusted
- Physical address for DMA must be converted with CXD56_PHYSADDR
Testing:
- Will be tested with later commits
Signed-off-by: Kazuya Hioki <Kazuya.Hioki@sony.com>
Signed-off-by: Masayuki Ishikawa <Masayuki.Ishikawa@jp.sony.com>
Summary:
- This commit removes CONFIG_LIBM from defconfigs to use libm for gcc
Impact:
- Applications which use the math library
Testing:
- Tested with spresense:wifi_smp
Signed-off-by: Masayuki Ishikawa <Masayuki.Ishikawa@jp.sony.com>
If the GPIO falls within 300us after raising
(or GPIO raises within 300us after falling), the modem may miss the GPIO
interrupt. So add delay by 300us before changing the GPIO.
When CONFIG_BOARD_RESET_ON_ASSERT is enabled, board_reset() may be
called on interrupt context. This commit changes to be able to call the
function on interrupt context.
Summary:
- The CONFIG_SMP_IDLETHREAD_STACKSIZE was introduced to optimize
the idle stack size for other than CPU0
- However, there are no big differences between the idle stacks.
- This commit removes the config to simplify the kernel code
Impact:
- All SMP configurations
Testing:
- Tested with ostest with the following configs
- spresense:smp, spresense:rndis_smp
- esp32-devkitc:smp (QEMU), maix-bit:smp (QEMU)
- sabre-6quad:smp (QEMU), sabre-6quad:netnsh_smp (QEMU)
- raspberrypi-pico:smp, sim:smp (x86_64)
Signed-off-by: Masayuki Ishikawa <asayuki.Ishikawa@jp.sony.com>
arch: Allocate the space from the beginning in up_stack_frame
and modify the affected portion:
1.Correct the stack dump and check
2.Allocate tls_info_s by up_stack_frame too
3.Move the stack fork allocation from arch to sched
Signed-off-by: Xiang Xiao <xiaoxiang@xiaomi.com>
All supported arch uses a push-down stack:
The stack grows toward lower addresses in memory. The stack pointer
register points to the lowest, valid working address (the "top" of
the stack). Items on the stack are referenced as positive(include zero)
word offsets from sp.
Which means that for stack in the [begin, begin + size):
1.The initial SP point to begin + size
2.push equals sub and then store
3.pop equals load and then add
Signed-off-by: Xiang Xiao <xiaoxiang@xiaomi.com>
Summary:
- This commit removes SCHED_INSTRUMENTATION which has been used
to debug NuttX SMP kernel
Impact:
- None
Testing:
- Tested with ostest
Signed-off-by: Masayuki Ishikawa <Masayuki.Ishikawa@jp.sony.com>
Summary:
- This commit adds CONFIG_ARCH_LEDS_CPU_ACTIVITY=y to rndis_smp and wifi_smp
Impact:
- spresense:rndis_smp and spresense:wifi_smp configurations
Testing:
- Tested with smp and ostest
Signed-off-by: Masayuki Ishikawa <Masayuki.Ishikawa@jp.sony.com>
Summary:
- This commit adds CPU activity LEDs feature to spresense
Impact:
- CONFIG_ARCH_LEDS_CPU_ACTIVITY=y only
Testing:
- Arch specific code and defconfigs will be commited later
Signed-off-by: Masayuki Ishikawa <Masayuki.Ishikawa@jp.sony.com>
Summary:
- This commit adds iperf to rndis and rndis_smp defcofigs
Impact:
- rndis and rndis_smp
Testing:
- Tested with iperf
Signed-off-by: Masayuki Ishikawa <Masayuki.Ishikawa@jp.sony.com>
Summary:
- This commit replaces SHES related headers under cxd56xx
Impact:
- No impact
Testing:
- Build check only
Signed-off-by: Masayuki Ishikawa <Masayuki.Ishikawa@jp.sony.com>
In the current compilation environment, the recursive assignment(=) for compile
flags will be delayed until every file is actually need to be compile.
For example:
--------------------------------------------------------------------------------
arch/arm/src/Makefile:
INCLUDES += ${shell $(INCDIR) "$(CC)" $(ARCH_SRCDIR)$(DELIM)chip}
INCLUDES += ${shell $(INCDIR) "$(CC)" $(ARCH_SRCDIR)$(DELIM)common}
INCLUDES += ${shell $(INCDIR) "$(CC)" $(ARCH_SRCDIR)$(DELIM)$(ARCH_SUBDIR)}
INCLUDES += ${shell $(INCDIR) "$(CC)" $(TOPDIR)$(DELIM)sched}
CPPFLAGS += $(INCLUDES) $(EXTRAFLAGS)
CFLAGS += $(INCLUDES) $(EXTRAFLAGS)
CXXFLAGS += $(INCLUDES) $(EXTRAFLAGS)
AFLAGS += $(INCLUDES) $(EXTRAFLAGS)
--------------------------------------------------------------------------------
All compilation options will be included recursively,
which will be delayed until the compilation options are actually used:
tools/Config.mk:
--------------------------------------------------------------------------------
define COMPILE
@echo "CC: $1"
$(Q) $(CC) -c $(CFLAGS) $($(strip $1)_CFLAGS) $1 -o $2
endef
--------------------------------------------------------------------------------
All compile flags to be reexecuted $(INCDIR) as long as one file needs to be compiled,
but in fact, the compilation options have not changed in the current directory.
So the we recommand to change the syntax of assignment
From
Recursive (=)
To
Simple (:=)
In this way, we can ensure that all compilation options are expanded only once and reducing repeated works.
Signed-off-by: chao.an <anchao@xiaomi.com>
the mkspk tool will automaticaly be built if CONFIG_CXD56_BINARY
is set.
Test:
nuttx.spk was succesfully generated
Signed-off-by: Alin Jerpelea <alin.jerpelea@sony.com>
Summary:
- During streaming test, I noticed a dealock when controlling IRQ
- Actually, it will send an IPI when the cpu index is not 0
- However, up_cpu_pause() also sends IPI with critical section
- So the IRQ control must follow the same rule
Impact:
- Affects SMP only
Testing:
- Tested with spresense:wifi_smp
Signed-off-by: Masayuki Ishikawa <Masayuki.Ishikawa@jp.sony.com>
Summary:
- I noticed that stack for the init task was filled almost 100%
- This commit fixes this issue
Impact:
- Affects spresense:wifi configuration only
Testing:
- Tested with renew/mount/wget/nxplayer commands
Signed-off-by: Masayuki Ishikawa <Masayuki.Ishikawa@jp.sony.com>
Summary:
- This commit adjusts parameters for audio streaming
Impact:
- Only affects spresense:wifi and spresense:wifi_smp
Testing:
- Tested with nxplayer
Signed-off-by: Masayuki Ishikawa <Masayuki.Ishikawa@jp.sony.com>
and remove the special handling in the stack dump
Signed-off-by: Xiang Xiao <xiaoxiang@xiaomi.com>
Change-Id: Ia1ef9a427bd4c7f6cee9838d0445f29cfaca3998
1.Reduce the default size of task_group_s(~512B each task)
2.Scale better between simple and complex application
Signed-off-by: Xiang Xiao <xiaoxiang@xiaomi.com>
Change-Id: Ia872137504fddcf64d89c48d6f0593d76d582710
Summary:
- This commit adds a wifi_smp configuration for spresense
- To avoid deadlock, gs2200m_irq_enable() and gs2200m_irq_disable()
release global spinlock if they are not called on CPU0.
Impact:
- Only affects spresense:wifi_smp
Testing:
- Tested with ostest, renew, smp, telnetd.
- NOTE: tcpserver might be unstable
Signed-off-by: Masayuki Ishikawa <Masayuki.Ishikawa@jp.sony.com>
Summary:
- This commit refactors cxd56_gs2200m.c
- gs2200m_irq_enable() and gs2200m_irq_disable() are now symmetric.
Impact:
- All use cases which use the gs2200m driver.
Testing:
- Tested with spresense:wifi
Signed-off-by: Masayuki Ishikawa <Masayuki.Ishikawa@jp.sony.com>
to save the preserved space(1KB) and also avoid the heap overhead
Signed-off-by: Xiang Xiao <xiaoxiang@xiaomi.com>
Change-Id: I694073f68e1bd63960cedeea1ddec441437be025
Change the preallocated message and descriptor from 32/24 to 4.
The total size is reduce from 1892 to 532
Signed-off-by: Xiang Xiao <xiaoxiang@xiaomi.com>
Change-Id: I79d199465daef678986868f773876289859f42fc