[OpenBIOS] [PATCH] escc.c: add empty ranges property to escc and escc-legacy nodes

Programmingkid programmingkidx at gmail.com
Fri Apr 15 17:48:44 CEST 2016


On Apr 15, 2016, at 6:09 AM, Mark Cave-Ayland wrote:

> This fixes an intermittent panic in the AppleSCCSerial module for MacOS
> 10.2 and the g3beige machine during initialisation as the module tries to
> write to the on-chip registers at 0x130XX rather than calculating the
> correct address derived from the parent PCI node.
> 
> As described in the IEEE-1275 specification: if a "ranges" property exists but
> has a zero-length property value, the child address space is identical to the
> parent address space.
> 
> Signed-off-by: Mark Cave-Ayland <mark.cave-ayland at ilande.co.uk>
> ---
> openbios-devel/drivers/escc.c |    2 ++
> 1 file changed, 2 insertions(+)
> 
> diff --git a/openbios-devel/drivers/escc.c b/openbios-devel/drivers/escc.c
> index 5fa3139..1990e79 100644
> --- a/openbios-devel/drivers/escc.c
> +++ b/openbios-devel/drivers/escc.c
> @@ -514,6 +514,7 @@ escc_init(const char *path, phys_addr_t addr)
>     set_property(dnode, "device_type", "escc",
>                  strlen("escc") + 1);
>     set_property(dnode, "compatible", "escc\0CHRP,es0", 14);
> +    set_property(dnode, "ranges", "", 0);
> 
>     fword("finish-device");
> 
> @@ -541,6 +542,7 @@ escc_init(const char *path, phys_addr_t addr)
>     set_property(dnode, "device_type", "escc-legacy",
>                  strlen("escc-legacy") + 1);
>     set_property(dnode, "compatible", "chrp,es1", 9);
> +    set_property(dnode, "ranges", "", 0);
> 
>     fword("finish-device");
> 
> -- 
> 1.7.10.4
> 

I tried out your patch using Mac OS 10.2.8 and the beige g3 target. I didn't notice any difference while booting with and without your patch. What is the exact version of Mac OS 10.2 you are using?

This message is displayed with and without your patch:
AppleSCCSerial: Failed to create Tx DMA interupt event source!





More information about the OpenBIOS mailing list