/** ========================================================================= * Soft reset * **/ void chip_soft_reset(void) { unsigned reg_value; read_sswitch_reg(get_core_id(), 6, ®_value); write_sswitch_reg(0, 6, reg_value); write_sswitch_reg(get_core_id(), 6, reg_value); }
/* Something weird happens with channel allocation here*/ unsigned write_sswitch_reg_clean(unsigned node, unsigned reg, unsigned val) { unsigned ret = 0, c = getLocalAnonChanend(), d; freeChanend(c); ret = write_sswitch_reg(node, reg, val); d = getLocalAnonChanend(); if (d != c) { freeChanend(c); } freeChanend(d); return ret; }