GK SDK 源码库: XMIPCLinuxV100R005C00SPC030 (kernel/tools/open_source excluded)
This commit is contained in:
@@ -0,0 +1,85 @@
|
||||
// SPDX-License-Identifier: GPL-2.0+
|
||||
/*
|
||||
* JZ4780 common routines
|
||||
*
|
||||
* Copyright (c) 2013 Imagination Technologies
|
||||
* Author: Paul Burton <paul.burton@imgtec.com>
|
||||
*/
|
||||
|
||||
#include <config.h>
|
||||
#include <common.h>
|
||||
#include <cpu_func.h>
|
||||
#include <init.h>
|
||||
#include <asm/io.h>
|
||||
#include <asm/sections.h>
|
||||
#include <mach/jz4780.h>
|
||||
#include <mach/jz4780_dram.h>
|
||||
#include <mmc.h>
|
||||
#include <spl.h>
|
||||
|
||||
#ifdef CONFIG_SPL_BUILD
|
||||
/* Pointer to the global data structure for SPL */
|
||||
DECLARE_GLOBAL_DATA_PTR;
|
||||
gd_t gdata __attribute__ ((section(".bss")));
|
||||
|
||||
void board_init_f(ulong dummy)
|
||||
{
|
||||
typedef void __noreturn (*image_entry_noargs_t)(void);
|
||||
struct mmc *mmc;
|
||||
unsigned long count;
|
||||
struct image_header *header;
|
||||
int ret;
|
||||
|
||||
/* Set global data pointer */
|
||||
gd = &gdata;
|
||||
|
||||
timer_init();
|
||||
pll_init();
|
||||
sdram_init();
|
||||
enable_caches();
|
||||
|
||||
/* Clear the BSS */
|
||||
memset(__bss_start, 0, (char *)&__bss_end - __bss_start);
|
||||
|
||||
gd->flags |= GD_FLG_SPL_INIT;
|
||||
|
||||
ret = mmc_initialize(NULL);
|
||||
if (ret)
|
||||
hang();
|
||||
|
||||
mmc = find_mmc_device(BOOT_DEVICE_MMC1);
|
||||
if (ret)
|
||||
hang();
|
||||
|
||||
ret = mmc_init(mmc);
|
||||
if (ret)
|
||||
hang();
|
||||
|
||||
header = (struct image_header *)(CONFIG_SYS_TEXT_BASE -
|
||||
sizeof(struct image_header));
|
||||
|
||||
count = blk_dread(mmc_get_blk_desc(mmc),
|
||||
CONFIG_SYS_MMCSD_RAW_MODE_U_BOOT_SECTOR,
|
||||
0x800, header);
|
||||
if (count == 0)
|
||||
hang();
|
||||
|
||||
image_entry_noargs_t image_entry =
|
||||
(image_entry_noargs_t)CONFIG_SYS_TEXT_BASE;
|
||||
|
||||
image_entry();
|
||||
|
||||
hang();
|
||||
}
|
||||
#endif /* CONFIG_SPL_BUILD */
|
||||
|
||||
ulong board_get_usable_ram_top(ulong total_size)
|
||||
{
|
||||
return CONFIG_SYS_SDRAM_BASE + (256 * 1024 * 1024);
|
||||
}
|
||||
|
||||
int print_cpuinfo(void)
|
||||
{
|
||||
printf("CPU: Ingenic JZ4780\n");
|
||||
return 0;
|
||||
}
|
||||
Reference in New Issue
Block a user