* Eric W Biederman <[EMAIL PROTECTED]> [020817 21:37]:
> Stefan Reinauer <[EMAIL PROTECTED]> writes:
> 
> > * Eric W Biederman <[EMAIL PROTECTED]> [020815 05:14]:
> > > Stefan Reinauer <[EMAIL PROTECTED]> writes:
> > > 
> > > > * Eric W Biederman <[EMAIL PROTECTED]> [020808 13:50]:
> > > > > For the record 5.1 is the bleeding edge developer version of etherboot 
> > > > > and it almost worked :)  The 5.0.x is the stable series, and since
> > > > > 5.0.6 or so has native LinuxBIOS support.
> > > >  
> > > > I saw the IDE code that went into 5.1 and wanted to give it a try while
> > > > still being able to network boot the machine for testing. Unfortunately
> > > > typing "L" at the prompt just hangs the machine, but etherboot probably
> > > > does not even know where it should load the kernel from, so i have to
> > > > look deeper into this
> > > 
> > > Now that you have something that works, how has the playing gone?
> > 
> > I did not get to look into it until after your latest CVS updates. I'm 
> > currently not able to build either of .elf, .ebi, .lzebi, ...
> > Is there any secrets necessary to build these due to the new device
> > probing scheme?
> 
> I have a left over dependency in the Makefile to config-pci.o instead of
> config.o  Sorry.
> 
> For targets I have simplified it slightly and there is just .elf and .lzelf.

Ah, good. I only found two places where virt_to_bus is definitely
needed. With below patch applied, I get the following output when
chainloading etherboot (I have some rc1 cvs in flash and latest cvs as
elfimage) It loads itself the second time, but hangs after this.
Does this fail because it tries to relocate to the same position?

--------------------------------------------------------------------
Welcome to elfboot, the open sourced starter.
January 2002, Eric Biederman.
Version 1.2

    37:init_bytes() - zkernel_start:0xfffe0000  zkernel_mask:0x0000ffff
Found ELF candiate at offset 0
New segment addr 0x94000 size 0x89e4 offset 0x60 filesize 0x40c4
(cleaned up) New segment addr 0x94000 size 0x89e4 offset 0x60 filesize
0x40c4
Loading Segment: addr: 0x0000000000094000 memsz: 0x00000000000089e4
filesz: 0x00
000000000040c4
Clearing Segment: addr: 0x00000000000980c4 memsz: 0x0000000000004920
Jumping to boot code
ROM segment 0xc1ae length 0x2c12 reloc 0x9400
Etherboot 5.1.2rc1 (GPL) Tagged ELF for [RTL8139]
Boot from (N)etwork or from (L)ocal? CPU 234 Mhz
N
Probing...[RTL8139]Found Realtek 8139 ROM address 0x0000
 - The PCI BIOS has not enabled this device!
Updating PCI command 0003->0007. pci_bus 00 pci_device_fn 78
ioaddr 0X1000, addr 00:E0:4C:88:02:A5 100Mbps full-duplex
Searching for server (DHCP)...
Me: 192.168.0.13, Server: 192.168.0.23, Gateway 192.168.0.50
Loading 192.168.0.23:vmlinux.elf (ELF)... Loading Etherboot version:
5.1.2rc2
done
ROM segment 0xc1ae length 0x2c12 reloc 0x00021000
Etherboot 5.1.2rc2 (GPL) Tagged ELF for [RTL8139]
Relocating _text from: [000260cc,0002ed1c) to [01bf73b0,01c00000)
Boot from (N)etwork or from (L)ocal? CPU 234 Mhz
N
Probing...[RTL8139]Found Realtek 8139 ROM address 0x0000
 - ioaddr 0X1000, addr 00:E0:4C:88:02:A5 100Mbps full-duplex
Searching for server (DHCP)...
Me: 192.168.0.13, Server: 192.168.0.23, Gateway 192.168.0.50
Loading 192.168.0.23:vmlinux.elf (ELF)... Loading Etherboot version:
5.1.2rc2
done
--------------------------------------------------------------------



Stefan


-- 
The x86 isn't all that complex - it just doesn't make a lot of
sense.          -- Mike Johnson, Leader of 80x86 Design at AMD
                                  Microprocessor Report (1994)
Index: Makefile
===================================================================
RCS file: /cvsroot/etherboot/etherboot/etherboot-5.1/src/Makefile,v
retrieving revision 1.12
diff -u -r1.12 Makefile
--- Makefile    17 Aug 2002 00:52:13 -0000      1.12
+++ Makefile    17 Aug 2002 23:36:45 -0000
@@ -373,8 +373,8 @@
        $(LD32) -Ttext 0x10000 $(LDBINARY32) -o $@ $<
 
 # general ruls for generating .img files
-bin32/%.tmp: bin32/%.o bin32/config-pci.o bin32/pci.o $(STDDEPS32)
-       $(LD32) $(LDFLAGS32) -o $@ $(START32) bin32/config-pci.o $< bin32/pci.o 
$(LIBS32)
+bin32/%.tmp: bin32/%.o bin32/config.o bin32/pci.o $(STDDEPS32)
+       $(LD32) $(LDFLAGS32) -o $@ $(START32) bin32/config.o $< bin32/pci.o $(LIBS32)
        @$(SIZE32) $@ | $(CHECKSIZE)
 
 bin32/%.img: bin32/%.tmp $(MAKEDEPS)
Index: rtl8139.c
===================================================================
RCS file: /cvsroot/etherboot/etherboot/etherboot-5.1/src/rtl8139.c,v
retrieving revision 1.7
diff -u -r1.7 rtl8139.c
--- rtl8139.c   17 Aug 2002 00:52:13 -0000      1.7
+++ rtl8139.c   17 Aug 2002 23:36:47 -0000
@@ -319,7 +319,7 @@
 #ifdef DEBUG_RX
        printf("rx ring address is %X\n",(unsigned long)rx_ring);
 #endif
-       outl((unsigned long)rx_ring, ioaddr + RxBuf);
+       outl((unsigned long)virt_to_bus(rx_ring), ioaddr + RxBuf);
 
        /* Start the chip's Tx and Rx process. */
        outl(0, ioaddr + RxMissed);
@@ -358,7 +358,7 @@
                tx_buffer[len++] = '\0';
        }
 
-       outl((unsigned long)tx_buffer, ioaddr + TxAddr0 + cur_tx*4);
+       outl((unsigned long)virt_to_bus(tx_buffer), ioaddr + TxAddr0 + cur_tx*4);
        outl(((TX_FIFO_THRESH<<11) & 0x003f0000) | len,
                ioaddr + TxStatus0 + cur_tx*4);
 

Reply via email to