All of lore.kernel.org
 help / color / mirror / Atom feed
From: "Kevin Du Huanpeng" <u74147@gmail.com>
To: 'Antony Pavlov' <antonynpavlov@gmail.com>
Cc: barebox@lists.infradead.org
Subject: RE: 答复: [PATCH] MIPS: start.S: remove duplicate ADR macro definition
Date: Thu, 5 Dec 2013 16:55:48 +0800	[thread overview]
Message-ID: <000801cef197$ce2351e0$6a69f5a0$@gmail.com> (raw)
In-Reply-To: <20131205083451.faa1cb75348f65e400160b86@gmail.com>

Hi!
I am using this model:
WR720N   http://wiki.openwrt.org/toh/tp-link/tl-wr720n
note that, there is a very different model with the same name.
(*NOT* this one) http://www.tp-link.com/en/products/details/?model=TL-WR720N
but I suggest you to buy this model: wr703n
http://wiki.openwrt.org/ru/toh/tp-link/tl-wr703n
http://wiki.openwrt.org/toh/tp-link/tl-wr703n
it's even smaller. But only have one RJ45 port. The wr720n has two.
wr703n is cute.

I don't know if these two model available outside of china.
But there are some model very similar to these two.
and ar9331 based tp-link router:
https://github.com/pepe2k/u-boot_mod#supported-devices
http://wiki.openwrt.org/toh/tp-link/tl-mr10u

in china, we can buy it from
WR703N 99CNY http://item.yixun.com/item-216308.html?YTAG=3.21012001
WR720N 125CNY http://item.yixun.com/item-350056.html?YTAG=3.21012000
Or taobao.com, a site like Yahoo or ebay, C2C.

125CNY=21USD,99CNY=17USD,
but I don’t know why it is 64.99USD in amazon USA.
http://www.amazon.com/TP-Link-TL-WR720N-150Mbps-Wireless-N-Portable/dp/B00EYD1VKC/ref=sr_1_3?ie=UTF8&qid=1386231687&sr=8-3&keywords=wr720N

if you can't find it in your location, I can buy you one.
- - -
The AR9331 datasheet is available there:
http://see.sl088.com/w/images/6/69/AR9331.pdf

serial console access, hardware and many things are there:
http://wiki.openwrt.org/toh/tp-link/tl-wr703n

