From: "Diederik de Haas" <didi.debian@cknow.org>
To: "Jason A. Donenfeld" <Jason@zx2c4.com>
Cc: "Tom Lendacky" <thomas.lendacky@amd.com>,
"John Allen" <john.allen@amd.com>,
"Herbert Xu" <herbert@gondor.apana.org.au>,
"David S. Miller" <davem@davemloft.net>,
<linux-crypto@vger.kernel.org>, <linux-kernel@vger.kernel.org>,
"Diederik de Haas" <didi.debian@cknow.org>
Subject: Re: [BUG] Non working HWRNG on AMD Ryzen 5 5500GT
Date: Thu, 15 Aug 2024 16:56:27 +0200 [thread overview]
Message-ID: <D3GKMPVC05GY.USJUY99OPVO3@cknow.org> (raw)
In-Reply-To: <Zr4PJYISc_h7cQdW@zx2c4.com>
[-- Attachment #1: Type: text/plain, Size: 2058 bytes --]
On Thu Aug 15, 2024 at 4:22 PM CEST, Jason A. Donenfeld wrote:
> On Thu, Aug 15, 2024 at 03:56:26PM +0200, Diederik de Haas wrote:
> > Found an article [1] which could be relevant and downloaded and ran the
> > accompanying test program (written by Jason Donenfeld):
> > # ./amd-rdrand-bug
> > Your RDRAND() does not have the AMD bug.
> > # ./test-rdrand
> > RDRAND() = 0x47c993c0
> > RDRAND() = 0xec7c697d
> > ... (more seemingly random numbers)
> > RDRAND() = 0xba858101
>
> RDRAND isn't the same as CCP.
Ok. I don't know/understand enough to make that distinction.
> > # dmesg | grep ccp
> > [ 5.399853] ccp 0000:07:00.2: ccp: unable to access the device: you might
> > be running a broken BIOS.
> > [ 5.401031] ccp 0000:07:00.2: tee enabled
> > [ 5.401113] ccp 0000:07:00.2: psp enabled
>
> Looks like the kernel reports CCP as broken. As the above RDRAND test
> doesn't indicate anything about CCP, I don't see rationale for that
> determination to be wrong.
It could indeed be correct and that my BIOS is indeed broken.
> Actual test code is in drivers/crypto/ccp/ccp-dev-v5.c:
>
> /* Find available queues */
> qmr = ioread32(ccp->io_regs + Q_MASK_REG);
> /*
> * Check for a access to the registers. If this read returns
> * 0xffffffff, it's likely that the system is running a broken
> * BIOS which disallows access to the device. Stop here and fail
> * the initialization (but not the load, as the PSP could get
> * properly initialized).
> */
> if (qmr == 0xffffffff) {
> dev_notice(dev, "ccp: unable to access the device: you might be running a broken BIOS.\n");
> return 1;
> }
Yeah, I did find that and that's how I got to the recipient list.
In the linked article the author did receive all 0xffffffff, while I
didn't and that's why I wondered if there *could* be an issue there.
But as I don't understand this enough, I asked the experts.
Cheers,
Diederik
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 228 bytes --]
prev parent reply other threads:[~2024-08-15 14:56 UTC|newest]
Thread overview: 7+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-08-15 13:56 [BUG] Non working HWRNG on AMD Ryzen 5 5500GT Diederik de Haas
2024-08-15 14:16 ` Tom Lendacky
2024-08-15 14:40 ` Diederik de Haas
2024-08-15 14:53 ` Tom Lendacky
2024-08-15 15:22 ` Diederik de Haas
2024-08-15 14:22 ` Jason A. Donenfeld
2024-08-15 14:56 ` Diederik de Haas [this message]
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=D3GKMPVC05GY.USJUY99OPVO3@cknow.org \
--to=didi.debian@cknow.org \
--cc=Jason@zx2c4.com \
--cc=davem@davemloft.net \
--cc=herbert@gondor.apana.org.au \
--cc=john.allen@amd.com \
--cc=linux-crypto@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=thomas.lendacky@amd.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.