/** * 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; } }
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; }
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; }
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; }
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; }
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; }