Porting a New Architecture to
      OpenWrt Project



    Macpaul Lin & AndesTech
     COSCUP 2010/08/15
Who am I?
    ●   Macpaul ( 馬克泡 )
             ●   林智斌
             ●   Macpaul <at> gmail.com
             ●   阿宅
             ●   亂入
             ●   網路技術
             ●   最近對紫微斗數有興趣
             ●   下次在 COSCUP 要擺
                 婚友社攤位




2010/08/15
Outline
    ●   Introduction.
    ●   A new RISC architecture – NDS32.
    ●   The framework of OpenWrt build system.
    ●   Porting Items.
    ●   Conclusion.




2010/08/15
Introduction
                       What is OpenWrt?
    ●   If you bought a wireless router, you will also
        buy the following softwares.




         Ref:
         http://www.dataweek.co.za/news.aspx?pklNewsId=28298&pklCategoryID=42
2010/08/15
Introduction
                What is OpenWrt?



       A software framework to build firmware
              for those wireless routers.




2010/08/15
Introduction
                        What is OpenWrt?
   ●   The most popular open source project for networking
       devices.
       ●   A firmware/package build system (framework) for various kinds of SoC
           platforms and wireless routers.
   ●   The workgroup of OpenWrt focuses on…
       ●   Analyze the kernel/protocol differences between vendors’ code release
           and vanilla Linux kernel.
       ●   Maintain the compatible firmware for vendors‘ boot loaders. (CRC, version
           headers)
       ●   Keep the compatibility with driver binaries.
       ●   Disassembled driver binary.
   ●   Has been embedded in many companies’ successful
       products.
   ●     It will pull the stable source code of each component
         from its project's site during compiling time.
2010/08/15
Introduction
                                   Topic Review.
     ●   OSDC
           ●   Porta2030 @ Taipei – 2007 (Macpaul)
     ●   ICOS
           ●   Porting WiFi router to OpenWrt – 2007 (Macpaul)
     ●   COSCUP
           ●   Router Hacking 101. – 2007 (Rex)
           ●   OpenWrt and Case Study. – 2008 (Rex)
           ●   OpenWRT, A value-add base solution for your product. – 2009 (Rex, Macpaul)
           ●   Porting a New Architecture to OpenWrt Project. – 2010 (Macpaul)
     ●   Co-play
           ●   Porta2030 的未來及未實現 . – 2009 (Rex)
     ●   自由軟體技術充電站 (OSSF)
           ●   OpenWrt. – 2009 (Macpaul, Rex)
     ●   Computex
2010/08/15 ●   Andeswrt: NDS32 is ready for your OpenWrt Products. - 2010 (Macpaul)
Introduction
                  The trend of using OpenWrt.
    ●   Community achievement
    ●   Business achievement
             ●   Networking Device Sellers / Manufacturer. (FON)
             ●   ISP. (BT/Tomizone)
             ●   Chip / IP Vendors. (Broadcom/Ubicom/Andes)
                  –   All AndesTech CPU licensees for networking SoC
                      use OpenWrt.
             ●   Software Solution Vendor.
                  –   (OpenMesh, BATMAN, Savari)




2010/08/15
Introduction
                 The trend of using OpenWrt.


             D D -W R T                    O p e n W rt
               DDW RT




             C zech




              G e r m a n y , T a iw a n                  H o n g K o n g , C h in a
2010/08/15
Introduction
             The trend of using OpenWrt.
   ●   OpenWrt Robot
   ●   OpenWrt Gumdam




       http://www.dd-wrt.com/wiki/index.php/LaFonera_Hardware_Roboter_Controlling
       http://www.cuhkacs.org/~scli/blog/2007/09/fujiq_gundam_crisis.html
2010/08/15
Introduction
                                    About the Industry Chain.
                                                                               回 報 錯 誤
                                                                               提 出 建 議                       回 報 錯 誤

              S oC 供 應 商              系 統 整 合 廠                                          品 牌 廠     消 費 者



                                                  自 由 軟 體 社 群    附 加 價 值 廠 商



                  某 版 本
             L in u x K e r n e l     產 品 原 型                                              販 售
                                                  更 新 函 式 庫            生 產 測 試                     回 報 錯 誤
                開 發 工 具               開 發 驗 證                                            發 佈 更 新
              提 供 新 科 技



                                                  更 新 通 訊 協 定




                                                  提 升 效 能 及 修
                                                   正 錯 誤 補 綴



                                                  通 訊 協 定 及 整
                                                    合 客 製 化



                                                  整 合 第 三 方 軟
                                                       體



                                                  整 合 廠 商 既 有
                                                    軟 體 架 構
                                                   O p en W rt


2010/08/15
Introduction
             About the Industry Chain.
    ●   Embedded system hardware level.


                                      Hardware System
                Arch   CPU Core   SoC            And
                                              Other IC



        Most embedded software framework were
        organized according to different SoC.
    ●   However everything was related to CPU
        architecture.
2010/08/15
A new RISC architecture - NDS32
    ●   Invented by AndesTech Corporation.
    ●   The innovative configurable platform solution
        allows Andes’ customers to construct unique
        system architecture and hardware/software
        partitioning.
    ●   Andes is invested by
         ● MediaTek,

         ● Faraday,

         ● National Development Fund,

         ● and other industry heavy weights.



