Exemple #1
0
/**
**  @brief
**    ROM/SRAM/FlashPage Write Access Timing
*/
static void
s3c4510_bus_write( bus_t *bus, uint32_t adr, uint32_t data )
{
        /* see Figure 4-21 in [1] */
        part_t *p = PART;
        chain_t *chain = CHAIN;

        part_set_signal( p, nRCS[0], 1, 0 );
        part_set_signal( p, nRCS[1], 1, 1 );
        part_set_signal( p, nRCS[2], 1, 1 );
        part_set_signal( p, nRCS[3], 1, 1 );
        part_set_signal( p, nRCS[4], 1, 1 );
        part_set_signal( p, nRCS[5], 1, 1 );
        part_set_signal( p, nWBE[0], 1, 1 );
        part_set_signal( p, nWBE[1], 1, 1 );
        part_set_signal( p, nWBE[2], 1, 1 );
        part_set_signal( p, nWBE[3], 1, 1 );
        part_set_signal( p, nOE, 1, 1 );

        setup_address( bus, adr );
        setup_data( bus, data );

        chain_shift_data_registers( chain, 0 );

        part_set_signal( p, nWBE[0], 1, 0 );
        chain_shift_data_registers( chain, 0 );
        part_set_signal( p, nWBE[0], 1, 1 );
        part_set_signal( p, nRCS[0], 1, 1 );
        part_set_signal( p, nRCS[1], 1, 1 );
        part_set_signal( p, nRCS[2], 1, 1 );
        part_set_signal( p, nRCS[3], 1, 1 );
        part_set_signal( p, nRCS[4], 1, 1 );
        part_set_signal( p, nRCS[5], 1, 1 );
        chain_shift_data_registers( chain, 0 );
}
Exemple #2
0
/**
 * bus->driver->(*write)
 *
 */
static void
sh7750r_bus_write( bus_t *bus, uint32_t adr, uint32_t data )
{
    chain_t *chain = CHAIN;
    part_t *p = PART;
    int cs[8];
    int i;

    for (i = 0; i < 8 ; i++)
        cs[i] = 1;
    cs[(adr & 0x1C000000) >> 26] = 0;

    part_set_signal( p, CS[0], 1, cs[0] );
    part_set_signal( p, CS[1], 1, cs[1] );
    part_set_signal( p, CS[2], 1, cs[2] );
    part_set_signal( p, CS[3], 1, cs[3] );
    part_set_signal( p, CS[4], 1, cs[4] );
    part_set_signal( p, CS[5], 1, cs[5] );
    part_set_signal( p, CS[6], 1, cs[6] );

    part_set_signal( p, RDWR, 1, 0 );
    part_set_signal( p, RDWR2, 1, 0 );
    part_set_signal( p, WE[0], 1, 1 );
    part_set_signal( p, WE[1], 1, 1 );
    part_set_signal( p, WE[2], 1, 1 );
    part_set_signal( p, WE[3], 1, 1 );
    part_set_signal( p, RD, 1, 1 );
    part_set_signal( p, RD2, 1, 1 );

    setup_address( bus, adr );
    setup_data( bus, data );

    chain_shift_data_registers( chain, 0 );

    part_set_signal( p, WE[0], 1, 0 );
    part_set_signal( p, WE[1], 1, 0 );
    part_set_signal( p, WE[2], 1, 0 );
    part_set_signal( p, WE[3], 1, 0 );

    chain_shift_data_registers( chain, 0 );

    part_set_signal( p, WE[0], 1, 1 );
    part_set_signal( p, WE[1], 1, 1 );
    part_set_signal( p, WE[2], 1, 1 );
    part_set_signal( p, WE[3], 1, 1 );

    chain_shift_data_registers( chain, 0 );
}
Exemple #3
0
/**
 * bus->driver->(*read_end)
 *
 */
static uint32_t
jopcyc_bus_read_end( bus_t *bus )
{
	part_t *p = PART;
	chain_t *chain = CHAIN;
	int i;
	uint32_t d = 0;
	bus_area_t area;
	component_t *comp;

	/* use last address of access to determine component */
	comp_bus_area( bus, LAST_ADDR, &area, &comp );
	if (!comp) {
		printf( _("Address out of range\n") );
		return 0;
	}

	part_set_signal( p, nCS, 1, 1 );
	part_set_signal( p, nOE, 1, 1 );
	if (comp->ctype == RAM) {
		part_set_signal( p, nLB, 1, 1 );
		part_set_signal( p, nUB, 1, 1 );
	}
	chain_shift_data_registers( chain, 1 );

	for (i = 0; i < area.width; i++)
		d |= (uint32_t) (part_get_signal( p, D[i] ) << i);

	return d;
}
Exemple #4
0
/**
 * bus->driver->(*read_end)
 *
 */
