DE102021002937A1 - Method of configuring an integrated circuit, method of providing loading software for an integrated circuit, and integrated circuit - Google Patents

Method of configuring an integrated circuit, method of providing loading software for an integrated circuit, and integrated circuit Download PDF

Info

Publication number
DE102021002937A1
DE102021002937A1 DE102021002937.2A DE102021002937A DE102021002937A1 DE 102021002937 A1 DE102021002937 A1 DE 102021002937A1 DE 102021002937 A DE102021002937 A DE 102021002937A DE 102021002937 A1 DE102021002937 A1 DE 102021002937A1
Authority
DE
Germany
Prior art keywords
integrated circuit
configuration data
loading software
loading
software
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
DE102021002937.2A
Other languages
German (de)
Inventor
Oliver Sander
Marvin Fuchs
Luis Ardila Perez
Torben Mehner
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Karlsruher Lnstitut Fuer Tech Koerperschaft Des Oeffentlichen Rechts
Karlsruher Lnstitut Fuer Technologie Koerperschaft Des Oeffentlichen Rechts
Original Assignee
Karlsruher Lnstitut Fuer Tech Koerperschaft Des Oeffentlichen Rechts
Karlsruher Lnstitut Fuer Technologie Koerperschaft Des Oeffentlichen Rechts
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Karlsruher Lnstitut Fuer Tech Koerperschaft Des Oeffentlichen Rechts, Karlsruher Lnstitut Fuer Technologie Koerperschaft Des Oeffentlichen Rechts filed Critical Karlsruher Lnstitut Fuer Tech Koerperschaft Des Oeffentlichen Rechts
Priority to DE102021002937.2A priority Critical patent/DE102021002937A1/en
Publication of DE102021002937A1 publication Critical patent/DE102021002937A1/en
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • G06F30/34Circuit design for reconfigurable circuits, e.g. field programmable gate arrays [FPGA] or programmable logic devices [PLD]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2115/00Details relating to the type of the circuit
    • G06F2115/02System on chip [SoC] design
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2117/00Details relating to the type or aim of the circuit design
    • G06F2117/08HW-SW co-design, e.g. HW-SW partitioning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/4401Bootstrapping

Abstract

Ein Aspekt betrifft ein Verfahren zum Konfigurieren einer integrierten Schaltung (102), insbesondere eines System-on-a-Chip (SoC) oder eines Multiprozessor-System-on-a-Chip (MPSoC), wobei das Verfahren folgende Schritte aufweist:- Ausführen einer ersten Lade-Software durch die integrierte Schaltung (102), wobei die erste Lade-Software basierend auf ersten Konfigurationsdaten (502) die integrierte Schaltung (102) teilweise konfiguriert, um eine zweite Lade-Software auf der integrierten Schaltung (102) auszuführen, und wobei mittels der ersten Konfigurationsdaten (502) eine Schnittstelle (116) der integrierten Schaltung (102) zur Kommunikation mit einer externen Ressource (118) konfiguriert wird;- Ausführen der zweiten Lade-Software durch die integrierte Schaltung (102), wobei die zweite Lade-Software zweite Konfigurationsdaten (630), welche anwendungsspezifische Konfigurationsdaten der integrierten Schaltung (102) beinhaltet, über die Schnittstelle (116) von der externen Ressource (118) lädt, und wobei die zweite Lade-Software basierend auf den zweiten Konfigurationsdaten (630) die integrierte Schaltung (102) konfiguriert; und- Ausführen eines Betriebssystems oder einer Anwendung auf der konfigurierten integrierten Schaltung (102).One aspect relates to a method for configuring an integrated circuit (102), in particular a system-on-a-chip (SoC) or a multiprocessor system-on-a-chip (MPSoC), the method having the following steps: - executing a first loading software by the integrated circuit (102), the first loading software based on first configuration data (502) partially configuring the integrated circuit (102) to execute a second loading software on the integrated circuit (102), and wherein an interface (116) of the integrated circuit (102) for communication with an external resource (118) is configured by means of the first configuration data (502);- execution of the second loading software by the integrated circuit (102), wherein the second Loading software second configuration data (630), which contains application-specific configuration data of the integrated circuit (102), via the interface (116) from the external resource (118) loads, and wherein the second loading software configures the integrated circuit (102) based on the second configuration data (630); and - running an operating system or an application on the configured integrated circuit (102).

Description

Die Erfindung betrifft ein Verfahren zum Konfigurieren einer integrierten Schaltung (IC, engl. Integrated circuit), insbesondere eines System-on-a-Chip (SoC) oder eines Multiprozessor-System-on-a-Chip (MPSoC). Ferner betrifft die Erfindung einen IC, insbesondere ein SoC oder ein MPSoC, und ein Verfahren zur Bereitstellung von Lade-Software für den IC.The invention relates to a method for configuring an integrated circuit (IC), in particular a system-on-a-chip (SoC) or a multiprocessor system-on-a-chip (MPSoC). Furthermore, the invention relates to an IC, in particular an SoC or an MPSoC, and a method for providing loading software for the IC.

Ein IC, wie beispielsweise ein SoC oder ein MPSoC, vereint alle oder einen großen Teil der Funktionen eines programmierbaren elektronischen Systems auf einem Halbleiter-Substrat ausgebildeten Chip (Die). Als System wird dabei eine Kombination unterschiedlicher Elemente (logische Schaltungen, Taktgebung, selbständiges Anlaufen, mikrotechnische Sensoren, Schnittstellen usw.) aufgefasst, die zusammen eine bestimmte anwendungsspezifische Funktionalität des IC ermöglichen. Eingesetzt wird ein IC üblicherweise in einem eingebetteten System, um bestimmte anwendungsspezifische Aufgaben zu übernehmen.An IC, such as a SoC or MPSoC, combines all or most of the functionality of a programmable electronic system on a chip (die) formed on a semiconductor substrate. A system is understood as a combination of different elements (logical circuits, clocking, automatic start-up, microtechnical sensors, interfaces, etc.) which together enable a certain application-specific functionality of the IC. An IC is usually used in an embedded system to take over certain application-specific tasks.

Moderne eingebettete Systeme und ICs, beispielsweise heterogene rekonfigurierbare SoCs/MPSoCs, benötigen in der Regel eine anwendungsspezifische Anpassung und Optimierung der durch das eingebettete System bzw. der durch den IC ausgeführten Software und eine entsprechende Konfiguration des IC selbst, um eine anwendungsspezifische Funktion bereitzustellen. In der Regel installiert ein Anwender dazu eine angepasste Firmware auf dem IC, anhand derer der IC entsprechend konfiguriert wird.Modern embedded systems and ICs, such as heterogeneous reconfigurable SoCs/MPSoCs, typically require application-specific adaptation and optimization of the software executed by the embedded system or the IC and a corresponding configuration of the IC itself in order to provide an application-specific function. To do this, a user usually installs customized firmware on the IC, which is used to configure the IC accordingly.

Dieses Vorgehen ist allerdings nachteilig, da die Konfiguration des IC durch die Firmware vorgegeben ist und bei Bedarf, beispielsweise Anpassung der Funktionen des IC an geänderte Vorgaben, eine Anpassung der Firmware oder Rekonfiguration des IC zur Laufzeit nur schwierig realisierbar ist.However, this procedure is disadvantageous because the configuration of the IC is specified by the firmware and if necessary, for example adapting the functions of the IC to changed specifications, adapting the firmware or reconfiguring the IC at runtime is difficult to implement.

Es ist somit Aufgabe der vorliegenden Erfindung, einen IC möglichst einfach und flexibel konfigurieren zu können. Des Weiteren ist es wünschenswert, die Wartbarkeit bzw. Anpassbarkeit eines IC zu verbessern.It is therefore the object of the present invention to be able to configure an IC as simply and flexibly as possible. Furthermore, it is desirable to improve the maintainability or adaptability of an IC.

Diese Aufgabe wird durch den Gegenstand des jeweiligen unabhängigen Patentanspruchs gelöst. Die jeweiligen abhängigen Patentansprüche betreffen bevorzugte Weiterbildungen des Gegenstands der vorliegenden Erfindung.This object is achieved by the subject matter of the respective independent patent claim. The respective dependent patent claims relate to preferred developments of the subject matter of the present invention.

Ein Aspekt betrifft ein Verfahren zum Konfigurieren eines IC, insbesondere eines SoC oder eines MPSoC, wobei das Verfahren folgende Schritte aufweist:

  • - Ausführen einer ersten Lade-Software durch den IC, wobei die erste Lade-Software basierend auf ersten Konfigurationsdaten den IC teilweise konfiguriert, um eine zweite Lade-Software auf dem IC auszuführen, und wobei mittels der ersten Konfigurationsdaten eine Schnittstelle des IC zur Kommunikation mit einer externen Ressource konfiguriert wird;
  • - Ausführen der zweiten Lade-Software durch den IC, wobei die zweite Lade-Software zweite Konfigurationsdaten, welche anwendungsspezifische Konfigurationsdaten des IC beinhaltet, über die Schnittstelle von der externen Ressource lädt, und wobei die zweite Lade-Software basierend auf den zweiten Konfigurationsdaten den IC konfiguriert; und
  • - Ausführen eines Betriebssystems oder einer Anwendung auf dem konfigurierten IC.
One aspect relates to a method for configuring an IC, in particular an SoC or an MPSoC, the method having the following steps:
  • - Execution of a first loading software by the IC, wherein the first loading software partially configures the IC based on first configuration data in order to execute a second loading software on the IC, and wherein by means of the first configuration data an interface of the IC for communication with an external resource is configured;
  • - Execution of the second loading software by the IC, wherein the second loading software loads second configuration data, which contains application-specific configuration data of the IC, via the interface from the external resource, and wherein the second loading software based on the second configuration data the IC configured; and
  • - Running an operating system or an application on the configured IC.

Vorteilhafterweise erlaubt das Ausführen der ersten Lade-Software und der zweiten Lade-Software, dass das Starten bzw. Booten des IC in einem mehrstufigen Start bzw. Boot-Prozess erfolgt, wobei in einer ersten Stufe, der IC anhand der ersten Konfigurationsdaten konfiguriert wird, und in einer späteren zweiten Stufe, der IC anhand der zweiten Konfigurationsdaten konfiguriert wird. Dabei kann in der ersten Stufe lediglich eine teilweise Konfiguration des IC erfolgen, wodurch im Wesentlichen eine Basiskonfiguration des IC vorgenommen wird. Insbesondere wird durch die Basiskonfiguration lediglich eine Basisfunktionalität des IC bereitgestellt, welche keine anwendungsspezifische Funktion des IC ermöglicht. So kann beispielsweise anhand der ersten Konfigurationsdaten der IC konfiguriert werden, um eine Treiberunterstützung für mit dem IC verbindbare Geräte (beispielsweise externe Ressourcen wie Netzwerkressource oder nichtflüchtige Speicher) bereitzustellen. Die so bereitgestellte Basisfunktionalität erlaubt es, dass die zweiten Konfigurationsdaten von der externen Ressource geladen werden können, um diese dann durch die zweite Lade-Software zu verarbeiten und den IC entsprechend den zweiten Konfigurationsdaten zu konfigurieren. Anhand der zweiten Konfigurationsdaten kann der IC dann vollständig entsprechend der anwendungsspezifischen Anwendung des IC initialisiert werden. Vorteilhafterweise ermöglicht das vorgeschlagene Verfahren eine flexible anwendungsspezifische Konfiguration des IC beim Starten bzw. Booten des IC. Insbesondere können die erste Lade-Software und die zweite Lade-Software beim Booten bzw. Starten des IC ausgeführt.Advantageously, running the first loading software and the second loading software allows the IC to be started or booted in a multi-stage start or boot process, with the IC being configured in a first stage using the first configuration data, and in a later second stage, the IC is configured based on the second configuration data. In this case, only a partial configuration of the IC can take place in the first stage, as a result of which a basic configuration of the IC is essentially carried out. In particular, only a basic functionality of the IC is provided by the basic configuration, which does not allow any application-specific function of the IC. For example, the first configuration data can be used to configure the IC in order to provide driver support for devices that can be connected to the IC (for example external resources such as network resources or non-volatile memories). The basic functionality provided in this way allows the second configuration data to be loaded from the external resource in order to then be processed by the second loading software and to configure the IC according to the second configuration data. Using the second configuration data, the IC can then be completely initialized according to the application-specific use of the IC. The proposed method advantageously enables flexible, application-specific configuration of the IC when starting or booting the IC. In particular, the first loading software and the second loading software can be executed when the IC is booted or started.