u-boot is here:
https://github.com/zhang3/u-boot_mod
forked from
https://github.com/pepe2k/u-boot_mod
thanks to pepe2k(https://github.com/pepe2k)

I have create a repository on github, now it's empty.
https://github.com/zhang3/barebox-wr720n
I will upload my source code and write document later.


...
DuHuanpeng

-----Original Message-----
From: Antony Pavlov [mailto:antonynpavlov@gmail.com] 
Sent: 2013年12月5日 12:35
To: Kevin Du Huanpeng
Subject: Re: 答复: [PATCH] MIPS: start.S: remove duplicate ADR macro definition

On Thu, 5 Dec 2013 01:25:04 +0800
"Kevin Du Huanpeng" <u74147@gmail.com> wrote:

> I am trying to port barebox on my TP-LINK WR720N router
> (SoC: AR9331 24KC, DRAM: 32MiB,  FLASH: 4MiB)

http://market.yandex.ru/model.xml?modelid=8444230

If it's your model then I can easely buy it in Moscow :)

> In the start.S, this ADR macro make me confuse...
> But finally, I find it 
> 	.macro  ADR rd label temp
> just used to get the label's VMA. (correct me if I am wrong) .
> in the start.S, it wants to get the _start 's VMA.
> Assuming the _start is the first instruction of barebox.
> Why not save the _start's VMA to ra when running the first instruction?
> By 
> 	bal __start
> 	nop
> 	...
> 	__start:
> I think the different between above and ADR is:
> My code overwrite the ra register.
> If any other bootloader or something call's barebox, It can't return.
> >Personally I have no objections on removing ADR macro.
> Just remove it from start.S
> 
> By the way, I really need help...
> Do you interested in porting barebox to ar9331?
> The router is quite cute and small, and very cheap!
> Just 125CNY, (20USD).
> You can find quit a lot information about it on OpenWRT.
> And there is a working u-boot for this router.
> https://github.com/pepe2k/u-boot_mod
> I have modify this u-boot and make it run In the kernel's position.
> https://github.com/zhang3/u-boot_mod
> So that the original u-boot can boot my u-boot.
> By done this,
> I modify the link address of barebox the same as the u-boot(second 
> one).
> 
>   
> 
> -----邮件原件-----
> 发件人: Antony Pavlov [mailto:antonynpavlov@gmail.com]
> 发送时间: 2013年12月5日 0:34
> 收件人: Kevin Du Huanpeng
> 主题: Re: [PATCH] MIPS: start.S: remove duplicate ADR macro definition
> 
> On Wed, 4 Dec 2013 20:47:47 +0800
> Kevin Du Huanpeng <u74147@gmail.com> wrote:
> 
> > hi, mips has a b/bal, why does mips have to use the macro: ADR in 
> > the start.S
> > 
> 
> Personally I have no objections on removing ADR macro. It has some disadvantages (e.g. it can't be used twice in one program because it uses global label).
> 
> If you want understand the situation with ADR macro you shoul track the MIPS barebox history.
> 
> My original MIPS barebox has no ADR macro. See head.S file and 
> especialy 'compute_offset' label in this patch 
> http://lists.infradead.org/pipermail/barebox/2011-June/003695.html
> 
> But after my publication Shinya Kuribayashi has appeared:
> http://lists.infradead.org/pipermail/barebox/2011-June/003707.html
> 
> Kuribayashi-san has his own (but not working) mips barebox implementation and Jean-Christophe enforced me to use Kuribayashi's start.S realisation (with ADR macro):
> http://lists.infradead.org/pipermail/barebox/2011-June/003715.html
> 
> As a result now we have start.S with ADR macro.
> 
> You want drop ADR macro from start.S, but IMHO we can drop relocation code from start.S completely!
> Today we have smart PBL (pre-boot loader) in barebox. This PBL can comress and relocate main barebox image. So we can easely drop relocation code from start.S:
> if you need relocation then just simply use PBL!
> 
> Can you please describe your interest in barebox for MIPS?
> That type of board do you use?
> 
> If you need any help on barebox for MIPS you are welcome!
> 
> > _start: bal __start
> > nop
> > __start:
> > addiu a0, ra, -8
> > a0, now is the _start's vma.
> > 
> > 
> > 2013/12/4 Antony Pavlov <antonynpavlov@gmail.com>:
> > > Signed-off-by: Antony Pavlov <antonynpavlov@gmail.com>
> > > ---
> > >  arch/mips/boot/start.S | 22 +---------------------
> > >  1 file changed, 1 insertion(+), 21 deletions(-)
> > >
> > > diff --git a/arch/mips/boot/start.S b/arch/mips/boot/start.S index
> > > 7e2ae5e..d180157 100644
> > > --- a/arch/mips/boot/start.S
> > > +++ b/arch/mips/boot/start.S
> > > @@ -2,7 +2,6 @@
> > >   * Startup Code for MIPS CPU
> > >   *
> > >   * Copyright (C) 2011 Antony Pavlov <antonynpavlov@gmail.com>
> > > - * Used code copyrighted (C) 2009 by Shinya Kuribayashi <skuribay@pobox.com>
> > >   *
> > >   * This file is part of barebox.
> > >   * See file CREDITS for list of people who contributed to this project.
> > > @@ -24,26 +23,7 @@
> > >  #include <asm-generic/memory_layout.h>  #include 
> > > <generated/compile.h>  #include <generated/utsrelease.h>
> > > -
> > > -       /*
> > > -        * ADR macro instruction (inspired by ARM)
> > > -        *
> > > -        * ARM architecture doesn't have PC-relative jump instruction
> > > -        * like MIPS' B/BAL insns.  When ARM makes PC-relative jumps,
> > > -        * it uses ADR insn.  ADR is used to get a destination address
> > > -        * of 'label' against current PC.  With this, ARM can safely
> > > -        * make PC-relative jumps.
> > > -        */
> > > -       .macro  ADR rd label temp
> > > -       .set    push
> > > -       .set    noreorder
> > > -       move    \temp, ra                       # preserve ra beforehand
> > > -       bal     _pc
> > > -        nop
> > > -_pc:   addiu   \rd, ra, \label - _pc           # label is assumed to be
> > > -       move    ra, \temp                       # within pc +/- 32KB
> > > -       .set    pop
> > > -       .endm
> > > +#include <asm/pbl_macros.h>
> > >
> > >         .set noreorder
> > >         .text
> > > --
> > > 1.8.4.4
> > >
> 
> 
> --
> --
> Best regards,
>   Antony Pavlov
> 


--
--
Best regards,
  Antony Pavlov


_______________________________________________
barebox mailing list
barebox@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/barebox

      parent reply	other threads:[~2013-12-05  8:56 UTC|newest]

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-12-02 17:17 [PATCH] make the code simpler u74147
2013-12-03 10:25 ` Antony Pavlov
2013-12-04  6:09   ` [PATCH] MIPS: start.S: remove duplicate ADR macro definition Antony Pavlov
     [not found]     ` <CANvTkNb4Zj7Yv-poj4_J4iKQAU6HBS=-KJAe9v2nwGMMbaMJ5Q@mail.gmail.com>
     [not found]       ` <20131204203331.551f0276f8336f78e8becbcf@gmail.com>
     [not found]         ` <002101cef115$c762c7f0$562857d0$@gmail.com>
     [not found]           ` <20131205083451.faa1cb75348f65e400160b86@gmail.com>
2013-12-05  8:55             ` Kevin Du Huanpeng [this message]

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='000801cef197$ce2351e0$6a69f5a0$@gmail.com' \
    --to=u74147@gmail.com \
    --cc=antonynpavlov@gmail.com \
    --cc=barebox@lists.infradead.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 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.