ssssenai
077ad5b45f
arch: xtensa/esp32: Add esp32_himem_chardev.c
...
Summary:
- It is applicable to esp32 products and uses the himem part
of 8M psram by creating character devices.
Impact:
- None
Testing:
- Use esp32-wrover series products for more than 1000 functional verifications.
2023-01-14 14:07:46 +08:00
Lucas Saavedra Vaz
674b480198
arch/xtensa/esp32s2: Add initial support for touch pad polling
2023-01-12 22:23:42 +08:00
Lucas Saavedra Vaz
749d0dfe84
arch/xtensa/esp32s2: Add RTC GPIOs configuration functions
2023-01-12 22:23:42 +08:00
Lucas Saavedra Vaz
cdd0787b54
arch/xtensa/esp32: Fix typo and check PU/PD registers
2023-01-12 22:23:42 +08:00
Lucas Saavedra Vaz
3dad6b273e
arch/xtensa/esp32s2: Add missing SENS and RTCCNTL registers
2023-01-12 22:23:42 +08:00
Lucas Saavedra Vaz
2b7d8981e2
arch/xtensa/esp32s3: Add initial support for touch pad polling
2023-01-11 02:00:41 +08:00
Lucas Saavedra Vaz
24995f6918
arch/xtensa/esp32s3: Add RTC GPIOs configuration functions
2023-01-11 02:00:41 +08:00
Lucas Saavedra Vaz
c8dd4b068d
arch/xtensa/esp32s3: Add missing registers and definitions
2023-01-11 02:00:41 +08:00
Dong Heng
07342f7957
xtensa/esp32: SPI support to configure as R/W/RW mode
2023-01-11 01:54:36 +08:00
Dong Heng
67ccee2c4f
xtensa/esp32: ESP32 SPI Flash encryption supports 16-bytes align writing
2023-01-10 01:10:10 +08:00
chenwen@espressif.com
eed2cce3f2
xtensa/esp32: Optimize WLAN device buffer
2023-01-07 13:46:37 +08:00
chenwen@espressif.com
933d1a0a80
xtensa/esp32: Add Wi-Fi softap event
2023-01-06 12:25:36 -03:00
Dong Heng
f137a7b552
xtensa/esp32: Fix macro "CONFIG_NETDEV_IOCTL" control range error
2023-01-06 20:40:53 +08:00
Dong Heng
7097cfd000
xtensa/esp32: Add option to enable ETH PHY reset pin
2023-01-06 20:40:53 +08:00
anjiahao
c02fea36d8
arch:change tcbinfo regs num
...
Signed-off-by: anjiahao <anjiahao@xiaomi.com>
2023-01-05 23:36:12 +08:00
Xiang Xiao
779a610ca3
Remove the unnecessary NULL fields in global instance definition of file_operations
...
Signed-off-by: Xiang Xiao <xiaoxiang@xiaomi.com>
2023-01-04 00:32:13 +02:00
Alan Carvalho de Assis
e3748be0e5
esp32s3: Clear the timer interrupt to avoid losing the next one
2022-12-28 09:45:29 +08:00
Alan Carvalho de Assis
e67b968f15
esp32s2: Clear the timer interrupt to avoid losing the next one
2022-12-28 09:45:29 +08:00
Alan Carvalho de Assis
1ab8c1ea01
esp32: Clear the timer interrupt to avoid losing the next one
2022-12-28 09:45:29 +08:00
Xiang Xiao
b9d7d00943
arch: Remove the unused arch color function variant
...
up_check_tcbstack_remain, up_check_stack, up_check_stack_remain and up_check_intstack_remain
Signed-off-by: Xiang Xiao <xiaoxiang@xiaomi.com>
2022-12-24 22:40:52 +02:00
zhangyuan21
45394eb6dc
arch: save user context in assert common code
...
This is the work continue with #7875
Signed-off-by: zhangyuan21 <zhangyuan21@xiaomi.com>
2022-12-24 13:02:56 +08:00
Petro Karashchenko
3e36f40130
compiler.h: rename printflike to printf_like
...
Signed-off-by: Petro Karashchenko <petro.karashchenko@gmail.com>
2022-12-21 10:56:45 +08:00
Petro Karashchenko
b107e4f417
nuttx: unify MIN, MAX and ABS macro definition across the code
...
Signed-off-by: Petro Karashchenko <petro.karashchenko@gmail.com>
2022-12-21 09:31:28 +08:00
Xiang Xiao
fd0d6a9bf5
compiler.h: Add _ between format|printf|syslog|scanf|strftime and like
...
align with other macro naming style
Signed-off-by: Xiang Xiao <xiaoxiang@xiaomi.com>
2022-12-21 01:05:19 +02:00
Xiang Xiao
d5689e070b
net/arp: Remove nuttx/net/arp.h
...
1.move ARPHRD_ETHER to netinet/arp.h
1.move arp_entry_s to net/arp/arp.h
2.move arp_input to nuttx/net/netdev.h
Signed-off-by: Xiang Xiao <xiaoxiang@xiaomi.com>
2022-12-16 22:10:59 +02:00
zhangyuan21
453a1a7332
arch: move stack and task dump to common code
...
Signed-off-by: zhangyuan21 <zhangyuan21@xiaomi.com>
2022-12-17 01:59:35 +08:00
zhangyuan21
632d87ee71
arch: remove up_release_pending function
...
Signed-off-by: zhangyuan21 <zhangyuan21@xiaomi.com>
2022-12-16 21:29:57 +08:00
Lucas Saavedra Vaz
077c790830
arch: Make REG_[GET/SET]_FIELD thread safe for ESP SOCs
2022-12-16 13:32:43 +08:00
Almir Okato
8f3c425067
xtensa/esp32s3: Enable booting from MCUboot bootloader
...
Add support for booting from MCUboot bootloader on ESP32-S3.
Signed-off-by: Almir Okato <almir.okato@espressif.com>
2022-12-15 00:42:13 +08:00
Lucas Saavedra Vaz
773e3fad43
arch/xtensa/esp32: Add initial support for touch pad polling
2022-12-14 22:38:10 +08:00
Lucas Saavedra Vaz
b8ef8daef9
arch/xtensa/esp32: Add missing macros to iomux
2022-12-14 22:38:10 +08:00
Lucas Saavedra Vaz
2280b33eea
arch/xtensa/esp32: Add functions to get RTC clock
2022-12-14 22:38:10 +08:00
Lucas Saavedra Vaz
f9a9512d3c
arch/xtensa/esp32: Fix typo in SENS registers
2022-12-14 22:38:10 +08:00
Lucas Saavedra Vaz
15dadd0099
arch/xtensa/esp32: Remove redundant RTC registers
2022-12-14 22:38:10 +08:00
chao an
47fbfa215e
fs/hostfs: mode_t of mkdir(2) should use the nuttx prototype
...
Signed-off-by: chao an <anchao@xiaomi.com>
2022-12-13 18:16:20 +08:00
田昕
0382b63f5d
move common assert logic together.
...
Signed-off-by: 田昕 <tianxin7@xiaomi.com>
2022-12-12 17:05:02 +08:00
Alan Carvalho de Assis
fbdd246878
esp32: Fix maximum I2C FIFO size (now SSD1306 will work)
2022-12-09 02:23:28 +08:00
Gustavo Henrique Nihei
236ee5c80d
xtensa/esp32: Rename linker scripts into more meaningful names
...
Signed-off-by: Gustavo Henrique Nihei <gustavo.nihei@espressif.com>
2022-12-08 21:55:29 +08:00
Gustavo Henrique Nihei
1ecaa4e672
xtensa/esp32s3: Configure the PMS peripheral for Protected Mode
...
Signed-off-by: Gustavo Henrique Nihei <gustavo.nihei@espressif.com>
2022-12-07 03:07:45 +08:00
Gustavo Henrique Nihei
bfc40c74d0
xtensa/esp32s3: Add support for Protected Mode
...
Signed-off-by: Gustavo Henrique Nihei <gustavo.nihei@espressif.com>
2022-12-07 03:07:45 +08:00
Lucas Saavedra Vaz
4320eed4a1
arch/xtensa/esp32: Optimize macros and ensure overwrite protection
2022-12-07 00:02:28 +08:00
Lucas Saavedra Vaz
9cdbec3769
arch/xtensa/esp32: Modify REG_[GET/SET]_FIELD to use [get/set]reg32
2022-12-06 10:53:06 +08:00
Xiang Xiao
c6e9edcbb6
net: Rename arp_arpin to arp_input
...
align with other similar function(e.g. ipv4_input and ipv6_input)
Signed-off-by: Xiang Xiao <xiaoxiang@xiaomi.com>
2022-12-04 20:39:21 +08:00
Xiang Xiao
6d30726a1b
Remove the unnecessary "return;" at the end of function
...
Signed-off-by: Xiang Xiao <xiaoxiang@xiaomi.com>
2022-11-27 22:23:50 +01:00
chao an
6fa60627eb
net/devif/ip: build l2 header on the IP layer
...
Signed-off-by: chao an <anchao@xiaomi.com>
2022-11-27 12:13:45 +08:00
chao an
8850dee746
net/devif: move preprocess of txpoll into common code
...
Signed-off-by: chao an <anchao@xiaomi.com>
2022-11-27 12:11:12 +08:00
Tiago Medicci Serrano
d3ffeb40a7
libc/machine/xtensa: make longjmp safe against context switch
...
In order to turn longjmp context-switch safe, it's necessary
to disable interrupts before modifying windowbase and windowstart.
Otherwise, after a context switch, windowstart and windowbase
would be different, leading to a wrongly set windowstart bit due to
longjmp writing it based on the windowbase before the context switch.
This corrupts the registers at the next window overflow reaching
that wrongly set bit.
*Background:*
This PR is related to an issue first observed on ESP-IDF
https://github.com/espressif/esp-idf/issues/5229 and it was, then,
checked on NuttX using a test application.
*The test application:*
To check if the problem affects ESP32, ESP32-S2 and ESP32-S3 on
NuttX, it was created an application based on:
https://en.cppreference.com/w/c/program/longjmp
The application creates 16 tasks (`#define NUMBER_OF_TASKS 16`)
that implements the following daemon:
```
static int setjmp_longjmp_daemon(int argc, char *argv[])
{
for (int i = 0; i < NUMBER_OF_TASKS * 2; i++)
{
jmp_buf env;
volatile int count = 0;
if (setjmp(env) != UINT16_MAX)
{
foo(&env, ++count);
}
}
sem_post(&g_sem);
return EXIT_SUCCESS;
}
```
The main function also initializes a semaphore to avoid application
exiting before tasks return successfully:
```
sem_init(&g_sem, 0, -NUMBER_OF_TASKS);
```
Finally, the round-robin interval was lowered to 1ms to raise the
chances of the longjmp being interrupted by a context switch
(`CONFIG_RR_INTERVAL=1).
This setup was able to reproduce the problem prior to this patch
being applied.
2022-11-22 19:34:44 +01:00
zhangyuan21
d8051ba979
nuttx/sched: merge up_block_task and up_unblock_task
2022-11-22 22:59:08 +08:00
zhangyuan21
a8fa51e6bf
arch: rename arch special function name
2022-11-22 16:27:56 +08:00
zhangyuan21
5c1b518314
nuttx/sched: move reprioritize process to public function
2022-11-22 15:29:00 +09:00
zhangyuan21
08f7152d9f
nuttx/sched: remove nxsched_remove_readytorun from up_block_task
...
It takes about 10 cycles to obtain the task list according to the task
status. In most cases, we know the task status, so we can directly
add the task from the specified task list to reduce time consuming.
2022-11-22 15:29:00 +09:00
zhangyuan21
e54b602208
nuttx/sched: remove nxsched_remove_blocked from up_unblock_task
...
It takes about 10 cycles to obtain the task list according to the task
status. In most cases, we know the task status, so we can directly
delete the task from the specified task list to reduce time consuming.
2022-11-22 15:29:00 +09:00
Tiago Medicci Serrano
d492a5b092
esp32s2/i2s: implement I2S receiver module
...
- Add ioctl method to enable allocating the apb buffer.
- Add RX methods to set data width, sample rate, channels and
for receiving data from the I2S peripheral.
- Update the i2schar defconfig to enable the I2S receiver.
- Add nxlooper defconfig to enable testing the RX interface.
- Add specific bindings on ESP32-S2 bringup to enable nxlooper
to work without the need of any specific codec.
2022-11-21 23:46:47 +08:00
Tiago Medicci Serrano
aa208bd52c
esp32/i2s: remove "esp32_" prefix from private functions
2022-11-15 17:01:47 -03:00
Tiago Medicci Serrano
3b5ab27893
esp32/i2s: implement I2S receiver module
...
- Add ioctl method to enable allocating the apb buffer.
- Add RX methods to set data width, sample rate, channels and
for receiving data from the I2S peripheral.
- Update the i2schar defconfig to enable the I2S receiver.
- Add nxlooper defconfig to enable testing the RX interface.
- Add specific bindings on ESP32 bringup to enable nxlooper
to work without the need of any specific codec.
2022-11-15 17:01:47 -03:00
Tiago Medicci Serrano
7ae4152f47
esp32[-s2]/i2s: fix gpio setting when slave mode is selected
2022-11-15 17:01:47 -03:00
Xiang Xiao
a8a25cb09f
arch: Remove xxx_sem[take|give] and call nxmuex_[lock|unlock] directly
...
Signed-off-by: Xiang Xiao <xiaoxiang@xiaomi.com>
2022-11-14 09:34:04 +09:00
anjiahao
a4563b8744
Fix the coding style and typo issue
...
Signed-off-by: anjiahao <anjiahao@xiaomi.com>
Signed-off-by: Xiang Xiao <xiaoxiang@xiaomi.com>
2022-11-14 09:34:04 +09:00
anjiahao
d07792a343
Initialize global mutext/sem by NXMUTEX_INITIALIZER and SEM_INITIALIZER
...
Signed-off-by: anjiahao <anjiahao@xiaomi.com>
Signed-off-by: Xiang Xiao <xiaoxiang@xiaomi.com>
2022-11-14 09:34:04 +09:00
Lucas Saavedra Vaz
3f3b5ab75e
arch/xtensa: Add missing SENS registers to ESP32
2022-11-12 02:58:33 +08:00
Tiago Medicci Serrano
6317f6d597
esp32s2/i2s: use internal buffer to handle multiple audio formats
2022-11-07 13:46:44 +08:00
Tiago Medicci Serrano
d98df37f35
xtensa/esp32s2: add i2s_mclkfrequency to set master clock on I2S
2022-11-07 13:46:44 +08:00
Tiago Medicci Serrano
20d8a55181
esp32/i2s: replace nxsem when used as a lock to nxmutex
2022-11-05 00:37:00 +08:00
Tiago Medicci Serrano
9ecc345c02
esp32/i2s: use internal buffer to handle multiple audio formats
2022-11-05 00:37:00 +08:00
yinshengkai
85f727f232
tools: replace INCDIR to Makefile variable
...
In the past, header file paths were generated by the incdir command
Now they are generated by concatenating environment variables
In this way, when executing makefile, no shell command will be executed,
it will improve the speed of executing makfile
Signed-off-by: yinshengkai <yinshengkai@xiaomi.com>
2022-11-03 19:59:55 +08:00
Gustavo Henrique Nihei
f5c77933cb
arch: Fix linking of multiple preprocessed linker script files
...
Only the last item from the ARCHSCRIPT list was being suffixed with
".tmp".
Signed-off-by: Gustavo Henrique Nihei <gustavo.nihei@espressif.com>
2022-11-02 09:15:27 +08:00
Xiang Xiao
b607f80cf3
arch: Remove the unnecessary nosanitize_address from backtrace source code
...
Signed-off-by: Xiang Xiao <xiaoxiang@xiaomi.com>
2022-10-29 08:26:04 +02:00
Gustavo Henrique Nihei
2a20db7697
xtensa: Define COMMON_CTX_REGS for chips without FPU (e.g. ESP32-S2)
...
Signed-off-by: Gustavo Henrique Nihei <gustavo.nihei@espressif.com>
2022-10-27 23:28:47 +08:00
Gustavo Henrique Nihei
facdd4f2b9
esp32[-s2/-s3/-c3]: Re-sort SPI Flash configs
...
- Reduce "SPI Flash configuration" menu dependency on SPI Flash driver
just to MTD-related configs.
- Move SPI Flash Mode and Frequency configs to SPI Flash configuration
menu.
Signed-off-by: Gustavo Henrique Nihei <gustavo.nihei@espressif.com>
2022-10-27 10:07:40 +08:00
Tiago Medicci Serrano
0bf7afad25
xtensa/esp32: add i2s_mclkfrequency to set master clock on I2S
2022-10-27 00:09:01 +08:00
Tiago Medicci Serrano
16b99ee013
xtensa/esp32s2: add initial support for I2S
...
Add initial support for the I2S peripheral on ESP32S2.
Add I2S character driver and generic I2S audio driver.
Include i2schar defconfig for ESP32-S2-Saola-1 board.
2022-10-22 15:18:35 +08:00
anjiahao
e1ca516488
use SEM_INITIALIZER inside of NXSEM_INITIALIZER
...
Signed-off-by: anjiahao <anjiahao@xiaomi.com>
2022-10-22 14:50:48 +08:00
anjiahao
5724c6b2e4
sem:remove sem default protocl
...
Signed-off-by: anjiahao <anjiahao@xiaomi.com>
2022-10-22 14:50:48 +08:00
Gustavo Henrique Nihei
ae8ea29379
xtensa: Save SCOMPARE1 on context switches
...
Signed-off-by: Gustavo Henrique Nihei <gustavo.nihei@espressif.com>
2022-10-21 11:10:51 +08:00
Alan Carvalho de Assis
0e4c2fed93
esp32s2: Add DMA support to SPI
2022-10-20 10:11:26 +08:00
Alan Carvalho de Assis
a0a7375911
Fix esp32s2_spi.h offset
2022-10-20 10:11:26 +08:00
Lucas Saavedra Vaz
b0f96fc204
esp32/i2c: Add macros to conform with other peripherals and fix typos
...
Fix coding style
Co-authored-by: Petro Karashchenko <petro.karashchenko@gmail.com>
2022-10-19 20:31:29 -03:00
Lucas Saavedra Vaz
cc04e2137a
esp32/i2s: Reduce MCLK multiple to support existing boards
2022-10-20 00:40:24 +08:00
Xiang Xiao
6b31918b42
Remove the unnecessary cast for main_t, NULL and argv
...
Signed-off-by: Xiang Xiao <xiaoxiang@xiaomi.com>
2022-10-18 08:51:45 +02:00
Alan Carvalho de Assis
0e091b2486
esp32_qencoder: Fix small issues and typos reported by Tiago Medicci
2022-10-18 03:03:28 +08:00
anjiahao
dee38ce3e8
arch: Replace critical section with nxmutex in i2c/spi/1wire initialization
...
Signed-off-by: anjiahao <anjiahao@xiaomi.com>
Signed-off-by: Xiang Xiao <xiaoxiang@xiaomi.com>
2022-10-17 15:59:46 +09:00
anjiahao
d1d46335df
Replace nxsem API when used as a lock with nxmutex API
...
Signed-off-by: anjiahao <anjiahao@xiaomi.com>
Signed-off-by: Xiang Xiao <xiaoxiang@xiaomi.com>
2022-10-17 15:59:46 +09:00
Alan Carvalho de Assis
655faa33d4
ESP32: Add support to Quadrature Encoder
...
Reviewed-by: Petro Karashchenko <petro.karashchenko@gmail.com>
2022-10-17 00:30:53 +02:00
Alan Carvalho de Assis
c297ecaa5d
esp32s2: Add missing ESP32S2 SPIRAM config
2022-10-13 01:41:47 +08:00
Gustavo Henrique Nihei
73678c4839
xtensa/esp32: Allow allocation of user data in SPI RAM
...
Signed-off-by: Gustavo Henrique Nihei <gustavo.nihei@espressif.com>
2022-10-04 21:32:42 +02:00
Tiago Medicci Serrano
18c715ba92
xtensa/esp32: add initial support for I2S
...
Add initial support for the I2S peripheral on ESP32.
Add I2S character driver and generic I2S audio driver.
Include i2schar defconfig for ESP32-DevKitC board.
2022-09-30 17:23:17 -03:00
Xiang Xiao
e38248ee08
Return -EINVAL for the internal API
...
Signed-off-by: Xiang Xiao <xiaoxiang@xiaomi.com>
2022-09-30 17:54:56 +02:00
Xiang Xiao
bdeaea3742
Remove the unnessary empty line after label
...
Signed-off-by: Xiang Xiao <xiaoxiang@xiaomi.com>
2022-09-30 17:54:56 +02:00
chao an
6bc4baa4ca
arch/makefile: preprocess link script to make configure more flexibly
...
Signed-off-by: chao an <anchao@xiaomi.com>
2022-09-29 17:06:47 +08:00
yinshengkai
5c9b094d65
tools: Replace mkallsyms.sh with mkallsyms.py
...
Signed-off-by: yinshengkai <yinshengkai@xiaomi.com>
2022-09-29 08:33:04 +08:00
Xiang Xiao
40ef5bc6db
libc: Move queue.h from include to include/nuttx
...
to avoid the conflict with libuv's queue.h
Signed-off-by: Xiang Xiao <xiaoxiang@xiaomi.com>
2022-09-26 08:04:58 +02:00
Xiang Xiao
70290b6e38
arch: Change the linker generated symbols from uint32_t to uint8_t *
...
and remove the duplicated declaration
Signed-off-by: Xiang Xiao <xiaoxiang@xiaomi.com>
2022-09-24 21:26:56 +02:00
Xiang Xiao
3c1c29f2c4
arch: move non arm g_current_regs defintion to common place
...
to avoid the code duplicaiton
Signed-off-by: Xiang Xiao <xiaoxiang@xiaomi.com>
2022-09-21 22:23:11 +02:00
chao an
f23a736c80
nxstyle: correct the file path
...
Signed-off-by: chao an <anchao@xiaomi.com>
2022-09-18 01:35:21 +08:00
ligd
e2df52390a
SMP: fix crash when switch to new task which is still running
...
Situation:
Assume we have 2 cpus, and busy run task0.
CPU0 CPU1
task0 -> task1 task2 -> task0
1. remove task0 form runninglist
2. take task1 as new tcb
3. add task0 to blocklist
4. clear spinlock
4.1 remove task2 form runninglist
4.2 take task0 as new tcb
4.3 add task2 to blocklist
4.4 use svc ISR swith to task0
4.5 crash
5. use svc ISR swith to task1
Fix:
Move clear spinlock to the end of svc ISR
Signed-off-by: ligd <liguiding1@xiaomi.com>
2022-09-17 17:37:47 +09:00
Xiang Xiao
a7b3217c37
boards/arch: Remove FAR from 32bit/64bit arch
...
Signed-off-by: Xiang Xiao <xiaoxiang@xiaomi.com>
2022-09-16 10:22:12 +02:00
ligd
a3f9bd3786
backtrace: fix busy loop backtrace
...
Situation:
1. user call assert
2. crash in assert
3. crash happend, do backtrace
4. backtrace interrupt stack successful
5. busy loop backtrace user stack with CURRENT_REGS
Fix:
use rtcb->regs instead
Signed-off-by: ligd <liguiding1@xiaomi.com>
2022-09-10 12:48:11 +08:00
Victor Benso
2892f18f15
Fix some register's values, enable TWAI extended registers and add a missing prototype.
...
Also, replaced critical_sections with spinlocks.
2022-09-09 15:30:35 +08:00
Xiang Xiao
e17b678a16
compiler.h: Rename inline_function to always_inline_function
...
reserve inline_function macro for inline keyword
Signed-off-by: Xiang Xiao <xiaoxiang@xiaomi.com>
2022-09-07 10:24:04 +02:00
Gustavo Henrique Nihei
a5b006a891
xtensa: Avoid including handlers when no coprocessor is available
...
Signed-off-by: Gustavo Henrique Nihei <gustavo.nihei@espressif.com>
2022-09-02 23:43:16 +08:00