On 17 Jan, Ronald G Minnich wrote:
> On Wed, 17 Jan 2001 [EMAIL PROTECTED] wrote:
> 
>> ...and it doesn't work _real_ early in the boot sequence.  I can't do
>> the ljmp .Lprotected in start32.inc.
> 
> My bet is that I have fouled up ldscript.ld. See what the code address is
> in linuxbios.map. Probably code is at 0x80000 instead of 0xf0000.
> 
> ron

Hmmm... I'm confused:

00080000 A _ROMBASE
00080000 T _image
00080000 T _start
00080000 T _text
00080002 t gdtptr
00080008 t gdt
00080030 t _realstart
00080064 t loop
00080196 t ttys0_tx_al
000801aa t ttys0_tx_hex8
000801ef t ttys0_tx_hex32

It looks like your suspision is correct, but how did I get post codes
from ...  Ahhh, never mind.

The code is located correctly but compiled with incorrect addresses in
it.  Therefore it works until it hits an absolute jmp.

>From ldscript.ld:

_PDATABASE      = 0x4000;
_RAMBASE        = 0x5000;
_KERNSTK        = 0x90000;
_ROMBASE        = 0xf0000;
/*
 * Bootstrap code for the STPC Consumer
 * Copyright (c) 1999 by Net Insight AB. All Rights Reserved.
 *
 * $Id: ldscript.base,v 1.1 2000/12/15 04:31:24 rminnich Exp $
 *
 */

/*
 *      Written by Johan Rydberg, based on work by Daniel Kahlin.
 */
/*
 *      We use ELF as output format. So that we can
 *      debug the code in some form.
 */
OUTPUT_FORMAT("elf32-i386", "elf32-i386", "elf32-i386")
OUTPUT_ARCH(i386)
/* oh, barf. This wont work if all you use is .o's.  -- RGM */

/*
 *      Memory map:
 *
 *      0x00000 (4*4096 bytes)  : stack
 *      0x04000 (4096 bytes)    : private data
 *      0x05000                 : data space
 *      0x90000                 : kernel stack
 *      0xf0000 (64 Kbyte)      : EPROM
 */
MEMORY
{
        ram (rwx) : ORIGIN = 0x00000000, LENGTH = 128M  /* 128 MB memory is max
for STPC */
        rom (rx)  : ORIGIN = 0x000f0000, LENGTH = 128K  /* 128 K EPROM */
}

_PDATABASE      = 0x04000;
_RAMBASE        = 0x05000;
_KERNSTK        = 0x90000;

/* should be parameterized but is not, yuck! */
_ROMBASE        = 0x80000;


What does the first definition of _PDATABASE-_ROMBASE have to do with
the 2nd?  It lookslike _ROMBASE is the only one that isn't the same for
both definitions.

I know nothing of Python but will try to track down the ldscript.ld
generation error.

By hand editing ldscript.ld I get the following serial console output:
-----------------------------------
\r\n\r\nHello world!!\r\nRam Initialize?\r\nRam Initialize?\r\nbefore main\r\nJ.

Welcome to start32, the open sourced starter.
This space will eventually hold more diagnostic information.

January 2000, James Hendricks, Dale Webster, and Ron Minnich.
Version 0.1
-----------------------------------

It stops there.  This kernel image works with pre-reorganized linxbios
and I do have the CMD_LINE set for a serial console.  Do I need some
sort of different kernel patches for the reorganized linuxbios?

I may not have RAM initialization for my system configured correctly. 
That is probably the first place I need to dig a bit as at the moment I
have a "throw it together and see if it works" system for the new stuff.

Thanks!
Ty

-- 
Tyson D Sawyer                             iRobot Corporation
Senior Systems Engineer                    Real World Interface Div.
[EMAIL PROTECTED]                         Robots for the Real World
603-532-6900 ext 206                       http://www.irobot.com

Reply via email to