You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

marini.txt 2.1KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152
  1. From: "Paolo Marini" <paolom@prisma-eng.it>
  2. Subject: Etherboot on bare metal
  3. Date: Tue, 10 Apr 2001 23:19:19 +0200
  4. Organization: Prisma Engineering srl
  5. Hi Ken,
  6. I have ported Etherboot on an embedded, biosless platform and would like
  7. to contribute the code.
  8. Essentially, the hardware I was running Etherboot is a Pentium based
  9. embedded system, with an Intel Chipset, *but* without serial, VGA,
  10. keyboard etc., only an 82559 Intel (custom) Ethernet controller (I debug
  11. it with the etheral Ethernet packet analyser and an emulator).
  12. What I did was:
  13. a.. integrate the init.s file within the firmware, with GDT
  14. (re)initialisation (a simple and single entry point taking control of
  15. the boot process)
  16. b.. provide some stupid BIOS stubs in order to let the OS boot and
  17. still belive that an INT10 call goes to the BIOS
  18. c.. provide some basic functions to Etherboot, like timer (I used the
  19. Pentium TSC internal counter)
  20. d.. hardwire in the code information about the RAM size
  21. The BIOS stubs are enough to boot Linux, pSOS and QNX with bootp. QNX is
  22. somewhat difficult to load, because the i82559 driver tries to find the
  23. component using the BIOS32 calls, so I had to patch it.
  24. what i I got from the original firmware is the PCI initialisation and
  25. resource (I/O, interrupts, memory) allocation.
  26. I send you what I changed, that is, the initialisation code and the
  27. misc.c file containing the timer, and the makefile (I don't remember
  28. exactly the options I used to compile all).
  29. Of course, it is only a good starting point for anyone wanting to
  30. implement a bootp client on a biosless platform; some integration work
  31. still needs to be done.
  32. Ciao
  33. Paolo
  34. And in a subsequent email:
  35. I worked with version 4.6.12, but the real modifications involve the
  36. init.S file, which I think is quite sstable between releases. I forgot
  37. to say that my entry point (symbol _start in init.s) assumes the
  38. processor is already in protected mode.
  39. [The only difference between main.c and misc.c from those in Etherboot
  40. 4.6.12 seems to be the deletion of eth_reset(). This may be of use to
  41. others trying to make these changes work on more recent releases. Ken]