2014-06-23 05:40:39 +02:00
|
|
|
/*
|
|
|
|
* This file is part of the coreboot project.
|
|
|
|
*
|
|
|
|
*
|
|
|
|
* 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.
|
|
|
|
*/
|
|
|
|
|
2014-10-16 03:50:45 +02:00
|
|
|
#include <arch/cache.h>
|
2014-06-23 05:40:39 +02:00
|
|
|
#include <bootblock_common.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
|
|
|
|
2015-07-01 20:29:42 +02:00
|
|
|
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,
|
2019-02-21 03:39:22 +01:00
|
|
|
REGION_SIZE(sram)/KiB, DCACHE_WRITETHROUGH);
|
2014-10-16 03:50:45 +02:00
|
|
|
dcache_mmu_enable();
|
2014-12-17 07:48:26 +01:00
|
|
|
|
|
|
|
rkclk_configure_crypto(148500*KHz);
|
2014-06-23 05:40:39 +02:00
|
|
|
}
|