Im Rahmen der vorliegenden Offenbarung wird unter dem Begriff „extern“ verstanden, dass das entsprechende externe Element nicht Bestandteil des IC ist. Vielmehr kann der IC entsprechende Schnittstellen aufweisen, um mit dem externen Element zu kommunizieren bzw. um auf das externe Element zuzugreifen.In the context of the present disclosure, the term “external” is understood to mean that the corresponding external element is not part of the IC. Rather, the IC can have appropriate interfaces to the external Ele ment to communicate or to access the external element.

Ferner ist die Formulierung „zweite“ Lade-Software so zu verstehen, dass es sich um eine Lade-Software handelt, welche zeitlich nach der ersten Lade-Software ausgeführt wird. Folglich kann auch eine weitere (dritte) Lade-Software zwischen der ersten Lade-Software und der zweiten Lade-Software ausgeführt werden. Allerdings wird bevorzugt die zweite Lade-Software direkt nach der ersten Lade-Software, d.h. ohne Ausführen einer weiteren Lade-Software zwischen der ersten und zweiten Lade-Software, ausgeführt.Furthermore, the wording "second" loading software is to be understood in such a way that it is loading software that is executed after the first loading software. Consequently, further (third) loading software can also be executed between the first loading software and the second loading software. However, the second loading software is preferably executed directly after the first loading software, i.e. without executing further loading software between the first and second loading software.

Der IC kann programmierbar sein. Insbesondere kann der IC zumindest eine erste Prozessoreinheit, einen ersten Speicherkontroller für den Zugriff auf einen (externen) nichtflüchtigen Speicher, einen zweiten Speicherkontroller für den Zugriff auf einen flüchtigen (externen Speicher), eine Eingabe/Ausgabe-Einheit, die erste Schnittstelle und eine Kommunikationsstruktur, welche die zuvor genannten Elemente miteinander kommunikativ verbindet, aufweisen. Optional kann der IC eine programmierbare Logikeinheit, beispielsweise ein Field Programmable Gate Array (FPGA) aufweisen, wobei das FPGA ebenfalls mit der Kommunikationsstruktur kommunikativ gekoppelt ist. Unter kommunikativ gekoppelt wird verstanden, dass mittels der Kommunikationsstruktur die entsprechenden Elemente des IC Daten austauschen können.The IC can be programmable. In particular, the IC can have at least a first processor unit, a first memory controller for accessing an (external) non-volatile memory, a second memory controller for accessing a volatile (external memory), an input/output unit, the first interface and a communication structure , which communicatively connects the aforementioned elements with one another. The IC can optionally have a programmable logic unit, for example a Field Programmable Gate Array (FPGA), the FPGA also being communicatively coupled to the communication structure. Communicatively coupled means that the corresponding elements of the IC can exchange data by means of the communication structure.

Vorzugsweise kann die Schnittstelle eine Netzwerkschnittstelle sein und die zweite Lade-Software kann die zweiten Konfigurationsdaten über die Netzwerkschnittstelle von einer Netzwerkressource laden. Vorteilhaft können somit die zweiten Konfigurationsdaten auf der externen Ressource, bspw. auf der Netzwerkressource, bereitgestellt werden, so dass beim Starten bzw. Booten des IC, die zweiten Konfigurationsdaten, welche die anwendungsspezifische Konfiguration des IC festlegen, einfach nachladbar sind. Bei Bedarf können beispielsweise die zweiten Konfigurationsdaten auf der externen Ressource ausgetauscht werden und bei einem Start bzw. Neustart des IC, werden die ausgetauschten zweiten Konfigurationsdaten geladen und der IC entsprechend den zweiten Konfigurationsdaten konfiguriert, wodurch der Aufwand eine geänderte Konfiguration auf dem IC anzuwenden, reduziert wird.Preferably, the interface can be a network interface and the second loading software can load the second configuration data from a network resource via the network interface. The second configuration data can thus advantageously be made available on the external resource, for example on the network resource, so that when the IC is started or booted, the second configuration data, which define the application-specific configuration of the IC, can be easily reloaded. If necessary, for example, the second configuration data can be exchanged on the external resource and when the IC starts or restarts, the exchanged second configuration data is loaded and the IC is configured according to the second configuration data, which reduces the effort to apply a changed configuration to the IC becomes.

Bevorzugt kann während des Ausführens der zweiten Lade-Software ausgewählt werden, bestimmte zweite Konfigurationsdaten aus einer Vielzahl von zweiten Konfigurationsdaten zu laden und den IC anhand der ausgewählten zweiten Konfigurationsdaten zu konfigurieren. Jede der zweiten Konfigurationsdaten kann dabei einer anwendungsspezifischen Konfiguration des IC entsprechen. Vorteilhafterweise ist es somit während des Startens des IC möglich, eine geeignete anwendungsspezifische Konfiguration zur Konfiguration des IC auszuwählen. Insbesondere kann die Auswahl durch einen Nutzer erfolgen, wobei die zweite Lade-Software die ausgewählten zweiten Konfigurationsdaten entsprechende der Auswahl lädt und den IC gemäß der ausgewählten zweiten Konfigurationsdaten konfiguriert.During the execution of the second loading software, it is preferably possible to select to load specific second configuration data from a large number of second configuration data and to configure the IC using the selected second configuration data. Each of the second configuration data can correspond to an application-specific configuration of the IC. It is thus advantageously possible during the start-up of the IC to select a suitable application-specific configuration for configuring the IC. In particular, the selection can be made by a user, with the second loading software loading the selected second configuration data according to the selection and configuring the IC according to the selected second configuration data.

Vorzugsweise kann der IC die oben erwähnte programmierbare Logikeinheit aufweisen und das Verfahren kann folgende Schritte vorsehen:

  • - Laden eines Bitstroms durch die zweite Lade-Software, wobei der Bitstrom bevorzugt über die Schnittstelle von der externen Ressource geladen wird, und
  • - Konfigurieren der programmierbaren Logikeinheit basierend auf dem Bitstrom durch die zweite Lade-Software.
Preferably, the IC can have the programmable logic unit mentioned above and the method can include the following steps:
  • - loading a bit stream by the second loading software, the bit stream being loaded preferentially via the interface from the external resource, and
  • - configuring the programmable logic unit based on the bit stream by the second loading software.

Unter „Bitstrom“ wird dabei eine Information verstanden, welche eine Programmierinformationen enthält, anhand derer die programmierbare Logikeinheit programmiert bzw. konfiguriert wird. Der Bitstrom kann dabei insbesondere als Datei auf der externen Ressource bereitgestellt werden. Die den Bitstrom bereitstellende externe Ressource kann eine von der die zweiten Konfigurationsdaten bereitstellende externe Ressource verschiedene externe Ressource sein. So können beispielsweise die zweiten Konfigurationsdaten auf einer Netzwerkressource bereitgestellt werden, auf die mittels der Netzwerkschnittstelle des IC zugegriffen wird, und der Bitstrom kann auf einem nichtflüchtigen Speicher bereitgestellt werden, auf den mittels einer entsprechenden Schnittstelle des IC zugegriffen wird (bspw.: USB, SATA). Für den zuvor genannten Fall kann ferner vorgesehen sein, dass die ersten Konfigurationsdaten Daten zur Konfiguration der Schnittstelle enthalten, mit welcher auf die den Bitstrom bereitstellende externe Ressource zugegriffen werden kann. Die erste Lade-Software kann diese Schnittstelle des IC entsprechend konfigurieren.In this case, “bit stream” is understood to be information which contains programming information, on the basis of which the programmable logic unit is programmed or configured. In this case, the bit stream can be provided in particular as a file on the external resource. The external resource providing the bit stream can be an external resource that is different from the external resource providing the second configuration data. For example, the second configuration data can be provided on a network resource that is accessed via the network interface of the IC, and the bit stream can be provided on a non-volatile memory that is accessed via a corresponding interface of the IC (e.g.: USB, SATA ). In the aforementioned case, it can also be provided that the first configuration data contains data for configuring the interface with which the external resource providing the bit stream can be accessed. The first loading software can configure this interface of the IC accordingly.

In einer bevorzugten Ausführungsform können der Bitstrom und die zweiten Konfigurationsdaten allerdings auf derselben externen Ressource gespeichert sein. Vorteilhafterweise kann somit die Konfiguration des IC in der ersten Stufe vereinfacht werden, da beispielsweise weniger Schnittstellen konfiguriert werden müssen. Ferner kann die anwendungsspezifische Konfiguration des IC vereinfacht werden, da die zweiten Konfigurationsdaten und der Bitstrom auf derselben externen Ressource bereitgestellt werden.In a preferred embodiment, however, the bit stream and the second configuration data can be stored on the same external resource. The configuration of the IC can thus advantageously be simplified in the first stage, since fewer interfaces have to be configured, for example. Furthermore, the application-specific configuration of the IC can be simplified since the second configuration data and the bit stream are provided on the same external resource.

Vorzugsweise kann das Verfahren aufweisen:

  • - Laden einer Steuerungsanwendung durch die erste Lade-Software;
  • - Ausführen der Steuerungsanwendung auf einer Prozessoreinheit des IC;
  • - Generieren eines Fortsetzungssignals durch die Steuerungsanwendung basierend auf einen anwendungsspezifischen Kontext des IC;
  • - basierend auf dem Fortsetzungssignal, Starten des Ausführens der zweiten Lade-Software.
Preferably, the method may include:
  • - loading a control application by the first loading software;
  • - executing the control application on a processor unit of the IC;
  • - generating a continuation signal by the control application based on an application specific context of the IC;
  • - based on the continuation signal, start executing the second loading software.

Vorteilhafterweise kann durch das Vorsehen der Steuerungsanwendung, der Beginn der zweiten Konfigurationsstufe in Abhängigkeit des anwendungsspezifischen Kontextes des IC erfolgen. Mit anderen Worten, die zweite Konfigurationsstufe wird erst durch das Ausführen der zweiten Lade-Software gestartet, wenn der anwendungsspezifische Kontext des IC dies ermöglicht. Insbesondere wird unter anwendungsspezifischem Kontext verstanden, dass die durch die zweite Lade-Software zu konfigurierenden Elemente des IC konfigurationsfähig bzw. konfigurätionsbereit sind.By providing the control application, the start of the second configuration stage can advantageously take place depending on the application-specific context of the IC. In other words, the second configuration stage is only started by executing the second loading software if the application-specific context of the IC allows this. In particular, application-specific context means that the elements of the IC to be configured by the second loading software are configurable or ready for configuration.

Vorzugsweise kann die Steuerungsanwendung das Fortsetzungssignal erzeugen, nachdem bestimmte Konfigurationsregister des IC zugreifbar sind, wobei vorzugsweise die bestimmten Konfigurationsregister erst nach dem abgeschlossenen Ausführen der ersten Lade-Software zugreifbar bzw. konfigurierbar sind.Preferably, the control application can generate the continue signal after certain configuration registers of the IC are accessible, wherein preferably the certain configuration registers are only accessible or configurable after the execution of the first loading software has been completed.

