aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--core/trace.c10
-rw-r--r--include/trace.h2
-rw-r--r--skiboot.lds.S4
3 files changed, 8 insertions, 8 deletions
diff --git a/core/trace.c b/core/trace.c
index a7b3cd1..4b7d570 100644
--- a/core/trace.c
+++ b/core/trace.c
@@ -193,7 +193,7 @@ static void trace_add_desc(struct trace_info *t, uint64_t size)
}
debug_descriptor.num_traces++;
- debug_descriptor.trace_phys[i] = (uint64_t)&t->tb;
+ debug_descriptor.trace_phys[i] = (uint64_t)t;
debug_descriptor.trace_tce[i] = 0; /* populated later */
debug_descriptor.trace_size[i] = size;
}
@@ -206,16 +206,16 @@ void init_trace_buffers(void)
uint64_t size;
/* Boot the boot trace in the debug descriptor */
- trace_add_desc(any, sizeof(boot_tracebuf.buf));
+ trace_add_desc(any, sizeof(boot_tracebuf));
/* Allocate a trace buffer for each primary cpu. */
for_each_cpu(t) {
if (t->is_secondary)
continue;
- /* Use a 4K alignment for TCE mapping */
- size = ALIGN_UP(sizeof(*t->trace) + tracebuf_extra(), 0x1000);
- t->trace = local_alloc(t->chip_id, size, 0x1000);
+ /* Use a 64K alignment for TCE mapping */
+ size = ALIGN_UP(sizeof(*t->trace) + tracebuf_extra(), 0x10000);
+ t->trace = local_alloc(t->chip_id, size, 0x10000);
if (t->trace) {
any = t->trace;
memset(t->trace, 0, size);
diff --git a/include/trace.h b/include/trace.h
index da43572..2b65e90 100644
--- a/include/trace.h
+++ b/include/trace.h
@@ -29,7 +29,7 @@ struct cpu_thread;
void init_boot_tracebuf(struct cpu_thread *boot_cpu);
struct trace_info {
- /* Lock for writers. */
+ /* Lock for writers. Exposed to kernel. */
struct lock lock;
/* Exposed to kernel. */
struct tracebuf tb;
diff --git a/skiboot.lds.S b/skiboot.lds.S
index ef7db23..54b1fef 100644
--- a/skiboot.lds.S
+++ b/skiboot.lds.S
@@ -192,9 +192,9 @@ SECTIONS
*/
. = ALIGN(0x1000);
*(.data.memcons);
- . = ALIGN(0x1000);
+ . = ALIGN(0x10000);
*(.data.boot_trace);
- . = ALIGN(0x1000);
+ . = ALIGN(0x10000);
*(.data*)
*(.force.data)
*(.toc1)