FreeCalypso > hg > freecalypso-tools
diff libpwon/etmoff.c @ 953:ab54957dbe35
libpwon: implement -Petmoff mode
author | Mychaela Falconia <falcon@freecalypso.org> |
---|---|
date | Wed, 07 Jun 2023 20:06:12 +0000 |
parents | |
children |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/libpwon/etmoff.c Wed Jun 07 20:06:12 2023 +0000 @@ -0,0 +1,25 @@ +/* + * This libpwon module implements -Petmoff mode: set the baud rate to 115200 + * and send out ETM command doing Iota poweroff, triggering a VRPC reboot cycle + * on the USB-charging phone. The "wakeup shot" logic is a copy of what we do + * in rvinterf. + */ + +#include <sys/types.h> +#include <unistd.h> + +extern int target_fd; + +static u_char wakeup_shot[64]; +static u_char etm_devoff_pkt[9] = + {0x02, 0x14, 0x01, 0x67, 0x1E, 0x01, 0x00, 0x79, 0x02}; + +void +bootctrl_do_etmoff() +{ + set_fixed_baudrate("115200"); + set_serial_nonblock(0); + write(target_fd, wakeup_shot, sizeof wakeup_shot); + usleep(100000); + write(target_fd, etm_devoff_pkt, sizeof etm_devoff_pkt); +}