52 lines
1.5 KiB
C
52 lines
1.5 KiB
C
#include <common.h>
|
|
#include <spare_head.h>
|
|
|
|
|
|
#ifdef CFG_BOOT0_LOAD_ISPPARM
|
|
/*
|
|
* CFG_BOOT0_LOAD_FLASH=y
|
|
* CFG_BOOT0_LOAD_ISPPARM=y
|
|
* CFG_ISPPARAM_LOAD_ADDR=0x43BFFE00
|
|
* CFG_ISPPARAM_SIZE=0x8 #byte
|
|
* CFG_SPINOR_ISPPARAM_OFFSET=CFG_SPINOR_UBOOT_OFFSET - 16
|
|
*/
|
|
#ifdef CFG_SUNXI_SPINOR
|
|
#if !defined(CFG_ISPPARAM_LOAD_ADDR) || !defined(CFG_ISPPARAM_SIZE) || \
|
|
!defined(CFG_SPINOR_ISPPARAM_OFFSET)
|
|
#error CFG_ISPPARAM_LOAD_ADDR CFG_ISPPARAM_SIZE CFG_ISPPARAM_SIZE \
|
|
CFG_SPINOR_ISPPARAM_OFFSET required for load ispparm
|
|
#endif
|
|
|
|
#define ISP_PARAM_OFFSET CFG_SPINOR_ISPPARAM_OFFSET
|
|
#endif /* CFG_SUNXI_SPINOR */
|
|
|
|
#ifdef CFG_SUNXI_SDMMC
|
|
#if !defined(CFG_ISPPARAM_LOAD_ADDR) || !defined(CFG_ISPPARAM_SIZE) || \
|
|
!defined(CFG_MMC_ISPPARAM_OFFSET)
|
|
#error CFG_ISPPARAM_LOAD_ADDR CFG_ISPPARAM_SIZE CFG_ISPPARAM_SIZE \
|
|
CFG_MMC_ISPPARAM_OFFSET required for load ispparm
|
|
#endif
|
|
|
|
#define ISP_PARAM_OFFSET CFG_MMC_ISPPARAM_OFFSET
|
|
#endif /* CFG_SUNXI_SDMMC */
|
|
|
|
#if !defined(CFG_SUNXI_SPINOR) && \
|
|
!defined(CFG_SUNXI_SDMMC)
|
|
#error Only supports mmc and nor
|
|
#endif
|
|
|
|
|
|
int load_isp_param(int (*flash_read)(uint, uint, void *))
|
|
{
|
|
int load_flash_success = -1;
|
|
|
|
boot_info("from_flash = 0x%x, isp parm size = 0x%x,addr = 0x%x\n",
|
|
ISP_PARAM_OFFSET, CFG_ISPPARAM_SIZE,
|
|
(void *)(phys_addr_t)CFG_ISPPARAM_LOAD_ADDR);
|
|
load_flash_success =
|
|
flash_read(ISP_PARAM_OFFSET, CFG_ISPPARAM_SIZE,
|
|
(void *)(phys_addr_t)CFG_ISPPARAM_LOAD_ADDR);
|
|
|
|
return load_flash_success;
|
|
}
|
|
#endif |