From: Jiaxun Yang <jiaxun.yang@flygoat.com>
To: Chris Packham <Chris.Packham@alliedtelesis.co.nz>
Cc: "linux-mips@vger.kernel.org" <linux-mips@vger.kernel.org>,
"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
"Hamish Martin" <Hamish.Martin@alliedtelesis.co.nz>,
"devicetree@vger.kernel.org" <devicetree@vger.kernel.org>
Subject: Re: Dealing with holes in CPU address space
Date: Wed, 8 Apr 2020 15:29:22 +0800 [thread overview]
Message-ID: <20200408152922.14f90ff3@flygoat-x1e> (raw)
In-Reply-To: <fcb8f2655452f60a7c734e2ce54ac4d47eec7e92.camel@alliedtelesis.co.nz>
On Wed, 8 Apr 2020 05:14:22 +0000
Chris Packham <Chris.Packham@alliedtelesis.co.nz> wrote:
> Hi All,
>
> I'm trying to port an old Broadcom MIPS CPU (BCM53003) to a shiny new
> kernel. I have some old historic source from a long forgotten Broadcom
> LDK but I'd prefer to do things the modern way with device-trees.
>
> The problem I've been grappling with is trying to open up access to
> all of the RAM on the board. It has 512MB of DDR2. The CPU has two
> areas where this appears. The first 128MB is from 0 to 0x07ffffff the
> second area is from 0x88000000 to 0x9fffffff.
>
> SoC peripherals are at 0x18000000 and there is an IO window for flash
> at 0x20000000.
>
> The old code has some custom tlb initialisation to deal with this but
> I figured it should be possible with the following dts snippet.
>
> memory@0 {
> device_type = "memory";
> reg = <0x00000000 0x08000000
> 0x88000000 0x18000000>;
> };
>
> I end up with only 128MB available. This appears to be
> because the default HIGHMEM_START of 0x20000000 stops the rest from
> being made available. If I add an override of HIGHMEM_START to
> 0xffffffff I seem to have the full 512MB avaiable but then I get a
> kernel panic
Hi,
Have you tried to enable CONFIG_HIGHMEM?
>
> CPU 0 Unable to handle kernel paging request at virtual address
> 1fc00000, epc == 800167b8, ra == 800e2860
>
> 0x1fc00000 is in the range where the SoC peripherals are so I'm
> thinking that is the problem. But then again that is a virtual address
> so maybe it's just a co-incidence.
0x1fc00000 should be the Boot ROM's physical address. Probably you
forgot to convert it into virtual address in your platform code?
Check the EPC of exception in vmlinux with addr2line may help. (Don't
forget to compile your kernel with debuginfo).
>
> Anyway I'd really appreciate any guidance that anyone could provide on
> this. Even if it's just "go look at this SoC".
>
> Thanks,
> Chris
>
>
--
Jiaxun Yang
next prev parent reply other threads:[~2020-04-08 7:45 UTC|newest]
Thread overview: 7+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-04-08 5:14 Dealing with holes in CPU address space Chris Packham
2020-04-08 7:29 ` Jiaxun Yang [this message]
2020-04-08 21:33 ` Chris Packham
2020-04-09 4:03 ` Florian Fainelli
2020-04-09 4:50 ` Chris Packham
2020-04-09 5:06 ` Jiaxun Yang
2020-04-08 20:07 ` Florian Fainelli
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20200408152922.14f90ff3@flygoat-x1e \
--to=jiaxun.yang@flygoat.com \
--cc=Chris.Packham@alliedtelesis.co.nz \
--cc=Hamish.Martin@alliedtelesis.co.nz \
--cc=devicetree@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-mips@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).