BSP Infobox

BSP_name jmr3904
Manufacturer Toshiba
Architecture MIPS
image Microprocessors.jpeg
CPU_model TMPR3904F 50MHz
Simulator Yes, included in GDB.
Aliases jmr3904
RAM 512k
NVMEM 16/32 kb EEPROM, 6 KB Flash
Serial PMON serial port
Video Video Unspecified
Other Timers integrated with the processor


The TX3904 is a MIPS R3000 class CPU with serial ports and timers integrated with the processor. This BSP can be used with either real hardware or with the simulator included with mipstx39-rtems-gdb

The jmr3904 BSP is a Toshiba evalutation board for the TX3904. The TX3904 is an R3000 class system on chip with some timers and UARTS.

The most important thing about this BSP is that gdb has a simulator for it. The simulator is reasonably fast and accurate with the capability to simulate a clock interrupt source. It is one of the most frequently tested BSPs in RTEMS.

NOTE: GDB must be configured for mipstx39-* for this simulator to function correctly. This is why the mipstx39-rtems* RPMs are provided. The BSP can be built with mips-rtems* tools but can only be executed by the more specifically targetted gdb.

Board Setup

The eCos Developer’s Kit package comes with a pair of ROMs that provide GDB support for the Toshiba JMR-TX3904 RISC processor reference board by way of CygMon?.

Images of these ROMs are also provided at BASE_DIR/loaders/tx39-jmr3904/cygmon50.bin and BASE_DIR/loaders/tx39-jmr3904/cygmon66.bin for 50 MHz and 66 MHz boards respectively. The ROMs are installed to sockets IC6 and IC7 on the memory daughterboard according to their labels. Attention should be paid to the correct orientation of these ROMs during installation.

  • Using HAL Package
  • The JMR3904 HAL package should be used when targeting the

actual hardware. The same package can also be used when running on the full simulator, since this provides an accurate simulation of the hardware including I/O devices. To use the simulator in this mode the command `target sim --board=jmr3904' should be used from inside gdb.

  • The jmr3904 target provides the packages needed to run

eCos on a Toshiba JMR-TX3904 board. This target can also be used when running in the full simulator, since the simulator provides an accurate simulation of the hardware including I/O devices. To use the simulator in this mode the command `target sim --board=jmr3904' should be used from inside gdb.

Running Applications on the Target

On Windows you must have the bash command line interpreter running with some environment variables which are useful for eCos work. If you have purchased the eCos Developer's Kit , you can select this by selecting Start->Programs->Red Hat eCos->eCos Development Environment . If you are using the eCos Net release, you should set the environment variables as shown in the GNUPro Toolkit Reference Manual . On Linux, simply open a new shell window.

You will need to change directory to the prebuilt tests that are provided in the eCos installation. Change directory as follows:

for the TX3904-based Toshiba JMR-TX3904 board:

$ cd BASE_DIR/prebuilt/jmr3904/tests/kernel/v1_3_1/tests

To execute the thread_gdb test case on the desired target, run GDB in command line mode using the following command, remembering to substitute the appropriate name for the architecture's gdb


To debug your code you need JMR-TX3904 RISC Processor Reference Board with eCos CygMon? Debug EPROMs installed

Using The BSP

The following is a session using the RTEMS 4.6 toolset to run hello.

$ mipstx39-rtems-run --board=jmr3904 hello.exe 
Hello World

The following is a session using the RTEMS 4.6 toolset to run ticker.

$ mipstx39-rtems-run --board=jmr3904 ticker.exe 

TA1  - rtems_clock_get - 09:00:00   12/31/1988
TA2  - rtems_clock_get - 09:00:00   12/31/1988
TA3  - rtems_clock_get - 09:00:00   12/31/1988
TA1  - rtems_clock_get - 09:00:05   12/31/1988
TA2  - rtems_clock_get - 09:00:10   12/31/1988
TA1  - rtems_clock_get - 09:00:10   12/31/1988
TA3  - rtems_clock_get - 09:00:15   12/31/1988
TA1  - rtems_clock_get - 09:00:15   12/31/1988
TA2  - rtems_clock_get - 09:00:20   12/31/1988
TA1  - rtems_clock_get - 09:00:20   12/31/1988
TA1  - rtems_clock_get - 09:00:25   12/31/1988
TA3  - rtems_clock_get - 09:00:30   12/31/1988
TA1  - rtems_clock_get - 09:00:30   12/31/1988
TA2  - rtems_clock_get - 09:00:30   12/31/1988

Test Reports

4.6.4: User:JoelSherrill? reports that it runs fine on gdb 5.3. User::JoelSherrill? reports that it runs fine on gdb 6.3.


There is a simulator for this board in GDB,but if you want something different,you can download another simulator here

You can find manuals here and here

You can check out the tests here

Last modified on Nov 7, 2018 at 10:03:29 AM Last modified on Nov 7, 2018, 10:03:29 AM