Hi Greg,

On Fri, Sep 1, 2017 at 3:21 PM, Greg Ungerer <gregunge...@westnet.com.au> wrote:
> On 01/09/17 17:49, Geert Uytterhoeven wrote:
>> On Fri, Sep 1, 2017 at 12:38 AM, Angelo Dureghello <ang...@sysam.it>
>> wrote:
>>> did some additional study and tests.
>>>
>>> Actually i cannot find any simpler patch, i just adjusted it a
>>> bit. I believe this patch will work on your cpu with 0-based
>>> memoryas well.
>>> I attach it for your comments.
>>
>>
>> I think your issue is caused by arch/m68k/include/asm/page_offset.h:
>>
>>      #if defined(CONFIG_RAMBASE)
>>      #define PAGE_OFFSET_RAW         CONFIG_RAMBASE
>>      #elif defined(CONFIG_SUN3)
>>      #define PAGE_OFFSET_RAW         0x0E000000
>>      #else
>>      #define PAGE_OFFSET_RAW         0x00000000
>>      #endif
>>
>> and arch/m68k/Kconfig.machine:
>>
>> if !MMU || COLDFIRE
>>
>>      config RAMBASE
>>              hex "Address of the base of RAM"
>>              default "0"
>>
>> So on MC680[2346]0 with MMU (and ignoring Sun-3, which is special),
>> PAGE_OFFSET == PAGE_OFFSET_RAW == 0.
>>
>> On Greg's zero-based Coldfire with MMU, CONFIG_RAMBASE is zero, and thus
>> PAGE_OFFSET is also zero.
>>
>> On your board CONFIG_RAMBASE is non-zero, hence PAGE_OFFSET is also
>> non-zero,
>> and thus you have to compensate for that, cfr. your second patch.
>>
>> Does it work if you force PAGE_OFFSET_RAW to zero?
>>
>> If yes, we either need:
>>
>> --- a/arch/m68k/include/asm/page_offset.h
>> +++ b/arch/m68k/include/asm/page_offset.h
>> @@ -1,6 +1,6 @@
>>   /* This handles the memory map.. */
>>
>> -#if defined(CONFIG_RAMBASE)
>> +#if !defined(CONFIG_MMU)
>>   #define PAGE_OFFSET_RAW                CONFIG_RAMBASE
>>   #elif defined(CONFIG_SUN3)
>>   #define PAGE_OFFSET_RAW                0x0E000000
>>
>> or
>>
>> --- a/arch/m68k/Kconfig.machine
>> +++ b/arch/m68k/Kconfig.machine
>> @@ -325,6 +325,7 @@ comment "RAM configuration"
>>
>>   config RAMBASE
>>          hex "Address of the base of RAM"
>> +       depends on MMU
>
>
> Did you mean "depends on !MMU" here?

Sorry, yes, depends on !MMU.

>> depending on whether anything else in the Coldfire code needs RAMBASE.
>
> There are a couple of places we depend on CONFIG_RAMBASE even
> when running with the MMU enabled. Most importantly in setting
> the cachable regions in arch/m68k/include/asm/m54xxacr.h.
> So this is probably not going to work on its own.

OK, as I already feared/expected...

> But the first patch above should be ok. It should certainly work on
> my 0 address base 5475 ColdFire setup. Angelo can you try that one?

Right.

Gr{oetje,eeting}s,

                        Geert

--
Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- ge...@linux-m68k.org

In personal conversations with technical people, I call myself a hacker. But
when I'm talking to journalists I just say "programmer" or something like that.
                                -- Linus Torvalds
--
To unsubscribe from this list: send the line "unsubscribe linux-m68k" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to