projects
/
deliverable
/
binutils-gdb.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Adjust gdb.mi/mi-sym-info.exp filename patterns.
[deliverable/binutils-gdb.git]
/
sim
/
bfin
/
dv-bfin_gpio.c
diff --git
a/sim/bfin/dv-bfin_gpio.c
b/sim/bfin/dv-bfin_gpio.c
index 43a5be67ffb27c98227c50d7418a3465b768351a..3daa551e128d7f3fc869f7e93690dc68cf0a517e 100644
(file)
--- a/
sim/bfin/dv-bfin_gpio.c
+++ b/
sim/bfin/dv-bfin_gpio.c
@@
-1,6
+1,6
@@
/* Blackfin General Purpose Ports (GPIO) model
/* Blackfin General Purpose Ports (GPIO) model
- Copyright (C) 2010-20
13
Free Software Foundation, Inc.
+ Copyright (C) 2010-20
20
Free Software Foundation, Inc.
Contributed by Analog Devices, Inc.
This file is part of simulators.
Contributed by Analog Devices, Inc.
This file is part of simulators.
@@
-110,14
+110,16
@@
bfin_gpio_io_write_buffer (struct hw *me, const void *source, int space,
bu16 *valuep;
bu32 data = port->data;
bu16 *valuep;
bu32 data = port->data;
+ /* Invalid access mode is higher priority than missing register. */
+ if (!dv_bfin_mmr_require_16 (me, addr, nr_bytes, true))
+ return 0;
+
value = dv_load_2 (source);
mmr_off = addr - port->base;
valuep = (void *)((unsigned long)port + mmr_base() + mmr_off);
HW_TRACE_WRITE ();
value = dv_load_2 (source);
mmr_off = addr - port->base;
valuep = (void *)((unsigned long)port + mmr_base() + mmr_off);
HW_TRACE_WRITE ();
- dv_bfin_mmr_require_16 (me, addr, nr_bytes, true);
-
switch (mmr_off)
{
case mmr_offset(data):
switch (mmr_off)
{
case mmr_offset(data):
@@
-153,7
+155,7
@@
bfin_gpio_io_write_buffer (struct hw *me, const void *source, int space,
break;
default:
dv_bfin_mmr_invalid (me, addr, nr_bytes, true);
break;
default:
dv_bfin_mmr_invalid (me, addr, nr_bytes, true);
-
break
;
+
return 0
;
}
/* If updating masks, make sure we send updated port info. */
}
/* If updating masks, make sure we send updated port info. */
@@
-182,13
+184,15
@@
bfin_gpio_io_read_buffer (struct hw *me, void *dest, int space,
bu32 mmr_off;
bu16 *valuep;
bu32 mmr_off;
bu16 *valuep;
+ /* Invalid access mode is higher priority than missing register. */
+ if (!dv_bfin_mmr_require_16 (me, addr, nr_bytes, false))
+ return 0;
+
mmr_off = addr - port->base;
valuep = (void *)((unsigned long)port + mmr_base() + mmr_off);
HW_TRACE_READ ();
mmr_off = addr - port->base;
valuep = (void *)((unsigned long)port + mmr_base() + mmr_off);
HW_TRACE_READ ();
- dv_bfin_mmr_require_16 (me, addr, nr_bytes, false);
-
switch (mmr_off)
{
case mmr_offset(data):
switch (mmr_off)
{
case mmr_offset(data):
@@
-218,7
+222,7
@@
bfin_gpio_io_read_buffer (struct hw *me, void *dest, int space,
break;
default:
dv_bfin_mmr_invalid (me, addr, nr_bytes, false);
break;
default:
dv_bfin_mmr_invalid (me, addr, nr_bytes, false);
-
break
;
+
return 0
;
}
return nr_bytes;
}
return nr_bytes;
This page took
0.024716 seconds
and
4
git commands to generate.