Doug Fraser | 1 Jul 2003 13:46

RE: warm boot detection


Most of the integrated processors have a number
registers that are initialized differently depending
on the reset source. On the MPC850, there is a
a Reset Status Register in the IMMR that lists the
reset cause. It cannot differentiate between
hard reset and power. However, the PLPRCR has
a number of bits that are initialized by a power on
sequence but not by a hard reset. We use one of these
(FIOPD) to determine if the reset was the result of
a power on event.

Doug Fraser

> -----Original Message-----
> From: Jonathan Larmour [mailto:jifl <at> eCosCentric.com]
> Sent: Monday, June 23, 2003 12:05 PM
> To: aarichar <at> cisco.com
> Cc: Ecos-Discuss
> Subject: Re: [ECOS] warm boot detection
> 
> 
> Aaron Richardson wrote:
> > Is there some way that I can detect if the platform has 
> been cold booted or 
> > warm booted?  It would be nice to avoid initializing 
> several things based on 
> > this.  The SDRAM scrubbing and any memory testing could be skipped.
> 
> Normally people simply rely on the HAL startup type (ROM/RAM etc.) to 
(Continue reading)

Ketil Harald Ruud | 1 Jul 2003 14:01

External SRAM on EB40a


I have an AT91EB40A evaluation board equipped with external SRAM (SAMSUNG
k6r4008v1c, (512Kx8bits)x2).

Redboot is loaded to upper half of flash at address 0x01100000. (Redboot can
also run from on-chip SRAM.)

Can anybody tell me what kind of modification that are required to access
the external RAM? When I try to load the hello-world application to external
RAM, Redboot keeeps telling me that there is no RAM at address 0x2000000 and
refuses to load.
I have used "configtool" to generate the ecos application.

Ketil

--

-- 
Before posting, please read the FAQ: http://sources.redhat.com/fom/ecos
and search the list archive: http://sources.redhat.com/ml/ecos-discuss

Laurent GONZALEZ | 1 Jul 2003 14:18
Picon

Re: External SRAM on EB40a

hi,

Check redboot's cdl option CYGSEM_REDBOOT_VALIDATE_USER_RAM_LOADS

On Tue, 1 Jul 2003 14:01:26 +0200 
Ketil Harald Ruud <ketil.ruud <at> kitron.com> wrote:

> 
> I have an AT91EB40A evaluation board equipped with external SRAM (SAMSUNG
> k6r4008v1c, (512Kx8bits)x2).
> 
> Redboot is loaded to upper half of flash at address 0x01100000. (Redboot can
> also run from on-chip SRAM.)
> 
> Can anybody tell me what kind of modification that are required to access
> the external RAM? When I try to load the hello-world application to external
> RAM, Redboot keeeps telling me that there is no RAM at address 0x2000000 and
> refuses to load.
> I have used "configtool" to generate the ecos application.
> 
> Ketil
> 
> -- 
> Before posting, please read the FAQ: http://sources.redhat.com/fom/ecos
> and search the list archive: http://sources.redhat.com/ml/ecos-discuss
> 

--

-- 
GONZALEZ Laurent
Silicomp Research Institute
(Continue reading)

Andrew Lunn | 1 Jul 2003 14:19
Picon
Favicon

Re: External SRAM on EB40a

On Tue, Jul 01, 2003 at 02:01:26PM +0200, Ketil Harald Ruud wrote:
> 
> I have an AT91EB40A evaluation board equipped with external SRAM (SAMSUNG
> k6r4008v1c, (512Kx8bits)x2).
> 
> Redboot is loaded to upper half of flash at address 0x01100000. (Redboot can
> also run from on-chip SRAM.)
> 
> Can anybody tell me what kind of modification that are required to access
> the external RAM? When I try to load the hello-world application to external
> RAM, Redboot keeeps telling me that there is no RAM at address 0x2000000 and
> refuses to load.
> I have used "configtool" to generate the ecos application.

You can force redboot to load even though it thinks there is no memory
there. It should ask you this.

