Ejemplo n.º 1
0
int console_init( Console* cons )
{
	ptr base = 0;
	int status = 0;
	uint channel = 0;
	uint control = 0;
	
	base = console_getbase( cons );

	channel = cons->channel == CONSOLE_1 ? COM1 : COM2;
	/* Reset port first */
	cons->write_bytes = 0;
	cons->read_bytes = 0;
	status = bwsetspeed( channel, cons->speed );

	control = HW_READ( base, UART_LCRH_OFFSET );
	
	if( cons->fifo ){
		control |= FEN_MASK;
	} else {
		control &= ( ~FEN_MASK );
	}
	if( cons->dbl_stop ){
		control |= STP2_MASK;
	}
	
	HW_WRITE( base, UART_LCRH_OFFSET, control );

	ASSERT( status == ERR_NONE );

	/* Leave no garbage */
	console_drain( cons );
	
	return ERR_NONE;
}
Ejemplo n.º 2
0
int io_init() {
    iobuf_init( &otrain );
    iobuf_init( &oterm );

    bwsetspeed( COM1, 2400 ); 

    if ( bwsetfifo( COM1, OFF ) || bwsetfifo( COM2, OFF ) ){
        return -1;
    }
		
    TERM_FLAG = (int *)( UART2_BASE + UART_FLAG_OFFSET );
    TERM_DATA = (int *)( UART2_BASE + UART_DATA_OFFSET );
            
    TRAIN_FLAG = (int *)( UART1_BASE + UART_FLAG_OFFSET );
    TRAIN_DATA = (int *)( UART1_BASE + UART_DATA_OFFSET );
    
    return 0;
}