From: Oleksij Rempel <o.rempel@pengutronix.de>
To: Antony Pavlov <antonynpavlov@gmail.com>
Cc: barebox@lists.infradead.org, Peter Mamonov <pmamonov@gmail.com>
Subject: Re: [PATCH v1] MIPS: remove .bss to __rel_start overlay
Date: Tue, 28 Jan 2020 13:39:55 +0100 [thread overview]
Message-ID: <c7188a9f-7a83-a10a-2fb7-7a51f08a152d@pengutronix.de> (raw)
In-Reply-To: <20200128145513.aae1244ee8e7faf94d661640@gmail.com>
On 28.01.20 12:55, Antony Pavlov wrote:
> On Tue, 28 Jan 2020 10:28:32 +0100
> Oleksij Rempel <o.rempel@pengutronix.de> wrote:
>
> Hi!
>
> Looks like this patch has some undocummented side effects
> (or in other words, it makes undocummented fixups).
>
> I have tested this patch on qemu-malta with current master,
> ee8960aec018df2de ("ARM: imx6: properly check for IPU presence").
> It works fine: memtest works, iomem output looks good.
>
> But the patch fixes several issues and commit message does not contain
> any information about it.
>
> I rebuild current master with qemu-malta_defconfig and MMU enabled.
>
> I used this qemu cmdline to enable qemu monitor:
>
> qemu-system-mips -nodefaults -M malta -m 256 -nographic -bios barebox-flash-image
> -net user -net nic,model=rtl8139 -serial mon:stdio
>
> With '-serial mon:stdio' one can invoke qemu monitor with "ctrl-a c" keypress sequence.
>
> So I tried 'info registers' qemu monitor command after barebox startup:
>
> Hit any to stop autoboot: 3
> barebox@qemu malta:/
> barebox@qemu malta:/
> barebox@qemu malta:/ iomem
> 0x00000000 - 0xffffffff (size 0x00000000) iomem
> 0x180003f8 - 0x180003ff (size 0x00000008) 180003f8.serial@180003f8.of
> 0x1e000000 - 0x1e3fffff (size 0x00400000) 1e000000.flash@1e000000.of
> 0x1f000900 - 0x1f00093f (size 0x00000040) 1f000900.serial@1f000900.of
> 0x1f000b00 - 0x1f000b1f (size 0x00000020) 1f000b00.gpio@1f000b00.of
> 0x80000000 - 0x8fffffff (size 0x10000000) kseg0_ram0
> barebox@qemu malta:/ QEMU 4.2.0 monitor - type 'help' for more information
> (qemu) info registers
> pc=0xa081232c HI=0x00000026 LO=0x20000000 ds 0090 a081232c 1
> GPR00: r0 00000000 at 00000000 v0 b80003f8 v1 00000000
> GPR04: a0 a0408668 a1 b80003fd a2 b80003f8 a3 ffffffff
> GPR08: t0 00000001 t1 00000000 t2 0000005a t3 00000023
> GPR12: t4 00000000 t5 00010000 t6 00000040 t7 00000010
> GPR16: s0 a0408668 s1 a085cd20 s2 a0860000 s3 a0860000
> GPR20: s4 a0860000 s5 00000400 s6 a08613c0 s7 00000001
> GPR24: t8 00000008 t9 a0812340 k0 00400000 k1 fffffffa
> GPR28: gp 00000000 sp 8fb8fd10 s8 ffffffff ra a0812420
> CP0 Status 0x00000000 Cause 0x00000400 EPC 0x00000000
> Config0 0x80008482 Config1 0x9e190c8f LLAddr 0x0000000000000000
> Config2 0x80000000 Config3 0x00000000
> Config4 0x00000000 Config5 0x00000000
> (qemu) quit
>
> So I see several issues in current master at once:
>
> * iomem output has no information on sdram regions, so memtest is unusable;
> * pc=0xa081232c, relocation does not work, barebox is located with 8M offset
> from start of RAM. The board has 256M and relocation routine
> should move barebox code much higher;
> * pc=0xa081232c, so barebox code works from KSEG1 not from KSEG0 as MMU=y option implies.
>
> Your patch fixes all these symptoms at ones however the commit message
> says nothing about them.
OK, thx! I'll update commit message.
>> .bss __rel_start (OVERLAY) was used to optimize RAM size used by
>> barebox. Since .bss and __rel_start overlap, we should clear bss only
>> after __rel_start was used.
>>
>> There is a choice of moving .bss clear sequence after __rel_start or
>> remove this optimization. Since the use of this optimization is minimal
>> and danger to trap in to similar issue is still high, i prefer to remove
>> this optimization.
>>
>> Fixes: 1e5aef61fc6a444 ("MIPS: reloc: init bss and cpu")
>> Signed-off-by: Oleksij Rempel <o.rempel@pengutronix.de>
>> ---
>> arch/mips/lib/barebox.lds.S | 2 +-
>> 1 file changed, 1 insertion(+), 1 deletion(-)
>>
>> diff --git a/arch/mips/lib/barebox.lds.S b/arch/mips/lib/barebox.lds.S
>> index 693a778980..c954df41f3 100644
>> --- a/arch/mips/lib/barebox.lds.S
>> +++ b/arch/mips/lib/barebox.lds.S
>> @@ -59,7 +59,7 @@ SECTIONS
>>
>> _end = .;
>>
>> - .bss __rel_start (OVERLAY) : {
>> + .bss : {
>> __bss_start = .;
>> *(.sbss.*)
>> *(.bss.*)
>> --
>> 2.25.0
>>
>
>
Kind regards,
Oleksij Rempel
--
Pengutronix e.K. | |
Industrial Linux Solutions | http://www.pengutronix.de/ |
Peiner Str. 6-8, 31137 Hildesheim, Germany | Phone: +49-5121-206917-0 |
Amtsgericht Hildesheim, HRA 2686 | Fax: +49-5121-206917-5555 |
_______________________________________________
barebox mailing list
barebox@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/barebox
next prev parent reply other threads:[~2020-01-28 12:40 UTC|newest]
Thread overview: 9+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-01-28 9:28 Oleksij Rempel
2020-01-28 11:55 ` Antony Pavlov
2020-01-28 12:39 ` Oleksij Rempel [this message]
2020-01-28 13:06 ` Peter Mamonov
2020-01-28 13:43 ` Oleksij Rempel
2020-01-28 13:53 ` Oleksij Rempel
2020-01-28 14:42 ` Antony Pavlov
2020-01-28 12:54 ` Antony Pavlov
2020-01-28 13:39 ` Oleksij Rempel
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=c7188a9f-7a83-a10a-2fb7-7a51f08a152d@pengutronix.de \
--to=o.rempel@pengutronix.de \
--cc=antonynpavlov@gmail.com \
--cc=barebox@lists.infradead.org \
--cc=pmamonov@gmail.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox