ARCLinux ReleaseNotes

Download as pdf or txt
Download as pdf or txt
You are on page 1of 18

Linux for

DesignWare®
ARC®
Kernel / BusyBox / RAM Disk

Release Notes 1.4


Version 5976-012 September 2011
Linux for DesignWare ARC Release Notes 1.4
Synopsys, Inc.
Copyright Notice and Proprietary Information
Copyright © 2011 Synopsys, Inc. All rights reserved. This software and documentation contain confidential and
proprietary information that is the property of Synopsys, Inc. The software and documentation are furnished
under a license agreement and may be used or copied only in accordance with the terms of the license
agreement. No part of the software and documentation may be reproduced, transmitted, or translated, in any
form or by any means, electronic, mechanical, manual, optical, or otherwise, without prior written permission of
Synopsys, Inc., or as expressly provided by the license agreement.
Destination Control Statement
All technical data contained in this publication is subject to the export control laws of the United States of
America. Disclosure to nationals of other countries contrary to United States law is prohibited. It is the reader’s
responsibility to determine the applicable regulations and to comply with them.
Disclaimer
SYNOPSYS, INC., AND ITS LICENSORS MAKE NO WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,
WITH REGARD TO THIS MATERIAL, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
Registered Trademarks (®)
Synopsys, AEON, AMPS, Astro, Behavior Extracting Synthesis Technology, Cadabra, CATS, Certify, CHIPit,
CoMET, Confirma, CODE V, Design Compiler, DesignWare, EMBED-IT!, Formality, Galaxy Custom Designer,
Global Synthesis, HAPS, HapsTrak, HDL Analyst, HSIM, HSPICE, Identify, Leda, LightTools, MAST, METeor,
ModelTools, NanoSim, NOVeA, OpenVera, ORA, PathMill, Physical Compiler, PrimeTime, SCOPE, Simply
Better Results, SiVL, SNUG, SolvNet, Sonic Focus, STAR Memory System, Syndicated, Synplicity, the
Synplicity logo, Synplify, Synplify Pro, Synthesis Constraints Optimization Environment, TetraMAX, UMRBus,
VCS, Vera, and YIELDirector are registered trademarks of Synopsys, Inc.
Trademarks (™)
AFGen, Apollo, ARC, ASAP, Astro-Rail, Astro-Xtalk, Aurora, AvanWaves, BEST, Columbia, Columbia-CE,
Cosmos, CosmosLE, CosmosScope, CRITIC, CustomExplorer, CustomSim, DC Expert, DC Professional, DC
Ultra, Design Analyzer, Design Vision, DesignerHDL, DesignPower, DFTMAX, Direct Silicon Access, Discovery,
Eclypse, Encore, EPIC, Galaxy, HANEX, HDL Compiler, Hercules, Hierarchical Optimization Technology, High-
performance ASIC Prototyping System, HSIMplus, i-Virtual Stepper, IICE, in-Sync, iN-Tandem, Intelli, Jupiter,
Jupiter-DP, JupiterXT, JupiterXT-ASIC, Liberty, Libra-Passport, Library Compiler, Macro-PLUS, Magellan, Mars,
Mars-Rail, Mars-Xtalk, Milkyway, ModelSource, Module Compiler, MultiPoint, ORAengineering, Physical Analyst,
Planet, Planet-PL, Polaris, Power Compiler, Raphael, RippledMixer, Saturn, Scirocco, Scirocco-i, SiWare, Star-
RCXT, Star-SimXT, StarRC, System Compiler, System Designer, Taurus, TotalRecall, TSUPREM-4, VCSi,
VHDL Compiler, VMC, and Worksheet Buffer are trademarks of Synopsys, Inc.
Service Marks (sm) MAP-in, SVP Café, and TAP-in are service marks of Synopsys, Inc.
SystemC is a trademark of the Open SystemC Initiative and is used under license.
ARM and AMBA are registered trademarks of ARM Limited.
Saber is a registered trademark of SabreMark Limited Partnership and is used under license.
PCI Express is a trademark of PCI-SIG.
All other product or company names may be trademarks of their respective owners.
Synopsys, Inc.
700 E. Middlefield Road
Mountain View, CA 94043
www.synopsys.com

