[U-Boot] [PATCH 7/8] mips: bmips: fix ioremap for BCM6358
Daniel Schwierzeck
daniel.schwierzeck at gmail.com
Sat Apr 15 18:48:45 UTC 2017
Am 15.04.2017 um 20:08 schrieb Álvaro Fernández Rojas:
> Hi again,
>
> El 15/04/2017 a las 19:18, Álvaro Fernández Rojas escribió:
>> Hi Daniel,
>>
>> El 14/04/2017 a las 20:26, Daniel Schwierzeck escribió:
>>>
>>>
>>> Am 13.04.2017 um 17:52 schrieb Álvaro Fernández Rojas:
>>>> BCM6358 has its internal registers mapped to 0xfffe0000, which is changed to
>>>> 0x1ffe0000 when ioremap is called.
>>>>
>>>> Signed-off-by: Álvaro Fernández Rojas <noltari at gmail.com>
>>>> ---
>>>> arch/mips/include/asm/mach-generic/ioremap.h | 15 ++++++++++++++-
>>>> 1 file changed, 14 insertions(+), 1 deletion(-)
>>>>
>>>> diff --git a/arch/mips/include/asm/mach-generic/ioremap.h b/arch/mips/include/asm/mach-generic/ioremap.h
>>>> index 6b191d5..b6a920d 100644
>>>> --- a/arch/mips/include/asm/mach-generic/ioremap.h
>>>> +++ b/arch/mips/include/asm/mach-generic/ioremap.h
>>>> @@ -16,15 +16,28 @@ static inline phys_addr_t fixup_bigphys_addr(phys_addr_t phys_addr,
>>>> return phys_addr;
>>>> }
>>>>
>>>> +static inline int is_mips_internal_registers(phys_addr_t offset)
>>>> +{
>>>> +#ifdef CONFIG_SOC_BMIPS_BCM6358
>>>> + if (offset >= 0xfffe0000)
>>>> + return 1;
>>>> +#endif
>>>> +
>>>> + return 0;
>>>> +}
>>>> +
>>>> static inline void __iomem *plat_ioremap(phys_addr_t offset, unsigned long size,
>>>> unsigned long flags)
>>>> {
>>>> + if (is_mips_internal_registers(offset))
>>>> + return (void __iomem *)offset;
>>>> +
>>>> return NULL;
>>>> }
>>>>
>>>> static inline int plat_iounmap(const volatile void __iomem *addr)
>>>> {
>>>> - return 0;
>>>> + return is_mips_internal_registers((unsigned long)addr);
>>>> }
>>>>
>>>> #define _page_cachable_default _CACHE_CACHABLE_NONCOHERENT
>>>>
>>>
>>> please create a separate ioremap.h in arch/mips/include/asm/mach-bmips/
>>> with the BMIPS specific code. Then this file will be automatically used
>>> instead of the generic version. This is working like in Linux kernel.
>> I will try, but I remember having tested that and I couldn't get it working...
> Nope, it doesn't work...
>
sorry, my fault. The correct path is arch/mips/mach-bmips/include/ioremap.h
Following commit on top of your series works for me:
http://git.denx.de/?p=u-boot/u-boot-mips.git;a=commitdiff;h=5f98514bc09d4748ddf7ccc70bd4df0c7b36dd75
--
- Daniel
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 819 bytes
Desc: OpenPGP digital signature
URL: <http://lists.denx.de/pipermail/u-boot/attachments/20170415/ecf87d91/attachment.sig>
More information about the U-Boot
mailing list