Ejemplo n.º 1
0
Archivo: main.c Proyecto: cyrozap/misoc
static void readstr(char *s, int size)
{
	char c[2];
	int ptr;

	c[1] = 0;
	ptr = 0;
	while(1) {
		c[0] = readchar();
		switch(c[0]) {
			case 0x7f:
			case 0x08:
				if(ptr > 0) {
					ptr--;
					putsnonl("\x08 \x08");
				}
				break;
			case 0x07:
				break;
			case '\r':
			case '\n':
				s[ptr] = 0x00;
				putsnonl("\n");
				return;
			default:
				putsnonl(c);
				s[ptr] = c[0];
				ptr++;
				break;
		}
	}
}
Ejemplo n.º 2
0
void readstr(char *s, int size)
{
	char c;
	int ptr;
	
	ptr = 0;
	while(1) {
		c = readchar();
		switch(c) {
			case 0x7f:
			case 0x08:
				if(ptr > 0) {
					ptr--;
					putsnonl("\x08 \x08");
				}
				break;
			case '\r':
			case '\n':
				s[ptr] = 0x00;
				putsnonl("\n");
				return;
			default:
				writechar(c);
				s[ptr] = c;
				ptr++;
				break;
		}
	}
}
Ejemplo n.º 3
0
int main(int i, char **c)
{
	char buffer[64];

	brd_desc = get_board_desc();

	/* Check for double baud rate */
	if(brd_desc != NULL) {
		if(CSR_GPIO_IN & GPIO_DIP2)
			CSR_UART_DIVISOR = brd_desc->clk_frequency/230400/16;
	}

	/* Display a banner as soon as possible to show that the system is alive */
	putsnonl(banner);
	
	crcbios();
	display_board();
	display_capabilities();
	
	boot_sequence();

	splash_showerr();
	while(1) {
		putsnonl("\e[1mBIOS>\e[0m ");
		readstr(buffer, 64);
		do_command(buffer);
	}
	return 0;
}
Ejemplo n.º 4
0
int printf(const char *fmt, ...)
{
	va_list args;
	int len;
	char outbuf[PRINTF_BUFFER_SIZE];

	va_start(args, fmt);
	len = vscnprintf(outbuf, sizeof(outbuf), fmt, args);
	va_end(args);
	outbuf[len] = 0;
	putsnonl(outbuf);

	return len;
}
Ejemplo n.º 5
0
int main(int i, char **c)
{
	char buffer[64];

	brd_desc = get_board_desc();

	/* Display a banner as soon as possible to show that the system is alive */
	putsnonl(banner);

	crcbios();
	display_board();

	boot_sequence();

	while(1) {
		putsnonl("\e[1mBIOS>\e[0m ");
		readstr(buffer, 64);
		do_command(buffer);
	}
	return 0;
}
Ejemplo n.º 6
0
/* main is from Milkymist bios. */
int port_main(int i, char **c)
{
        /* lock gdbstub ROM */
        CSR_DBG_CTRL = DBG_CTRL_GDB_ROM_LOCK;

        /* enable bus errors */
        CSR_DBG_CTRL = DBG_CTRL_BUS_ERR_EN;

        CSR_GPIO_OUT = GPIO_LED1;
        rescue = !((unsigned int)main > FLASH_OFFSET_REGULAR_BIOS);

        irq_setmask(0);
        irq_enable(1);
	time_init();
        uart_init();
//        vga_init(!(rescue || (CSR_GPIO_IN & GPIO_BTN2)));
        putsnonl(banner);
//        crcbios();
//        brd_init();
//        tmu_init(); /* < for hardware-accelerated scrolling */
//        usb_init();
//        ukb_init();

        if(rescue)
                printf("I: Booting in rescue mode\n");

//        splash_display();
//        ethreset(); /* < that pesky ethernet PHY needs two resets at times... */
//        print_mac();
//        boot_sequence();
//        vga_unblank();
//        vga_set_console(1);
    uart_force_sync(1);
while (1)  {
        putsnonl("\e[1mStarting CoreMark\e[0m\n");
        main();
	putsnonl("\e[1mCoreMark ended.\e[0m \n\n");
}
        return 0;
}
Ejemplo n.º 7
0
Archivo: main.c Proyecto: cyrozap/misoc
static void dump_bytes(unsigned int *ptr, int count, unsigned addr)
{
	char *data = (char *)ptr;
	int line_bytes = 0, i = 0;

	putsnonl("Memory dump:");
	while(count > 0){
		line_bytes =
			(count > NUMBER_OF_BYTES_ON_A_LINE)?
				NUMBER_OF_BYTES_ON_A_LINE : count;

		printf("\n0x%08x  ", addr);
		for(i=0;i<line_bytes;i++)
			printf("%02x ", *(unsigned char *)(data+i));

		for(;i<NUMBER_OF_BYTES_ON_A_LINE;i++)
			printf("   ");

		printf(" ");

		for(i=0;i<line_bytes;i++) {
			if((*(data+i) < 0x20) || (*(data+i) > 0x7e))
				printf(".");
			else
				printf("%c", *(data+i));
		}

		for(;i<NUMBER_OF_BYTES_ON_A_LINE;i++)
			printf(" ");

		data += (char)line_bytes;
		count -= line_bytes;
		addr += line_bytes;
	}
	printf("\n");
}