EC 1.75 Firmware
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
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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- Work around PWR_LMT_ON glitch when charging starts
- Increase the min system voltage to 7.45V
- 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
- 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
- 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.
- 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
- 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
(seen in OFW svn 2350 no other data yet)
- Fix broken charging on A2 boards.
- 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).
- 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
- 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
- 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
- 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
- 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 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
- Internal non-released test version.
- Fix touchpad
- 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
- Enable battery charging
- Implement api for poweroff add debug code for showing power states.
- Enable/Fix EC<->Host communication
- Enable/Fix Keyboard stream.