You can also disable CYGSEM_REDBOOT_VALIDATE_USER_RAM_LOADS so that it
does not even check.

Redboot is not so good with discontinuous memory. It assumes RAM is
all in one block when performing checks. So disabling the check is
probably a good move anyway.

Does the SRAM need any initialization? I could not see anything in the
EB40a to do the initialization? Even if you do tell redboot to
continue it might still fail because the MMU thinks there is no memory
there and throws an bus error. (Im assuming the EBA40a actually has a
MMU. I know nothing about this HW!).

(Continue reading)

Matthieu.GIRARDIN | 1 Jul 2003 16:26

Playing with memory pool and timeouts ...

Hi everybody !

Does someone know how to fill the last parametre of
cyg_semaphore_timed_wait() ?
Is it the number of ticks real (the system add itself the current realtime)
or must I pass 
to this fonction, as parametre, realtime + nb_ticks ?
I have the same question for the posix fonction mq_timedreceive() with its
structure timespec ...

Another thing; Andrew answered me the number of extra blocks (to calculate
the size to malloc for a 
mempoolspace knowing the size we want) is :
	(size/blocksize) - ((size/blocksize/8/blocksize) + 1
								(Thanks a
lot Andrew)
but : 	1) He told me also, that it's underestimate by 1, so can I change
the "+ 1" by "+ 2" ?
	2) Is it really size/blocksize/8/blocksize ? Is it really a division
of size by blocksize then
	a division by 8 the a division by blocksize ? For me it's the same
thing with
		(size * 8) / (blocksize ² ), am I right ?

Best regards !

A beginner who is learning a lot. Thanks for that !

Matthieu GIRARDIN

(Continue reading)

Andrew Lunn | 1 Jul 2003 16:38
Picon
Favicon

Re: Playing with memory pool and timeouts ...

On Tue, Jul 01, 2003 at 04:26:02PM +0200, Matthieu.GIRARDIN <at> fr.thalesgroup.com wrote:
> Hi everybody !
> 
> Does someone know how to fill the last parametre of
> cyg_semaphore_timed_wait() ?
> Is it the number of ticks real (the system add itself the current realtime)
> or must I pass 
> to this fonction, as parametre, realtime + nb_ticks ?

It takes the absolute time to wake up. So you want to pass something like

(cyg_current_time() + nb_ticks)  

> I have the same question for the posix fonction mq_timedreceive() with its
> structure timespec ...

I've never used the posix code. Im sure you can read the code and work
it out just as easily as i could....

> Another thing; Andrew answered me the number of extra blocks (to calculate
> the size to malloc for a 
> mempoolspace knowing the size we want) is :
> 	(size/blocksize) - ((size/blocksize/8/blocksize) + 1
> 								(Thanks a
> lot Andrew)
> but : 	1) He told me also, that it's underestimate by 1, so can I change
> the "+ 1" by "+ 2" ?
> 	2) Is it really size/blocksize/8/blocksize ? Is it really a division
> of size by blocksize then
> 	a division by 8 the a division by blocksize ? For me it's the same
(Continue reading)

Nick Garnett | 1 Jul 2003 16:53
Favicon

Re: External SRAM on EB40a

Andrew Lunn <andrew.lunn <at> ascom.ch> writes:

