On 02/01/2013 03:51 PM, Tony Lindgren wrote:
> Hi Jon,
> 
> * Jon Hunter <jon-hun...@ti.com> [130201 08:42]:
>> --- a/arch/arm/mach-omap2/gpmc.c
>> +++ b/arch/arm/mach-omap2/gpmc.c
>> @@ -32,6 +32,7 @@
>>  
>>  #include "soc.h"
>>  #include "common.h"
>> +#include "control.h"
>>  #include "omap_device.h"
>>  #include "gpmc.h"
>>  
>> @@ -778,18 +779,26 @@ static void gpmc_mem_exit(void)
>>  static int gpmc_mem_init(void)
>>  {
>>      int cs, rc;
>> -    unsigned long boot_rom_space = 0;
>>  
>> -    /* never allocate the first page, to facilitate bug detection;
>> -     * even if we didn't boot from ROM.
>> +    /*
>> +     * The first 1MB of GPMC address space is mapped to the
>> +     * internal ROM. OMAP2 devices are an exception to this
>> +     * where the first 1MB may be mapped to the GPMC.
>>       */
>> -    boot_rom_space = BOOT_ROM_SPACE;
>> -    /* In apollon the CS0 is mapped as 0x0000 0000 */
>> -    if (machine_is_omap_apollon())
>> -            boot_rom_space = 0;
> 
> This part is going away anyways with the patch dropping apollon
> board support from Kyungin.

Yes just saw that today.

>> -    gpmc_mem_root.start = GPMC_MEM_START + boot_rom_space;
>> +    gpmc_mem_root.start = GPMC_MEM_START + BOOT_ROM_SPACE;
>>      gpmc_mem_root.end = GPMC_MEM_END;
>>  
>> +    /*
>> +     * OMAP2 devices that boot from external memory devices, will
>> +     * map CS0 to the start of the GPMC address space (0x0). We can
>> +     * test this by checking if SYS_BOOT3 pin is set. If not set
>> +     * then CS0 is mapped to 0x0.
>> +     */
>> +    if (cpu_is_omap24xx())
>> +            if (!(omap_ctrl_readl(OMAP24XX_CONTROL_STATUS) &
>> +                  OMAP2_SYSBOOT_3_MASK))
>> +                    gpmc_mem_root.start = GPMC_MEM_START;
>> +
>>      /* Reserve all regions that has been set up by bootloader */
>>      for (cs = 0; cs < GPMC_CS_NUM; cs++) {
>>              u32 base, size;
> 
> How about let's fix this properly to start with so we don't add
> more blockers moving this code to drivers/bus?
> 
> Looks like gpmc_mem_init() gets called from gpmc_probe() so
> we can pass that information in pdev.

I wondered if you would suggest that ;-)

I definitely can and it is probably best. Things like this become
painful when we move to device-tree. We really need a generic way for
passing stuff like this to drivers for omap. Our options are auxdata or
bus notifiers. I am wondering whether we can plug pdata in the
omap_device bus notifier for device-tree. Let me know if you have any
thoughts.

Cheers
Jon
--
To unsubscribe from this list: send the line "unsubscribe linux-omap" 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