ARCLinux ReleaseNotes
ARCLinux ReleaseNotes
ARCLinux ReleaseNotes
DesignWare®
ARC®
Kernel / BusyBox / RAM Disk
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.
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:
Features
The ARC Linux product consists of the following features:
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
Documents
The ARC Linux product is supplied with all the standard Linux and
BusyBox documentation in their customary locations.
This chapter describes the major changes from previous releases of ARC
Linux.
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.
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.
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( )
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
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
The newly supported features in the Linux kernel are described in the
following subsections.
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.
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.
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.
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