2014-06-23 05:40:39 +02:00
|
|
|
/*
|
|
|
|
* This file is part of the coreboot project.
|
|
|
|
*
|
|
|
|
* Copyright 2014 Rockchip Inc.
|
|
|
|
*
|
|
|
|
* This program is free software; you can redistribute it and/or modify
|
|
|
|
* it under the terms of the GNU General Public License as published by
|
|
|
|
* the Free Software Foundation; version 2 of the License.
|
|
|
|
*
|
|
|
|
* This program is distributed in the hope that it will be useful,
|
|
|
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
|
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
|
|
* GNU General Public License for more details.
|
|
|
|
*
|
|
|
|
* You should have received a copy of the GNU General Public License
|
|
|
|
* along with this program; if not, write to the Free Software
|
|
|
|
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
|
|
|
|
*/
|
|
|
|
|
2014-10-16 03:50:45 +02:00
|
|
|
#include <arch/cache.h>
|
2014-08-26 11:31:28 +02:00
|
|
|
#include <arch/io.h>
|
2014-06-23 05:40:39 +02:00
|
|
|
#include <bootblock_common.h>
|
2014-09-29 22:37:51 +02:00
|
|
|
#include <console/console.h>
|
2014-10-20 22:14:55 +02:00
|
|
|
#include <soc/addressmap.h>
|
|
|
|
#include <soc/clock.h>
|
|
|
|
#include <soc/grf.h>
|
|
|
|
#include <soc/timer.h>
|
2014-10-16 03:50:45 +02:00
|
|
|
#include <symbols.h>
|
2014-06-23 05:40:39 +02:00
|
|
|
|
2014-11-25 21:55:20 +01:00
|
|
|
static void bootblock_soc_init(void)
|
2014-06-23 05:40:39 +02:00
|
|
|
{
|
2014-09-29 22:37:51 +02:00
|
|
|
rkclk_init();
|
2014-10-16 03:50:45 +02:00
|
|
|
|
|
|
|
mmu_init();
|
|
|
|
/* Start with a clean slate. */
|
|
|
|
mmu_config_range(0, 4096, DCACHE_OFF);
|
|
|
|
/* SRAM is tightly wedged between registers, need to use subtables. Map
|
|
|
|
* write-through as equivalent for non-cacheable without XN on A17. */
|
|
|
|
mmu_config_range_kb((uintptr_t)_sram/KiB,
|
|
|
|
_sram_size/KiB, DCACHE_WRITETHROUGH);
|
|
|
|
dcache_mmu_enable();
|
2014-06-23 05:40:39 +02:00
|
|
|
}
|