static uint32_t
sh7727_bus_read_end( bus_t *bus )
{
	part_t *p = PART;
	int i;
	uint32_t d = 0;
	bus_area_t area;

	sh7727_bus_area( bus, 0, &area );

	part_set_signal( p, CS[0], 1, 1 );
	part_set_signal( p, CS[2], 1, 1 );
	part_set_signal( p, CS[3], 1, 1 );
	part_set_signal( p, CS[4], 1, 1 );
	part_set_signal( p, CS[5], 1, 1 );
	part_set_signal( p, CS[6], 1, 1 );

	part_set_signal( p, RD, 1, 1 );
	chain_shift_data_registers( CHAIN, 1 );

	for (i = 0; i < area.width; i++)
		d |= (uint32_t) (part_get_signal( p, D[i] ) << i);

	return d;
}
Exemple #5
0
/**
 * bus->driver->(*read_next)
 *
 */
static uint32_t
jopcyc_bus_read_next( bus_t *bus, uint32_t adr )
{
	part_t *p = PART;
	chain_t *chain = CHAIN;
	int i;
	uint32_t d = 0;
	bus_area_t area;
	component_t *comp;

	comp_bus_area( bus, adr, &area, &comp );
	if (!comp) {
		printf( _("Address out of range\n") );
		LAST_ADDR = adr;
		return 0;
	}

	setup_address( bus, adr, comp );
	chain_shift_data_registers( chain, 1 );

	for (i = 0; i < area.width; i++)
		d |= (uint32_t) (part_get_signal( p, D[i] ) << i);

	return d;
}
Exemple #6
0
/**
 * bus->driver->(*read_next)
 *
 */
static uint32_t
sharc_21065L_bus_read_next( bus_t *bus, uint32_t adr )
{
	part_t *p = PART;
	chain_t *chain = CHAIN;
	uint32_t d;
	//uint32_t old_last_adr = LAST_ADR;

	LAST_ADR = adr;

	if (adr < UINT32_C(0x080000)) {
		int i;
		bus_area_t area;

		sharc_21065L_bus_area( bus, adr, &area );


		setup_address( bus, adr );
		chain_shift_data_registers( chain, 1 );

		d = 0;
		for (i = 0; i < area.width; i++)
			d |= (uint32_t) (part_get_signal( p, MD[i] ) << i);

		return d;
	}
	return 0;
}
Exemple #7
0
static int
cmd_detect_run( char *params[] )
{
	if (cmd_params( params ) != 1)
		return -1;

	if (!cmd_test_cable())
		return 1;

	buses_free();
	parts_free( chain->parts );
	chain->parts = NULL;
	detect_parts( chain, JTAG_DATA_DIR );
	if (!chain->parts)
		return 1;
	if (!chain->parts->len) {
		parts_free( chain->parts );
		chain->parts = NULL;
		return 1;
	}
	parts_set_instruction( chain->parts, "SAMPLE/PRELOAD" );
	chain_shift_instructions( chain );
	chain_shift_data_registers( chain, 1 );
	parts_set_instruction( chain->parts, "BYPASS" );
	chain_shift_instructions( chain );

	return 1;
}
Exemple #8
0
/**
 * bus->driver->(*read_end)
 *
 */
static uint32_t
sh7750r_bus_read_end( bus_t *bus )
{
    part_t *p = PART;
    int cs[8];
    int i;
    uint32_t d = 0;

    for (i = 0; i < 8; i++)
        cs[i] = 1;

    part_set_signal( p, CS[0], 1, cs[0] );
    part_set_signal( p, CS[1], 1, cs[1] );
    part_set_signal( p, CS[2], 1, cs[2] );
    part_set_signal( p, CS[3], 1, cs[3] );
    part_set_signal( p, CS[4], 1, cs[4] );
    part_set_signal( p, CS[5], 1, cs[5] );
    part_set_signal( p, CS[6], 1, cs[6] );

    part_set_signal( p, RD, 1, 1 );
    part_set_signal( p, RD2, 1, 1 );
    chain_shift_data_registers( CHAIN, 1 );

    for (i = 0; i < 32; i++)
        d |= (uint32_t) (part_get_signal( p, D[i] ) << i);

    return d;
}
Exemple #9
0
/**
 * bus->driver->(*init)
 *
 */
