diff mbox

[U-Boot,RFC,1/6] Mips: Move content of arch/mips/cpu to arch/mips/cpu/mips32

Message ID 1299676619-7963-2-git-send-email-daniel.schwierzeck@googlemail.com
State Superseded, archived
Headers show

Commit Message

Daniel Schwierzeck March 9, 2011, 1:16 p.m. UTC
All current CPUs and SoCs are based on Mips32 arch. The complete
code resides in the global arch/mips/cpu directory. This is not
suitable if other Mips architectures like Mips64 or Octeon should
be supported in the future.

To achieve this the current CPU code is moved to its own mips32
subdirectory. All Mips32 boards have to use mips32 as config switch
in board.cfg.

Signed-off-by: Daniel Schwierzeck <daniel.schwierzeck@googlemail.com>
Cc: Shinya Kuribayashi <skuribay@pobox.com>
---
 arch/mips/cpu/{ => mips32}/Makefile          |    0
 arch/mips/cpu/{ => mips32}/asc_serial.c      |    0
 arch/mips/cpu/{ => mips32}/asc_serial.h      |    0
 arch/mips/cpu/{ => mips32}/au1x00_eth.c      |    0
 arch/mips/cpu/{ => mips32}/au1x00_serial.c   |    0
 arch/mips/cpu/{ => mips32}/au1x00_usb_ohci.c |    0
 arch/mips/cpu/{ => mips32}/au1x00_usb_ohci.h |    0
 arch/mips/cpu/{ => mips32}/cache.S           |    0
 arch/mips/cpu/{ => mips32}/config.mk         |    0
 arch/mips/cpu/{ => mips32}/cpu.c             |    0
 arch/mips/cpu/{ => mips32}/incaip_clock.c    |    0
 arch/mips/cpu/{ => mips32}/incaip_wdt.S      |    0
 arch/mips/cpu/{ => mips32}/interrupts.c      |    0
 arch/mips/cpu/{ => mips32}/start.S           |    0
 boards.cfg                                   |   52 +++++++++++++-------------
 15 files changed, 26 insertions(+), 26 deletions(-)
 rename arch/mips/cpu/{ => mips32}/Makefile (100%)
 rename arch/mips/cpu/{ => mips32}/asc_serial.c (100%)
 rename arch/mips/cpu/{ => mips32}/asc_serial.h (100%)
 rename arch/mips/cpu/{ => mips32}/au1x00_eth.c (100%)
 rename arch/mips/cpu/{ => mips32}/au1x00_serial.c (100%)
 rename arch/mips/cpu/{ => mips32}/au1x00_usb_ohci.c (100%)
 rename arch/mips/cpu/{ => mips32}/au1x00_usb_ohci.h (100%)
 rename arch/mips/cpu/{ => mips32}/cache.S (100%)
 rename arch/mips/cpu/{ => mips32}/config.mk (100%)
 rename arch/mips/cpu/{ => mips32}/cpu.c (100%)
 rename arch/mips/cpu/{ => mips32}/incaip_clock.c (100%)
 rename arch/mips/cpu/{ => mips32}/incaip_wdt.S (100%)
 rename arch/mips/cpu/{ => mips32}/interrupts.c (100%)
 rename arch/mips/cpu/{ => mips32}/start.S (100%)

--
1.7.4.1

Comments

Shinya Kuribayashi March 12, 2011, 2:43 p.m. UTC | #1
On 3/9/11 10:16 PM, daniel.schwierzeck@googlemail.com wrote:
> All current CPUs and SoCs are based on Mips32 arch. The complete

Is that true?  What about purple SoC?  IIUC It's based on MIPS 5Kc
and capable of 64-bit, which MIPS32 is 32-bit only architecture.

> code resides in the global arch/mips/cpu directory. This is not
> suitable if other Mips architectures like Mips64 or Octeon should
> be supported in the future.

Just for the record.

Personally, Octeon is sort of a special case.  It's based on MIPS64
architecture, and definitely a MIPS SoC, but not usual MIPS machine.
As Aaron already mentioned before, we have very few files sharable
with other MIPS machines even in the Linux kernel case.  I think it
will take long time the Octeon port gets merged to upstream, regard-
less of my opinions, because they have a lot of things need to be
resolved prior to Octeon itself.

> To achieve this the current CPU code is moved to its own mips32
> subdirectory. All Mips32 boards have to use mips32 as config switch
> in board.cfg.
>
> Signed-off-by: Daniel Schwierzeck<daniel.schwierzeck@googlemail.com>
> Cc: Shinya Kuribayashi<skuribay@pobox.com>
Daniel Schwierzeck March 13, 2011, 12:48 a.m. UTC | #2
Hi Shinya,

On 03/12/2011 03:43 PM, Shinya Kuribayashi wrote:
> On 3/9/11 10:16 PM, daniel.schwierzeck@googlemail.com wrote:
>> All current CPUs and SoCs are based on Mips32 arch. The complete
>
> Is that true? What about purple SoC? IIUC It's based on MIPS 5Kc
> and capable of 64-bit, which MIPS32 is 32-bit only architecture.

that was an assumption. I could not find any information about Purple.
This patch series is a suggestion. Maybe there are better approaches 
like arch/mips/cpu/{mips4k|mips5k|mips24k|...|octeon}.

>
>> code resides in the global arch/mips/cpu directory. This is not
>> suitable if other Mips architectures like Mips64 or Octeon should
>> be supported in the future.
>
> Just for the record.
>
> Personally, Octeon is sort of a special case. It's based on MIPS64
> architecture, and definitely a MIPS SoC, but not usual MIPS machine.
> As Aaron already mentioned before, we have very few files sharable
> with other MIPS machines even in the Linux kernel case. I think it
> will take long time the Octeon port gets merged to upstream, regard-
> less of my opinions, because they have a lot of things need to be
> resolved prior to Octeon itself.

My original intention was cleaning up the MIPS CPU directory as 
preparation to support new SoCs. I included this patch because Aaron 
asked for this separation some weeks ago but no one answered or commented ;)
However I posted this series to get some feedback if such a change is 
wanted or acceptable. If so I prepare a new patch series. At least I 
hope the SoC separation is acceptable.

Cheers,
Daniel
Wolfgang Denk March 13, 2011, 10:44 p.m. UTC | #3
Dear Daniel Schwierzeck,

In message <4D7C147A.5060501@gmail.com> you wrote:
> 
> >> All current CPUs and SoCs are based on Mips32 arch. The complete
> >
> > Is that true? What about purple SoC? IIUC It's based on MIPS 5Kc
> > and capable of 64-bit, which MIPS32 is 32-bit only architecture.
> 
> that was an assumption. I could not find any information about Purple.
> This patch series is a suggestion. Maybe there are better approaches 
> like arch/mips/cpu/{mips4k|mips5k|mips24k|...|octeon}.

Purple is (better: was) indeed a 64 bit system.

OTOH, the purple board has not been actively maintained for several
years, and I'm not aware of anybody who still has access to the
hardware.  If it should cause trouble, it would probably most
appropriate to drop the purple support.

Best regards,

Wolfgang Denk
Daniel Schwierzeck March 14, 2011, 12:15 p.m. UTC | #4
Hello Wolfgang,

2011/3/13 Wolfgang Denk <wd@denx.de>:
> Dear Daniel Schwierzeck,
>
> In message <4D7C147A.5060501@gmail.com> you wrote:
>>
>> >> All current CPUs and SoCs are based on Mips32 arch. The complete
>> >
>> > Is that true? What about purple SoC? IIUC It's based on MIPS 5Kc
>> > and capable of 64-bit, which MIPS32 is 32-bit only architecture.
>>
>> that was an assumption. I could not find any information about Purple.
>> This patch series is a suggestion. Maybe there are better approaches
>> like arch/mips/cpu/{mips4k|mips5k|mips24k|...|octeon}.
>
> Purple is (better: was) indeed a 64 bit system.
>
> OTOH, the purple board has not been actively maintained for several
> years, and I'm not aware of anybody who still has access to the
> hardware.  If it should cause trouble, it would probably most
> appropriate to drop the purple support.
>

shall I include an additional patch that drops Purple support and do you agree
to the refactoring of the CPU directory itself?

Best regards,
Daniel
Wolfgang Denk March 14, 2011, 12:41 p.m. UTC | #5
Dear Daniel Schwierzeck,

