Overview
hi3519v101 (V3A, Cortex-A17+A7) is the second OSAL-based platform after CV500. Blobs call osal_* wrappers which are source-compiled with kernel_compat.h shims. Only 3 blobs bypass OSAL for 2 kernel APIs.
PR #55 adds hi3516av200 (same SOC_FAMILY) to the README.
API Profile — Nearly as clean as CV500
Direct kernel calls (bypassing OSAL) — only 3 blobs
| API |
Blobs |
Removed in |
Shim complexity |
register_sysctl_table() |
base, sys (2) |
6.6 |
Moderate |
init_timer_key() |
pciv_fmw (1) |
4.15 |
Moderate — callback signature changed |
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_access_ok() |
access_ok() |
5.0 (signature) |
kernel_compat.h |
osal_rtc_time_to_tm() |
rtc_time_to_tm() |
5.6 |
kernel_compat.h |
osal_rtc_tm_to_time() |
rtc_tm_to_time() |
5.6 |
kernel_compat.h |
Kernel bump feasibility
| Target |
Feasible? |
Shims needed |
| 4.9 LTS |
Yes |
None |
| 4.14 LTS |
Yes |
None |
| 4.19 LTS |
Yes |
init_timer_key (1 blob: pciv_fmw) |
| 5.4 LTS |
Yes |
Same — OSAL handles the rest |
| 5.10 LTS |
Yes |
Same |
| 6.1 LTS |
Yes |
Same |
| 6.6 LTS |
Likely |
Above + register_sysctl_table (2 blobs) |
hi3519v101 has the second-best kernel bump path after CV500.
Comparison with other platforms
| Platform |
OSAL? |
Direct dangerous APIs |
Blobs affected |
Bump ceiling |
| CV500 |
Yes |
0 (strlcpy in 1 blob) |
1 |
Any |
| hi3519v101 |
Yes |
2 (sysctl_table, init_timer) |
3 |
6.6+ |
| AV100 |
No |
4 |
13 |
6.6+ |
| CV200 |
No |
4 |
~10 |
5.x–6.x |
| CV100 |
No |
18 |
30 |
3.9 |
References
Overview
hi3519v101 (V3A, Cortex-A17+A7) is the second OSAL-based platform after CV500. Blobs call
osal_*wrappers which are source-compiled withkernel_compat.hshims. Only 3 blobs bypass OSAL for 2 kernel APIs.PR #55 adds hi3516av200 (same SOC_FAMILY) to the README.
API Profile — Nearly as clean as CV500
Direct kernel calls (bypassing OSAL) — only 3 blobs
register_sysctl_table()init_timer_key()Via OSAL (handled by recompiling OSAL source)
osal_ioremap_nocache()ioremap_nocache()kernel_compat.hosal_create_proc_entry()proc_create()osal_access_ok()access_ok()kernel_compat.hosal_rtc_time_to_tm()rtc_time_to_tm()kernel_compat.hosal_rtc_tm_to_time()rtc_tm_to_time()kernel_compat.hKernel bump feasibility
init_timer_key(1 blob: pciv_fmw)register_sysctl_table(2 blobs)hi3519v101 has the second-best kernel bump path after CV500.
Comparison with other platforms
strlcpyin 1 blob)sysctl_table,init_timer)References