linuxppc-dev.lists.ozlabs.org archive mirror
 help / color / mirror / Atom feed
* help with bootup code
@ 1999-04-29  4:37 Bill Whitehead
  1999-04-29 15:25 ` Geert Uytterhoeven
  1999-04-29 17:03 ` Gary Thomas
  0 siblings, 2 replies; 3+ messages in thread
From: Bill Whitehead @ 1999-04-29  4:37 UTC (permalink / raw)
  To: linuxppc-dev; +Cc: parman


I am just learning Linux and hope to port it to a custom platform using
older I/O chipsets(W83c553 and 87307). Basically the system consists of
a 603/MPC106 with 64M sdram, PCI to ISA and IDE interface(W83c553), and
I/O controller(87307). I believe the basic system is already supportted
by Linux but support for I/O chipsets must be added. I am using LinuxPPC
4.1 while waiting for release 5.

I can load the compiled kernel into high memory and jump to head.S.

I have traced the boot code(arch/ppc/boot) and think I understand the
relocate, vga_init, and decompress code but am unable to determine where
the input is coming from when fill_inbuf() is called. It gets input from
an array(input_data[]?) but I can't find where the data is assigned to
that array. I don't see an open call, a pointer assignment, or a memcpy
to draw data from. The kernel isn't running yet so Linux device drivers
aren't supplying the data.

The code is something like "if ( data_ptr < buffer_size) {
data_inbuf[data_ptr] = input_data[offset]; data_ptr++;}". I am sorry but
I don't have the code accessible at the moment. If this is too confusing
to answer, I will re-submit it tomorrow evening when the source code
listings will be available. I check the list in the evening and am
trying to get feedback as soon as possible.

I have been monitoring this list for a few weeks and have not seen these
chips mentioned except once when someone, from Korea(?), indicated they
were interested in porting Linux to a Motorola YellowKnife system which
uses them. (if your that person let me know how its going!)

Thanks in advance for you help,

Bill Whitehead
parman@bwhitehead.com


[[ This message was sent via the linuxppc-dev mailing list.  Replies are ]]
[[ not  forced  back  to the list, so be sure to Cc linuxppc-dev if your ]]
[[ reply is of general interest. Please check http://lists.linuxppc.org/ ]]
[[ and http://www.linuxppc.org/ for useful information before posting.   ]]

^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: help with bootup code
  1999-04-29  4:37 help with bootup code Bill Whitehead
@ 1999-04-29 15:25 ` Geert Uytterhoeven
  1999-04-29 17:03 ` Gary Thomas
  1 sibling, 0 replies; 3+ messages in thread
From: Geert Uytterhoeven @ 1999-04-29 15:25 UTC (permalink / raw)
  To: Bill Whitehead; +Cc: linuxppc-dev


On Wed, 28 Apr 1999, Bill Whitehead wrote:
> I am just learning Linux and hope to port it to a custom platform using
> older I/O chipsets(W83c553 and 87307). Basically the system consists of
> a 603/MPC106 with 64M sdram, PCI to ISA and IDE interface(W83c553), and
> I/O controller(87307). I believe the basic system is already supportted
> by Linux but support for I/O chipsets must be added. I am using LinuxPPC
> 4.1 while waiting for release 5.

> I have been monitoring this list for a few weeks and have not seen these
> chips mentioned except once when someone, from Korea(?), indicated they
> were interested in porting Linux to a Motorola YellowKnife system which
> uses them. (if your that person let me know how its going!)

MPC106, W83c553 and NS87307 are all supported in one or more systems. Hence the
basic code is there.

Greetings,

						Geert

--
Geert Uytterhoeven                     Geert.Uytterhoeven@cs.kuleuven.ac.be
Wavelets, Linux/{m68k~Amiga,PPC~CHRP}  http://www.cs.kuleuven.ac.be/~geert/
Department of Computer Science -- Katholieke Universiteit Leuven -- Belgium


[[ This message was sent via the linuxppc-dev mailing list.  Replies are ]]
[[ not  forced  back  to the list, so be sure to Cc linuxppc-dev if your ]]
[[ reply is of general interest. Please check http://lists.linuxppc.org/ ]]
[[ and http://www.linuxppc.org/ for useful information before posting.   ]]

^ permalink raw reply	[flat|nested] 3+ messages in thread

* RE: help with bootup code
  1999-04-29  4:37 help with bootup code Bill Whitehead
  1999-04-29 15:25 ` Geert Uytterhoeven
@ 1999-04-29 17:03 ` Gary Thomas
  1 sibling, 0 replies; 3+ messages in thread
From: Gary Thomas @ 1999-04-29 17:03 UTC (permalink / raw)
  To: Bill Whitehead; +Cc: linuxppc-dev



On 29-Apr-99 Bill Whitehead wrote:
> 
> I am just learning Linux and hope to port it to a custom platform using
> older I/O chipsets(W83c553 and 87307). Basically the system consists of
> a 603/MPC106 with 64M sdram, PCI to ISA and IDE interface(W83c553), and
> I/O controller(87307). I believe the basic system is already supportted
> by Linux but support for I/O chipsets must be added. I am using LinuxPPC
> 4.1 while waiting for release 5.
> 
> I can load the compiled kernel into high memory and jump to head.S.
> 
> I have traced the boot code(arch/ppc/boot) and think I understand the
> relocate, vga_init, and decompress code but am unable to determine where
> the input is coming from when fill_inbuf() is called. It gets input from
> an array(input_data[]?) but I can't find where the data is assigned to
> that array. I don't see an open call, a pointer assignment, or a memcpy
> to draw data from. The kernel isn't running yet so Linux device drivers
> aren't supplying the data.
> 
> The code is something like "if ( data_ptr < buffer_size) {
> data_inbuf[data_ptr] = input_data[offset]; data_ptr++;}". I am sorry but
> I don't have the code accessible at the moment. If this is too confusing
> to answer, I will re-submit it tomorrow evening when the source code
> listings will be available. I check the list in the evening and am
> trying to get feedback as soon as possible.
> 

This unpacking magic is aided by the kernel build process.  The details
differ depending on the kernel version (2.0.XX is different from 2.1.XX
and 2.2.XX).  The basic idea is that the top level makfile (in /usr/src/linux)
builds a file 'vmlinux' which gets compressed and packed into that array.
Then there is some 'make' magic that puts that together with the bootup
code.

The code you're looking at above deals with the actual unpacking/uncompressing
of the data.  The kernel is uncompressed from the relocated image into low
memory by this process.  Once it's all uncompressed, the bootstrap passes
some data to it and jumps into it to start the kernel.

Hope this helps.

------------------------------------------------------------------------
Gary Thomas                              |
email: gdt@linuxppc.org                  | "Fine wine is a necessity of
   ... opinions expressed here are mine  |        life for me"
       and no one else would claim them! |
                                         |      Thomas Jefferson
------------------------------------------------------------------------



[[ This message was sent via the linuxppc-dev mailing list.  Replies are ]]
[[ not  forced  back  to the list, so be sure to Cc linuxppc-dev if your ]]
[[ reply is of general interest. Please check http://lists.linuxppc.org/ ]]
[[ and http://www.linuxppc.org/ for useful information before posting.   ]]

^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~1999-04-29 17:03 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
1999-04-29  4:37 help with bootup code Bill Whitehead
1999-04-29 15:25 ` Geert Uytterhoeven
1999-04-29 17:03 ` Gary Thomas

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).