[U-Boot] [PATCH v2 5/6] sunxi: add code for recalculating the DRAM size in U-Boot

Icenowy Zheng
2018-03-28T11:31:51Z

于 2018年3月28日 GMT+08:00 下午7:28:07, Maxime Ripard <maxime.ripard@bootlin.com> 写到:
>On Mon, Mar 26, 2018 at 03:11:04PM +0800, Icenowy Zheng wrote:
>>
>>
>> 于 2018年3月26日 GMT+08:00 下午3:06:33, Maxime Ripard
><maxime.ripard@bootlin.com> 写到:
>> >On Fri, Mar 23, 2018 at 05:41:43PM +0800, Icenowy Zheng wrote:
>> >>
>> >>
>> >> 于 2018年3月23日 GMT+08:00 下午5:40:41, Maxime Ripard
>> ><maxime.ripard@bootlin.com> 写到:
>> >> >On Fri, Mar 23, 2018 at 04:18:56PM +0800, Icenowy Zheng wrote:
>> >> >> The get_ram_size() function in U-Boot can only deal with memory
>> >size
>> >> >> smaller than 2GiB. To enable the support of 3GiB DRAM on newer
>> >64-bit
>> >> >> SoCs, an alternative way to detect DRAM size is needed.
>> >> >
>> >> >Why not just fixing get_ram_size then?
>> >>
>> >> Even if it's fixed it won't support 3GiB DRAM at all.
>> >
>> >Why?
>>
>> It has an assumption that the size is pow of 2.
>
>I guess this would be fixable too? (or one could create a variant
>without that assumption).

I don't think its principle allows such kind of fix, as it just
checks writing then reading at some offset that is pow if 2.

For hacking it, see my implementation in v1, which assumes the
only size supported bigger than 2GiB is 3GiB (which is
acceptable on sunxi, but might not work on other platforms).

As Andre said, that function has another big problem --
it detects memory with writing to it. This is risky.

>
>Maxime