All of lore.kernel.org
 help / color / mirror / Atom feed
From: Arnd Bergmann <arnd@arndb.de>
To: "Pali Rohár" <pali.rohar@gmail.com>
Cc: "Nicolas Pitre" <nicolas.pitre@linaro.org>,
	"Tony Lindgren" <tony@atomide.com>,
	"Russell King - ARM Linux" <linux@arm.linux.org.uk>,
	linux-arm-kernel@lists.infradead.org,
	"devicetree@vger.kernel.org" <devicetree@vger.kernel.org>,
	"Ivaylo Dimitrov" <ivo.g.dimitrov.75@gmail.com>,
	"Laura Abbott" <lauraa@codeaurora.org>,
	"Sebastian Reichel" <sre@debian.org>,
	"Will Deacon" <will.deacon@arm.com>,
	linux-kernel@vger.kernel.org,
	"Rob Herring" <robherring2@gmail.com>,
	"Pavel Machek" <pavel@ucw.cz>,
	"Grant Likely" <grant.likely@linaro.org>,
	linux-omap@vger.kernel.org,
	"Frank Rowand" <frowand.list@gmail.com>,
	"Andreas Färber" <afaerber@suse.de>
Subject: Re: [PATCH 5/5] arm: boot: store ATAGs structure into DT "/chosen/linux,atags" entry
Date: Tue, 15 Dec 2015 12:04:35 +0100	[thread overview]
Message-ID: <1684644.M9TF75k3RB@wuerfel> (raw)
In-Reply-To: <20151215093325.GK13531@pali>

On Tuesday 15 December 2015 10:33:25 Pali Rohár wrote:
> On Monday 30 November 2015 11:09:42 Nicolas Pitre wrote:
> > On Mon, 30 Nov 2015, Pali Rohár wrote:
> > > On Monday 30 November 2015 07:23:53 Tony Lindgren wrote:
> > > > * Pali Rohár <pali.rohar@gmail.com> [151129 16:16]:
> > > > > On Monday 30 November 2015 01:09:17 Nicolas Pitre wrote:
> > > > > > On Sun, 29 Nov 2015, Russell King - ARM Linux wrote:
> > > In arch/arm/kernel/setup.c is function setup_arch() and it calls:
> > > 
> > >   mdesc = setup_machine_fdt(__atags_pointer);
> > >   if (!mdesc)
> > >       mdesc = setup_machine_tags(__atags_pointer, __machine_arch_type);
> > > 
> > > So it looks like that on atags address is stored either atags structure
> > > or DT structure... so it is truth kernel uncompress code put DT blob to
> > > same offset where is expected atags structure?
> > 
> > No.  It doesn't put it anywhere. Those functions read DT/ATAGs from the 
> > passed address.  But you know this address won't be the one you want for 
> > the legacy ATAGs.
> > 
> > What you should do is to add a init_early hook to your mdesc structure 
> > and retrieve your ATAGs from there directly at PAGE_OFFSET + 0x100.
> > 
> > Now I suspect paging_init() marks the point where the ATAGs will be 
> > overwritten.  To prevent this, you might have to add an additional tweak 
> > in arm_mm_memblock_reserve() similar to the one already present for 
> > CONFIG_SA1111. Something like:
> > 
> >       memblock_reserve(PHYS_OFFSET, PAGE_SIZE);
> > 
> > And later on you can return that page back to the system.
> > 
> 
> So am I understand correctly that solution would be to hack
> arch/arm/mm/mmu.c to not overwrite page at PHYS_OFFSET?

I would think we can just copy the data from PAGE_OFFSET + 0x100
to a some other page from your init_early hook. IIRC you can't use
kmalloc there, but memblock_alloc() should work.

	Arnd

WARNING: multiple messages have this Message-ID (diff)
From: arnd@arndb.de (Arnd Bergmann)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH 5/5] arm: boot: store ATAGs structure into DT "/chosen/linux, atags" entry
Date: Tue, 15 Dec 2015 12:04:35 +0100	[thread overview]
Message-ID: <1684644.M9TF75k3RB@wuerfel> (raw)
In-Reply-To: <20151215093325.GK13531@pali>