Beispielsweise können die bestimmten Konfigurationsregister erst nachdem Bereitstellen einer ausreichenden Spannungsversorgung zugreifbar bzw. konfigurierbar sein. Entsprechend wird das Fortsetzungssignal erst erzeugt, wenn eine ausreichende Spannungsversorgung des IC gewährleistet ist.For example, the specific configuration registers may only be accessible or configurable after a sufficient power supply has been provided. Correspondingly, the continuation signal is only generated when a sufficient voltage supply of the IC is guaranteed.

Vorzugsweise kann das Verfahren weiter aufweisen:

  • - Laden eines Programm-Images durch die zweite Lade-Software, wobei das Laden bevorzugt über die Schnittstelle von der externen Ressource erfolgt;
  • - Laden von Programm-Image-Konfigurationsdaten durch die zweite Lade-Software, wobei das Laden bevorzugt über die Schnittstelle von der externen Ressource erfolgt; und
  • - Ausführen und Konfigurieren eines Programms durch die zweite Lade-Software basierend auf dem Programm-Image und den Programm-Image-Konfigurationsdaten.
Preferably, the method can further include:
  • - loading a program image by the second loading software, the loading preferably taking place via the interface from the external resource;
  • - loading program image configuration data by the second loading software, the loading preferably taking place via the interface from the external resource; and
  • - Running and configuring a program by the second loader software based on the program image and the program image configuration data.

Vorteilhafterweise erlaubt das Laden eines Programm-Images durch die zweite Lade-Software, dass während der zweiten Stufe ein weiteres (Software)-Programm konfiguriert und durch den IC ausgeführt werden kann.Advantageously, the loading of a program image by the second loading software allows another (software) program to be configured and executed by the IC during the second stage.

Vorzugsweise kann die erste Lade-Software die ersten Konfigurationsdaten beinhalten, und/oder die erste Lade-Software kann auf einer externen Ressource, bevorzugt einem nichtflüchtigen Speicher, gespeichert sein. Des Weiteren kann die zweite Lade-Software auf einer externen Ressource, bevorzugt dem nichtflüchtigen Speicher, gespeichert sein.Preferably, the first loading software can contain the first configuration data and/or the first loading software can be stored on an external resource, preferably a non-volatile memory. Furthermore, the second loading software can be stored on an external resource, preferably the non-volatile memory.

Insbesondere kann das Verfahren vorsehen, dass der IC vor dem Ausführen der ersten Lade-Software zunächst einen ersten Speicherkontroller des IC, mit dem der nichtflüchtige Speicher kommunikativ verbindbar ist, konfiguriert. Hierzu können entsprechende Konfigurationsdaten auf dem IC gespeichert sein. Anschließend kann der IC die erste Lade-Software mittels des ersten Speicherkontrollers von der externen Ressource laden und mit dem Ausführen der ersten Lade-Software beginnen. Vorzugsweise können die erste Lade-Software und die zweite Lade-Software auf derselben externen Ressource, bspw. dem nichtflüchtigen Speicher, gespeichert sein. Vorzugsweise werden die erste Lade-Software und die zweite Lade-Software zusammen in einem Image durch die externe Ressource, bspw. den nichtflüchtigen Speicher, bereitgestellt.In particular, the method can provide that the IC first configures a first memory controller of the IC, to which the non-volatile memory can be communicatively connected, before executing the first loading software. Corresponding configuration data can be stored on the IC for this purpose. Then, the IC can load the first loader software from the external resource using the first memory controller and start executing the first loader software. The first loading software and the second loading software can preferably be stored on the same external resource, for example the non-volatile memory. Preferably, the first loading software and the second loading software are provided together in an image by the external resource, e.g. the non-volatile memory.

Vorzugsweise dienen die erste Lade-Software und die zweite Lade-Software zum Starten bzw. Booten des IC. Insbesondere kann die erste Lade-Software ein First-Stage-Bootloader (FSBL) sein und/oder die zweite Lade-Software kann ein Second-Stage-Bootloader (SSBL) sein.The first loading software and the second loading software are preferably used to start or boot the IC. In particular, the first loading software can be a first stage boot loader (FSBL) and/or the second loading software can be a second stage boot loader (SSBL).

Vorzugsweise können die ersten Konfigurationsdaten und die zweiten Konfigurationsdaten zusammen eine vollständige anwendungsspezifische Konfiguration des IC darstellen. Mit anderen Worten, es bedarf der Konfiguration des IC anhand der ersten und zweiten Konfigurationsdaten, damit der IC anwendungsspezifisch genutzt werden kann. Bevorzugt kann durch Konfigurieren des IC gemäß der zweiten Konfigurationsdaten, die Konfiguration des IC gemäß der ersten Konfigurationsdaten teilweise modifiziert werden. Beispielsweise kann eine Schnittstelle, welche entsprechend den ersten Konfigurationsdaten konfiguriert wurde, anhand der zweiten Konfigurationsdaten um- bzw. verschieden konfiguriert werden.The first configuration data and the second configuration data can preferably together represent a complete application-specific configuration of the IC. In other words, the IC must be configured using the first and second configuration data so that the IC can be used in an application-specific manner. Preferably, by configuring the IC according to the second configuration data, the configuration of the IC according to the first configuration data can be partially modified. For example, an interface that was configured according to the first configuration data can be reconfigured or configured differently using the second configuration data.

Vorzugsweise weisen die ersten Konfigurationsdaten maschinenausführbaren Code auf, der vorzugsweise in der ersten Lade-Software enthalten ist. Ferner können die zweiten Konfigurationsdaten Konfigurationsparameter zum Konfigurieren des IC aufweisen, wobei die zweiten Konfigurationsdaten bevorzugt getrennt von der zweiten Lade-Software bereitgestellt werden. Unter getrennt wird verstanden, dass die zweite Lade-Software die zweiten Konfigurationsdaten nicht enthält.Preferably, the first configuration data includes machine executable code, which is preferably included in the first loader software. Furthermore, the second configuration data can have configuration parameters for configuring the IC, the second configuration data preferably being provided separately from the second loading software. Under separated is understood that the second loading software does not contain the second configuration data.

Vorzugsweise weisen die ersten Konfigurationsdaten Daten auf, um durch das Ausführen der ersten Lade-Software mindestens eins von:

  • - einen ersten Speicherkontroller des IC zur Kommunikation mit einem nichtflüchtigen Speicher,
  • - einen zweiten Speicherkontroller des IC zur Kommunikation mit einem flüchtigen Speicher, und
  • - eine Taktung für Teile des IC zu konfigurieren.
Preferably, the first configuration data includes data for executing at least one of:
  • - a first memory controller of the IC for communication with a non-volatile memory,
  • - a second memory controller of the IC for communication with a volatile memory, and
  • - configure clocking for parts of the IC.

Wie bereits oben erwähnt, konfiguriert die erste Lade-Software den IC anhand der ersten Konfigurationsdaten nur teilweise. D.h., der IC ist durch die von der ersten Lade-Software vorgenommene Konfiguration nicht vollständig für dessen beabsichtigte Anwendung/Funktion betriebsbereit. Vielmehr erfolgt die vollständige Konfiguration des IC anhand der zweiten Konfigurationsdaten durch die zweite Lade-Software. Des Weiteren dient die Konfiguration des IC gemäß der ersten Konfigurationsdaten dem Bereitstellen einer Basiskonfiguration, so dass der IC bestimmte Basisfunktionen, bspw. Zugriff auf den nichtflüchtigen (externen) Speicher, Zugriff auf flüchtigen (externen) Speicher, die Verwendung ausgewählter Schnittstellen, bereitstellt. Ferner können die ersten Konfigurationsdaten Daten aufweisen, um Eingabe/Ausgabe-Pins des IC zu konfigurieren.As already mentioned above, the first loading software only partially configures the IC based on the first configuration data. This means that the configuration made by the first loading software does not make the IC fully operational for its intended application/function. Rather, the complete configuration of the IC takes place using the second configuration data by the second loading software. Furthermore, the configuration of the IC according to the first configuration data serves to provide a basic configuration, so that the IC provides certain basic functions, e.g. access to the non-volatile (external) memory, access to volatile (external) memory, the use of selected interfaces. Furthermore, the first configuration data may include data to configure input/output pins of the IC.

Vorzugsweise weisen die zweiten Konfigurationsdaten Daten auf, um durch das Ausführen der zweiten Lade-Software mindestens eins von:

  • - weitere Schnittstellen des IC,
  • - eine Schnittstelle zwischen einer Prozessoreinheit und einer programmierbaren Logikeinheit des IC, und
  • - eine vollständige Taktung des IC zu konfigurieren.
Preferably, the second configuration data includes data for executing at least one of:
  • - further interfaces of the IC,
  • - an interface between a processor unit and a programmable logic unit of the IC, and
  • - configure a complete clocking of the IC.

Bevorzugt weisen die zweiten Konfigurationsdaten Daten auf, um ergänzend zu den ersten Konfigurationsdaten alle Schnittstellen des IC zu konfigurieren. Ferner können die zweiten Konfigurationsdaten Daten aufweisen, um die Eingabe/Ausgabe-Pins des IC vollständig zu konfigurieren und/oder erweiterte (engl. extended) Eingabe/Ausgabe-Pins zwischen der programmierbaren Logikeinheit und der Prozessoreinheit des IC zu konfigurieren.The second configuration data preferably has data in order to configure all interfaces of the IC in addition to the first configuration data. Furthermore, the second configuration data may include data to fully configure the IC's input/output pins and/or to configure extended input/output pins between the programmable logic unit and the IC's processor unit.

Vorzugsweise kann das Verfahren weiter aufweisen:

  • - Laden von dritten Konfigurationsdaten durch das Betriebssystem oder die Anwendung;
  • - Konfigurieren des IC gemäß der dritten Konfigurationsdaten durch das Betriebssystem oder die Anwendung. Vorteilhafterweise kann der IC nach dem Booten bzw. Starten durch die Anwendung oder das Betriebssystem im laufenden Betrieb umkonfiguriert werden.
Preferably, the method can further include:
  • - loading of third configuration data by the operating system or the application;
  • - Configure the IC according to the third configuration data by the operating system or the application. Advantageously, the IC can be reconfigured during operation after booting or starting by the application or the operating system.

Ein weiterer Aspekt betrifft eine Integrierte Schaltung, insbesondere ein System-on-Chip oder ein Multiprozessor-System-on-Chip, aufweisend:

  • eine erste Prozessoreinheit, und
  • eine Schnittstelle zur Kommunikation des IC mit einer externen Ressource, wobei die erste Prozessoreinheit dazu ausgelegt ist:
    • - eine erste Lade-Software auszuführen, wobei die erste Lade-Software basierend auf ersten Konfigurationsdaten den IC teilweise konfiguriert, um eine zweite Lade-Software auszuführen, und wobei die erste Lade-Software basierend auf den ersten Konfigurationsdaten die Schnittstelle zur Kommunikation mit der externen Ressource konfiguriert;
    • - die zweite Lade-Software auszuführen, wobei die zweite Lade-Software zweite Konfigurationsdaten, welche anwendungsspezifische Konfigurationsdaten des IC beinhaltet, über die Schnittstelle von der externen Ressource lädt, und wobei die zweite Lade-Software den IC basierend auf den zweiten Konfigurationsdaten konfiguriert; und
    • - ein Betriebssystem oder eine Anwendung auf dem konfigurierten IC auszuführen.
Another aspect relates to an integrated circuit, in particular a system-on-chip or a multiprocessor system-on-chip, having:
  • a first processor unit, and
  • an interface for the IC to communicate with an external resource, the first processor unit being designed to:
    • - execute a first loading software, wherein the first loading software based on first configuration data partially configures the IC to run a second loading software, and wherein the first loading software based on the first configuration data the interface for communication with the external resource configured;
    • - execute the second loading software, wherein the second loading software loads second configuration data, which includes application-specific configuration data of the IC, via the interface from the external resource, and wherein the second loading software configures the IC based on the second configuration data; and
    • - run an operating system or an application on the configured IC.