i Synopsys, Inc. September 2011


Contents
Customer Support ...................................................................................................... 1
Accessing SolvNet ................................................................................................. 1
Contacting the Synopsys Technical Support Center .............................................. 1
1 Introduction .............................................................................................................. 2
Typographical Conventions .................................................................................... 2
Module Version Numbers ....................................................................................... 2
Features ................................................................................................................. 2
Deliverables List ..................................................................................................... 3
Documents ............................................................................................................. 4
2 Release Change Information ................................................................................... 5
ARC Linux Release 1.4 .......................................................................................... 5
Hardware Support: Updated ARC700 core (Rel. 4.10) ....................................... 5
Features .............................................................................................................. 6
Debugging ........................................................................................................... 6
Optimizations ...................................................................................................... 6
Robustness ......................................................................................................... 7
Enhancements .................................................................................................... 7
Fixed Issues ........................................................................................................ 7
ARC Linux Release 1.3 .......................................................................................... 9
Hardware Support: New Features and Changes................................................. 9
Features ............................................................................................................ 10
Kernel Debugging ............................................................................................. 10
Optimizations .................................................................................................... 10
Robustness ....................................................................................................... 11
ARC Linux Release 1.2 ........................................................................................ 11
ARC Linux Release 1.1 ........................................................................................ 12
ARC Linux Release 1.0 ........................................................................................ 13
3 Known Issues ........................................................................................................ 15

September 2011 Synopsys, Inc. ii


Customer Support

Customer support is available through SolvNet online customer support and through
contacting the Synopsys Technical Support Center.

Accessing SolvNet
SolvNet includes an electronic knowledge base of technical articles and answers to
frequently asked questions about Synopsys tools. SolvNet also gives you access to
a wide range of Synopsys online services, which include downloading software,
viewing Documentation on the Web, and entering a call to the Support Center.
To access SolvNet:
1. Go to the SolvNet Web page at http://solvnet.synopsys.com/.
2. If prompted, enter your user name and password. (If you do not have a
Synopsys user name and password, follow the instructions to register
with SolvNet.)
If you need help using SolvNet, click SolvNet Help in the Support Resources section.

Contacting the Synopsys Technical Support Center


If you have problems, questions, or suggestions, you can contact the Synopsys
Technical Support Center in the following ways:
 Open a call to your local support center from the Web by going to
http://solvnet.synopsys.com/ (Synopsys user name and password
required), then clicking “Enter a Call to the Support Center.”
 Send an e-mail message to your local support center.
o E-mail [email protected] from within North America.
o Find other local support center e-mail addresses at
http://www.synopsys.com/support/support_ctr.
 Telephone your local support center.
o Call (800) 245-8005 from within the continental United States.
o Call (650) 584-4200 from Canada.
o Find other local support center telephone numbers at
http://www.synopsys.com/support/support_ctr.

1 Synopsys, Inc. September 2011


1
Introduction

Welcome to ARC Linux. ARC Linux is a port of the Linux kernel to the
ARC 750 CPU.

Typographical Conventions
This document uses the following typographical conventions:

Convention Meaning Examples


bold  Functions  get_callback()
 predefined classes  the simple_initiator_socket
 values to be entered class
literally  template<int init, int
 GUI elements target>
 Select Save All.
italics text to be replaced with  InstallationDir
your own values  sc_time p //period
monospace code in general ls.push_back("SHMEM");

Module Version Numbers


ARC Linux consists of the following module version numbers:
Linux kernel 2.6.35.12
ARC InitRAMfs 1.4
U-Boot 2009.06

Features
The ARC Linux product consists of the following features:

September 2011 Synopsys, Inc. 2


Deliverables List Linux for DesignWare® ARC®

 Support for MMU for fully protected individual memory spaces


 Support for ARC peripherals
o Serial, Ethernet, timers, PCI, PGU, AC'97, IDE
 Support for various kernel-scheduling modes:
