Skip to contentSkip to conversation

hw/sun4m.c fix power addresses

PATCH In review Robert Reif 2 participants 5 messages Jan 24, 2008 – Jan 26, 2008

lore
Share & tools
lore
#0 lore raw

PATCH 1/1 hw/sun4m.c fix power addresses

sun4m.c +3 -3
diff -p -u -r1.81 sun4m.c
@@ -687,7 +687,7 @@ static const struct hwdef hwdefs[] = {
         .dma_base     = 0x78400000,
         .esp_base     = 0x78800000,
         .le_base      = 0x78c00000,
-        .power_base   = 0x7a000000,
+        .power_base   = 0x71910000,
         .ecc_base     = -1,
         .sun4c_intctl_base  = -1,
         .sun4c_counter_base = -1,
@@ -727,7 +727,7 @@ static const struct hwdef hwdefs[] = {
         .dma_base     = 0xef0400000ULL,
         .esp_base     = 0xef0800000ULL,
         .le_base      = 0xef0c00000ULL,
-        .power_base   = 0xefa000000ULL,
+        .power_base   = 0xff1a01000ULL,
         .ecc_base     = 0xf00000000ULL,
         .ecc_version  = 0x10000000, // version 0, implementation 1
         .sun4c_intctl_base  = -1,
@@ -811,7 +811,7 @@ static const struct hwdef hwdefs[] = {
         .dma_base     = 0xef0400000ULL,
         .esp_base     = 0xef0800000ULL,
         .le_base      = 0xef0c00000ULL,
-        .power_base   = 0xefa000000ULL,
+        .power_base   = 0xff1a01000ULL,
         .ecc_base     = 0xf00000000ULL,
         .ecc_version  = 0x20000000, // version 0, implementation 2
         .sun4c_intctl_base  = -1,
#1 lore raw
Quoted 3 lines · Robert Reif

diff -p -u -r1.81 sun4m.c

This breaks my tests, so I guess a fix is also needed for OpenBIOS.

#2 lore raw
Quoted 10 lines · Blue Swirl
Quoted 3 lines · Robert Reif

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.

#3 lore raw
Quoted 5 lines · Robert Reif
Quoted 3 lines · Blue Swirl

On 1/24/08, Robert Reif <[email protected]> wrote:

Quoted 8 lines
Quoted 7 lines
Quoted 3 lines

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 0x71910000 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 0x6a000000 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.

#4 lore raw
Quoted 35 lines · Blue Swirl
Quoted 14 lines · Robert Reif
Quoted 10 lines · Blue Swirl
Quoted 5 lines · Robert Reif

diff -p -u -r1.81 sun4m.c

Quoted 8 lines
Quoted 5 lines

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 0x71910000 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 0x6a000000 on SS-5. It does not exist on SS-x0 or SS-600.

Quoted 10 lines

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 power-management@4,a000000