Re: [Qemu-devel] [PATCH] hw/sun4m.c fix power addresses

2008-01-26 Thread Robert Reif

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

2008-01-25 Thread Blue Swirl
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

2008-01-25 Thread Robert Reif

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

2008-01-25 Thread Blue Swirl
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

2008-01-23 Thread Robert Reif


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,