static int
jopcyc_bus_init( bus_t *bus )
{
	part_t *p = PART;
	chain_t *chain = CHAIN;
	component_t *comp;

	if (tap_state(chain) != Run_Test_Idle) {
		/* silently skip initialization if TAP isn't in RUNTEST/IDLE state
		   this is required to avoid interfering with detect when initbus
		   is contained in the part description file
		   bus_init() will be called latest by bus_prepare() */
		return URJTAG_STATUS_OK;
	}

	/* Preload update registers
	   See AN039, "Guidelines for IEEE Std. 1149.1 Boundary Scan Testing */

	part_set_instruction( p, "SAMPLE/PRELOAD" );
	chain_shift_instructions( chain );

	/* RAMA */
	comp = COMP_RAMA;
	set_data_in( bus, comp );
	part_set_signal( p, nCS, 1, 1 );
	part_set_signal( p, nWE, 1, 1 );
	part_set_signal( p, nOE, 1, 1 );
	part_set_signal( p, nLB, 1, 1 );
	part_set_signal( p, nUB, 1, 1 );

	/* RAMB */
	comp = COMP_RAMB;
	set_data_in( bus, comp );
	part_set_signal( p, nCS, 1, 1 );
	part_set_signal( p, nWE, 1, 1 );
	part_set_signal( p, nOE, 1, 1 );
	part_set_signal( p, nLB, 1, 1 );
	part_set_signal( p, nUB, 1, 1 );

	/* FLASH */
	comp = COMP_FLASH;
	set_data_in( bus, comp );
	part_set_signal( p, nCS,  1, 1 );
	part_set_signal( p, nWE,  1, 1 );
	part_set_signal( p, nOE,  1, 1 );
	part_set_signal( p, nCS2, 1, 1 );
	part_set_signal( p, nRDY, 0, 0 );

	/* Serial Port */
	part_set_signal( p, SER_RXD,  0, 0 );
	part_set_signal( p, SER_NRTS, 1, 1 );
	part_set_signal( p, SER_TXD,  1, 1 );
	part_set_signal( p, SER_NCTS, 0, 0 );

	chain_shift_data_registers( chain, 0 );

	INITIALIZED = 1;

	return URJTAG_STATUS_OK;
}
Exemple #10
0
/**
 * bus->driver->(*read_start)
 *
 */
static void
sh7727_bus_read_start( bus_t *bus, uint32_t adr )
{
	part_t *p = PART;
	int cs[8];
	int i;

	for (i = 0; i < 8; i++)
		cs[i] = 1;
	cs[(adr & 0x1C000000) >> 26] = 0;

	part_set_signal( p, CS[0], 1, cs[0] );
	part_set_signal( p, CS[2], 1, cs[2] );
	part_set_signal( p, CS[3], 1, cs[3] );
	part_set_signal( p, CS[4], 1, cs[4] );
	part_set_signal( p, CS[5], 1, cs[5] );
	part_set_signal( p, CS[6], 1, cs[6] );
	part_set_signal( p, RDWR, 1, 1 );
	part_set_signal( p, WE[0], 1, 1 );
	part_set_signal( p, WE[1], 1, 1 );
	part_set_signal( p, WE[2], 1, 1 );
	part_set_signal( p, WE[3], 1, 1 );
	part_set_signal( p, RD, 1, 0 );

	setup_address( bus, adr );
	set_data_in( bus );

	chain_shift_data_registers( CHAIN, 0 );
}
Exemple #11
0
/**
 * bus->driver->(*read_end)
 *
 */