Bevorzugt kann das System entsprechend dem erst genannten Aspekt weitergebildet sein. Ferner kann die erste Prozessoreinheit ein oder mehrere Prozessoren aufweisen. Des Weiteren kann der IC eine programmierbare Logikeinheit aufweisen.The system can preferably be further developed in accordance with the first aspect mentioned. Furthermore, the first processor unit can have one or more processors. Furthermore, the IC can have a programmable logic unit.

Ein weiterer Aspekt betrifft ein Verfahren zur Bereitstellung von Lade-Software und Konfigurationsdaten für eine integrierte Schaltung, insbesondere für ein System-on-Chip oder ein Multiprozessor-System-on-Chip, wobei das Verfahren folgende Schritte aufweist:

  • - Festlegen erste Konfigurationsdaten zur teilweisen Konfiguration des IC, wobei mittels der ersten Konfigurationsdaten eine Schnittstelle des IC zur Kommunikation mit einer externen Ressource konfigurierbar ist;
  • - Festlegen zweiter Konfigurationsdaten zur anwendungsspezifischen Konfiguration des IC;
  • - Erstellen einer ersten Lade-Software des IC, wobei die erste Lade-Software Anweisungen beinhaltet, um den IC basierend auf den ersten Konfigurationsdaten zu konfigurieren; und
  • - Erstellen einer zweiten Lade-Software für den IC, wobei die zweite Lade-Software Anweisungen enthält, um die zweiten Konfigurationsdaten über die Schnittstelle von der externen Ressource zu laden und den IC basierend auf den zweiten Konfigurationsdaten zu konfigurieren.
Another aspect relates to a method for providing loading software and configuration data for an integrated circuit, in particular for a system-on-chip or a multiprocessor system-on-chip, the method having the following steps:
  • - Defining first configuration data for the partial configuration of the IC, an interface of the IC for communication with an external resource being configurable by means of the first configuration data;
  • - Setting second configuration data for the application-specific configuration of the IC;
  • - creating a first loading software of the IC, wherein the first loading software includes instructions to configure the IC based on the first configuration data; and
  • - creating a second loading software for the IC, wherein the second loading software contains instructions to load the second configuration data via the interface from the external resource and to configure the IC based on the second configuration data.

Vorzugsweise sieht das Verfahren weiter vor:

  • - Bereitstellen der ersten Lade-Software auf einer externen Ressource, wobei die erste Lade-Software vorzugsweise die ersten Konfigurationsdaten beinhaltet;
  • - Bereitstellen der zweiten Lade-Software auf einer externen Ressource;
  • - Bereitstellen der zweiten Konfigurationsdaten an der externen Ressource. Insbesondere können die erste Lade-Software und die zweite Lade-Software auf derselben externen Ressource zur Verfügung gestellt werden, und die zweiten Konfigurationsdaten auf einer anderen externen Ressource zur Verfügung gestellt werden. Vorzugsweise können die erste Lade-Software und die zweite Lade-Software zusammen als Image auf einem nichtflüchtigen Speicher bereitgestellt werden, wobei der IC über einen ersten Speicherkontroller auf den nichtflüchtigen Speicher zugreifen kann.
Preferably, the method further provides:
  • - Providing the first loading software on an external resource, wherein the first loading software preferably contains the first configuration data;
  • - providing the second loading software on an external resource;
  • - Providing the second configuration data at the external resource. In particular, the first loading software and the second loading software can be made available on the same external resource, and the second configuration data can be made available on a different external resource. Preferably, the first loading software and the second loading software can be provided together as an image on a non-volatile memory, the IC being able to access the non-volatile memory via a first memory controller.

Vorzugsweise kann das Verfahren weiter vorsehen:

  • - Festlegen einer vollständigen anwendungsspezifischen Konfiguration der integrierten Schaltung, und wobei das Festlegen der zweiten Konfigurationsdaten basierend auf der vollständigen anwendungsspezifischen Konfiguration und den ersten Konfigurationsdaten erfolgt.
Preferably, the method can further provide:
  • - Defining a complete application-specific configuration of the integrated circuit, and wherein the second configuration data is defined based on the complete application-specific configuration and the first configuration data.

Des Weiteren kann das Verfahren Merkmale der zuvor genannten Aspekte aufweisen.Furthermore, the method can have features of the aforementioned aspects.

Weitere Merkmale, Einzelheiten und Vorteile der Erfindung ergeben sich aufgrund der nachfolgenden Beschreibung sowie anhand der Zeichnungen, die Ausführungsbeispiele der Erfindung zeigen. Einander entsprechende Gegenstände oder Element sind in allen Figuren mit den gleichen Bezugszeichen versehen. Es zeigen:

  • 1 eine erstes exemplarisches Block-Diagramm eines IC,
  • 2 ein zweites exemplarisches Block-Diagramm eines IC,
  • 3 ein Verfahren zum Konfigurieren eines IC,
  • 4 eine weitere Ausführungsform des Verfahrens zum Konfigurieren des IC, und
  • 5 und 6 ein Verfahren zur Bereitstellung von Lade-Software für einen IC.
Further features, details and advantages of the invention result from the following description and from the drawings, which show exemplary embodiments of the invention. Corresponding objects or elements are provided with the same reference symbols in all figures. Show it:
  • 1 a first exemplary block diagram of an IC,
  • 2 a second exemplary block diagram of an IC,
  • 3 a method of configuring an IC,
  • 4 another embodiment of the method for configuring the IC, and
  • 5 and 6 a method of providing loading software for an IC.

1 zeigt als Blockdiagramm eine vereinfachte Darstellung einer integrierten Schaltung (IC) 102, insbesondere eines SoC bzw. MPSoC. Der IC 102 weist einen ersten Speicherkontroller 104 zur Kommunikation mit einem externen nichtflüchtigen Speicher auf. Der externe nichtflüchtige Speicher kann insbesondere auf einer Platine vorgesehen sein, an der der IC 102 angeordnet ist bzw. betrieben wird. Beispielsweise kann der erste Speicherkontroller 104 als Flash-Speicherkontroller ausgebildet sein, mit dem auf einen externen Flash-Speicher zugegriffen werden kann. Ferner kann der IC 102 einen zweiten Speicherkontroller 106 zur Kommunikation mit einem externen flüchtigen Speicher aufweisen. Beispielsweise kann der zweite Speicherkontroller 106 als DRAM (Dynamic Random Access Memory)-Speicherkontroller ausgebildet sein, mit dem auf einen externen DDR-RAM (beispielsweise DDR4, DDR3, DDR3L) zugegriffen werden kann. 1 1 shows a simplified representation of an integrated circuit (IC) 102, in particular an SoC or MPSoC, as a block diagram. The IC 102 has a first memory controller 104 for communication with an external non-volatile memory. The external non-volatile memory can be provided in particular on a circuit board on which the IC 102 is arranged or operated. For example, the first memory controller 104 can be embodied as a flash memory controller, with which an external flash memory can be accessed. Furthermore, the IC 102 can have a second memory controller 106 for communication with an external volatile memory. For example, the second memory controller 106 can be embodied as a DRAM (Dynamic Random Access Memory) memory controller, with which an external DDR-RAM (for example DDR4, DDR3, DDR3L) can be accessed.

Des Weiteren weist der IC 102 eine erste Prozessoreinheit 110 zum Ausführen von Anwendungen/Programmen auf dem IC 102 aus. Die erste Prozessoreinheit 110 kann einen oder mehrere Prozessoren aufweisen. Des Weiteren weist der IC 102 eine Kommunikationsstruktur 108 auf, welche eine (Daten)-Kommunikation zwischen dem ersten Speicherkontroller 104, dem zweiten Speicherkontroller 106 und der ersten Prozessoreinheit 110 ermöglicht. Die Kommunikationsstruktur 108 kann durch eine oder mehrere Bus-Systeme, welche die zuvor genannten Elemente kommunikativ miteinander verbindet, realisiert werden. Insbesondere kann die Kommunikationsstruktur 108 komplex und mehrschichtig sein.Furthermore, the IC 102 has a first processor unit 110 for executing applications/programs on the IC 102 . The first processor unit 110 may include one or more processors. Furthermore, the IC 102 has a communication structure 108 which enables (data) communication between the first memory controller 104 , the second memory controller 106 and the first processor unit 110 . The communication structure 108 can be implemented by one or more bus systems which communicatively connect the aforementioned elements to one another. In particular, the communication structure 108 can be complex and multi-layered.

Ferner kann der IC 102 verschiedene Schnittstellen und/oder Peripherieelemente 114 aufweisen, welche insbesondere eine Netzwerkschnittstelle, und weitere serielle und/oder parallele Schnittstellen 116 umfassen können. Beispiele für serielle Schnittstellen umfassen insbesondere eine SATA (Serial AT Attachment) und/oder USB (Universal Serial Bus) Schnittstelle. Insbesondere ermöglichen die Schnittstellen 116 einen Zugriff auf externe Ressource 118, wie beispielsweise Netzwerkressourcen und/oder nichtflüchtige Datenträger.Furthermore, the IC 102 can have various interfaces and/or peripheral elements 114 which, in particular, can include a network interface and further serial and/or parallel interfaces 116 . Examples of serial interfaces include in particular a SATA (Serial AT Attachment) and/or USB (Universal Serial Bus) interface. In particular, the interfaces 116 allow access to external resources 118, such as network resources and/or non-volatile data carriers.

Optional kann der IC 102 eine programmierbare Logikeinheit 112 aufweisen. Die programmierbare Logikeinheit 112 kann beispielsweise als FPGA realisiert sein. Ferner können die Schnittstellen 116, die Peripherieelemente 114 und die programmierbare Logikeinheit 112 ebenfalls kommunikativ mit der Kommunikationsstruktur 108 verbunden sein.Optionally, the IC 102 can include a programmable logic unit 112 . The programmable logic unit 112 can be implemented as an FPGA, for example. Furthermore, the interfaces 116, the peripheral elements 114 and the programmable logic unit 112 can also be communicatively connected to the communication structure 108.

Des Weiteren kann der IC 102 eine Plattform-Management-Einheit 122 aufweisen, welche IC-bezogene Verwaltungsaufgaben wahrnimmt.Furthermore, the IC 102 can have a platform management unit 122 which performs IC-related administration tasks.

2 zeigt ebenfalls einen IC 202, welcher sich von dem in 1 dargestellten IC 102 dadurch unterscheidet, dass der IC 202 eine zweite Prozessoreinheit 220 aufweist. Ferner kann bei dem in der 2 gezeigten IC 202 die erste Prozessoreinheit 110 als Application Processing Unit (APU) ausgebildet sein und die zweite Prozessoreinheit 220 als Real-Time-Processing Unit (RPU) ausgebildet sein. 2 also shows an IC 202, which differs from that in 1 illustrated IC 102 differs in that the IC 202 has a second processor unit 220. Furthermore, when in the 2 IC 202 shown, the first processor unit 110 can be designed as an application processing unit (APU) and the second processor unit 220 can be designed as a real-time processing unit (RPU).

Unter Bezugnahme auf 3 wird im Folgenden ein Verfahren zum Konfigurieren des IC 102/202 näher erläutert. Beim Starten des IC 102/202 wird in einem ersten Schritt S300 durch den IC 102/202 eine erste Lade-Software ausgeführt. Vor dem Ausführen der ersten Lade-Software kann der IC 102/202 anhand von auf dem IC 102/202 gespeicherten Konfigurationsdaten zumindest den ersten Speicherkontroller 104 konfigurieren, um die erste Lade-Software von einem externen nichtflüchtigen Speicher zu laden. Ferner enthält die erste Lade-Software erste Konfigurationsdaten mit denen der IC 102/202 zumindest teilweise konfiguriert werden kann.With reference to 3 a procedure for configuring the IC 102/202 is explained in more detail below. When starting the IC 102/202, a first loading software is executed by the IC 102/202 in a first step S300. Before executing the first loading software, the IC 102/202 can configure at least the first memory controller 104 to load the first loading software from an external non-volatile memory based on configuration data stored on the IC 102/202. Furthermore, the first loading software contains first configuration data with which the IC 102/202 can be at least partially configured.

