1. Booted mainline kernel on Chromebook

    Olof Johannson wrote on Google+ how to get mainline kernel booting on Samsung ARM Chromebook. As mine returned from repair with new speakers and bottom cover I decided to take a look.

    With chainloaded U-Boot and just standard “exynos_defconfig” build of 3.11-rc2 I got my machine booting to Ubuntu right away:

    00:06 hrw@krolik:~$ cat /proc/device-tree/model ;echo
    Google Snow
    00:06 hrw@krolik:~$ uname -snrp
    Linux krolik 3.11.0-rc2 armv7l
    

    There are some things missing (audio, usb 3.0, backlight and more) but even with what is available we can boot and use Chromebook with mainline kernel instead of ChromeOS one.

    I will revert to 3.4-chromeos for now and try 3.8-chromeos one but that’s because I use Chromebook as developer machine for some builds where storage speed matters.

    Written by Marcin Juszkiewicz on
  2. I have a new time waster: Ingress

    Months ago a new game started: Ingress. There is a story behind it but not that I care about it.

    In short: there are two teams: green (Enlightenment) and blue (Resistance) trying to take over the world by “hacking portals”. Sure, someone could say that there are many MMORPG games on a market already and they would be right. But there are few things which made me play Ingress.

    1. To play you have to get your ass moved as game takes place in so-called “real world”. You know — streets with people, cars etc.
    2. Gives possibility to learn many more or less interesting places around.
    3. Another opportunity to meet other people and have something common to talk about.

    For me it started 4 weeks ago when I had three spare hours during Sunday evening. Joined the Enlightenment and hacked some portals in Warsaw, made few links and ended with a bit above 10k AP which gave me 2nd level. Next evening (in Szczecin) I met some local players and they helped me to get to 3rd one.

    Then time went… I convinced a friend to play and helped him to do L3 in one evening :D And during last weekend I was in Warsaw again and made 7th level (with help from local people who told me where to go to get some AP in quick and easy way).

    But what I like most is a need to grab a bike (or take a walk) and go to city centre to spend some time in active way ;)

    Written by Marcin Juszkiewicz on
  3. Remote Linaro Connect

    As I left Linaro I am not at Linaro Connect in Dublin, Ireland. But decided to access at least keynotes (which were always interesting) and probably also some sessions.

    George Grey introduction speech was fine. Number, standard Linaro information (what it is, how many people etc). Worth watching if you want some updates but may be skipped.

    Then James Bottomley from Parallels spoke about server side of computing. Unix, Windows NT, Linux, Itanium, AMD64/x86-64, Atom, 64-bit ARM are good keywords for his presentation. I liked few things:

    • Itanium iceberg description (why IA64 was disaster without IA32 compatibility)
    • Atom contra ARM “power fight” (hard to tell which one will be better for servers when it comes to energy use)
    • mentioning of Blackadder (I know what it is but never watched more then one episode)

    There were some issues with bandwidth so there are few moments in video where audio/video stops and you get group photo from previous Linaro Connect instead. But this is “normal” on first day and I hope that will get fixed by network team.

    There are few sessions today which I plan to take a look. ARMv8 Status one and the one about Linux scheduler.

    Written by Marcin Juszkiewicz on
  4. On my own again

    After 3 years at Linaro I have decided to not continue my trip with Canonical. So now I am back to be on my own again.

    I will not write why I made such decision but also want to mention that time at Canonical/Linaro was good. I learnt some new tools and added some of them to “avoid if possible” list. From products created and developed at Canonical there are Bazaar and Unity. Both have replacements which I like more.

    What next? Will see — I had some meetings and discussions. But I am open for job offers of course ;) It can be Debian or OpenEmbedded or Ubuntu or other ARM Linux related as long I do not have to move.

    Written by Marcin Juszkiewicz on
  5. I saw so many computers at Pixel Heaven 2013

    During weekend I was in Warsaw at Pixel Heaven 2013 retrocomputing event. It was interesting but I had no idea which machines I will see there as normally on such events in Poland you can see some Atari, Commodore 64 and Amiga computers. But here we got far, far more.

    All computers were provided by Stowarzyszenie Miłośników Zabytków Informatyki with few exceptions. I have to visit them in Katowice one day and look at rest of their machines.

    Main room was filled with Commodore machines on one side:

    CBM PET
    CBM PET
    CBM PET - 2KB?
    CBM PET - 2KB?
    VC 20 (aka VIC-20)
    VC 20 (aka VIC-20)
    Different cases of Commodore 64
    Different cases of Commodore 64
    Commodore +4
    Commodore +4
    Commodore 116
    Commodore 116
    Commodore 116
    Commodore 116
    Commodore SX64
    Commodore SX64

    As you see from PET line though VIC-20 to C64 (in nearly whole range of cases) and it’s portable SX64 version. Then C16/116/+4 line. There was also C128D but crowded for most of time so I did not took a photo.

    I always though that C16/116/+4 line was disaster one. But one of guys doing C64 pixel graphics told me that they had 121 colours (compared to 16 on C64) so it gave him more possibilities.

    Next set was from Atari:

    Atari Video Computer System (aka 2600)
    Atari Video Computer System (aka 2600)
    Atari 400
    Atari 400
    Atari 600XL
    Atari 600XL
    Atari 800XL
    Atari 800XL
    Atari 1040ST
    Atari 1040ST

    There were also 130XE, 800XE for which I do not have photos. Too bad that Atari 400 got wrong monitor — picture was snowing due to NTSC output instead of PAL (this was description from owner of same model). And each time I see TOS on Atari ST I want to run away screaming…

    Wide line of ZX Spectrum compatibles:

    Timex 1000 and ZX81
    Timex 1000 and ZX81
    ZX81 with other keyboard
    ZX81 with other keyboard
    ZX Spectrum
    ZX Spectrum
    ZX Spectrum+
    ZX Spectrum+
    Timex 2048
    Timex 2048
    Timex 2048 with AY and DivIDE
    Timex 2048 with AY and DivIDE
    ZX Spectrum +2
    ZX Spectrum +2
    ZX81 clone from Hong Kong
    ZX81 clone from Hong Kong

    The green one was bought by my friend V0yager. It had names like “Basic 2000” or “Lambda 8300” and probably many others…

    Speaking of ZX Spectrum… We got Polish computers based on Z80 as well:

    Meritum
    Meritum
    Elwirka
    Elwirka
    Elwro 800 Junior
    Elwro 800 Junior

    First one (Meritum) was compatible with TRS-80. The second one was closer to ZX Spectrum (there was some compatibility iirc) but was extended with networking and was supposed to be used under CP/J (version of CP/M with networking and shared drives). That piano in the middle was a toy produced earlier by same company so they reused a case (including note holder).

    Of course such event should have Commodore Amiga computers as well:

    Amiga 600
    Amiga 600
    Amiga 500
    Amiga 500
    Amiga 4000
    Amiga 4000
    Amiga CDTV
    Amiga CDTV
    Amiga CD32
    Amiga CD32
    Amiga 4000 with PCI daughterboard
    Amiga 4000 with PCI daughterboard

    Amiga 500/1200 were present as well as another Amiga 4000 desktop.

    600 was my first own computer (had Atari 65XE before) so I took a photo. Then we have revision 3 of Amiga 500 mainboard. Lot of things done different then in later ones — such as expansion connector. Amiga 4000D was property of my friend. It had PCI daughterboard inside (with network, usb 2.0 and VooDoo3 cards) and was powered by Cyberstorm PPC card. You can see cards on the last picture.

    Some selection of strange IBM PC and compatibles:

    IBM PC XT
    IBM PC XT
    Canon all-in-one
    Canon all-in-one
    Sinclair PC200
    Sinclair PC200
    Schneider EuroPC
    Schneider EuroPC

    Second one had touch screen, phone, fax and printer…

    Other ones:

    Vectrex
    Vectrex
    Sharp MZ-700
    Sharp MZ-700
    Spectravideo SVI-738 X'Press
    Spectravideo SVI-738 X’Press
    Universum TV Multi Spiel 2006
    Universum TV Multi Spiel 2006

    Vectrex (the first photo) is machine with vector graphics only, then Sharp MZ-700 with tape recorder and printer, Spectravideo SVI-738 X’Press and then German clone of Atari Pong.

    But none of them gave me such joy as line of products from other British company:

    BBC Micro
    BBC Micro
    BBC Master
    BBC Master
    Acorn Electron
    Acorn Electron
    Acorn A3010
    Acorn A3010
    Acorn A3020
    Acorn A3020

    I spent some time playing with RISC OS on A3010. It had some crazy ideas like AppDir but was fun to play with. Managed to drop down to text mode but it’s shell was too strange for me. Same with ARM BASIC. But it was great fun being able to play with one of first ARM based computers. Too bad that later someone change graphics mode to one incompatible with monitor ;(

    It was great selection of old computers. I want to thank David Alan Gilbert for his comments on my Google+ posts related to British computers.

    Written by Marcin Juszkiewicz on
  6. Red Hat and real AArch64 hardware today

    In around 3 hours from now Jon Masters from Red Hat will have first live multi-node cluster 64-bit ARM silicon demo running Fedora. On real hardware…

    It amazing how it went from new architecture announcement though simulators, boostrapping distributions to running those on real hardware. When I was working on AArch64 we were said that it will take one more year before we see devices not emulators or FPGAs (which I heard were slower than simulator).

    I hope to work on AArch64 support again — one day in a future.

    BTW — there will be no live streaming but Jon wrote that there will be video posted in short time after.

    Written by Marcin Juszkiewicz on
  7. ARMology

    When last time I was in Cambridge we had a discussion about ARM processors. Paweł used term “ARMology” then. And with recent announcement of Cortex-A12 cpu core I thought that it may be a good idea to write a blog post about it.

    Please note that my knowledge of ARM processors started in 2003 so I can make mistakes in everything older. Tried to understand articles about old times but sometimes they do not keep one version of story.

    Ancient times

    ARM1 got released in 1985 as CPU add-on to BBC Micro manufactured by Acorn Computers Ltd. as result of few years of research work. They wanted to have new processor to replace ageing 6502 used in BBC Micro and Acorn Electron and none of existing ones did not fit their requirements. Note that it was not market product but rather development tool made available for selected users.

    But it was ARM2 which landed in new computers — Acorn Archimedes (1987 year). Had multiply instructions added so new version of instruction set was created: ARMv2. Just 8MHz clock but remember that it was first computer with new CPU

    Then ARM3 came — with cache controller integrated and 25MHz clock. ISA was bumped to ARMv2a due to SWP instruction added. And it was released in another Acorn computer: A5000. This was also used in Acorn A4 which was first ARM powered laptop (but term “ARM Powered” was created few years later). I hope that one day I will be able to play with all those old machines…

    There was also ARM250 processor with ARMv2a instruction set like in ARM3 but no cache controller. But it is worth mentioning as it can be seen as first SoC due to ARM, MEMC, VIDC, IOC chips integrated in one piece of silicon. This allowed to create budget versions of computers.

    ARM Ltd.

    In 1990 Acorn, Apple and VLSI co-founded Advanced RISC Machines Ltd. company which took over research and development of ARM processors. Their business model was simple: “we work on cpu cores and other companies pay us license costs to make chips”.

    Their first cpu was ARM60 with new instruction set: ARMv3. It had 32bit address space (compared to 26bit in older versions), was endian agnostic (so both big and little endian was possible) and there were other improvements.

    Please note lack of ARM4 and ARM5 processors. I heard some rumours about that but will not repeat them here as some of them just do not fit when compared against facts.

    ARM610 was powering Apple Newton PDA and first Acorn RiscPC machines where it was replaced by ARM710 (still ARMv3 instruction set but ~30% faster).

    First licensees

    You can create new processor cores but someone has to buy them and manufacture… In 1992 GEC Plessey and Sharp licensed ARM technology, next year added Cirrus Logic and Texas Instruments, then AKM (Asahi Kasei Microsystems) and Samsung joined in 1994 and then others…

    From that list I recognize only Cirrus Logic (used their crazy EP93xx family), TI and Samsung as vendors of processors ;D

    Thumb

    One of next cpu cores was ARM7TDMI (Thumb+Debug+Multiplier+ICE) which added new instruction set: Thumb.

    The Thumb instructions were not only to improve code density, but also to bring the power of the ARM into cheaper devices which may primarily only have a 16 bit datapath on the circuit board (for 32 bit paths are costlier). When in Thumb mode, the processor executes Thumb instructions. While most of these instructions directly map onto normal ARM instructions, the space saving is by reducing the number of options and possibilities available — for example, conditional execution is lost, only branches can be conditional. Fewer registers can be directly accessed in many instructions, etc. However, given all of this, good Thumb code can perform extremely well in a 16 bit world (as each instruction is a 16 bit entity and can be loaded directly).

    ARM7TDMI landed nearly everywhere - MP3 players, cell phones, microwaves and any place where microcontroller could be used. I heard that few years ago half of ARM Ltd. income was from license costs of this cpu core…

    ARM7

    But ARM7 did not ended at ARM7TDMI… There was ARM7EJ-S core which used ARMv5TE instruction set and also ARM720T and ARM740T with ARMv4T. You can run Linux on Cirrus Logic CLPS711x/EP721x/EP731x ones ;)

    According to ARM Ltd. page about ARM7 the ARM7 family is the world’s most widely used 32-bit embedded processor family, with more than 170 silicon licensees and over 10 Billion units shipped since its introduction in 1994.

    ARM8

    I heard that ARM8 is one of those things you should not ask ARM Ltd. people about. Nothing strange when you look at history…

    ARM810 processor made use of ARMv4 instruction set and had 72MHz clock. At same time DEC released StrongARM with 200MHz clock… 1996 was definitively year of StrongARM.

    In 2004 I bought my first Linux/ARM powered device: Sharp Zaurus SL-5500.

    ARM9

    Ah ARM9… this was huge family of processor cores…

    ARM moved from a von Neumann architecture (Princeton architecture) to a Harvard architecture with separate instruction and data buses (and caches), significantly increasing its potential speed.

    There were two different instruction sets used in this family: ARMv4T and ARMv5TE. Also some kind of Java support was added in the latter one but who knows how to use it — ARM keeps details of Jazelle behind doors which can be open only with huge amount of money.

    ARMv4T

    Here we have ARM9TDMI, ARM920T, ARM922T, ARM925T and ARM940T cores. I mostly saw 920T one in far too many chips.

    My collection includes:

    • ep93xx from Cirrus Logic (with their sick VFP unit)
    • omap1510 from Texas Instruments
    • s3c2410 from Samsung (note that some s3c2xxx processors are ARMv5T)

    ARMv5T

    Note: by ARMv5T I mean every cpu never mind which extensions it has built-in (Enhanced DSP, Jazelle etc).

    I consider this one to be most popular one (probably after ARM7TDMI). Countless companies had own processors based on those cores (mostly on ARM926EJ-S one). You can get them even in QFP form so hand soldering is possible. CPU frequency goes over 1GHz with Kirkwood cores from Marvell.

    In my collection I have:

    • at91sam9263 from Atmel
    • pxa255 from Intel
    • st88n15 from ST Microelectronics

    Had also at91sam9m10, Kirkwood based Sheevaplug and ixp425 based NSLU2 but they found new home.

    ARM10

    Another quiet moment in ARM history. ARM1020E, ARM1022E, ARM1026EJ-S cores existed but did not looked popular.

    UPDATE: Conexant uses ARM10 core in their next generation DSL CPE systems such as bridge/routers, wireless DSL routers and DSL VoIP IADs.

    ARM11

    Released in 2002 as four new cores: ARM1136J, ARM1156T2, ARM1176JZ and ARM11 MPCore. Several improvements over ARM9 family including optional VFP unit. New instruction set: ARMv6 (and ARMv6K extensions). There was also Thumb2 support in arm1156 core (but I do not know did someone made chips with it). arm1176 core got TrustZone support.

    I have:

    • omap2430 from Texas Instruments
    • i.mx35 from Freescale

    Currently most popular chip with this family is BCM2835 GPU which got arm1136 cpu core on die because there was some space left and none of Cortex-A processor core fit there.

    Cortex

    New family of processor cores was announced in 2004 with Cortex-M3 as first cpu. There are three branches:

    • Aplication
    • Realtime
    • Microcontroller

    All of them (with exception of Cortex-M0 which is ARMv6) use new instruction sets: ARMv7 and Thumb-2 (some from R/M lines are Thumb-2 only). Several cpu modules were announced (some with newer cores):

    • NEON for SIMD operations
    • VFP3 and VFP4
    • Jazelle RCT (aka ThumbEE).
    • LPAE for more then 4GB ram support (Cortex A7/12/15)
    • virtualization support (A7/12/15)
    • big.LITTLE
    • TrustZone

    I will not cover R/M lines as did not played with them.

    Cortex-A8

    Announced in 2006 single core ARMv7a processor core. Released in chips by Texas Instruments, Samsung, Allwinner, Apple, Freescale, Rockchip and probably few others.

    Has higher clocks than ARM11 cores and achieves roughly twice the instructions executed per clock cycle due to dual-issue superscalar design.

    So far collected:

    • am3358 from Texas Instruments
    • i.mx515 from Freescale
    • omap3530 from Texas Instruments

    Cortex-A9

    First multiple core design in Cortex family. Allows up to 4 cores in one processor. Announced in 2007. Looks like most of companies which had previous cores licensed also this one but there were also new vendors.

    There are also single core Cortex-A9 processors on a market.

    I have products based on omap4430 from Texas Instruments and Tegra3 from NVidia.

    Cortex-A5

    Announced around the end of 2009 (I remember discussion about something new from ARM with someone at ELC/E). Up to 4 cores, mostly for use in all designs where ARM9 and ARM11 cores were used. In other words new low-end cpu with modern instruction set.

    Cortex-A15

    The fastest (so far) core in ARMv7a part of Cortex family. Up to 4 cores. Announced in 2010 and expanded ARM line with several new things:

    • 40-bit LPAE which extends address range to 1TB (but 32-bit per process)
    • VFPv4
    • Hardware virtualization support
    • TrustZone security extensions

    I have Chromebook with Exynos5250 cpu and have to admit that it is best device for ARM software development. Fast, portable and hackable.

    Cortex-A7

    Announced in 2011. Younger brother of Cortex-A15 design. Slower but eats much less power.

    Cortex-A12

    Announced in 2013 as modern replacement for Cortex-A9 designs. Has everything from Cortex-A15/A7 and is ~40% faster than Cortex-A9 at same clock frequency. No chips on a market yet.

    big.LITTLE

    That’s interesting part which was announced in 2011. It is not new core but combination of them. Vendor can mix Cortex-A7/12/15 cores to have kind of dual-multicore processor which runs different cores for different needs. For example normal operation on A7 to save energy but go up for A15 when more processing power is needed. And amount of cores in each of them does not even have to match.

    It is also possible to make use of all cores all together which may result in 8-core ARM processor scheduling tasks on different cpu cores.

    There are few implementations already: ARM TC2 testing platform, HiSilicon K3V3, Samsung Exynos 5 Octa and Renesas Mobile MP6530 were announced. They differ in amount of cores but all (except TC2) use the same amount of A7/A15 cores.

    ARMv8

    In 2011 ARM announced new 64-bit architecture called AArch64. There will be two cores: Cortex-A53 and Cortex-A57 and big.LITTLE combination will be possible as well.

    Lot of things got changed here. VFP and NEON are parts of standard. Lot of work went into making sure that all designs will not be so fragmented like 32-bit architecture is.

    I worked on AArch64 bootstrapping in OpenEmbedded build system and did also porting of several applications.

    Hope to see hardware in 2014 with possibility to play with it to check how it will play compared to current systems.

    Other designs

    ARM Ltd. is not the only company which releases new cpu cores. That’s due to fact that there are few types of license you can buy. Most vendors just buy licence for existing core and make use of it in their designs. But some companies (Intel, Marvell, Qualcomm, Microsoft, Apple, Faraday and others) paid for ‘architectural license’ which allows to design own cores.

    XScale

    Probably oldest one was StrongARM made by DEC, later sold to Intel where it was used as a base for XScale family with ARMv5TEJ instruction set. Later IWMMXT got added in PXA27x line.

    In 2006 Intel sold whole ARM line to Marvell which released newer processor lines and later moved to own designs.

    There were few lines in this family:

    • Application Processors (with the prefix PXA).
    • I/O Processors (with the prefix IOP)
    • Network Processors (with the prefix IXP)
    • Control Plane Processors (with the prefix IXC).
    • Consumer Electronics Processors (with the prefix CE).

    One day I will undust my Sharp Zaurus c760 just to check how recent kernels work on PXA255 ;D

    Marvell

    Their Feroceon/PJ1/PJ4 cores were independent ARMv5TE implementations. Feroceon was Marvell’s own ARM9 compatible CPU in Kirkwood and others, while PJ1 was based on that and replaced XScale in later PXA chips. PJ4 is the ARMv7 compatible version used in all modern Marvell designs, both the embedded and the PXA side.

    Qualcomm

    Company known mostly from wireless networks (GSM/CDMA/3G) released first ARM based processors in 2007. First ones were based on ARM11 core (ARMv6 instruction set) and in next year also ARMv7a were available. Their high-end designs (Scorpion and Krait) are similar to Cortex family but have different performance. Company also has Cortex-A5 and A7 in low-end products.

    Nexus 4 uses Snapdragon S4 Pro and I also have S4 Plus based Snapdragon development board.

    Faraday

    Faraday Technology Corporation released own processors which used ARMv4 instruction set (ARMv5TE in newer cores). They were FA510, FA526, FA626 for v4 and FA606TE, FA626TE, FMP626TE and FA726TE for v5te. Note that FMP626TE is dual core!

    They also have license for Cortex-A5 and A9 cores.

    Project Denver

    Quoting Wikipedia article about Project Denver:

    Project Denver is an ARM architecture CPU being designed by Nvidia, targeted at personal computers, servers, and supercomputers. The CPU package will include an Nvidia GPU on-chip.

    The existence of Project Denver was revealed at the 2011 Consumer Electronics Show. In a March 4, 2011 Q&A article CEO Jen-Hsun Huang revealed that Project Denver is a five year 64-bit ARM architecture CPU development on which hundreds of engineers had already worked for three and half years and which also has 32-bit ARM architecture backward compatibility.

    The Project Denver CPU may internally translate the ARM instructions to an internal instruction set, using firmware in the CPU.

    X-Gene

    AppliedMicro announced that they will release AArch64 processors based on own cores.

    Final note

    If you spotted any mistakes please write in comments and I will do my best to fix them. If you have something interesting to add also please do a comment.

    I used several sources to collect data for this post. Wikipedia articles helped me with details about Acorn products and ARM listings. ARM infocenter provided other information. Dates were taken from Wikipedia or ARM Company Milestones page. Ancient times part based on The ARM Family and The history of the ARM CPU articles. The history of the ARM architecture was interesting and helpful as well.

    Please do not copy this article without providing author information. Took me quite long time to finish it.

    Changelog

    8 June evening

    Thanks to notes from Arnd Bergmann I did some changes:

    • added ARM7, Marvell, Faraday, Project Denver, X-Gene sections
    • fixed Cortex-A5 to be up to 4 cores instead of single.
    • mentioned Conexant in ARM10 section.
    • improved Qualcomm section to mention which cores are original ARM ones, which are modified.

    David Alan Gilbert mentioned that ARM1 was not freely available on a market. Added note about it.

    Written by Marcin Juszkiewicz on
  8. Arch Linux ARM on Chromebook

    Yesterday I spent a bit of time reading a thread on Arch Linux ARM forum about their issues with Samsung ARM Chromebook. And found interesting information there.

    Why Arch Linux ARM? Because they posted guide for replacing original U-Boot with normal one. I plan to make some modifications to my Chromebook (once it return from service as I want my speakers back) and this will be one of them (other will be serial ports).

    If someone want to try this distribution then Craig Errington describes on his blog how to install XFCE. I did not used it and do not plan to but will check for tweaks and hints to get my Ubuntu experience better.

    So if you play with running other distributions than ChromeOS on you Chromebook then check their forum — maybe you will find something useful as well.

    Written by Marcin Juszkiewicz on
Page 32 / 106