arm64: remove printk() before console_init()

printk() shouldn't be called until the consoles have been
initialized. This just so happened to work by luck. Once
CONFIG_SMP is enabled that breaks because of spinlock
usage in uncached memory.

BUG=chrome-os-partner:31761
BRANCH=None
TEST=Built with CONFIG_SMP and ramstage doesn't hang early.

Change-Id: I54231db3c811c0d19c5c7fbaa406cacd1ff019ec
Signed-off-by: Patrick Georgi <pgeorgi@chromium.org>
Original-Commit-Id: 31c3f972ac5c89472009b5b2cb7dbc0f02cfd9a0
Original-Change-Id: I6091b1e949e648b3435231946e5924260bf1807f
Original-Signed-off-by: Aaron Durbin <adurbin@chromium.org>
Original-Reviewed-on: https://chromium-review.googlesource.com/216920
Original-Reviewed-by: Furquan Shaikh <furquan@chromium.org>
Reviewed-on: http://review.coreboot.org/9037
Tested-by: build bot (Jenkins)
Reviewed-by: Stefan Reinauer <stefan.reinauer@coreboot.org>
This commit is contained in:
Aaron Durbin 2014-09-06 01:07:41 -05:00 committed by Patrick Georgi
parent 4da4d3c944
commit 8ff6c215a1
1 changed files with 0 additions and 24 deletions

View File

@ -31,9 +31,6 @@
#include <stdint.h> #include <stdint.h>
#include <string.h> #include <string.h>
#include <cbmem.h>
#include <console/console.h>
#include <memrange.h> #include <memrange.h>
#include <arch/mmu.h> #include <arch/mmu.h>
#include <arch/lib_helpers.h> #include <arch/lib_helpers.h>
@ -110,7 +107,6 @@ static uint64_t *get_new_table(void)
uint64_t *new; uint64_t *new;
if (free_idx >= max_tables) { if (free_idx >= max_tables) {
printk(BIOS_ERR,"ARM64 MMU: No free table\n");
return NULL; return NULL;
} }
@ -233,7 +229,6 @@ static void init_mmap_entry(struct range_entry *r)
uint64_t ret; uint64_t ret;
if (sanity_check(base_addr,temp_size)) { if (sanity_check(base_addr,temp_size)) {
printk(BIOS_ERR, "ARM64 MMU: sanity check failed\n");
return; return;
} }
@ -259,7 +254,6 @@ void mmu_init(struct memranges *mmap_ranges,
struct range_entry *mmap_entry; struct range_entry *mmap_entry;
if (sanity_check((uint64_t)ttb_buffer, ttb_size)) { if (sanity_check((uint64_t)ttb_buffer, ttb_size)) {
printk(BIOS_ERR, "ARM64: Sanity failed for ttb\n");
return; return;
} }
@ -267,22 +261,9 @@ void mmu_init(struct memranges *mmap_ranges,
max_tables = (ttb_size >> GRANULE_SIZE_SHIFT); max_tables = (ttb_size >> GRANULE_SIZE_SHIFT);
xlat_addr = ttb_buffer; xlat_addr = ttb_buffer;
printk(BIOS_DEBUG, "ARM64: TTB_BUFFER: 0x%p Max Tables: %d\n",
(void*)xlat_addr, max_tables);
memranges_each_entry(mmap_entry, mmap_ranges) { memranges_each_entry(mmap_entry, mmap_ranges) {
init_mmap_entry(mmap_entry); init_mmap_entry(mmap_entry);
} }
printk(BIOS_DEBUG, "ARM64: MMU init done\n");
}
static uint32_t is_mmu_enabled(void)
{
uint32_t sctlr;
sctlr = raw_read_sctlr_el3();
return (sctlr & SCTLR_M);
} }
void mmu_enable(void) void mmu_enable(void)
@ -313,9 +294,4 @@ void mmu_enable(void)
raw_write_sctlr_el3(sctlr); raw_write_sctlr_el3(sctlr);
isb(); isb();
if (is_mmu_enabled())
printk(BIOS_DEBUG, "ARM64: MMU enable done\n");
else
printk(BIOS_DEBUG, "ARM64: MMU enable failed\n");
} }