Unter teilweiser Konfiguration des IC 102/202 wird verstanden, dass die Konfiguration lediglich eine Basiskonfiguration des IC 102/202 umfasst. Durch die teilweise Konfiguration des IC 102/202 erfolgt keine (vollständige) anwendungsspezifische Konfiguration des IC 102/202. Mit anderen Worten, die Konfiguration des IC 102/202 gemäß der ersten Konfigurationsdaten ermöglicht es nicht, dass der IC 102/202 seine anwendungsspezifische Funktion in einem eingebetteten System wahrnimmt.Partial configuration of the IC 102/202 means that the configuration includes only a basic configuration of the IC 102/202. Due to the partial configuration of the IC 102/202, there is no (complete) application-specific configuration of the IC 102/202. In other words, the configuration of the IC 102/202 according to the first configuration data does not allow the IC 102/202 to perform its application specific function in an embedded system.

Im Schritt S302 konfiguriert die erste Lade-Software den IC 102/202 anhand der ersten Konfigurationsdaten. Insbesondere ermöglicht die Konfiguration des IC 102/202 anhand der ersten Konfigurationsdaten das (spätere) Ausführen einer zweiten Lade-Software auf dem IC 102/202. Dabei kann der IC 102/202 die zweite Lade-Software im Schritt S304 von einem nichtflüchtigen Speicher laden, auf den beispielsweise über den ersten Speicherkontroller 104 zugegriffen wird. Vorzugsweise können die erste Lade-Software und die zweite Lade-Software zusammen auf dem nichtflüchtigen Speicher, auf den der IC 102/202 mittels des ersten Speicherkontrollers 104 zugreift, bereitgestellt werden. Insbesondere können die erste Lade-Software und die zweite Lade-Software zusammen in einem (Boot)-Image bereitgestellt werden.In step S302, the first loading software configures the IC 102/202 based on the first configuration data. In particular, the configuration of the IC 102/202 based on the first configuration data enables the (later) execution of a second loading software on the IC 102/202. In this case, the IC 102/202 can load the second loading software in step S304 from a non-volatile memory which is accessed via the first memory controller 104, for example. Preferably, the first loader software and the second loader software may be provided together on the non-volatile memory accessed by the IC 102/202 via the first memory controller 104. In particular, the first loading software and the second loading software can be provided together in a (boot) image.

Alternativ kann die zweite Lade-Software auch von einer anderen externen Ressource 118 geladen werden, beispielsweise von einem an einer Schnittstelle 116 des IC 102/202 anschließbaren nichtflüchtigen Speichermediums. Hierzu können die ersten Konfigurationsdaten Daten aufweisen, um eine entsprechende Schnittstelle 116, beispielsweise eine SATA (Serial AT Attachment) und/oder USB (Universal Serial Bus) Schnittstelle, des IC 102/202 zu konfigurieren, so dass der IC 102/202 auf die jeweilige externe Ressource 118, beispielsweise auf einen Datenträger, zugreifen kann, um die zweite Lade-Software von dieser externen Ressource zu laden.Alternatively, the second loading software can also be loaded from another external resource 118, for example from a non-volatile storage medium that can be connected to an interface 116 of the IC 102/202. For this purpose, the first configuration data can have data to configure a corresponding interface 116, for example a SATA (Serial AT Attachment) and/or USB (Universal Serial Bus) interface, of the IC 102/202, so that the IC 102/202 can access the respective external resource 118, for example a data medium, can access in order to load the second loading software from this external resource.

Auf jeden Fall ist vorgesehen, dass die ersten Konfigurationsdaten Daten enthalten, um eine Schnittstelle 116 des IC 102/202 zu konfigurieren, die benötigt wird, um auf eine externe Ressource zuzugreifen, auf der die zweiten Konfigurationsdaten bereitgestellt werden. Die zweiten Konfigurationsdaten werden in einem weiteren Verfahrensschritt von der zweiten Lade-Software verarbeitet, um den IC 102/202 anhand der zweiten Konfigurationsdaten zu konfigurieren. Beispielsweise kann die Konfiguration des IC 102/202 entsprechend den zweiten Konfigurationsdaten durch die Plattform-Management-Einheit 122 erfolgen.In any case, provision is made for the first configuration data to contain data in order to configure an interface 116 of the IC 102/202 which is required in order to access an external resource on which the second configuration data is provided. In a further method step, the second configuration data is processed by the second loading software in order to configure the IC 102/202 using the second configuration data. For example, the IC 102/202 can be configured by the platform management unit 122 in accordance with the second configuration data.

Nachdem die erste Lade-Software den IC 102/202 gemäß den ersten Konfigurationsdaten konfiguriert hat, insbesondere die zweite Lade-Software geladen hat, die entsprechende Schnittstelle 116 zum Zugreifen auf die externe Ressource 118, welche die zweiten Konfigurationsdaten bereitstellt, konfiguriert hat, und den IC 102/202 derart konfiguriert hat, dass die zweite Lade-Software von dem IC 102/202 ausgeführt werden kann, wird im Verfahrensschritt S310 die zuvor geladene zweite Lade-Software durch den IC 102/202 ausgeführt und die Ausführung der ersten Lade-Software beendet.After the first loading software has configured the IC 102/202 according to the first configuration data, in particular loading the second loading software, has configured the corresponding interface 116 for accessing the external resource 118, which provides the second configuration data, and the IC 102/202 configured such that the second loader software can be executed by the IC 102/202, in step S310 the previously loaded second loader software is executed by the IC 102/202 and the execution of the first loader software completed.

Hierzu wird zunächst in Schritt S312 die zweite Lade-Software initialisiert. In einem weiteren Schritt S313 lädt die zweite Lade-Software die zweiten Konfigurationsdaten von der externen Ressource 118 über die durch die erste Lade-Software konfigurierte Schnittstelle 116.For this purpose, the second loading software is first initialized in step S312. In a further step S313, the second loading software loads the second configuration data from the external resource 118 via the interface 116 configured by the first loading software.

In einem darauffolgenden Schritt S314 führt die zweite Lade-Software eine anwendungsspezifische Konfiguration des IC 102/202 anhand der zweiten Konfigurationsdaten durch. Die anwendungsspezifische Konfiguration ermöglicht es dem IC 102/202, eine anwendungsspezifische Funktion in einem eingebetteten System wahrzunehmen.In a subsequent step S314, the second loading software performs an application-specific configuration of the IC 102/202 using the second configuration data. The application-specific configuration allows the IC 102/202 to perform an application-specific function in an embedded system.

Für den Fall, dass der IC 102/202 die programmierbare Logikeinheit 112 aufweist, kann das Verfahren im Schritt S316 das Laden eines Bitstroms zum Programmieren der programmierbaren Logikeinheit 112 vorsehen. Nach erfolgtem Laden des Bitstroms kann die zweite Lade-Software die programmierbare Logikeinheit 112 mit dem Bitstrom programmieren. Bevorzugt kann der Bitstrom auf einer externen Ressource 118 bereitgestellt werden, auf welche mittels einer entsprechenden Schnittstelle 116 zugegriffen wird. Die Schnittstelle 116, mit der auf die den Bitstrom bereitstellende externe Ressource 118 zugegriffen werden kann, kann durch die erste Lade-Software oder die zweite Lade-Software konfiguriert werden. Für den Fall, dass diese Schnittstelle 116 durch die erste Lade-Software konfiguriert wird, können die ersten Konfigurationsdaten entsprechende Daten zum Konfigurieren dieser Schnittstelle 116 aufweisen. Für den Fall, dass die Schnittstelle 116 durch die zweite Lade-Software konfiguriert wird, können die zweiten Konfigurationsdaten entsprechende Daten zum Konfigurieren dieser Schnittstelle 116 aufweisen.In the event that the IC 102/202 has the programmable logic unit 112, the method in step S316 can provide for loading a bit stream for programming the programmable logic unit 112. After the bit stream has been loaded, the second loading software can program the programmable logic unit 112 with the bit stream. The bit stream can preferably be provided on an external resource 118, on which by means of a corresponding interface 116 is accessed. The interface 116, with which the external resource 118 providing the bit stream can be accessed, can be configured by the first loading software or the second loading software. If this interface 116 is configured by the first loading software, the first configuration data can have corresponding data for configuring this interface 116 . If the interface 116 is configured by the second loading software, the second configuration data can have corresponding data for configuring this interface 116 .

In einem weiteren Schritt S318 kann die zweite Lade-Software das Laden eines Betriebssystems oder einer Anwendung vorsehen. Das Betriebssystem oder die Anwendung kann auf einer der externen Ressourcen 118 bereitgestellt werden, über die der IC 102/202 mittels einer entsprechenden Schnittstelle der Schnittstellen 116 zugreift. Ferner kann nachdem Beenden der zweiten Lade-Software im Schritt S320 das Betriebssystem bzw. die Anwendung ausgeführt werden. Beispielsweise kann in dem Schritt S318 ein Linux-Kernel geladen und gestartet werden, und im Schritt S320 ein entsprechendes Linux Betriebssystem auf dem IC 102/202 ausgeführt werden.In a further step S318, the second loading software can load an operating system or an application. The operating system or application can be provided on one of the external resources 118, which the IC 102/202 accesses via an appropriate one of the interfaces 116. Furthermore, after the end of the second loading software in step S320, the operating system or the application can be executed. For example, a Linux kernel can be loaded and started in step S318, and a corresponding Linux operating system can be run on the IC 102/202 in step S320.

Wie zuvor erwähnt, ermöglichen die ersten Konfigurationsdaten, dass die erste Lade-Software den IC 102/202 entsprechend einer Basiskonfiguration konfiguriert. Die ersten Konfigurationsdaten können dazu ferner insbesondere Daten aufweisen, um den zweiten Speicherkontroller 106 zu konfigurieren, sodass der IC 102/202 auf einen flüchtigen Speicher mittels des zweiten Speicherkontrollers 106 zugreifen kann. Des Weiteren können die ersten Konfigurationsdaten Daten aufweisen, um eine Taktung für Teile des IC 102/202 zu konfigurieren. Ferner können die ersten Konfigurationsdaten Daten aufweisen, um Eingabe/Ausgabe-Pins des IC 102/202 bzw. eine Zuordnung der Eingabe/Ausgabe-Pins zumindest teilweise zu konfigurieren.As previously mentioned, the first configuration data allows the first loader software to configure the IC 102/202 according to a base configuration. For this purpose, the first configuration data can also include, in particular, data for configuring the second memory controller 106 so that the IC 102/202 can access a volatile memory using the second memory controller 106 . Furthermore, the first configuration data may include data to configure clocking for parts of the IC 102/202. Furthermore, the first configuration data may include data to at least partially configure input/output pins of the IC 102/202 or an assignment of the input/output pins.

