EC 1.75 Firmware

From OLPC
Revision as of 17:05, 24 March 2014 by Quozl (talk | contribs) (Production)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search

Production

Ver: 4 1.0.01

  • Check EEPROM bank 0 magic values and fix if wrong
  • Print out the ACR value on entry into suspend
  • Re-implement SD2 power control. EC Command 0x6f Argument u8. Non-zero to to power up 0 to power down.
  • released in Q4D26.

Ver: 4 1.0.00

  • Turn off run-in enabled battery debugging messages on powerup
  • released in Q4D25.

Ver: 4 0.5.00

  • Hack to allow the mmp2 A1 board to be supported
  • Remove support for A3 boards, and version 1 of the power limit code
  • Remove A1/A2 support, no reason to support non-ISL charger
  • Rework A/D reading for less code when only 8-bit values are needed this simplifies the board identification code as well

C2/Ramp

Ver: 4 0.4.03

  • Automatically turn off USB hub power when host is suspended
  • Add power off USB hub SDI command
  • Increase stop mode entry timer to 3s when power is off
  • Add new SDI command for retrieving power while suspended
  • Fix trac #11760. EC always charges battery after reset
  • Clear battery full flag on runin discharge
  • Set max sys voltage (battery CV) to 7.44V
  • Set battery full taper current to 120mA via human readable macro
  • Fix battery low voltage count reset
  • Lower minimum system/battery voltage to 4.950

Ver: 0.4.02

  • handle upstream command responses before events
  • add command for sending repetitive events, for stress testing
  • eliminate extra AC-changed events
  • set the default event_mask to all-unmasked
  • implement a mask to control upstream event delivery
  • shorten EC_IRQ assertion
  • ifdef the EC_IRQ exerciser command

Ver: 0.4.01

  • Add timestamp on SDI: waking message
  • Add _tst to the make RELEASE file name output
  • Disable RUNIN discharge if battery goes critical
  • broaden EC's notion of "suspend"
  • add timestamp to suspend_hint and SOC_SLEEP transitions

Ver: 0.4.00

  • Add HOST NOT READY checking into all the SDI wait states
  • Fix CP flag power ups
  • Log last 4 bytes of the suspend hint as a suspend identifier
  • Log all suspend_hint and SOC_SLEEP transitions
  • New status check, returns suspend hint status

Download: 0.4.00

C1 Prototype

Ver: 0.3.07

  • Protect against 8051 core CPU bug involving MOVC/CJNE pairs
  • Prevent buffer overflow from internally generated version strings
  • Neuter the useless and annoying boot checksum

Ver: 0.3.06

  • add code to assist preserving the keystroke that wakes SoC from sleep
  • Update board ID for C2 Ramp
  • Make sure battery state timer is initialized on battery insert
  • Reduce system hard power off voltage to 5.4V
  • Prevent ACR sync from exceeding SOC bounds
  • Adjust the 1% tick ACR value based on a calibrations from pwr logs
  • Fix Trac #11420 problem 2 -- Power up failure after critical shutdown

Ver: 0.3.05

  • Correct OLS event reporting
  • Decrease the maximum input wattage to compensate for tolerance.
  • Add EC protocol support for OLS commands
  • Add support for OLS hysteresis, and bright/dark events
  • Add new OLS commands and event identifiers

Ver: 0.3.04

  • Implement timed wakeups
  • Configure GPIO_CMD to wake us when SOC_SLEEP is unavailable. This lets us stop the EC on B3 and earlier boards.
  • Use the full resolution of the watchdog timer
  • Don't switch to internal oscillator during stop mode

Ver: 0.3.03

  • Don't enter stop mode if battery debug is active
  • Don't configure SOC_SLEEP for wakeups when board isn't powered otherwise the it may cause continuous wakeups.
  • Disable serial RX wakeups
  • Add command to let B-series boards know SoC is suspending
  • Send different events for waking/running power button presses
  • use EC_IRQ# to wake the SoC from suspend before upstream events

Ver: 0.3.02

  • Work around PWR_LMT_ON glitch when charging starts
  • Increase the min system voltage to 7.45V

