mirror of
https://github.com/AsahiLinux/u-boot
synced 2024-11-15 01:17:39 +00:00
db41d65a97
At present panic() is in the vsprintf.h header file. That does not seem like an obvious choice for hang(), even though it relates to panic(). So let's put hang() in its own header. Signed-off-by: Simon Glass <sjg@chromium.org> [trini: Migrate a few more files] Signed-off-by: Tom Rini <trini@konsulko.com>
86 lines
1.6 KiB
C
86 lines
1.6 KiB
C
// 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 <hang.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;
|
|
}
|