armStoneA8/Linux development state and releases

  • Hello FS Support,


    Congratulations for finally getting the V1.0 released.
    I hope the vacation you metntioned earlier is not lost, only postponed.


    But I can't find the readme.txt either.
    Any hint?


    Regards,
    HoBa

  • We have uploaded armStoneA8 V1.1 to our server. This time we have made one single armStoneA8-V1.1.tar.bz2 archive so that you don't need to download several files one by one. Extract the file with


    Code
    1. tar jxvf armStoneA8-V1.1.tar.bz2


    This will create a subdirectory armStoneA8-V1.1 with all the files in it. Please read the file README.txt that you'll find there. It shows how to install and use everything.



    Release Notes for armStoneA8 V1.1


    This release is a maintenance release, targeted to also support the premium version of armStoneA8 (fully equipped with all hardare options) and to make the installation procedure easier. If you're using a Micro SD card, most of the installation is going automatically. It also fixes some issues from V1.0.


    NBoot (V14) (02.05.2012)
    Changes in V14

    • 0001014: [NBoot] Add support for NetDCU14
    • 0001027: [NBoot] Add new command to read nboot/eboot/uboot from NAND flash
    • 0001026: [NBoot] NAND flash Micron 128MB doesn't work


    Changes in V13

    • 0001010: [NBoot] Add detection of 2nd LAN controller.



    armStoneA8 V1.1 (22.05.2012, based on u-boot-2011.12)


    This is another interim release targeted to armStoneA8 only (PicoMOD6 and PicoCOM3 won't work).


    • New autoload mechanism to support automatic installation and updates; check on mmc0:1 and usb0:1 by default
    • Increase malloc heap (ubi part failed with large MTD partitions)
    • Don't add CONFIG_ENV_SIZE twice to final heap size
    • Support second LAN port, set pull-up for IRQ, set default eth1addr
    • New function for setting the MAC address on AX88796 LAN chip; this allows for simpler code to set the MAC addresses on F&S boards
    • Recognize all the feature settings that are reported by NBoot
    • Show number of DRAM chips, LAN ports and CPU speed on startup
    • Fix ID for NetDCU14, add some NetDCU14 specific features
    • Add get_board_name() and get_sys_prompt() to allow for dynamic strings (instead of only fix strings from the configuration)
    • Fix some warnings that appeared with new toolchain (GCC 4.6.3)



    Linux Kernel armStoneA8 V1.1 (22.05.2012, based on linux-3.3.7)


    • Add support for 2nd LAN chip
    • Fix sound output for 24 bit samples
    • Activate OHCI in default configuration or low-speed devices connected directly to the board will not work
    • Activate network packet support in the default configuration as it is needed by DHCP
    • Rebase to linux-3.3.7



    BuildRoot armStoneA8 V1.1 (22.05.2012, based on buildroot-2012.02)


    • Redirect output of /etc/init.d/S35x11 to a file
    • [STD] Add a few X programs: xcalc, xeyes, xclock
    • [STD] Add graphic viewer feh (for X)
    • [STD] Add xinput and xinput_calibrator to support touch in X
    • Add httpd to busybox configuration
    • Configure for new toolchain (fs-toolchain-4.6.3-armv6-vfp)
    • Move F&S default configuration for busybox from package/busybox to target/device/f+s/armStoneA8



    Toolchain


    We have built a completely new toolchain fs-toolchain-4.6.3-armv6-vfp


    • Support for Linux kernel 2.6.28 or later, headers from kernel 3.3.3
    • Default march=armv6
    • Hardware floating point (VFP)
    • binutils-2.21.1a
    • gcc-4.6.3 (C, C++)
    • glibc-2.13 (newer versions conflict with the current busybox)
    • gdbserver-6.8a
    • gmp-5.0.2
    • mpfr-3.1.0
    • ppl-0.11.2
    • cloog-ppl-0.15.11
    • mpc-0.9
    • crosstool-NG-1.15.2


    Your F&S Support Team

    F&S Elektronik Systeme GmbH
    As this is an international forum, please try to post in English.
    Da dies ein internationales Forum ist, bitten wir darum, Beiträge möglichst in Englisch zu verfassen.

  • We are working heavily on a V2.0 release, but it is still a few weeks away. Let me explain why.


    Our basic plan for the future in general is to have a combined F&S Linux release for all of our boards. So no separate release for each of our boards anymore, but a general release that supports all of our boards in one single code base. No different U-Boot versions anymore, no different kernel version anymore, no different BuildRoot versions anymore, just one version that works for all. This drastically reduces the overhead that has to be done for parallel releases, documentation, examples, etc. In fact the whole system gets more manageable. Of course we can't do this in one giant step, so this is what we had planned a few months ago.


    - V1.2 as another bugfix release (armStoneA8 only)
    - V2.0 that basically supports different F&S boards with the same code base (starting with armStoneA8, NetDCU14, PicoMOD7A)
    - V2.x as bugfix releases, also bringing more of our boards in line with this new generic release system (e.g. PicoMOD6, PicoCOM3, PicoCOM4)
    - V3.0 that uses device trees
    - V3.x as bugfix releases, add new boards and different architectures (e.g. QBlissA9)


    Because we already had good-working patches here in the forum for most of the reported bugs, we decided to skip V1.2 and go directly to V2.0, because V1.2 would only include these fixes and a release always takes quite a lot of time that we could invest in V2.0 instead. In addition we already had first support for PicoMOD7A and NetDCU14, so we didn't want to have a separate release for armStoneA8 alone anymore.


    One of our new features of V2.0 should also be a way to configure the devices more flexible in U-Boot, without having to recompile the Kernel every time. This seemed to be a rather small change at a first glance, but when actually trying to implement this, it showed that we would have to write quite some stuff completely anew, that duplicates stuff that will automatically be available when switching over to device trees. So we had a look at device trees and decided to go for them right now, i.e. to merge V2.x and V3.x as a "new" V2.0.


    By the way, what are "device trees"? This is the new way of Linux to handle different hardware platforms with a single binary. It is a rather new development thread in Linux, started about a year ago in the ARM branch. On x86, there is a well defined set of periphery within the CPU itself that is already activated by the BIOS. Everything else is connected via standardized interfaces, e.g. PCI or PCI-Express. However on the ARM architecture, nearly the complete set of periphery is integrated with the CPU on one chip. This is why such a chip is not called CPU anymore, but SOC (System-on-chip). It is the result of the miniaturization in the world of embedded systems and smartphones, where the ARM architecture is dominating.


    Unfortunately every SOC manufacturer does this integration differently and also used to have its own Linux code to support this. This resulted in an obfuscating jungle of incompatible code in the kernel that grew and grew and grew. To stop this insanity, several months ago some kernel developers introduced the concept of device trees. This is a data structure, independent of the Linux kernel binary, that describes the underlying hardware. That means it contains all information about the SOC periphery, how it is configured on a specific platform and what additional hardware is also used on this platform. So the hardware configuration is not part of the Linux kernel configuration anymore, it is a separate information provided by the device itself, for example supplied by the bootloader. This allows to have a single kernel binary, with many features and hardware drivers enabled, that is suited for several platforms on one hand, and one device tree structure for each of these platforms describing the actual local configuration on the other hand.


    This is also well-suited for different device configurations. For example if a board is available with or without support for a second LAN, you only have to provide two different device trees for these two version, but can keep the same kernel. (In fact these two configurations would only be two different branches within the same device tree, so it's even more straightforward.) The ultimate goal is to have one single universal ARM kernel that can drive *all* ARM platforms out there in the world, as long as they provide such a local device tree.


    As you can guess this causes some major reorganizations within the Linux kernel at the moment. For example all device drivers have to be enhanced to allow fetching their configuration not only from the kernel kconfig system (that you call with make menuconfig), but also from the device tree system. Of course this is still work in progress. Some architectures are already completely done, some are switching over to this new mechanism step by step right now, and some SOCs are not supported at all, yet. To get all this stuff going as smoothly as possible, we need to update to the most recent versions of U-Boot, Kernel and BuildRoot first to get the best support for device trees and the most up-to-date status for the device drivers as possible.


    So our new plan is this:


    - V2.0 that supports different F&S boards with the same code base *and* that uses device trees
    - V2.1 to add display configuration in U-Boot
    - V2.x as bugfix releases


    Of course we are trying to get as much as possible running with V2.0 already. This is the current status:


    U-Boot:
    - update to 2012.07
    - device tree support
    - support for NetDCU14 and PicoMOD7A
    - support for PicoMOD6 and PicoCOM3
    - Improved FAT support (in progress)


    Kernel:
    - update to 3.6 (in progress)
    - support for NetDCU14 and PicoMOD7A
    - improved touch driver (in progress)


    BuildRoot:
    - update to 2012.08
    - support for NetDCU14, PicoMOD7A, PicoCOM4
    - improved F&S board support (in progress)


    For the first V2.0 release we'll start with combined sources for armStoneA8, PicoMOD7A and NetDCU14 (boards based on Samsung S5PV210). PicoMOD6, PicoCOM3 (based on Samsung S3C6410), PicoCOM4 (based on Samsung S3C2416) and QBlissA9 (based on Freescale i.MX6) will follow. Believe me that there are quite a few things to be changed below the surface to get all these architectures combined as a single release in the future. So please be a little more patient with us.


    Your F&S Support Team

    F&S Elektronik Systeme GmbH
    As this is an international forum, please try to post in English.
    Da dies ein internationales Forum ist, bitten wir darum, Beiträge möglichst in Englisch zu verfassen.

  • Multi-Platform Linux V2.0


    We have uploaded a new Linux version to our server. This is the first Multi-Platform Linux Release that supports several boards at the same time. At the moment these are the boards based on Samsung S5PV210 SoC: armStoneA8, NetDCU14 and PicoMOD7a. In the future more boards and also different architectures will be added to this Multi-Platform Release.


    In difference to my last message, this is not the version with device tree support yet. We had quite a lot of urgent requests for Linux on NetDCU14 and PicoMOD7A and therefore decided to revert to our previous release schedule, where V2.0 brings the multi-platform support and a later V3.0 release will bring device tree support. It would have taken too long to do this all in one step.


    In the download area on our website you'll find two tar archives:


    multiplatform-linux-f+s-V2.0.tar.bz2
    This is the main release itself containing all sources, the binary images, the documentation and the toolchain.


    sd-card-V2.0.tar.bz2
    If you copy the contents of this archive to an SD card, you can install our precompiled standard system in a very straightforward and comfortable way on the board. The SD card archive is meant for people who just want to try a release first without having to download the quite large main archive. Its content is also contained in the main release archive, so if you want to download the main archive anyway, you don't need to bother with the SD card archive.


    These tar archives are compressed with bzip2. So to see the files, you first have to unpack the archives

    Code
    1. tar jxvf multiplatform-linux-f+s-V2.0.tar.bz2


    This will create a directory multiplatform-linux-f+s-V2.0 that contains all the files of the release.


    Please read the file doc/MultiPlatform-Linux-FirstSteps.pdf. It lists the meaning of all files and shows how to install and use everything.



    Release Notes for Multi-Platform Linux V2.0


    This is a major release with lots of changes. It is the first release that supports several boards at once. The boards that are supported through all levels (NBoot, U-Boot, Linux Kernel, BuildRoot) are:


    armStoneA8, NetDCU14, PicoMOD7A


    Please note that you have to update NBoot first to be able to use the automatic installation process described in the FirstSteps document.


    Here is a list of the most noticeable changes in this release.


    NBootV210 (V18) (21.11.2012)
    Supported boards: armStoneA8, NetDCU14, PicoMOD7A


    Changes in V18

    • 0001421: [NBoot] Add ubotv210.nb0 as possible load source
    • 0001428: [NBoot] Ram test not working for 512 MB version
    • 0001426: [NBoot] Small change in SDHC clock calculation


    Changes in V17

    • 0001405: [NBoot] PM7A: Detect config jumper UARTSEL
    • 0001404: [NBoot] Enable QoS_fast for memory access


    Changes in V16

    • 0001367: [NBoot] Always detects digital RGB interface


    Changes in V15

    • 0001166: [NBoot] ND14: Some config pins are not configured with pull down
    • 0001167: [NBoot] Add support for PicoMOD7A
    • 0001182: [NBoot] wrong PCB revision displayed
    • 0001278: [NBoot] If started from SD card, run actions.txt automatically if it exists.
    • 0001280: [NBoot] Add empty commands '\r' and '\n' to re-display menu
    • 0001070: [NBoot] Add support for nanoRISC
    • 0001069: [NBoot] Add support for 512MB NAND flash



    U-Boot V2.0 (20.11.2012, based on u-boot-2012.07)
    Supported boards: PicoMOD6, PicoCOM3, armStoneA8, NetDCU14, PicoMOD7A


    • Rebase to u-boot-2012.07
    • Add support for PicoMOD7A
    • New environment variables 'platform' and 'arch' that contain the current board type and architecture
    • Completely new FAT/VFAT implementation (write support still missing)
    • New wildcard module to allow for '*' and '?' in path and file names; currently only working in combination with FAT (fatls, fatload)
    • Improve output of device descriptions (indendation, interface)
    • Patch serial port in zImage (use by zImage decompressor), so the same zImage can be used on boards with different default serial port
    • Allow different ECC modes by virtually splitting NAND; one for NBoot, one for the rest; remove old nboot protection as the new scheme allows a more generic protection per device
    • Fix ecc.bytes and ecc.layout->eccbytes settings
    • Allow a dynamic environment size depending on NAND blocksize
    • Reduce environment size on large NAND blocksizes
    • Allow different default mtdparts sizes depending on NAND blocksize
    • Allow using '.' as default argument in commands with addresses or bootfiles; it is replaced by $(loadaddr) or $(bootfile) respectively
    • Combine PicoMOD6 and PicoCOM3 to a common fss3c64xx platform
    • Bring fss3c64xx in line with fss5pv210 platform
    • Allow board specific default serial port, set sercon variable to it
    • Improve serial driver for S3C64XX to allow CONFIG_SERIAL_MULTI
    • Use ttySACx (instead of s5p_uartx) as name for serial devices
    • Fix early access to serial port
    • Fix serial download
    • Fix generic SDHC driver on S5P
    • Add similar SDHC infrastructure for S3C64XX as for S5P and switch from F&S NBoot MMC driver to generic SDHC driver
    • Add commands update and install to manually trigger installation
    • Improve update command, unused arguments can be skipped with '.'
    • Use NetLoop() instead of netboot_common() for network update/install
    • Allow board specific defaults for updcheck/instcheck
    • Change environment to use new bootz command for loading zImages
    • Remove support to access single files within UBIFS and JFFS2 images
    • Enable device tree support and fdt command
    • Enable unzip command
    • Disable bootelf, bootvx and itest commands
    • Add new default variables bootnfsdhcp, bootubidhcp, bootjffs2dhcp; if called with run, Linux initializes the network devices with DHCP
    • Fix bootcmd to load to dynamic loadaddr instead of fix 0x41000000
    • Fix ethernet settings for boards with more than one port
    • RTC: remove reading of alarm values, they are not used anyway



    Linux Kernel V2.0 (22.11.2012, based on linux-3.3.7)
    Supported boards: armStoneA8, NetDCU14, PicoMOD7A


    • Add support for PicoMOD7A, default console on ttySAC2
    • Add support for NetDCU14, default console on ttySAC1, 2nd CAN
    • Completely new touch driver with down-force evaluation and far lessjitter; tuning parameters can be set via Kconfig (make menuconfig) and /sys/devices/platform/s3c64xx-ts/
    • Activate Atmel mXT I2C capacitive touchscreen and add configuration
    • Add support for FocalTouch FT5x06 series touch controllers
    • Set default display configuration for Chi Mei G070Y2-L01 (800x480)
    • Add default and maximum bpp to generic LCD configuration
    • Fix CAN interrupt handling that could cause a system hang
    • Improve CAN performance by setting maximum possible SPI speed
    • Move platform dependent code from s5p-sgtl5000.c to mach-*
    • Modify zImage decompressor code to allow default serial port (console) to be patched by U-Boot at runtime
    • armStoneA8: Fix missing SPI0 device
    • Fix bad maximum speed computation for SPI
    • Enable SPIDEV in the default config (required for userspace SPI)
    • armStoneA8/NetDCU14: Block I2C0 if SPI0 is running and vice versa
    • Modify packet buffer out threshold for USB EHCI on S5P
    • Fix non running RTC due to missing base clock
    • Fix clocks and GPIO configuration for UARTs
    • Enable SYSVIPC in default config (required for shared memory accesses, e.g. in the X-Server)
    • Add optional device fs_phkmem to allow setting HW registers of the SOC from userspace



    BuildRoot V2.0 (22.11.2012, based on buildroot-2012.08)
    Supported Boards: armStoneA8, NetDCU14, PicoMOD7A, PicoCOM4


    • Rebase to buildroot-2012.08, this updates lots of packages
    • Add support for PicoMOD7A
    • Add support for NetDCU14
    • Add support for PicoCOM4
    • Move F&S specific stuff from target/device/f+s to board/f+s
    • Remove JFFS2 from the set of automatically generated filesystem images
    • [STD] Add openssh, x11vnc, xhost, input-tools, input-event-daemon
    • Update to busybox-1.20.x, this adds the command lsof
    • Add support for Atmel mXT and FocalTech FT5x06 series capacitive touch controllers (via I2C)



    Toolchain
    The toolchain remained unchanged



    Documentation

    • New MultiPlatform-Linux-FirstSteps.pdf document



    Your F&S Support Team

    F&S Elektronik Systeme GmbH
    As this is an international forum, please try to post in English.
    Da dies ein internationales Forum ist, bitten wir darum, Beiträge möglichst in Englisch zu verfassen.

  • From now on we will report information that is common for all supported boards of Multi-Platform Linux in the common Linux section Linux and Applications. That's bugs, announcements and general information. So if you are looking for solutions to your problems, please also have a look there. Only things that are really armStoneA8 specific are still reported here in this section.


    If you're opening a new topic, please try to use the appropriate section, too. If you can't determine if it is board specific or not, better post it here in the board specific section. If this proves to be wrong and it is a more generic issue, don't bother, we will move the topic to the common section.


    Thanks.


    Your F&S Support Team

    F&S Elektronik Systeme GmbH
    As this is an international forum, please try to post in English.
    Da dies ein internationales Forum ist, bitten wir darum, Beiträge möglichst in Englisch zu verfassen.