Ver: 0.3.01

  • Drop max system voltage to 7.4V
  • Restore lost ACR print in battery 'b3' debug
  • Give low battery power off command time to complete
  • Make a full battery SOC = 100%
  • Clear battery stats on battery reset
  • Increase max power draw to 24W/25W
  • Don't print MPPT enabled/disabled twice
  • Add bat debug print of the PWR_LMT_ON signal for wad
  • Add missing default settings for 0x1c1
  • add code to allow a power button press in suspend to interrupt SoC
  • Augment battery debug info with whether laptop is sleeping or not.
  • Implement ability to interrupt SoC with EC_IRQ#
  • Fix delay loop timing (slightly)
  • Sync sdcc makefile's file list with keil makefile
  • Calibrate serial baud rate at boot
  • Retune 1ms tick, now we're properly using external crystal
  • Fix CRY32CR settings to use external oscillator
  • Add an incrementing build index to developer-build version strings

Ver: 0.3.00

  • Fully implement suspend power blinking
  • rename *_SLEEP_IND functions to *_VCXO_EN, and invert level
  • Rework SDI host (ACK state) handling
  • Enable touchpad by default for < 0x1B1
  • Introduce workaround for ljmp bug
  • Fully init the gpwu on every reboot

Download: 0.3.00

B1 Prototype

Ver: 0.2.04

Download: 0.2.04

  • Workaround for EC hang after EDI reset.
  • Add support for 0x1b4 boards
  • Use SLEEP_IND input to put the EC into stop mode when SoC suspends
  • Differentiate between manual and automatic enter_stop_mode() calls
  • Fix watchdog duration to compensate for interrupt at half the configured timeout.

for that.

  • Replace double-stop hack w/ EnE's fix for powering down A/D module
  • Add check against low-valued stack pointer bug
  • Do a more complete init/deinit of the ADC module
  • Disable PS/2 clock when not using PS/2
  • Renumber a few (unused) EC commands to fix conflicts with previous generations.
  • Fix keil environment stack bug
  • New Vin scaled and battery power min, max, reset commands
  • Remove dead code from MPPT dropping support for < 0x1b3 boards
  • Add UART RX to wakeup signals
  • Make other debug output integrate with MPPT debug output
  • makefile tweak
  • Enhanced MPPT (plimit_v2) via LV_SET.
  • Makefile update to reserve EC flags area
  • Add power limit to battery debug display
  • Remove usage of legacy TurnOffSystemPower
  • Drop SDI upstream packets if host is not ready
  • Fix compile breakage if the PS/2 code is removed
  • Format SDI debug output so its easier to read
  • Clear cmdresp queue when starting up SDI
  • Make power sequencing come up in TURN_OFF mode
  • Enable EC flags
  • Handle OLS# moving on > 1B2 board IDs
  • Add support board 1B3 and LV_SET on PWM 2
  • Fast resolve of external ACR changes on battery insert
  • modify calculation of EnE checksum to exclude new tag area
  • Fix board identification to allow full use of 64 different id values

Ver: 0.2.03

  • Several new monitor debugging commands
  • Support and enable power limit v2 circuitry
  • Fix charger functions to update last_charge_current
  • Re-Init battery debug timer on settings change
  • Make sure runin is disabled on startup
  • Disable battery LED output when we sleep
  • Prepare for PS/2 code removal
  • Add more power sequencing debug output
  • implement CMD_SET_DCON_POWER, to power the DCON down

Ver: 0.2.02

Ver: 0.2.01

Ver: 0.2.00

(seen in OFW svn 2350 no other data yet)

Ver: 0.1.04

Download: 0.1.04

  • Fix broken charging on A2 boards.

Ver: 0.1.03

Download: 0.1.03

  • Decrease the OLS sample rate to 500ms
  • Rework the OLS SMT test for OFW control
  • Make B phase boards no-op the KBD power GPIO.

(Also functions on A3).

(Incompatible with A2, causes excess charge voltage).

A3 Prototype

Ver: 0.1.02