2010/08/15
A new RISC architecture – NDS32
                     National Development Fund
    ●   第四條 本基金之來源如下:
             ●   一、中美經濟社會發展基金:
                 – ( 一 ) 前美援項下所衍生之新臺幣資金結餘。
                 – ( 二 ) 本基金運用後孳生之收益。
                 – ( 三 ) 本基金運用後之賸餘及其他經核定撥入之款項。
             ●   二、開發基金:
                 – ( 一 ) 由政府循預算程序之撥款。
                 – ( 二 ) 國際開發協會貸款運用後收回之本金及孳息。
                 – ( 三 ) 本基金之收益。
                 – ( 四 ) 其他有關收入。



2010/08/15
A new RISC architecture - NDS32
    ●   Provide 3 different CPU core families for
        customers.




2010/08/15
A new RISC architecture - NDS32
    ●   CPU Core (N9 as example)
             ●   16/32bit mixable instruction format
             ●   16 or 32 general-purpose 32-bit registers
             ●   Multiple stage pipeline
             ●   Aligned post-increment load/store single
             ●   Aligned and unaligned load/store multiple
             ●   Vectored interrupts with 6 signals for interrupt sources and 2
                 runtime options:
                  – the built-in internal interrupt controller for 6 interrupt sources
                  – the external interrupt controller with 64 interrupt sources
             ●   2 or 3 HW nested interruption levels
             ●   Memory-mapped I/O
             ●   Non-Translated-Mapping (NTM) for cacheability attributes
2010/08/15
A new RISC architecture - NDS32
    ●   Benefit (N9 as example)
             ●   Performance
                  –   16/32bit mixable instruction format for compacting code density
                  –   Static branch predication
                  –   Low-latency vectored interrupt for real-time performance
                  –   Completion of one 32-bit operation per cycle
             ●   Flexibility
                  –   Memory-mapped IO space
                  –   PC-relative jumps for position independent code
                  –   JTAG-based debug support
                  –   Support for bi-endian data accesses
                  –   Several configurations to trade off between core size and application requirements
             ●   Power Management
                  –   Clock-gated pipeline
                  –   Power management instructions

2010/08/15
A new RISC architecture – NDS32
            About the industry chain.
       N D S 3 2 is h e r e .                                                                                R ep o rt b u g s,
                                                                                                          R e q u e st fe a tu r e s                                   R ep ort b u gs

              S oC V en d or               S I /O D M /O E M                                                                           B ran d V en d or    C on su m er



                                                                     O p en S ou rce          V a lu e -a d d
                                                                     C o m m u n ity           V en d ors

             L in u x K e r n e l
               2 .X .X B S P ,              P r o to ty p in g ,                                                                             S a le ,      R ep ort b u gs,
                                                                         U p d a te                   P r o d u c tio n
                T o o lc h a in ,          D e v e lo p m e n t,                                                                          P r o v id e s      R eq u est
                                                                        L ib r a r ie s                  T e s tin g
                 w ith N e w                V e r ific a tio n .                                                                          U p d a te s.       fe a tu r e s
        T e c h n o lo g y s u p p o r t

                                                                         U p d a te
                                                                      N e tw o r k in g
                                                                        P ro to c o l


                                                                    E n h a n cem en t,                                                N D S 3 2 is h e r e .
                                                                        fix b u g s ,
                                                                   u p d a te p a tc h e s

      N D S 3 2 is h e r e .
                                                                   I n te g r a tio n a n d
                                                                    C u s to m iz a tio n
                                                                                                                                        N D S 3 2 is h e r e .
                                                                    In te g r a te 3 r d -
                                                                   P a r ty S o ftw a r e


                               N D S 3 2 is h e r e .               I n te g r a te w ith
                                                                         o r ig in a l
                                                                   S o ftw a r e A r c h .
                                                                       O p en W rt


2010/08/15
The framework of OpenWrt build system.

    ●   Architectures           ●   Target
             ●   Target             ●   Imagebuilder
             ●   Toolchain          ●   Linux
             ●   Tools                  –   Generic Kernel
             ●   Scripts                –   SoC
                                             ●   Kernel versions
             ●   Package                     ●   Kernel patches
             ●   Include                     ●   Profiles
                                             ●   System files
                                             ●   Image formats
                                    ●   SDK
                                    ●   Toolchain
2010/08/15
The framework of OpenWrt build system.

    ●   Toolchain                      ●   Tools
             ●   binutils                  ●   autotools
             ●   eglibc/glibc/uClibc       ●   ccache
             ●   gcc/llvm                  ●   lzma
             ●   gdb/insight               ●   squashfs/ext3/ext2/
                                               yaffs
                                           ●   ipkg
                                           ●   sed
                                           ●   etc.

