From patchwork Fri Sep 5 13:18:07 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Simon Glass X-Patchwork-Id: 21 Return-Path: X-Original-To: u-boot-concept@u-boot.org Delivered-To: u-boot-concept@u-boot.org DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=u-boot.org; s=default; t=1757078310; bh=yGZHvLayOP77ZrnugZVWbo+lFyWdeK5JZmfKklonUb4=; h=From:To:Date:CC:Subject:List-Id:List-Archive:List-Help:List-Owner: List-Post:List-Subscribe:List-Unsubscribe:From; b=i4ku4Iu5B0qNDmF0cs2uE9BrPvrj53o8bwqs49rMtqcSpJf0F5h82D8+mM48MMTZe OGYGiQjLXk6ACfqv0LBe+BfcU56UkA/vYMvlJ5dlikC16eOHkobLc/k4ETPCrYkZ7z QF3TRtzWDoJp584l6JgIzxO4CMHA3UL1PNNuFAE2v0YA3222oBt0UpoHb95U31pFr0 wKvdNRxJwu9iHyGWMqdx1FVLCLirg6v3zbwa8r4d17HdZ/oI8+/STUSNCQ8pUABZJm 4RTjZW6ClAVGneUQeQ1Ba8QhipOKRAqpfFxBsz4Ak9ng0p6DAO3hGzDmtp67mT6UT1 EduswwM+lAvCg== Received: from localhost (localhost [127.0.0.1]) by mail.u-boot.org (Postfix) with ESMTP id E2F246799B for ; Fri, 5 Sep 2025 07:18:30 -0600 (MDT) X-Virus-Scanned: Debian amavis at Received: from mail.u-boot.org ([127.0.0.1]) by localhost (mail.u-boot.org [127.0.0.1]) (amavis, port 10024) with ESMTP id OKvvHjaosA-2 for ; Fri, 5 Sep 2025 07:18:30 -0600 (MDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=u-boot.org; s=default; t=1757078310; bh=yGZHvLayOP77ZrnugZVWbo+lFyWdeK5JZmfKklonUb4=; h=From:To:Date:CC:Subject:List-Id:List-Archive:List-Help:List-Owner: List-Post:List-Subscribe:List-Unsubscribe:From; b=i4ku4Iu5B0qNDmF0cs2uE9BrPvrj53o8bwqs49rMtqcSpJf0F5h82D8+mM48MMTZe OGYGiQjLXk6ACfqv0LBe+BfcU56UkA/vYMvlJ5dlikC16eOHkobLc/k4ETPCrYkZ7z QF3TRtzWDoJp584l6JgIzxO4CMHA3UL1PNNuFAE2v0YA3222oBt0UpoHb95U31pFr0 wKvdNRxJwu9iHyGWMqdx1FVLCLirg6v3zbwa8r4d17HdZ/oI8+/STUSNCQ8pUABZJm 4RTjZW6ClAVGneUQeQ1Ba8QhipOKRAqpfFxBsz4Ak9ng0p6DAO3hGzDmtp67mT6UT1 EduswwM+lAvCg== Received: from mail.u-boot.org (localhost [127.0.0.1]) by mail.u-boot.org (Postfix) with ESMTP id CDF5C67989 for ; Fri, 5 Sep 2025 07:18:30 -0600 (MDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=u-boot.org; s=default; t=1757078307; bh=h6HIeJjvoTEukPK0eNBoxwYve61MDLD9blzece655VU=; h=From:To:Cc:Subject:Date:From; b=pzmHntRbyA6HAG1E/5OI1s+Eml/TWPMH/Ek6EB2S7SsSvtw+zX6Srxk4XMoMrHuxI +s2NdkbwKMMXz1PV0s+7SVwE4lngXrnNnLd6dHlrB+YOJn0vjqzUrE8+3qRNLhniNz w/9tUz74FhFiaR+ieTZ2mLIonLaLN7btEzLChQC9sEFKWydaUcd0VEhexb9FchxNkf fn2NG7mMp9A3jiugHDddhM2OkXvtbz1BoRByNDUAa+sum9DX6T/3JzNRO7T/hl7aP6 zAQ+B0FWZP4m8btOLH9S8AHjksDeUq9ePORrkONTToM6u0dH/Vlv45HuYgAtF8Bf6K 2dxWh8uwee2XQ== Received: from localhost (localhost [127.0.0.1]) by mail.u-boot.org (Postfix) with ESMTP id D150E5FE1B; Fri, 5 Sep 2025 07:18:27 -0600 (MDT) X-Virus-Scanned: Debian amavis at Received: from mail.u-boot.org ([127.0.0.1]) by localhost (mail.u-boot.org [127.0.0.1]) (amavis, port 10026) with ESMTP id Jay8Jf-dIuSd; Fri, 5 Sep 2025 07:18:27 -0600 (MDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=u-boot.org; s=default; t=1757078303; bh=9baAZ1y6vEsAHtVyO10Z/xKAYQ97UQMr+EsFV0zXQ48=; h=From:To:Cc:Subject:Date:From; b=GZV41ybwZBrnP9W6iDiZE37rwOHMuo8pZliL7FkRYvKxUHtpl4PNOoMEGQY/2zbtq 4qiG58shNcTj9+UaHGtQ1CgazX1mPAgL8QFLO0v0V9DAGrf/Oet2gTw1tC7ESAsxTA F6lMT+1K+41EX6Lwnh12mF1SOw14LGyrJ09hxBKzY9RTc1qGh4OplyMOtE5G0dT+vo fKADuQZP3U/dqAyFUiB8QcrptEJ5+/Dy37hnanERU1lRLKmTI/uhIimgsnIWigOfyo M82VgYoaplx6dpmV6xTTqxMajPkerFA27u1UxyNdjOY6ulkTFz958JI48I43GvBNrd NImKLrrUMYa4A== Received: from u-boot.org (unknown [73.34.74.121]) by mail.u-boot.org (Postfix) with ESMTPSA id 48A76678AA; Fri, 5 Sep 2025 07:18:23 -0600 (MDT) From: Simon Glass To: U-Boot Concept Date: Fri, 5 Sep 2025 07:18:07 -0600 Message-ID: <20250905131816.3344908-1-sjg@u-boot.org> X-Mailer: git-send-email 2.43.0 MIME-Version: 1.0 Message-ID-Hash: XFELFTQG4HNXQKYWMRAVMLCEABLVHZLN X-Message-ID-Hash: XFELFTQG4HNXQKYWMRAVMLCEABLVHZLN X-MailFrom: sjg@u-boot.org X-Mailman-Rule-Misses: dmarc-mitigation; no-senders; approved; loop; banned-address; emergency; member-moderation; nonmember-moderation; administrivia; implicit-dest; max-recipients; max-size; news-moderation; no-subject; digests; suspicious-header CC: Heinrich Schuchardt , Simon Glass X-Mailman-Version: 3.3.10 Precedence: list Subject: [Concept] [PATCH 0/5] api: Deprecate the API List-Id: Discussion and patches related to U-Boot Concept Archived-At: List-Archive: List-Help: List-Owner: List-Post: List-Subscribe: List-Unsubscribe: From: Simon Glass The existing U-Boot API is quite old and doesn't support driver model. Adding new functions is a manual process and no one has attempted this in the 10 years that driver model has been present. Undertaking such a task would be laborious and would require continued effort to maintain. A better approach would be to create a library containing all of U-Boot, then have the API be generated by a script from a list of functions. This would allow for a more flexible and maintainable interface. In preparation for this new direction, this series renames the existing API components to clearly mark them as legacy: - Rename api/ to legacy_api/ - Rename examples/api/ to examples/legacy_api/ - Rename include/api.h and include/api_public.h to include/legacy_api*.h - Rename API_BUILD to LEGACY_API_BUILD - Rename CONFIG_API to CONFIG_LEGACY_API - Rename api_init() to legacy_api_init() This provides a clean namespace for implementing the new library-based API approach while maintaining backward compatibility for existing users of the legacy interface. This series also sets a deadline for removal of the legacy API. Simon Glass (5): api: Rename legacy API files and examples api: Rename the api/ directory Kconfig: Rename API to LEGACY_API api: Rename api_init() to legacy_api_init() doc: api: Add a migration deadline Kconfig | 2 +- Makefile | 2 +- common/board_r.c | 6 ++--- doc/develop/driver-model/migration.rst | 12 ++++++++++ examples/Makefile | 2 +- examples/{api => legacy_api}/.gitignore | 0 examples/{api => legacy_api}/Makefile | 8 +++---- examples/{api => legacy_api}/crt0.S | 0 examples/{api => legacy_api}/demo.c | 2 +- examples/{api => legacy_api}/glue.c | 2 +- examples/{api => legacy_api}/glue.h | 0 examples/{api => legacy_api}/libgenwrap.c | 2 +- include/{api.h => legacy_api.h} | 10 +++++---- include/{api_public.h => legacy_api_public.h} | 6 ++--- include/net-common.h | 2 +- include/net-legacy.h | 2 +- {api => legacy_api}/Kconfig | 22 +++++++++++-------- {api => legacy_api}/Makefile | 0 {api => legacy_api}/README | 2 +- {api => legacy_api}/api.c | 4 ++-- {api => legacy_api}/api_display.c | 2 +- {api => legacy_api}/api_net.c | 2 +- {api => legacy_api}/api_platform-arm.c | 2 +- {api => legacy_api}/api_platform-mips.c | 2 +- {api => legacy_api}/api_platform-powerpc.c | 2 +- {api => legacy_api}/api_private.h | 2 +- {api => legacy_api}/api_storage.c | 2 +- lib/Makefile | 2 +- lib/vsprintf.c | 6 ++--- net/lwip/net-lwip.c | 4 ++-- net/net.c | 4 ++-- test/common/print.c | 2 +- test/lib/unicode.c | 2 +- 33 files changed, 69 insertions(+), 51 deletions(-) rename examples/{api => legacy_api}/.gitignore (100%) rename examples/{api => legacy_api}/Makefile (87%) rename examples/{api => legacy_api}/crt0.S (100%) rename examples/{api => legacy_api}/demo.c (99%) rename examples/{api => legacy_api}/glue.c (99%) rename examples/{api => legacy_api}/glue.h (100%) rename examples/{api => legacy_api}/libgenwrap.c (96%) rename include/{api.h => legacy_api.h} (63%) rename include/{api_public.h => legacy_api_public.h} (96%) rename {api => legacy_api}/Kconfig (62%) rename {api => legacy_api}/Makefile (100%) rename {api => legacy_api}/README (98%) rename {api => legacy_api}/api.c (99%) rename {api => legacy_api}/api_display.c (94%) rename {api => legacy_api}/api_net.c (98%) rename {api => legacy_api}/api_platform-arm.c (96%) rename {api => legacy_api}/api_platform-mips.c (95%) rename {api => legacy_api}/api_platform-powerpc.c (97%) rename {api => legacy_api}/api_private.h (97%) rename {api => legacy_api}/api_storage.c (99%)