In message <AANLkTinP-3rVXVKcxi8_XTra8mKoBzTV88Vu2t1YkP+q@mail.gmail.com> you wrote:
> 
> > OTOH, the purple board has not been actively maintained for several
> > years, and I'm not aware of anybody who still has access to the
> > hardware. =C2=A0If it should cause trouble, it would probably most
> > appropriate to drop the purple support.
>
> shall I include an additional patch that drops Purple support and do you agree

Yes, please, if it reduces the effort for you now.

> to the refactoring of the CPU directory itself?

Sorry, I didn't have much time to read it / think about it yet.

Best regards,

Wolfgang Denk
Aaron Williams March 15, 2011, 12:29 a.m. UTC | #6
Seperating the SOCs solves most of my problems with the exception of board.c, 
but then again, we're rather a special case there due to some of the stuff we 
do.

Not counting our SDK we have around 27Kloc for our platform, a large chunk of 
that being DDR2/3 memory initialization code. Our SDK currently weighs in at 
764Kloc, most of which isn't needed by U-Boot (lots of autogenerated hardware 
definition files for all our chips).

-Aaron

On Saturday, March 12, 2011 04:48:58 PM Daniel Schwierzeck wrote:
> Hi Shinya,
> 
> On 03/12/2011 03:43 PM, Shinya Kuribayashi wrote:
> > On 3/9/11 10:16 PM, daniel.schwierzeck@googlemail.com wrote:
> >> All current CPUs and SoCs are based on Mips32 arch. The complete
> > 
> > Is that true? What about purple SoC? IIUC It's based on MIPS 5Kc
> > and capable of 64-bit, which MIPS32 is 32-bit only architecture.
> 
> that was an assumption. I could not find any information about Purple.
> This patch series is a suggestion. Maybe there are better approaches
> like arch/mips/cpu/{mips4k|mips5k|mips24k|...|octeon}.
> 
> >> code resides in the global arch/mips/cpu directory. This is not
> >> suitable if other Mips architectures like Mips64 or Octeon should
> >> be supported in the future.
> > 
> > Just for the record.
> > 
> > Personally, Octeon is sort of a special case. It's based on MIPS64
> > architecture, and definitely a MIPS SoC, but not usual MIPS machine.
> > As Aaron already mentioned before, we have very few files sharable
> > with other MIPS machines even in the Linux kernel case. I think it
> > will take long time the Octeon port gets merged to upstream, regard-
> > less of my opinions, because they have a lot of things need to be
> > resolved prior to Octeon itself.
> 
> My original intention was cleaning up the MIPS CPU directory as
> preparation to support new SoCs. I included this patch because Aaron
> asked for this separation some weeks ago but no one answered or commented
> ;) However I posted this series to get some feedback if such a change is
> wanted or acceptable. If so I prepare a new patch series. At least I hope
> the SoC separation is acceptable.
> 
> Cheers,
> Daniel
diff mbox

Patch

