Re: [ES40-developers] Misc Patches
Status: Alpha
Brought to you by:
iamcamiel
|
From: Brian W. <bdw...@in...> - 2008-04-29 14:59:20
|
I haven't had a chance to check this against my disk images: I'm
getting a segfault on startup. It looks like pParent->get_device() is
returning NULL when called by the CDiskFile class when a child of the
floppy. Here's the backtrace I'm getting:
0: CDisk() @ Disk.cpp:162 -> myCtrl->register_disk(this, myBus, myDev);
(myCtrl == NULL)
1: CDiskFile() @ DiskFile.cpp:104 -> CDisk(cfg, sys, c, idebus, idedev)
(c == NULL)
2: Configurator::initialize() @ Configurator.cpp:909 ->
myDevice = new CDiskFile(this, theSystem,
(CDiskController*) pParent->get_device(),
idebus,
idedev);
So it looks like something isn't being initialized properly...
Brian
On Tue, 2008-04-29 at 15:44 +0200, Camiel Vanderhoeven wrote:
> P.S. I've also updated the configuration-file utility to include floppy support.
>
> On Tue, Apr 29, 2008 at 11:57 AM, Camiel Vanderhoeven
> <iam...@gm...> wrote:
> > Hello again,
> >
> > I've changed the floppy stuff to use the CDisk class. To add a
> > floppy-controller to your emulated system, you should add these lines
> > to your configuration file:
> >
> > fdc0=floppy
> > {
> > disk0.0={...}
> > disk0.1={...}
> > }
> >
> > Brian, could you check this with the floppy images you have? I've
> > tried to do this without taking enough time to fully understand the
> > floppy code, so I might be wrong somewhere...
> >
> > Camiel.
> >
> >
> >
> > On Tue, Apr 29, 2008 at 10:27 AM, Camiel Vanderhoeven
> > <iam...@gm...> wrote:
> > > Hi Brian,
> > >
> > > I've applied the system patch. I've changed it a little so the range
> > > check is only performed when CHECK_MEM_RANGES is defined. I've added
> > > both defines to the configure_1.m4 script, with default values of
> > > false for DUMP_MEMMAP and true for CHECK_MEM_RANGES.
> > >
> > > I've also updated CDiskController and all its descendants to eliminate
> > > the dependence on CPCIDevice. I'll now start on adapting your floppy
> > > changes to use CDisk disk images (or real devices). I'll also make it
> > > possible to disable the floppy-device entirely for the people that
> > > don't need it (probably the majority of users).
> > >
> > > As for removable media: this is something we should start addressing
> > > sometime soon. I'm proposing to handle this in two possible ways:
> > >
> > > 1) for physical devices (CDiskDevice) we should check with the OS
> > > whether a media change has occurred.
> > >
> > > 2) for non-phisical devices, I'm proposing the introduction of a new
> > > Disk Class (CDiskChanger?) that is both a CDisk and a CDiskController.
> > > Other disks connect to it, and which disk is active can be selected
> > > through the serial port menu. The DiskChanger class itself is a simple
> > > wrapper around the selected disk's methods. So you'd have something
> > > like this in the config file:
> > >
> > > disk0.0 = changer {
> > > disk 0.0 = {...}
> > > disk 0.1 = {...}
> > > ...
> > > }
> > >
> > > Camiel.
> > >
> > >
> > >
> > > On Tue, Apr 22, 2008 at 3:58 PM, Brian Wheeler <bdw...@in...> wrote:
> > > > Here's a few patches for things I've been working on:
> > > >
> > > >
> > > > 1) system.diff
> > > >
> > > > * if DUMP_MEMMAP is defined, es40 drops out its memory map in the order
> > > > that it is searched:
> > > >
> > > > ES40 Memory Map
> > > > Physical Address Size Device/Index
> > > > ---------------- -------- -------------------------
> > > > 0000080110000000 100000 sys0(tsunami)/0
> > > > 0000080100000000 8000000 sys0(tsunami)/0
> > > > 00000801fc000080 1 pci0.7(ali)/0
> > > > 00000801fc000000 8 pci0.7(ali)/4100
> > > > 00000801fc000008 8 pci0.7(ali)/4096
> > > > 00000801fc000081 b pci0.7(ali)/4098
> > > > 00000801fc0000c0 10 pci0.7(ali)/4101
> > > > 00000801fc0000d0 10 pci0.7(ali)/4097
> > > > 00000801fc000481 b pci0.7(ali)/4099
> > > > 00000801fc00040b 1 pci0.7(ali)/4102
> > > > 00000801fc0004d6 1 pci0.7(ali)/4103
> > > > 00000801fc0003f0 6 pci0.7(ali)/0
> > > > 00000801fc0003f7 1 pci0.7(ali)/1
> > > > 00000801fe009800 100 pci0.19(ali_usb)/2055
> > > > 00000801fc000061 1 pci0.7(ali)/1
> > > > 00000801fc000070 4 pci0.7(ali)/2
> > > > 00000801fe003800 100 pci0.7(ali)/2055
> > > > 00000801fc000040 4 pci0.7(ali)/6
> > > > 00000801fc000020 2 pci0.7(ali)/7
> > > > 00000801fc0000a0 2 pci0.7(ali)/8
> > > > 00000801fc0004d0 2 pci0.7(ali)/30
> > > > 00000801f8000000 1 pci0.7(ali)/20
> > > > 00000801fc0003bc 4 pci0.7(ali)/27
> > > > 00000801fc000060 1 pci0.7(ali)/0
> > > > 00000801fc000064 1 pci0.7(ali)/1
> > > > 00000801fc0001f0 8 pci0.15(ali_ide)/1
> > > > 00000801fc0003f6 1 pci0.15(ali_ide)/2
> > > > 00000801fc000170 8 pci0.15(ali_ide)/3
> > > > 00000801fc000376 2 pci0.15(ali_ide)/4
> > > > 00000801fc00f000 8 pci0.15(ali_ide)/5
> > > > 00000801fc00f008 8 pci0.15(ali_ide)/6
> > > > 00000801fe007800 100 pci0.15(ali_ide)/2055
> > > > 00000801fc0001f0 8 pci0.15(ali_ide)/2048
> > > > 00000801fc0003f4 4 pci0.15(ali_ide)/2049
> > > > 00000801fc000170 8 pci0.15(ali_ide)/2050
> > > > 00000801fc000374 4 pci0.15(ali_ide)/2051
> > > > 00000801fc00f000 10 pci0.15(ali_ide)/2052
> > > > 00000801fc0003f8 8 serial0(serial)/0
> > > >
> > > > * When changing/defining memory regions, a simple bounds check is
> > > > performed, which prints out warnings if there appears to be an overlap:
> > > >
> > > > WARNING: Start address for pci0.15(ali_ide)/2049 (00000801fc0003f4-00000801fc0003f7)
> > > > is within memory range of pci0.7(ali)/0 (00000801fc0003f0-00000801fc0003f5).
> > > > WARNING: End address for pci0.15(ali_ide)/2049 (00000801fc0003f4-00000801fc0003f7)
> > > > is within memory range of pci0.7(ali)/1 (00000801fc0003f7-00000801fc0003f7).
> > > >
> > > >
> > > > 2) floppy.diff
> > > >
> > > > This covers DMA.* FloppyController.* and PCIDevice.h changes to make the
> > > > floppy sort of work. It won't boot from it and I can't figure out why.
> > > > It is hardcoded to use disk1of3 from NetBSD 4.0 and is really messy, but
> > > > it is a start.
> > > >
> > > > P00>>>boot dva0
> > > > (boot dva0.0.0.1000.0 -flags A)
> > > > Block 001E2000 is not in any zone, call pc aa524
> > > > Block 001E6000 is not in any zone, call pc aa524
> > > > block 0 of dva0.0.0.1000.0 is not a valid boot block
> > > > bootstrap failure
> > > > P00>>>
> > > >
> > > > Brian
> > > >
> > >
> > >
> > > > -------------------------------------------------------------------------
> > > > This SF.net email is sponsored by the 2008 JavaOne(SM) Conference
> > > > Don't miss this year's exciting event. There's still time to save $100.
> > > > Use priority code J8TL2D2.
> > > > http://ad.doubleclick.net/clk;198757673;13503038;p?http://java.sun.com/javaone
> > > > _______________________________________________
> > > > Es40-developers mailing list
> > > > Es4...@li...
> > > > https://lists.sourceforge.net/lists/listinfo/es40-developers
> > > >
> > > >
> > >
> >
>
> -------------------------------------------------------------------------
> This SF.net email is sponsored by the 2008 JavaOne(SM) Conference
> Don't miss this year's exciting event. There's still time to save $100.
> Use priority code J8TL2D2.
> http://ad.doubleclick.net/clk;198757673;13503038;p?http://java.sun.com/javaone
> _______________________________________________
> Es40-developers mailing list
> Es4...@li...
> https://lists.sourceforge.net/lists/listinfo/es40-developers
|