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
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
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
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
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
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 : sales@andestech.com
Technical : support@andestech.com
2010/08/15
42. Copyrights
● All the Logo and trademarks belongs to
● AndesTech Corporation.
2010/08/15