2023-05-05 17:25:19

by Rob Herring

[permalink] [raw]
Subject: [PATCH] powerpc: isa-bridge: Fix ISA mmapping when "ranges" is not present

Commit e4ab08be5b49 ("powerpc/isa-bridge: Remove open coded "ranges"
parsing") broke PASemi Nemo board booting. The issue is the ISA I/O
range was not getting mapped as the logic to handle no "ranges" was
inverted. If phb_io_base_phys is non-zero, then the ISA range defaults
to the first 64K of the PCI I/O space. phb_io_base_phys should only be 0
when looking for a non-PCI ISA region.

Fixes: e4ab08be5b49 ("powerpc/isa-bridge: Remove open coded "ranges" parsing")
Link: https://lore.kernel.org/all/[email protected]/
Reported-by: Christian Zigotzky <[email protected]>
Signed-off-by: Rob Herring <[email protected]>
---
Untested, but I think this should fix the issue.

arch/powerpc/kernel/isa-bridge.c | 5 +++--
1 file changed, 3 insertions(+), 2 deletions(-)

diff --git a/arch/powerpc/kernel/isa-bridge.c b/arch/powerpc/kernel/isa-bridge.c
index 85bdd7d3652f..48e0eaf1ad61 100644
--- a/arch/powerpc/kernel/isa-bridge.c
+++ b/arch/powerpc/kernel/isa-bridge.c
@@ -93,11 +93,12 @@ static int process_ISA_OF_ranges(struct device_node *isa_node,
}

inval_range:
- if (!phb_io_base_phys) {
+ if (phb_io_base_phys) {
pr_err("no ISA IO ranges or unexpected isa range, mapping 64k\n");
remap_isa_base(phb_io_base_phys, 0x10000);
+ return 0;
}
- return 0;
+ return -EINVAL;
}


--
2.39.2


2023-05-07 09:53:25

by Christian Zigotzky

[permalink] [raw]
Subject: Re: [PATCH] powerpc: isa-bridge: Fix ISA mmapping when "ranges" is not present

On 05 May 2023 at 07:18 pm, Rob Herring wrote:
> Commit e4ab08be5b49 ("powerpc/isa-bridge: Remove open coded "ranges"
> parsing") broke PASemi Nemo board booting. The issue is the ISA I/O
> range was not getting mapped as the logic to handle no "ranges" was
> inverted. If phb_io_base_phys is non-zero, then the ISA range defaults
> to the first 64K of the PCI I/O space. phb_io_base_phys should only be 0
> when looking for a non-PCI ISA region.
>
> Fixes: e4ab08be5b49 ("powerpc/isa-bridge: Remove open coded "ranges" parsing")
> Link: https://lore.kernel.org/all/[email protected]/
> Reported-by: Christian Zigotzky <[email protected]>
> Signed-off-by: Rob Herring <[email protected]>
> ---
> Untested, but I think this should fix the issue.
>
> arch/powerpc/kernel/isa-bridge.c | 5 +++--
> 1 file changed, 3 insertions(+), 2 deletions(-)
>
> diff --git a/arch/powerpc/kernel/isa-bridge.c b/arch/powerpc/kernel/isa-bridge.c
> index 85bdd7d3652f..48e0eaf1ad61 100644
> --- a/arch/powerpc/kernel/isa-bridge.c
> +++ b/arch/powerpc/kernel/isa-bridge.c
> @@ -93,11 +93,12 @@ static int process_ISA_OF_ranges(struct device_node *isa_node,
> }
>
> inval_range:
> - if (!phb_io_base_phys) {
> + if (phb_io_base_phys) {
> pr_err("no ISA IO ranges or unexpected isa range, mapping 64k\n");
> remap_isa_base(phb_io_base_phys, 0x10000);
> + return 0;
> }
> - return 0;
> + return -EINVAL;
> }
>
>
The Nemo board boots with this patch. Thanks a lot for your help!

Tested-by: Christian Zigotzky <[email protected]>

2023-07-03 05:41:54

by Michael Ellerman

[permalink] [raw]
Subject: Re: [PATCH] powerpc: isa-bridge: Fix ISA mmapping when "ranges" is not present

On Fri, 05 May 2023 12:18:17 -0500, Rob Herring wrote:
> Commit e4ab08be5b49 ("powerpc/isa-bridge: Remove open coded "ranges"
> parsing") broke PASemi Nemo board booting. The issue is the ISA I/O
> range was not getting mapped as the logic to handle no "ranges" was
> inverted. If phb_io_base_phys is non-zero, then the ISA range defaults
> to the first 64K of the PCI I/O space. phb_io_base_phys should only be 0
> when looking for a non-PCI ISA region.
>
> [...]

Applied to powerpc/fixes.

[1/1] powerpc: isa-bridge: Fix ISA mmapping when "ranges" is not present
https://git.kernel.org/powerpc/c/79de36042eecb684e0f748d17ba52f365fde0d65

cheers

2023-07-03 06:44:43

by Christian Zigotzky

[permalink] [raw]
Subject: Re: [PATCH] powerpc: isa-bridge: Fix ISA mmapping when "ranges" is not present

On 03.07.23 07:21, Michael Ellerman wrote:
> On Fri, 05 May 2023 12:18:17 -0500, Rob Herring wrote:
>> Commit e4ab08be5b49 ("powerpc/isa-bridge: Remove open coded "ranges"
>> parsing") broke PASemi Nemo board booting. The issue is the ISA I/O
>> range was not getting mapped as the logic to handle no "ranges" was
>> inverted. If phb_io_base_phys is non-zero, then the ISA range defaults
>> to the first 64K of the PCI I/O space. phb_io_base_phys should only be 0
>> when looking for a non-PCI ISA region.
>>
>> [...]
> Applied to powerpc/fixes.
>
> [1/1] powerpc: isa-bridge: Fix ISA mmapping when "ranges" is not present
> https://git.kernel.org/powerpc/c/79de36042eecb684e0f748d17ba52f365fde0d65
>
> cheers
Hello Michael,

This patch has already been applied. Link:
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=4927cb98f0eeaa5dbeac882e8372f4b16dc62624

Thanks,
Christian

2023-07-03 11:50:25

by Michael Ellerman

[permalink] [raw]
Subject: Re: [PATCH] powerpc: isa-bridge: Fix ISA mmapping when "ranges" is not present

Christian Zigotzky <[email protected]> writes:
> On 03.07.23 07:21, Michael Ellerman wrote:
>> On Fri, 05 May 2023 12:18:17 -0500, Rob Herring wrote:
>>> Commit e4ab08be5b49 ("powerpc/isa-bridge: Remove open coded "ranges"
>>> parsing") broke PASemi Nemo board booting. The issue is the ISA I/O
>>> range was not getting mapped as the logic to handle no "ranges" was
>>> inverted. If phb_io_base_phys is non-zero, then the ISA range defaults
>>> to the first 64K of the PCI I/O space. phb_io_base_phys should only be 0
>>> when looking for a non-PCI ISA region.
>>>
>>> [...]
>> Applied to powerpc/fixes.
>>
>> [1/1] powerpc: isa-bridge: Fix ISA mmapping when "ranges" is not present
>> https://git.kernel.org/powerpc/c/79de36042eecb684e0f748d17ba52f365fde0d65
>>
>> cheers
> Hello Michael,
>
> This patch has already been applied. Link:
> https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=4927cb98f0eeaa5dbeac882e8372f4b16dc62624

Yes, it's actually the same commit. I'm just catching up on sending the
thanks emails. Sorry for the confusion.

cheers