[PATCH 02/11] hw/hppa: Disable Artist graphics card on 64-bit machines

Helge Deller posted 11 patches 2 days, 3 hours ago
Maintainers: Richard Henderson <richard.henderson@linaro.org>, Helge Deller <deller@gmx.de>
[PATCH 02/11] hw/hppa: Disable Artist graphics card on 64-bit machines
Posted by Helge Deller 2 days, 3 hours ago
From: Helge Deller <deller@gmx.de>

The original Artist graphics used the GSC bus, was often installed in old
32-bit machines (e.g. 715) and can not be used on 64-bit machines.
This is why this patch makes the artist driver dependend on the Lasi chip,
which was never used in a 64-bit machine.

Note that there exists a variant of Artist for the PCI-bus (Visualize-EG PCI).
It has quite some differences in the registers, and would require that we write
a PCI ROM for it, so that Linux and HP-UX would be able to use it.

Instead, for now, users can simply use a standard VGA or ATI PCI graphics card
on Linux.  This can be enabled on the command line with "-device ati-vga" or
"-device VGA".  If the "-nographic" option is omitted, a PCI OCHI controller
with USB keyboard and USB mouse will be added automatically.

This fixes graphics support on 64-bit hppa machines and allows us to boot up a
64-bit Linux installation with VGA graphics.

Signed-off-by: Helge Deller <deller@gmx.de>
---
 hw/hppa/machine.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/hw/hppa/machine.c b/hw/hppa/machine.c