On Tuesday 15 December 2015 10:33:25 Pali Roh?r wrote:
> On Monday 30 November 2015 11:09:42 Nicolas Pitre wrote:
> > On Mon, 30 Nov 2015, Pali Roh?r wrote:
> > > On Monday 30 November 2015 07:23:53 Tony Lindgren wrote:
> > > > * Pali Roh?r <pali.rohar@gmail.com> [151129 16:16]:
> > > > > On Monday 30 November 2015 01:09:17 Nicolas Pitre wrote:
> > > > > > On Sun, 29 Nov 2015, Russell King - ARM Linux wrote:
> > > In arch/arm/kernel/setup.c is function setup_arch() and it calls:
> > > 
> > >   mdesc = setup_machine_fdt(__atags_pointer);
> > >   if (!mdesc)
> > >       mdesc = setup_machine_tags(__atags_pointer, __machine_arch_type);
> > > 
> > > So it looks like that on atags address is stored either atags structure
> > > or DT structure... so it is truth kernel uncompress code put DT blob to
> > > same offset where is expected atags structure?
> > 
> > No.  It doesn't put it anywhere. Those functions read DT/ATAGs from the 
> > passed address.  But you know this address won't be the one you want for 
> > the legacy ATAGs.
> > 
> > What you should do is to add a init_early hook to your mdesc structure 
> > and retrieve your ATAGs from there directly at PAGE_OFFSET + 0x100.
> > 
> > Now I suspect paging_init() marks the point where the ATAGs will be 
> > overwritten.  To prevent this, you might have to add an additional tweak 
> > in arm_mm_memblock_reserve() similar to the one already present for 
> > CONFIG_SA1111. Something like:
> > 
> >       memblock_reserve(PHYS_OFFSET, PAGE_SIZE);
> > 
> > And later on you can return that page back to the system.
> > 
> 
> So am I understand correctly that solution would be to hack
> arch/arm/mm/mmu.c to not overwrite page at PHYS_OFFSET?

I would think we can just copy the data from PAGE_OFFSET + 0x100
to a some other page from your init_early hook. IIRC you can't use
kmalloc there, but memblock_alloc() should work.

	Arnd

  reply	other threads:[~2015-12-15 11:05 UTC|newest]