Wie zuvor erwähnt, ermöglichen die zweiten Konfigurationsdaten, dass die zweite Lade-Software den IC 102/202 entsprechend einer anwendungsspezifischen Konfiguration konfiguriert, wodurch der IC 102/202 vollständig initialisiert wird. Insbesondere können dazu die zweiten Konfigurationsdaten Daten aufweisen, um weitere Schnittstellen 116, bevorzugt alle Schnittstellen 116, des IC 102/202 zu konfigurieren. Ferner können die zweiten Konfigurationsdaten Daten aufweisen, um eine oder mehrere Schnittstellen zwischen der programmierbaren Logikeinheit 112 und der ersten Prozessoreinheit 110 und/oder zweiten Prozessoreinheit 220 zu konfigurieren. Des Weiteren können die zweiten Konfigurationsdaten Daten aufweisen, um eine vollständige Taktung des IC 102/202 zu konfigurieren. Ebenso können die zweiten Konfigurationsdaten Daten aufweisen, um die Eingabe/Ausgabe-Pins des IC 102/202 bzw. deren Belegung vollständig zu konfigurieren. Ebenso können die zweiten Konfigurationsdaten Daten aufweisen, um erweiterte Eingabe/Ausgabe-Pins des IC 102/202 zwischen der programmierbaren Logikeinheit 112 und der ersten Prozessoreinheit 110 und/oder zweiten Prozessoreinheit 210 zu konfigurieren.As previously mentioned, the second configuration data allows the second loader software to configure IC 102/202 according to an application specific configuration, thereby fully initializing IC 102/202. In particular, the second configuration data can have data for this purpose in order to configure further interfaces 116, preferably all interfaces 116, of the IC 102/202. Furthermore, the second configuration data can include data to configure one or more interfaces between the programmable logic unit 112 and the first processor unit 110 and/or second processor unit 220 . Furthermore, the second configuration data may include data to configure full clocking of the IC 102/202. Likewise, the second configuration data can include data in order to completely configure the input/output pins of the IC 102/202 or their assignment. Likewise, the second configuration data may include data to configure extended input/output pins of the IC 102/202 between the programmable logic unit 112 and the first processing unit 110 and/or second processing unit 210 .

Vorteilhafterweise erlaubt das Unterteilen der Konfiguration des IC 102/202, in eine Basiskonfiguration (erste Konfigurationsdaten) und in eine anwendungsspezifische Konfiguration (zweite Konfigurationsdaten), dass die anwendungsspezifische Konfiguration gemäß der zweiten Konfigurationsdaten flexibel ladbar ist. Insbesondere in verteilten Systemen, welche eine Vielzahl von ICs aufweisen, kann so die Verwaltung der jeweiligen ICs verbessert werden. Vorteilhafterweise lassen sich Änderungen an der anwendungsspezifischen Konfiguration der ICs durch einfaches Bereitstellen der entsprechenden zweiten Konfigurationsdaten auf einer der externen Ressourcen ermöglichen.Advantageously, dividing the configuration of the IC 102/202 into a basic configuration (first configuration data) and an application-specific configuration (second configuration data) allows the application-specific configuration to be flexibly loadable according to the second configuration data. Management of the respective ICs can thus be improved, particularly in distributed systems which have a large number of ICs. Advantageously, changes to the application-specific configuration of the ICs can be made possible simply by providing the corresponding second configuration data on one of the external resources.

Unter Bezugnahme auf 4 wird im Folgenden eine Abwandlung des in 3 gezeigten Verfahrens erläutert. Insbesondere kann im Schritt S304 die erste Lade-Software eine Steuerungsanwendung von einer externen Ressource 118 oder dem nichtflüchtigen Speicher laden. Entsprechend können die ersten Konfigurationsdaten Daten aufweisen, um eine entsprechende Schnittstelle 116, mit der auf die die Steuerungsanwendung bereitstellende externe Ressourcen 118 zugegriffen werden kann, zu konfigurieren. Nachdem Laden der Steuerungsanwendung startet die erste Lade-Software die Steuerungsanwendung, welche bevorzugt auf der zweiten Prozessoreinheit 220 ausgeführt wird. Das Ausführen der Steuerungsanwendung ist in 4 durch den Schritt S420 dargestellt. Ferner wird die Ausführung der Steuerungsanwendung durch ein Beenden der ersten Lade-Software nicht beendet.With reference to 4 In the following, a modification of the in 3 shown procedure explained. In particular, in step S304, the first loading software may load a control application from an external resource 118 or the non-volatile memory. Correspondingly, the first configuration data can have data for configuring a corresponding interface 116 with which the external resources 118 providing the control application can be accessed. After the control application has been loaded, the first loading software starts the control application, which is preferably executed on the second processor unit 220 . Running the control application is in 4 represented by step S420. Furthermore, the execution of the control application is not ended by terminating the first loading software.

Die Steuerungsanwendung ist dazu ausgelegt, ein Fortsetzungssignal 432 basierend auf einen anwendungsspezifischen Kontext des IC 102/202 zu generieren. In Schritt S434 wartet der IC 102/202 nach der Ausführung der ersten Lade-Software auf das Fortsetzungssignal 432. Durch Generieren des Fortsetzungssignals 432 wird dem IC 102/202 signalisiert, die zweite Lade-Software auszuführen. Unter anwendungsspezifischen Kontext wird verstanden, dass der IC 102/202 derart betrieben wird, dass alle Konfigurationsregister des IC zugreifbar bzw. konfigurierbar sind. Beispielsweise ist es möglich, dass eine vollständige Konfiguration des IC 102/202 erst beim Vorliegen einer ausreichenden Spannungsversorgung durchführbar ist. Das Fortsetzungssignal 432 wird dementsprechend erst generiert, wenn die Steuerungsanwendung feststellt, dass eine ausreichende Spannungsversorgung des IC 102/202 gewährleistet ist.The control application is configured to generate a continue signal 432 based on an application specific context of the IC 102/202. In step S434, IC 102/202 waits for continue signal 432 after execution of the first loader software. By generating continue signal 432, IC 102/202 is signaled to execute the second loader software. Application-specific context means that the IC 102/202 is operated in such a way that all configuration registers of the IC are accessible or configurable. For example, it is possible that a complete configuration of the IC 102/202 can only be carried out when there is a sufficient voltage supply. The continue signal 432 becomes accordingly only generated when the control application determines that a sufficient power supply of the IC 102/202 is guaranteed.

Des Weiteren kann vorgesehen sein, dass nach dem Schritt S320 das Betriebssystem oder die Anwendung dritte Konfigurationsdaten von einer externen Ressourcen 118 lädt und den IC 102/202 gemäß den dritten Konfigurationsdaten konfiguriert. Vorteilhafterweise kann so nach dem Booten bzw. Starten des IC 102/202 eine anwendungsspezifische Konfiguration des IC 102/202 im laufenden Betrieb geändert werden.Furthermore, it can be provided that after step S320 the operating system or the application loads third configuration data from an external resource 118 and configures the IC 102/202 according to the third configuration data. Advantageously, an application-specific configuration of IC 102/202 can thus be changed during operation after booting or starting IC 102/202.

Unter Bezugnahme auf die 5 und 6 wird ein Verfahren zur Bereitstellung von Lade-Software und Konfigurationsdaten für den IC 102/202 näher erläutert. Das Verfahren beginnt in Schritt S500 mit dem Festlegen einer ersten Konfiguration des IC 102/202. Die erste Konfiguration entspricht einer Basiskonfiguration des IC 102/202. Basierend auf dieser ersten Konfiguration des IC 102/202 werden die ersten Konfigurationsdaten 502 festgelegt bzw. erstellt. Wie oben erwähnt, dienen die ersten Konfigurationsdaten 502 zur teilweisen Konfiguration des IC 102/202.Referring to the 5 and 6 a method for providing loading software and configuration data for the IC 102/202 is explained in more detail. The method begins in step S500 by determining a first configuration of the IC 102/202. The first configuration corresponds to a basic configuration of the IC 102/202. Based on this first configuration of the IC 102/202, the first configuration data 502 are defined or created. As mentioned above, the first configuration data 502 is used to partially configure the IC 102/202.

In den darauffolgenden Schritten S510 bis S514 wird die zuvor erwähnte erste Lade-Software erstellt. Dabei wird zunächst in Schritt S510 in einer geeigneten Entwicklungsumgebung ein Projekt für eine erste Lade-Software erstellt, die bei ihrer Ausführung den IC 102/202 entsprechend den ersten Konfigurationsdaten 502 konfigurieren soll. Ferner wird in einem weiteren Schritt S512 die erste Lade-Software dahingehend modifiziert, dass sie das Ausführen einer zweiten Lade-Software zulässt. In Schritt S514 wird ein Image der ersten Lade-Software erzeugt und bereitgestellt.In subsequent steps S510 to S514, the aforementioned first loading software is created. In step S510, a project for first loading software is first created in a suitable development environment, which is intended to configure IC 102/202 in accordance with first configuration data 502 when it is executed. Furthermore, in a further step S512, the first loading software is modified in such a way that it allows the execution of a second loading software. In step S514, an image of the first loading software is created and provided.

Des Weiteren wird in den Schritten S520 bis S524 die zuvor erwähnte zweite Lade-Software erstellt. Dabei wird in Schritt S520 in einer geeigneten Entwicklungsumgebung ein Projekt für eine zweite Lade-Software erstellt. In Schritt S522 wird die zweite Lade-Software derart modifiziert, dass die zweite Lade-Software den IC 102/202 entsprechend der oben erwähnten zweiten Konfigurationsdaten konfigurieren kann. Insbesondere wird die zweite Lade-Software modifiziert, sodass diese die zweiten Konfigurationsdaten von einem nicht flüchtigen Speicher oder einer externen Ressourcen 118 laden kann. Vorzugsweise kann die zweite Lade-Software derart modifiziert werden, um eine Auswahl anzubieten, die die Auswahl zweiter Konfigurationsdaten aus einer Vielzahl von zweiten Konfektionsdaten ermöglicht. Vorteilhafterweise kann somit eine anwendungsspezifische Konfiguration des IC 102/202 beim Starten bzw. Booten des IC 102/202 ausgewählt werden.Furthermore, in steps S520 to S524, the aforementioned second loading software is created. In step S520, a project for second loading software is created in a suitable development environment. In step S522, the second loader software is modified such that the second loader software can configure the IC 102/202 according to the second configuration data mentioned above. In particular, the second loading software is modified so that it can load the second configuration data from a non-volatile memory or an external resource 118 . Preferably, the second loading software can be modified in such a way as to offer a selection that enables the selection of second configuration data from a plurality of second confection data. An application-specific configuration of the IC 102/202 can thus advantageously be selected when the IC 102/202 is started or booted.

In Schritt S524 wird ein Image der zweiten Lade-Software erzeugt und bereitgestellt. Vorzugsweise wird das Image der ersten Lade-Software und der zweiten Lade-Software in Schritt S530 zu einem Boot Image 532 zusammengefügt, welches vorzugsweise auf dem nicht flüchtigen Speicher bereitgestellt wird, auf den mittels des ersten Speicherkontrollers 104 zugegriffen werden kann. Alternativ können die erste Lade Software und die zweite Lade Software auch getrennt voneinander zur Verfügung gestellt werden bzw. als separate Lade-Software in separaten Images zur Verfügung gestellt werden.In step S524, an image of the second loading software is created and provided. The image of the first loading software and the second loading software is preferably combined in step S530 into a boot image 532 which is preferably provided on the non-volatile memory which can be accessed by means of the first memory controller 104 . Alternatively, the first loading software and the second loading software can also be made available separately from one another or made available as separate loading software in separate images.