static uint32_t
sharc_21065L_bus_read_end( bus_t *bus )
{
	part_t *p = PART;
	chain_t *chain = CHAIN;

	if (LAST_ADR < UINT32_C(0x080000)) {
		int i;
		uint32_t d = 0;
		bus_area_t area;

		sharc_21065L_bus_area( bus, LAST_ADR, &area );


		part_set_signal( p, BMS, 1, 1 );
		part_set_signal( p, nWE, 1, 1 );
		part_set_signal( p, nOE, 1, 1 );

		chain_shift_data_registers( chain, 1 );

		for (i = 0; i < area.width; i++)
			d |= (uint32_t) (part_get_signal( p, MD[i] ) << i);

		return d;
	}

	return 0;
}
Exemple #12
0
static uint32_t
s3c4510_bus_read_end( bus_t *bus )
{
        /* see Figure 4-19 in [1] */
        part_t *p = PART;
        chain_t *chain = CHAIN;
        int i;
        uint32_t d = 0;

        part_set_signal( p, nRCS[0], 1, 1 );
        part_set_signal( p, nRCS[1], 1, 1 );
        part_set_signal( p, nRCS[2], 1, 1 );
        part_set_signal( p, nRCS[3], 1, 1 );
        part_set_signal( p, nRCS[4], 1, 1 );
        part_set_signal( p, nRCS[5], 1, 1 );
        part_set_signal( p, nWBE[0], 1, 1 );
        part_set_signal( p, nWBE[1], 1, 1 );
        part_set_signal( p, nWBE[2], 1, 1 );
        part_set_signal( p, nWBE[3], 1, 1 );
        part_set_signal( p, nOE, 1, 1 );
        chain_shift_data_registers( chain, 1 );

        for (i = 0; i < dbus_width; i++)
                d |= (uint32_t) (part_get_signal( p, D[i] ) << i);

        return d;
}
Exemple #13
0
/**
 * bus->driver->(*read_start)
 *
 */
static void
jopcyc_bus_read_start( bus_t *bus, uint32_t adr )
{
	part_t *p = PART;
	chain_t *chain = CHAIN;
	bus_area_t area;
	component_t *comp;

	comp_bus_area( bus, adr, &area, &comp );
	if (!comp) {
		printf( _("Address out of range\n") );
		LAST_ADDR = adr;
		return;
	}

	part_set_signal( p, nCS, 1, 0 );
	part_set_signal( p, nWE, 1, 1 );
	part_set_signal( p, nOE, 1, 0 );
	if (comp->ctype == RAM) {
		part_set_signal( p, nLB, 1, 0 );
		part_set_signal( p, nUB, 1, 0 );
	}

	setup_address( bus, adr, comp );
	set_data_in( bus, comp );

	chain_shift_data_registers( chain, 0 );
}
Exemple #14
0
/**
 * bus->driver->(*read_start)
 *
 */
static void
s3c4510_bus_read_start( bus_t *bus, uint32_t adr )
{
        /* see Figure 4-19 in [1] */
        chain_t *chain = CHAIN;

	s3c4510_bus_setup_ctrl( bus, 0x00fffe);  /* nOE=0, nRCS0 =0 */
        setup_address( bus, adr );
        set_data_in( bus );
        chain_shift_data_registers( chain, 0 );
}
Exemple #15
0
static void
ppc440gx_ebc8_bus_write( bus_t *bus, uint32_t adr, uint32_t data )
{
	part_t *p = PART;
	chain_t *chain = CHAIN;

	part_set_signal( p, nCS, 1, 0 );
	part_set_signal( p, nWE, 1, 1 );
	part_set_signal( p, nOE, 1, 1 );

	setup_address( bus, adr );
	setup_data( bus, data );

	chain_shift_data_registers( chain, 0 );

	part_set_signal( p, nWE, 1, 0 );
	chain_shift_data_registers( chain, 0 );
	part_set_signal( p, nWE, 1, 1 );
	part_set_signal( p, nCS, 1, 1 );
	chain_shift_data_registers( chain, 0 );
}
Exemple #16
0
/**
 * bus->driver->(*write)
 *
 */
static void
bf533_ezkit_bus_write( bus_t *bus, uint32_t adr, uint32_t data )
{
	part_t *p = PART;
	chain_t *chain = CHAIN;

//	printf("Writing %04X to %08X...\n", data, adr);

	select_flash( bus );
	part_set_signal( p, AOE, 1, 1 );

	setup_address( bus, adr );
	setup_data( bus, data );

	chain_shift_data_registers( chain, 0 );

	part_set_signal( p, AWE, 1, 0 );
	chain_shift_data_registers( chain, 0 );
	part_set_signal( p, AWE, 1, 1 );
	unselect_flash( bus );
	chain_shift_data_registers( chain, 0 );
}
Exemple #17
0
/**
 * bus->driver->(*write)
 *
 *  @brief
 *    ROM/SRAM/FlashPage Write Access Timing
 */
