On Wed, Dec 30, 2020 at 10:22:03PM +0100, Bert Vermeulen wrote: > This is just enough system to boot the kernel with earlycon working. > > Signed-off-by: Bert Vermeulen <bert@xxxxxxxx> > Signed-off-by: Sander Vanheule <sander@xxxxxxxxxxxxx> > --- > arch/mips/Kconfig | 21 ++++++++++++++++++ > arch/mips/generic/Platform | 1 + > arch/mips/include/asm/realtek/ioremap.h | 29 +++++++++++++++++++++++++ > 3 files changed, 51 insertions(+) > create mode 100644 arch/mips/include/asm/realtek/ioremap.h > [..] > diff --git a/arch/mips/include/asm/realtek/ioremap.h b/arch/mips/include/asm/realtek/ioremap.h > new file mode 100644 > index 000000000000..ea51af023e26 > --- /dev/null > +++ b/arch/mips/include/asm/realtek/ioremap.h > @@ -0,0 +1,29 @@ > +/* SPDX-License-Identifier: GPL-2.0-only */ > +#ifndef _REALTEK_RTL_IOREMAP_H_ > +#define _REALTEK_RTL_IOREMAP_H_ > + > +static inline int is_rtl8380_internal_registers(phys_addr_t offset) > +{ > + /* IO Block */ > + if (offset >= 0xb8000000 && offset < 0xb9000000) > + return 1; > + /* Switch block */ > + if (offset >= 0xbb000000 && offset < 0xbc000000) > + return 1; > + return 0; > +} > + > +static inline void __iomem *plat_ioremap(phys_addr_t offset, unsigned long size, > + unsigned long flags) > +{ > + if (is_rtl8380_internal_registers(offset)) > + return (void __iomem *)offset; > + return NULL; > +} > + > +static inline int plat_iounmap(const volatile void __iomem *addr) > +{ > + return is_rtl8380_internal_registers((unsigned long)addr); > +} > + > +#endif /* _REALTEK_RTL_IOREMAP_H_ */ this looks like papering over using KSEG1 addresses instead of physical addresses in your DT. You should be able to drop this file and use 0x18000000/0x1B000000 instead of 0xb8000000/0xbb000000 in the DT file. Thomas. -- Crap can work. Given enough thrust pigs will fly, but it's not necessarily a good idea. [ RFC1925, 2.3 ]