o Preemptive
o Voluntary pre-emption
o No forced pre-emption)
 Loadable kernel modules
 High-resolution timers
 Tickless idle
 Real-time signal support
 Two levels of interrupt support
 Standard Linux IPv4 or IPv6 networking, NAPI support
 Standard Linux filesystem support (XFS, JFS, EXT2, etc.)
 BusyBox compact root filesystem
o Common Linux utilities (ls, cp, mount, etc.)
 Easy-to-populate RAM disk
 Optimizations specific to ARC for high performance
o Dedicated current_task register
o Optimized copy_page(), memcpy(), memzero(), copy_to_user(),
etc.
 Optimizations for higher-latency memory subsystems
 U-Boot command-line passing
o Ethernet boot, disk boot

Deliverables List
Product Components Description
ARC Linux ARC Linux The Linux kernel source code.
(http://www.kernel.org)
ARC InitRAMfs An easy-to-configure container for a Linux
initial RAM disk

3 Synopsys, Inc. September 2011


Linux for DesignWare® ARC® Documents

U-Boot Denx Universal Boot Loader.

Documents
The ARC Linux product is supplied with all the standard Linux and
BusyBox documentation in their customary locations.

A file is provided in each component to describe how to build


the component.

September 2011 Synopsys, Inc. 4


2
Release Change Information

This chapter describes the major changes from previous releases of ARC
Linux.

ARC Linux Release 1.4


The following top-level components are included in this release:
 Linux 2.6.35.12
 Custom initramfs with pre-built ARC GNU libraries, BusyBox, strace
 U-Boot 2009.06

Note
BusyBox sources are no longer part of the release. Any recent upstream
BusyBox version is expected to work with this kernel and toolchain
combination (see the Getting Started guide for more details). The initramfs
does have a verified, pre-built BusyBox 1.18.4.

The newly supported features in the Linux kernel are described in the
following subsections.

Hardware Support: Updated ARC700 core (Rel. 4.10)


 Support for ISA enhancements: CONFIG_ARCH_HAS_LLSC for atomic
read-modify-write LLOCK/SCOND instruction; CONFIG_ARCH_HAS_SWAPE
for single-cycle endian swap instruction
 CONFIG_ARC_MMU_V3: Support for Bigger J-TLB (128 x 4) and new
CDU programming model
 Support for variable MMU page sizes: CONFIG_ARC_PAGE_SIZE_4K,
CONFIG_ARC_PAGE_SIZE_8k, CONFIG_ARC_PAGE_SIZE_16k

Note
The default page size is 8 K. A system with different page size not only
requires a kernel rebuild but also uClibc, the system shared libraries (libc, libm,
etc.) and also user applications: BusyBox. For details, see the file
arch/arc/Documentation/arc-enabling-non-default-mmu-
page-sz.txt in your release.

In addition, due to a possible software cache-aliasing issue, Linux cannot be

5 Synopsys, Inc. September 2011


Linux for DesignWare® ARC® ARC Linux Release 1.4

run on a 4-K page configuration with Caches greater than 16 K.

 Support for a patent-pending MMU enhancement for optimized shared


libraries: CONFIG_ARC_MMU_SASID
 Support for variable cache-line size (32, 64, or 128 bytes). This is not a
configuration option—select it by changing a single dial
L1_CACHE_SHIFT in kernel header
arch/arc/include/asm/cache.h

Features
 CONFIG_ARCH_ARC_FPU for supporting floating point in the user space
by saving FPU registers across context switches
 CONFIG_ARC_MISAILGNED_ACCESS to support emulation of unaligned
memory access (user space only) for ease of application porting
 Correct restarting of timer related system calls: Supporting internal flag
ERESTART_RESTARTBLOCK
 CONFIG_FUTEX to support futex for fast user-space synchronization
primitives.

Debugging
 CONFIG_KPROBES to dynamically debug/instrument kernel without
recompile or reboot
 Ported upstream strace to assist user programs in debugging (tracing
system calls)
 Dmalloc library support

Optimizations
 Optimized Cache Flush API called by core kernel. Multiple full-cache
flush/invalidates on fork/execve/exit are now removed.
 Major improvements of fork/execve timings due to shared address
space ID feature of the ARC 700 4.10 MMU
 Optimized string and memory routines: memcmp(), strchr(), strcpy(),
strcmp(), strlen()
 Page-table traversal split changed from 8:11:13 to 11:8:13
 Kernel built without -mlong-calls, reducing the generated code size in
binary by approximately 10%
 optimised ffs( ), fls( ), ffz( ), local_irq_save( )

September 2011 Synopsys, Inc. 6


ARC Linux Release 1.4 Linux for DesignWare® ARC®

Robustness
 Bug fixes: See Fixed Issues for details.
 More robust early printk() support - detecting and reporting a lot more
mismatches between hardware (which is much more configurable now)
and software (kernel)
 Completely rewritten UART driver fixes numerous user-space TTY-
related bugs.
 Single toggle CONFIG_LINUX_LINK_BASE to enable Linux linkage at
non-default 0x8000_0000

Note
This release of ARC Linux requires the ARC GNU v2.4 Toolchain. If you are
upgrading to ARC Linux v1.4, you must also upgrade the ARC GNU Toolchain
to v2.4.

Enhancements
 9000469866 Add username/password options to mount
 9000470323 Add ML50x ARC 700 support to U-Boot Boot Loader
 ARS0090743 Add efficient find_first_bit and find_next_bit
macros in ARC Linux
 ARS0092109 Serial-driver cleanup
 ARS0096414 Make a simulator-friendly version of BusyBox config
 ARS0097746 make memcmp(), memcpy() faster in ARC Linux kernel
 ARS0098477 STrace port for ARC Linux
 ARS0099483 Add software patch to support unaligned memory access
 ARS0099531 Add documentation on NFS cross-development
 ARS0102482 Add ARC Linux/uClibc support for mmap() with 4 k size

Fixed Issues
 9000464222 CONFIG_EARLY_PRINTK non-functional
 9000470340 FUSE configuration failed
 9000471224 LTP tripping a BUG_ON in kernel in cmn-vaddr-alloc
subsystem
 9000471721 gcc-hostlink for MetaWare build failed on Linux

7 Synopsys, Inc. September 2011


Linux for DesignWare® ARC® ARC Linux Release 1.4

 9000473698 Make Qt demos work with 2.6.35 kernel and ARC 700
4.10
 9000473699 Duplicate Pd issue (was: IDE disk won't work on 2.6.35
kernel with 4-K page size)
 9000473700 userland built for 16-K pgsz not coming up in 2.6.35
kernel with 16-K pgsz
 9000473994 LMbench crashes with 4.10 64-byte line length
 9000477999 Linux kernel gets wrong IP from DHCP when configured
with NFS as root file system
 9000485549 pthread_create() call causes segmentation fault
 9000488757 Linux 1.4 build breakage when built with caches disabled
(RC1)
 9000491107 CONFIG_SWAP broken in Linux pre-1,4, 1.3, 1.2
 ARS0095396 Setting baud rate of ARC UART from user space using
tcsetattr doesn't work
 ARS0096195 ifconfig up - down - up causes error
 ARS0098447 Occasional Kernel panic in gdb debug (v2.6.26)
 ARS0098807 TFTP download is failing sometimes
 ARS0098822 Merge changes from U-Boot branch
ml50x_arc600_bootrom into trunk
 ARS0098885 I_CACHE_BUILD register changed in the hardware
 ARS0098956 OProfile doesn't work with Linux 1.3 release kernel (patch
needed)
 ARS0099056 BusyBox top seems to be occasionally stuck in a loop
 ARS0099181 Unable to load application with U-Boot
 ARS0099193 Disable EMAC LV2 if timer is not configured on LV2
 ARS0099511 Peripheral base in /proc/cpuinfo is incorrect
 ARS0099524 Reboot has some issues
 ARS0099527 Getting Started needs minor edits
 ARS0099649 stty returns 9600 even though baud is actually 57600
 ARS0099658 /etc/hosts in ramfs contains incorrect information
 ARS0099767 ifconfig command results in get stats called