Unter Bezugnahme auf 6 wird das Erstellen der zweiten Konfigurationsdaten 630, gemäß derer der IC 102/202 von der zweiten Lade-Software konfiguriert wird, beschrieben. Zum Erstellen der zweiten Konfigurationsdaten 630 wird in einem Schritt S600 eine vollständige Konfiguration 602 des IC 102/202 erstellt. Die vollständige Konfiguration 602 entspricht dabei einer vollständigen anwendungsspezifischen Konfiguration des IC 102/202. In einem darauffolgenden Schritt S620 werden basierend auf der vollständigen Konfiguration 602 und den ersten Konfigurationsdaten 502 die zweiten Konfigurationsdaten 630 erstellt. Vereinfacht gesprochen ergänzen die zweiten Konfigurationsdaten 630 die ersten Konfigurationsdaten 502, um die vollständige Konfiguration 602 des IC 702/202 zu ermöglichen. Allerdings können die zweiten Konfigurationsdaten 630 die ersten Konfigurationsdaten 502 auch teilweise ersetzen, sodass die zweite Lade-Software eine bestehende Konfiguration des IC 102/202, welche durch die erste Lade-Software vorgenommen wurde, teilweise modifiziert.With reference to 6 the creation of the second configuration data 630, according to which the IC 102/202 is configured by the second loading software, is described. To create the second configuration data 630, a complete configuration 602 of the IC 102/202 is created in a step S600. In this case, the complete configuration 602 corresponds to a complete application-specific configuration of the IC 102/202. In a subsequent step S620, the second configuration data 630 is created based on the complete configuration 602 and the first configuration data 502. To put it simply, the second configuration data 630 supplement the first configuration data 502 in order to enable the complete configuration 602 of the IC 702/202. However, the second configuration data 630 can also partially replace the first configuration data 502, so that the second loading software partially modifies an existing configuration of the IC 102/202 that was carried out by the first loading software.

Die so erhaltenen zweiten Konfigurationsdaten werden auf der externen Ressource 118 bereitgestellt, sodass die zweite Lade-Software während ihrer Ausführung die zweiten Konfigurationsdaten von der externen Ressourcen 118 laden kann.The second configuration data obtained in this way is made available on the external resource 118, so that the second loading software can load the second configuration data from the external resource 118 during its execution.

Ferner kann im Schritt S610 ein Projekt für ein Betriebssystem oder Anwendung erstellt werden, welches die vollständige Konfiguration 602 berücksichtigt. Im Schritt S612 wird das Betriebssystem oder die Anwendung erstellt und anschließend auf einer externen Ressource 118 bereitgestellt, von der das Betriebssystem oder die Anwendung durch die zweite Lade-Software geladen werden kann. Furthermore, in step S610 a project for an operating system or application can be created, which takes the complete configuration 602 into account. In step S612 the operating system or application is created and then made available on an external resource 118 from which the operating system or application can be loaded by the second loading software.

Vorteilhafterweise erlauben die oben genannten Verfahren, den IC 102/202 während des Bootens in zwei Stufen zu konfigurieren, wobei in einer ersten Stufe eine Basiskonfiguration des IC 102/202 vorgenommen wird und in einer zweiten Stufe eine vollständige Konfiguration des IC 100 02/202 vorgenommen wird. Dadurch das die zweiten Konfigurationsdaten erst später von einer externen Ressource geladen werden, ist die Konfiguration besonders flexibel. Ferner bleibt die Basiskonfiguration des IC 102/202 gemäß der ersten Konfigurationsdaten unveränderte und ist bevorzugt in der ersten Lade-Software enthalten.The methods mentioned above advantageously allow the IC 102/202 to be configured in two stages during booting, with a basic configuration of the IC 102/202 being carried out in a first stage and a complete configuration of the IC 100 02/202 being carried out in a second stage becomes. As a result, the second configuration data only later from an external resources are loaded, the configuration is particularly flexible. Furthermore, the basic configuration of the IC 102/202 according to the first configuration data remains unchanged and is preferably included in the first loading software.

Insbesondere bei einer Vielzahl von eingesetzten ICs 102/202 bietet das vorgeschlagene Verfahren eine Möglichkeit, die ICs 102/202 einfach und flexibel zu konfigurieren. So können die zweiten Konfigurationsdaten einfach in einem Netzwerk bereitgestellt werden, und die ICs 102/202 können sich ihre jeweilige anwendungsspezifische Konfiguration beim Starten bzw. Booten aus dem Netzwerk laden. Somit sind die ICs 102/202 besonders einfach konfigurierbar bzw. wartbar.In particular when there are a large number of ICs 102/202 used, the proposed method offers a possibility of configuring the ICs 102/202 simply and flexibly. In this way, the second configuration data can easily be provided in a network, and the ICs 102/202 can load their respective application-specific configuration when starting or booting from the network. The ICs 102/202 are therefore particularly easy to configure and maintain.

BezugszeichenlisteReference List

102102
integrierte Schaltung (IC)integrated circuit (IC)
104104
erster Speicherkontrollerfirst memory controller
106106
zweiter Speicherkontrollersecond memory controller
108108
Kommunikationsstrukturcommunication structure
110110
erste Prozessoreinheitfirst processor unit
112112
programmierbare Logikeinheitprogrammable logic unit
114114
Schnittstellen/PeripherieelementeInterfaces/peripherals
116116
Netzwerkschnittstellenetwork interface
118118
externe Ressourcenexternal resources
122122
Plattform-Management-EinheitPlatform Management Unit
220220
zweite Prozessoreinheitsecond processor unit
432432
Fortsetzungssignalresume signal
502502
erste Konfigurationsdatenfirst configuration data
532532
Boot-Imageboot image
602602
vollständige Konfigurationfull configuration
630630
zweite Konfigurationsdatensecond configuration data

Claims (17)

