lipengfei28
1eb151bef6
add pci_bus_map_region and pci_map_region macro
...
Signed-off-by: lipengfei28 <lipengfei28@xiaomi.com>
2024-09-26 16:23:18 +08:00
wangyongrong
3b09de844f
pci.h: add pci_map_bar_region support
...
Signed-off-by: wangyongrong <wangyongrong@xiaomi.com>
2024-09-26 16:23:18 +08:00
chao an
a04e44ea75
syslog/channel: move syslog channel map into rodata
...
add SYSLOG_REGISTER to support disable syslog channel register
Signed-off-by: chao an <anchao@lixiang.com>
2024-09-26 16:10:29 +08:00
chao an
9abe737ef3
syslog/channel: add constant attribute if SYSLOG_IOCTL is not enabled
...
move all private channel define from data to rodata
Signed-off-by: chao an <anchao@lixiang.com>
2024-09-26 16:10:29 +08:00
chao an
4195851845
drivers/rpmsg: replace metal_list_for_each to safety version
...
replace metal_list_for_each to safety version to avoid invalid access to deleted node in destory flow
Signed-off-by: chao an <anchao@lixiang.com>
2024-09-26 08:36:14 +08:00
mazhuang
4fa1c460d3
rptun/rptun_ivshmem:add restart cmd to reboot slave
...
Master can send restart command to slave to reboot the slave core
Signed-off-by: mazhuang <mazhuang@xiaomi.com>
Signed-off-by: Yongrong Wang <wangyongrong@xiaomi.com>
2024-09-26 00:04:05 +08:00
xuxingliang
75b87a85dd
rptun: fix memleak on failure
...
Leak backtrace:
1 14 2096 9886 0x4318d768 [0x040320744] <romfs_fileconfigure+184> romfs/fs_romfsutil.c:1039
[0x04031fd3e] <romfs_open+378> romfs/fs_romfs.c:281
[0x04027fa9e] <file_open+446> vfs/fs_open.c:244
[0x0402ab986] <rptun_store_open+26> rptun/rptun.c:955
[0x04034cc88] <remoteproc_load+120> open-amp/lib/remoteproc/remoteproc.c:452
[0x0402ac8ac] <rptun_dev_start+176> rptun/rptun.c:748
[0x0402ad038] <rptun_ioctl+416> rptun/rptun.c:618
Signed-off-by: xuxingliang <xuxingliang@xiaomi.com>
2024-09-26 00:04:05 +08:00
Bowen Wang
dbe43b0ae9
rptun: move rptun cmd definition before the resource table
...
Because locate the command at the end the resource table is unfriendly
when we want to support multi virtio devices instead only one virtio
rpmsg device.
Signed-off-by: Bowen Wang <wangbowen6@xiaomi.com>
2024-09-26 00:04:05 +08:00
Yongrong Wang
10e8b6c9f6
rptun/rpmsg_virtio: remove chip cmd and reuse the common ones
...
Add more common command for rptun and rpmsg_virtio frameworks,
also modify the rptun and rpmsg_virtio driver to use the common
commands.
Signed-off-by: Yongrong Wang <wangyongrong@xiaomi.com>
2024-09-26 00:04:05 +08:00
Yongrong Wang
7c7d08d13a
rptun.c/rpmsg_virtio.c: move panic logic from chip to rptun/rpmsg_virtio
...
Move the panic logic in common places, later we can move more logic to
the framework instead of having the drivers implement it repeatedly.
Signed-off-by: Yongrong Wang <wangyongrong@xiaomi.com>
Signed-off-by: Bowen Wang <wangbowen6@xiaomi.com>
2024-09-26 00:04:05 +08:00
wangyongrong
42ce76c6bf
rptun_ivshmem.c: Replace work queue with wdog
...
wdog has better performance than work queue
Signed-off-by: wangyongrong <wangyongrong@xiaomi.com>
2024-09-26 00:04:05 +08:00
Bowen Wang
b5ebb8c06d
drivers/rptun/rptun.c: move headrx out of CONFIG_RPTUN_PM
...
headrx is very convient to check weather current core miss interrupt
by comparing the headrx with the rx vring avail.idx for slave side or
rx vring used.idx for master side.
So move headrx out of the CONFIG_RPTUN_PM range.
Signed-off-by: Bowen Wang <wangbowen6@xiaomi.com>
2024-09-26 00:04:05 +08:00
Bowen Wang
1a97fa73f0
rptun: rptun pm and rptun dump support cacheable memory
...
Should invalidate the memory when the data is located in shared
memory and write by remote core.
Signed-off-by: Bowen Wang <wangbowen6@xiaomi.com>
2024-09-26 00:04:05 +08:00
Xiang Xiao
3ea02c5992
rptun: Rename rptun_panic_ to rptun_panic
...
The function name rptun_panic_ is not consistent with other functions
Signed-off-by: Xiang Xiao <xiaoxiang@xiaomi.com>
2024-09-26 00:04:05 +08:00
ligd
46713eaf16
rptun: add timeout to wait_tx_buffer callback
...
Signed-off-by: ligd <liguiding1@xiaomi.com>
2024-09-26 00:04:05 +08:00
Bowen Wang
46e5e576e1
rptun/rptun_dump: remove unused rptun_dump.c
...
rptun_dump related code has been moved to rptun.c from rptun_dump.c,
but file rptun_dump.c is not deleted in PR:
https://github.com/apache/nuttx/pull/11712
So delete this file.
Signed-off-by: Bowen Wang <wangbowen6@xiaomi.com>
2024-09-26 00:04:05 +08:00
Bowen Wang
d320dfd20f
rptun: BUG fix, should not destory the semaphore twice
...
This BUG is introduced in PR: https://github.com/apache/nuttx/pull/13172
Signed-off-by: Bowen Wang <wangbowen6@xiaomi.com>
2024-09-26 00:04:05 +08:00
ligd
c76dfde744
rptun: use detail name for pm wakelock
...
So we can distinguish the pm wakelock
Signed-off-by: ligd <liguiding1@xiaomi.com>
2024-09-26 00:04:05 +08:00
Bowen Wang
7243616402
drivers/rptun: flush the image memory when read from the file system
...
Flush the image memory to make sure the remote core access the correct
image.
Signed-off-by: Bowen Wang <wangbowen6@xiaomi.com>
2024-09-26 00:04:05 +08:00
ligd
7f3dce5bbb
rptun: add RPTUN_PM_AUTORELAX method.
...
Signed-off-by: ligd <liguiding1@xiaomi.com>
2024-09-26 00:04:05 +08:00
ligd
f569c065f6
rptun/pm: use pm_wakelock
...
Signed-off-by: ligd <liguiding1@xiaomi.com>
2024-09-26 00:04:05 +08:00
ligd
3468f5cec8
rptun/pm: add check to rptun_pm_callback() incase of start early
...
Signed-off-by: ligd <liguiding1@xiaomi.com>
2024-09-26 00:04:05 +08:00
ligd
0ce6bd546d
rptun: use local rx virtqueue idx to resolve remote low power
...
Store the rx virtqueue idx to the local headrx index, and only
process the data when the rx virtqueue has data to avoid access
the ram in low power mode.
Signed-off-by: ligd <liguiding1@xiaomi.com>
2024-09-26 00:04:05 +08:00
yanghuatao
520bb6544e
nuttx/dirvers: Add secure rptun file
...
rptun secure is a rptun driver used for the rpmsg communication
between (Non-Secure) REE and (Secure) TEE environments.
Signed-off-by: yanghuatao <yanghuatao@xiaomi.com>
Signed-off-by: Bowen Wang <wangbowen6@xiaomi.com>
2024-09-26 00:04:05 +08:00
Jukka Laitinen
5238c3bb25
drivers/mmcsd/mmcsd_sdio.c: Fix setting SDIO_WIDEBUS for SD cards
...
This corrects the setting widebus for SD cards, which was recently broken in 4f7f751d2a .
The if checking the priv->caps, priv->buswidth and IS_MMC has been wrong for
some time. The proper logic is that for MMC only the priv->caps is checked.
For SD card, both priv->caps and priv->buswidth need to be checked.
Signed-off-by: Jukka Laitinen <jukkax@ssrc.tii.ae>
2024-09-25 21:10:26 +08:00
wangjianyu3
73b7128fb6
drivers/rpmsg: Fix a typo error of rpmsg_device_destory()
...
Signed-off-by: wangjianyu3 <wangjianyu3@xiaomi.com>
2024-09-25 01:51:18 +08:00
wangjianyu3
b8029d28a3
drivers/rpmsg: Using safe list iterating in rpmsg_device_created()
...
To fix list access after delete error
Test:
/* Export */
rpmsgdev_export("SERVER", "/dev/DEVNAME");
/* Register */
rpmsgdev_register("CLIENT", "/dev/DEVNAME", "/dev/server-DEVNAME", 0);
Log:
[ap] kasan_report: kasan detected a read access error, address at 0x40b7ae78,size is 8, return address: 0x402a3c50
[ap] kasan_show_memory: Shadow bytes around the buggy address:
[ap] kasan_show_memory: 0x40b7ae20: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
[ap] kasan_show_memory: 0x40b7ae30: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
[ap] kasan_show_memory: 0x40b7ae40: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
[ap] kasan_show_memory: 0x40b7ae50: 20 af b7 40 00 00 00 00 c0 17 2a 40 00 00 00 00
[ap] kasan_show_memory: 0x40b7ae60: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
[ap] kasan_show_memory: 0x40b7ae70: 00 00 00 00 00 00 00 00[b0 f7 b3 40 00 00 00 00]
[ap] kasan_show_memory: 0x40b7ae80: c8 48 b8 40 00 00 00 00 00 00 00 00 00 00 00 00
[ap] kasan_show_memory: 0x40b7ae90: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
[ap] kasan_show_memory: 0x40b7aea0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
[ap] kasan_show_memory: 0x40b7aeb0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
$ addr2line -fe nuttx/nuttx 0x402a3c50
rpmsg_device_created
/workspace/nuttx/drivers/rpmsg/rpmsg.c:395 (discriminator 2)
Reported by rongyichang@xiaomi.com
Signed-off-by: wangjianyu3 <wangjianyu3@xiaomi.com>
2024-09-25 01:51:18 +08:00
dongjiuzhu1
4960f290c8
drivers/i3c: avoid return error when i3c_master_register without i3c/i2c device
...
1. if i3c_mater_register without i3c/i2c device, rstdaa/clearevents/do_daa could be failed
2. board code/driver code need to actively i3c_master_do_daa when device power on.
Signed-off-by: dongjiuzhu1 <dongjiuzhu1@xiaomi.com>
2024-09-24 23:36:50 +08:00
dongjiuzhu1
694750e8af
drivers/i3c: remove extra i3c_dev_register, do_daa has created them
...
Signed-off-by: dongjiuzhu1 <dongjiuzhu1@xiaomi.com>
2024-09-24 23:36:50 +08:00
yangshuyong
cffcccafc2
driver/i3c: Fixed i3c pointer format to check null
...
Signed-off-by: yangshuyong <yangshuyong@xiaomi.com>
2024-09-24 23:36:50 +08:00
yangshuyong
7a48469e70
I3C: fixed the return value error in send ccc cmd api
...
Signed-off-by: yangshuyong <yangshuyong@xiaomi.com>
2024-09-24 23:36:50 +08:00
yangshuyong
9d566d4a9d
I3C: fixed the send ccc cmd check condition error
...
Only affect the send ccc cmd in 3th driver
Signed-off-by: yangshuyong <yangshuyong@xiaomi.com>
2024-09-24 23:36:50 +08:00
yangshuyong
9790c3d316
Added the common interface sending ccc cmd in I3C driver
...
Signed-off-by: yangshuyong <yangshuyong@xiaomi.com>
2024-09-24 23:36:50 +08:00
dongjiuzhu1
5b48dea4f5
drivers/i3c: support i3c driver model
...
Reference to: https://github.com/torvalds/linux/tree/master/drivers/i3c
Signed-off-by: dongjiuzhu1 <dongjiuzhu1@xiaomi.com>
2024-09-24 23:36:50 +08:00
SPRESENSE
1e103bd41f
drivers/modem/alt1250: Fix issue where the program would get stuck
...
Fix issue where the program would get stuck
if an unsupported ALTCOM packet was sent.
2024-09-24 20:00:21 +08:00
chao an
a5251161c6
syslog/channel: rename syslog_channel() to syslog_channel_register()
...
Change syslog API naming more reasonable:
1. rename syslog_channel() to syslog_channel_register()
2. rename syslog_channel_remove() to syslog_channel_unregister()
Signed-off-by: chao an <anchao@lixiang.com>
2024-09-24 19:28:49 +08:00
wangjianyu3
a5b85fcd96
misc/rpmsgdev: Fix invalid pointer error when there are more than one remotes
...
Test: (see tests/testcases/rpmsgdev for details)
# 1. Register dummy device
testdev -d 0 -r "/dev/ttyGNSS0"
# 2. Call rpmsgdev_export() to export the device to remote
testdev -d 2 -c "droid" -l "/dev/ttyGNSS0"
Log:
[ap] arm_busfault: PANIC!!! Bus Fault:
[ap] arm_busfault: IRQ: 5 regs: 0x3c434e44
[ap] arm_busfault: BASEPRI: 00000000 PRIMASK: 00000000 IPSR: 00000005 CONTROL: 00000004
[ap] arm_busfault: CFSR: 00008200 HFSR: 00000000 DFSR: 00000000 BFAR: 00000000 AFSR: 00040000
[ap] arm_busfault: Bus Fault Reason:
[ap] arm_busfault: Precise data bus error
[ap] dump_assert_info: Current Version: NuttX ****** ***** *** 12.3.0 ********** Sep 23 2024 18:35:50 arm
[ap] dump_assert_info: Assertion failed panic: at file: armv8-m/arm_busfault.c:113 task: testdev process: testdev 0x2c86ca75
Backtrace:
backtrace_unwind
/workspace/nuttx/arch/arm/src/common/arm_backtrace_unwind.c:632
sched_backtrace
/workspace/nuttx/sched/sched/sched_backtrace.c:105
sched_dumpstack
/workspace/nuttx/libs/libc/sched/sched_dumpstack.c:69
dump_running_task
/workspace/nuttx/sched/misc/assert.c:629
arm_busfault
/workspace/nuttx/arch/arm/src/armv8-m/arm_busfault.c:113
irq_dispatch
/workspace/nuttx/sched/irq/irq_dispatch.c:142
arm_doirq
/workspace/nuttx/arch/arm/src/armv8-m/arm_doirq.c:95
strcmp
/workspace/nuttx/libs/libc/machine/arm/armv8-m/gnu/arch_strcmp.S:107
rpmsgdev_server_created
/workspace/nuttx/drivers/misc/rpmsgdev_server.c:520 (discriminator 1)
rpmsg_register_callback
/workspace/nuttx/drivers/rpmsg/rpmsg.c:245
rpmsgdev_export
/workspace/nuttx/drivers/misc/rpmsgdev_server.c:552
_register_driver
/workspace/tests/testcases/rpmsgdev/testdev.c:216
nxtask_startup
/workspace/nuttx/libs/libc/sched/task_startup.c:70
nxtask_start
/workspace/nuttx/sched/task/task_start.c:114
Signed-off-by: wangjianyu3 <wangjianyu3@xiaomi.com>
2024-09-23 23:59:12 +02:00
yangshuyong
a537ecdd0f
Support nuttx pci endpoint driver framework
...
Signed-off-by: yangshuyong <yangshuyong@xiaomi.com>
Signed-off-by: lipengfei28 <lipengfei28@xiaomi.com>
2024-09-23 10:03:54 +02:00
lipengfei28
ca39dc2e74
math: Optimize the implementation of log2ceil and log2floor
...
and move common math funtions to math32.h:
div_round_up
div_round_closest
is_power_of_2
roundup_pow_of_two
rounddown_pow_of_two
Signed-off-by: lipengfei28 <lipengfei28@xiaomi.com>
2024-09-23 10:03:54 +02:00
lipengfei28
b18262d78f
bits:rename __set_bit to set_bit __clear_bit to clear_bit
...
This used for add pci ep drver framework
Signed-off-by: lipengfei28 <lipengfei28@xiaomi.com>
2024-09-23 10:03:54 +02:00
chao an
db5320fd9f
drivers/syslog: compile syslog_device.c if console/char/file channel enabled
...
Add conditional compilation to syslog_device.c
Signed-off-by: chao an <anchao@lixiang.com>
2024-09-23 14:36:40 +08:00
chenrun1
4cec713dbf
fs_inode:Change the type of i_crefs to atomic_int
...
Summary:
1.Modified the i_crefs from int16_t to atomic_int
2.Modified the i_crefs add, delete, read, and initialize interfaces to atomic operations
The purpose of this change is to avoid deadlock in cross-core scenarios, where A Core blocks B Core’s request for a write operation to A Core when A Core requests a read operation to B Core.
Signed-off-by: chenrun1 <chenrun1@xiaomi.com>
2024-09-23 14:07:03 +08:00
wangjianyu3
a73ee73c78
Thermal/dummy: Fix depends error
...
1. cpufreq.h not found if cpufreq is not supported on some branches.
./thermal/thermal_dummy.c:25:10: fatal error: nuttx/cpufreq.h: No such file or directory
25 | #include <nuttx/cpufreq.h>
| ^~~~~~~~~~~~~~~~~
compilation terminated.
2. debug.h is included by including <nuttx/cpufreq.h>, should not.
CC: thermal/thermal_dummy.c thermal/thermal_dummy.c: In function ‘thermal_dummy_init’:
thermal/thermal_dummy.c:338:7: warning: implicit declaration of function ‘therr’ [-Wimplicit-function-declaration]
338 | therr("Register cooling device fan0 failed!\n");
|
https://github.com/apache/nuttx/pull/12824
Signed-off-by: wangjianyu3 <wangjianyu3@xiaomi.com>
2024-09-23 08:57:29 +08:00
wangjianyu3
efd7e31b3a
Thermal/procfs: Remove unnecessary nxmutex_unlock
...
https://github.com/apache/nuttx/pull/12824
Signed-off-by: wangjianyu3 <wangjianyu3@xiaomi.com>
2024-09-23 08:57:29 +08:00
wangjianyu3
88cc4b1120
Thermal/procfs: Disabled immediately after enabling.
...
When exec "echo 1 > /proc/thermal/cpu-thermal", procfs get "\n" after "1", treat as disable:
```
#1 0x000000000040f452 in thermal_procfs_write (filep=0x7ffff3d241e8, buffer=0x7ffff3d344fc "\n", buflen=1) at thermal/thermal_procfs.c:179
```
Signed-off-by: wangjianyu3 <wangjianyu3@xiaomi.com>
2024-09-23 08:57:29 +08:00
wangjianyu3
d5ffed635b
Thermal/dummy: Get cpufreq_driver from cpufreq_policy.
...
Signed-off-by: wangjianyu3 <wangjianyu3@xiaomi.com>
2024-09-23 08:57:29 +08:00
wangjianyu3
e8758eb974
Thermal/step_wise: Increase cooling state in case of "stable" trend and "hot" trip.
...
Signed-off-by: wangjianyu3 <wangjianyu3@xiaomi.com>
2024-09-23 08:57:29 +08:00
wangjianyu3
68d5516c90
Thermal/dummy: Fix warning
...
```
CID 1159822: (#1 of 2): 宏将无符号值与 0 做了比较 (NO_EFFECT)
unsigned_compare: 不带符号值的此 greater-than-or-equal-to-zero 比较总是为 true。index >= 0U。
```
Signed-off-by: wangjianyu3 <wangjianyu3@xiaomi.com>
2024-09-23 08:57:29 +08:00
wangjianyu3
515c3978dd
Thermal: Check trip type in thermal_zone_device_register().
...
Signed-off-by: wangjianyu3 <wangjianyu3@xiaomi.com>
2024-09-23 08:57:29 +08:00
wangjianyu3
f96d3798a1
Thermal: remove assert of thermal_zone_device_update()
...
Called by both of lpwork and Idle_Task:
[ 0.000000] [ 0] [ INFO] [ap] thermal_zone_device_register: Registered zone device cpu-thermal
[ 0.000000] [ 0] [ EMERG] [ap] _assert: Current Version: NuttX ap 0.0.0 Dec 11 2023 20:59:20 sim
[ 0.000000] [ 0] [ EMERG] [ap] _assert: Assertion failed : at file: thermal/thermal_core.c:820 task: Idle_Task process: Kernel 0x32ade29
Signed-off-by: wangjianyu3 <wangjianyu3@xiaomi.com>
2024-09-23 08:57:29 +08:00