arch: Make phys_initrd_start and phys_initrd_size global variables
Make phys_initrd_start and phys_initrd_size global variables declared in init/do_mounts_initrd.c such that we can later have generic code in drivers/of/fdt.c populate those variables for us. This requires both the ARM and unicore32 implementations to be properly guarded against CONFIG_BLK_DEV_INITRD, and also initialize the variables to the expected default values (unicore32). Signed-off-by: Florian Fainelli <f.fainelli@gmail.com> Reviewed-by: Mike Rapoport <rppt@linux.ibm.com> Signed-off-by: Rob Herring <robh@kernel.org>
This commit is contained in:
parent
cd5e0fa083
commit
b1ab95c636
@ -50,9 +50,7 @@ unsigned long __init __clear_cr(unsigned long mask)
|
||||
}
|
||||
#endif
|
||||
|
||||
static phys_addr_t phys_initrd_start __initdata = 0;
|
||||
static unsigned long phys_initrd_size __initdata = 0;
|
||||
|
||||
#ifdef CONFIG_BLK_DEV_INITRD
|
||||
static int __init early_initrd(char *p)
|
||||
{
|
||||
phys_addr_t start;
|
||||
@ -89,6 +87,7 @@ static int __init parse_tag_initrd2(const struct tag *tag)
|
||||
}
|
||||
|
||||
__tagtable(ATAG_INITRD2, parse_tag_initrd2);
|
||||
#endif
|
||||
|
||||
static void __init find_limits(unsigned long *min, unsigned long *max_low,
|
||||
unsigned long *max_high)
|
||||
|
@ -30,9 +30,7 @@
|
||||
|
||||
#include "mm.h"
|
||||
|
||||
static unsigned long phys_initrd_start __initdata = 0x01000000;
|
||||
static unsigned long phys_initrd_size __initdata = SZ_8M;
|
||||
|
||||
#ifdef CONFIG_BLK_DEV_INITRD
|
||||
static int __init early_initrd(char *p)
|
||||
{
|
||||
unsigned long start, size;
|
||||
@ -48,6 +46,7 @@ static int __init early_initrd(char *p)
|
||||
return 0;
|
||||
}
|
||||
early_param("initrd", early_initrd);
|
||||
#endif
|
||||
|
||||
/*
|
||||
* This keeps memory configuration data used by a couple memory
|
||||
@ -156,6 +155,11 @@ void __init uc32_memblock_init(struct meminfo *mi)
|
||||
memblock_reserve(__pa(_text), _end - _text);
|
||||
|
||||
#ifdef CONFIG_BLK_DEV_INITRD
|
||||
if (!phys_initrd_size) {
|
||||
phys_initrd_start = 0x01000000;
|
||||
phys_initrd_size = SZ_8M;
|
||||
}
|
||||
|
||||
if (phys_initrd_size) {
|
||||
memblock_reserve(phys_initrd_start, phys_initrd_size);
|
||||
|
||||
|
@ -21,4 +21,7 @@ extern int initrd_below_start_ok;
|
||||
extern unsigned long initrd_start, initrd_end;
|
||||
extern void free_initrd_mem(unsigned long, unsigned long);
|
||||
|
||||
extern phys_addr_t phys_initrd_start;
|
||||
extern unsigned long phys_initrd_size;
|
||||
|
||||
extern unsigned int real_root_dev;
|
||||
|
@ -16,6 +16,9 @@ int initrd_below_start_ok;
|
||||
unsigned int real_root_dev; /* do_proc_dointvec cannot handle kdev_t */
|
||||
static int __initdata mount_initrd = 1;
|
||||
|
||||
phys_addr_t phys_initrd_start __initdata;
|
||||
unsigned long phys_initrd_size __initdata;
|
||||
|
||||
static int __init no_initrd(char *str)
|
||||
{
|
||||
mount_initrd = 0;
|
||||
|
Loading…
Reference in New Issue
Block a user