On 02/10/07 10:20 -0600, Lane Brooks wrote: > Attached is a patch that enables AMD Geode CS5536 chipset support. I > have tested it successfully on a MSM800 board from digital logic. It > does, however, have a few issues that I would like some feedback on. > > In my discussions with Marc Jones, Geode systems write protect the BIOS > via RCONFs (cache settings similar to MTRRs). Unlocking requires > changing MSR 0x1808 top byte to 0x22. Reading and writing to the msr, > however, requires instrucitons rdmsr/wrmsr, which are ring0 privileged > instructions so only the kernel can do the read/write. So my patch uses > the msr kernel module to access these instructions from user space using > the /dev/cpu/0/msr device. > > My questions are: > - I do not think this is portable beyond linux. Is that an issue?
Right now, no. Any other *nixish OS will have to solve the MSR problem for themselves. If they chose something different, then we'll cross that bridge when we get to it. > - My code assumes the msr kernel module is already loaded. Is there a > way to force a kernel module to load from the C code? My code does die > gracefully with a message reminding them to load the kernel module if > things fail. Thats the best we can do, without getting more non-portable. I think. Jordan -- linuxbios mailing list linuxbios@linuxbios.org http://www.linuxbios.org/mailman/listinfo/linuxbios