EC 1.75 Firmware

From OLPC
Jump to navigation Jump to search
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.

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.

Ver: 4 1.0.00

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

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