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 PDFInfo
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/30—Circuit design
- G06F30/34—Circuit design for reconfigurable circuits, e.g. field programmable gate arrays [FPGA] or programmable logic devices [PLD]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2115/00—Details relating to the type of the circuit
- G06F2115/02—System on chip [SoC] design
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2117/00—Details relating to the type or aim of the circuit design
- G06F2117/08—HW-SW co-design, e.g. HW-SW partitioning
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/4401—Bootstrapping
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.
- - 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.
- - 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.
- - 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.
- - 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.
- - 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.
- - 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.
- - 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.
- 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.
- - 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.
- - 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.
- - 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 und6 ein Verfahren zur Bereitstellung von Lade-Software für einen IC.
-
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 and6 a method of providing loading software for an IC.
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
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
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
Des Weiteren kann der IC 102 eine Plattform-Management-Einheit 122 aufweisen, welche IC-bezogene Verwaltungsaufgaben wahrnimmt.Furthermore, the
Unter Bezugnahme auf
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
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
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
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
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
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
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
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
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
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
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
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
Unter Bezugnahme auf
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
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
Unter Bezugnahme auf die
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
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
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
Unter Bezugnahme auf
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
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
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
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
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)
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)
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 |
-
2021
- 2021-06-08 DE DE102021002937.2A patent/DE102021002937A1/en active Pending
Patent Citations (1)
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 |