Exemplo n.º 1
0
void
do_reset(int argc, char *argv[])
{
    diag_printf("... Resetting.");
    CYGACC_CALL_IF_DELAY_US(2*100000);
    diag_printf("\n");
    CYGACC_CALL_IF_RESET();
    diag_printf("!! oops, RESET not working on this platform\n");
}
Exemplo n.º 2
0
void afterBist(void)
{
    unsigned int jumpers;
    unsigned int selftest;
    unsigned int bist;

    P4205_REG_READ(P4205_BOARD_CNTL_STATUS, P4205_JUMPER_STATUS_REG, jumpers);
    selftest = jumpers & P4205_SELFTEST_MODE_MASK;

    // Turn off Front Panel Leds
    P4205_SET_LED_STATE(0);

    // Display all errors detected during initialization on console
    printErrorLog();

    // If user flash erase jumper is ON, Erase User flash 
    if (jumpers & P4205_FLASH_BOOTPARM_RESTORE) 
    {
        extern void set_console_baud_rate(int);
        set_console_baud_rate(9600);

        diag_printf("Initializing Flash Defaults\n");
        argv[1] = "-i";
        argv[2] = "-v";
        argc = 3;
        do_flash_config(argc, argv);
    } 
    
    /* If BIST in progress */
    P4205_REG_READ(P4205_BOARD_CNTL_STATUS, P4205_BIST_REG, bist);
    if (bist & P4205_BIST_IN_PROGRESS)
    {
    }

    /* Run diagnostics continuously */
    if (selftest == P4205_RUN_CONTINUOUS_BIST)  
    {
       bist &= ~(P4205_BIST_WARM_START | P4205_BIST_IN_PROGRESS);
       P4205_REG_WRITE(P4205_BOARD_CNTL_STATUS, P4205_BIST_REG, bist);
       diag_printf("Diagnostic Only Mode, Resetting...\n");
       CYGACC_CALL_IF_DELAY_US(2*100000);
       CYGACC_CALL_IF_RESET();
    } 
    else
    {
       bist &= ~(P4205_BIST_IN_PROGRESS);
       P4205_REG_WRITE(P4205_BOARD_CNTL_STATUS, P4205_BIST_REG, bist);
    }

}
Exemplo n.º 3
0
static CYG_BYTE KeyboardAscii
(
	CYG_BYTE	scancode
)
{
    CYG_BYTE ascii = 0xFF;

    // Start by handling all shift/ctl keys:

    switch( scancode )
    {
    case 0x53:  // delete
        if (KBFlags & KBCtrl && KBFlags & KBAlt)
        {
            CYGACC_CALL_IF_RESET();
        }
        break;

    case 0xe0:
        KBFlags |= KBExtend;
        return 0xFF;

    case 0xfa:
        KBFlags |= KBAck;
        return 0xFF;

    case 0xfe:
        KBFlags |= KBResend;
        return 0xFF;

    case LSHIFT:
        KBFlags |= KBShiftL;
        return 0xFF;

    case LSHIFT | BREAK:
        KBFlags &= ~KBShiftL;
        return 0xFF;

    case RSHIFT:
        KBFlags |= KBShiftR;
        return 0xFF;

    case RSHIFT | BREAK:
        KBFlags &= ~KBShiftR;
        return 0xFF;

    case CTRL:
        if( KBFlags & KBExtend )
        {
            KBFlags |= KBCtrlR;
            KBFlags &= ~KBExtend;
        }
        else	KBFlags |= KBCtrlL;
        return 0xFF;

    case CTRL | BREAK:
        if( KBFlags & KBExtend )
        {
            KBFlags &= ~KBCtrlR;
            KBFlags &= ~KBExtend;
        }
        else	KBFlags &= ~KBCtrlL;
        return 0xFF;


    case ALT:
        if( KBFlags & KBExtend )
        {
            KBFlags |= KBAltR;
            KBFlags &= ~KBExtend;
        }
        else	KBFlags |= KBAltL;
        return 0xFF;

    case ALT | BREAK:
        if( KBFlags & KBExtend )
        {
            KBFlags &= ~KBAltR;
            KBFlags &= ~KBExtend;
        }
        else	KBFlags &= ~KBAltL;
        return 0xFF;

    case CAPS:
        KBFlags ^= KBCapsLock;
    case CAPS | BREAK:
        return 0xFF;

    case NUMS:
        KBFlags ^= KBNumLock;
    case NUMS | BREAK:
        return 0xFF;
    }

    // Clear Extend flag if set
    KBFlags &= ~KBExtend;

    // Ignore all other BREAK codes
    if( scancode & 0x80 ) return 0xFF;

    // Here the scancode is for something we can turn
    // into an ASCII value

    ascii = KBScanTable[scancode & 0x7F][KBIndexTab[KBFlags & KBIndex]];

    return ascii;

} /* KeyboardAscii */