From nobody Mon Jun 12 13:50:18 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 4QftNq2brVz4cGnk; Mon, 12 Jun 2023 13:50:19 +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 4QftNq1n8vz47H9; Mon, 12 Jun 2023 13:50:19 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1686577819; 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=HlGAMYHCm/GC1J6brUGQePJeedQhmyMHAJl46zQgsdk=; b=I7Fhn/R8GRMCMsGG/wtUh6QFjvPVGa3UpG12P2eZ4reTQYT9UgNcN6qAP6MZCwZGd9Ggov bC6Fk3I6j/4FCPxiPT4MqT/oND5cHOSLRmUHH+DXCgR0L4Dg6L8epOb8K34/VoZjm/5bAJ 22CmzMqx+plEuh6SbUknwX1L0qAX5DVu1NOpr1H6u4RqpdXXTQya4j45IPDhjHJASzWl9a 809l+Mv/k+KoUaXV1bZGTgQ1XyC5N0za2xAKX2TGNDGD0AnXCmr72wacXT5aEmGNbfd6S/ PMqCg2am2VmczQPRM/DelQCulbrCtr5ESLFZzvra3M+fLoHmf57Tar1symv5gw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1686577819; 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=HlGAMYHCm/GC1J6brUGQePJeedQhmyMHAJl46zQgsdk=; b=Ujre9VK2BttqN5zsomaUu7CIbjoRnYIraO+lkxIQaveCwxvLVKygKLijsY8hkmdyFryJm/ ejUzMC9nRU9aJ4sgQIt9x6gxuTQW6dstLq46wiy8cn8RYpaVUqO34Q2clWSIWAXr6OX+u5 uUmwny3a/3vnQ3rGRi3Zkqom2UzRO2BOecQl5SiTJmQMXXGwaWtaaAWIw3lfcpCtDlNPMS KHz19R9r1gdKcIk92LoqDHrgDUqaMn4b7c63CAbqxMHFnin21mHkU3NRWDiEG4RmNMS7Jm qjoGgSi6VIPlJ63QU4AA05byNNtUwYX8eVstncqdSL0muzwW/Pnu/Jn689AUtA== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1686577819; a=rsa-sha256; cv=none; b=hg9an84ErWYQhUvJH+5CiGtw0KmD1waCryu09+3xEiW/WuuK9rBL2FHguXBbxMXmqNHV6l exscShXxKejM+0d9Cri4fMDbm/VwvdddbYfqPpc2hlYZ1/esl/kaTvwmqkOFJo9ueSURl4 dvXU3t6YWs2B2dJS6VSbTskqvKoGaF3XKOCY+6nAKXUo8UZv/jgaG1ANXozdPr9UY3RCB1 516gRirHNLqiVMEvv5ZmJdwiFio1fWv2bTIaaKc012gkVad+8t0VCSA/jpUOTConf3qQnE k2b/v8sHRHgCMm8SGOOSN+xgCishzQmzLmNt6mosTQI9icj7Ymhkc9RDu2doYA== 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 4QftNp6vMDzhHx; Mon, 12 Jun 2023 13:50:18 +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 35CDoIaP089303; Mon, 12 Jun 2023 13:50:18 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 35CDoIqF089302; Mon, 12 Jun 2023 13:50:18 GMT (envelope-from git) Date: Mon, 12 Jun 2023 13:50:18 GMT Message-Id: <202306121350.35CDoIqF089302@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: bcb838d17a9b - stable/13 - riscv: Call identify_cpu() earlier for CPU 0 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: bcb838d17a9bfdb156791ce30c64c1b18da188ef Auto-Submitted: auto-generated X-ThisMailContainsUnwantedMimeParts: N The branch stable/13 has been updated by mhorne: URL: https://cgit.FreeBSD.org/src/commit/?id=bcb838d17a9bfdb156791ce30c64c1b18da188ef commit bcb838d17a9bfdb156791ce30c64c1b18da188ef Author: Mitchell Horne AuthorDate: 2023-05-22 23:50:09 +0000 Commit: Mitchell Horne CommitDate: 2023-06-12 13:49:54 +0000 riscv: Call identify_cpu() earlier for CPU 0 It is advantageous to have knowledge of ISA features as early as possible. For example, the presence of newer virtual memory extensions may be useful to pmap_bootstrap(). To achieve this, split out the printf() parts of identify_cpu() into a separate function, printcpuinfo(). This latter function will be called later in boot after the console has been initialized. Reviewed by: markj MFC after: 2 weeks Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.freebsd.org/D39810 (cherry picked from commit b0d45b023e8c9af50312c7b56c4be9c39657afcb) --- sys/riscv/include/cpu.h | 1 + sys/riscv/riscv/identcpu.c | 10 ++++++++-- sys/riscv/riscv/machdep.c | 7 ++++++- sys/riscv/riscv/mp_machdep.c | 1 + 4 files changed, 16 insertions(+), 3 deletions(-) diff --git a/sys/riscv/include/cpu.h b/sys/riscv/include/cpu.h index b33e34d350fb..64e93e984a9b 100644 --- a/sys/riscv/include/cpu.h +++ b/sys/riscv/include/cpu.h @@ -90,6 +90,7 @@ void cpu_halt(void) __dead2; void cpu_reset(void) __dead2; void fork_trampoline(void); void identify_cpu(void); +void printcpuinfo(void); static __inline uint64_t get_cyclecount(void) diff --git a/sys/riscv/riscv/identcpu.c b/sys/riscv/riscv/identcpu.c index 5ffa038513ae..eedddb266fe7 100644 --- a/sys/riscv/riscv/identcpu.c +++ b/sys/riscv/riscv/identcpu.c @@ -367,6 +367,14 @@ identify_cpu_ids(struct cpu_desc *desc) void identify_cpu(void) +{ + struct cpu_desc *desc = &cpu_desc[PCPU_GET(cpuid)]; + + identify_cpu_ids(desc); +} + +void +printcpuinfo(void) { struct cpu_desc *desc; u_int cpu, hart; @@ -375,8 +383,6 @@ identify_cpu(void) hart = PCPU_GET(hart); desc = &cpu_desc[cpu]; - identify_cpu_ids(desc); - /* Print details for boot CPU or if we want verbose output */ if (cpu == 0 || bootverbose) { /* Summary line. */ diff --git a/sys/riscv/riscv/machdep.c b/sys/riscv/riscv/machdep.c index 6a910ad6dc1e..d9883e23ce90 100644 --- a/sys/riscv/riscv/machdep.c +++ b/sys/riscv/riscv/machdep.c @@ -131,7 +131,7 @@ cpu_startup(void *dummy) { sbi_print_version(); - identify_cpu(); + printcpuinfo(); printf("real memory = %ju (%ju MB)\n", ptoa((uintmax_t)realmem), ptoa((uintmax_t)realmem) / (1024 * 1024)); @@ -539,6 +539,11 @@ initriscv(struct riscv_bootparams *rvbp) physmem_hardware_regions(mem_regions, mem_regions_sz); #endif + /* + * Identify CPU/ISA features. + */ + identify_cpu(); + /* Do basic tuning, hz etc */ init_param1(); diff --git a/sys/riscv/riscv/mp_machdep.c b/sys/riscv/riscv/mp_machdep.c index 3fb86c5f4c28..dffadd628c46 100644 --- a/sys/riscv/riscv/mp_machdep.c +++ b/sys/riscv/riscv/mp_machdep.c @@ -256,6 +256,7 @@ init_secondary(uint64_t hart) * runtime chip identification. */ identify_cpu(); + printcpuinfo(); /* Enable software interrupts */ riscv_unmask_ipi();