On Sun, May 1, 2016 at 12:08 AM, Yoshinori Sato <ys...@users.sourceforge.jp> wrote: > sh fdt access in VA. But memory reservation use PA. > So sh need convert to PA. > > Signed-off-by: Yoshinori Sato <ys...@users.sourceforge.jp> > --- > drivers/of/fdt.c | 3 +++ > 1 file changed, 3 insertions(+) > > diff --git a/drivers/of/fdt.c b/drivers/of/fdt.c > index 3349d2a..fb357be 100644 > --- a/drivers/of/fdt.c > +++ b/drivers/of/fdt.c > @@ -593,6 +593,9 @@ void __init early_init_fdt_scan_reserved_mem(void) > fdt_get_mem_rsv(initial_boot_params, n, &base, &size); > if (!size) > break; > +#ifdef CONFIG_SUPERH > + base = virt_to_phys(base); > +#endif > early_init_dt_reserve_memory_arch(base, size, 0);
This is not right. base is already a physical address and early_init_dt_reserve_memory_arch takes a physical address. The default implementation using memblock also works on physical addresses. It is a weak function so you can override it if you need to do something special. But it seems something else is wrong here if you need this. Rob