Verfahren zum Konfigurieren einer integrierten Schaltung (102), insbesondere eines System-on-a-Chip (SoC) oder eines Multiprozessor-System-on-a-Chip (MPSoC), wobei das Verfahren folgende Schritte aufweist: - Ausführen einer ersten Lade-Software durch die integrierte Schaltung (102), wobei die erste Lade-Software basierend auf ersten Konfigurationsdaten (502) die integrierte Schaltung (102) teilweise konfiguriert, um eine zweite Lade-Software auf der integrierten Schaltung (102) auszuführen, und wobei mittels der ersten Konfigurationsdaten (502) eine Schnittstelle (116) der integrierten Schaltung (102) zur Kommunikation mit einer externen Ressource konfiguriert wird; - Ausführen der zweiten Lade-Software durch die integrierte Schaltung (102), wobei die zweite Lade-Software zweite Konfigurationsdaten (630), welche anwendungsspezifische Konfigurationsdaten der integrierten Schaltung (102) beinhaltet, über die Schnittstelle (116) von der externen Ressource lädt, und wobei die zweite Lade-Software basierend auf den zweiten Konfigurationsdaten (630) die integrierte Schaltung (102) konfiguriert; und - Ausführen eines Betriebssystems oder einer Anwendung auf der konfigurierten integrierten Schaltung (102).Method for configuring an integrated circuit (102), in particular a system-on-a-chip (SoC) or a multiprocessor system-on-a-chip (MPSoC), the method having the following steps: - the integrated circuit (102) executing a first loading software, the first loading software partially configuring the integrated circuit (102) based on first configuration data (502) in order to load a second loading software on the integrated circuit (102) to execute, and wherein an interface (116) of the integrated circuit (102) for communication with an external resource is configured by means of the first configuration data (502); - Execution of the second loading software by the integrated circuit (102), the second loading software loading second configuration data (630), which contains application-specific configuration data of the integrated circuit (102), via the interface (116) from the external resource, and wherein the second loader software configures the integrated circuit (102) based on the second configuration data (630); and - running an operating system or an application on the configured integrated circuit (102). Verfahren nach Anspruch 1, wobei die Schnittstelle (116) eine Netzwerkschnittstelle ist und die zweite Lade-Software die zweiten Konfigurationsdaten (630) über die Netzwerkschnittstelle von einer Netzwerkressource (118) lädt.procedure after claim 1 , wherein the interface (116) is a network interface and the second loading software loads the second configuration data (630) via the network interface from a network resource (118). Verfahren nach Anspruch 1 oder 2, wobei die integrierte Schaltung (102) eine programmierbare Logikeinheit (112) aufweist und das Verfahren ferner aufweist: - Laden eines Bitstroms durch die zweite Lade-Software, wobei der Bitstrom bevorzugt über die Schnittstelle (116) von der externen Ressource (118) geladen wird, und - Konfigurieren der programmierbaren Logikeinheit (112) basierend auf dem Bitstrom durch die zweite Lade-Software.procedure after claim 1 or 2 , wherein the integrated circuit (102) has a programmable logic unit (112) and the method further comprises: - loading a bit stream by the second loading software, the bit stream preferably being loaded via the interface (116) from the external resource (118). and - the second loading software configuring the programmable logic unit (112) based on the bit stream. Verfahren nach einem der vorangegangenen Ansprüche, weiter aufweisend: - Laden einer Steuerungsanwendung durch die erste Lade-Software; - Ausführen der Steuerungsanwendung auf einer Prozessoreinheit (220) der integrierten Schaltung (202); - Generieren eines Fortsetzungssignal (432) durch die Steuerungsanwendung basierend auf einen anwendungsspezifischen Kontext der integrierten Schaltung (202); - basierend auf dem Fortsetzungssignal (432), Starten des Ausführens der zweiten Lade-Software.Method according to one of the preceding claims, further comprising: - loading a control application by the first loading software; - executing the control application on a processor unit (220) of the integrated circuit (202); - generating a continuation signal (432) by the control application based on an application-specific context of the integrated circuit (202); - based on the continue signal (432), starting the execution of the second loading software. Verfahren nach Anspruch 4, wobei die Steuerungsanwendung das Fortsetzungssignal (432) erzeugt, nachdem bestimmte Konfigurationsregister der integrierten Schaltung (102) zugreifbar sind, wobei vorzugsweise die bestimmten Konfigurationsregister erst nach dem abgeschlossenen Ausführen der ersten Lade-Software zugreifbar sind.procedure after claim 4 wherein the controller application generates the continue signal (432) after certain configuration registers of the integrated circuit (102) are accessible, preferably wherein the certain configuration registers are only accessible after the first loading software has completed executing. Verfahren nach einem der vorangegangenen Ansprüche, weiter folgende Schritte aufweisend: - Laden eines Programm-Images durch die zweite Lade-Software, wobei das Laden bevorzugt über die Schnittstelle (116) von der externen Ressource erfolgt; - Laden von Programm-Image-Konfigurationsdaten durch die zweite Lade-Software, wobei das Laden bevorzugt über die Schnittstelle (116) von der externen Ressource (118) erfolgt; und - Ausführen und Konfigurieren eines Programms durch die zweite Lade-Software basierend auf dem Programm-Image und den Programm-Image-Konfigurationsdaten.Method according to one of the preceding claims, further comprising the steps of: - loading a program image by the second loading software, the loading preferably taking place via the interface (116) from the external resource; - Loading program image configuration data by the second loading software, the loading preferably occurring via the interface (116) from the external resource (118); and - executing and configuring a program by the second loader software based on the program image and the program image configuration data. Verfahren nach einem der vorangegangenen Ansprüche, wobei die erste Lade-Software die ersten Konfigurationsdaten beinhaltet (502); und/oder wobei die erste Lade-Software auf einer externen Ressource, bevorzugt einem nichtflüchtigen Speicher, gespeichert ist; und/oder wobei die zweite Lade-Software auf einer externen Ressource (118), bevorzugt einem nichtflüchtigen Speicher, gespeichert ist.A method according to any one of the preceding claims, wherein the first loading software includes the first configuration data (502); and or wherein the first loading software is stored on an external resource, preferably non-volatile memory; and or wherein the second loading software is stored on an external resource (118), preferably non-volatile memory. Verfahren nach einem der vorangegangenen Ansprüche, wobei die erste Lade-Software ein First-Stage-Bootloader ist und/oder die zweite Lade-Software ein Second-Stage-Bootloader ist.Method according to one of the preceding claims, wherein the first loading software is a first stage boot loader and/or the second loading software is a second stage boot loader. Verfahren nach einem der vorangegangenen Ansprüche, wobei die ersten Konfigurationsdaten (502) und die zweiten Konfigurationsdaten (630) zusammen eine vollständige anwendungsspezifische Konfiguration der integrierten Schaltung (102) darstellen, und wobei bevorzugt durch Konfigurieren der integrierten Schaltung (102) gemäß der zweiten Konfigurationsdaten (630), die Konfiguration der integrierten Schaltung (102) gemäß der ersten Konfigurationsdaten (502) teilweise modifiziert wird.Method according to one of the preceding claims, wherein the first configuration data (502) and the second configuration data (630) together represent a complete application-specific configuration of the integrated circuit (102), and wherein preferably by configuring the integrated circuit (102) according to the second configuration data ( 630), the configuration of the integrated circuit (102) is partially modified according to the first configuration data (502). Verfahren nach einem der vorangegangenen Ansprüche, wobei die ersten Konfigurationsdaten (502) maschinenausführbaren Code aufweisen und wobei vorzugsweise die erste Lade-Software die ersten Konfigurationsdaten (502) beinhaltet; und/oder wobei die zweiten Konfigurationsdaten (630) Konfigurationsparameter zum Konfigurieren der integrierten Schaltung (102) aufweisen.A method according to any one of the preceding claims, wherein the first configuration data (502) comprises machine executable code and wherein preferably the first loader software includes the first configuration data (502); and/or wherein the second configuration data (630) comprises configuration parameters for configuring the integrated circuit (102). Verfahren nach einem der vorangegangenen Ansprüche, wobei die ersten Konfigurationsdaten (502) Daten aufweisen, um durch das Ausführen der ersten Lade-Software mindestens eins von: - einen ersten Speicherkontroller (104) der integrierten Schaltung (102) zur Kommunikation mit einem nichtflüchtigen Speicher, - einen zweiten Speicherkontroller (106) der integrierten Schaltung (102) zur Kommunikation mit einem flüchtigen Speicher, und - eine Taktung für Teile der integrierten Schaltung (102) zu konfigurieren.The method of any preceding claim, wherein the first configuration data (502) includes data for executing at least one of: - a first memory controller (104) of the integrated circuit (102) for communication with a non-volatile memory, - a second memory controller (106) of the integrated circuit (102) for communication with a volatile memory, and - configure clocking for parts of the integrated circuit (102). Verfahren nach einem der vorangegangenen Ansprüche, wobei die zweiten Konfigurationsdaten (630) Daten aufweisen, um durch das Ausführen der zweiten Lade-Software mindestens eins von: - weitere Schnittstellen (116) der integrierten Schaltung (102), - eine Schnittstelle zwischen einer Prozessoreinheit (110, 210) und einer programmierbaren Logikeinheit (112) der integrierten Schaltung (102), und - eine vollständige Taktung der integrierten Schaltung (102) zu konfigurieren.The method of any preceding claim, wherein the second configuration data (630) includes data for executing at least one of: - further interfaces (116) of the integrated circuit (102), - an interface between a processor unit (110, 210) and a programmable logic unit (112) of the integrated circuit (102), and - configure a complete clocking of the integrated circuit (102). Verfahren nach einem der vorangegangenen Ansprüche, weiter aufweisend: - Laden von dritten Konfigurationsdaten durch das Betriebssystem oder die Anwendung; - Konfigurieren der integrierten Schaltung (102) gemäß der dritten Konfigurationsdaten durch das Betriebssystem oder die Anwendung.Method according to one of the preceding claims, further comprising: - loading of third configuration data by the operating system or the application; - configuring the integrated circuit (102) according to the third configuration data by the operating system or the application. Integrierte Schaltung (102), insbesondere ein System-on-a-Chip (SoC) oder ein Multiprozessor-System-on-a-Chip (MPSoC), aufweisend: eine erste Prozessoreinheit (110), und eine Schnittstelle (116) zur Kommunikation der integrierten Schaltung (102) mit einer externen Ressource (118), wobei die erste Prozessoreinheit (110) dazu ausgelegt ist: - eine erste Lade-Software auszuführen, wobei die erste Lade-Software basierend auf ersten Konfigurationsdaten (502) die integrierte Schaltung (102) teilweise konfiguriert, um eine zweite Lade-Software auszuführen, und wobei die erste Lade-Software basierend auf den ersten Konfigurationsdaten (502) die Schnittstelle (116) zur Kommunikation mit der externen Ressource (118) konfiguriert; - die zweite Lade-Software auszuführen, wobei die zweite Lade-Software zweite Konfigurationsdaten (630), welche anwendungsspezifische Konfigurationsdaten der integrierten Schaltung (102) beinhaltet, über die Schnittstelle (116) von der externen Ressource (118) lädt, und wobei die zweite Lade-Software die integrierte Schaltung (102) basierend auf den zweiten Konfigurationsdaten konfiguriert; und - ein Betriebssystem oder eine Anwendung auf der konfigurierten integrierten Schaltung (102) auszuführen.Integrated circuit (102), in particular a system-on-a-chip (SoC) or a multiprocessor system-on-a-chip (MPSoC), having: a first processor unit (110), and an interface (116) for the integrated circuit (102) to communicate with an external resource (118), the first processor unit (110) being designed to: - executing first loading software, wherein the first loading software partially configures the integrated circuit (102) to execute second loading software based on first configuration data (502), and wherein the first loading software is based on the first configuration data (502) configures the interface (116) to communicate with the external resource (118); - execute the second loading software, wherein the second loading software loads second configuration data (630), which contains application-specific configuration data of the integrated circuit (102), via the interface (116) from the external resource (118), and wherein the second loading software configures the integrated circuit (102) based on the second configuration data; and - run an operating system or an application on the configured integrated circuit (102). Verfahren zur Bereitstellung von Lade-Software und Konfigurationsdaten für eine integrierte Schaltung (102), insbesondere für ein System-on-a-Chip (SoC) oder ein Multiprozessor-System-on-a-Chip (MPSoC), wobei das Verfahren folgende Schritte aufweist: - Festlegen erster Konfigurationsdaten (502) zur teilweisen Konfiguration der integrierten Schaltung, wobei mittels der ersten Konfigurationsdaten (502) eine Schnittstelle (116) der integrierten Schaltung (102) zur Kommunikation mit einer externen Ressource (118) konfigurierbar ist; - Festlegen zweiter Konfigurationsdaten (630) zur anwendungsspezifischen Konfiguration der integrierten Schaltung (102); - Erstellen einer ersten Lade-Software der integrierten Schaltung (102), wobei die erste Lade-Software Anweisungen beinhaltet, um die integrierte Schaltung (102) basierend auf den ersten Konfigurationsdaten (502) zu konfigurieren; und - Erstellen einer zweiten Lade-Software der integrierten Schaltung (102), wobei die zweite Lade-Software Anweisungen enthält, um die zweiten Konfigurationsdaten (630) über die Schnittstelle (116) von der externen Ressource (118) zu laden und die integrierte Schaltung (102) basierend auf den zweiten Konfigurationsdaten (630) zu konfigurieren.Method for providing loading software and configuration data for an integrated circuit (102), in particular for a system-on-a-chip (SoC) or a multiprocessor system-on-a-chip (MPSoC), the method having the following steps has: - determining first configuration data (502) for the partial configuration of the integrated circuit, an interface (116) of the integrated circuit (102) for communication with an external resource (118) being configurable by means of the first configuration data (502); - Specifying second configuration data (630) for the application-specific configuration of the integrated circuit (102); - creating first loading software for the integrated circuit (102), the first loading software including instructions for configuring the integrated circuit (102) based on the first configuration data (502); and - creating a second loading software of the integrated circuit (102), the second loading software containing instructions for loading the second configuration data (630) via the interface (116) from the external resource (118) and the integrated circuit (102) based on the second configuration data (630). Verfahren nach Anspruch 15, weiter aufweisend: - Bereitstellen der zweiten Konfigurationsdaten (630) an der externen Ressource (118).procedure after claim 15 , further comprising: - providing the second configuration data (630) at the external resource (118). Verfahren nach Anspruch 15 oder 16, weiter aufweisend: - Festlegen einer vollständigen anwendungsspezifischen Konfiguration der integrierten Schaltung, und wobei das Festlegen der zweiten Konfigurationsdaten (630) basierend auf der vollständigen anwendungsspezifischen Konfiguration und den ersten Konfigurationsdaten (502) erfolgt.procedure after claim 15 or 16 , further comprising: - defining a complete application-specific configuration of the integrated circuit, and wherein the second configuration data (630) is defined based on the complete application-specific configuration and the first configuration data (502).
DE102021002937.2A 2021-06-08 2021-06-08 Method of configuring an integrated circuit, method of providing loading software for an integrated circuit, and integrated circuit Pending DE102021002937A1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
DE102021002937.2A DE102021002937A1 (en) 2021-06-08 2021-06-08 Method of configuring an integrated circuit, method of providing loading software for an integrated circuit, and integrated circuit

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
DE102021002937.2A DE102021002937A1 (en) 2021-06-08 2021-06-08 Method of configuring an integrated circuit, method of providing loading software for an integrated circuit, and integrated circuit

Publications (1)

Publication Number Publication Date
DE102021002937A1 true DE102021002937A1 (en) 2022-12-08

Family

ID=84102141

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102021002937.2A Pending DE102021002937A1 (en) 2021-06-08 2021-06-08 Method of configuring an integrated circuit, method of providing loading software for an integrated circuit, and integrated circuit

Country Status (1)

Country Link
DE (1) DE102021002937A1 (en)

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2017062479A1 (en) 2015-10-06 2017-04-13 Xilinx, Inc. Multistage boot image loading and configuration of programmable logic devices

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2017062479A1 (en) 2015-10-06 2017-04-13 Xilinx, Inc. Multistage boot image loading and configuration of programmable logic devices

Similar Documents

Publication Publication Date Title
DE102006047979B4 (en) A data processing system, method and computer program product for executing a test routine in conjunction with an operating system
DE69627814T2 (en) SYSTEM FOR PROVIDING A BIOS FOR THE MAIN COMPUTER
DE60005563T2 (en) COMPUTER SYSTEM INITIALIZATION THROUGH URLADE CODE STORED IN A MEMORY WITH SEQUENTIAL ACCESS
DE10003108B4 (en) Method and computer system for performing a software installation
DE102007012448B4 (en) A chipset-independent method for locally updating and configuring a system BIOS
EP3128383B1 (en) Field device
EP1818819A1 (en) Method for organising the software of a fluid management system
DE102015217933B4 (en) Device for processing data and method for operating such a device
DE102012100738A1 (en) Method for configuring a BIOS in a computer system and computer program product
DE112009002207T5 (en) Upgrading a firmware with multiple processors
DE112006003504T5 (en) Detection of cache disassociation
DE102021002937A1 (en) Method of configuring an integrated circuit, method of providing loading software for an integrated circuit, and integrated circuit
DE112020002785T5 (en) PROCESSES FOR A CONTAINER-BASED VIRTUALIZATION SYSTEM
DE112013007676T5 (en) information device
DE102004013493B4 (en) Access method for a NAND flash memory device and a corresponding NAND flash memory device
DE60226276T2 (en) METHOD AND ARRANGEMENT FOR MODIFYING THE CONTENT OF A CORRECTION IDENTIFICATION REGISTER
DE102007038543B4 (en) Companion chip for use in a motor controller
EP2596429B1 (en) Method for executing a utility program, computer system and computer program product
DE10050604A1 (en) Process for starting a data processing system and associated components
DE102004006767A1 (en) Method and device for transporting data sections by means of a DMA controller
EP2329374A1 (en) Test module and method for testing an o/r imaging middleware
DE102018132543A1 (en) SYSTEM AND METHOD FOR MANAGING SYSTEM MEMORY INTEGRITY IN SUSPENDED ELECTRONIC CONTROL DEVICES
DE102019215807A1 (en) Procedure for updating firmware on an embedded system
DE19924610B4 (en) Setup procedures
DE102006004599A1 (en) Terminal and method for updating program code of a terminal

Legal Events

Date Code Title Description
R012 Request for examination validly filed
R079 Amendment of ipc main class

Free format text: PREVIOUS MAIN CLASS: G06F0009445000

Ipc: G06F0009440100

R016 Response to examination communication