Re: [Qemu-devel] [PATCH] hw/sun4m.c fix power addresses
Blue Swirl wrote: On 1/25/08, Robert Reif <[EMAIL PROTECTED]> wrote: Blue Swirl wrote: On 1/24/08, Robert Reif <[EMAIL PROTECTED]> wrote: diff -p -u -r1.81 sun4m.c This breaks my tests, so I guess a fix is also needed for OpenBIOS. Probably, they were tested using ss5/170 and ss10 openboot images. I just noticed that we have confused the devices that OBP calls 'power' and 'power-management'. Power or Aux 2 or Software Powerdown Control can be used to reset or power down the system. OBP trees confirm that it is located at 0x7191 on SS-5 and 0xff1a01000 on SS-10/20. It does not exist on SS-600. Power-management a.k.a. APC is used to halt the CPU when idle. It is located at 0x6a00 on SS-5. It does not exist on SS-x0 or SS-600. So, Aux2 on SS-10/20 and APC on SS-5 should move to the correct locations. Now, what to do with the rest? These are motherboard devices, they cannot be added to or removed from real life hardware. Leaving the devices out to improve historical accuracy would mean that the system can't be reset or powered down on SS-600, and on SS-10/20/600 Qemu will consume 100% of host CPU even when the target is idling. This would not be an improvement in usability for sure. I have a patch waiting to fix the power/aux2 and also aux1. It adds a seperate address for auxio. power and AUX2 are the same devices on ss5,10 and 20 but at different addresse/offsets. 600mp doesn't have it. auxio is AUX1 and are the sort of the same devices on an ss5 and 10/20 but at different address/offsets. 600mp doesn't have it. The AUX1 bit layout of an ss5 (SLAVIO) is also different from a 10/20 (SEC). I'm not sure how power-management fits in there other than it's an sbus device: ffd50130 [EMAIL PROTECTED],a00
Re: [Qemu-devel] [PATCH] hw/sun4m.c fix power addresses
On 1/25/08, Robert Reif <[EMAIL PROTECTED]> wrote: > Blue Swirl wrote: > > >On 1/24/08, Robert Reif <[EMAIL PROTECTED]> wrote: > > > > > >>diff -p -u -r1.81 sun4m.c > >> > >> > > > >This breaks my tests, so I guess a fix is also needed for OpenBIOS. > > > > > Probably, they were tested using ss5/170 and ss10 openboot images. I just noticed that we have confused the devices that OBP calls 'power' and 'power-management'. Power or Aux 2 or Software Powerdown Control can be used to reset or power down the system. OBP trees confirm that it is located at 0x7191 on SS-5 and 0xff1a01000 on SS-10/20. It does not exist on SS-600. Power-management a.k.a. APC is used to halt the CPU when idle. It is located at 0x6a00 on SS-5. It does not exist on SS-x0 or SS-600. So, Aux2 on SS-10/20 and APC on SS-5 should move to the correct locations. Now, what to do with the rest? These are motherboard devices, they cannot be added to or removed from real life hardware. Leaving the devices out to improve historical accuracy would mean that the system can't be reset or powered down on SS-600, and on SS-10/20/600 Qemu will consume 100% of host CPU even when the target is idling. This would not be an improvement in usability for sure.
Re: [Qemu-devel] [PATCH] hw/sun4m.c fix power addresses
Blue Swirl wrote: On 1/24/08, Robert Reif <[EMAIL PROTECTED]> wrote: diff -p -u -r1.81 sun4m.c This breaks my tests, so I guess a fix is also needed for OpenBIOS. Probably, they were tested using ss5/170 and ss10 openboot images.
Re: [Qemu-devel] [PATCH] hw/sun4m.c fix power addresses
On 1/24/08, Robert Reif <[EMAIL PROTECTED]> wrote: > > > diff -p -u -r1.81 sun4m.c This breaks my tests, so I guess a fix is also needed for OpenBIOS.
[Qemu-devel] [PATCH] hw/sun4m.c fix power addresses
diff -p -u -r1.81 sun4m.c --- hw/sun4m.c 17 Jan 2008 21:04:16 - 1.81 +++ hw/sun4m.c 24 Jan 2008 05:06:38 - @@ -687,7 +687,7 @@ static const struct hwdef hwdefs[] = { .dma_base = 0x7840, .esp_base = 0x7880, .le_base = 0x78c0, -.power_base = 0x7a00, +.power_base = 0x7191, .ecc_base = -1, .sun4c_intctl_base = -1, .sun4c_counter_base = -1, @@ -727,7 +727,7 @@ static const struct hwdef hwdefs[] = { .dma_base = 0xef040ULL, .esp_base = 0xef080ULL, .le_base = 0xef0c0ULL, -.power_base = 0xefa00ULL, +.power_base = 0xff1a01000ULL, .ecc_base = 0xfULL, .ecc_version = 0x1000, // version 0, implementation 1 .sun4c_intctl_base = -1, @@ -811,7 +811,7 @@ static const struct hwdef hwdefs[] = { .dma_base = 0xef040ULL, .esp_base = 0xef080ULL, .le_base = 0xef0c0ULL, -.power_base = 0xefa00ULL, +.power_base = 0xff1a01000ULL, .ecc_base = 0xfULL, .ecc_version = 0x2000, // version 0, implementation 2 .sun4c_intctl_base = -1,