VOID SetKitlMode(OAL_BLMENU_ITEM *pMenu)
{
    WCHAR key;
    UNREFERENCED_PARAMETER(pMenu);

    if ((g_bootCfg.kitlFlags & OAL_KITL_FLAGS_POLL) != 0) {
        OALLog(L" Set KITL to interrupt mode [y/-]: ");
    } else {
        OALLog(L" Set KITL to polled mode [y/-]: ");
    }    

    // Get key
    key = OALBLMenuReadKey(TRUE);
    OALLog(L"%c\r\n", key);

    if (key == L'y' || key == L'Y') {
        if ((g_bootCfg.kitlFlags & OAL_KITL_FLAGS_POLL) != 0) {
            g_bootCfg.kitlFlags &= ~OAL_KITL_FLAGS_POLL;
            OALLog(L" KITL set to interrupt mode\r\n");
        } else {
            g_bootCfg.kitlFlags |= OAL_KITL_FLAGS_POLL;
            OALLog(L" KITL set to polled mode\r\n");
        }            
    }
}
VOID SetMacAddress(OAL_BLMENU_ITEM *pMenu)
{
    DWORD dummy;
    UINT16 mac[3] = {0xFFFF, 0xFFFF, 0xFFFF};

#pragma warning(push)
#pragma warning(disable:4204 4221)
    // We're using OALBLMenuSetMacAddress outside of a menu, but it still requires 
    // a menu item input structure
    OAL_BLMENU_ITEM AM35xMacMenuItem = 
    {
        0, NULL, NULL,
        L"AM35x", mac, NULL
    };
    OAL_BLMENU_ITEM ExternalLanMacMenuItem = 
    {
        0, NULL, NULL,
        L"9311", mac, NULL
    };
#pragma warning(pop)

    UNREFERENCED_PARAMETER(pMenu);

	// Set Internal EMAC Mac
    OALLog(L"\r\n Set Internal EMAC (LAN9xxx) MAC Address:\r\n");   
	
	memcpy(mac,g_bootCfg.mac,sizeof(mac));

    OALBLMenuSetMacAddress(&AM35xMacMenuItem);
    
    // Make sure we don't come out of OALBLMenuSetMacAddress with the original 0xFFFF FFFF FFFF or with all zeros
    if (((mac[0]== 0xFFFF) && (mac[1] == 0xFFFF) && (mac[2] == 0xFFFF)) || ((mac[0]== 0x0) && (mac[1] == 0x0) && (mac[2] == 0x0)))
    {
        OALLog(L"\r\n   WARNING: MAC address not programmed!\r\n");
        return;
    }
        
   memcpy(g_bootCfg.mac,mac,sizeof(mac));

    if (!LAN911XFindController(OALPAtoUA((DWORD) BSP_LAN9311_REGS_PA),&dummy))
    {     
        return;
    }

	// Set Internal EMAC Mac
    OALLog(L"\r\n Set External Lan (SAMSC9311) MAC Address:\r\n");   
		
    memset(mac,0xFF,sizeof(mac));
    LAN911XGetMacAddress(OALPAtoUA((DWORD) BSP_LAN9311_REGS_PA),mac);

    OALBLMenuSetMacAddress(&ExternalLanMacMenuItem);
    
    // Make sure we don't come out of OALBLMenuSetMacAddress with the original 0xFFFF FFFF FFFF or with all zeros
    if (((mac[0]== 0xFFFF) && (mac[1] == 0xFFFF) && (mac[2] == 0xFFFF)) || ((mac[0]== 0x0) && (mac[1] == 0x0) && (mac[2] == 0x0)))
    {
        OALLog(L"\r\n   WARNING: MAC address not programmed!\r\n");
        return;
    }
    LAN911XSetMacAddress(OALPAtoUA((DWORD) BSP_LAN9311_REGS_PA),mac);  
}
VOID
SetKitlType(
    OAL_BLMENU_ITEM *pMenu
    )
{
    WCHAR key;
    UNREFERENCED_PARAMETER(pMenu);

    if ((g_bootCfg.kitlFlags & OAL_KITL_FLAGS_PASSIVE) != 0) 
        {
        OALLog(L" Set KITL to active mode [y/-]: ");
        } 
   else 
        {
        OALLog(L" Set KITL to passive mode [y/-]: ");
        }    

    // Get key
    key = OALBLMenuReadKey(TRUE);
    OALLog(L"%c\r\n", key);

    if (key == L'y' || key == L'Y') 
        {
        if ((g_bootCfg.kitlFlags & OAL_KITL_FLAGS_PASSIVE) != 0) 
            {
            g_bootCfg.kitlFlags &= ~OAL_KITL_FLAGS_PASSIVE;
            OALLog(L" KITL set to active mode\r\n");
            }
        else 
            {
            g_bootCfg.kitlFlags |= OAL_KITL_FLAGS_PASSIVE;
            OALLog(L" KITL set to passive mode\r\n");
            }            
        }
}
Пример #4
0
VOID BLMenu()
{
    UINT32 ud, delay;
    WCHAR key = 0;

    // First let user break to menu
    OALLog(L"Hit space to enter LPC32XX bootloader menu.\n\r");
	delay = OALGetTickCount() + (g_bootCfg.boot_to * 1000);
	ud = OALGetTickCount() - 1;
    while (delay > OALGetTickCount())
	{
		if (ud <= OALGetTickCount()) {
			OALLog(L".");
			ud = OALGetTickCount() + 1000;
		}

		key = OALBLMenuReadKey(FALSE);
		if (key == L' ') break;
	}
	OALLog(L"\r\n");
    
    if (key == L' ') {
        OALBLMenuShow(&g_menuRoot);
    }
}
VOID 
SetDeviceID(
    OAL_BLMENU_ITEM *pMenu
    )
{
    WCHAR  szInputLine[16];
    UNREFERENCED_PARAMETER(pMenu);

    OALLog(
        L" Current Device ID:  %d\r\n", g_bootCfg.deviceID
    );

    OALLog(L"\r\n New Device ID: ");

    if (OALBLMenuReadLine(szInputLine, dimof(szInputLine)) == 0) 
        {
        goto cleanUp;
        }

    // Get device ID
    g_bootCfg.deviceID = OALStringToUINT32(szInputLine);

cleanUp:
    return;
}
Пример #6
0
VOID EnableFlashNK(OAL_BLMENU_ITEM *pMenu)
{
    WCHAR key;

    UNREFERENCED_PARAMETER(pMenu);
    if (g_bootCfg.flashNKFlags & ENABLE_FLASH_NK) {
        OALLog(L" Disable Flashing NK.bin [y/-]: ");
    } else {
        OALLog(L" Enable Flashing NK.bin [y/-]: ");
    }    

    // Get key
    key = OALBLMenuReadKey(TRUE);
    OALLog(L"%c\r\n", key);

    if (key == L'y' || key == L'Y') {
        if (g_bootCfg.flashNKFlags & ENABLE_FLASH_NK) 
		{
            g_bootCfg.flashNKFlags &= ~ENABLE_FLASH_NK;
            OALLog(L" Flashing NK.bin is disabled\r\n");
        }
		else 
		{
            g_bootCfg.flashNKFlags |= ENABLE_FLASH_NK;
            OALLog(L" Flashing NK.bin is enabled\r\n");
        }    
    }

}
Пример #7
0
VOID BLWriteFlashXLDR(OAL_BLMENU_ITEM *pMenu)
{
	OAL_KITL_TYPE bkType;
	wcscpy(g_bootCfg.filename, L"xldrnand.nb0");

	if (BL_ERROR == BLSDCardDownload(g_bootCfg.filename))
	{
		OALLog(TEXT("SD boot failed to open file\r\n"));
		goto CleanUp;
	}
	
	bkType = g_eboot.type;
	g_eboot.bootDeviceType = BOOT_SDCARD_TYPE;
	if (FALSE == OEMReadData(IMAGE_XLDR_CODE_SIZE, (UCHAR *) (IMAGE_WINCE_CODE_CA)))
	{
		OALLog(TEXT("SD boot failed to read file\r\n"));
		return;
	}
	g_eboot.bootDeviceType = bkType;

	
	g_eboot.type = DOWNLOAD_TYPE_XLDR;
	
	if (OEMWriteFlash(IMAGE_WINCE_CODE_CA, IMAGE_XLDR_CODE_SIZE))
		OALLog(L"BLWriteFlashXLDR success..\n");
	else
		OALLog(L"BLWriteFlashXLDR fail..\n");
	
CleanUp:
	return;
}
VOID SetDisplayResolution(OAL_BLMENU_ITEM *pMenu)
{
    WCHAR key;
    UINT32 i;

    UNREFERENCED_PARAMETER(pMenu);
    
    OALBLMenuHeader(L"Select Display Resolution");

    for (i=0; i<OMAP_RES_INVALID; i++)
    {
        OALLog(L" [%d] %s\r\n", i+1 , dispResMenu[i].resName);
    }
    OALLog(L" [0] Exit and Continue\r\n");

    OALLog(L"\r\n Selection (actual %s): ", dispResMenu[g_bootCfg.displayRes].resName);
    // Get key
    do {
        key = OALBLMenuReadKey(TRUE);
    } while (key < L'0' || key > L'0' + i);    
    OALLog(L"%c\r\n", key);
    
    // If user select exit don't change device
    if (key == L'0') return;

    g_bootCfg.displayRes = (key - L'0' - 1);

}
VOID SetRetailMsgMode(OAL_BLMENU_ITEM *pMenu)
{
    WCHAR key;

    UNREFERENCED_PARAMETER(pMenu);

    if (g_bootCfg.oalFlags & BOOT_CFG_OAL_FLAGS_RETAILMSG_ENABLE) {
        OALLog(L" Disable OAL Retail Messages [y/-]: ");
    } else {
        OALLog(L" Enable OAL Retail Messages [y/-]: ");
    }    

    // Get key
    key = OALBLMenuReadKey(TRUE);
    OALLog(L"%c\r\n", key);

    if (key == L'y' || key == L'Y') {
        if (g_bootCfg.oalFlags & BOOT_CFG_OAL_FLAGS_RETAILMSG_ENABLE) 
		{
            g_bootCfg.oalFlags &= ~BOOT_CFG_OAL_FLAGS_RETAILMSG_ENABLE;
            OALLog(L" OAL Retail Messages disabled\r\n");
        }
		else 
		{
            g_bootCfg.oalFlags |= BOOT_CFG_OAL_FLAGS_RETAILMSG_ENABLE;
            OALLog(L" OAL Retail Messages enabled\r\n");
        }    
    }
}
VOID SetOPPmode(OAL_BLMENU_ITEM *pMenu)
{
    WCHAR key;
    UINT32 i;
    UINT32 len = AM35x_OPP_NUM;
    OPP_MODE_MENU * pOppMenu = oppModeMenu;

    UNREFERENCED_PARAMETER(pMenu);
    
    OALBLMenuHeader(L"Select OPP Mode");
    
    for (i=0; i<len; i++)
    {
        OALLog(L" [%d] %s\r\n", i+1 , pOppMenu[i].oppModeName);
    }
    OALLog(L" [0] Exit and Continue\r\n");

    OALLog(L"\r\n Selection (actual [%s]): ", pOppMenu[g_bootCfg.opp_mode].oppModeName);
    
    // Get key
    do {
        key = OALBLMenuReadKey(TRUE);
    } while (key < L'0' || key > L'0' + i);    
    OALLog(L"%c\r\n", key);
    
    // If user select exit don't change device
    if (key == L'0') return;

    g_bootCfg.opp_mode = (key - L'0' -1);

}
Пример #11
0
VOID OALBLMenuSetDeviceId(OAL_BLMENU_ITEM * pMenu)
{
    WCHAR deviceId[OAL_KITL_ID_SIZE];
    LPSTR pDeviceId = pMenu->pParam1;
    UINT i;

    memset(deviceId, 0, sizeof(deviceId));
    
    OALLog(L" Enter Device Id (* = auto, actual '%S'): ", DeviceId(pDeviceId));
    
    // Read input line
    if (OALBLMenuReadLine(deviceId, dimof(deviceId)) == 0) goto cleanUp;

    // Convert unicode to one-byte character string
    if (deviceId[0] == L'*' && deviceId[1] == L'\0') {
        memset(pDeviceId, 0, OAL_KITL_ID_SIZE);
    } else {
        for (i = 0; i < OAL_KITL_ID_SIZE; i++) {
            pDeviceId[i] = (UCHAR)deviceId[i];
        }
    }        

    OALLog(L" Device Id set to '%S'\r\n", DeviceId(pDeviceId));       
    
cleanUp: ;
}
Пример #12
0
VOID SaveSettings(OAL_BLMENU_ITEM *pMenu)
{
    WCHAR key;

    OALLog(L" Do you want save current settings [-/y]? ");

    // Get key
    key = OALBLMenuReadKey(TRUE);
    OALLog(L"%c\r\n", key);

    // Depending on result
    if (key != L'y' && key != L'Y') goto cleanUp;

    if (BLWriteBootCfg(&g_bootCfg)) 
	{
        OALLog(L" Current settings has been saved\r\n");
    }
	else 
	{        
        OALLog(L"ERROR: Settings save failed!\r\n");
    }

cleanUp:
    return;
}
Пример #13
0
VOID ShowSettings(OAL_BLMENU_ITEM *pMenu)
{
    OALLog(L"\r\n Main:\r\n");

	if(g_bootCfg.bootDevLoc.LogicalLoc == SD_BASE){
        OALLog(
            L"  Boot device:   %s(%S)\r\n",
            OALKitlDeviceName(&g_bootCfg.bootDevLoc, g_bootDevices), g_bootCfg.binName
            );
    }
    else{
        OALLog(
            L"  Boot device:   %s\r\n",
            OALKitlDeviceName(&g_bootCfg.bootDevLoc, g_bootDevices)
            );
    }
    OALLog(
        L"  Debug device:  %s\r\n",
        OALKitlDeviceName(&g_bootCfg.kitlDevLoc, g_kitlDevices)
    );

    OALLog(L"  Boot timeout:  %d seconds\r\n", g_bootCfg.boot_to);

	ShowNetworkSettings(pMenu);
}
BOOL
WriteFlashNK(
    UINT32 address,
    UINT32 size
    )
{
	BOOL rc = FALSE;
	UCHAR *pData;
	void *pBase = OALPAtoVA(g_ulFlashBase, FALSE);
	void *pStart = (void *)((UINT32)pBase + IMAGE_WINCE_NOR_OFFSET);

	OALLog(L"\r\nWriting NK image to flash memory\r\n");

	// Get data location
	pData = OEMMapMemAddr(address, address);

	// Verify that we get CE image
	if (!VerifyImage(pData, NULL))
	{
		OALMSG(OAL_ERROR, (L"ERROR: OEMWriteFlash: NK image signature not found\r\n"));
		goto cleanUp;
	}

	// Unlock blocks
	if (!OALFlashLock(pBase, pStart, size, FALSE))
	{
		OALMSG(OAL_ERROR, (L"ERROR: OEMWriteFlash: NK blocks could not be unlocked\r\n"));
		goto cleanUp;
	}

	// Erase blocks
	if (!OALFlashErase(pBase, pStart, size))
	{
		OALMSG(OAL_ERROR, (L"ERROR: OEMWriteFlash: NK blocks could not be erased\r\n"));
		goto cleanUp;
	}

	// Write blocks
	if (!OALFlashWrite(pBase, pStart, size, pData))
	{
		OALMSG(OAL_ERROR, (L"ERROR: OEMWriteFlash: NK blocks could not be written\r\n"));
		goto cleanUp;
	}

	OALLog(L"NK image written\r\n");

	// Change boot device to NOR
	g_bootCfg.bootDevLoc.IfcType = Internal;
	g_bootCfg.bootDevLoc.LogicalLoc = BSP_NOR_REGS_PA;

	// Done
	rc = TRUE;

cleanUp:
	return rc;
}
VOID ShowSDCardSettings(OAL_BLMENU_ITEM *pMenu)
{
    UNREFERENCED_PARAMETER(pMenu);

    OALLog(L"\r\n SDCard:\r\n");
    OALLog(
        L"  Filename:      \"%s\"\r\n", g_bootCfg.filename
    );
//  OALBLMenuReadKey(TRUE);
}
Пример #16
0
VOID SetBadBlock(OAL_BLMENU_ITEM *pMenu)
{
    HANDLE hFMD = NULL;
    PCI_REG_INFO regInfo;
    FlashInfo flashInfo;
    BLOCK_ID blockId;
    WCHAR szInputLine[16];

    UNREFERENCED_PARAMETER(pMenu);

    // Open FMD
    regInfo.MemBase.Reg[0] = g_ulFlashBase;
    hFMD = FMD_Init(NULL, &regInfo, NULL);
    if (hFMD == NULL) 
        {
        OALLog(L" Oops, can't open FMD driver\r\n");
        goto cleanUp;
        }

    if (!FMD_GetInfo(&flashInfo)) 
        {
        OALLog(L" Oops, can't get flash geometry info\r\n");
        goto cleanUp;
        }

    OALLog(L"\r\n Block Number: ");

    if (OALBLMenuReadLine(szInputLine, dimof(szInputLine)) == 0) 
        {
        goto cleanUp;
        }

    // Get sector number
    blockId = OALStringToUINT32(szInputLine);

    // Check sector number
    if (blockId >= flashInfo.dwNumBlocks) 
        {
        OALLog(L" Oops, too big block number\r\n");
        goto cleanUp;
        }

    FMD_SetBlockStatus(blockId, BLOCK_STATUS_BAD);

    OALLog(L"\r\n Done\r\n");

cleanUp:
    if (hFMD != NULL) 
        {
        FMD_Deinit(hFMD);
        }

    return;
}
VOID EnterSDCardFilename(OAL_BLMENU_ITEM *pMenu)
{
    UNREFERENCED_PARAMETER(pMenu);

    OALLog(L"\r\n Type new filename (8.3 format) :");
    OALBLMenuReadLine(g_bootCfg.filename, dimof(g_bootCfg.filename));
}
Пример #18
0
///////////////////////////////////////////////////////////////////////////////
// Required OEM IPL routines.
///////////////////////////////////////////////////////////////////////////////
// --- These are used by iplcommon (start) ---
BOOLEAN OEMIPLInit(void)
{

    // Initialize the UART.
    //
    OEMInitDebugSerial();

    OALLog(L"\r\nMicrosoft Windows CE IPL for SMDK6410 Ref board\r\n");

    // Set the flash address
    g_ulFlashBase = NAND_FLASH_START_UA;

    // Messaging handler callback.
    //
    g_pfnMessageHandler = OEMMessageHandler;

    // Check if Current ARM speed is not matched to Target Arm speed
    // then To get speed up, set Voltage
#if (APLL_CLK == CLK_1332MHz)
    LTC3714_Init();
    LTC3714_VoltageSet(1,1200,100);     // ARM
    LTC3714_VoltageSet(2,1300,100);     // INT
#elif (APLL_CLK == CLK_800MHz)
    LTC3714_Init();
    LTC3714_VoltageSet(1,1300,100);     // ARM
    LTC3714_VoltageSet(2,1200,100);     // INT
#endif

    return(TRUE);
}
Пример #19
0
VOID ChangeBootTo(OAL_BLMENU_ITEM *pMenu)
{
    WCHAR buf[MAX_PATH];

	OALLog(L"Enter new boot timeout (Seconds): ");
    if(OALBLMenuReadLine(buf, dimof(buf))){
		g_bootCfg.boot_to = decStrToVal(buf);
	}
}
Пример #20
0
VOID OALBLMenuEnable(OAL_BLMENU_ITEM *pMenu)
{
    LPCWSTR title = pMenu->pParam1;
    UINT32 *pFlags = pMenu->pParam2;
    UINT32 mask = (UINT32)pMenu->pParam3;
    BOOL flag;
    WCHAR key;

    // First check input parameter   
    if (title == NULL || pFlags == NULL) {
        OALMSG(OAL_ERROR, (L"ERROR: OALBLMenuEnable: Invalid parameter\r\n"));
        goto cleanUp;
    }
    if (mask == 0) mask = 0xFFFF;

    flag = (*pFlags & mask) != 0;
    
    OALLog(
        L" %s %s (actually %s) [y/-]: ", flag ? L"Disable" : L"Enable",
        title, flag ? L"enabled" : L"disabled"
    );

    // Get key
    key = OALBLMenuReadKey(TRUE);
    OALLog(L"%c\r\n", key);

    if (key == L'y' || key == L'Y') {
        flag = !flag;
        OALLog(L" %s %s\r\n", title, flag ? L"enabled" : L"disabled");
    } else {
        OALLog(
            L" %s stays %s\r\n", title, flag ? L"enabled" : L"disabled"
        );
    }

    // Save value
    if (flag) {
        *pFlags |= mask;
    } else {
        *pFlags &= ~mask;
    }

cleanUp:;
}
Пример #21
0
VOID OALBLMenuSetMacAddress(OAL_BLMENU_ITEM *pMenu)
{
    LPCWSTR title = pMenu->pParam1;
    UINT16 *pMac = pMenu->pParam2;
    UINT16 mac[3];
    WCHAR buffer[18];

    // First check input parameters    
    if (title == NULL || pMac == NULL) {
        OALMSG(OAL_ERROR, (
            L"ERROR: OALBLMenuSetMacAddress: Invalid parameter\r\n"
        ));
        goto cleanUp;
    }

    // Get actual setting
    mac[0] = pMac[0];
    mac[1] = pMac[1];
    mac[2] = pMac[2];

    // Print prompt
    OALLog(
        L" Enter %s MAC address (actual %s): ", title, OALKitlMACtoString(mac)
    );
    
    // Read input line
    if (OALBLMenuReadLine(buffer, dimof(buffer)) == 0) goto cleanUp;

    // Convert string to MAC address
    if (!OALKitlStringToMAC(buffer, mac)) {
        OALLog(L" '%s' isn't valid MAC address\r\n", buffer);
        goto cleanUp;
    }

    // Print final MAC address
    OALLog(L" %s MAC address set to %s\r\n", title, OALKitlMACtoString(mac));        

    // Save new setting
    pMac[0] = mac[0];
    pMac[1] = mac[1];
    pMac[2] = mac[2];
    
cleanUp:;
}
Пример #22
0
VOID FormatFlash(OAL_BLMENU_ITEM *pMenu)
{
    WCHAR key;
    
    UNREFERENCED_PARAMETER(pMenu);

    OALLog(L" Do you want to format unreserved blocks [-/y]? ");

    // Get key
    key = OALBLMenuReadKey(TRUE);
    OALLog(L"%c\r\n", key);

    // Depending on result
    if (key != L'y' && key != L'Y') goto cleanUp;

    BLConfigureFlashPartitions(TRUE);
    
cleanUp:    
    
    return;
}
Пример #23
0
VOID OALBLMenuShow(OAL_BLMENU_ITEM *pMenu)
{
    LPCWSTR title = pMenu->pParam1;
    OAL_BLMENU_ITEM *aMenu = pMenu->pParam2, 
                    *pItem;
    WCHAR key;

    while (TRUE) 
    {
        OALBLMenuHeader(L"%s", title);

        // Print menu items
        for (pItem = aMenu; pItem->key != 0; pItem++) {
            OALLog(L" [%c] %s\r\n", pItem->key, pItem->text);
        }
        OALLog(L"\r\n Selection: ");

        while (TRUE)
        {
            // Get key
            key = OALBLMenuReadKey(TRUE);
            // Look for key in menu
            for (pItem = aMenu; pItem->key != 0; pItem++) {
                if (pItem->key == key) break;
            }
            // If we find it, break loop
            if (pItem->key != 0) break;
        }

        // Print out selection character
        OALLog(L"%c\r\n", key);
        
        // When action is NULL return back to parent menu
        if (pItem->pfnAction == NULL) break;
        
        // Else call menu action
        pItem->pfnAction(pItem);
    } 

}
Пример #24
0
VOID OALBLMenuSetIpMask(OAL_BLMENU_ITEM *pMenu)
{
    LPCWSTR title = pMenu->pParam1;
    UINT32 *pIp = pMenu->pParam2;
    UINT32 ip;
    WCHAR buffer[16];

    // First check input parameters    
    if (title == NULL || pIp == NULL) {
        OALMSG(OAL_ERROR, (
            L"ERROR: OALBLMenuSetIpMask: Invalid parameters\r\n"
        ));
        goto cleanUp;
    }

    // Get actual value
    ip = *pIp;

    // Print prompt
    OALLog(L" Enter %s IP mask (actual %s): ", title, OALKitlIPtoString(ip));

    // Read input line
    if (OALBLMenuReadLine(buffer, dimof(buffer)) == 0) goto cleanUp;

    // Convert string to MAC address
    ip = OALKitlStringToIP(buffer);
    if (ip == 0) {
        OALLog(L" '%s' isn't valid IP mask\r\n", buffer);
        goto cleanUp;
    }

    // Print final IP mask
    OALLog(L" %s IP mask set to %s\r\n", title, OALKitlIPtoString(ip));

    // Save new setting
    *pIp = ip;
    
cleanUp:;
}
Пример #25
0
UINT32 OALBLMenuReadLine(LPWSTR szBuffer, size_t CharCount)
{
    UINT32 count;
    WCHAR key;
    
    count = 0;
    while (count < CharCount) {
        key = OALBLMenuReadKey(TRUE);
       if (key == L'\r' || key == L'\n') {
          OALLog(L"\r\n");
          break;
       } if (key == L'\b' && count > 0) {
          OALLog(L"\b \b");
          count--;
       } else if (key >= L' ' && key < 128 && count < (CharCount - 1)) {
          szBuffer[count++] = key;
          OALLog(L"%c", key);
       } 
    }
    szBuffer[count] = '\0';
    return count;
    
}
Пример #26
0
static VOID SetECCType(OAL_BLMENU_ITEM *pMenu)
{
    WCHAR key;
    UNREFERENCED_PARAMETER(pMenu);
    OALLog(L" This command is used to temporarily changing ECC mode in NK.bin, it is for test purpose only! \r\n");
    OALLog(L" Select ECC mode [0(Hamming 1bit)/1(BCH 4bit)/2(BCH 8bit)]: ");

    // Get key
    key = OALBLMenuReadKey(TRUE);
    OALLog(L"%c\r\n", key);

    if (key == L'0' || key == L'1' || key == L'2')
    {
        g_bootCfg.ECCtype = (UCHAR)(key - '0');
    }
    else 
    {
        g_bootCfg.ECCtype = 0;
        OALLog(L" Invalid ECC mode, set ECC mode as Hamming 1bit\r\n");
    }    
    g_ecctype = g_bootCfg.ECCtype;
	
}
Пример #27
0
//------------------------------------------------------------------------------
VOID ChangeBaud(OAL_BLMENU_ITEM *pMenu)
{
    WCHAR key;
	BOOL bu = FALSE;

	while (bu == FALSE)
	{
		OALLog(L" 1: 115.2K\r\n");
		OALLog(L" 2: 57600\r\n");
		OALLog(L" 3: 38400\r\n");
		OALLog(L" 4: 19200\r\n");
		OALLog(L" 5: 9600\r\n");
		OALLog(L"Select a new baud rate: ");
	    key = OALBLMenuReadKey(TRUE);
		OALLog(L"\r\n");

		switch (key)
		{
			case '1':
				g_bootCfg.baudRate = 115200;
				bu = TRUE;
				break;

			case '2':
				g_bootCfg.baudRate = 57600;
				bu = TRUE;
				break;

			case '3':
				g_bootCfg.baudRate = 38400;
				bu = TRUE;
				break;

			case '4':
				g_bootCfg.baudRate = 19200;
				bu = TRUE;
				break;

			case '5':
				g_bootCfg.baudRate = 9600;
				bu = TRUE;
				break;

			default:
				break;
		}
	}

	sport_update_rate(g_bootCfg.baudRate);
}
Пример #28
0
VOID SelectBootDevice(OAL_BLMENU_ITEM *pMenu){
    int i;
    WCHAR buf[MAX_PATH];

    OALBLMenuSelectDevice(pMenu);

	if(g_bootCfg.bootDevLoc.LogicalLoc == SD_BASE){
        // let user select image name
        OALLog(L"Enter image name(actual '%S'): ", g_bootCfg.binName);
        if(OALBLMenuReadLine(buf, dimof(buf))){
            for(i = 0; buf[i] != 0; ++i){
                g_bootCfg.binName[i] = (CHAR)buf[i];
            }
        }
    }
}
Пример #29
0
VOID ShowNetworkSettings(OAL_BLMENU_ITEM *pMenu)
{
    OALLog(L"\r\n Network:\r\n");
    OALLog(
        L"  KITL state:    %s\r\n",
        (g_bootCfg.kitlFlags & OAL_KITL_FLAGS_ENABLED) ? L"enabled" : L"disabled"
    );
    OALLog(
        L"  KITL mode:     %s\r\n",
        (g_bootCfg.kitlFlags & OAL_KITL_FLAGS_POLL) ? L"poll" : L"interrupt"
    );
    OALLog(
        L"  DHCP:          %s\r\n",
        (g_bootCfg.kitlFlags & OAL_KITL_FLAGS_DHCP) ? L"enabled" : L"disabled"
    );
    OALLog(L"  IP address:    %s\r\n", OALKitlIPtoString(g_bootCfg.ipAddress));
    OALLog(L"  IP mask:       %s\r\n", OALKitlIPtoString(g_bootCfg.ipMask));
    OALLog(L"  IP router:     %s\r\n", OALKitlIPtoString(g_bootCfg.ipRoute));
    OALLog(
        L"  VMINI:         %s\r\n",
        (g_bootCfg.kitlFlags & OAL_KITL_FLAGS_VMINI) ? L"enabled" : L"disabled"
    );
}
Пример #30
0
VOID OALBLMenuActivate(UINT32 delay, OAL_BLMENU_ITEM *pMenu)
{
    UINT32 time;
    WCHAR key = 0;
    
    // First let user break to menu
    while (delay > 0 && key != L' ') {
       OALLog(L"Hit space to enter configuration menu %d...\r\n", delay);
       time = OALGetTickCount();
       while ((OALGetTickCount() - time) < 1000) {
          if ((key = OALBLMenuReadKey(FALSE)) == L' ') break;
       }
       delay--;
    }
    
    if (key == L' ') {
#ifdef OAL_BLMENU_PCI
        OALPCIConfig(0, 0, 0, 0, 0, 0, NULL);
#endif
        OALBLMenuShow(pMenu);
    }        
}