示例#1
0
/**
 * bus->driver->(*area)
 *
 */
static int
s3c4510_bus_area( bus_t *bus, uint32_t adr, bus_area_t *area )
{
        int b0size0, b0size1; // , endian;

	area->description = NULL;
	area->start = UINT32_C(0x00000000);
	area->length = UINT64_C(0x100000000);

	// endian = part_get_signal( PART, part_find_signal( PART, "LITTLE" ));
	b0size0 = part_get_signal( PART, part_find_signal( PART, "B0SIZE0" ));
	b0size1 = part_get_signal( PART, part_find_signal( PART, "B0SIZE1" ));

        switch ((b0size1 << 1) | b0size0) {
                case 1:
			area->width = dbus_width = 8;
			return URJTAG_STATUS_OK;
                case 2:
			area->width = dbus_width = 16;
			return URJTAG_STATUS_OK;
                case 3:
			area->width = dbus_width = 32;
			return URJTAG_STATUS_OK;
                default:
                        printf( "B0SIZE[1:0]: Unknown\n" );
			area->width = 0;
			return URJTAG_STATUS_FAIL;
        }
}
示例#2
0
static int
cmd_salias_run( chain_t *chain, char *params[] )
{
	part_t *part;
	signal_t *s;
	salias_t *sa;

	if (cmd_params( params ) != 3)
		return -1;

	if (!cmd_test_cable( chain ))
		return 1;

	if (!chain->parts) {
		printf( _("Run \"detect\" first.\n") );
		return 1;
	}

	if (chain->active_part >= chain->parts->len) {
		printf( _("%s: no active part\n"), "signal" );
		return 1;
	}

	part = chain->parts->parts[chain->active_part];
	if (part_find_signal( part, params[1] ) != NULL) {
		printf( _("Signal '%s' already defined\n"), params[1] );
		return 1;
	}

	s = part_find_signal( part, params[2] );
	if (s == NULL) {
		printf( _("Signal '%s' not found\n"), params[2] );
		return 1;
	}

	sa = salias_alloc( params[1], s );
	if (!sa) {
		printf( _("out of memory\n") );
		return 1;
	}

	sa->next = part->saliases;
	part->saliases = sa;

	return 1;
}
示例#3
0
文件: get.c 项目: DerGenaue/usbprog
static int
cmd_get_run( char *params[] )
{
	int data;
	signal_t *s;

	if (cmd_params( params ) != 3)
		return -1;

	if (strcmp( params[1], "signal") != 0)
		return -1;

	if (!cmd_test_cable())
		return 1;

	if (!chain->parts) {
		printf( _("Run \"detect\" first.\n") );
		return 1;
	}

	if (chain->active_part >= chain->parts->len) {
		printf( _("%s: no active part\n"), "get" );
		return 1;
	}

	s = part_find_signal( chain->parts->parts[chain->active_part], params[2] );
	if (!s) {
		printf( _("signal '%s' not found\n"), params[2] );
		return 1;
	}
	data = part_get_signal( chain->parts->parts[chain->active_part], s );
	if (data != -1)
		printf( _("%s = %d\n"), params[2], data );

	return 1;
}
示例#4
0
static bus_t *
s3c4510_bus_new( void )
{
        bus_t *bus;
        char buff[10];
        int i;
        int failed = 0;

	if (!chain || !chain->parts || chain->parts->len <= chain->active_part || chain->active_part < 0)
                return NULL;

        bus = malloc( sizeof (bus_t) );
        if (!bus)
                return NULL;

	bus->driver = &s3c4510_bus;
	bus->params = malloc( sizeof (bus_params_t) );
        if (!bus->params) {
                free( bus );
                return NULL;
        }

        CHAIN = chain;
	PART = chain->parts->parts[chain->active_part];

        for (i = 0; i < 22; i++) {
                sprintf( buff, "ADDR%d", i );
                A[i] = part_find_signal( PART, buff );
                if (!A[i]) {
                        printf( _("signal '%s' not found\n"), buff );
                        failed = 1;
                        break;
                }
        }
        for (i = 0; i < 32; i++) {
                sprintf( buff, "XDATA%d", i );
                D[i] = part_find_signal( PART, buff );
                if (!D[i]) {
                        printf( _("signal '%s' not found\n"), buff );
                        failed = 1;
                        break;
                }
        }
        for (i = 0; i < 6; i++) {
                sprintf( buff, "nRCS%d", i );
                nRCS[i] = part_find_signal( PART, buff );
                if (!nRCS[i]) {
                        printf( _("signal '%s' not found\n"), buff );
                        failed = 1;
                        break;
                }
        }
        for (i = 0; i < 4; i++) {
                sprintf( buff, "nWBE%d", i );
                nWBE[i] = part_find_signal( PART, "nWBE" );
                if (!nWBE) {
                        printf( _("signal '%s' not found\n"), buff );
                        failed = 1;
                        break;
                }
        }
        nOE = part_find_signal( PART, "nOE" );
        if (!nOE) {
                printf( _("signal '%s' not found\n"), "nOE" );
                failed = 1;
        }

        if (failed) {
                free( bus->params );
                free( bus );
                return NULL;
        }

        return bus;
}
示例#5
0
static bus_t *
sh7750r_bus_new( void )
{
	bus_t *bus;
	char buff[10];
	int i;
	int failed = 0;

	if (!chain || !chain->parts || chain->parts->len <= chain->active_part || chain->active_part < 0)
		return NULL;

	bus = malloc( sizeof (bus_t) );
	if (!bus)
		return NULL;

	bus->driver = &sh7750r_bus;
	bus->params = calloc( 1, sizeof (bus_params_t) );
	if (!bus->params) {
		free( bus );
		return NULL;
	}

	CHAIN = chain;
	PART = chain->parts->parts[chain->active_part];

	for (i = 0; i < 26; i++) {
		sprintf( buff, "A%d", i );
		A[i] = part_find_signal( PART, buff );
		if (!A[i]) {
			printf( _("signal '%s' not found\n"), buff );
			failed = 1;
			break;
		}
	}
	for (i = 0; i < 32; i++) {
		sprintf( buff, "D%d", i );
		D[i] = part_find_signal( PART, buff );
		if (!D[i]) {
			printf( _("signal '%s' not found\n"), buff );
			failed = 1;
			break;
		}
	}
	for (i = 0; i < 7; i++) {
		sprintf( buff, "CS%d", i );
		CS[i] = part_find_signal( PART, buff );
		if (!CS[i]) {
			printf( _("signal '%s' not found\n"), buff );
			failed = 1;
			break;
		}
	}
	for (i = 0; i < 8; i++) {
		sprintf( buff, "WE%d", i );
		WE[i] = part_find_signal( PART, buff );
		if (!WE[i]) {
			printf( _("signal '%s' not found\n"), buff );
			failed = 1;
			break;
		}
	}
	RDWR = part_find_signal( PART, "RDWR" );
	if (!RDWR) {
		printf( _("signal '%s' not found\n"), "RDWR" );
		failed = 1;
	}
	RD = part_find_signal( PART, "RD" );
	if (!RD) {
		printf( _("signal '%s' not found\n"), "RD" );
		failed = 1;
	}
	RDWR2 = part_find_signal( PART, "RDWR2" );
	if (!RDWR2) {
		printf( _("signal '%s' not found\n"), "RDWR2" );
		failed = 1;
	}
	RD2 = part_find_signal( PART, "RD2" );
	if (!RD2) {
		printf( _("signal '%s' not found\n"), "RD2" );
		failed = 1;
	}

	if (failed) {
		free( bus->params );
		free( bus );
		return NULL;
	}

	return bus;
}
示例#6
0
static bus_t *
ppc440gx_ebc8_bus_new( void )
{
	bus_t *bus;
	char buff[10];
	int i;
	int failed = 0;

	if (!chain || !chain->parts || (chain->parts->len <= chain->active_part) || (chain->active_part < 0))
		return NULL;

	bus = malloc( sizeof (bus_t) );
	if (!bus)
		return NULL;

	bus->driver = &ppc440gx_ebc8_bus;
	bus->params = malloc( sizeof (bus_params_t) );
	if (!bus->params) {
		free( bus );
		return NULL;
	}

	CHAIN = chain;
	PART = chain->parts->parts[chain->active_part];

	for (i = 0; i < PPC440GX_ADDR_LINES; i++) {
		sprintf( buff, "EBCADR%d", i );
		A[i] = part_find_signal( PART, buff );
		if (!A[i]) {
			printf( _("signal '%s' not found\n"), buff );
			failed = 1;
			break;
		}
	}
	for (i = 0; i < PPC440GX_DATA_LINES; i++) {
		sprintf( buff, "EBCDATA%d", i );
		D[i] = part_find_signal( PART, buff );
		if (!D[i]) {
			printf( _("signal '%s' not found\n"), buff );
			failed = 1;
			break;
		}
	}
	sprintf( buff, "EBCCS0_N");
	nCS = part_find_signal( PART, buff );
	if (!nCS) {
		printf( _("signal '%s' not found\n"), buff );
		failed = 1;
	}
	nWE = part_find_signal( PART, "EBCWE_N" );
	if (!nWE) {
		printf( _("signal '%s' not found\n"), "nWE" );
		failed = 1;
	}
	nOE = part_find_signal( PART, "EBCOE_N" );
	if (!nOE) {
		printf( _("signal '%s' not found\n"), "nOE" );
		failed = 1;
	}

	if (failed) {
		free( bus->params );
		free( bus );
		return NULL;
	}

	return bus;
}