Signed-off-by: Sascha Hauer <s.hauer@xxxxxxxxxxxxxx> --- arch/ppc/mach-mpc5xxx/cpu.c | 17 +++++++++++++++++ arch/ppc/mach-mpc5xxx/include/mach/mpc5xxx.h | 3 +++ 2 files changed, 20 insertions(+), 0 deletions(-) diff --git a/arch/ppc/mach-mpc5xxx/cpu.c b/arch/ppc/mach-mpc5xxx/cpu.c index 391c705..cf2ca2f 100644 --- a/arch/ppc/mach-mpc5xxx/cpu.c +++ b/arch/ppc/mach-mpc5xxx/cpu.c @@ -113,3 +113,20 @@ int cpu_init_board_data(bd_t *bd) bd->bi_pcifreq = get_pci_clock(); return 0; } + +unsigned long mpc5200_get_sdram_size(unsigned int cs) +{ + unsigned long size; + + if (cs > 1) + return 0; + + /* retrieve size of memory connected to SDRAM CS0 */ + size = *(vu_long *)(MPC5XXX_SDRAM_CS0CFG + (cs * 4)) & 0xFF; + if (size >= 0x13) + size = (1 << (size - 0x13)) << 20; + else + size = 0; + + return size; +} diff --git a/arch/ppc/mach-mpc5xxx/include/mach/mpc5xxx.h b/arch/ppc/mach-mpc5xxx/include/mach/mpc5xxx.h index d7d0811..aad2418 100644 --- a/arch/ppc/mach-mpc5xxx/include/mach/mpc5xxx.h +++ b/arch/ppc/mach-mpc5xxx/include/mach/mpc5xxx.h @@ -779,6 +779,9 @@ struct mpc5xxx_mscan { /* function prototypes */ void loadtask(int basetask, int tasks); +/* retrieve configured sdram size connected to a chipselect */ +unsigned long mpc5200_get_sdram_size(unsigned int cs); + #endif /* __ASSEMBLY__ */ #endif /* __ASMPPC_MPC5XXX_H */ -- 1.7.6.3 _______________________________________________ barebox mailing list barebox@xxxxxxxxxxxxxxxxxxx http://lists.infradead.org/mailman/listinfo/barebox