Re: [PATCH 03/23] sim/erc32: Perform pseudo-init of system if binary starts from non-zero address.

Jiri Gaisler
2015-02-19T16:11:32Z

[-- Attachment #1: Type: text/plain, Size: 1754 bytes --]

On 02/18/2015 05:53 PM, Mike Frysinger wrote:
> On 18 Feb 2015 15:40, Jiri Gaisler wrote:
>> On 02/17/2015 09:59 AM, Mike Frysinger wrote:
>>> On 17 Feb 2015 08:44, Jiri Gaisler wrote:
>>>> +extern struct pstate sregs;
>>>> +
>>>> +void
>>>> +boot_init ()
>>>
>>> also looks like this is missing an update to a header to add the prototype ?
>>
>> This is done in patch (17/23).
>
> ok, but patches things really should be standalone. although your series is
> pretty good already in terms of splitting things apart.
>
>>>> +{
>>>> + mec_write(MEC_WCR, 0); /* zero waitstates */
>>>> + mec_write(MEC_TRAPD, 0); /* turn off watch-dog */
>>>> + mec_write(MEC_RTC_SCALER, sregs.freq-1); /* generate 1 MHz RTC tick */
>>>> + mec_write(MEC_MEMCFG, (3 << 18) | (4 << 10)); /* 1 MB ROM, 4 MB RAM */
>>>> + sregs.wim = 2;
>>>> + sregs.psr = 0x110010e0;
>>>> + sregs.r[30] = RAM_END;
>>>> + sregs.r[14] = sregs.r[30] - 96*4;
>>>> + mec_mcr |= 1; /* power-down enabled */
>>>> +}
>>>
>>> why isn't sregs passed in as an arg ? looks like both callers have a pointer to
>>> it already.
>>
>> I am saving this for next major update - SMP support. All globals will then
>> be removed and the full cpu state will be in a struct that is passed to the
>> simulation engine. In this way I can simulate multiple cpu's.
>
> can't this particular bit be done already ? or is the global pointer diff from
> the local one ?

The global pointer is not different from the local, but since the global is
used in so many places it does not seem logical to switch to a local copy just
here. That is why I would like to keep this as is and remove all globals in
a later patch.

Jiri.

> -mike
>

[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 884 bytes --]