⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 marini.txt

📁 linux下从网卡远程启动
💻 TXT
字号:
From: "Paolo Marini" <paolom@prisma-eng.it>Subject: Etherboot on bare metalDate: Tue, 10 Apr 2001 23:19:19 +0200Organization: Prisma Engineering srlHi Ken,I have ported Etherboot on an embedded, biosless platform and would liketo contribute the code.Essentially, the hardware I was running Etherboot is a Pentium basedembedded system, with an Intel Chipset, *but* without serial, VGA,keyboard etc., only an 82559 Intel (custom) Ethernet controller (I debugit with the etheral Ethernet packet analyser and an emulator).What I did was:  a.. integrate the init.s file within the firmware, with GDT(re)initialisation (a simple and single entry point taking control ofthe boot process)  b.. provide some stupid BIOS stubs in order to let the OS boot andstill belive that an INT10 call goes to the BIOS  c.. provide some basic functions to Etherboot, like timer (I used thePentium TSC internal counter)  d.. hardwire in the code information about the RAM sizeThe BIOS stubs are enough to boot Linux, pSOS and QNX with bootp. QNX issomewhat difficult to load, because the i82559 driver tries to find thecomponent using the BIOS32 calls, so I had to patch it.what i I got from the original firmware is the PCI initialisation andresource (I/O, interrupts, memory) allocation.I send you what I changed, that is, the initialisation code and themisc.c file containing the timer, and the makefile (I don't rememberexactly the options I used to compile all).Of course, it is only a good starting point for anyone wanting toimplement a bootp client on a biosless platform; some integration workstill needs to be done.CiaoPaoloAnd in a subsequent email:I worked with version 4.6.12, but the real modifications involve theinit.S file, which I think is quite sstable between releases.  I forgotto say that my entry point (symbol _start in init.s) assumes theprocessor is already in protected mode.[The only difference between main.c and misc.c from those in Etherboot4.6.12 seems to be the deletion of eth_reset(). This may be of use toothers trying to make these changes work on more recent releases. Ken]

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -