element14 Community
element14 Community
    Register Log In
  • Site
  • Search
  • Log In Register
  • About Us
  • Community Hub
    Community Hub
    • What's New on element14
    • Feedback and Support
    • Benefits of Membership
    • Personal Blogs
    • Members Area
    • Achievement Levels
  • Learn
    Learn
    • Ask an Expert
    • eBooks
    • element14 presents
    • Learning Center
    • Tech Spotlight
    • STEM Academy
    • Webinars, Training and Events
    • Learning Groups
  • Technologies
    Technologies
    • 3D Printing
    • FPGA
    • Industrial Automation
    • Internet of Things
    • Power & Energy
    • Sensors
    • Technology Groups
  • Challenges & Projects
    Challenges & Projects
    • Design Challenges
    • element14 presents Projects
    • Project14
    • Arduino Projects
    • Raspberry Pi Projects
    • Project Groups
  • Products
    Products
    • Arduino
    • Avnet Boards Community
    • Dev Tools
    • Manufacturers
    • Multicomp Pro
    • Product Groups
    • Raspberry Pi
    • RoadTests & Reviews
  • Store
    Store
    • Visit Your Store
    • Choose another store...
      • Europe
      •  Austria (German)
      •  Belgium (Dutch, French)
      •  Bulgaria (Bulgarian)
      •  Czech Republic (Czech)
      •  Denmark (Danish)
      •  Estonia (Estonian)
      •  Finland (Finnish)
      •  France (French)
      •  Germany (German)
      •  Hungary (Hungarian)
      •  Ireland
      •  Israel
      •  Italy (Italian)
      •  Latvia (Latvian)
      •  
      •  Lithuania (Lithuanian)
      •  Netherlands (Dutch)
      •  Norway (Norwegian)
      •  Poland (Polish)
      •  Portugal (Portuguese)
      •  Romania (Romanian)
      •  Russia (Russian)
      •  Slovakia (Slovak)
      •  Slovenia (Slovenian)
      •  Spain (Spanish)
      •  Sweden (Swedish)
      •  Switzerland(German, French)
      •  Turkey (Turkish)
      •  United Kingdom
      • Asia Pacific
      •  Australia
      •  China
      •  Hong Kong
      •  India
      •  Korea (Korean)
      •  Malaysia
      •  New Zealand
      •  Philippines
      •  Singapore
      •  Taiwan
      •  Thailand (Thai)
      • Americas
      •  Brazil (Portuguese)
      •  Canada
      •  Mexico (Spanish)
      •  United States
      Can't find the country/region you're looking for? Visit our export site or find a local distributor.
  • Translate
  • Profile
  • Settings
Single-Board Computers
  • Products
  • Dev Tools
  • Single-Board Computers
  • More
  • Cancel
Single-Board Computers
Forum Arduino: now a Single Board Computer!
  • Blog
  • Forum
  • Documents
  • Files
  • Members
  • Mentions
  • Sub-Groups
  • Tags
  • More
  • Cancel
  • New
Join Single-Board Computers to participate - click to join for free!
Actions
  • Share
  • More
  • Cancel
Forum Thread Details
  • Replies 69 replies
  • Subscribers 62 subscribers
  • Views 6731 views
  • Users 0 members are here
  • intel
  • rome
  • makerfaire
  • arduino_tre
  • arm_cortex_a8
  • cortex_a8
  • beaglebone_black
  • sbc
  • embedded
  • tre
  • bbb
  • maker_faire_rome
  • BeagleBone
  • sitara
  • texas_instruments
  • bb_black
  • am335x
  • maker_faire
  • beagle_bone_black
  • arm
  • arduino
  • italy
  • ti
Related

Arduino: now a Single Board Computer!

fustini
fustini over 11 years ago

So I often get annoyed when folks refer to the AVR-based Arduino boards (or even the ARM microcontroller DUE) as a Single Board Computer.  The Yun blurred the lines a bit... but the news today from Maker Faire Rome has the Arduino brand fully in the SBC world now:

 

Arduino Announces new Boards and Collaboration with Intel and T.I.

http://makezine.com/2013/10/03/arduino-announces-two-new-linux-boards/

image

 

coder27 posted about the Intel-based Arduino board, and there is also an upcoming Arduino model based on the TI Sitara (same as in the BeagleBone Black - an ARM Cortex A8).

 

I just read an interview on Make with jkridner about the new Arduino TRE:

 

Talking to Jason Kridner About the new Arduino Tre

http://makezine.com/2013/10/03/talking-to-jason-kridner-about-the-new-arduino-tre/

"The focus is on simplicity. It isn’t just a BeagleBone split in the middle [...] If you know Linux, you’ll be able to come in that way. If you know Arduino, you’ll be able to use the AVR as the system master."

image

 

I'm not sure exactly what this all means, but it is exciting to have more SBC options and the Arduino brand will be an interesting influence on the SBC market.  I do know that I didn't need any coffee to feel wide awake this morning image

 

What is the feeling of our SBC discussion group here?

 

cheers,

drew

  • Sign in to reply
  • Cancel

Top Replies

  • morgaine
    morgaine over 11 years ago +1
    I like the term "bare metal microcontroller" to denote the processors on Arduino AVR and ARM Cortex-M class boards. These contrast strongly with those boards which are based on "application processors…
  • johnbeetem
    johnbeetem over 11 years ago +1
    I have no problem with this use of Single-Board Computer. The earliest SBCs had very simple processors like Intel 8080 or MOS Technology 6502, which didn't have MMUs and didn't address much memory. When…
  • morgaine
    morgaine over 11 years ago +1
    Drew, leaving aside the puzzling situation with Galileo and how it's managing to run its peculiar version of Yocto, the Arduino TRE looks very good indeed! In fact, over the last year and a half, haven…
Parents
  • morgaine
    morgaine over 11 years ago

    I like the term "bare metal microcontroller" to denote the processors on Arduino AVR and ARM Cortex-M class boards.  These contrast strongly with those boards which are based on "application processors" that have an MMU and therefore run full operating systems (mostly Linux) and so their applications execute as user-mode processes in virtual memory --- definitely not "bare metal".

     

    It provides a clear distinction and so keeps discussions from attempting to compare apples with orangutans.

     

    PS. It's appalling to see makezine.com make this elementary error though. image

     

    PPS.  The source of the error seems to be Intel themselves!

     

    Intel writes (in the FAQ):

     

    Q: Can I run Linux on IntelRegistered Galileo?

     

    A: Yes. IntelRegistered Galileo runs Linux* out of the box. It comes in two flavors; the default is a small Linux. If you add an SD card to your kit, you can add a more fully-featured Linux. Refer to the IntelRegistered Galileo Getting Started Guide and IntelRegistered Quark SoC X1000 IoT Development Kit Software GSG.

     

    I'm still figuring out exactly what this means, but at best it's going to be something like the old uClinux, which was pretty horrible at best.  After all there is no MMU in Quark to support the normal Linux kernel --- see the Quark datasheet.  (uClinux is effectively EOL now owing to MMUs having become so ubiquitous.)

     

    PPPS.  The Galileo Getting Started Guide refers only to Linux support on the host side, not on the board.

     

    PPPPS. Oh dear.  If you zoom into the image showing what they load from uSD card, it boots into:

     

    Poky 9.0 (Yocto Project 1.4 Reference Distro) 1.4.1 clanton /dev/ttyS1

     

    I've got a very bad feeling about this.  I thought the days of MMU-less "Linux" derivatives were over.

     

    ===

     

    IMPORTANT ADDENDUM:  Quark does have an MMU, it's just not mentioned in the SoC Datasheet.  See this post.

    • Cancel
    • Vote Up +1 Vote Down
    • Sign in to reply
    • Cancel
Reply
  • morgaine
    morgaine over 11 years ago

    I like the term "bare metal microcontroller" to denote the processors on Arduino AVR and ARM Cortex-M class boards.  These contrast strongly with those boards which are based on "application processors" that have an MMU and therefore run full operating systems (mostly Linux) and so their applications execute as user-mode processes in virtual memory --- definitely not "bare metal".

     

    It provides a clear distinction and so keeps discussions from attempting to compare apples with orangutans.

     

    PS. It's appalling to see makezine.com make this elementary error though. image

     

    PPS.  The source of the error seems to be Intel themselves!

     

    Intel writes (in the FAQ):

     

    Q: Can I run Linux on IntelRegistered Galileo?

     

    A: Yes. IntelRegistered Galileo runs Linux* out of the box. It comes in two flavors; the default is a small Linux. If you add an SD card to your kit, you can add a more fully-featured Linux. Refer to the IntelRegistered Galileo Getting Started Guide and IntelRegistered Quark SoC X1000 IoT Development Kit Software GSG.

     

    I'm still figuring out exactly what this means, but at best it's going to be something like the old uClinux, which was pretty horrible at best.  After all there is no MMU in Quark to support the normal Linux kernel --- see the Quark datasheet.  (uClinux is effectively EOL now owing to MMUs having become so ubiquitous.)

     

    PPPS.  The Galileo Getting Started Guide refers only to Linux support on the host side, not on the board.

     

    PPPPS. Oh dear.  If you zoom into the image showing what they load from uSD card, it boots into:

     

    Poky 9.0 (Yocto Project 1.4 Reference Distro) 1.4.1 clanton /dev/ttyS1

     

    I've got a very bad feeling about this.  I thought the days of MMU-less "Linux" derivatives were over.

     

    ===

     

    IMPORTANT ADDENDUM:  Quark does have an MMU, it's just not mentioned in the SoC Datasheet.  See this post.

    • Cancel
    • Vote Up +1 Vote Down
    • Sign in to reply
    • Cancel
Children
  • fustini
    fustini over 11 years ago in reply to morgaine

    Woah, there's no MMU?!  I hadn't read much yet but was assuming it was similar to atom - some low power x86 chip.  I thought everything since 386 had protected mode - weird.  I guess I need to read some more of the flurry of coverage from today.  Good catch.... I will add to my personal defination that SBC must have MMU image

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Cancel
  • Former Member
    Former Member over 11 years ago in reply to fustini

    Woah, there's no MMU?!  I hadn't read much yet but was assuming it was similar to atom - some low power x86 chip.

    I assumed the same thing.  It's described as a Pentium, and Pentiums have MMUs.

    The IntelRegistered Quark Core Developer's Manual, section 3.3.1 "Address Spaces" says:

    https://communities.intel.com/servlet/JiveServlet/previewBody/21826-102-2-25118/Intel%20Quark%20Core_DevMan_001.pdf

     

    The IntelRegistered Quark SoC X1000 Core has three distinct address spaces: logical, linear, and

    physical. A logical address (also known as a virtual address) consists of a selector and

    an offset. A selector is the contents of a segment register. An offset is formed by

    summing all of the addressing components (BASE, INDEX, DISPLACEMENT) discussed

    in Section 3.5.3 into an effective address. Because each task on the IntelRegistered Quark SoC

    X1000 Core has a maximum of 16 K (214 - 1) selectors, and offsets can be 4 Gbytes

    (232 bits), this gives a total of 246 bits or 64 terabytes of logical address space per task.

    The programmer sees this virtual address space.

     

    The segmentation unit translates the logical address space into a 32-bit linear address

    space. If the paging unit is not enabled then the 32-bit linear address corresponds to

    the physical address. The paging unit translates the linear address space into the

    physical address space. The physical address is what appears on the address pins.

     

    This sounds like it is doing at least some sort of MMU function in translating virtual addresses

    to physical addresses.

     

    The FAQ, says under "What development operating systems are supported" at

    http://www.intel.com/support/galileo/faq.htm

    • Linux Ubuntu 12.04* (32-bit & 64-bit)
    • Mac OS X version 10.8.5* (also tested on Mac OS X 10.6.8, 10.7.5, and 10.9* developer preview)
    • Windows 7* (32-bit & 64-bit) and Windows 8*

    I had initially understood that to mean supported on the Galileo, although the 64-bit versions

    made no sense, and running Windows 7 in 256MB doesn't sound reasonable. 

    Now I'm reading that as those OSs are supported on host computers connected to Galileo,

    so it's not clear at all what OSs are supported on Galileo.

    • Cancel
    • Vote Up +1 Vote Down
    • Sign in to reply
    • Cancel
  • morgaine
    morgaine over 11 years ago in reply to Former Member

    Walt Gribben has just confirmed the existence of an MMU in our sister thread:

     

    Walt Gribben wrote:

     

    theres one big piece of Quark that has been overlooked.  Having worked with Intel architectures for some time now, I'm familiar with the way they write their manuals.  And what isn't there is always more important that what is!

    Actually, Quark does have an MMU, its just not described in the Datasheet.

    The MMU is part of the CPU Core, which is described the Core Hardware Reference Manual and the Core Developer's Manual.   The Quark CPU Core is a complete IA32 implementation,  a little slow but with a few extras for the embedded micro market.  Check out page 20 of the hardware ref, it shows a block diagram of the core.  The three manuals together make up the Quark documentation.  You almost need a monitor for the datasheet, the hardware ref manual printed out and a second monitor for the developers manual to make sense of it all. image

     

    This changes everything, so:

     

    1. Quark does after all have an MMU.
    2. Having an MMU, it is validly called an applications processor.
    3. Having an MMU, it can run full operating systems like Linux with full virtual memory abstraction.
    4. Having an MMU, it does not need to run uClinux (which is for MMU-less microcontrollers).

     

    Phew! image  And once again, thanks Walt!

     

    I'm very glad to hear that!  Things were looking pretty ugly there for a while ...

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Cancel
  • morgaine
    morgaine over 11 years ago in reply to fustini

    Drew Fustini wrote:

     

    I will add to my personal defination that SBC must have MMU image

    You'll be relieved to hear (as I was) that the Quark has one after all, just cloaked in stealth marketing. image

     

    The only remaining worry is the harsh and totally non-open licensing on Intel's software downloads.  That however must be a mistake, because they're not allowed to impose such additional restrictions on top of GPL-licensed software.  It'll probably be removed or changed very rapidly once it's pointed out to them.

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Cancel
  • morgaine
    morgaine over 11 years ago in reply to Former Member

    coder27 wrote:

     

    This sounds like it is doing at least some sort of MMU function in translating virtual addresses

    to physical addresses.

     

    Yep, it has enough to run a full O/S.  What's more, in the Hardware Reference Manual, Intel explains:

     

    • On-Chip Memory Management Unit — Address management and memory space
       protection mechanisms maintain the integrity of memory in a multi-tasking and
       virtual memory environment. The memory management unit supports both
       segmentation and paging.

    and

    The memory management unit (MMU) consists of a segmentation unit and a paging
    unit which perform address generation. The segmentation unit translates logical
    addresses and passes them to the paging and cache units on a 32-bit linear address
    bus. Segmentation allows management of the logical address space by providing easy
    relocation of data and code and efficient sharing of global resources.


    The paging mechanism operates beneath segmentation and is transparent to the
    segmentation process. The paging unit translates linear addresses into physical
    addresses, which are passed to the cache on a 20-bit bus. Paging is optional and can be
    disabled by system software. To implement a virtual memory system, the IntelRegistered Quark
    Core supports full restartability for all page and segment faults.


    Memory is organized into one or more variable length segments, each up to four
    Gbytes (232 bytes). A segment can have attributes associated with it that include its
    location, size, type (i.e., stack, code, or data), and protection characteristics. Each task
    on an IntelRegistered Quark Core can have a maximum of 16,381 segments and each are up to
    four Gbytes in size. Thus, each task has a maximum of 64 terabytes (trillion bytes) of
    virtual memory.


    The segmentation unit provides four levels of protection for isolating and protecting
    applications and the operating system from each other. The hardware-enforced
    protection allows the design of systems with a high degree of software integrity.
    The IntelRegistered Quark Core has four modes of operation: Real Address Mode (Real Mode),
    Protected Mode, Virtual Mode (within Protected Mode), and System Management Mode
    (SMM). Real Mode is required primarily to set up the IntelRegistered Quark Core for Protected
    Mode operation.


    Protected Mode provides access to the sophisticated memory management paging and
    privilege capabilities of the processor. Within Protected Mode, software can perform a
    task switch to enter into tasks designated as Virtual 8086 Mode tasks.


    System Management Mode (SMM) provides system designers with a means of adding
    new software-controlled features to their computer products that always operate
    transparently to the operating system (OS) and software applications. SMM is intended
    for use only by system firmware, not by applications software or general purpose
    systems software.

     

    In other words, that's a complete MMU, but bizarrely wasn't even hinted at in the Quark datasheet.

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Cancel
  • jeremybarker
    jeremybarker over 11 years ago in reply to morgaine

    The Quark datasheet is singularly unhelpful as to the processor's capabilities because only 1 page giving a 10 bullet-point list is devoted to the processor core. The datasheet is far more concerned with the integrated peripheral devices and other matters unique to this SoC. However you can infer that the processor has paging because the list says that Execute-Disable Page Protecton is supported. Also, as it says it's a Pentium and as all Pentiums have protected mode, it's reasonable to infer that it has the same memory management as any other modern x86 processor.

     

    If you read the Developer's Manual or Hardware Reference Manual it becomes crystal clear that the processor core is a full-feature x86 processor containing all the protected mode / paging features you would expect (and which have been in all x86 processors since the 386).

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Cancel
  • morgaine
    morgaine over 11 years ago in reply to jeremybarker

    Jeremy Barker wrote:

     

    If you read the Developer's Manual or Hardware Reference Manual it becomes crystal clear that the processor core is a full-feature x86 processor containing all the protected mode / paging features you would expect (and which have been in all x86 processors since the 386).

     

    And if you read the whole thread then you'd realize that the Developer's Manual and Hardware Reference Manual didn't come to our attention until Walt Gribben's informative post.

     

    Those two documents aren't linked from Intel's Galileo site under any of its submenus (particularly not in the documents section which lists the Quark SoC Datasheet which would have been the sensible place for them), nor in a very large number of other Intel, Galileo, Arduino and embedded industry sites that describe the board.  This is why Intel's numerous references to microcontroller and to wearables and IoT suggested very strongly that this was a cut-down device with a Pentium inner core but excluding all memory management, and hence was a microcontroller with the x86 instruction set.  That would appeal to many people after all.  The fact that the Quark SoC Datasheet even described a memory region protection feature quite similar to that in Cortex-M3 microcontrollers reinforced that belief.  Not even the Galileo FAQ suggested otherwise --- indeed, it didn't even mention known Linux distros that could be run on the board, which made it possible that uClinux was the only option owing to lack of MMU.  Nothing at all explicitly pointed to an MMU being present.

     

    Armed with your knowledge of the Developer's Manual and Hardware Reference Manual, it's easy to see that this isn't so, but it didn't look that way without that information.  Hindsight is great.

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Cancel
  • Problemchild
    Problemchild over 11 years ago in reply to morgaine

    Seems to be very much like those cust down 486 style SOCs that you used to see in routers not  unlike the Nat Semi/AMD Geode.

    So really that cpu isn't too fantastic one way or another ...Much better than an AVR thing though image

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Cancel
  • Former Member
    Former Member over 11 years ago in reply to morgaine

    Morgaine Dinova wrote:

     

    PPPPS. Oh dear.  If you zoom into the image showing what they load from uSD card, it boots into:

     

    Poky 9.0 (Yocto Project 1.4 Reference Distro) 1.4.1 clanton /dev/ttyS1

     

    I've got a very bad feeling about this. 

    Angstrom ??

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Cancel
  • Former Member
    Former Member over 11 years ago in reply to morgaine

    Intel writes (in the FAQ):

     

    Q: Can I run Linux on IntelRegistered Galileo?

     

    A: Yes. IntelRegistered Galileo runs Linux* out of the box. It comes in two flavors; the default is a small Linux. If you add an SD card to your kit, you can add a more fully-featured Linux. Refer to the IntelRegistered Galileo Getting Started Guide and IntelRegistered Quark SoC X1000 IoT Development Kit Software GSG.

    Does this imply that your choices for boot device are either onboard or SD card, but not USB or network?

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Cancel
element14 Community

element14 is the first online community specifically for engineers. Connect with your peers and get expert answers to your questions.

  • Members
  • Learn
  • Technologies
  • Challenges & Projects
  • Products
  • Store
  • About Us
  • Feedback & Support
  • FAQs
  • Terms of Use
  • Privacy Policy
  • Legal and Copyright Notices
  • Sitemap
  • Cookies

An Avnet Company © 2025 Premier Farnell Limited. All Rights Reserved.

Premier Farnell Ltd, registered in England and Wales (no 00876412), registered office: Farnell House, Forge Lane, Leeds LS12 2NE.

ICP 备案号 10220084.

Follow element14

  • X
  • Facebook
  • linkedin
  • YouTube