This is the mail archive of the gdb-cvs@sourceware.org mailing list for the GDB project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[binutils-gdb] sim: ft32: correctly simulate PM write port


https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;h=71c34ca7a0f54c8c8ad39b72ea1badf9f9a1ade7

commit 71c34ca7a0f54c8c8ad39b72ea1badf9f9a1ade7
Author: James Bowman <james.bowman@ftdichip.com>
Date:   Mon Sep 28 23:49:36 2015 +0000

    sim: ft32: correctly simulate PM write port
    
    The FT32 simulator was not correctly simulating the behavior of the
    program memory (PM) write port.  When it is locked, writes to the
    data register do nothing.

Diff:
---
 sim/ft32/ChangeLog | 4 ++++
 sim/ft32/interp.c  | 8 ++++++--
 2 files changed, 10 insertions(+), 2 deletions(-)

diff --git a/sim/ft32/ChangeLog b/sim/ft32/ChangeLog
index 29f661f..47218b4 100644
--- a/sim/ft32/ChangeLog
+++ b/sim/ft32/ChangeLog
@@ -1,3 +1,7 @@
+2015-09-29  James Bowman  <james.bowman@ftdichip.com>
+
+	* interp.c (cpu_mem_write): Do no write PM when locked.
+
 2015-09-22  James Bowman  <james.bowman@ftdichip.com>
 
 	* ft32/interp.c (cpu_mem_read): Call getchar when ea is 0x10000.
diff --git a/sim/ft32/interp.c b/sim/ft32/interp.c
index a20907c..c769ff7 100644
--- a/sim/ft32/interp.c
+++ b/sim/ft32/interp.c
@@ -205,8 +205,12 @@ static void cpu_mem_write (SIM_DESC sd, uint32_t dw, uint32_t ea, uint32_t d)
 	  cpu->state.pm_addr = d;
 	  break;
 	case 0x1fc88:
-	  /* Write to PM */
-	  ft32_write_item (sd, dw, cpu->state.pm_addr, d);
+	  if (cpu->state.pm_unlock)
+	    {
+	      /* Write to PM.  */
+	      ft32_write_item (sd, dw, cpu->state.pm_addr, d);
+	      cpu->state.pm_addr += 4;
+	    }
 	  break;
 	case 0x1fffc:
 	  /* Normal exit.  */


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]