blob: f621092b144680210cd9c6e9c9d2bb5ffb27ecad [file] [log] [blame] [edit]
/*
* Copyright 2020, Data61, CSIRO (ABN 41 687 119 230)
*
* SPDX-License-Identifier: BSD-2-Clause
*/
#include <autoconf.h>
#include <assert.h>
#include <stdbool.h>
#include <sel4/sel4.h>
#include <camkes/io.h>
#include <platsupport/reset.h>
#include <utils/util.h>
/*
* Gotchas:
* - there is no access control at the moment, this means that clients can
* perform a denial-of-service attack on other clients by asserting the reset
* line on devices
*/
/* reset_sys for interacting with the reset lines */
static reset_sys_t reset_sys;
/* io_ops structure to access IO resources with */
int the_reset_assert_reset(reset_id_t id)
{
return reset_sys_assert(&reset_sys, id);
}
int the_reset_deassert_reset(reset_id_t id)
{
return reset_sys_deassert(&reset_sys, id);
}
int ResetServer_init(ps_io_ops_t *io_ops)
{
int error;
error = reset_sys_init(io_ops, NULL, &reset_sys);
ZF_LOGF_IF(error, "Failed to initialise the reset subsystem with the BPMP");
return 0;
}