Port-powerpc archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Re: NetBSD/be



NetBSD/be began to work somehow.

Current Status:
>single user mode up (/bin/sh works)
>single MPU support (MPU1 illuminates LED :-)
>DDB works (from OpenBSD/powerpc) 
>available VGA & serial console
>NE2000 compatible ISA Ethernet CARD works (root mount via NFS) 

I put snapshot of sources and binary on
<URL:http://www.cec.co.jp/usr/sakamoto/NetBSD/>.
nfs,bootparam,bootp server is necessary to work NetBSD/be single user mode.

How to start is as the following:

1. write disk image to floppy disks
        % gunzip beboot.img.gz
        % dd if=beboot.img of=/dev/fd0
        In the same way, kernel.img.gz, too.

        If your BeBox have older than AAPR BootROM,
        It will fail to boot with "beboot.img" floppy.
        Try this:
         1. format floppy disk with BeOS filesystem
         2. copy and rename "boot.pef" to "system/kernel"
           Example:
            $ cd floppy_disk_directory
            $ mkdir system
            $ cp /tmp/boot.pef system/kernel

2. setup nfs,bootparam,bootp server
        root.tar.gz is root filesystem.
        It includes some ELF binaries (NetBSD/powerpc compatible).

3. With the BeBox turned off, insert beboot.img floppy disk
   in the floppy disk drive and Turn on the BeBox.
   # Even if it is reset, it doesn't care.

4. Messages inform you.
     >> NetBSD/be BOOT
     >>
   Eject the floppy disk, insert the kernel.img floppy disk,
   and press Return.
        ...booting NetBSD kernel...

5. input root device name and file system name.
        root device: ed0
        file system (default generic): nfs

6. /bin/sh start!


There are two questions.
Before, too, though it was written, SIGSEGV occurs.
When SIGSEGV occurs, the value of prot is 0x5(VM_PROT_READ|VM_PROT_EXECUTE),
the value of fault_type is 0x3(VM_PROT_READ|VM_PROT_WRITE)
in vm/vm_map.c line 2373.
By way of experiment, I surrounded this with #if 0-#endif.
Doesn't this occur in NetBSD/powerpc current?

As for one more question,
So far as I read it, splx() call softnet() directly.
Doesn't a waste arise once in this when the reception of network interrupts?

Sequence receive interrupt:
edintr() -> ed_rint() -> ... -> ether_input() ->
 schednetisr(NETISR_IP) -> setsoftnet() -> IF_ENQUEUE(inq, m)

setsoftnet() is soft_setsoftnet() with NetBSD/powerpc and NetBSD/be.
soft_setsoftnet() call soft_splx().
At this time, I don't think that receiving work is started
in the IP layer because IF_ENQUEUE() isn't being done with
soft_setsoftnet() when soft_splx() is called. 

Kazuki Sakamoto
sakamoto%cec.co.jp@localhost



Home | Main Index | Thread Index | Old Index