Subject: Re: ELDK 4.2/kilauea/3.5+ kernel broken

From: Robert Berger <[email-masked]>
Date: Fri, 19 Oct 2012 09:35:52 +0300

Hi,

On 10/19/2012 06:16 AM, Mai La wrote:
> Hi,
> 
> My patch was:
> 
> @@ -150,12 +157,11 @@ static int ppc4xx_setup_pcieh_hw(struct
> platform_device *dev,
>         if (!sdr_addr)
>                 return -1;
> 
> -       SDR0_WRITE(sdr_addr, (u64)res.start >> 32);      /*HIGH addr */
> -       SDR0_WRITE(sdr_addr + 1, res.start & 0xFFFFFFFF); /* Low addr */
> -
> +       mtdcri(SDR0, *sdr_addr, upper_32_bits(res.start));      /*HIGH
> addr */
> +       mtdcri(SDR0, *sdr_addr + 1, lower_32_bits(res.start));  /* Low
> addr */
> 
>         msi->msi_dev = of_find_node_by_name(NULL, "ppc4xx-msi");
> -       if (msi->msi_dev)
> +       if (!msi->msi_dev)
>                 return -ENODEV;
> 
>         msi->msi_regs = of_iomap(msi->msi_dev, 0);
> 
> 
> 1. The first few lines: change from SDR0_WRITE to mtdcri since the old
> one cause crash. I use ELDK 4.2.

The old one does not cause a crash for me.  As I said on a kilauea board
with ELDK 4.2 a 3.6 kernel, default config and everything reverted to
the good old file I can boot happily with a rootfs from nfs.

If I use the file as it is in 3.6 I don't see the kernel booting. but it
crashes.

> 
> 2. The second one should mean that: if not find any node then return
> error. So it should be "!msi->msi_dev"

In the 3.6 kernel it's with ! the old file (which works for me) is
without the !

... very strange ...

> Regards,
> Mai La.

Regards,

Robert