static void
s3c4510_bus_write( bus_t *bus, uint32_t adr, uint32_t data )
{
        /* see Figure 4-21 in [1] */
        chain_t *chain = CHAIN;

	s3c4510_bus_setup_ctrl( bus, 0x01fffe);  /* nOE=1, nRCS0 =0 */
        setup_address( bus, adr );
        setup_data( bus, data );

        chain_shift_data_registers( chain, 0 );

	switch (dbus_width)
	{
	    default:
	    case 8:
		    s3c4510_bus_setup_ctrl( bus, 0x01fefe);  /* nOE=1, nRCS0 =0, nWBE0=0 */
		    break;
	    case 16:
		    s3c4510_bus_setup_ctrl( bus, 0x01fcfe);  /* nOE=1, nRCS0 =0, nWBE0-1=0 */
		    break;

	    case 32:
		    s3c4510_bus_setup_ctrl( bus, 0x01f0fe);  /* nOE=1, nRCS0 =0, nWBE0-3=0 */
		    break;
	}

        setup_address( bus, adr );
        setup_data( bus, data );

        chain_shift_data_registers( chain, 0 );

	s3c4510_bus_setup_ctrl( bus, 0x01ffff);  /* nOE=1, nRCS0 =1 */
        chain_shift_data_registers( chain, 0 );

	DEBUG_LVL2( printf("bus_write %08x @ %08x\n", data, adr); )
}
Exemple #18
0
/**
 * bus->driver->(*read_start)
 *
 */
static void
bf533_ezkit_bus_read_start( bus_t *bus, uint32_t adr )
{
	part_t *p = PART;
	chain_t *chain = CHAIN;

	select_flash( bus );
	part_set_signal( p, AOE, 1, 0 );
	part_set_signal( p, AWE, 1, 1 );

	setup_address( bus, adr );
	set_data_in( bus );

	chain_shift_data_registers( chain, 0 );
}
Exemple #19
0
/**
 * bus->driver->(*write)
 *
 */
static void
sharc_21065L_bus_write( bus_t *bus, uint32_t adr, uint32_t data )
{
	part_t *p = PART;
	chain_t *chain = CHAIN;

	if (adr >= 0x080000)
		return;


	part_set_signal( p, BMS, 1, 0 );
	part_set_signal( p, nWE, 1, 1 );
	part_set_signal( p, nOE, 1, 1 );

	setup_address( bus, adr );
	setup_data( bus, adr, data );

	chain_shift_data_registers( chain, 0 );

	part_set_signal( p, nWE, 1, 0 );
	chain_shift_data_registers( chain, 0 );
	part_set_signal( p, nWE, 1, 1 );
	chain_shift_data_registers( chain, 0 );
}
Exemple #20
0
/**
 * bus->driver->(*read_next)
 *
 */
static uint32_t
sh7750r_bus_read_next( bus_t *bus, uint32_t adr )
{
    part_t *p = PART;
    int i;
    uint32_t d = 0;

    setup_address( bus, adr );
    chain_shift_data_registers( CHAIN, 1 );

    for (i = 0; i < 32; i++)
        d |= (uint32_t) (part_get_signal( p, D[i] ) << i);

    return d;
}
Exemple #21
0
/**
 * bus->driver->(*read_next)
 *
 */
static uint32_t
bf533_ezkit_bus_read_next( bus_t *bus, uint32_t adr )
{
	part_t *p = PART;
	chain_t *chain = CHAIN;
	int i;
	uint32_t d = 0;

	setup_address( bus, adr );
	chain_shift_data_registers( chain, 1 );

	for (i = 0; i < 16; i++)
		d |= (uint32_t) (part_get_signal( p, DATA[i] ) << i);

	return d;
}
Exemple #22
0
/**
 * bus->driver->(*read_end)
 *
 */
static uint32_t
s3c4510_bus_read_end( bus_t *bus )
{
        /* see Figure 4-19 in [1] */
        part_t *p = PART;
        chain_t *chain = CHAIN;
        int i;
        uint32_t d = 0;

	s3c4510_bus_setup_ctrl( bus, 0x01ffff);  /* nOE=1, nRCS0 =1 */
        chain_shift_data_registers( chain, 1 );

        for (i = 0; i < dbus_width; i++)
                d |= (uint32_t) (part_get_signal( p, D[i] ) << i);

        return d;
}
Exemple #23
0
static uint32_t
s3c4510_bus_read_next( bus_t *bus, uint32_t adr )
{
        /* see Figure 4-20 in [1] */
        part_t *p = PART;
        chain_t *chain = CHAIN;
        int i;
        uint32_t d = 0;

        setup_address( bus, adr );
        chain_shift_data_registers( chain, 1 );

        for (i = 0; i < dbus_width; i++)
                d |= (uint32_t) (part_get_signal( p, D[i] ) << i);

        return d;
}
Exemple #24
0
/**
 * bus->driver->(*read_next)
 *
 */
