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

Mike Frysinger
2015-02-19T17:48:01Z

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

On 19 Feb 2015 17:11, Jiri Gaisler wrote:
> 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:
> >>>> +{
> >>>> + 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.

there's already funcs that accept it as a pointer and operate on it in this
code base. since you're creating this function for the first time, it seems
natural to include the right change from the start to reduce code shuffling
later on.

if you're really set on this route though, i won't belabor the point (even if i
think i'm right ;]).
-mike

[-- Attachment #2: Digital signature --]
[-- Type: application/pgp-signature, Size: 819 bytes --]