Thread overview: 160+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-07-06 20:26 [PATCH 0/5] ATAGs to DT patches Pali Rohár
2015-07-06 20:26 ` Pali Rohár
2015-07-06 20:26 ` [PATCH 1/5] arm: devtree: Set system_rev from DT "/revision" Pali Rohár
2015-07-06 20:26   ` Pali Rohár
2015-07-06 20:26   ` Pali Rohár
2015-12-24 19:02   ` Pali Rohár
2015-12-24 19:02     ` Pali Rohár
2015-12-24 19:02     ` Pali Rohár
2015-12-28 21:01     ` Frank Rowand
2015-12-28 21:01       ` Frank Rowand
2015-12-28 21:01       ` Frank Rowand
2015-12-28 22:27       ` Arnd Bergmann
2015-12-28 22:27         ` Arnd Bergmann
2015-12-28 22:27         ` Arnd Bergmann
2016-01-05 11:37         ` Pali Rohár
2016-01-05 11:37           ` Pali Rohár
2016-01-05 11:37           ` Pali Rohár
2016-01-05 11:37           ` Pali Rohár
2016-01-05 11:45           ` Arnd Bergmann
2016-01-05 11:45             ` Arnd Bergmann
2016-01-05 11:45             ` Arnd Bergmann
2016-02-05 18:15             ` [PATCH] ARM: RX51: Set system_rev from ATAGS Ivaylo Dimitrov
2016-02-05 18:15               ` Ivaylo Dimitrov
2016-02-08 20:48               ` Tony Lindgren
2016-02-08 20:48                 ` Tony Lindgren
2016-02-08 21:10               ` Pali Rohár
2016-02-08 21:10                 ` Pali Rohár
2016-02-09 16:17                 ` Tony Lindgren
2016-02-09 16:17                   ` Tony Lindgren
2016-02-10 18:23                   ` [PATCH v1] " Ivaylo Dimitrov
2016-02-10 18:23                     ` Ivaylo Dimitrov
2016-02-11  0:19                     ` Tony Lindgren
2016-02-11  0:19                       ` Tony Lindgren
2015-07-06 20:26 ` [PATCH 2/5] arm: boot: convert ATAG_REVISION to DT "/revision" entry Pali Rohár
2015-07-06 20:26   ` Pali Rohár
2015-07-06 20:26   ` Pali Rohár
2015-07-06 20:26 ` [PATCH 3/5] arm: atags: Fix declaration of function save_atags Pali Rohár
2015-07-06 20:26   ` Pali Rohár
2015-07-06 20:26 ` [PATCH 4/5] arm: devtree: Read ATAGs structure from DT "/chosen/linux,atags" entry Pali Rohár
2015-07-06 20:26   ` [PATCH 4/5] arm: devtree: Read ATAGs structure from DT "/chosen/linux, atags" entry Pali Rohár
2015-07-06 20:26 ` [PATCH 5/5] arm: boot: store ATAGs structure into DT "/chosen/linux,atags" entry Pali Rohár
2015-07-06 20:26   ` [PATCH 5/5] arm: boot: store ATAGs structure into DT "/chosen/linux, atags" entry Pali Rohár
2015-07-07 11:32   ` [PATCH 5/5] arm: boot: store ATAGs structure into DT "/chosen/linux,atags" entry Russell King - ARM Linux
2015-07-07 11:32     ` Russell King - ARM Linux
2015-07-07 11:58     ` Pali Rohár
2015-07-07 11:58       ` Pali Rohár
2015-07-13 13:19       ` Tony Lindgren
2015-07-13 13:19         ` Tony Lindgren
2015-10-12 20:16         ` Tony Lindgren
2015-10-12 20:16           ` Tony Lindgren
2015-10-12 20:25           ` Pali Rohár
2015-10-12 20:25             ` [PATCH 5/5] arm: boot: store ATAGs structure into DT "/chosen/linux, atags" entry Pali Rohár
2015-10-12 20:45             ` [PATCH 5/5] arm: boot: store ATAGs structure into DT "/chosen/linux,atags" entry Tony Lindgren
2015-10-12 20:45               ` Tony Lindgren
2015-10-13 14:37               ` Pali Rohár
2015-10-13 14:37                 ` Pali Rohár
2015-11-05 11:40                 ` Pali Rohár
2015-11-05 11:40                   ` Pali Rohár
2015-11-05 16:17                   ` Tony Lindgren
2015-11-05 16:17                     ` Tony Lindgren
2015-11-12  1:10                     ` Frank Rowand
2015-11-12  1:10                       ` [PATCH 5/5] arm: boot: store ATAGs structure into DT "/chosen/linux, atags" entry Frank Rowand
2015-11-22  6:51                       ` [PATCH 5/5] arm: boot: store ATAGs structure into DT "/chosen/linux,atags" entry Pavel Machek
2015-11-22  6:51                         ` Pavel Machek
2015-11-23 14:45                         ` Pali Rohár
2015-11-23 14:45                           ` Pali Rohár
2015-11-23 14:45                           ` Pali Rohár
2015-11-25 18:16                           ` Tony Lindgren
2015-11-25 18:16                             ` Tony Lindgren
2015-11-25 18:16                             ` Tony Lindgren
2015-11-25 19:48                             ` Arnd Bergmann
2015-11-25 19:48                               ` [PATCH 5/5] arm: boot: store ATAGs structure into DT "/chosen/linux, atags" entry Arnd Bergmann
2015-11-25 21:03                               ` [PATCH 5/5] arm: boot: store ATAGs structure into DT "/chosen/linux,atags" entry Tony Lindgren
2015-11-25 21:03                                 ` Tony Lindgren
2015-11-25 21:03                                 ` Tony Lindgren
2015-11-25 21:29                                 ` Arnd Bergmann
2015-11-25 21:29                                   ` [PATCH 5/5] arm: boot: store ATAGs structure into DT "/chosen/linux, atags" entry Arnd Bergmann
2015-11-25 21:44                                   ` [PATCH 5/5] arm: boot: store ATAGs structure into DT "/chosen/linux,atags" entry Pali Rohár
2015-11-25 21:44                                     ` [PATCH 5/5] arm: boot: store ATAGs structure into DT "/chosen/linux, atags" entry Pali Rohár
2015-11-25 21:44                                     ` [PATCH 5/5] arm: boot: store ATAGs structure into DT "/chosen/linux,atags" entry Pali Rohár
2015-11-25 21:51                                     ` Arnd Bergmann
2015-11-25 21:51                                       ` [PATCH 5/5] arm: boot: store ATAGs structure into DT "/chosen/linux, atags" entry Arnd Bergmann
2015-11-25 22:00                                       ` [PATCH 5/5] arm: boot: store ATAGs structure into DT "/chosen/linux,atags" entry Pali Rohár
2015-11-25 22:00                                         ` [PATCH 5/5] arm: boot: store ATAGs structure into DT "/chosen/linux, atags" entry Pali Rohár
2015-11-26  4:19                                 ` [PATCH 5/5] arm: boot: store ATAGs structure into DT "/chosen/linux,atags" entry Frank Rowand
2015-11-26  4:19                                   ` [PATCH 5/5] arm: boot: store ATAGs structure into DT "/chosen/linux, atags" entry Frank Rowand
2015-11-26  9:07                                   ` [PATCH 5/5] arm: boot: store ATAGs structure into DT "/chosen/linux,atags" entry Pali Rohár
2015-11-26  9:07                                     ` Pali Rohár
2015-11-26 20:39                                     ` Tony Lindgren
2015-11-26 20:39                                       ` Tony Lindgren
2015-11-26 20:39                                       ` Tony Lindgren
2015-11-26 21:12                                       ` Ivaylo Dimitrov
2015-11-26 21:12                                         ` Ivaylo Dimitrov
2015-11-27  8:38                                       ` Pali Rohár
2015-11-27  8:38                                         ` Pali Rohár
2015-11-27  8:44                                         ` Michael Trimarchi
2015-11-27  8:44                                           ` Michael Trimarchi
2015-11-27  8:44                                           ` Michael Trimarchi
2015-11-27  8:52                                           ` Michael Trimarchi
2015-11-27  8:52                                             ` Michael Trimarchi
2015-11-27 14:51                                         ` Tony Lindgren
2015-11-27 14:51                                           ` Tony Lindgren
2015-11-27 13:27                                     ` Russell King - ARM Linux
2015-11-27 13:27                                       ` Russell King - ARM Linux
2015-11-27 19:51                                       ` Russell King - ARM Linux
2015-11-27 19:51                                         ` Russell King - ARM Linux
2015-11-27 19:51                                         ` Russell King - ARM Linux
2015-11-27 21:06                                         ` Arnd Bergmann
2015-11-27 21:06                                           ` [PATCH 5/5] arm: boot: store ATAGs structure into DT "/chosen/linux, atags" entry Arnd Bergmann
2015-11-27 23:28                                           ` [PATCH 5/5] arm: boot: store ATAGs structure into DT "/chosen/linux,atags" entry Nicolas Pitre
2015-11-27 23:28                                             ` Nicolas Pitre
2015-11-27 23:28                                             ` Nicolas Pitre
2015-11-28 12:27                                             ` Arnd Bergmann
2015-11-28 12:27                                               ` [PATCH 5/5] arm: boot: store ATAGs structure into DT "/chosen/linux, atags" entry Arnd Bergmann
2015-11-28 12:27                                               ` [PATCH 5/5] arm: boot: store ATAGs structure into DT "/chosen/linux,atags" entry Arnd Bergmann
2015-11-28 12:54                                               ` Russell King - ARM Linux
2015-11-28 12:54                                                 ` Russell King - ARM Linux
2015-11-28 12:54                                                 ` Russell King - ARM Linux
2015-11-28 12:33                                             ` Russell King - ARM Linux
2015-11-28 12:33                                               ` Russell King - ARM Linux
2015-11-28 17:34                                               ` Nicolas Pitre
2015-11-28 17:34                                                 ` Nicolas Pitre
2015-11-28 21:02                                                 ` Frank Rowand
2015-11-28 21:02                                                   ` [PATCH 5/5] arm: boot: store ATAGs structure into DT "/chosen/linux, atags" entry Frank Rowand
2015-11-28 21:02                                                   ` [PATCH 5/5] arm: boot: store ATAGs structure into DT "/chosen/linux,atags" entry Frank Rowand
2015-11-29 18:09                                                 ` Russell King - ARM Linux
2015-11-29 18:09                                                   ` Russell King - ARM Linux
2015-11-29 18:09                                                   ` Russell King - ARM Linux
2015-11-29 18:19                                                   ` Pali Rohár
2015-11-29 18:19                                                     ` [PATCH 5/5] arm: boot: store ATAGs structure into DT "/chosen/linux, atags" entry Pali Rohár
2015-11-29 23:13                                                     ` [PATCH 5/5] arm: boot: store ATAGs structure into DT "/chosen/linux,atags" entry Russell King - ARM Linux
2015-11-29 23:13                                                       ` Russell King - ARM Linux
2015-11-30  0:09                                                   ` Nicolas Pitre
2015-11-30  0:09                                                     ` Nicolas Pitre
2015-11-30  0:15                                                     ` Pali Rohár
2015-11-30  0:15                                                       ` [PATCH 5/5] arm: boot: store ATAGs structure into DT "/chosen/linux, atags" entry Pali Rohár
2015-11-30  0:15                                                       ` [PATCH 5/5] arm: boot: store ATAGs structure into DT "/chosen/linux,atags" entry Pali Rohár
2015-11-30 15:23                                                       ` Tony Lindgren
2015-11-30 15:23                                                         ` Tony Lindgren
2015-11-30 15:23                                                         ` Tony Lindgren
2015-11-30 15:39                                                         ` Pali Rohár
2015-11-30 15:39                                                           ` Pali Rohár
2015-11-30 15:39                                                           ` Pali Rohár
2015-11-30 16:09                                                           ` Nicolas Pitre
2015-11-30 16:09                                                             ` Nicolas Pitre
2015-12-15  9:33                                                             ` Pali Rohár
2015-12-15  9:33                                                               ` Pali Rohár
2015-12-15 11:04                                                               ` Arnd Bergmann [this message]
2015-12-15 11:04                                                                 ` [PATCH 5/5] arm: boot: store ATAGs structure into DT "/chosen/linux, atags" entry Arnd Bergmann
2015-12-15 12:20                                                               ` [PATCH 5/5] arm: boot: store ATAGs structure into DT "/chosen/linux,atags" entry Russell King - ARM Linux
2015-12-15 12:20                                                                 ` Russell King - ARM Linux
2015-12-15 17:24                                                                 ` Nicolas Pitre
2015-12-15 17:24                                                                   ` Nicolas Pitre
2015-12-15 17:24                                                                   ` Nicolas Pitre
2015-12-23 14:54                                                                 ` Ivaylo Dimitrov
2015-12-23 14:54                                                                   ` Ivaylo Dimitrov
2015-11-28  4:06 ` [PATCH 0/5] ATAGs to DT patches Frank Rowand
2015-11-28  4:06   ` Frank Rowand
2015-11-28  5:55   ` Frank Rowand
2015-11-28  5:55     ` Frank Rowand

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=1684644.M9TF75k3RB@wuerfel \
    --to=arnd@arndb.de \
    --cc=afaerber@suse.de \
    --cc=devicetree@vger.kernel.org \
    --cc=frowand.list@gmail.com \
    --cc=grant.likely@linaro.org \
    --cc=ivo.g.dimitrov.75@gmail.com \
    --cc=lauraa@codeaurora.org \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-omap@vger.kernel.org \
    --cc=linux@arm.linux.org.uk \
    --cc=nicolas.pitre@linaro.org \
    --cc=pali.rohar@gmail.com \
    --cc=pavel@ucw.cz \
    --cc=robherring2@gmail.com \
    --cc=sre@debian.org \
    --cc=tony@atomide.com \
    --cc=will.deacon@arm.com \
    /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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.