Skip to content
Snippets Groups Projects
  • oharboe's avatar
    a5354ff5
    David Brownell <david-b@pacbell.net> Clock updates/fixes for the Stellaris flash driver: · a5354ff5
    oharboe authored
     - Bugfixes:
       * internal osc: it's *12* MHz (not 15 MHz) on _current_ chips
          + except new Tempest parts where it's 16 MHz (and calibrated!)
          + or some old Sandstorm ones, where 15 MHz was valid
       * crystal config:
          + read and use the crystal config, don't assume 6 MHz
          + know when that field is 4 bits vs 5
       * an RCC2 register may be overriding the original RCC
          + more clock source options
          + bigger dividers
          + fractional dividers on Tempest (NYET handled)
       * there's a 30 KHz osc on newer chips (for deep sleep)
       * there's a 32768 Hz osc on newer chips (for hibernation)
    
     - Cosmetic
       * say "rev A0" not "vA.0", to match vendor docs
       * don't always report master clock as an "estimate":
          + give the error bound if it's approximate, like "±30%"
          + else don't say anything
       * fix whitespace and caps in some messages
       * these are not AT91SAM chips!!
    
    Those clock issues might explain problems sometimes reported when
    writing to Stellaris flash banks; they affect write timings.
    
    That 12-vs-15 MHz issue is problematic; there's no consolidated doc
    showing which chips (and revs!) have which internal oscillator speed.
    It's clear that only older silicon had the faster-and-less-accurate
    flavor.  What's less clear is which chips are "old" like that.
    
    Lightly tested, on a DustDevil part.
    
    git-svn-id: svn://svn.berlios.de/openocd/trunk@2626 b42882b7-edfa-0310-969c-e2dbd0fdcd60
    a5354ff5
    History
    David Brownell <david-b@pacbell.net> Clock updates/fixes for the Stellaris flash driver:
    oharboe authored
     - Bugfixes:
       * internal osc: it's *12* MHz (not 15 MHz) on _current_ chips
          + except new Tempest parts where it's 16 MHz (and calibrated!)
          + or some old Sandstorm ones, where 15 MHz was valid
       * crystal config:
          + read and use the crystal config, don't assume 6 MHz
          + know when that field is 4 bits vs 5
       * an RCC2 register may be overriding the original RCC
          + more clock source options
          + bigger dividers
          + fractional dividers on Tempest (NYET handled)
       * there's a 30 KHz osc on newer chips (for deep sleep)
       * there's a 32768 Hz osc on newer chips (for hibernation)
    
     - Cosmetic
       * say "rev A0" not "vA.0", to match vendor docs
       * don't always report master clock as an "estimate":
          + give the error bound if it's approximate, like "±30%"
          + else don't say anything
       * fix whitespace and caps in some messages
       * these are not AT91SAM chips!!
    
    Those clock issues might explain problems sometimes reported when
    writing to Stellaris flash banks; they affect write timings.
    
    That 12-vs-15 MHz issue is problematic; there's no consolidated doc
    showing which chips (and revs!) have which internal oscillator speed.
    It's clear that only older silicon had the faster-and-less-accurate
    flavor.  What's less clear is which chips are "old" like that.
    
    Lightly tested, on a DustDevil part.
    
    git-svn-id: svn://svn.berlios.de/openocd/trunk@2626 b42882b7-edfa-0310-969c-e2dbd0fdcd60