[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <Zr329S8995L0OsCu@freedom.csh.rit.edu>
Date: Thu, 15 Aug 2024 08:39:17 -0400
From: Mary Strodl <mstrodl@...edom.csh.rit.edu>
To: Thomas Gleixner <tglx@...utronix.de>
Cc: Mary Strodl <mstrodl@....rit.edu>, linux-kernel@...r.kernel.org,
akpm@...ux-foundation.org, urezki@...il.com, hch@...radead.org,
linux-mm@...ck.org, lee@...nel.org, andi.shyti@...nel.org,
linux-i2c@...r.kernel.org, s.hauer@...gutronix.de,
christian.gmeiner@...il.com
Subject: Re: [PATCH v4 1/2] x86: Add basic support for the Congatec CGEB BIOS
interface
On Thu, Aug 15, 2024 at 02:17:12PM +0200, Thomas Gleixner wrote:
> So this caught the attention of my mail filter because the subsystem
> prefix is 'x86:' while it obviously should be 'mfd:'
Sorry! Originally there was some debate as to where it belonged and the
commit message was never updated.
> This Signed-off-by chain is invalid. See Documentation/process/
My bad. I was following the example set by last time this was brought
up for review by Christian. Would you like only my Signed-off-by? Or
something else?
> Aisde of that. How is any of this supposed to work. What is the user
> mode helper doing and why does this need this netlink indirection?
The first time I posted the series I was asked to move the BIOS stuff
into userspace. Personally, I'm not convined that makes it any less
terrible, but I obliged.
> Seriously? RWX mappings?
Yeah. In my testing, it wouldn't work without writable mappings.
> So this copies a code blob out of the BIOS region into user space and
> lets user space use this blob to interact with the BIOS extension,
> right?
Yep.
> So an i2c transfer does a full round trip:
>
> i2c::xfer -> cgeb -> netlink -> user helper -> execute random code ->
> user helper -> netlink -> cgeb -> ...
Looks right. I'm not thrilled about it either, but the vmalloc people
wanted it in userspace. For our usecase, we didn't intend to have
much throughput so it still worked okay for us.
> Has anyone tried to analyze what this BIOS provided code blob is
> actually doing?
I have no idea what the licensing on the BIOS blob is, I didn't want to
run afoul of any copyright stuff by disassembling it to find out what
it does. I suppose I could pull the blob off my hardware and watch what
it does in qemu?
> All it does is to poke at a range of IOPORTS with in*(), out*() and that
> poking mechanism depends on the generation of that CGEB implementation.
>
> Congatec even provides the GPL2 licenced source for this pokery as a
> kernel driver.
The only driver I've found from them is the one that runs blobs in the BIOS.
Where did you find the IOPORT stuff?
> Thanks,
>
> tglx
Thanks for taking time to read through this!
Powered by blists - more mailing lists