Hi. > Starting from 2.6.24, mfgpt feature is included and complied into > kernel when you select GEODE_LX processor option. This month, I have > been working on the lastest linux kernel for voyage. However, the > kernel does not boot on ALIX and require some combinations on > tinyBIOS. I finished the test of various tinyBIOS on alix3a with > different kernel and here is my result:
During the past two weeks I had to spend some time with the same issue. Although my environment differs from that of Voyage users I think the results of my tests still apply to them, too. We're using ALIX.2C1 and ALIX.3C1 boards with a non-Voyage distro and Kernel 2.4.x. I have backported the watchdog driver that's also used in Voyage. Usage of the so called workaround code, which resets the MFGPTs via MSR 0x5140002b before initialisation, can be switched with a module parameter. Or in other words, to the best of my knowledge: although the implementation is slightly different, my backport is functionality-wise is similar to the Geode watchdog-driver that is used in Voyage. The results of my tests are: 1. Resetting the MFGPTs is not required at all, at least not for the boards we use. The watchdog works fine even if neither the ALIX-BIOS nor the driver uses the workaround code! 2. BIOS and driver need to use the same "MFGPT reset strategy". The watchdog only works in case the BIOS *and* the watchdog driver *both* either do or don't apply the workaround. If the driver uses the workaround and the BIOS doesn't (or vice versa) the driver will hang during initialisation. I'm now convinced that the MFGPT workaround in TinyBIOS (for ALIX) is not needed. It can easily be shown that TinyBIOS does not reserve a single MFGPT for its own purpose, hence the watchdog driver can easily allocate a MFGPT. From what I know about the history of the feature in TinyBIOS, it was added in order to make the watchdog driver in Voyage work. It seems that this became necessary only because the watchdog driver uses the MFGPT reset by default. The right way to fix that issue would have been to disable the workaround code in the watchdog driver, rather than working around an issue that's introduced by the driver. To say it loud and clear: the workaround should *ONLY* be applied for cases where the BIOS already did reserve *all* MFGPTs for its own purposes. The workaround is ugly: it silently steals resources that the BIOS or other components probably rely on, and it obviously has other negative side effects as well. It should generally be disabled by default (at least when the driver gets added to upstream kernel). As far as Voyage Linux is concerned, a better way to address the issue probably is to add a module option that allows the user to decide at runtime whether the workaround should be used or not. However, even in this case the workaround should be disabled by default. For the sake of completeness, the following is a list of the status of the "workaround code" of the various ALIX BIOS versions that were/are available so far: BIOS version workaround status ==================================================== 0.93 and older not available 0.94 .. 0.98b always enabled 0.98c always off 0.98d .. 0.99 selectable, default: disabled Hope this helps. Bye, Mike _______________________________________________ Voyage-linux mailing list [email protected] http://list.voyage.hk/mailman/listinfo/voyage-linux
