Intel DTCP Sample Implementation kit (SIK) contents - drm

I have some queries regarding Intel SIK.
Does this SIK contains the complete implementation of DTCP stack ? ie: including the implementation for Elliptic Curve Cryptography (ECC) used by DTCP.? Can you please explain what all modules will be available as part of this SIK.?
Basically,We have to develop DTCP stack for an arm platform. By using SIK, what all will be available and what modules are to be developed by us.?

Related

To build custom BSP layer using Yocto for a bare metal board [closed]

Closed. This question does not meet Stack Overflow guidelines. It is not currently accepting answers.
This question does not appear to be about a specific programming problem, a software algorithm, or software tools primarily used by programmers. If you believe the question would be on-topic on another Stack Exchange site, you can leave a comment to explain where the question may be able to be answered.
Closed 4 years ago.
Improve this question
I am developing an Embedded application based on Yocto Krogoth release to run on Nitrogen6x board. I have followed the steps mentioned in this link. I have successfully created the Linux distribution and Yocto SDK to develop and run my application on the nitrogen board. The target machine I used to setup the environment for building was:
MACHINE=nitrogen6x
Now, we reached a phase that we are going to create a custom board (based on same i.Mx.6). The real processor chip is not decided yet, but it will be based on iMx6.
Suppose we assume that the final custom board also uses the same processor chip as that of the Nitrogen6x board that am using for my development so far. Do I need to add any other CUSTOM BSP layer to my existing Yocto Repos to support the new custom board that I receive, or the existing Yocto layers and build environment I created for Nitrogen6x evaluation board will work fine for my custom board as well ?
Do i need to ask any specific information from the board vendor regarding the custom hardware changes he made in order to support any peripherals and GPIO lines so on.
What are the main things I have to consider if I receive a bare metal
custom board from a hardware vendor who is not planning to give any
minimal BSP package other than the schematics and pin mappings etc.
I read about creating a Custom BSP Layer in the Yocto documentation. But there are many other things in my mind that are not clear when I start thinking about a custom board (which is not like a Nitrogen6x, wandboard, Raspberry Pi etc., which has got a wide support in the Yocto, BSP communities).
EDIT 1
For example, I have built a Linux distribution for the Nitrogen6x board by specifying a machine name to the Yocto Build Setup Environment for which the Yocto Framework creates the Distro. I run the below instructions:
$ MACHINE=nitrogen6x source ./setup-environment build
$ bitbake core-image-sato
The machine I mentioned in the above step is nitrogen6x which is just a configuration file that looks like this. This file, mainly mentions these things:
Machine Type for which we are building the image for
Kernel Device trees required for the board
Preferred Uboot provider (u-boot-boundary)
Preferred Kernel provider (linux-boundary)
Preferred BSP (linux-fslc)
Boot Script (6x_bootscript)
Basic peripheral support like (serial, Bluetooth, wifi or network
chips)
My understanding so far was that, In the above list everything else remains the same except the highlighted ones for the custom board. Am I right with the below points ?
Kernel Device Trees: I may have to create a custom device tree file for my custom board based on the schematics and other hardware info. Is there any reference or document that I can refer to create my own .dts file.
BSP: I am expecting that the BSP layer I am currently using for the Nitrogen board may probably be compatible and work for the custom board too since it is going to be made based on the iMx6 platform. And this is the section where I have to work to get a prompt ? Will hardware providers give us a minimal set of software to check the boards boots and gets us a prompt or do I need to get it working on a bare metal board.
Thanks for any help you can provide.
I strongly recommend you to create a new fresh layer in order to handle your new custom device. It will allow you to properly dissociate devices and machine configuration from remote repositories. I do not know how to plan to manager deliveries/versions but I suggest you to use repo. You will find many information on NXP documentation.
My understanding so far was that, In the above list everything else remains the same except the highlighted ones for the custom board. Am I right with the below points ?
We do not know what do you really expect from your custom device. So thus, this machine configuration could satisfy your requirements, but could also need adjustments. Because the new machine override new machine override has been introduced last year, I am actually not familiarized with it yet. But it allows you to configure your BSP layer by adding a simple line in your local.conf. Depending on your local.conf, you will compile kernel from linux-boundary or linux-fslc recipes.
Kernel Device Trees: I may have to create a custom device tree file for my custom board based on the schematics and other hardware info. Is there any reference or document that I can refer to create my own .dts file.
You are able to append as many dts you want in KERNEL_DEVICETREE = you will have to had your own one. It exists lot of information about dts. Follow this link for a first introduction.
You will habe to create your own device tree (for instance, customboard-imx6.dts) under /arch/arm/boot/dts/ directory. You can also include it in your sources during your development process.
BSP: I am expecting that the BSP layer I am currently using for the Nitrogen board may probably be compatible and work for the custom board too since it is going to be made based on the iMx6 platform. And this is the section where I have to work to get a prompt ?
If yes, how do you plan to manage sources ?

Linux support for AMP architecture?

When I search about linux kernel, I know that linux support for SMP architecture.
But I don't find any specification about the linux for AMP.
Does linux support for AMP?
Have any documents or specification for descripting about that?
Anyone help?
Linux has the remoteproc subsystem and the closely tied virtio and rpmsg. remoteproc can be use to boot up a firmware blob on the remote core and the communicated with it using rpmsg. Examples of such processors include iMX7 and Vybrid. Vybrid has a Cortex A5 and Cortex M4.
See the documentation on remoteproc. ARM's big.Little might also interest you.
Yes. AMP precedes SMP, and both techs precede Linux.
Asymmetric multi processing was used when 2 Pentium II 33MhZ processors ran in parallel on the same motherboard.
It's an old Operating System, that is still supported in the current Linux kernel, and is in fact getting a face lift since cloud computing (which is essentially the same concept as AMP, but across a network instead of across a motherboard.
There's no recent talks about AMP around Linux devs, but just ask some of the cloud devs they'll talk your ears off about AMP.

OpenSC API documentation, tutorial

In last couple months while learning to develop Java Card applets I managed to develop ISO 7816 compatible file system applet. I successfully implemented most of the standardized APDU commands from 7816-4, -8, -9 standards (I used other available functional descriptions and standards like OpenPGP applet, IAS ECC, MUSCLE, CoolKey etc. to help me understand former standards).
Now I am trying to develop PKCS#11 implementation for this my own applet. I am familiar with using OpenSC tools for already supported cards (opensc-tool, opensc-explorer, pkcs15-init, pkcs15-tool etc.). But I would like to develop driver for this applet for OpenSC.
I browsed information available on their project site on github and found some documentation on implementing custom driver for OpenSC (entersafe card example, and general suggestions for card driver implementation). Also I found that on gooze.eu there were available some tutorials on OpenSC, but this site is no longer available.
So my questions are:
Where can I find some more information on OpenSC API in order to understand available driver code and to manage to develop my own?
Any general overview of API, about OpenSC architecture, description of available functions (description on intended usage of structures and functions such as sc_format_apdu, sc_transpit_apdu, sc_card_operatins as an example etc.) to give me a jumpstart for understanding OpenSC source code and implementing a card driver.
Are there any man pages for OpenSC API (googling I was able to find some, but very incomplete and sporadic).
Any information would be very helpful.
Why don't you either use IsoApplet (that has both JavaCard applet and OpenSC driver) or if you want to develop your own, learn from its source code.
Also, if you have studied the standards and existing applets (and drivers) you should have enough domain knowledge to get an idea of what some of the API functions do. If not, keep your code somewhere in public and you can (hopefully) get support from the OpenSC developers via mailing list.

Getting started with OpenCL with intel HD graphics in WIndows 7

I found this link with drivers and runtimes.
And also as per this , OpenCL codebuilder is now part of INDE/Media server Studio and these are not free (Though they come with trial version)
So my ultimate question is how to get started with OpenCL with Intel HD Graphics?
There is a starter edition of the Intel INDE suite, which is free (and is not just a trial). This contains their core OpenCL SDK. The Media Server Studio may contain some additional tools to aid OpenCL development on Intel HD Graphics, but is certainly not required in order to develop or run OpenCL programs.
You don't actually need any OpenCL SDK to get started with OpenCL development. You need a driver/runtime in order to run OpenCL programs (these are freely available, as per your first link). To develop OpenCL programs you just need the headers and a library to link against, which are both also freely available (more info in this answer).
Which programming language would you like to use? In Java you can start with a simple Java SE application and integrate the JavaCL package. You do not need any further vendor specific drivers.

Benefits of UNIX or UNIX variant on microcontroller?

This may be a foolish question but I've been searching around for some time and don't see a clear answer. I've seen several microcontrollers advertised as running Unix-like software (Linux, Ubuntu) for example, the BeagleBone Black and Arduino Yun. Can someone please explain to me the benefit of this? So far I've used a couple of microcontrollers like the Arduino Uno/Duo, Freescale FRDM and STM32 Discovery which either didn't have this feature or I was not aware of it. I'm starting to see it more and more on newer microcontrollers so I'd like to know what it brings to the table.
Full disclosure: I've had minimal exposure to UNIX and its variants so far so please talk slowly and use small words =)
Hope to hear from you,
Yusif Nurizade
You get complex drivers already included Linux for free (USB, internet protocols, storage media and file systems).
You can use lots of free software for the things not included in the kernel.
It is simpler to develop software on a full OS (easier to debug, look what is going on, change the configuration, etc etc).
The drawback is that the real-time capabilities are generally worse than for some small RTOS, and it needs more resources (a couple of megabytes memory).
In the heart of all Android and iphone is a Embedded Linux System. Without getting too deep
Linux + Java = Android
BSD Unix variant + C/C++/Object C = iOS
Now if you get deeper the above two statement can be argued for accuracy
All Android devices run on ARM based microprocessors. Beaglebone is one such open source hardware platform with can run Android as well as Embedded Linux distribution and even a Ubuntu.
Now (IMHO) Ubuntu is primarily for desktop and server application. Many of the popular computer server farms uses Ubuntu.
Now STM32 is a ARM based CORTEX-M micro control. Once again (IMHO) is mostly used for bare metal embedded applications. I have hard that FreeRTOS can be ported to TM4C123 ARM Cortex-M TM4C123.
Now the advantages of using Linux base micro controller architecture are
OS is free for the most part
Larger community of users
The industry is moving towards open source
Lot of free resources get up to speed
Disadvantage are
Learning curve is pretty steep
Expect to stumble and fall a few time
Below to two good resources to learn Beaglebone open source development
Beaglebone
Introduction to Beaglebone development by Derek Molloy of Dublin City University
HTH and good luck

Resources