> On Tue, Jul 01, 2003 at 02:01:26PM +0200, Ketil Harald Ruud wrote:
> > 
> > I have an AT91EB40A evaluation board equipped with external SRAM (SAMSUNG
> > k6r4008v1c, (512Kx8bits)x2).
> > 
> > Redboot is loaded to upper half of flash at address 0x01100000. (Redboot can
> > also run from on-chip SRAM.)
> > 
> > Can anybody tell me what kind of modification that are required to access
> > the external RAM? When I try to load the hello-world application to external
> > RAM, Redboot keeeps telling me that there is no RAM at address 0x2000000 and
> > refuses to load.
> > I have used "configtool" to generate the ecos application.
> 
> You can force redboot to load even though it thinks there is no memory
> there. It should ask you this.
> 
> You can also disable CYGSEM_REDBOOT_VALIDATE_USER_RAM_LOADS so that it
> does not even check.
> 
> Redboot is not so good with discontinuous memory. It assumes RAM is
> all in one block when performing checks. So disabling the check is
> probably a good move anyway.
> 
> Does the SRAM need any initialization? I could not see anything in the
> EB40a to do the initialization? Even if you do tell redboot to
> continue it might still fail because the MMU thinks there is no memory
> there and throws an bus error. (Im assuming the EBA40a actually has a
(Continue reading)

Partha Palit | 1 Jul 2003 22:50
Picon
Favicon

RE: [ECOS] generating interrupts in ARM-PID (SID simulator)

Hello,

I am back again with questions on generating
interrupt. 

As recommened by Robert, I tried using the interrupt
11.It seemed to work, but it showed up as spurious
interrupt which is not handled by the ARM Hal. I guess
this is becuase ARM recognizes level triggered
interrupts as pointed out by Robert.
-->Q: Could anyone kindly tell how to generate pulses
of definite time period using sid-sched? I guess a
timer can be used, but in the SID configuration file I
see that the timers have inputs from the cpu itself.
Is there anything simpler?

Also I had to manually generate the interrupt in the
SID tksm GUI. Otherwise it was not working.  
-->Q: What am I doing wrong ? Can the duration of the
pulse be controlled in the GUI? Presently, I am just
changing the value in the sched-event field..and I get
a spurious interrupt.

Thanks a lot.

-Partha

--- Robert Cragie <rcc <at> jennic.com> wrote:
> > > I am trying to generate external interrupts and
> handle
(Continue reading)

Frank Ch. Eigler | 2 Jul 2003 01:53
Picon
Favicon
Gravatar

Re: generating interrupts in ARM-PID (SID simulator)

Hi -

On Tue, Jul 01, 2003 at 01:50:14PM -0700, Partha Palit wrote:
> [...]
> As recommened by Robert, I tried using the interrupt
> 11.It seemed to work, but it showed up as spurious
> interrupt which is not handled by the ARM Hal. I guess
> this is becuase ARM recognizes level triggered
> interrupts as pointed out by Robert.

I would be surprised if that were the case.  At the time
that the interrupt is first asserted, the OS has no way
of knowing whether it was an edge or level type interrupt.
If it never even dispatches to your handler, on account of
spuriousity, then there is a software problem.  I would
expect an edge- vs level-triggering problem would show
itself by having an interrupt refusing to be masked off.

> -->Q: Could anyone kindly tell how to generate pulses
> of definite time period using sid-sched? [...]

First thing, one must be aware of how sid models signals
like this.  The basic signalling primitive takes a 32-bit
value, and can be interpreted as a pulse, an edge, or an
abstract event - the interpretation depends on the sender
and receiver.  Modules that want to model level-sensitive
phenomena sometimes use a 1-valued signal for the leading edge
and a 0-valued one for the trailing edge of the entire pulse.

It turns out that the scheduler sends a 0-valued abstract
(Continue reading)

Jonathan Larmour | 2 Jul 2003 04:53
Favicon

Re: redboot specific build options

Mark Salter wrote:
>>>>>>Aaron Richardson writes:
> 
> 
>>How would I go about adding a build specific option?
>>I want to add this to the gcc command line only when I do a redboot build
> 
> 
>>-D REDBOOT_BUILD
> 
> 
>>any idea how to do this?
> 
> 
> Couldn't you use CYGPKG_REDBOOT defined in <pkgconf/system.h>?

(One could argue that should be CYGBLD_BUILD_REDBOOT really... otherwise 
it's not clear what that option serves to do!).

Jifl
-- 
eCosCentric    http://www.eCosCentric.com/    The eCos and RedBoot experts
--[ "You can complain because roses have thorns, or you ]--
--[  can rejoice because thorns have roses." -Lincoln   ]-- Opinions==mine

--

-- 
Before posting, please read the FAQ: http://sources.redhat.com/fom/ecos
and search the list archive: http://sources.redhat.com/ml/ecos-discuss

(Continue reading)


Gmane