docs: Add info for logging through parport
This commit is contained in:
		| @@ -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 | ||||
|   | ||||
		Reference in New Issue
	
	Block a user