2010/08/15
The framework of OpenWrt build system.

   ●    Include
         ●       $ARCH as $LINUX_KARCH for kernel.
         ●       $DEFAULT_CFLAGS for $ARCH.
         ●       Endian type for $ARCH.
         ●       Data types in include/site/* for autotools.
    ●   Scripts
             ●   For maintaining system-wide tools and
                 definitions.



2010/08/15
The framework of OpenWrt build system.
                      Benefits - Flexibility.
    ●   Flexibility
             ●   You can use your customized toolchain to develop
                 your network products.
                 –   External Toolchain.
                 –   Customized toolchain patches.
             ●   You can use customized Linux kernel (usually from
                 chip vendors) and drivers to develop your network
                 products.
                 –   External kernel source tree.
                 –   Customized kernel patches.
             ●   You can add your applications to customize your
                 network products.
2010/08/15
The framework of OpenWrt build system.
                      Benefits - Flexibility.
    ●   2 Ways To Develop OpenWrt with NDS32
        Architecture.
             ●   AndesWrt with pre-build external toolchain to build NDS32 based OpenWrt
                 Firmware
                  – Very easy to use.
                  – Has been verified by…
                      ● BSP 2.1.0 – Kernel 2.6.29, Gcc 3, glibc / uClibc

                      ● AndeSight 1.4.0 – Kernel 2.6.29, Gcc 3, glibc / uClibc

             ●   NDS32 Architecture is also supported for OpenWrt main trunk to build your
                 own NDS32 based toolchain.
                  – Has been verified by…
                      ● Kernel 2.6.29,

                      ● binutils 2.19.1

                      ● Gcc 4.4.3

                      ● uClibc 0.9.30.2

2010/08/15
Porting Items.
    ●   Definitions in OpenWrt framework.
    ●   toolchain – gcc, uClibc, binutil
    ●   target – NDS32 Linux Kernel, ADP-AG101
    ●   autotool data type – include/site
    ●   u-boot
    ●   busybox
    ●   and other libraries and applications as well.


2010/08/15
Porting Items.
     ●    include/kernel.mk                                    |    2 +-
     ●    include/site/nds32-linux                             |   30 +
     ●    include/site/nds32-openwrt-linux-gnu                 |    5 +
     ●    include/site/nds32-openwrt-linux-uclibc              |    5 +
     ●    include/site/nds32eb-linux                           |   30 +
     ●    include/site/nds32eb-linux-openwrt-linux-gnu         |    5 +
     ●    include/site/nds32eb-linux-openwrt-linux-uclibc      |    5 +
     ●    include/target.mk                                    |    2 +
     ●    scripts/config.sub                                   |    2 +
     ●    target/Config.in                                     |    9 +
     ●    target/linux/adpxc5/Makefile                         |   27 +
     ●    target/linux/adpxc5/base-files.mk                    |    5 +
     ●    .../base-files/etc/defconfig/generic/network         |   16 +
     ●    target/linux/adpxc5/config-2.6.29                    | 242 +
     ●    target/linux/adpxc5/config-2.6.32                    | 216 +
     ●    target/linux/adpxc5/image/Makefile                   | 210 +
     ●    .../adpxc5/patches-2.6.29/001-uImage_support.patch   |   35 +
     ●    .../002-nds32_2_6_29_gcc4_support.patch              |   60 +
     ●    target/linux/generic-2.6/config-2.6.29               | 2343 +
     ●    .../000-nds32_arch_basic_2_6_29.patch                |74781 +++++++++
     ●    .../2.19.1/802-Add-nds32-target-support.patch        |169128 ++++++++++++++++++++
     ●    ...utils-2.19.1-from-binutils-2.15-in-v1.4-t.patch   | 2143 +
     ●    .../patches/2.19.1/804-Add-nds32-cgen.patch          | 5945 +
     ●    toolchain/gcc/Config.in                              |    2 +
     ●    toolchain/gcc/Config.version                         |    1 +
     ●    .../gcc/patches/4.4.3/995-nds32_support.patch        |26078 +++
     ●    toolchain/uClibc/Config.version                      |    3 +
     ●    toolchain/uClibc/Makefile                            |    2 +
     ●    toolchain/uClibc/config-0.9.30.2/common              |    1 +
     ●    toolchain/uClibc/config-0.9.30.2/nds32               |   74 +
     ●    toolchain/uClibc/config-0.9.30.2/nds32eb             |   74 +
     ●    .../patches-0.9.30.2/800-nds32_support.patch         | 7778 +
2010/08/15tools/mkimage/Makefile
     ●                                                         |    5 +-
Porting Items.
                             Toolchains.
    ●   Add NDS32 architecture related definitions
        and dependency into Config.in.
    ●   Make modularized patches and default
        configurations.
    ●   Make the diff (patch) from git repository
        according to the stable release.
             ●   Binutils
             ●   uClibc
             ●   gcc

2010/08/15
Porting Items.
                        Target.
    ●   Add SoC (AG101) directory.
    ●   Add Profile (model) related files.
    ●   Setup default configuration of kernel.
    ●   Add architecture specific kernel patches.
    ●   Make patch (git diff) according to a specific
        stable release version.



2010/08/15
Porting Items.
                        Kernel.
    ●   Setup default configuration for generic
        kernel.
    ●   Setup default configuration for architecture
        related codes.
    ●   Add architecture related patches into the
        patch set.
    ●   Make patch (git diff) according to a specific
        stable release version.

2010/08/15
Porting Items.
    ●   Release early, release often.
             int maintain_patch;
             while (porting_done()) {
                 if (commit ())
                      break;
                 else {
                      other_patches_coming ();
                      fix_patch();
                      maintain_patch();
                      maintain_patch++;
                      delay_schedule();
                 }
             }
    ●   Commit patches to the most root open source projects.
2010/08/15
Porting Items.
                                 U-boot.
    ●   Mailing list: u-boot@lists.denx.de
    ●   The custodian system.
             ●   http://www.denx.de/wiki/U-Boot/CustodianGitTrees




2010/08/15
Porting Items.
                                 U-boot.
    ●   Mailing list: u-boot@lists.denx.de
    ●   The custodian system.
             ●   http://www.denx.de/wiki/U-Boot/CustodianGitTrees




                              http://www.toei-anim.co.jp/sp/seiya/
2010/08/15
Porting Items.
                       U-boot.




    ●   Current we are fixing Patch v3.
2010/08/15
Porting Items.
                                U-boot.
    ●   The framework of u-boot.
             ●   Codes are classified into multiple levels,
                  – Architectures, Cores, SoC, Board, Models,
                    company.
             ●   arch – cpu (init asm), include, lib (board).
             ●   api
             ●   common – common commands.
             ●   board – evb or products.
             ●   drivers – peripheral drivers.
             ●   includes – configs and other include headers.
             ●   examples/standalone
2010/08/15
Conclusion




2010/08/15
Conclusion




             Never live demo.
             ●




2010/08/15
Conclusion
    ●   However, once the component of OpenWrt
        evolved to a new version, we will need to re-
        generate the corresponding patches again.
    ●   Do the right things first, then do the things
        right.
    ●   If you do not commit the source code into
        the mainline open source projects, you will
        suffer pain when maintaining patches for
        your customers.

2010/08/15
Conclusion




        Next Summer!
             NDS32 RISC CPU with GPU SoC!



2010/08/15
Conclusion



              To build a Gundam with NDS32 inside is nothing.
                  做一台有 NDS32 CPU 的剛彈不算什麼。

             Only one person can drive the Gundam.
                   只有一個人可以駕駛剛彈。



2010/08/15
Conclusion

             To build a Ubuntu (debain)
                     distribution
             with NDS32 is something.

    Everyone can use it.
2010/08/15
Conclusion
    ●   AndesTech provides Andes Open Source
        SDK.
             ●   http://osdk.andestech.com/
                 –   QEMU
                 –   Kernel
                 –   Toolchain




2010/08/15
Advertisement
    ●   NDS32 architecture powered by Andes is ready for your
        OpenWrt products.
    ●   If you are interested, Please contact our sales or HR…


        Andes Technology Corporation
        2F, No.1, Li-Hsin First Road, Science-Based Industrial Park,
        Hsin-Chu City, Taiwan 300 R.O.C (SiSoft Research Center)
           Tel: +886-3-6668300 Fax: +886-3-6668322
        Business : sales@andestech.com
        Technical : support@andestech.com




2010/08/15
Copyrights
    ●   All the Logo and trademarks belongs to
             ●   AndesTech Corporation.




2010/08/15

More Related Content

PDF
VLANs in the Linux Kernel
PDF
OpenWrt From Top to Bottom
PPTX
Linux Network Stack
PDF
Interrupt Affinityについて
PDF
Arm device tree and linux device drivers
PDF
Embedded linux network device driver development
PDF
Board Bringup
VLANs in the Linux Kernel
OpenWrt From Top to Bottom
Linux Network Stack
Interrupt Affinityについて
Arm device tree and linux device drivers
Embedded linux network device driver development
Board Bringup

What's hot (20)

PPTX
VPP事始め
PDF
OpenWRT manual
PPTX
RISC-V Boot Process: One Step at a Time
PPTX
OVN - Basics and deep dive
PPTX
FD.io VPP事始め
PDF
Fun with Network Interfaces
PDF
不揮発メモリ(NVDIMM)とLinuxの対応動向について
PDF
Network Drivers
PDF
SFO15-TR9: PSCI, ACPI (and UEFI to boot)
PDF
大規模DCのネットワークデザイン
PDF
Quick and Easy Device Drivers for Embedded Linux Using UIO
PDF
Pci express3-device-architecture-optimizations-idf2009-presentation
PDF
Linux packet-forwarding
PDF
Cilium - Container Networking with BPF & XDP
PPTX
OVN 設定サンプル | OVN config example 2015/12/27
PDF
Linux kernel architecture
PPTX
Linux Initialization Process (2)
PPTX
Meetup 23 - 02 - OVN - The future of networking in OpenStack
PPTX
Linux Interrupts
VPP事始め
OpenWRT manual
RISC-V Boot Process: One Step at a Time
OVN - Basics and deep dive
FD.io VPP事始め
Fun with Network Interfaces
不揮発メモリ(NVDIMM)とLinuxの対応動向について
Network Drivers
SFO15-TR9: PSCI, ACPI (and UEFI to boot)
大規模DCのネットワークデザイン
Quick and Easy Device Drivers for Embedded Linux Using UIO
Pci express3-device-architecture-optimizations-idf2009-presentation
Linux packet-forwarding
Cilium - Container Networking with BPF & XDP
OVN 設定サンプル | OVN config example 2015/12/27
Linux kernel architecture
Linux Initialization Process (2)
Meetup 23 - 02 - OVN - The future of networking in OpenStack
Linux Interrupts
Ad

Viewers also liked (19)

PDF
OpenWRT, A value-add base solution for your product. (1st part, chihchun)
PDF
OpenWrt101 2007
PPTX
政黨票的故事
PDF
Porting linux to a new architecture
PDF
Linux Porting
PDF
U boot 程式碼打掃計畫
ODP
U boot source clean up project how-to
PDF
How to build a community in a company blue&macpaul coscup2015
PPT
Why sending patches back is so important
PDF
Module 4 Embedded Linux
PDF
Qt5 embedded
PPT
OpenWRT, A value-add base solution for your product. (2nd, Macpual)
PDF
Explore Android Internals
PPT
Bootstrap process of u boot (NDS32 RISC CPU)
PDF
Porting Android
PDF
從u-boot 移植 NDS32 談 嵌入式系統開放原始碼開發的 一些經驗
PPTX
USB Specification 2.0 - Chapter 9 - Device Framework
PPT
U boot porting guide for SoC
PDF
Building Embedded Linux Full Tutorial for ARM
OpenWRT, A value-add base solution for your product. (1st part, chihchun)
OpenWrt101 2007
政黨票的故事
Porting linux to a new architecture
Linux Porting
U boot 程式碼打掃計畫
U boot source clean up project how-to
How to build a community in a company blue&macpaul coscup2015
Why sending patches back is so important
Module 4 Embedded Linux
Qt5 embedded
OpenWRT, A value-add base solution for your product. (2nd, Macpual)
Explore Android Internals
Bootstrap process of u boot (NDS32 RISC CPU)
Porting Android
從u-boot 移植 NDS32 談 嵌入式系統開放原始碼開發的 一些經驗
USB Specification 2.0 - Chapter 9 - Device Framework
U boot porting guide for SoC
Building Embedded Linux Full Tutorial for ARM
Ad

Similar to Porting a new architecture (NDS32) to open wrt project (20)

DOC
Ankit sarin
PDF
Linxu conj2016 96boards
PPTX
Andrea Gangemi: project portfolio
PDF
Montreal Kubernetes Meetup: Developer-first workflows (for microservices) on ...
PDF
LAS16 100 K1 - Keynote George Grey
PDF
LAS16-100K1: Welcome Keynote
DOC
Henry s software_engineer__resume _07_15_new
PDF
Industry 4.0: Building the Unified Namespace with Confluent, HiveMQ and Spark...
DOC
Nanaji_Jonnadula
PPT
EclipseEmbeddedDay2009-OSGi: Best Tool In Your Embedded Systems Toolbox
PDF
Leveraging open source for large scale analytics
PPT
Eclipse RT Day
PDF
BKK16-100K1 George Grey, Linaro CEO Opening Keynote
PDF
A new design reuse approach for voip implementation into fpsocs and asics
PPTX
Aplit-Soft
PDF
Intels presentation at blue line industrial computer seminar
PDF
LCU14 Keynote by George Grey
PDF
Sa*ple
PDF
A New Design Reuse Approach for Voip Implementation into Fpsocs and ASICS
PDF
Why the yocto project for my io t project elc_edinburgh_2018
Ankit sarin
Linxu conj2016 96boards
Andrea Gangemi: project portfolio
Montreal Kubernetes Meetup: Developer-first workflows (for microservices) on ...
LAS16 100 K1 - Keynote George Grey
LAS16-100K1: Welcome Keynote
Henry s software_engineer__resume _07_15_new
Industry 4.0: Building the Unified Namespace with Confluent, HiveMQ and Spark...
Nanaji_Jonnadula
EclipseEmbeddedDay2009-OSGi: Best Tool In Your Embedded Systems Toolbox
Leveraging open source for large scale analytics
Eclipse RT Day
BKK16-100K1 George Grey, Linaro CEO Opening Keynote
A new design reuse approach for voip implementation into fpsocs and asics
Aplit-Soft
Intels presentation at blue line industrial computer seminar
LCU14 Keynote by George Grey
Sa*ple
A New Design Reuse Approach for Voip Implementation into Fpsocs and ASICS
Why the yocto project for my io t project elc_edinburgh_2018

Recently uploaded (20)

PPTX
Microsoft User Copilot Training Slide Deck
PDF
Improvisation in detection of pomegranate leaf disease using transfer learni...
PDF
IT-ITes Industry bjjbnkmkhkhknbmhkhmjhjkhj
DOCX
Basics of Cloud Computing - Cloud Ecosystem
PDF
Transform-Your-Factory-with-AI-Driven-Quality-Engineering.pdf
PPTX
Internet of Everything -Basic concepts details
PDF
Transform-Quality-Engineering-with-AI-A-60-Day-Blueprint-for-Digital-Success.pdf
PPTX
SGT Report The Beast Plan and Cyberphysical Systems of Control
PDF
Comparative analysis of machine learning models for fake news detection in so...
PDF
The-2025-Engineering-Revolution-AI-Quality-and-DevOps-Convergence.pdf
PDF
Lung cancer patients survival prediction using outlier detection and optimize...
PDF
NewMind AI Weekly Chronicles – August ’25 Week IV
PPTX
future_of_ai_comprehensive_20250822032121.pptx
PPTX
Custom Battery Pack Design Considerations for Performance and Safety
PPTX
agenticai-neweraofintelligence-250529192801-1b5e6870.pptx
PDF
Produktkatalog für HOBO Datenlogger, Wetterstationen, Sensoren, Software und ...
PPT
Galois Field Theory of Risk: A Perspective, Protocol, and Mathematical Backgr...
PDF
Aug23rd - Mulesoft Community Workshop - Hyd, India.pdf
PPTX
Training Program for knowledge in solar cell and solar industry
PDF
Statistics on Ai - sourced from AIPRM.pdf
Microsoft User Copilot Training Slide Deck
Improvisation in detection of pomegranate leaf disease using transfer learni...
IT-ITes Industry bjjbnkmkhkhknbmhkhmjhjkhj
Basics of Cloud Computing - Cloud Ecosystem
Transform-Your-Factory-with-AI-Driven-Quality-Engineering.pdf
Internet of Everything -Basic concepts details
Transform-Quality-Engineering-with-AI-A-60-Day-Blueprint-for-Digital-Success.pdf
SGT Report The Beast Plan and Cyberphysical Systems of Control
Comparative analysis of machine learning models for fake news detection in so...
The-2025-Engineering-Revolution-AI-Quality-and-DevOps-Convergence.pdf
Lung cancer patients survival prediction using outlier detection and optimize...
NewMind AI Weekly Chronicles – August ’25 Week IV
future_of_ai_comprehensive_20250822032121.pptx
Custom Battery Pack Design Considerations for Performance and Safety
agenticai-neweraofintelligence-250529192801-1b5e6870.pptx
Produktkatalog für HOBO Datenlogger, Wetterstationen, Sensoren, Software und ...
Galois Field Theory of Risk: A Perspective, Protocol, and Mathematical Backgr...
Aug23rd - Mulesoft Community Workshop - Hyd, India.pdf
Training Program for knowledge in solar cell and solar industry
Statistics on Ai - sourced from AIPRM.pdf

Porting a new architecture (NDS32) to open wrt project

  • 1. Porting a New Architecture to OpenWrt Project Macpaul Lin & AndesTech COSCUP 2010/08/15
  • 2. Who am I? ● Macpaul ( 馬克泡 ) ● 林智斌 ● Macpaul <at> gmail.com ● 阿宅 ● 亂入 ● 網路技術 ● 最近對紫微斗數有興趣 ● 下次在 COSCUP 要擺 婚友社攤位 2010/08/15
  • 3. Outline ● Introduction. ● A new RISC architecture – NDS32. ● The framework of OpenWrt build system. ● Porting Items. ● Conclusion. 2010/08/15
  • 4. Introduction What is OpenWrt? ● If you bought a wireless router, you will also buy the following softwares. Ref: http://www.dataweek.co.za/news.aspx?pklNewsId=28298&pklCategoryID=42 2010/08/15
  • 5. Introduction What is OpenWrt? A software framework to build firmware for those wireless routers. 2010/08/15
  • 6. Introduction What is OpenWrt? ● The most popular open source project for networking devices. ● A firmware/package build system (framework) for various kinds of SoC platforms and wireless routers. ● The workgroup of OpenWrt focuses on… ● Analyze the kernel/protocol differences between vendors’ code release and vanilla Linux kernel. ● Maintain the compatible firmware for vendors‘ boot loaders. (CRC, version headers) ● Keep the compatibility with driver binaries. ● Disassembled driver binary. ● Has been embedded in many companies’ successful products. ● It will pull the stable source code of each component from its project's site during compiling time. 2010/08/15
  • 7. Introduction Topic Review. ● OSDC ● Porta2030 @ Taipei – 2007 (Macpaul) ● ICOS ● Porting WiFi router to OpenWrt – 2007 (Macpaul) ● COSCUP ● Router Hacking 101. – 2007 (Rex) ● OpenWrt and Case Study. – 2008 (Rex) ● OpenWRT, A value-add base solution for your product. – 2009 (Rex, Macpaul) ● Porting a New Architecture to OpenWrt Project. – 2010 (Macpaul) ● Co-play ● Porta2030 的未來及未實現 . – 2009 (Rex) ● 自由軟體技術充電站 (OSSF) ● OpenWrt. – 2009 (Macpaul, Rex) ● Computex 2010/08/15 ● Andeswrt: NDS32 is ready for your OpenWrt Products. - 2010 (Macpaul)
  • 8. Introduction The trend of using OpenWrt. ● Community achievement ● Business achievement ● Networking Device Sellers / Manufacturer. (FON) ● ISP. (BT/Tomizone) ● Chip / IP Vendors. (Broadcom/Ubicom/Andes) – All AndesTech CPU licensees for networking SoC use OpenWrt. ● Software Solution Vendor. – (OpenMesh, BATMAN, Savari) 2010/08/15
  • 9. Introduction The trend of using OpenWrt. D D -W R T O p e n W rt DDW RT C zech G e r m a n y , T a iw a n H o n g K o n g , C h in a 2010/08/15
  • 10. Introduction The trend of using OpenWrt. ● OpenWrt Robot ● OpenWrt Gumdam http://www.dd-wrt.com/wiki/index.php/LaFonera_Hardware_Roboter_Controlling http://www.cuhkacs.org/~scli/blog/2007/09/fujiq_gundam_crisis.html 2010/08/15
  • 11. Introduction About the Industry Chain. 回 報 錯 誤 提 出 建 議 回 報 錯 誤 S oC 供 應 商 系 統 整 合 廠 品 牌 廠 消 費 者 自 由 軟 體 社 群 附 加 價 值 廠 商 某 版 本 L in u x K e r n e l 產 品 原 型 販 售 更 新 函 式 庫 生 產 測 試 回 報 錯 誤 開 發 工 具 開 發 驗 證 發 佈 更 新 提 供 新 科 技 更 新 通 訊 協 定 提 升 效 能 及 修 正 錯 誤 補 綴 通 訊 協 定 及 整 合 客 製 化 整 合 第 三 方 軟 體 整 合 廠 商 既 有 軟 體 架 構 O p en W rt 2010/08/15
  • 12. Introduction About the Industry Chain. ● Embedded system hardware level. Hardware System Arch CPU Core SoC And Other IC Most embedded software framework were organized according to different SoC. ● However everything was related to CPU architecture. 2010/08/15
  • 13. A new RISC architecture - NDS32 ● Invented by AndesTech Corporation. ● The innovative configurable platform solution allows Andes’ customers to construct unique system architecture and hardware/software partitioning. ● Andes is invested by ● MediaTek, ● Faraday, ● National Development Fund, ● and other industry heavy weights. 2010/08/15
  • 14. A new RISC architecture – NDS32 National Development Fund ● 第四條 本基金之來源如下: ● 一、中美經濟社會發展基金: – ( 一 ) 前美援項下所衍生之新臺幣資金結餘。 – ( 二 ) 本基金運用後孳生之收益。 – ( 三 ) 本基金運用後之賸餘及其他經核定撥入之款項。 ● 二、開發基金: – ( 一 ) 由政府循預算程序之撥款。 – ( 二 ) 國際開發協會貸款運用後收回之本金及孳息。 – ( 三 ) 本基金之收益。 – ( 四 ) 其他有關收入。 2010/08/15
  • 15. A new RISC architecture - NDS32 ● Provide 3 different CPU core families for customers. 2010/08/15
  • 16. A new RISC architecture - NDS32 ● CPU Core (N9 as example) ● 16/32bit mixable instruction format ● 16 or 32 general-purpose 32-bit registers ● Multiple stage pipeline ● Aligned post-increment load/store single ● Aligned and unaligned load/store multiple ● Vectored interrupts with 6 signals for interrupt sources and 2 runtime options: – the built-in internal interrupt controller for 6 interrupt sources – the external interrupt controller with 64 interrupt sources ● 2 or 3 HW nested interruption levels ● Memory-mapped I/O ● Non-Translated-Mapping (NTM) for cacheability attributes 2010/08/15
  • 17. A new RISC architecture - NDS32 ● Benefit (N9 as example) ● Performance – 16/32bit mixable instruction format for compacting code density – Static branch predication – Low-latency vectored interrupt for real-time performance – Completion of one 32-bit operation per cycle ● Flexibility – Memory-mapped IO space – PC-relative jumps for position independent code – JTAG-based debug support – Support for bi-endian data accesses – Several configurations to trade off between core size and application requirements ● Power Management – Clock-gated pipeline – Power management instructions 2010/08/15
  • 18. A new RISC architecture – NDS32 About the industry chain. N D S 3 2 is h e r e . R ep o rt b u g s, R e q u e st fe a tu r e s R ep ort b u gs S oC V en d or S I /O D M /O E M B ran d V en d or C on su m er O p en S ou rce V a lu e -a d d C o m m u n ity V en d ors L in u x K e r n e l 2 .X .X B S P , P r o to ty p in g , S a le , R ep ort b u gs, U p d a te P r o d u c tio n T o o lc h a in , D e v e lo p m e n t, P r o v id e s R eq u est L ib r a r ie s T e s tin g w ith N e w V e r ific a tio n . U p d a te s. fe a tu r e s T e c h n o lo g y s u p p o r t U p d a te N e tw o r k in g P ro to c o l E n h a n cem en t, N D S 3 2 is h e r e . fix b u g s , u p d a te p a tc h e s N D S 3 2 is h e r e . I n te g r a tio n a n d C u s to m iz a tio n N D S 3 2 is h e r e . In te g r a te 3 r d - P a r ty S o ftw a r e N D S 3 2 is h e r e . I n te g r a te w ith o r ig in a l S o ftw a r e A r c h . O p en W rt 2010/08/15
  • 19. The framework of OpenWrt build system. ● Architectures ● Target ● Target ● Imagebuilder ● Toolchain ● Linux ● Tools – Generic Kernel ● Scripts – SoC ● Kernel versions ● Package ● Kernel patches ● Include ● Profiles ● System files ● Image formats ● SDK ● Toolchain 2010/08/15
  • 20. The framework of OpenWrt build system. ● Toolchain ● Tools ● binutils ● autotools ● eglibc/glibc/uClibc ● ccache ● gcc/llvm ● lzma ● gdb/insight ● squashfs/ext3/ext2/ yaffs ● ipkg ● sed ● etc. 2010/08/15
  • 21. The framework of OpenWrt build system. ● Include ● $ARCH as $LINUX_KARCH for kernel. ● $DEFAULT_CFLAGS for $ARCH. ● Endian type for $ARCH. ● Data types in include/site/* for autotools. ● Scripts ● For maintaining system-wide tools and definitions. 2010/08/15
  • 22. The framework of OpenWrt build system. Benefits - Flexibility. ● Flexibility ● You can use your customized toolchain to develop your network products. – External Toolchain. – Customized toolchain patches. ● You can use customized Linux kernel (usually from chip vendors) and drivers to develop your network products. – External kernel source tree. – Customized kernel patches. ● You can add your applications to customize your network products. 2010/08/15
  • 23. The framework of OpenWrt build system. Benefits - Flexibility. ● 2 Ways To Develop OpenWrt with NDS32 Architecture. ● AndesWrt with pre-build external toolchain to build NDS32 based OpenWrt Firmware – Very easy to use. – Has been verified by… ● BSP 2.1.0 – Kernel 2.6.29, Gcc 3, glibc / uClibc ● AndeSight 1.4.0 – Kernel 2.6.29, Gcc 3, glibc / uClibc ● NDS32 Architecture is also supported for OpenWrt main trunk to build your own NDS32 based toolchain. – Has been verified by… ● Kernel 2.6.29, ● binutils 2.19.1 ● Gcc 4.4.3 ● uClibc 0.9.30.2 2010/08/15
  • 24. Porting Items. ● Definitions in OpenWrt framework. ● toolchain – gcc, uClibc, binutil ● target – NDS32 Linux Kernel, ADP-AG101 ● autotool data type – include/site ● u-boot ● busybox ● and other libraries and applications as well. 2010/08/15
  • 25. Porting Items. ● include/kernel.mk | 2 +- ● include/site/nds32-linux | 30 + ● include/site/nds32-openwrt-linux-gnu | 5 + ● include/site/nds32-openwrt-linux-uclibc | 5 + ● include/site/nds32eb-linux | 30 + ● include/site/nds32eb-linux-openwrt-linux-gnu | 5 + ● include/site/nds32eb-linux-openwrt-linux-uclibc | 5 + ● include/target.mk | 2 + ● scripts/config.sub | 2 + ● target/Config.in | 9 + ● target/linux/adpxc5/Makefile | 27 + ● target/linux/adpxc5/base-files.mk | 5 + ● .../base-files/etc/defconfig/generic/network | 16 + ● target/linux/adpxc5/config-2.6.29 | 242 + ● target/linux/adpxc5/config-2.6.32 | 216 + ● target/linux/adpxc5/image/Makefile | 210 + ● .../adpxc5/patches-2.6.29/001-uImage_support.patch | 35 + ● .../002-nds32_2_6_29_gcc4_support.patch | 60 + ● target/linux/generic-2.6/config-2.6.29 | 2343 + ● .../000-nds32_arch_basic_2_6_29.patch |74781 +++++++++ ● .../2.19.1/802-Add-nds32-target-support.patch |169128 ++++++++++++++++++++ ● ...utils-2.19.1-from-binutils-2.15-in-v1.4-t.patch | 2143 + ● .../patches/2.19.1/804-Add-nds32-cgen.patch | 5945 + ● toolchain/gcc/Config.in | 2 + ● toolchain/gcc/Config.version | 1 + ● .../gcc/patches/4.4.3/995-nds32_support.patch |26078 +++ ● toolchain/uClibc/Config.version | 3 + ● toolchain/uClibc/Makefile | 2 + ● toolchain/uClibc/config-0.9.30.2/common | 1 + ● toolchain/uClibc/config-0.9.30.2/nds32 | 74 + ● toolchain/uClibc/config-0.9.30.2/nds32eb | 74 + ● .../patches-0.9.30.2/800-nds32_support.patch | 7778 + 2010/08/15tools/mkimage/Makefile ● | 5 +-
  • 26. Porting Items. Toolchains. ● Add NDS32 architecture related definitions and dependency into Config.in. ● Make modularized patches and default configurations. ● Make the diff (patch) from git repository according to the stable release. ● Binutils ● uClibc ● gcc 2010/08/15
  • 27. Porting Items. Target. ● Add SoC (AG101) directory. ● Add Profile (model) related files. ● Setup default configuration of kernel. ● Add architecture specific kernel patches. ● Make patch (git diff) according to a specific stable release version. 2010/08/15
  • 28. Porting Items. Kernel. ● Setup default configuration for generic kernel. ● Setup default configuration for architecture related codes. ● Add architecture related patches into the patch set. ● Make patch (git diff) according to a specific stable release version. 2010/08/15
  • 29. Porting Items. ● Release early, release often. int maintain_patch; while (porting_done()) { if (commit ()) break; else { other_patches_coming (); fix_patch(); maintain_patch(); maintain_patch++; delay_schedule(); } } ● Commit patches to the most root open source projects. 2010/08/15
  • 30. Porting Items. U-boot. ● Mailing list: [email protected] ● The custodian system. ● http://www.denx.de/wiki/U-Boot/CustodianGitTrees 2010/08/15
  • 31. Porting Items. U-boot. ● Mailing list: [email protected] ● The custodian system. ● http://www.denx.de/wiki/U-Boot/CustodianGitTrees http://www.toei-anim.co.jp/sp/seiya/ 2010/08/15
  • 32. Porting Items. U-boot. ● Current we are fixing Patch v3. 2010/08/15
  • 33. Porting Items. U-boot. ● The framework of u-boot. ● Codes are classified into multiple levels, – Architectures, Cores, SoC, Board, Models, company. ● arch – cpu (init asm), include, lib (board). ● api ● common – common commands. ● board – evb or products. ● drivers – peripheral drivers. ● includes – configs and other include headers. ● examples/standalone 2010/08/15
  • 35. Conclusion Never live demo. ● 2010/08/15
  • 36. Conclusion ● However, once the component of OpenWrt evolved to a new version, we will need to re- generate the corresponding patches again. ● Do the right things first, then do the things right. ● If you do not commit the source code into the mainline open source projects, you will suffer pain when maintaining patches for your customers. 2010/08/15
  • 37. Conclusion Next Summer! NDS32 RISC CPU with GPU SoC! 2010/08/15
  • 38. Conclusion To build a Gundam with NDS32 inside is nothing. 做一台有 NDS32 CPU 的剛彈不算什麼。 Only one person can drive the Gundam. 只有一個人可以駕駛剛彈。 2010/08/15
  • 39. Conclusion To build a Ubuntu (debain) distribution with NDS32 is something. Everyone can use it. 2010/08/15
  • 40. Conclusion ● AndesTech provides Andes Open Source SDK. ● http://osdk.andestech.com/ – QEMU – Kernel – Toolchain 2010/08/15
  • 41. Advertisement ● NDS32 architecture powered by Andes is ready for your OpenWrt products. ● If you are interested, Please contact our sales or HR… Andes Technology Corporation 2F, No.1, Li-Hsin First Road, Science-Based Industrial Park, Hsin-Chu City, Taiwan 300 R.O.C (SiSoft Research Center) Tel: +886-3-6668300 Fax: +886-3-6668322 Business : [email protected] Technical : [email protected] 2010/08/15
  • 42. Copyrights ● All the Logo and trademarks belongs to ● AndesTech Corporation. 2010/08/15