/* Blackfin Core Timer model.
- Copyright (C) 2010-2011 Free Software Foundation, Inc.
+ Copyright (C) 2010-2020 Free Software Foundation, Inc.
Contributed by Analog Devices, Inc.
This file is part of simulators.
#define mmr_base() offsetof(struct bfin_ctimer, tcntl)
#define mmr_offset(mmr) (offsetof(struct bfin_ctimer, mmr) - mmr_base())
-static const char * const mmr_names[] = {
+static const char * const mmr_names[] =
+{
"TCNTL", "TPERIOD", "TSCALE", "TCOUNT",
};
#define mmr_name(off) mmr_names[(off) / 4]
bu32 value;
bu32 *valuep;
+ /* Invalid access mode is higher priority than missing register. */
+ if (!dv_bfin_mmr_require_32 (me, addr, nr_bytes, true))
+ return 0;
+
value = dv_load_4 (source);
mmr_off = addr - ctimer->base;
valuep = (void *)((unsigned long)ctimer + mmr_base() + mmr_off);
bu32 mmr_off;
bu32 *valuep;
+ /* Invalid access mode is higher priority than missing register. */
+ if (!dv_bfin_mmr_require_32 (me, addr, nr_bytes, false))
+ return 0;
+
mmr_off = addr - ctimer->base;
valuep = (void *)((unsigned long)ctimer + mmr_base() + mmr_off);
return nr_bytes;
}
-static const struct hw_port_descriptor bfin_ctimer_ports[] = {
+static const struct hw_port_descriptor bfin_ctimer_ports[] =
+{
{ "ivtmr", IVG_IVTMR, 0, output_port, },
{ NULL, 0, 0, 0, },
};
/* Initialize the Core Timer. */
}
-const struct hw_descriptor dv_bfin_ctimer_descriptor[] = {
+const struct hw_descriptor dv_bfin_ctimer_descriptor[] =
+{
{"bfin_ctimer", bfin_ctimer_finish,},
{NULL, NULL},
};