mips: octeon: bootoctlinux: Use gd->ram_size instead of ram_get_info()

Using ram_get_info() is complicated and does not work after relocation.
Now that gd->ram_size holds the full RAM size, let's use it instead and
remove the ram_get_size logic completely.

Signed-off-by: Stefan Roese <sr@denx.de>
Cc: Aaron Williams <awilliams@marvell.com>
Cc: Chandrakala Chavva <cchavva@marvell.com>
Cc: Daniel Schwierzeck <daniel.schwierzeck@gmail.com>
Reviewed-by: Daniel Schwierzeck <daniel.schwierzeck@gmail.com>
This commit is contained in:
Stefan Roese 2020-10-28 15:10:02 +01:00 committed by Daniel Schwierzeck
parent 8bab2c893c
commit b7eac19a3d

View File

@ -9,7 +9,6 @@
#include <dm.h> #include <dm.h>
#include <elf.h> #include <elf.h>
#include <env.h> #include <env.h>
#include <ram.h>
#include <asm/io.h> #include <asm/io.h>
#include <linux/compat.h> #include <linux/compat.h>
@ -370,8 +369,6 @@ int do_bootoctlinux(struct cmd_tbl *cmdtp, int flag, int argc,
struct cvmx_coremask avail_coremask; struct cvmx_coremask avail_coremask;
int first_core; int first_core;
int core; int core;
struct ram_info ram;
struct udevice *dev;
const u64 *nmi_code; const u64 *nmi_code;
int num_dwords; int num_dwords;
u8 node_mask = 0x01; u8 node_mask = 0x01;
@ -470,19 +467,6 @@ int do_bootoctlinux(struct cmd_tbl *cmdtp, int flag, int argc,
*/ */
cvmx_coremask_or(&coremask_to_run, &coremask_to_run, &core_mask); cvmx_coremask_or(&coremask_to_run, &coremask_to_run, &core_mask);
/* Get RAM size */
ret = uclass_get_device(UCLASS_RAM, 0, &dev);
if (ret) {
debug("DRAM init failed: %d\n", ret);
return ret;
}
ret = ram_get_info(dev, &ram);
if (ret) {
debug("Cannot get DRAM size: %d\n", ret);
return ret;
}
/* /*
* Load kernel ELF image, or try binary if ELF is not detected. * Load kernel ELF image, or try binary if ELF is not detected.
* This way the much smaller vmlinux.bin can also be started but * This way the much smaller vmlinux.bin can also be started but
@ -498,7 +482,7 @@ int do_bootoctlinux(struct cmd_tbl *cmdtp, int flag, int argc,
/* Init bootmem list for Linux kernel booting */ /* Init bootmem list for Linux kernel booting */
if (!cvmx_bootmem_phy_mem_list_init( if (!cvmx_bootmem_phy_mem_list_init(
ram.size, OCTEON_RESERVED_LOW_MEM_SIZE, gd->ram_size, OCTEON_RESERVED_LOW_MEM_SIZE,
(void *)CKSEG0ADDR(BOOTLOADER_BOOTMEM_DESC_SPACE))) { (void *)CKSEG0ADDR(BOOTLOADER_BOOTMEM_DESC_SPACE))) {
printf("FATAL: Error initializing free memory list\n"); printf("FATAL: Error initializing free memory list\n");
return 0; return 0;
@ -517,7 +501,8 @@ int do_bootoctlinux(struct cmd_tbl *cmdtp, int flag, int argc,
if (core == first_core) if (core == first_core)
cvmx_bootinfo_array[core].flags |= BOOT_FLAG_INIT_CORE; cvmx_bootinfo_array[core].flags |= BOOT_FLAG_INIT_CORE;
cvmx_bootinfo_array[core].dram_size = ram.size / (1024 * 1024); cvmx_bootinfo_array[core].dram_size = gd->ram_size /
(1024 * 1024);
cvmx_bootinfo_array[core].dclock_hz = gd->mem_clk * 1000000; cvmx_bootinfo_array[core].dclock_hz = gd->mem_clk * 1000000;
cvmx_bootinfo_array[core].eclock_hz = gd->cpu_clk; cvmx_bootinfo_array[core].eclock_hz = gd->cpu_clk;