Skip to content

hi3519v101: kernel version independence analysis #57

@widgetii

Description

@widgetii

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

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions