Message ID | 20180421140342.25082-1-miquel.raynal@bootlin.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Hi Thomas, On Sat, 21 Apr 2018 16:18:59 +0200, Thomas Petazzoni <thomas.petazzoni@bootlin.com> wrote: > Hello, > > On Sat, 21 Apr 2018 16:03:42 +0200, Miquel Raynal wrote: > > From: Victor Gu <xigu@marvell.com> > > > > The PSCI area should be reserved in Linux for PSCI operations such as > > suspend/resume. > > > > Reserve 2MiB of memory which matches the area used by ATF (BL1, BL2, > > BL3x, see [1] in ATF source code). This covers all PSCI code and data > > area and is 2MiB aligned, which is required by Linux for huge pages > > handling. > > > > [1] plat/marvell/a3700/common/include/platform_def.h > > > > Signed-off-by: Victor Gu <xigu@marvell.com> > > [miquel.raynal@bootlin.com: reword of commit message] > > Signed-off-by: Miquel Raynal <miquel.raynal@bootlin.com> > > Shouldn't this be done automatically by the bootloader, before passing > the DTB to the kernel ? I am working with a 2017.09 mainline U-Boot. I did not know the bootloader was supposedly in charge of that. But what if it fails doing it? Fixing the bootloader is one thing, I assume very few people would update it. Is it worth keeping this in Linux DT? Thanks, Miquèl
Hello, On Mon, 23 Apr 2018 10:31:27 +0200, Miquel Raynal wrote: > > Shouldn't this be done automatically by the bootloader, before passing > > the DTB to the kernel ? > > I am working with a 2017.09 mainline U-Boot. > > I did not know the bootloader was supposedly in charge of that. I thought it should be the case, but I indeed see nothing in U-Boot that does that, except for OMAP2 platforms. > But what if it fails doing it? Well if something fails in the boot process, the platform fails to boot. I find this question a bit weird/silly. It's like "and what if the user used the wrong DT for the wrong platform ?" > Fixing the bootloader is one thing, I assume very few people would > update it. Is it worth keeping this in Linux DT? The issue I see with having this in the Linux DT is that depending on the bootloader, the memory area that is used to keep the PSCI firmware may very well be different. It's really not a property of the HW itself, but a pure software choice of the bootloader. For example, are you sure the mainline U-Boot puts the PSCI firmware at the same place as the vendor U-Boot ? What are other platforms doing to solve this problem ? Best regards, Thomas
Hi Thomas, On Mon, 23 Apr 2018 14:49:40 +0200, Thomas Petazzoni <thomas.petazzoni@bootlin.com> wrote: > Hello, > > On Mon, 23 Apr 2018 10:31:27 +0200, Miquel Raynal wrote: > > > > Shouldn't this be done automatically by the bootloader, before passing > > > the DTB to the kernel ? > > > > I am working with a 2017.09 mainline U-Boot. > > > > I did not know the bootloader was supposedly in charge of that. > > I thought it should be the case, but I indeed see nothing in U-Boot > that does that, except for OMAP2 platforms. > > > But what if it fails doing it? > > Well if something fails in the boot process, the platform fails to boot. > I find this question a bit weird/silly. It's like "and what if the user > used the wrong DT for the wrong platform ?" Sorry, I meant "what if the bootloader does not do it?", in other words: currently the bootloader does not do it, let's assume it should, shall we take into account that it does not and add this code to Linux too, or shall we say to people "upgrade your bootloader/ATF"? But from the rest of your answer I assume the latter is the right approach. > > > Fixing the bootloader is one thing, I assume very few people would > > update it. Is it worth keeping this in Linux DT? > > The issue I see with having this in the Linux DT is that depending on > the bootloader, the memory area that is used to keep the PSCI firmware > may very well be different. It's really not a property of the HW > itself, but a pure software choice of the bootloader. For example, are > you sure the mainline U-Boot puts the PSCI firmware at the same place > as the vendor U-Boot ? > > What are other platforms doing to solve this problem ? I will also check if it is actually U-Boot or ATF choice. My understanding is that ATF's handle the PSCI firmware but U-Boot should propagate a reserved node (for this firmware) in Linux's DTB. Let me check all of that. > > Best regards, > > Thomas Thanks, Miquèl
diff --git a/arch/arm64/boot/dts/marvell/armada-37xx.dtsi b/arch/arm64/boot/dts/marvell/armada-37xx.dtsi index 97207a61bc79..429ce91bfc39 100644 --- a/arch/arm64/boot/dts/marvell/armada-37xx.dtsi +++ b/arch/arm64/boot/dts/marvell/armada-37xx.dtsi @@ -22,6 +22,17 @@ serial1 = &uart1; }; + reserved-memory { + #address-cells = <2>; + #size-cells = <2>; + ranges; + + psci-area@4000000 { + reg = <0 0x4000000 0 0x200000>; + no-map; + }; + }; + cpus { #address-cells = <1>; #size-cells = <0>;