diff --git a/doc/debugging.md b/doc/debugging.md index 2181990..dac5678 100644 --- a/doc/debugging.md +++ b/doc/debugging.md @@ -1,15 +1,76 @@ # Debugging the EC firmware +Terms used: +- *target*: The laptop system that has the EC to be tested +- *host*: The system that will have all devices connected to it and + will receive the EC logs + +## Parallel port + +This method replaces the keyboard with a device used for debug logging. +An alternate method of interacting with the target is needed; e.g., an +external USB keyboard or SSH session. + +Requirements: +- Arduino Mega 2560 compatible board +- 24 pin flexible printed circuit + - 0.5mm or 1.0mm pitch, depending on target connector +- 24 pin FPC breakout board with connectors +- USB-C cable + +### Configuring the Mega 2560 + +If the breakout board did not come preassembled, assemble it before +starting. This will require soldering. + +1. Connect the breakout board to the Mega 2560 + - Orientation will affect the mapping of GPIO pins +2. Connect the Mega 2560 to the host +3. Configure GPIO pin mapping in `parallel.c` based on how it will + connect to the target parallel port + - Trace pin 1 on motherboard connector to Mega's GPIO pins +4. Build and flash the firmware for the Mega 2560 +``` +make BOARD=arduino/mega2560 +make BOARD=arduino/mega2560 flash +``` + +### Setup + +1. Enable parallel port debugging in the EC firmware + - Uncomment `PARPORT_DEBUG` in `board.mk` + - Build and flash the firmware for the target +2. Power off target +3. Remove bottom panel +4. Unplug keyboard cable + - May require removing keyboard depending on port location +5. Connect Mega 2560 to host + - This will create an ACM device at `/dev/ttyACM*` +6. Connect to ACM device from host +``` +sudo tio -b 1000000 -m INLCRNL /dev/ttyACM0 +``` +7. Set Mega to peripheral mode +``` +echo 'C' > /dev/ttyACM0 +``` +8. Ground target to host + - Connect USB cable from USB-C port on target to host +9. Connect Mega 2560 to target + +EC logs should now print to the console on the host. This can be tested +by removing or inserting the AC adapter to trigger a power event. + +To return the Mega to host mode, reset the device. + +If logs are corrupted, try power cycling the Mega. + +## I2C connection + **Failure to follow steps in order, or performing steps on an unsupported board, may result in damaged board components.** -Terms used: - -- *target*: The laptop system that has the EC to be tested. -- *host*: The system that will have all devices connected to it and - will receive the EC logs. - -## Wiring the target +### Wiring the target These steps apply to the following models: - darp5 @@ -29,7 +90,7 @@ These steps apply to the following models: 9. Reconnect battery 10. Replace bottom panel -## Setup +### Setup Requirements: - Target wired for EC debugging