From nobody Mon Apr 17 17:04:01 2023 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4Q0YL94Tnzz44vqp; Mon, 17 Apr 2023 17:04:01 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4Q0YL941Hrz49j8; Mon, 17 Apr 2023 17:04:01 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1681751041; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=i0NPWRAD9gLMj4LqfxsJ6ePFvTQbFnjRV4g78hRgha8=; b=t/0adWafhAtmoiKxOsFj3acUa6acrTkqynq4Ex9ZvLBc5ZZIjfyd1p12O8oEb4HS4VEs0e 3hxk2o4kYUcCEBNgufgkKOvrcZ22iWafiUwlf9zgCvbkySXIupkzXzjod8gzwk1Nxfucfk /GDfpQAKDzkpcDOZ5RjuiaQJzL4CCefwp1mBJ5jdOY6PcSgEiRyjRugC8/EhnxqTcfFjZ2 ZBPoUl2dtcw/5VgREeMIp+z7ACWT+q5gZbUlYqYiQy1ZHiOwDf55AH2qFML5zesp2SiShb UFrWZ4jgf16N+r1CFSIGc0mg8AgG7cWkqM8yjYcAATLHwUscYixs2cEfTiBhOA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1681751041; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=i0NPWRAD9gLMj4LqfxsJ6ePFvTQbFnjRV4g78hRgha8=; b=EXnN8LKtKCPCPPmBAAyanfnlRdN2u45vU6fYLVhyWglXubmZWnHk4ds3RGHblaSPWE+Lex sE+XauXuSSRcUmRGBs84xxm/LsHrFLKKyYZGAUiawwjsOEWLbPDL+AShgzJZE9+/IGzp3+ T7sGw+waPWhvIPtcfHVJKgnlufSEWBwEtj/XEDwNXBGSuEWsCLo9fYm/QnmNkWbCVne+SP sgrMKN6Adt5hSqthANvtJSDZx+1lpfKg3pQ4OgJeHy3McOleu0UQhSimbhxjvvkW2Xsm/n n77pP/6+YyQV1YkipXzTS3bIJczk8+MYTF1ANOLpeA4ClTB34ugWgaXTyjFmwA== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1681751041; a=rsa-sha256; cv=none; b=seDW6kzW/DBqzLXWWqTFcNDYs7hLtyMOrTdszOr/I/bBTUIoiKgKtYamBSjtV4AzAzGVFY bKLeK0auSXCRns9+ZhXTW2LiYg9H7Bv/fN5emzhIEB4yZPkYxALkFnumyIMve28X34h4lP N1ih3UDQyYAwuKLP6gKwI0T0jNLfg2uw0pytWh6tY19URbcCWVQVZosj5GktBZ8ZtqYdC0 iMXEkXnweX1uQ+dO9gSkiwLKmUYuT7S+UF5HpNtoeKoky+GHi07BpKPMZ+ky1UtTGJ7Pal 1DtVZXrzkCryxWeeuhK4R7ISDnN8BJ/2GqRmLqvHb0OkE4ehmeoVVrqapdcBkQ== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4Q0YL931NlzdLw; Mon, 17 Apr 2023 17:04:01 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 33HH41Re002555; Mon, 17 Apr 2023 17:04:01 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 33HH41AS002554; Mon, 17 Apr 2023 17:04:01 GMT (envelope-from git) Date: Mon, 17 Apr 2023 17:04:01 GMT Message-Id: <202304171704.33HH41AS002554@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Mitchell Horne Subject: git: 53ad4781f550 - stable/13 - ofwbus: remove arm64 ifdefs List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-dev-commits-src-branches@freebsd.org X-BeenThere: dev-commits-src-branches@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: mhorne X-Git-Repository: src X-Git-Refname: refs/heads/stable/13 X-Git-Reftype: branch X-Git-Commit: 53ad4781f5503b55db4c86dca7cade7c9cd9c991 Auto-Submitted: auto-generated X-ThisMailContainsUnwantedMimeParts: N The branch stable/13 has been updated by mhorne: URL: https://cgit.FreeBSD.org/src/commit/?id=53ad4781f5503b55db4c86dca7cade7c9cd9c991 commit 53ad4781f5503b55db4c86dca7cade7c9cd9c991 Author: Mitchell Horne AuthorDate: 2023-02-13 17:43:25 +0000 Commit: Mitchell Horne CommitDate: 2023-04-17 16:54:04 +0000 ofwbus: remove arm64 ifdefs Rather than using the DEVICE_IDENTIFY method, let's have other ofwbus-using platforms add ofwbus0 explicitly in nexus, like arm64. This gives them the same flexibility, e.g. if riscv starts supporting ACPI, and cleans up the #ifdefs. We were doing this already on riscv, but adjust the 'order' parameters. Reviewed by: andrew, jhb MFC after: 2 weeks Differential Revision: https://reviews.freebsd.org/D38492 (cherry picked from commit 53d5e65eead0f713c5e256018d46edbec0a96c11) --- sys/arm/arm/nexus.c | 5 ++++- sys/dev/ofw/ofwbus.c | 25 ++----------------------- sys/powerpc/powerpc/nexus.c | 4 ++++ sys/riscv/riscv/nexus.c | 10 +++++++--- 4 files changed, 17 insertions(+), 27 deletions(-) diff --git a/sys/arm/arm/nexus.c b/sys/arm/arm/nexus.c index 3991ec91ed0d..c6c511b85fe3 100644 --- a/sys/arm/arm/nexus.c +++ b/sys/arm/arm/nexus.c @@ -182,8 +182,11 @@ nexus_attach(device_t dev) if (rman_init(&irq_rman) || rman_manage_region(&irq_rman, 0, ~0)) panic("nexus_attach irq_rman"); + /* First, add ofwbus0. */ + device_add_child(dev, "ofwbus", 0); + /* - * First, deal with the children we know about already + * Next, deal with the children we know about already. */ bus_generic_probe(dev); bus_generic_attach(dev); diff --git a/sys/dev/ofw/ofwbus.c b/sys/dev/ofw/ofwbus.c index 4432f1704392..7660be8cec39 100644 --- a/sys/dev/ofw/ofwbus.c +++ b/sys/dev/ofw/ofwbus.c @@ -62,12 +62,10 @@ __FBSDID("$FreeBSD$"); * The ofwbus (which is a pseudo-bus actually) iterates over the nodes that * hang from the Open Firmware root node and adds them as devices to this bus * (except some special nodes which are excluded) so that drivers can be - * attached to them. + * attached to them. There should be only one ofwbus in the system, added + * directly as a child of nexus0. */ -#ifndef __aarch64__ -static device_identify_t ofwbus_identify; -#endif static device_probe_t ofwbus_probe; static device_attach_t ofwbus_attach; static bus_alloc_resource_t ofwbus_alloc_resource; @@ -75,9 +73,6 @@ static bus_release_resource_t ofwbus_release_resource; static device_method_t ofwbus_methods[] = { /* Device interface */ -#ifndef __aarch64__ - DEVMETHOD(device_identify, ofwbus_identify), -#endif DEVMETHOD(device_probe, ofwbus_probe), DEVMETHOD(device_attach, ofwbus_attach), @@ -96,28 +91,12 @@ EARLY_DRIVER_MODULE(ofwbus, nexus, ofwbus_driver, ofwbus_devclass, 0, 0, BUS_PASS_BUS + BUS_PASS_ORDER_MIDDLE); MODULE_VERSION(ofwbus, 1); -#ifndef __aarch64__ -static void -ofwbus_identify(driver_t *driver, device_t parent) -{ - - /* Check if Open Firmware has been instantiated */ - if (OF_peer(0) == 0) - return; - - if (device_find_child(parent, "ofwbus", -1) == NULL) - BUS_ADD_CHILD(parent, 0, "ofwbus", -1); -} -#endif - static int ofwbus_probe(device_t dev) { -#ifdef __aarch64__ if (OF_peer(0) == 0) return (ENXIO); -#endif device_set_desc(dev, "Open Firmware Device Tree"); return (BUS_PROBE_NOWILDCARD); diff --git a/sys/powerpc/powerpc/nexus.c b/sys/powerpc/powerpc/nexus.c index 6edc7f258d39..78bcf6363d60 100644 --- a/sys/powerpc/powerpc/nexus.c +++ b/sys/powerpc/powerpc/nexus.c @@ -146,6 +146,10 @@ nexus_attach(device_t dev) rman_manage_region(&mem_rman, 0, BUS_SPACE_MAXADDR) != 0) panic("%s: failed to set up rmans.", __func__); + /* Add ofwbus0. */ + device_add_child(dev, "ofwbus", 0); + + /* Now, probe children. */ bus_generic_probe(dev); bus_generic_attach(dev); diff --git a/sys/riscv/riscv/nexus.c b/sys/riscv/riscv/nexus.c index 9cafb90fd34a..0333c851af2c 100644 --- a/sys/riscv/riscv/nexus.c +++ b/sys/riscv/riscv/nexus.c @@ -165,9 +165,13 @@ nexus_attach(device_t dev) if (rman_init(&irq_rman) || rman_manage_region(&irq_rman, 0, ~0)) panic("nexus_attach irq_rman"); - nexus_add_child(dev, 8, "timer", 0); - nexus_add_child(dev, 9, "rcons", 0); - nexus_add_child(dev, 10, "ofwbus", 0); + /* + * Add direct children of nexus. Devices will be probed and attached + * through ofwbus0. + */ + nexus_add_child(dev, 0, "timer", 0); + nexus_add_child(dev, 1, "rcons", 0); + nexus_add_child(dev, 2, "ofwbus", 0); bus_generic_probe(dev); bus_generic_attach(dev);