message on console
 ARS0099784 Linux 2.6.30 and 128-byte cache-line length

September 2011 Synopsys, Inc. 8


ARC Linux Release 1.3 Linux for DesignWare® ARC®

 ARS0099796 ENET simulation configuration option unclear


 ARS0100000 Document memory map restrictions for kernel
 ARS0100013 No Documentation/arc in ARC Linux distro
 ARS0100027 Default configuration for ISS should point to MMU v2
 ARS0100264 New UART driver hangs in ISS
 ARS0100656 arch/arc/kernel/arcksyms.c could add __divsf3
and __floatunsisf
 ARS0101127 ARC Linux build failure with CONFIG_IP_MULTICAST
enabled
 ARS0101512 Kernel-thread crash: unable to handle kernel paging
request
 ARS0102285 Kernel crash when accessing files in cramfs/squashfs
 ARS0102425 Running a program with gdbserver/gdb causes segfault
 ARS0102758 LTP sigaction/16-1.test failing with
CONFIG_MMAP_CODE_SPACE
 ARS0102864 Kernel boot stops early with ISS

ARC Linux Release 1.3


The following top-level components are included in this release:
 Linux 2.6.30
 BusyBox 1.15.3
 U-Boot 2009.06
 Custom Initramfs with pre-built ARC GNU libraries and Busybox

The newly supported features in the Linux kernel are described in the
following subsections.

Hardware Support: New Features and Changes


 CONFIG_ARCH_ARC_ICCM and CONFIG_ARCH_ARC_DCCM : Support for closely
coupled memory (ability to use DCCM and ICCM to optimize data and code
performance)
 CONFIG_ARCH_ARC_MMU_V2 : MMU V2, which performs significantly better
then V1, is the default.

9 Synopsys, Inc. September 2011


Linux for DesignWare® ARC® ARC Linux Release 1.3

Note
The kernel fails to boot if you attempt to run it on MMU-V1. If your ARC 700
processor does not have MMU-V2, disable this option in the file of
your kernel.

 ARCangel 5 (Xilinx ML509) support—early version


 Support for single-cycle byte-swap instruction in kernel if implemented as
extension instruction in hardware

Features
 CIFS support
 CONFIG_ARCH_ARC_HLINK: User-space file system for host access via
the MetaWare debugger's hostlink interface. This allows file I/O on the
host from ARC Linux running on the ISS or hardware without a working
Ethernet support.
 CONFIG_ARCH_ARC_SPACE_RND: Address-space randomization
 CONFIG_ARC_STACK_NONEXEC: Non-execute stack-mode option
 CONFIG_VFB_SIM: Virtual Framebuffer support for use with simulators
 CONFIG_ROOT_NFS : NFS-based root-filesystem now works out of the
box.
 CONFIG_STACKTRACE kernel option to help trace sleeping tasks
 CONFIG_LATENCYTOP to find the latency of tasks in kernel mode

Kernel Debugging
 CONFIG_EARLY_PRINTK to provide early serial-port support to help
debug kernel bring-up on custom hardware
 CONFIG_ARC_USER_FAULTS_DEBUG is now replaced with a run-time
toggle print-fatal-signals to dump task
state after a task is killed by a signal.
 Same kernel binary can now run on both hardware (AA4) and simulator
to quickly debug field issues.

Optimizations
 Signal-handling code no longer flushes TLB and caches for returning to
kernel mode.

September 2011 Synopsys, Inc. 10


ARC Linux Release 1.2 Linux for DesignWare® ARC®

 Fast-Path I/D-TLB Refill handlers rewritten to reduce number of


instructions (40/129) as opposed to (117/396).
 Five-cycle htonl() as opposed to nine cycles (and provision for one-
cycle hardware-assisted bswap as described above)
 Reduced code size for copy_to_user() and copy_from_user() heavily
used in networking and system calls.
 ARC EMAC Ethernet driver now works in NAPI mode by default.
CONFIG_EMAC_NAPI provides dynamic switching between polling and
interrupt modes for optimal system performance.
 Numerous other optimizations such as ext2-bitops/mutexes

Robustness
 Bug fixes
 Expanded LTP testing up from 690 kernel syscall tests to 819 kernel