diff --git a/arch/mips/cpu/Makefile b/arch/mips/cpu/mips32/Makefile
similarity index 100%
rename from arch/mips/cpu/Makefile
rename to arch/mips/cpu/mips32/Makefile
diff --git a/arch/mips/cpu/asc_serial.c b/arch/mips/cpu/mips32/asc_serial.c
similarity index 100%
rename from arch/mips/cpu/asc_serial.c
rename to arch/mips/cpu/mips32/asc_serial.c
diff --git a/arch/mips/cpu/asc_serial.h b/arch/mips/cpu/mips32/asc_serial.h
similarity index 100%
rename from arch/mips/cpu/asc_serial.h
rename to arch/mips/cpu/mips32/asc_serial.h
diff --git a/arch/mips/cpu/au1x00_eth.c b/arch/mips/cpu/mips32/au1x00_eth.c
similarity index 100%
rename from arch/mips/cpu/au1x00_eth.c
rename to arch/mips/cpu/mips32/au1x00_eth.c
diff --git a/arch/mips/cpu/au1x00_serial.c b/arch/mips/cpu/mips32/au1x00_serial.c
similarity index 100%
rename from arch/mips/cpu/au1x00_serial.c
rename to arch/mips/cpu/mips32/au1x00_serial.c
diff --git a/arch/mips/cpu/au1x00_usb_ohci.c b/arch/mips/cpu/mips32/au1x00_usb_ohci.c
similarity index 100%
rename from arch/mips/cpu/au1x00_usb_ohci.c
rename to arch/mips/cpu/mips32/au1x00_usb_ohci.c
diff --git a/arch/mips/cpu/au1x00_usb_ohci.h b/arch/mips/cpu/mips32/au1x00_usb_ohci.h
similarity index 100%
rename from arch/mips/cpu/au1x00_usb_ohci.h
rename to arch/mips/cpu/mips32/au1x00_usb_ohci.h
diff --git a/arch/mips/cpu/cache.S b/arch/mips/cpu/mips32/cache.S
similarity index 100%
rename from arch/mips/cpu/cache.S
rename to arch/mips/cpu/mips32/cache.S
diff --git a/arch/mips/cpu/config.mk b/arch/mips/cpu/mips32/config.mk
similarity index 100%
rename from arch/mips/cpu/config.mk
rename to arch/mips/cpu/mips32/config.mk
diff --git a/arch/mips/cpu/cpu.c b/arch/mips/cpu/mips32/cpu.c
similarity index 100%
rename from arch/mips/cpu/cpu.c
rename to arch/mips/cpu/mips32/cpu.c
diff --git a/arch/mips/cpu/incaip_clock.c b/arch/mips/cpu/mips32/incaip_clock.c
similarity index 100%
rename from arch/mips/cpu/incaip_clock.c
rename to arch/mips/cpu/mips32/incaip_clock.c
diff --git a/arch/mips/cpu/incaip_wdt.S b/arch/mips/cpu/mips32/incaip_wdt.S
similarity index 100%
rename from arch/mips/cpu/incaip_wdt.S
rename to arch/mips/cpu/mips32/incaip_wdt.S
diff --git a/arch/mips/cpu/interrupts.c b/arch/mips/cpu/mips32/interrupts.c
similarity index 100%
rename from arch/mips/cpu/interrupts.c
rename to arch/mips/cpu/mips32/interrupts.c
diff --git a/arch/mips/cpu/start.S b/arch/mips/cpu/mips32/start.S
similarity index 100%
rename from arch/mips/cpu/start.S
rename to arch/mips/cpu/mips32/start.S
diff --git a/boards.cfg b/boards.cfg
index 45c3102..8f63b6c 100644
--- a/boards.cfg
+++ b/boards.cfg
@@ -217,32 +217,32 @@  M5282EVB                     m68k        mcf52x2     m5282evb            freesca
 M53017EVB                    m68k        mcf52x2     m53017evb           freescale
 EP2500                       m68k        mcf52x2     ep2500              Mercury
 microblaze-generic           microblaze  microblaze  microblaze-generic  xilinx
