Overview
hi3516cv300 (V3, ARM926EJ-S) has full OSAL — blobs call osal_* wrappers exclusively. Zero blobs bypass OSAL for kernel APIs. This is the cleanest legacy platform alongside CV500.
PR #59 fixed the sensor_spi EXPORT_SYMBOL issue. Firmware PR #2014/#2016 wired up modules and bumped opensdk.
API Profile — Cleanest legacy platform
Direct kernel calls bypassing OSAL: NONE
No blob calls any dangerous kernel API directly.
Via OSAL (handled by recompiling OSAL source)
| osal wrapper |
Underlying API |
Removed in |
Handled by |
osal_ioremap_nocache() |
ioremap_nocache() |
5.6 |
kernel_compat.h |
osal_create_proc_entry() |
proc_create() |
3.10 (old API) |
OSAL version check |
osal_gettimeofday() |
do_gettimeofday() |
5.0 |
kernel_compat.h |
osal_access_ok() |
access_ok() |
5.0 (signature) |
kernel_compat.h |
osal_rtc_time_to_tm() |
rtc_time_to_tm() |
5.6 |
kernel_compat.h |
Kernel bump feasibility
| Target |
Feasible? |
Shims needed |
| Any LTS (4.x–6.x+) |
Yes |
None — just recompile OSAL |
CV300 can run on any kernel version that kernel_compat.h supports — same as CV500.
Comparison
| Platform |
OSAL? |
Direct dangerous APIs |
Bump ceiling |
| CV500 |
Yes |
0 (strlcpy in 1 blob) |
Any |
| CV300 |
Yes |
0 |
Any |
| hi3519v101 |
Yes |
2 (3 blobs) |
6.6+ |
| AV100 |
No |
4 (13 blobs) |
6.6+ |
| CV200 |
No |
4 (~10 blobs) |
5.x–6.x |
| CV100 |
No |
18 (30 blobs) |
3.9 |
Hardware verified
- Platform: hi3516cv300 (IMX291 sensor, 128MB RAM)
- Firmware sysupgrade from official OpenIPC releases
- SDK started, 108KB JPEG snapshot captured
References
Overview
hi3516cv300 (V3, ARM926EJ-S) has full OSAL — blobs call
osal_*wrappers exclusively. Zero blobs bypass OSAL for kernel APIs. This is the cleanest legacy platform alongside CV500.PR #59 fixed the sensor_spi EXPORT_SYMBOL issue. Firmware PR #2014/#2016 wired up modules and bumped opensdk.
API Profile — Cleanest legacy platform
Direct kernel calls bypassing OSAL: NONE
No blob calls any dangerous kernel API directly.
Via OSAL (handled by recompiling OSAL source)
osal_ioremap_nocache()ioremap_nocache()kernel_compat.hosal_create_proc_entry()proc_create()osal_gettimeofday()do_gettimeofday()kernel_compat.hosal_access_ok()access_ok()kernel_compat.hosal_rtc_time_to_tm()rtc_time_to_tm()kernel_compat.hKernel bump feasibility
CV300 can run on any kernel version that
kernel_compat.hsupports — same as CV500.Comparison
strlcpyin 1 blob)Hardware verified
References