Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 450dd430 authored by Vineet Gupta's avatar Vineet Gupta
Browse files

ARC: [DeviceTree] Convert some Kconfig items to runtime values



* mem size now runtime configured (prev CONFIG_ARC_PLAT_SDRAM_SIZE)
* core cpu clk runtime configured (prev CONFIG_ARC_PLAT_CLK)

Signed-off-by: default avatarVineet Gupta <vgupta@synopsys.com>
Cc: Arnd Bergmann <arnd@arndb.de>
Cc: Grant Likely <grant.likely@secretlab.ca>
parent 999159a5
Loading
Loading
Loading
Loading
+0 −12
Original line number Diff line number Diff line
@@ -249,10 +249,6 @@ source "arch/arc/plat-arcfpga/Kconfig"

#New platform adds here

config ARC_PLAT_CLK
	int "Clk speed in Hz"
	default "80000000"

config LINUX_LINK_BASE
	hex "Linux Link Address"
	default "0x80000000"
@@ -266,14 +262,6 @@ config LINUX_LINK_BASE
	  Linux needs to be scooted a bit.
	  If you don't know what the above means, leave this setting alone.

config ARC_PLAT_SDRAM_SIZE
	hex "SD RAM Size"
	default "0x10000000"
	help
	  Implies the amount of SDRAM/DRAM Linux is going to claim/own.
	  The actual memory itself could be larger than this number. But for
	  all software purposes, this is the amt of memory.

endmenu # "Platform Board Configuration"

config ARC_STACK_NONEXEC
+5 −1
Original line number Diff line number Diff line
@@ -13,9 +13,13 @@

/ {
	compatible = "snps,arc";
	clock-frequency = <80000000>;	/* 80 MHZ */
	#address-cells = <1>;
	#size-cells = <1>;
	chosen { };
	aliases { };
	memory { device_type = "memory"; reg = <0 0>; };
	memory {
		device_type = "memory";
		reg = <0x00000000 0x10000000>;	/* 256M */
	};
};
+2 −0
Original line number Diff line number Diff line
@@ -17,4 +17,6 @@ static inline unsigned long arc_get_core_freq(void)
	return core_freq;
}

extern int arc_set_core_freq(unsigned long);

#endif
+11 −1
Original line number Diff line number Diff line
@@ -8,4 +8,14 @@

#include <asm/clk.h>

unsigned long core_freq = CONFIG_ARC_PLAT_CLK;
unsigned long core_freq = 800000000;

/*
 * As of now we default to device-tree provided clock
 * In future we can determine this in early boot
 */
int arc_set_core_freq(unsigned long freq)
{
	core_freq = freq;
	return 0;
}
+13 −0
Original line number Diff line number Diff line
@@ -15,6 +15,7 @@
#include <linux/of.h>
#include <linux/of_fdt.h>
#include <asm/prom.h>
#include <asm/clk.h>

/* called from unflatten_device_tree() to bootstrap devicetree itself */
void * __init early_init_dt_alloc_memory_arch(u64 size, u64 align)
@@ -34,7 +35,9 @@ int __init setup_machine_fdt(void *dt)
	struct boot_param_header *devtree = dt;
	unsigned long dt_root;
	char *model, *compat;
	void *clk;
	char manufacturer[16];
	unsigned long len;

	/* check device tree validity */
	if (be32_to_cpu(devtree->magic) != OF_DT_HEADER)
@@ -60,5 +63,15 @@ int __init setup_machine_fdt(void *dt)
	/* Retrieve various information from the /chosen node */
	of_scan_flat_dt(early_init_dt_scan_chosen, boot_command_line);

	/* Initialize {size,address}-cells info */
	of_scan_flat_dt(early_init_dt_scan_root, NULL);

	/* Setup memory, calling early_init_dt_add_memory_arch */
	of_scan_flat_dt(early_init_dt_scan_memory, NULL);

	clk = of_get_flat_dt_prop(dt_root, "clock-frequency", &len);
	if (clk)
		arc_set_core_freq(of_read_ulong(clk, len/4));

	return 0;
}
Loading