⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 imgcfg.c

📁 Freescale ARM11系列CPU MX31的WINCE 5.0下的BSP
💻 C
字号:
//
// Copyright (c) Microsoft Corporation.  All rights reserved.
//
//
// Use of this source code is subject to the terms of the Microsoft end-user
// license agreement (EULA) under which you licensed this SOFTWARE PRODUCT.
// If you did not accept the terms of the EULA, you are not authorized to use
// this source code. For a copy of the EULA, please see the LICENSE.RTF on your
// install media.
//

#ifdef PLAT_PMC

#include <bsp.h>
#include <pmc_loader.h>

//------------------------------------------------------------------------------
//
//  Function:  OALImgCfgQuery
//
//  This function is called from other OAL modules to return information from
//  image_cfg.h, that is, to return information about the image memory layout.
//  Note: if image_cfg.h is defined similarly to the sample BSP, this code should
//  be useable unchanged.
//

DWORD OALImgCfgQuery(DWORD dwRegion, DWORD dwInfo)
{
    DWORD dwData = 0;

    OALMSG(OAL_ARGS&&OAL_FUNC, (L"+OALImgCfgQuery(%d,%d)\r\n", dwRegion, dwInfo));

    // Depending on required args
    switch (dwRegion)
	{
    case OAL_IMGCFG_QUERY_BSPARGS:
		switch (dwInfo)
		{
		case OAL_IMGCFG_QUERY_START:  dwData = IMAGE_SHARE_ARGS_RAM_START;  break;
		case OAL_IMGCFG_QUERY_SIZE:   dwData = IMAGE_SHARE_ARGS_RAM_SIZE;   break;
		case OAL_IMGCFG_QUERY_OFFSET: dwData = IMAGE_SHARE_ARGS_RAM_OFFSET; break;
		}
        break;

    case OAL_IMGCFG_QUERY_BLDRIMAGE_RAM:
		switch (dwInfo)
		{
		case OAL_IMGCFG_QUERY_START:  dwData = IMAGE_BOOT_BLDRIMAGE_RAM_START;  break;
		case OAL_IMGCFG_QUERY_SIZE:   dwData = IMAGE_BOOT_BLDRIMAGE_SIZE;       break;
		case OAL_IMGCFG_QUERY_OFFSET: dwData = IMAGE_BOOT_BLDRIMAGE_RAM_OFFSET; break;
		}
        break;

    case OAL_IMGCFG_QUERY_NKIMAGE_RAM:
		switch (dwInfo)
		{
		case OAL_IMGCFG_QUERY_START:  dwData = IMAGE_WINCE_NK_RAM_START;  break;
		// Autosize... case OAL_IMGCFG_QUERY_SIZE:   dwData = ??; break;
		case OAL_IMGCFG_QUERY_OFFSET: dwData = IMAGE_WINCE_NK_RAM_OFFSET; break;
		}
        break;

    case OAL_IMGCFG_QUERY_BOOT_FLASH:
		switch (dwInfo)
		{
		case OAL_IMGCFG_QUERY_START:  dwData = IMAGE_BOOT_NOR_PA_START; break;
		case OAL_IMGCFG_QUERY_SIZE:   dwData = 2 * 1024 * 1024 ;        break; // TODO: Is this defined somewhere?
		case OAL_IMGCFG_QUERY_OFFSET: dwData = 0; break;
		}
        break;

    case OAL_IMGCFG_QUERY_BLDRIMAGE_FLASH:
		switch (dwInfo)
		{
		case OAL_IMGCFG_QUERY_START:  dwData = IMAGE_BOOT_BLDRIMAGE_FLASH_START; break;
		case OAL_IMGCFG_QUERY_SIZE:   dwData = IMAGE_BOOT_BLDRIMAGE_SIZE;        break;
		case OAL_IMGCFG_QUERY_OFFSET: dwData = 0; break;
		}
        break;

    case PMC_IMGCFG_QUERY_RECOVERY_RAM:
		switch (dwInfo)
		{
		case OAL_IMGCFG_QUERY_START:  dwData = IMAGE_WINCE_RECOVERY_RAM_START;  break;
		case OAL_IMGCFG_QUERY_SIZE:   dwData = IMAGE_RECOVERY_SIZE;             break;
		case OAL_IMGCFG_QUERY_OFFSET: dwData = IMAGE_WINCE_RECOVERY_RAM_OFFSET; break;
		}
        break;

    case PMC_IMGCFG_QUERY_RAMIMG_RAM:
		switch (dwInfo)
		{
		case OAL_IMGCFG_QUERY_START:  dwData = IMAGE_SHARE_RAMIMG_RAM_START;    break;
        // TODO: No size given...case OAL_IMGCFG_QUERY_SIZE:   dwData = ??; break;
		case OAL_IMGCFG_QUERY_OFFSET: dwData = IMAGE_SHARE_RAMIMG_RAM_OFFSET; break;
		}
        break;

    case PMC_IMGCFG_QUERY_RECOVERY_FLASH:
		switch (dwInfo)
		{
		case OAL_IMGCFG_QUERY_START:  dwData = IMAGE_RECOVERY_FLASH_START;  break;
		case OAL_IMGCFG_QUERY_SIZE:   dwData = IMAGE_RECOVERY_SIZE;         break;
		case OAL_IMGCFG_QUERY_OFFSET: dwData = IMAGE_RECOVERY_FLASH_OFFSET; break;
		}
        break;

    case PMC_IMGCFG_QUERY_DRM_FLASH:
		switch (dwInfo)
		{
		case OAL_IMGCFG_QUERY_START:  dwData = IMAGE_WINCE_DRM_FLASH_START;  break;
		case OAL_IMGCFG_QUERY_SIZE:   dwData = IMAGE_WINCE_DRM_FLASH_SIZE;   break;
		case OAL_IMGCFG_QUERY_OFFSET: dwData = IMAGE_WINCE_DRM_FLASH_OFFSET; break;
		}
        break;

    case PMC_IMGCFG_QUERY_CONFIG_FLASH:
		switch (dwInfo)
		{
		case OAL_IMGCFG_QUERY_START:  dwData = IMAGE_WINCE_CONFIG_FLASH_START;  break;
		case OAL_IMGCFG_QUERY_SIZE:   dwData = IMAGE_WINCE_CONFIG_FLASH_SIZE;   break;
		case OAL_IMGCFG_QUERY_OFFSET: dwData = IMAGE_WINCE_CONFIG_FLASH_OFFSET; break;
		}
        break;
    }

    OALMSG(OAL_ARGS&&OAL_FUNC, (L"-OALImgCfgQuery(dwData = 0x%08x)\r\n", dwData));
    return dwData;
}

//------------------------------------------------------------------------------

#endif // PLAT_PMC

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -