tech-kern archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
Re: rfc: a driver to access MSRs on i386
On Sun, Jan 24, 2010 at 06:32:32PM +0100, Marc Balmer wrote:
> While porting the xf86-video-geode X.Org driver to NetBSD I also needed
> to implement the amdmsr(4) driver I wrote for OpenBSD. The issue here
> is, that xf86-video-geode needs access to several MSRs of the AMD Geode
> LX CPU to program the graphics processor. amdmsr(4) is a driver that
> allows you todo just this. It is bound to this specific type of CPU,
> whence the strange name.
>
> One problem of the driver is, that once it has matched, it allows access
> to all MSRs, which can be a security risk (but then, it only attaches on
> a AMD Geode LX CPU that has the graphics processor).
>
> I want to extend this on NetNSD, making this a more general and thus
> more useable driver. This is what I have in mind:
>
> - Rename the driver to msr(4)
> - Attach always
> - Disable access to MSRs by default
> - Integrate with kauth(9) much in the way gpio(4) does:
> * Access to MSRs must be defined (MSR address or range, read or write
> access) at a "low securelevel" (of course, we don't have a securelevel,
> but the kauht(9) equivalent thereof). Once the "securelevel" has been
> raised, only the defined MSRs can be accessed.
> * It is also possible to enable access to all MSRs (wildcard), useful
> for e.g. eval boards or general tinkering with the system.
> - Access to MSRs is via a set of ioctls()
> - A command msrctl(8) in /sbin allows the configuration of msr(4) at the
> "low securelevel" and also to access the (configured) MSRs
>
> Comments and ideas welcome.
I would strongly prefer a way to accomplish what you want that does not
provide general purpose access to MSRs unless a big debug switch is turned
on.
What is wrong with seek+read/write?
Home |
Main Index |
Thread Index |
Old Index