lkoop@pnet01.cts.com (Lamonte Koop) (03/09/91)
I am attempting to write a small routine to add a non-autoconfig memory
board to my system at boot-time through a CoolCapture routine. [So the
configuration does not need to be done in the startup-sequence every
time...it's for an accelerator's memory board]. I have a partially working
routine going, save for one problem...I cannot get the routine to properly
name the memory node. Here's the routine:
CoolRoutine:
movem.l d0-d7/a0-a6,-(sp)
move.l AbsExecBase,a6
move.l #$1fffff,d0 ;size of memory to be added (2-megs)
move.l #$5,d1 ;attribuites
move.l #1,d2 ;priority
move.l #$2000000 ;Starting address
lea.l MemName,a1 ;Name of the block
jsr _LVOAddMemList(a6) ;Add the list node
movem.l (sp)+,d0-d7/a0-a6
rts
MemName: dc.b 'Whatever',0
Now, the routine (and an associated ColdCapture routine) are preserved on teh
system stack. This includes the MemName entry. It looks like this:
Routine start
ColdCapture routine
CoolCapture routine
[Here's where the MemName entry is]
Routine end.
The whole area between the "Routine start" and "Routine End" is on the system
stack. Unfortunately, although this DOES add the memory apon reboot (allowing
many system structures into the 32-bit RAM), it does not show the node name
(I get garbage). I need the name in there as another program looks for it.
Any ideas on how to do this properly? BTW: This is for a CSA Mega Midget 030
board and it's DRAM and SRAM. If anyone can help out, or has done this
before, please let me know. Email or posting here is fine. Thanks in
advance.
LaMonte Koop
Internet: lkoop@pnet01.cts.com ARPA: crash!pnet01!lkoop@nosc.mil
UUCP: {hplabs!hp-sdd ucsd nosc}!crash!pnet01!lkoop
"It's a dog-eat-dog world...and I'm wearing Milk Bone underwear"--Normmcr@Sandelman.OCUnix.On.Ca (Michael Richardson) (03/11/91)
In article <7891@crash.cts.com> lkoop@pnet01.cts.com (Lamonte Koop) writes: >Now, the routine (and an associated ColdCapture routine) are preserved on teh >system stack. This includes the MemName entry. It looks like this: > >Routine start > >ColdCapture routine >CoolCapture routine >[Here's where the MemName entry is] > >Routine end. > >The whole area between the "Routine start" and "Routine End" is on the system >stack. Unfortunately, although this DOES add the memory apon reboot Really. On the system stack? Doesn't that get reset at some point? Does the system really run a single thread (plus jmp's through A5/A4 to return according to Markus Wandel's 1.2 listing) all the way through CoolCapture? I would suspect that you have been lucky and only had the MemName portion trashed. -- :!mcr!: | The postmaster never | - Pay attention only Michael Richardson | resolves twice. | to _MY_ opinions. - HOME: mcr@sandelman.ocunix.on.ca + Small Ottawa nodes contact me Bell: (613) 237-5629 + about joining ocunix.on.ca!