mirror of
https://github.com/AsahiLinux/u-boot
synced 2024-11-25 06:00:43 +00:00
.. | ||
I2C_Edge_Conditions | ||
README.MBX |
IMPORTANT NOTE - read before defining CFG_USE_OSCCLK in your board config file!!! WARNING: Wrong settings of this parameter have the potential to damage hardware by running the MBX's CPU at frequencies that exceed it's rating and/or overdriving the it's SPLL! Ramblings: 1) Motorola offered 12 different variants of the MBX, 6 823s and 6 860s. 2) Of these 12 variants, only 2 were entry level boards. 3) I believe that the 2 entry level boards were the only ones that used OSCM clocking. I can't be completely certain of this at this point. 4) Motorola never offered an MBX that ran faster than 50Mhz. 5) The 10, non-entry level boards, ran at 40Mhz. 6) The EXTCLK input has a minimum clock of 15Mhz for the 823/860. 7) Motorola no longer sells MBXs. Based on this information, I can surmise that the default power-on reset clocking was one of the following three options. Multiplier SPLL Options ------------------------------------ 513 OSCM is SPLL input 5 OSCM is SPLL input 1 EXTCLK is SPLL input The forth option: 5 EXTCLK is SPLL input is not possible on MBXs. This is because the minimum EXTCLK input frequency is 15Mhz. 5 * 15Mhz = 75 Mhz. There was no variant that ran above 50 Mhz. The board I have borrowed definitely uses a multiplier of 1 for EXTCLK and runs at 40Mhz. I even went so far as to put a scope on it. One of the two default OSCM modes are most likely what was used on the entry level boards to cheapen them by eliminating the external crystal oscillator. To add insult to injury, the stupid 860 PLPRCR register retains it's multiplication factor through hard resets. You can't clear it out because it is battery backed and once it is set wrong, it stays wrong. The only way to reset it, so that it takes on it's default multiplier is to disconnect all power including external, batteries, as well discharging caps on the board. This precludes the fact that your 860 may be quite DEAD by this time! If you don't setup the multiplication factor for boards that use the OSCM input, they won't run correctly, but at least they won't be dead. Addtionally, there is no good way to determine the clock input source from CPU register data. The only way to deal with this is either hard code it, determine the correct value with some rather NASTY timing loops, or try to grok it from external data sources. Motorola firmware opts for the NASTY timing loops, but needs to configure the serial ports to do so. You may have a legitimate need to define CFG_USE_OSCCLK if your MBX8xx board is using the OSCM clocking mode. You better know what you are doing here.