Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/linux-sunxi/sunxi-tools.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLuc Verhaegen <libv@skynet.be>2014-08-18 09:45:05 +0400
committerLuc Verhaegen <libv@skynet.be>2014-08-20 03:47:41 +0400
commite5b5a1eb3975274a38369a0b0f7ea5eb8d829a8a (patch)
tree5d0fa72ba46f9a04fc723d2c453f21dfa3a834c2 /meminfo.c
parentf52cd86989cf9b0cf280645e2e6d2532d8fa98f8 (diff)
meminfo: fix up printing
Now we write out a dram file for u-boot directly. Signed-off-by: Luc Verhaegen <libv@skynet.be>
Diffstat (limited to 'meminfo.c')
-rw-r--r--meminfo.c60
1 files changed, 41 insertions, 19 deletions
diff --git a/meminfo.c b/meminfo.c
index 6d87897..e0d6430 100644
--- a/meminfo.c
+++ b/meminfo.c
@@ -213,6 +213,45 @@ volatile void *map_physical_memory(uint32_t addr, size_t len)
return mem;
}
+/*
+ * Print a dram.c that can be stuck immediately into u-boot.
+ */
+void
+dram_para_print_uboot(struct dram_para *dram_para)
+{
+ printf("// place this file in board/sunxi/ in u-boot\n");
+ printf("/* this file is generated, don't edit it yourself */\n");
+ printf("\n");
+ printf("#include \"common.h\"\n");
+ printf("#include <asm/arch/dram.h>\n");
+ printf("\n");
+ printf("static struct dram_para dram_para = {\n");
+ printf("\t.clock = %d,\n", dram_para->clock);
+ printf("\t.type = %d,\n", dram_para->type);
+ printf("\t.rank_num = %d,\n", dram_para->rank_num);
+ printf("\t.density = %d,\n", dram_para->density);
+ printf("\t.io_width = %d,\n", dram_para->io_width);
+ printf("\t.bus_width = %d,\n", dram_para->bus_width);
+ printf("\t.cas = %d,\n", dram_para->cas);
+ printf("\t.zq = 0x%02x,\n", dram_para->zq);
+ printf("\t.odt_en = %d,\n", dram_para->odt_en);
+ printf("\t.size = !!! FIXME !!!, /* in MiB */\n");
+ printf("\t.tpr0 = 0x%08x,\n", dram_para->tpr0);
+ printf("\t.tpr1 = 0x%04x,\n", dram_para->tpr1);
+ printf("\t.tpr2 = 0x%05x,\n", dram_para->tpr2);
+ printf("\t.tpr3 = 0x%02x,\n", dram_para->tpr3);
+ printf("\t.tpr4 = 0x%02x,\n", dram_para->tpr4);
+ printf("\t.tpr5 = 0x%02x,\n", dram_para->tpr5);
+ printf("\t.emr1 = 0x%02x,\n", dram_para->emr1);
+ printf("\t.emr2 = 0x%02x,\n", dram_para->emr2);
+ printf("\t.emr3 = 0x%02x,\n", dram_para->emr3);
+ printf("};\n");
+ printf("\n");
+ printf("unsigned long sunxi_dram_init(void)\n");
+ printf("{\n");
+ printf("\treturn dramc_init(&dram_para);\n");
+ printf("}\n");
+}
int main(int argc, char **argv)
{
@@ -265,25 +304,8 @@ int main(int argc, char **argv)
(((ccm->pll5_cfg >> CCM_PLL5_FACTOR_M) & CCM_PLL5_FACTOR_M_SIZE) + 1)
);
- /* Print dram_para struct */
- printf("dram_clk = %d\n", p.clock);
- printf("dram_type = %d\n", p.type);
- printf("dram_rank_num = %d\n", p.rank_num);
- printf("dram_chip_density = %d\n", p.density);
- printf("dram_io_width = %d\n", p.io_width);
- printf("dram_bus_width = %d\n", p.bus_width);
- printf("dram_cas = %d\n", p.cas);
- printf("dram_zq = 0x%x\n", p.zq);
- printf("dram_odt_en = %d\n", p.odt_en);
- //printf("dram_size = %d\n", p.size);
- printf("dram_tpr0 = 0x%x\n", p.tpr0);
- printf("dram_tpr1 = 0x%x\n", p.tpr1);
- printf("dram_tpr2 = 0x%x\n", p.tpr2);
- printf("dram_tpr3 = 0x%x\n", p.tpr3);
- printf("dram_emr1 = 0x%x\n", p.emr1);
- printf("dram_emr2 = 0x%x\n", p.emr2);
- printf("dram_emr3 = 0x%x\n", p.emr3);
-
+ dram_para_print_uboot(&p);
+
/* Clean up */
munmap((void *)r, 4096);
munmap((void *)ccm, 4096);