-dbau1000                     mips        mips        dbau1x00            -              -           dbau1x00:DBAU1000
-dbau1100                     mips        mips        dbau1x00            -              -           dbau1x00:DBAU1100
-dbau1500                     mips        mips        dbau1x00            -              -           dbau1x00:DBAU1500
-dbau1550                     mips        mips        dbau1x00            -              -           dbau1x00:DBAU1550
-dbau1550_el                  mips        mips        dbau1x00            -              -           dbau1x00:DBAU1550
-gth2                         mips        mips
-incaip                       mips        mips
-incaip_100MHz                mips        mips        incaip              -              -           incaip:CPU_CLOCK_RATE=100000000
-incaip_133MHz                mips        mips        incaip              -              -           incaip:CPU_CLOCK_RATE=133000000
-incaip_150MHz                mips        mips        incaip              -              -           incaip:CPU_CLOCK_RATE=150000000
-pb1000                       mips        mips        pb1x00              -              -           pb1x00:PB1000
-purple                       mips        mips
-qemu_mips                    mips        mips        qemu-mips           -              -           qemu-mips
-tb0229                       mips        mips
-vct_premium                  mips        mips        vct                 micronas       -           vct:VCT_PREMIUM
-vct_premium_small            mips        mips        vct                 micronas       -           vct:VCT_PREMIUM,VCT_SMALL_IMAGE
-vct_premium_onenand          mips        mips        vct                 micronas       -           vct:VCT_PREMIUM,VCT_ONENAND
-vct_premium_onenand_small    mips        mips        vct                 micronas       -           vct:VCT_PREMIUM,VCT_ONENAND,VCT_SMALL_IMAGE
-vct_platinum                 mips        mips        vct                 micronas       -           vct:VCT_PLATINUM
-vct_platinum_small           mips        mips        vct                 micronas       -           vct:VCT_PLATINUM,VCT_SMALL_IMAGE
-vct_platinum_onenand         mips        mips        vct                 micronas       -           vct:VCT_PLATINUM,VCT_ONENAND
-vct_platinum_onenand_small   mips        mips        vct                 micronas       -           vct:VCT_PLATINUM,VCT_ONENAND,VCT_SMALL_IMAGE
-vct_platinumavc              mips        mips        vct                 micronas       -           vct:VCT_PLATINUMAVC
-vct_platinumavc_small        mips        mips        vct                 micronas       -           vct:VCT_PLATINUMAVC,VCT_SMALL_IMAGE
-vct_platinumavc_onenand      mips        mips        vct                 micronas       -           vct:VCT_PLATINUMAVC,VCT_ONENAND
-vct_platinumavc_onenand_small mips       mips        vct                 micronas       -           vct:VCT_PLATINUMAVC,VCT_ONENAND,VCT_SMALL_IMAGE
+dbau1000                     mips        mips32      dbau1x00            -              -           dbau1x00:DBAU1000
+dbau1100                     mips        mips32      dbau1x00            -              -           dbau1x00:DBAU1100
+dbau1500                     mips        mips32      dbau1x00            -              -           dbau1x00:DBAU1500
+dbau1550                     mips        mips32      dbau1x00            -              -           dbau1x00:DBAU1550
+dbau1550_el                  mips        mips32      dbau1x00            -              -           dbau1x00:DBAU1550
+gth2                         mips        mips32
+incaip                       mips        mips32
+incaip_100MHz                mips        mips32      incaip              -              -           incaip:CPU_CLOCK_RATE=100000000
+incaip_133MHz                mips        mips32      incaip              -              -           incaip:CPU_CLOCK_RATE=133000000
+incaip_150MHz                mips        mips32      incaip              -              -           incaip:CPU_CLOCK_RATE=150000000
+pb1000                       mips        mips32      pb1x00              -              -           pb1x00:PB1000
+purple                       mips        mips32
+qemu_mips                    mips        mips32      qemu-mips           -              -           qemu-mips
+tb0229                       mips        mips32
+vct_premium                  mips        mips32      vct                 micronas       -           vct:VCT_PREMIUM
+vct_premium_small            mips        mips32      vct                 micronas       -           vct:VCT_PREMIUM,VCT_SMALL_IMAGE
+vct_premium_onenand          mips        mips32      vct                 micronas       -           vct:VCT_PREMIUM,VCT_ONENAND
+vct_premium_onenand_small    mips        mips32      vct                 micronas       -           vct:VCT_PREMIUM,VCT_ONENAND,VCT_SMALL_IMAGE
+vct_platinum                 mips        mips32      vct                 micronas       -           vct:VCT_PLATINUM
+vct_platinum_small           mips        mips32      vct                 micronas       -           vct:VCT_PLATINUM,VCT_SMALL_IMAGE
+vct_platinum_onenand         mips        mips32      vct                 micronas       -           vct:VCT_PLATINUM,VCT_ONENAND
+vct_platinum_onenand_small   mips        mips32      vct                 micronas       -           vct:VCT_PLATINUM,VCT_ONENAND,VCT_SMALL_IMAGE
+vct_platinumavc              mips        mips32      vct                 micronas       -           vct:VCT_PLATINUMAVC
+vct_platinumavc_small        mips        mips32      vct                 micronas       -           vct:VCT_PLATINUMAVC,VCT_SMALL_IMAGE
+vct_platinumavc_onenand      mips        mips32      vct                 micronas       -           vct:VCT_PLATINUMAVC,VCT_ONENAND
+vct_platinumavc_onenand_small mips       mips32      vct                 micronas       -           vct:VCT_PLATINUMAVC,VCT_ONENAND,VCT_SMALL_IMAGE
 PCI5441                      nios2       nios2       pci5441             psyent
 PK1C20                       nios2       nios2       pk1c20              psyent
 EVB64260                     powerpc     74xx_7xx    evb64260            -              -           EVB64260