index 3663bac53b..58e76bee2e 100644
--- a/hw/hppa/machine.c
+++ b/hw/hppa/machine.c
@@ -384,7 +384,8 @@ static void machine_HP_common_init_tail(MachineState *machine, PCIBus *pci_bus,
     SysBusDevice *s;
 
     /* Graphics setup. */
-    if (machine->enable_graphics && vga_interface_type != VGA_NONE) {
+    if (lasi_dev && machine->enable_graphics &&
+        vga_interface_type != VGA_NONE) {
         dev = qdev_new("artist");
         s = SYS_BUS_DEVICE(dev);
         bool disabled = object_property_get_bool(OBJECT(dev), "disable", NULL);
-- 
2.53.0
Re: [PATCH 02/11] hw/hppa: Disable Artist graphics card on 64-bit machines
Posted by Philippe Mathieu-Daudé 2 days, 3 hours ago
On 30/3/26 23:18, Helge Deller wrote:
> From: Helge Deller <deller@gmx.de>
> 
> The original Artist graphics used the GSC bus, was often installed in old
> 32-bit machines (e.g. 715) and can not be used on 64-bit machines.
> This is why this patch makes the artist driver dependend on the Lasi chip,
> which was never used in a 64-bit machine.
> 
> Note that there exists a variant of Artist for the PCI-bus (Visualize-EG PCI).
> It has quite some differences in the registers, and would require that we write
> a PCI ROM for it, so that Linux and HP-UX would be able to use it.
> 
> Instead, for now, users can simply use a standard VGA or ATI PCI graphics card
> on Linux.  This can be enabled on the command line with "-device ati-vga" or
> "-device VGA".  If the "-nographic" option is omitted, a PCI OCHI controller
> with USB keyboard and USB mouse will be added automatically.
> 
> This fixes graphics support on 64-bit hppa machines and allows us to boot up a
> 64-bit Linux installation with VGA graphics.
> 
> Signed-off-by: Helge Deller <deller@gmx.de>
> ---
>   hw/hppa/machine.c | 3 ++-
>   1 file changed, 2 insertions(+), 1 deletion(-)
> 
> diff --git a/hw/hppa/machine.c b/hw/hppa/machine.c
> index 3663bac53b..58e76bee2e 100644
> --- a/hw/hppa/machine.c
> +++ b/hw/hppa/machine.c
> @@ -384,7 +384,8 @@ static void machine_HP_common_init_tail(MachineState *machine, PCIBus *pci_bus,
>       SysBusDevice *s;
>   
>       /* Graphics setup. */
> -    if (machine->enable_graphics && vga_interface_type != VGA_NONE) {
> +    if (lasi_dev && machine->enable_graphics &&
> +        vga_interface_type != VGA_NONE) {

Pre-existing, 'lasi_dev' being a static variable isn't really helpful.

Back to this patch:
Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org>

Although a distinct descriptive boolean variable could be used
instead for clarity, rather than testing LASI presence.

Re: [PATCH 02/11] hw/hppa: Disable Artist graphics card on 64-bit machines
Posted by Helge Deller 1 day, 16 hours ago
On 3/30/26 23:42, Philippe Mathieu-Daudé wrote:
> On 30/3/26 23:18, Helge Deller wrote:
>> From: Helge Deller <deller@gmx.de>
>>
>> The original Artist graphics used the GSC bus, was often installed in old
>> 32-bit machines (e.g. 715) and can not be used on 64-bit machines.
>> This is why this patch makes the artist driver dependend on the Lasi chip,
>> which was never used in a 64-bit machine.
>>
>> Note that there exists a variant of Artist for the PCI-bus (Visualize-EG PCI).
>> It has quite some differences in the registers, and would require that we write
>> a PCI ROM for it, so that Linux and HP-UX would be able to use it.
>>
>> Instead, for now, users can simply use a standard VGA or ATI PCI graphics card
>> on Linux.  This can be enabled on the command line with "-device ati-vga" or
>> "-device VGA".  If the "-nographic" option is omitted, a PCI OCHI controller
>> with USB keyboard and USB mouse will be added automatically.
>>
>> This fixes graphics support on 64-bit hppa machines and allows us to boot up a
>> 64-bit Linux installation with VGA graphics.
>>
>> Signed-off-by: Helge Deller <deller@gmx.de>
>> ---
>>   hw/hppa/machine.c | 3 ++-
>>   1 file changed, 2 insertions(+), 1 deletion(-)
>>
>> diff --git a/hw/hppa/machine.c b/hw/hppa/machine.c
>> index 3663bac53b..58e76bee2e 100644
>> --- a/hw/hppa/machine.c
>> +++ b/hw/hppa/machine.c
>> @@ -384,7 +384,8 @@ static void machine_HP_common_init_tail(MachineState *machine, PCIBus *pci_bus,
>>       SysBusDevice *s;
>>       /* Graphics setup. */
>> -    if (machine->enable_graphics && vga_interface_type != VGA_NONE) {
>> +    if (lasi_dev && machine->enable_graphics &&
>> +        vga_interface_type != VGA_NONE) {
> 
> Pre-existing, 'lasi_dev' being a static variable isn't really helpful.

Yes, can be done post-v11.
Where would it belong? Into MachineState?

> Back to this patch:
> Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org>

Thanks!
  
> Although a distinct descriptive boolean variable could be used
> instead for clarity, rather than testing LASI presence.

Helge
Re: [PATCH 02/11] hw/hppa: Disable Artist graphics card on 64-bit machines
Posted by Philippe Mathieu-Daudé 1 day, 15 hours ago
On 31/3/26 10:58, Helge Deller wrote:
> On 3/30/26 23:42, Philippe Mathieu-Daudé wrote:
>> On 30/3/26 23:18, Helge Deller wrote:
>>> From: Helge Deller <deller@gmx.de>
>>>
>>> The original Artist graphics used the GSC bus, was often installed in 
>>> old
>>> 32-bit machines (e.g. 715) and can not be used on 64-bit machines.
>>> This is why this patch makes the artist driver dependend on the Lasi 
>>> chip,
>>> which was never used in a 64-bit machine.
>>>
>>> Note that there exists a variant of Artist for the PCI-bus 
>>> (Visualize-EG PCI).
>>> It has quite some differences in the registers, and would require 
>>> that we write
>>> a PCI ROM for it, so that Linux and HP-UX would be able to use it.
>>>
>>> Instead, for now, users can simply use a standard VGA or ATI PCI 
>>> graphics card
>>> on Linux.  This can be enabled on the command line with "-device ati- 
>>> vga" or
>>> "-device VGA".  If the "-nographic" option is omitted, a PCI OCHI 
>>> controller
>>> with USB keyboard and USB mouse will be added automatically.
>>>
>>> This fixes graphics support on 64-bit hppa machines and allows us to 
>>> boot up a
>>> 64-bit Linux installation with VGA graphics.
>>>
>>> Signed-off-by: Helge Deller <deller@gmx.de>
>>> ---
>>>   hw/hppa/machine.c | 3 ++-
>>>   1 file changed, 2 insertions(+), 1 deletion(-)
>>>
>>> diff --git a/hw/hppa/machine.c b/hw/hppa/machine.c
>>> index 3663bac53b..58e76bee2e 100644
>>> --- a/hw/hppa/machine.c
>>> +++ b/hw/hppa/machine.c
>>> @@ -384,7 +384,8 @@ static void 
>>> machine_HP_common_init_tail(MachineState *machine, PCIBus *pci_bus,
>>>       SysBusDevice *s;
>>>       /* Graphics setup. */
>>> -    if (machine->enable_graphics && vga_interface_type != VGA_NONE) {
>>> +    if (lasi_dev && machine->enable_graphics &&
>>> +        vga_interface_type != VGA_NONE) {
>>
>> Pre-existing, 'lasi_dev' being a static variable isn't really helpful.
> 
> Yes, can be done post-v11.
> Where would it belong? Into MachineState?

HppaMachineState that would encapsulate MachineState.
(hint: git grep ' MachineState parent_obj')

> 
>> Back to this patch:
>> Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org>
> 
> Thanks!
> 
>> Although a distinct descriptive boolean variable could be used
>> instead for clarity, rather than testing LASI presence.
> 
> Helge