40p: remove pci_allow_0_address = true from 40p machine class
diff mbox series

Message ID 20180525211523.14897-1-mark.cave-ayland@ilande.co.uk
State New
Headers show
Series
  • 40p: remove pci_allow_0_address = true from 40p machine class
Related show

Commit Message

Mark Cave-Ayland May 25, 2018, 9:15 p.m. UTC
The Linux sandalfoot zImage has an initialisation process which resets the
VGA controller by setting all the BAR addresses to zero to access the VGA
ioports at their legacy addresses.

Unfortunately setting the framebuffer BAR to address 0 makes the framebuffer
memory overlap the internal VGA memory causing accesses to fail, and so
prevents the kernel from switching successfully to text mode.

Since OpenHackWare configures the framebuffer BAR address outside of the legacy
VGA internal memory space, remove pci_allow_0_address from the 40p machine class
which causes the BAR reprogramming to zero to fail and so the VGA internal
memory can be accessed correctly again.

Signed-off-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk>
---
 hw/ppc/prep.c | 1 -
 1 file changed, 1 deletion(-)

Comments

David Gibson June 4, 2018, 1:28 a.m. UTC | #1
On Fri, May 25, 2018 at 10:15:23PM +0100, Mark Cave-Ayland wrote:
> The Linux sandalfoot zImage has an initialisation process which resets the
> VGA controller by setting all the BAR addresses to zero to access the VGA
> ioports at their legacy addresses.
> 
> Unfortunately setting the framebuffer BAR to address 0 makes the framebuffer
> memory overlap the internal VGA memory causing accesses to fail, and so
> prevents the kernel from switching successfully to text mode.
> 
> Since OpenHackWare configures the framebuffer BAR address outside of the legacy
> VGA internal memory space, remove pci_allow_0_address from the 40p machine class
> which causes the BAR reprogramming to zero to fail and so the VGA internal
> memory can be accessed correctly again.
> 
> Signed-off-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk>

Applied, thanks.

> ---
>  hw/ppc/prep.c | 1 -
>  1 file changed, 1 deletion(-)
> 
> diff --git a/hw/ppc/prep.c b/hw/ppc/prep.c
> index be4db6a687..5ed0bcd862 100644
> --- a/hw/ppc/prep.c
> +++ b/hw/ppc/prep.c
> @@ -884,7 +884,6 @@ static void ibm_40p_machine_init(MachineClass *mc)
>      mc->desc = "IBM RS/6000 7020 (40p)",
>      mc->init = ibm_40p_init;
>      mc->max_cpus = 1;
> -    mc->pci_allow_0_address = true;
>      mc->default_ram_size = 128 * M_BYTE;
>      mc->block_default_type = IF_SCSI;
>      mc->default_boot_order = "c";

Patch
diff mbox series

diff --git a/hw/ppc/prep.c b/hw/ppc/prep.c
index be4db6a687..5ed0bcd862 100644
--- a/hw/ppc/prep.c
+++ b/hw/ppc/prep.c
@@ -884,7 +884,6 @@  static void ibm_40p_machine_init(MachineClass *mc)
     mc->desc = "IBM RS/6000 7020 (40p)",
     mc->init = ibm_40p_init;
     mc->max_cpus = 1;
-    mc->pci_allow_0_address = true;
     mc->default_ram_size = 128 * M_BYTE;
     mc->block_default_type = IF_SCSI;
     mc->default_boot_order = "c";