tests and an additional 1965 OpenPosix tests
Note
This release of ARC Linux requires the ARC GNU v2.3 Toolchain. If you are
upgrading to ARC Linux v1.3, you must also upgrade the ARC GNU Toolchain
to v2.3.

ARC Linux Release 1.2


This release supports the Linux 2.6.26 kernel and updated BusyBox and U-
Boot components.
The key new features of this release are as follows:
 Linux 2.6.26
 High-resolution timers
 Tickless idle (for lower power)
 Real-time signals support
 Two levels of interrupt support
 NAPI support on the ARC EMAC for greatly improved networking
performance
 Finely tuned copy_from() and copy_to() user code
 Re-worked DMA mapping API, optimized to flush only cache lines used
 Support for XFS, JFS, and EXT2

11 Synopsys, Inc. September 2011


Linux for DesignWare® ARC® ARC Linux Release 1.1

 Support for building with both -O3 and -Os


 Support for
 BusyBox 1.13.2 support
 U-Boot 2009.01
 Numerous architecture-level code bug fixes and performance
enhancements

ARC Linux Release 1.1


This release supports the Linux 2.6.19 maintenance release.
The key features of this release are:
 Linux 2.6.19 maintenance release
 OProfile support
 Numerous new system calls supported
 U-boot command line support
 IPv6 support
 Busybox 1.12.1 support
 First ARC release of u-boot
 Updated debugging features, including
o Kernel Stack Trace in Exceptions
o Low Level Event Logging (similar to LTT)
o Diagnostics to debug User Task Crashes (SegV)
 Updated performance:
o r25 Register dedicated to current task pointer
o ARC-optimized page copy and memcpy() functions
o Cache-flush and TLB flush functions optimized
 New hardware support:
o ARC 700 MMU v2 supported
o ARC 700 hardware performance counters supported
o ARC PGU and AC'97 support

September 2011 Synopsys, Inc. 12


ARC Linux Release 1.0 Linux for DesignWare® ARC®

ARC Linux Release 1.0


This is the first release of ARC Linux from ARC. The release is based on
the release found at www.arc-linux.org and has many major bug fixes and
enhancements over that release.
The key features of this release follow:
 Linux 2.6.19 release
 Serial-driver changes to support multiple serial ports
 Ethernet driver pre-allocates SKBs for performance increase
o A kernel thread runs and pre-allocates SKBs ready for use by the
driver ISR
 Super-fast copy_from_user() and copy_to_user() functions heavily
optimized for ARC
o Instead of a byte copy, the function tries first to use an ARC-
optimized read-read-read-read-write-write-write algorithm
 Re-write of the low-level TLB handling fixes multiple bugs exhibited as
segmentation faults
 MMU ASID allocation fixed: Upon ASID rollover, if long-running task’s
ASID was acquired by a new task, TLBs were not being flushed
 MMU ASID allocation optimized: For a simple shell command such as
ls, ASID now optimally increments by 4 instead of 13. This delays the
ASID rollovers and hence TLB flushes
 Diagnostic code added in slow-path and fast TLB-miss handlers to
catch any potential ASID-allocation issue.
This has a minimal impact on performance, but if it needs to be
disabled, change #if 1 to #if 0 to disable the check in the following
files:
o
o .
 The following issues have been addressed:
o Setting the system date with date (architecture-specific code
implemented). Previously generated a segmentation fault
o Threading issue where child threads became unresponsive
(missing copy_to_user() in the signal handling code, plus an array
out of bounds access)
o Idle loop goes into sleep mode rather than a while loop
o Re-schedule was called twice for each clock tick

13 Synopsys, Inc. September 2011


Linux for DesignWare® ARC® ARC Linux Release 1.0

o Support for running on ARC xISS and ARC ISS simulators

September 2011 Synopsys, Inc. 14


3
Known Issues

The following are the known issues at the time of release. For the latest
information, go to http://solvnet.synopsys.com/.
 9000486164 Linux virtual ENET driver skips packets
with -on=store_cache_data option
 9000487553 kernel dentry corruption during LTP mkdir09 test when
LL/SC disabled
 9000487933 debug_frame section allocation after vmlinux is already
built

September 2011 Synopsys, Inc. 15

You might also like