Re: [ES40-developers] Misc Patches
Status: Alpha
Brought to you by:
iamcamiel
From: Brian W. <bdw...@in...> - 2008-04-30 15:12:51
|
I tried it and it still segfaults, but in a different place. It looks like something isn't quite right: CFloppyController::RestoreState is being called on startup. The stacktrace shows the caller is: myCtrl->register_disk(this,myBus,myDev); The address for the FILE *f in RestoreState is the same as 'this' in the register_disk call, so its jumping to the wrong method in the object. I did a make clean and remade it, but I got the same results. Brian On Tue, 2008-04-29 at 17:12 +0200, Camiel Vanderhoeven wrote: > You're right, there was a mistake in Configurator.cpp (myDevice was > not being set for the floppy device). I fixed this. > > Camiel. > > On Tue, Apr 29, 2008 at 4:58 PM, Brian Wheeler <bdw...@in...> wrote: > > 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 > > > > > > ------------------------------------------------------------------------- > > 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 |