diff options
-rw-r--r-- | core/trace.c | 10 | ||||
-rw-r--r-- | include/trace.h | 2 | ||||
-rw-r--r-- | skiboot.lds.S | 4 |
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) |