Download: 0.1.02

  • OFW error: "rxavail = 4" fix
  • Fix building with io as macros turned off
  • Support reading the PWR_LMT_ON signal
  • Add SMT and ASSEMBLY testing modes to OLS
  • Add support for auto power up after reflash.
  • Report power button presses to the soc via an event
  • Make keyboard/touchpad debug output runtime controllable

Ver: 0.1.01

Download: 0.1.01

  • Keep OLS LED from blinking
  • Fix small error in keymaping for mechanical keyboard
  • Rename ALS to OLS per wad's request
  • update to latest development version naming scheme
  • notify the kernel when we artifically disable charging
  • implement a new upstream channel for command error reporting
  • implement support for battery status event reporting
  • implement SOC change event reporting
  • fix AC status change reporting
  • fix event reporting for abnormal battery conditions
  • Add keymapping.csv into reppository

Ver: 0.0.11

Download: 0.0.11

  • fix missing battery current in mA calculation
  • reduce nominal input power to about 18 watts
  • fix sporadic ISL communication errors
  • fix MAIN_PWR to VCORE enable timing
  • drop I1 from mppt debug print
  • add EC cmd to get the EC version hash
  • ambient light sensor support
  • fix CHG statement in LiFe debug print
  • fix missing battery LED state if MPPT stops charging
  • add serial EC boot message

Ver: 0.0.10 (never released)

  • fix GPWU register save/restore
  • don't clear the ADC interrupt flag
  • update ambient light sensor pins for A3
  • add A3 board id
  • new charger chip support
  • solar maximum power point tracking merge from XO-1.5

A2 Prototype

Ver: 0.0.9

Download: 0.0.9

  • reset keyboard module state when powering up the board
  • add quick blink when power button has been debounced
  • add ambient light sensor prototype code (requires custom hardware, or wait for A3)
  • implement CMD_POWER_CYCLE

Ver: 0.0.8

Download: 0.0.8

  • fix typo affecting initial state of EN_3_3V_SOC
  • disable power controls during stop mode (safe, since we know the board is off at this point), to reduce leakage
  • add git hash to version info
  • fix handling of uppercase hex digits in tohex(), and "make format"
  • disable more internal clocks, guided by new EnE docs
  • add CMD_RESET_EC and CMD_RESET_EC_SOFT protocol commands, for resetting the 8051 core, and the whole chip, respectively.
  • add 'r'eset command, and rearrange watchdog exercise commands.
  • use internal oscillator for watchdog, so it runs in stop mode, and add watchdog_reboot() routine.
  • fix bug in enable/disable_EN_SD[12] macros
  • turn off trim_tune() debug output, and enable stop mode.
  • turn off stop mode debug output
  • disable the spi host controller in powerdown state, to reduce leakage.
  • add commands for more watchdog control, for debug
  • reintroduce failsave recover loop at top of main.
  • configure the EDI CS input to wake us, so we can program the EC when in STOP mode.
  • make the AC input wakeup work, by switching to edge-triggered from toggle-triggered. toggle-triggered should have worked.
  • get rid of extra wakeup PF flag, by setting GPIO2D (TP167, used for the gpt3 timer output heartbeat) to output-only. also ifdef the stop-mode debug code. AC jack wakeups are still disabled.
  • Add delay prior to entering stop mode.
  • Make main_io3731 the default main.c via symlink
  • fix initial copyright

Ver: 0.0.7

  • Internal non-released test version.

Ver: 0.0.6

Download: 0.0.6

  • Fix touchpad

Ver: 0.0.5

Download: 0.0.5

  • Initial cut at adding stop mode. disabled by default for now.
  • fix the clearing of the power-off command flag
  • Shorten the cycle_led times.
  • add a bunch of debugging output for the trim registers
  • add io support for the RESTORE pin, and an sfr for the PCON register. also formatting.
  • Enable board ID reading
  • Wait for the flash trim read to complete before reading the data
  • Fix battery error LED state not set on battery error

Ver: 0.0.4

Download: 0.0.4

  • Enable battery charging
  • Implement api for poweroff add debug code for showing power states.

Ver: 0.0.2

Download: 0.0.2

  • Enable/Fix EC<->Host communication
  • Enable/Fix Keyboard stream.

Source