12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485 |
- // 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;
- }
|