static uint32_t
sh7727_bus_read_next( bus_t *bus, uint32_t adr )
{
	part_t *p = PART;
	int i;
	uint32_t d = 0;
	bus_area_t area;

	sh7727_bus_area( bus, 0, &area );

	setup_address( bus, adr );
	chain_shift_data_registers( CHAIN, 1 );

	for (i = 0; i < area.width; i++)
		d |= (uint32_t) (part_get_signal( p, D[i] ) << i);

	return d;
}
Exemple #25
0
/**
 * bus->driver->(*read_end)
 *
 */
static uint32_t
bf533_ezkit_bus_read_end( bus_t *bus )
{
	part_t *p = PART;
	chain_t *chain = CHAIN;
	int i;
	uint32_t d = 0;

	unselect_flash( bus );
	part_set_signal( p, AOE, 1, 1 );
	part_set_signal( p, AWE, 1, 1 );

	chain_shift_data_registers( chain, 1 );

	for (i = 0; i < 16; i++)
		d |= (uint32_t) (part_get_signal( p, DATA[i] ) << i);

	return d;
}
Exemple #26
0
static uint32_t
ppc440gx_ebc8_bus_read_next( bus_t *bus, uint32_t adr )
{
	part_t *p = PART;
	chain_t *chain = CHAIN;
	int i;
	uint32_t d = 0;
	bus_area_t area;

	ppc440gx_ebc8_bus_area( bus, adr, &area );

	setup_address( bus, adr );
	chain_shift_data_registers( chain, 1 );

	for (i = 0; i < area.width; i++)
		d |= (uint32_t) (part_get_signal( p, D[PPC440GX_DATA_LINES-1-i] ) << i);

	return d;
}
Exemple #27
0
static int
cmd_shift_run( char *params[] )
{
	if (cmd_params( params ) != 2)
		return -1;

	if (!cmd_test_cable())
		return 1;

	if (strcmp( params[1], "ir" ) == 0) {
		chain_shift_instructions( chain );
		return 1;
	}
	if (strcmp( params[1], "dr" ) == 0) {
		chain_shift_data_registers( chain, 1 );
		return 1;
	}

	return -1;
}
Exemple #28
0
/**
 * bus->driver->(*read_start)
 *
 */
static void
sharc_21065L_bus_read_start( bus_t *bus, uint32_t adr )
{
	chain_t *chain = CHAIN;
	part_t *p = PART;

	LAST_ADR = adr;
	if (adr >= 0x080000)
		return;


	part_set_signal( p, BMS, 1, 0 );
	part_set_signal( p, nWE, 1, 1 );
	part_set_signal( p, nOE, 1, 0 );

	setup_address( bus, adr );
	set_data_in( bus, adr );

	chain_shift_data_registers( chain, 0 );
}
Exemple #29
0
static uint32_t
ppc440gx_ebc8_bus_read_end( bus_t *bus )
{
	part_t *p = PART;
	chain_t *chain = CHAIN;
	int i;
	uint32_t d = 0;
	bus_area_t area;

	ppc440gx_ebc8_bus_area( bus, 0, &area );

	part_set_signal( p, nCS, 1, 1 );
	part_set_signal( p, nOE, 1, 1 );
	chain_shift_data_registers( chain, 1 );

	for (i = 0; i < area.width; i++)
		d |= (uint32_t) (part_get_signal( p, D[PPC440GX_DATA_LINES-1-i] ) << i);

	return d;
}
Exemple #30
0
/**
 * bus->driver->(*init)
 *
 */
static int
s3c4510_bus_init( bus_t *bus )
{
	part_t *p = PART;
	chain_t *chain = CHAIN;

	if (tap_state(chain) != Run_Test_Idle) {
		/* silently skip initialization if TAP isn't in RUNTEST/IDLE state
		   this is required to avoid interfering with detect when initbus
		   is contained in the part description file
		   bus_init() will be called latest by bus_prepare() */
		return URJTAG_STATUS_OK;
	}

        part_set_instruction( p, "SAMPLE/PRELOAD" );
        chain_shift_instructions( chain );
        chain_shift_data_registers( chain, 0 );

	INITIALIZED = 1;

	return URJTAG_STATUS_OK;
}