[Top] [All Lists]

Re: uboot for MIPS: need help to skip relocate uboot and start uboot fro

Subject: Re: uboot for MIPS: need help to skip relocate uboot and start uboot from RAM
From: Ray Dudu <>
Date: Thu, 03 Mar 2011 14:46:36 +0200
Dkim-signature: v=1; a=rsa-sha256; c=relaxed/relaxed;; s=gamma; h=domainkey-signature:message-id:date:from:user-agent:mime-version:to :subject:references:in-reply-to:content-type :content-transfer-encoding; bh=TzkMwUH63BrQOIU3zD+H+AbqVBXpDXAgIVVf67NrL8U=; b=wKxjgIgLpPkecn84h547qCUI582DLGgxFnRC/gXW0w58zRioSWiI190mFQESHKQDKW i0CRnOnjEppqORm3HagrLEcgfv2QQPYMIUeM3d9kKMsg0Ffbv9UcNDkJznYayGpXpaPN xQ/idHUQyFASf2UZve7ir5o2TGhYIFxaj+KVY=
Domainkey-signature: a=rsa-sha1; c=nofws;; s=gamma; h=message-id:date:from:user-agent:mime-version:to:subject:references :in-reply-to:content-type:content-transfer-encoding; b=Cq41dS+oVrQE5uamwlVOnTFNimwZS+g0hKOqxumPLKmtVUZLUAr8e9pzEhVSy0s/Uc EN0lr4RBUVnOeep2jA9wf0aixm0jPGNeuYja6FyilVdrrYDMA7Klwl1nfTJM2ruShwFJ +79iC4vST8kEsG5fM8O9z2DDb5rDlcDzTkpfc=
In-reply-to: <>
Original-recipient: rfc822;
References: <>
User-agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv: Gecko/20101220 Lightning/1.0b3pre Thunderbird/3.1.7
I'm not so familira with uboot, however, I done proprietary booter
implementation for my company. Similar functionality was required, for
different purposes actually, but it doesn't change the idea.

So in my booter code I done simple check of code location. In case when
the code detects that it is already in RAM, it skips memory/caches
initialization and self coping. Some useful pieces of code:
Supporting function.


        jr      ra

Actually the check:
        bal     set_ra      /* first get the current program counter */

        move    t0, ra

        li      t1, 0x10000000
        and     t1, t1, t0
        bne     zero, t1, 1f                /* code in ROM/flash */

        li      s3,0                    /* code in RAM */
        b       2f
        /* jump to system initialization and code coping routine here */
        /* continue normal boot */

I suppose you can do similar in u-boot and it will be quite generic
solution. Such code can be executed from RAM and FLASH without need to
reconfigure and rebuild.

03.03.11 12:16, Pandurang Kale написав(ла):
> Hello Everyone,
> We have MIPS based development board and I am trying to get the uboot up
> and running on it.
> We have a primary bootloader which check for the valid mod-image stored
> on the flash. This mod-image consist of header, uboot and linux kernel.
> Depending on the recent, active and stable imagethe primary bootloader
> first copies the uboot image. and later on we would copy the kernel
> image from uboot.
> But when primary bootloader copies the uboot image to the RAM and passes
> the control to the uboot, uboot (MIPS version of start.S and
> arch/mips/lib/borad.c) tries to relocate the
> already copied image from RAM (the primary bootloader copied it to start
> of the RAM+1MB address) to top of the RAM (0x87fc0000) region thinking
> that the uboot image is stored in flash.
> All I need to do is skip the uboot relocate code in MIPS version of
> uboot startup as the primary bootloader has already relocated the uboot
> from Flash to RAM and set up the stack pointer and other global data
> appropriately, which it does after relocation.
> I can see there is a switch for ARM processor,
> CONFIG_SKIP_RELOCATE_UBOOT, which skips the relocation of uboot code and
> tries to run the uboot from RAM. I
> cannot see a similar switch implemented for MIPS and didnt find any
> related thread anywhere in mailing list or on net.
> Do we have similar ARM like switch to SKIP the RELOCATION? If not has
> anyone done this before?
> I would really appreciate if you can guide me to overcome this issue to
> run the uboot cleanly skipping the relocation.
> Thanks in advance,
> Pandu

Best regards,

<Prev in Thread] Current Thread [Next in Thread>