Electronic device for booting communication processor, operation method thereof, and storage medium
The communication processor secure boot module in electronic devices securely differentiates between process and user firmware, ensuring authorized operations by initializing shared memory areas, thereby preventing unauthorized function execution.
Patent Information
- Authority / Receiving Office
- WO · WO
- Patent Type
- Applications
- Current Assignee / Owner
- Filing Date
- 2025-09-02
- Publication Date
- 2026-03-05
AI Technical Summary
Existing electronic devices lack a secure and efficient mechanism to differentiate between process firmware for manufacturing testing and user firmware for consumer use, leading to potential unauthorized function execution by communication processors.
Implementing a communication processor secure boot module that verifies firmware type and initializes shared memory areas to ensure only authorized firmware operations are performed, preventing unauthorized function execution.
Ensures secure and controlled booting of communication processors by distinguishing between process and user firmware, preventing unauthorized function execution and maintaining device security.
Smart Images

Figure KR2025013434_05032026_PF_FP_ABST
Abstract
Description
Electronic device for booting a communication processor, its operating method and storage medium
[0001] The present disclosure relates to an electronic device for booting a communication processor, a method of operating the same, and a storage medium.
[0002] Mobile communication devices, such as smartphones, include an application processor (AP) and a communication processor (CP) to perform various functions. The application processor can execute an operating system, execute applications, and / or control components included in the electronic device. The communication processor controls communication-related components, enabling network connections, network protocol processing, and / or data transmission / reception.
[0003] When an electronic device is powered on, the application processor may be booted first. The application processor may perform booting using, for example, an application processor boot loader. The application processor boot loader may load the firmware of the electronic device and initialize hardware resources. Meanwhile, a communication processor secure boot module may be used to ensure the security of the communication processor. The communication processor secure boot module may be operated by the application processor or by the communication processor.
[0004] The application processor boot loader may include a communication processor secure boot module to manage the secure boot procedure of the communication processor. The communication processor secure boot module may be integrated into the application processor boot loader, for example, or implemented as a standalone module. For example, the communication processor secure boot module may perform signature verification. The communication processor secure boot module may verify the digital signature of the communication processor's firmware to ensure that the firmware is genuine and produced by the correct manufacturer. Accordingly, the communication processor can be protected from malicious code or tampered firmware. The communication processor secure boot module may be implemented as a module such as a little kernel or an exception level 3 (EL3), or may be included in the communication processor's own model.
[0005] The above information may be provided as background information to aid in understanding this document. None of the above is claimed to be prior art related to this document or can be used to determine prior art.
[0006] The electronic device may include an application processor and a communication processor.
[0007] The application processor may be configured to determine the type of firmware used by the communication processor before or after booting, based on determining a boot command of the communication processor.
[0008] Here, the type of the firmware can be identified as either process firmware for functional testing and / or calibration of the communication processor or user firmware for performing the function of the communication processor.
[0009] The application processor may be configured to store the type of the identified firmware in an area of the memory of the electronic device shared by the communication processor and the application processor.
[0010] The application processor may be configured to provide the boot command to the communication processor.
[0011] The communication processor may be configured to determine whether an area of the memory storing at least one parameter indicating whether at least one function supported by the communication processor is permitted is initialized based on verification of a boot command provided from the application processor.
[0012] The communication processor may be configured to perform at least one operation for booting in response to the boot command based on the type of the firmware being identified as the process firmware by referencing an area shared by the communication processor and the application processor based on the area in which the at least one parameter is stored being confirmed to be initialized.
[0013] The communication processor may be configured to refrain from performing at least one operation for booting based on the type of the firmware being identified as the user firmware by referencing an area shared by the communication processor and the application processor, based on the area where the at least one parameter is stored being confirmed to be initialized. Accordingly, extraction of at least a portion of the at least one initialized parameter may be prevented.
[0014] A method of operating an electronic device may include an operation of checking, by an application processor of the electronic device, a type of firmware used by the communication processor before or after booting based on checking a booting command of the communication processor of the electronic device.
[0015] Here, the type of the firmware can be identified as either process firmware for functional testing and / or calibration of the communication processor or user firmware for performing the function of the communication processor.
[0016] The method of operating the electronic device may include an operation of storing, by the application processor of the electronic device, the type of the identified firmware in an area of the memory of the electronic device shared by the communication processor and the application processor.
[0017] The method of operating the electronic device may include an operation of providing the booting command to the communication processor by the application processor of the electronic device.
[0018] The method of operating the electronic device may include an operation of checking, by the communication processor, whether an area in which at least one parameter indicating whether at least one function supported by the communication processor of the memory is allowed is initialized based on checking a boot command provided from the application processor.
[0019] The method of operating the electronic device may include performing at least one operation for booting in response to the booting command based on the type of the firmware being identified as the process firmware by referencing an area shared by the communication processor and the application processor based on the communication processor confirming that the area where the at least one parameter is stored has been initialized, or refraining from performing at least one operation for booting based on the type of the firmware being confirmed as the user firmware. Accordingly, extraction of at least a portion of the at least one initialized parameter may be prevented.
[0020] A storage medium may be provided that stores computer-readable instructions, which, when executed, cause the electronic device to perform at least one operation.
[0021] The at least one operation may include an operation of checking, by an application processor of the electronic device, a type of firmware used by the communication processor before or after booting based on checking a boot command of the communication processor of the electronic device.
[0022] Here, the type of the firmware can be identified as either process firmware for functional testing and / or calibration of the communication processor or user firmware for performing the function of the communication processor.
[0023] The at least one operation may include an operation of storing, by the application processor of the electronic device, the type of the identified firmware in an area of the memory of the electronic device shared by the communication processor and the application processor.
[0024] The at least one operation may include providing the boot command to the communication processor by the application processor of the electronic device.
[0025] The at least one operation may include an operation of determining, by the communication processor, whether an area of the memory storing at least one parameter indicating whether at least one function supported by the communication processor is permitted is initialized based on determining, by the communication processor, a boot command provided from the application processor.
[0026] The at least one operation may include performing at least one operation for booting in response to the boot command based on the type of the firmware being identified as the process firmware by referencing an area shared by the communication processor and the application processor based on the area in which the at least one parameter is stored being confirmed to be initialized by the communication processor, or refraining from performing the at least one operation for booting based on the type of the firmware being confirmed as the user firmware. Accordingly, extraction of at least a portion of the at least one initialized parameter may be prevented.
[0027] The electronic device may include an application processor and a communication processor.
[0028] The application processor may be configured to determine the type of firmware used by the communication processor before or after booting, based on the determination of the boot command of the communication processor.
[0029] Here, the type of the firmware can be identified as either process firmware for functional testing and / or calibration of the communication processor or user firmware for performing the function of the communication processor.
[0030] The application processor may be configured to store the type of the identified firmware in an area of the memory of the electronic device shared by the communication processor and the application processor.
[0031] The application processor may be configured to provide the boot command to the communication processor.
[0032] The communication processor may be configured to determine whether an area of the memory storing at least one parameter indicating whether at least one function supported by the communication processor is permitted is initialized based on verification of a boot command provided from the application processor.
[0033] The communication processor may be configured to perform at least one operation for booting in response to the boot command based on the type of the firmware being identified as the process firmware by referencing an area shared by the communication processor and the application processor based on the area in which the at least one parameter is stored being confirmed to be initialized.
[0034] The communication processor may be configured to perform at least one operation for booting based on the type of the firmware being identified as the user firmware by referencing an area shared by the communication processor and the application processor based on the area where the at least one parameter is stored being confirmed to be initialized, and to restrict at least a portion of the functions of the communication processor after booting. Accordingly, modification of at least a portion of the at least one parameter initialized accordingly may be prevented.
[0035] A method of operating an electronic device may include an operation of checking, by an application processor of the electronic device, a type of firmware used by the communication processor after booting based on checking a boot command of the communication processor of the electronic device.
[0036] Here, the type of the firmware can be identified as either process firmware for functional testing and / or calibration of the communication processor or user firmware for performing the function of the communication processor.
[0037] The method of operating the electronic device may include an operation of storing, by the application processor of the electronic device, the type of the identified firmware in an area of the memory of the electronic device shared by the communication processor and the application processor.
[0038] The method of operating the electronic device may include an operation of providing the booting command to the communication processor by the application processor of the electronic device.
[0039] The method of operating the electronic device may include an operation of checking, by the communication processor, whether an area in which at least one parameter indicating whether at least one function supported by the communication processor of the memory is allowed is initialized based on checking a boot command provided from the application processor.
[0040] The method of operating the electronic device may include performing at least one operation for booting in response to the booting command based on the type of the firmware being identified as the process firmware by referring to an area shared by the communication processor and the application processor based on the communication processor confirming that the area where the at least one parameter is stored has been initialized, or performing at least one operation for booting based on the type of the firmware being confirmed as the user firmware, and limiting at least a part of the functions of the communication processor after booting. Accordingly, modification of at least a part of the at least one initialized parameter may be prevented.
[0041] A storage medium may be provided that stores computer-readable instructions, which, when executed, cause the electronic device to perform at least one operation.
[0042] The at least one operation may include an operation of checking, by an application processor of the electronic device, a type of firmware used by the communication processor after booting based on checking a boot command of the communication processor of the electronic device.
[0043] Here, the type of the firmware can be identified as either process firmware for functional testing and / or calibration of the communication processor or user firmware for performing the function of the communication processor.
[0044] The at least one operation may include an operation of storing, by the application processor of the electronic device, the type of the identified firmware in an area of the memory of the electronic device shared by the communication processor and the application processor.
[0045] The at least one operation may include providing the boot command to the communication processor by the application processor of the electronic device.
[0046] The at least one operation may include an operation of determining, by the communication processor, whether an area of the memory storing at least one parameter indicating whether at least one function supported by the communication processor is permitted is initialized based on determining, by the communication processor, a boot command provided from the application processor.
[0047] The at least one operation may include performing at least one operation for booting in response to the booting command based on the type of the firmware being identified as the process firmware by referencing an area shared by the communication processor and the application processor based on the communication processor confirming that the area where the at least one parameter is stored has been initialized, or performing at least one operation for booting based on the type of the firmware being confirmed as the user firmware, and limiting at least a part of the functions of the communication processor after booting. Accordingly, modification of at least a part of the at least one initialized parameter may be prevented.
[0048] FIG. 1 is a block diagram of an electronic device within a network environment, according to one embodiment.
[0049] FIG. 2A is a drawing for explaining an electronic device according to one embodiment.
[0050] Figure 2b is a drawing for explaining a comparative example for comparison with one embodiment.
[0051] Figure 2c is a drawing for explaining data stored in memory according to a comparative example.
[0052] FIG. 3A is a drawing for explaining an operation method of an electronic device according to one embodiment.
[0053] FIG. 3b is a drawing for explaining an operation method of an electronic device according to one embodiment.
[0054] FIG. 4A is a drawing for explaining an operation method of an electronic device according to one embodiment.
[0055] FIG. 4b is a drawing for explaining an operation method of an electronic device according to one embodiment.
[0056] FIG. 4c is a drawing for explaining an operation method of an electronic device according to one embodiment.
[0057] FIG. 5 is a drawing for explaining an operating method of an electronic device according to one embodiment.
[0058] FIG. 6 is a drawing for explaining an operating method of an electronic device according to one embodiment.
[0059] FIG. 7 is a drawing for explaining an operating method of an electronic device according to one embodiment.
[0060] FIG. 8 is a drawing for explaining an operating method of an electronic device according to one embodiment.
[0061] Hereinafter, embodiments of the present disclosure will be described in detail with reference to the drawings so that those skilled in the art can easily implement the present disclosure. However, the present disclosure may be implemented in various different forms and is not limited to the embodiments described herein. In connection with the description of the drawings, the same or similar reference numerals may be used for identical or similar components. Furthermore, in the drawings and related descriptions, descriptions of well-known functions and configurations may be omitted for clarity and conciseness.
[0062] FIG. 1 is a block diagram of an electronic device (101) within a network environment (100) according to various embodiments. Referring to FIG. 1, in the network environment (100), the electronic device (101) may communicate with the electronic device (102) via a first network (198) (e.g., a short-range wireless communication network), or may communicate with the electronic device (104) or a server (108) via a second network (199) (e.g., a long-range wireless communication network). In one embodiment, the electronic device (101) may communicate with the electronic device (104) via the server (108). According to one embodiment, the electronic device (101) may include a processor (120), a memory (130), an input module (150), an audio output module (155), a display module (160), an audio module (170), a sensor module (176), an interface (177), a connection terminal (178), a haptic module (179), a camera module (180), a power management module (188), a battery (189), a communication module (190), a subscriber identification module (196), or an antenna module (197). In some embodiments, the electronic device (101) may omit at least one of these components (e.g., the connection terminal (178)), or may have one or more other components added. In some embodiments, some of these components (e.g., the sensor module (176), the camera module (180), or the antenna module (197)) may be integrated into one component (e.g., the display module (160)).
[0063] The processor (120) may, for example, execute software (e.g., a program (140)) to control at least one other component (e.g., a hardware or software component) of the electronic device (101) connected to the processor (120) and perform various data processing or operations. According to one embodiment, as at least a part of the data processing or operations, the processor (120) may store commands or data received from other components (e.g., a sensor module (176) or a communication module (190)) in a volatile memory (132), process the commands or data stored in the volatile memory (132), and store result data in a non-volatile memory (134). According to one embodiment, the processor (120) may include a main processor (121) (e.g., a central processing unit or an application processor) or an auxiliary processor (123) (e.g., a graphics processing unit, a neural processing unit (NPU), an image signal processor, a sensor hub processor, or a communication processor) that can operate independently or together with the main processor (121). For example, when the electronic device (101) includes the main processor (121) and the auxiliary processor (123), the auxiliary processor (123) may be configured to use less power than the main processor (121) or to be specialized for a given function. The auxiliary processor (123) may be implemented separately from the main processor (121) or as a part thereof.
[0064] The auxiliary processor (123) may control at least a portion of functions or states associated with at least one component (e.g., a display module (160), a sensor module (176), or a communication module (190)) of the electronic device (101), for example, on behalf of the main processor (121) while the main processor (121) is in an inactive (e.g., sleep) state, or together with the main processor (121) while the main processor (121) is in an active (e.g., application execution) state. In one embodiment, the auxiliary processor (123) (e.g., an image signal processor or a communication processor) may be implemented as a part of another functionally related component (e.g., a camera module (180) or a communication module (190)). In one embodiment, the auxiliary processor (123) (e.g., a neural network processing unit) may include a hardware structure specialized for processing artificial intelligence models. The artificial intelligence models may be generated through machine learning. This learning can be performed, for example, in the electronic device (101) itself where artificial intelligence is performed, or can be performed through a separate server (e.g., server (108)). The learning algorithm can include, for example, supervised learning, unsupervised learning, semi-supervised learning, or reinforcement learning, but is not limited to the examples described above. The artificial intelligence model can include multiple artificial neural network layers.The artificial neural network may be one of a deep neural network (DNN), a convolutional neural network (CNN), a recurrent neural network (RNN), a restricted Boltzmann machine (RBM), a deep belief network (DBN), a bidirectional recurrent deep neural network (BRDNN), a deep Q-network, or a combination of two or more of the above, but is not limited to the examples described above. In addition to, or alternatively to, a hardware structure, an artificial intelligence model may include a software structure.
[0065] The memory (130) can store various data used by at least one component (e.g., processor (120) or sensor module (176)) of the electronic device (101). The data can include, for example, software (e.g., program (140)) and input data or output data for commands related thereto. The memory (130) can include volatile memory (132) or non-volatile memory (134).
[0066] The program (140) may be stored as software in the memory (130) and may include, for example, an operating system (142), middleware (144), or an application (146).
[0067] The input module (150) can receive commands or data to be used in a component of the electronic device (101) (e.g., a processor (120)) from an external source (e.g., a user) of the electronic device (101). The input module (150) can include, for example, a microphone, a mouse, a keyboard, a key (e.g., a button), or a digital pen (e.g., a stylus pen).
[0068] The audio output module (155) can output audio signals to the outside of the electronic device (101). The audio output module (155) can include, for example, a speaker or a receiver. The speaker can be used for general purposes, such as multimedia playback or recording playback. The receiver can be used to receive incoming calls. In one embodiment, the receiver can be implemented separately from the speaker or as part of the speaker.
[0069] The display module (160) can visually provide information to an external party (e.g., a user) of the electronic device (101). The display module (160) may include, for example, a display, a holographic device, or a projector and a control circuit for controlling the device. According to one embodiment, the display module (160) may include a touch sensor configured to detect a touch, or a pressure sensor configured to measure the intensity of a force generated by the touch.
[0070] The audio module (170) can convert sound into an electrical signal, or vice versa, convert an electrical signal into sound. According to one embodiment, the audio module (170) can acquire sound through the input module (150), output sound through the sound output module (155), or an external electronic device (e.g., electronic device (102)) (e.g., speaker or headphone) directly or wirelessly connected to the electronic device (101).
[0071] The sensor module (176) can detect the operating status (e.g., power or temperature) of the electronic device (101) or the external environmental status (e.g., user status) and generate an electrical signal or data value corresponding to the detected status. According to one embodiment, the sensor module (176) can include, for example, a gesture sensor, a gyro sensor, a barometric pressure sensor, a magnetic sensor, an acceleration sensor, a grip sensor, a proximity sensor, a color sensor, an IR (infrared) sensor, a biometric sensor, a temperature sensor, a humidity sensor, or an illuminance sensor.
[0072] The interface (177) may support one or more designated protocols that may be used to directly or wirelessly connect the electronic device (101) with an external electronic device (e.g., the electronic device (102)). In one embodiment, the interface (177) may include, for example, a high definition multimedia interface (HDMI), a universal serial bus (USB) interface, an SD card interface, or an audio interface.
[0073] The connection terminal (178) may include a connector through which the electronic device (101) may be physically connected to an external electronic device (e.g., electronic device (102)). According to one embodiment, the connection terminal (178) may include, for example, an HDMI connector, a USB connector, an SD card connector, or an audio connector (e.g., a headphone connector).
[0074] The haptic module (179) can convert electrical signals into mechanical stimuli (e.g., vibration or movement) or electrical stimuli that a user can perceive through tactile or kinesthetic sensations. According to one embodiment, the haptic module (179) can include, for example, a motor, a piezoelectric element, or an electrical stimulation device.
[0075] The camera module (180) can capture still images and videos. According to one embodiment, the camera module (180) may include one or more lenses, image sensors, image signal processors, or flashes.
[0076] The power management module (188) can manage power supplied to the electronic device (101). According to one embodiment, the power management module (188) can be implemented as, for example, at least a part of a power management integrated circuit (PMIC).
[0077] A battery (189) may power at least one component of the electronic device (101). In one embodiment, the battery (189) may include, for example, a non-rechargeable primary battery, a rechargeable secondary battery, or a fuel cell.
[0078] The communication module (190) may support the establishment of a direct (e.g., wired) communication channel or a wireless communication channel between the electronic device (101) and an external electronic device (e.g., electronic device (102), electronic device (104), or server (108)), and the performance of communication through the established communication channel. The communication module (190) may operate independently from the processor (120) (e.g., application processor) and may include one or more communication processors that support direct (e.g., wired) communication or wireless communication. According to one embodiment, the communication module (190) may include a wireless communication module (192) (e.g., a cellular communication module, a short-range wireless communication module, or a global navigation satellite system (GNSS) communication module) or a wired communication module (194) (e.g., a local area network (LAN) communication module, or a power line communication module). Any of these communication modules may communicate with an external electronic device (104) via a first network (198) (e.g., a short-range communication network such as Bluetooth, wireless fidelity (WiFi) direct, or infrared data association (IrDA)) or a second network (199) (e.g., a long-range communication network such as a legacy cellular network, a 5G network, a next-generation communication network, the Internet, or a computer network (e.g., a LAN or WAN)). These various types of communication modules may be integrated into a single component (e.g., a single chip) or implemented as multiple separate components (e.g., multiple chips). The wireless communication module (192) may use subscriber information (e.g., an international mobile subscriber identity (IMSI)) stored in the subscriber identification module (196) to verify or authenticate the electronic device (101) within a communication network such as the first network (198) or the second network (199).
[0079] The wireless communication module (192) can support 5G networks and next-generation communication technologies following the 4G network, such as NR access technology (new radio access technology). The NR access technology can support high-speed transmission of high-capacity data (eMBB (enhanced mobile broadband)), minimization of terminal power and connection of multiple terminals (mMTC (massive machine type communications)), or high reliability and low latency (URLLC (ultra-reliable and low-latency communications)). The wireless communication module (192) can support, for example, a high-frequency band (e.g., mmWave band) to achieve a high data transmission rate. The wireless communication module (192) can support various technologies for securing performance in a high-frequency band, such as beamforming, massive multiple-input and multiple-output (MIMO), full dimensional MIMO (FD-MIMO), array antenna, analog beam-forming, or large scale antenna. The wireless communication module (192) can support various requirements specified in the electronic device (101), an external electronic device (e.g., the electronic device (104)), or a network system (e.g., the second network (199)). According to one embodiment, the wireless communication module (192) can support a peak data rate (e.g., 20 Gbps or more) for eMBB realization, a loss coverage (e.g., 164 dB or less) for mMTC realization, or a U-plane latency (e.g., 0.5 ms or less for downlink (DL) and uplink (UL), or 1 ms or less for round trip) for URLLC realization.
[0080] The antenna module (197) can transmit or receive signals or power to or from an external device (e.g., an external electronic device). In one embodiment, the antenna module (197) may include an antenna including a radiator formed of a conductor or a conductive pattern formed on a substrate (e.g., a PCB). In one embodiment, the antenna module (197) may include a plurality of antennas (e.g., an array antenna). In this case, at least one antenna suitable for a communication method used in a communication network, such as the first network (198) or the second network (199), may be selected from the plurality of antennas, for example, by the communication module (190). A signal or power may be transmitted or received between the communication module (190) and an external electronic device via the at least one selected antenna. In some embodiments, in addition to the radiator, another component (e.g., a radio frequency integrated circuit (RFIC)) may be additionally formed as a part of the antenna module (197).
[0081] According to various embodiments, the antenna module (197) may form a mmWave antenna module. In one embodiment, the mmWave antenna module may include a printed circuit board, an RFIC disposed on or adjacent a first side (e.g., a bottom side) of the printed circuit board and capable of supporting a designated high-frequency band (e.g., a mmWave band), and a plurality of antennas (e.g., an array antenna) disposed on or adjacent a second side (e.g., a top side or a side side) of the printed circuit board and capable of transmitting or receiving signals in the designated high-frequency band.
[0082] At least some of the above components can be interconnected and exchange signals (e.g., commands or data) with each other via a communication method between peripheral devices (e.g., a bus, GPIO (general purpose input and output), SPI (serial peripheral interface), or MIPI (mobile industry processor interface)).
[0083] According to one embodiment, commands or data may be transmitted or received between the electronic device (101) and an external electronic device (104) via a server (108) connected to a second network (199). Each of the external electronic devices (102 or 104) may be the same or a different type of device as the electronic device (101). According to one embodiment, all or part of the operations executed in the electronic device (101) may be executed in one or more of the external electronic devices (102, 104, or 108). For example, when the electronic device (101) is to perform a certain function or service automatically or in response to a request from a user or another device, the electronic device (101) may, instead of or in addition to executing the function or service itself, request one or more external electronic devices to perform the function or at least a part of the service. One or more external electronic devices that receive the request may execute at least a portion of the requested function or service, or an additional function or service related to the request, and transmit the result of the execution to the electronic device (101). The electronic device (101) may process the result as is or additionally and provide it as at least a portion of a response to the request. For this purpose, cloud computing, distributed computing, mobile edge computing (MEC), or client-server computing technology may be used, for example. The electronic device (101) may provide an ultra-low latency service by using distributed computing or mobile edge computing, for example. In another embodiment, the external electronic device (104) may include an Internet of Things (IoT) device. The server (108) may be an intelligent server utilizing machine learning and / or a neural network. According to one embodiment, the external electronic device (104) or the server (108) may be included in the second network (199).The electronic device (101) can be applied to intelligent services (e.g., smart home, smart city, smart car, or healthcare) based on 5G communication technology and IoT-related technology.
[0084] FIG. 2A is a drawing for explaining an electronic device according to one embodiment.
[0085] According to one embodiment, the electronic device (101) may include an application processor (210), a communication processor (220), and / or a memory (230). The memory (230) may be accessible by the application processor (210) and the communication processor (220). The memory (230) may be referred to as shared memory, but is not limited thereto. For example, the memory (230) may include an area (240) accessible to the communication processor (220). This may be expressed as a portion of the memory (230) being allocated for the communication processor (220), but is not limited thereto. The memory (230) may be a common memory accessible to the application processor (210) and the communication processor (220), and data may be transmitted / received by either of the two processors (210, 220) storing data of a shared target in the memory (230) and the other processor reading the data. Meanwhile, this is an example, and those skilled in the art will understand that the application processor (210) and the communication processor (220) may also transmit / receive data through a wired interface.
[0086] The communication processor (220) may operate using firmware. Firmware is software that controls and manages hardware (e.g., the communication processor (220)) and enables it to perform basic functions. Firmware may act as a relay between hardware and software, and / or may support the communication between the operating system and application software and the hardware. Firmware may typically be provided by the manufacturer, and when the function of the communication processor (220) changes or a security issue occurs, the function may be improved or the issue resolved through a firmware update. Firmware types may include process firmware and user firmware. Meanwhile, firmware may also be expressed in binary format and may be referred to as binary or binary firmware depending on the implementation.
[0087] Process firmware (or, may be referred to as process binary) may be firmware used to check and optimize the function of hardware during the manufacturing process stage of the electronic device (101) or the communication processor (220). The process firmware may support the function of allowing the communication processor (220) to undergo various tests on the production line, optimize performance, and check whether the hardware is operating normally before the device is delivered to the consumer. For example, the communication processor (220) may optimize the network connection quality by adjusting and / or calibrating the RF (radio frequency) frequency through the process firmware. The calibrated value may be stored in the first area (241), which is a non-volatile (NV) area. The first area (241) (hereinafter, may be used interchangeably with the NV area) may be a memory area that can continuously store data even when the power is turned off. The first area (241) may be used to store, for example, the setting values of the communication processor (220), calibration data, unique identification information (e.g., IMSI or IMEI), and network connection information. The setting values of the communication processor (220) stored in the first area (241) may store, for example, parameters related to whether a function is permitted (which may be referred to as lock-related parameters). The above-described information is set during the production process of hardware (e.g., the communication processor (220)) and may be managed by the process firmware. The process firmware may operate in factory mode, and during the factory mode, functions required in the process stage may be kept activated. The functions in the process stage may be designed to be inactive in the general user firmware and inaccessible to consumers, but there are no restrictions. Such security restrictions are set by the manufacturer to allow the process firmware to be used only in factory mode, and are provided in the form of a security signature.This security signature allows the process firmware to be restricted to operate only in process mode even after the hardware (e.g., communication processor (220)) is delivered to the consumer.
[0088] User firmware (or may be referred to as user binary) may be firmware that supports normal operation of the electronic device (101) after it is delivered to the end consumer. Unlike process firmware, user firmware may ensure normal use of hardware (e.g., communication processor (220)) in a consumer environment and support smooth communication between the operating system and applications with the hardware. For example, the user firmware of the communication processor (220) may support functions for managing functions and maintaining the stability of network connections. For example, the user firmware may support functions for connecting to a network. For example, the user firmware may support functions for processing communication data. For example, the user firmware may support functions related to authentication during network connections. For example, the user firmware may support functions for performing operations related to parameters associated with communication, for example, parameters stored in the first region (241), which is an NV region, by referencing the parameters. For example, based on the user firmware, a parameter indicating whether a specific function is allowed or restricted may be referenced to determine whether to perform the function. For example, when the performance of a specific function is requested, if the parameter stored in the first region (241), which is an NV region, is confirmed as a value indicating permission, the communication processor (220) may perform the function. For example, when the performance of a specific function is requested, if the parameter stored in the first region (241), which is an NV region, is confirmed as a value indicating disallowance, the communication processor (220) may refrain from performing the function.
[0089] The application processor (210) may perform booting upon power-on of the electronic device (101). For example, the AP bootrom may be executed (or operated) by the application processor (210), and the application processor boot loader may be executed based on the AP bootrom. The application processor boot loader may be a software program that supports the function of loading and executing an operating system and / or firmware after the power is turned on. The application processor boot loader may be code that is executed after the application processor BootROM completes initial hardware setup and verification, and may support the function of the application processor (210) executing an operating system or other software. The application processor boot loader loads an image file of the operating system and / or firmware into the memory (230) and enables execution thereof. Accordingly, the execution of the operating system and / or kernel may be prepared.
[0090] After the kernel of the application processor is executed, the booting of the communication processor (220) can be supported. Accordingly, the booting of the communication processor (220) can be initiated and / or performed. For example, a communication processor secure boot module can be used for the booting of the communication processor (220). The communication processor secure boot module can support the booting of the communication processor (220) with guaranteed security. For example, the communication processor secure boot module can support a function for firmware integrity verification and / or a function for secure booting, but there is no limitation. In one example, the communication processor secure boot module can be included in the application processor boot loader. In one example, the communication processor secure boot module can be included in the kernel of the application processor. In one example, the communication processor secure boot module can also be implemented as software independent from the application processor boot loader. In this case, the communication processor security boot module may be executed by the application processor (210) or may be executed by the communication processor (220), and those skilled in the art will understand that there is no limitation on the execution entity.
[0091] When the application processor (210) commands the booting of the communication processor (220), the application processor (210) can store information about the type of firmware to be executed in the second area (242) of the memory (240). The second area (242) is, for example, an area accessible to both the application processor (210) and the communication processor (220), and may be referred to as a shared area. For example, for the operation of the process firmware, the application processor (210) can store a value representing the process firmware in the second area (242). The communication processor (220) can confirm that the firmware to be executed after booting is the process firmware by checking the value representing the process firmware stored in the second area (242). The communication processor (220) can confirm that the firmware to be executed after booting is the user firmware by checking the value representing the user firmware stored in the second area (242).
[0092] When a boot command is received, the communication processor (220) can check whether the first area (241), which is an NV area (e.g., an area where actual data is stored and / or an area for backup), has been initialized. If the first area (241), which is an NV area, has not been initialized, the communication processor (220) can perform a procedure for booting. If the first area (241), which is an NV area, has been initialized, the communication processor (220) can check the type of firmware to be executed after booting by referring to the second area (242) before or during the booting procedure. If the type of firmware to be executed after booting is process firmware, the communication processor (220) can perform a procedure for booting. If the type of firmware to be executed after booting is user firmware, the communication processor (220) can restrict the procedure for booting. For example, the communication processor (220) can refrain from performing a procedure for booting. Alternatively, the communication processor (220) may perform booting, but may restrict (or disable) the execution of certain functions at or after the booting time. The situation to be prevented by determining whether the initialization has been performed as described above and / or by progressing and / or restricting the booting of the communication processor (220) according to the type of firmware will be described with reference to FIG. 2B.
[0093] Fig. 2b is a drawing for explaining a comparative example for comparison with one embodiment. Fig. 2b will be explained with reference to Fig. 2c. Fig. 2c is a drawing for explaining data stored in a memory according to the comparative example.
[0094] The electronic device (101) can back up the area where the parameters are stored in operation 241. For example, the electronic device (101) can back up the area where the parameters indicating whether a function is permitted are stored in the first area (241), which is the NV area of the memory (240) in FIG. 2A. For example, as in the first state (260) in FIG. 2C, at least one parameter (261, 262, 263) can be stored in the first area (241), which is the NV area. If the parameter (263) indicating whether the function is not permitted is “XXXXX,” the electronic device (101) can back up the data where the parameter indicating whether the function is permitted is expressed as “XXXXX.” The electronic device (101) can initialize the area where the parameters are stored in operation 243. For example, the electronic device (101) can initialize the first area (241), which is the NV area of the memory (240) in FIG. 2A. Accordingly, as in the second state (270) in FIG. 2C, the initialized data (271, 273) can be stored to replace the existing data (261, 263). In some cases, there may be data (262) that is not changed by the initialization. After the initialization is performed, the parameter (273) indicating whether the function is allowed or not can be set to a default value. The default value can be, for example, “YYYYY” indicating the function is allowed. The electronic device (101) can extract the initialized first parameter (273), for example, “YYYYY” indicating the function is allowed, which is a default value, in operation 245. The electronic device (101) can store the backed up data in the initialized NV area in operation 247. Accordingly, data whose parameter indicating whether the backed-up function is allowed or not can be stored in the NV area as “XXXXX”.The electronic device (101), in operation 249, may overwrite the initialized first parameter (273) among the stored data, for example, “YYYYY”, with the backed up data, as in the third state (280) of FIG. 2c. Accordingly, only the first parameter (273) among the backed up data may be changed from the existing “XXXXX” to “YYYYY”. Since “YYYYY” is a value indicating permission of a function, the electronic device (101), in operation 251, may perform an operation based on the initialized first parameter. According to a comparative example, the electronic device (101) may change the first parameter (273) from “XXXXX”, which disallows a function, to “YYYYY”, which allows a function, thereby enabling the performance of an unauthorized function. A method for preventing the performance of such an unauthorized function will be described with reference to the embodiments described below.
[0095] FIG. 3a is a drawing for explaining an operation method of an electronic device according to one embodiment.
[0096] According to one embodiment, the application processor (210) may, in operation 301, confirm a boot command (or boot request) of the communication processor (220). In operation 303, the application processor (210) may, based on the confirmation of the boot command (or boot request), confirm the type of firmware to be used before or after booting the communication processor (220). For example, the application processor (210) may confirm the type of firmware to be used after booting the communication processor (220) as either process firmware or user firmware, but this is exemplary and there is no limitation on the firmware type. For example, when inspection and / or calibration of the communication processor (220) is requested during the manufacturing stage, the manufacturer (or inspection personnel) may control the communication processor (220) to use process firmware, in which case the application processor (210) may confirm the type of firmware to be used after booting the communication processor (220) as process firmware. For example, when general use is requested, the application processor (210) can identify the firmware type used after booting the communication processor (220) as user firmware.
[0097] The application processor (210) may store the firmware type in an area accessible by the communication processor (220) of the memory (230) in operation 305 (e.g., the second area (242) of FIG. 2A). For example, the area accessible by the communication processor (220) of the memory (230) in operation 305 (e.g., the second area (242) of FIG. 2A) may be referred to as a shared area, which allows storage and / or read-out of data by the application processor (210) and / or the communication processor (220). The application processor (210) may store information about the firmware type identified in operation 303 in an area accessible by the communication processor (220) of the memory (230) in operation 305 (e.g., the second area (242) of FIG. 2A). Accordingly, for example, either data representing process firmware or data representing user firmware may be stored in an area accessible by the communication processor (220) of the memory (230) (e.g., the second area (242) of FIG. 2A). The application processor (210) may store information about the firmware type in an area accessible by the communication processor (220) of the memory (230) (e.g., the second area (242) of FIG. 2A) based on the communication processor secure boot module. The communication processor secure boot module may be included in, for example, the application processor boot loader, the application processor kernel, or may be implemented independently from the application processor boot loader. The application processor (210) may provide a boot command to the communication processor (220) at operation 307. For example, the application processor (210) may provide a boot command to the communication processor (220) based on the communication processor secure boot module, but this is temporary and has no limitations.
[0098] The communication processor (220) can, in operation 309, check the boot command provided from the application processor (210). In operation 311, the communication processor (220) can check whether an area (e.g., the first area (241), which is an NV area in FIG. 2A) in which at least one parameter indicating whether at least one function supported by the communication processor (220) is allowed is stored has been initialized. For example, at least one parameter for performing a function of the communication processor (220) may be stored as data for use and data for backup. In this case, the communication processor (220) can, in operation 311, check whether the data storage area for use and the area for backup of the area (e.g., the first area (241), which is an NV area in FIG. 2A) in which at least one parameter for performing a function of the communication processor (220) is stored have been initialized, but there is no limitation thereto. For example, the communication processor (220) may check whether initialization has been performed by referring to a checksum and / or a hash value for data integrity additionally stored in the corresponding area (e.g., the first area (241), which is the NV area in FIG. 2A). For example, the communication processor (220) may check whether initialization has been performed by checking an initialization flag (or, a marker, an initialization value, and / or a magic code) value. However, the above-described method for checking whether initialization has been performed is exemplary and is not limited thereto.
[0099] If the communication processor (220) determines that the area where the parameters are stored (e.g., the first area (241), which is the NV area in FIG. 2A) is not initialized (Operation 311 - No), the communication processor (220) may perform at least one operation for booting in Operation 313. In this case, regardless of the type of firmware to be used after booting, the communication processor (220) may perform booting. Accordingly, if the area where the parameters are stored (e.g., the first area (241), which is the NV area in FIG. 2A) is not initialized, the communication processor (220) may operate by executing process firmware or user firmware after performing booting.
[0100] If the communication processor (220) determines that the area where the parameters are stored (e.g., the first area (241) which is the NV area in FIG. 2A) has been initialized (operation 311 - Yes), the communication processor (220) can, in operation 315, determine whether the firmware type is process firmware. If the firmware type is process firmware (operation 315 - Yes), the communication processor (220) can perform booting in operation 317. Accordingly, if the area where the parameters are stored (e.g., the first area (241) which is the NV area in FIG. 2A) has been initialized, but the firmware to be executed after booting is process firmware, the communication processor (220) can operate by executing the process firmware after performing the booting. The process firmware can be allowed to be executed only by the subject for manufacturing and / or repair and / or only during the manufacturing and / or repair stage, and thus its use is restricted in cases other than the electronic device (101). Accordingly, When process firmware is used, booting in the initialization state may be permitted, but a situation such as that in FIG. 2C may be prevented. If the firmware type is user firmware (operation 315 - No), the communication processor (220) may restrict booting in operation 319. For example, the communication processor (220) may refrain from performing at least one operation for booting. Accordingly, if the area where parameters are stored (e.g., the first area (241), which is the NV area in FIG. 2A) has been initialized, and the firmware to be executed after booting is user firmware, booting of the communication processor (220) may be restricted.
[0101] For example, in 2b, in operation 243, after the area where the parameters are stored (e.g., the first area (241) which is the NV area in FIG. 2a) is initialized, in operation 245, the initialized first parameter (273) is extracted. However, as in FIG. 3a, in a state where the area where the parameters are stored (e.g., the first area (241) which is the NV area in FIG. 2a) is initialized, the booting of the communication processor (220) is restricted, and thus, extraction of data, i.e., the first parameter (273), may not be permitted. Accordingly, situations such as those in FIGS. 2b and 2c can be prevented.
[0102] FIG. 3B is a diagram for explaining an operating method of an electronic device according to one embodiment. Operations 301 to 317 in FIG. 3B have been described in FIG. 3A, and therefore, the description thereof will not be repeated here.
[0103] According to one embodiment, when the firmware type is user firmware (operation 315 - No), the communication processor (220) may perform booting in operation 321 and then restrict at least some functions. Here, at least some functions may be, for example, a write function for the first area (241) which is an NV area. As in the third state (280) of FIG. 2C, writing of the extracted first parameter (273) for the first state (260) may need to be prevented. Accordingly, when the firmware to be used is user firmware, a situation like FIG. 2C can be prevented by restricting the write function for the first area (241) which is an NV area. Here, at least some functions may be, for example, data extraction from the first area (241) which is an NV area. In the case where the firmware to be used is user firmware, extraction of the first parameter (273) can be prevented by restricting extraction of data stored in the first area (241), which is an NV area. In addition, for example, connection or registration to a commercial network of the communication processor may be disabled, data transmission and reception may be blocked, call functions may be restricted, SMS transmission and reception may be restricted, VOLTE call functions may be restricted, VoNR functions may be restricted, use based on a specific RAT may be permitted for a specific function, use for a specific band may be restricted, and / or the IMEI of the communication processor may be removed, which are exemplary.
[0104] FIG. 4a is a drawing for explaining an operation method of an electronic device according to one embodiment.
[0105] According to one embodiment, the application processor (210) may execute an application processor boot loader in operation 401. The application processor boot loader may be a module for booting the application processor, but is not limited thereto. The application processor boot loader may verify the validity of LK (little kernel) and / or EL3 (exception level 3). The LK and / or EL3 may be modules capable of checking a communication processor secure boot module. The communication processor secure boot module may be a module for verifying whether firmware for the communication processor (220) was manufactured by a manufacturer. In the example of FIG. 4A, the communication processor secure boot module may be implemented independently from the application processor boot loader. The application processor (210) may execute a communication processor secure boot module (e.g., LK and / or EL3) by executing a CP boot module for booting the communication processor in operation 403. A CP boot module may exist, for example, within the application processor kernel, or may be implemented as a communication processor booting daemon (CBD), but is not limited thereto.
[0106] Since the communication processor secure boot module is implemented independently from the application processor boot loader, the application processor (210) can execute the communication processor secure boot module by executing the CBD, but there is no limitation. The CBD may be a software module or daemon that manages and / or adjusts the booting of the communication processor (220). The application processor (210) may, in operation 405, provide information about the firmware type through the communication processor secure boot module (e.g., LK and / or EL3). Since the information about the firmware type is provided through the communication processor secure boot module (e.g., LK and / or EL3), the security of the information about the firmware type can be ensured. Meanwhile, the communication processor secure boot module (e.g., LK and / or EL3) may also perform signature verification on the firmware.
[0107] FIG. 4b is a drawing for explaining an operation method of an electronic device according to one embodiment.
[0108] According to one embodiment, the application processor (210) may execute an application processor boot loader at operation 411. The application processor (210) may execute an application processor communication processor secure boot module at operation 413. In the example of FIG. 4B, the communication processor secure boot module may be implemented to be included in the application processor boot loader. As the application processor (210) executes the application processor boot loader, the communication processor secure boot module included in the application processor boot loader may also be executed together. The application processor (210) may provide information about the firmware type through the communication processor secure boot module (e.g., LK and / or EL3) at operation 415. For example, the communication processor secure boot module may provide information about the firmware type generated during the firmware build to the communication processor (220). Since information about the firmware type is provided through the communication processor secure boot module (e.g., LK and / or EL3), the security of information about the firmware type can be ensured.
[0109] FIG. 4c is a drawing for explaining an operation method of an electronic device according to one embodiment.
[0110] According to one embodiment, the communication processor (220) may execute a communication processor secure boot module in operation 421. The communication processor secure boot module may be implemented to be executed not only by the application processor (210) as described above, but also by the communication processor (220). The communication processor (220) may also verify the firmware type through the communication processor secure boot module in operation 423. As described above, there is no limitation on the entity executing the communication processor secure boot module.
[0111] FIG. 5 is a drawing for explaining an operation method of an electronic device according to one embodiment.
[0112] According to one embodiment, the communication processor (220) may, in operation 501, check the booting command of the communication processor (220). In operation 503, the communication processor (220) may check the firmware type to be used before or after booting the communication processor (220). For example, the communication processor (220) may check the firmware type to be used after booting by checking the value stored in a shared area (e.g., the second area (242) of FIG. 2A) that is an area accessible to both the application processor (210) and the communication processor (220). As described above, the firmware type to be used after booting may be set to, for example, either process firmware or user firmware, but is not limited thereto. The firmware type may be provided to, and / or checked by, the communication processor (220) based on, for example, a communication processor secure boot module such as LK and / or EL3, but is not limited thereto.
[0113] In operation 505, the communication processor (220) can check whether an area (e.g., the first area (241), which is an NV area of FIG. 2A) in which at least one parameter indicating whether at least one function supported by the communication processor (220) is stored is initialized. If it is not confirmed that the area in which at least one parameter is stored is initialized (operation 505-No), the communication processor (220) can perform booting in operation 507. In this case, the communication processor (220) can perform booting regardless of the type of firmware. Accordingly, if it is not confirmed that the area in which at least one parameter is stored is initialized (e.g., the first area (241), which is an NV area of FIG. 2A), the communication processor (220) can perform booting and then execute either the process firmware or the user firmware.
[0114] If it is confirmed that an area where at least one parameter is stored (e.g., the first area (241) which is the NV area of FIG. 2A) is initialized (Operation 505 - Yes), the communication processor (220) can, in operation 509, check whether the type of firmware is process firmware. If the type of firmware is process firmware (Operation 509 - Yes), the communication processor (220) can, in operation 511, perform booting. Once the booting is complete, the communication processor (220) can execute the process firmware. If the type of firmware is user firmware rather than process firmware (Operation 509 - No), the communication processor (220) can restrict the booting in operation 513. For example, the communication processor (220) can refrain from performing at least one operation for performing booting. Meanwhile, as described with reference to FIG. 3b, those skilled in the art will understand that the limitation of booting performance may be replaced by a limitation of post-booting functionality.
[0115] FIG. 6 is a drawing for explaining an operation method of an electronic device according to one embodiment.
[0116] According to one embodiment, the communication processor (220) can check the booting command of the communication processor (220) in operation 601. The communication processor (220) can check the firmware type to be used before or after booting the communication processor (220) in operation 603. For example, the communication processor (220) can check the firmware type to be used after booting by checking a value stored in a shared area (e.g., the second area (242) of FIG. 2A) that is an area accessible to both the application processor (210) and the communication processor (220), but there is no limitation.
[0117] In operation 605, the communication processor (220) may check whether at least one parameter indicating whether at least one function supported by the communication processor (220) stored in the first area (241), which is the NV area of FIG. 2A, is allowed or not has an initialized value. For example, the parameter indicating whether the function is not allowed may be “XXXXX”, and the parameter indicating whether the function is allowed may be “YYYYY”. For example, the default value after initialization is performed may be “YYYYY” for the parameter indicating whether the function is allowed or not. The communication processor (220) may check whether, for example, the parameter indicating whether the function is allowed or not has an initialized value, and the parameter indicating whether the function is allowed or not has an initialized value (operation 605 - No), the communication processor (220) may perform booting in operation 607. In this case, the communication processor (220) can perform booting regardless of the type of firmware. Accordingly, if the communication processor (220) determines that an area where at least one parameter is stored (e.g., the first area (241), which is the NV area of FIG. 2A) is not initialized, the communication processor (220) can perform booting and then execute either the process firmware or the user firmware.
[0118] If at least one parameter indicating whether at least one function is allowed is an initialized value (operation 605 - Yes), the communication processor (220) can, in operation 609, check whether the type of firmware is process firmware. If the type of firmware is process firmware (operation 609 - Yes), the communication processor (220) can, in operation 611, perform booting. When the booting is complete, the communication processor (220) can execute the process firmware. If the type of firmware is user firmware and not process firmware (operation 609 - No), the communication processor (220) can restrict the booting in operation 613. For example, the communication processor (220) can refrain from performing at least one operation for performing booting.
[0119] FIG. 7 is a drawing for explaining an operation method of an electronic device according to one embodiment.
[0120] According to one embodiment, the communication processor (220) may, in operation 701, check the booting command of the communication processor (220). In operation 703, the communication processor (220) may check the firmware type to be used before or after booting the communication processor (220). For example, the communication processor (220) may check the firmware type to be used after booting by checking a value stored in a shared area (e.g., the second area (242) of FIG. 2A) that is an area accessible to both the application processor (210) and the communication processor (220), but there is no limitation. In operation 705, the communication processor (220) may check whether an area (e.g., the first area (241) which is an NV area of FIG. 2A) in which at least one parameter indicating whether at least one function supported by the communication processor (220) is allowed is initialized.
[0121] If it is not confirmed that the area where at least one parameter is stored (for example, the first area (241) which is the NV area of FIG. 2A) is initialized (operation 705 - No), the communication processor (220) may perform booting in operation 707 and thereafter provide the usage environment of the communication processor (220) as a first environment. Here, the first environment may mean an environment in which the functions supported by the execution of the firmware of the communication processor (220) are not restricted, but there is no limitation. Accordingly, if it is not confirmed that the area where at least one parameter is stored (for example, the first area (241) which is the NV area of FIG. 2A) is initialized, the communication processor (220) may perform booting and thereafter execute either the process firmware or the user firmware, and may operate without functional restrictions.
[0122] If it is confirmed that an area where at least one parameter is stored (e.g., the first area (241) which is the NV area of FIG. 2A) is initialized (Operation 705 - Yes), the communication processor (220) can, in operation 709, check whether the type of firmware is process firmware. If the type of firmware is process firmware (Operation 709 - Yes), the communication processor (220) can, in operation 711, perform booting and thereafter provide the usage environment of the communication processor (220) as the first environment. Accordingly, the communication processor (220) can execute the process firmware without functional limitations. If the type of firmware is user firmware rather than process firmware (Operation 709 - No), the communication processor (220) can, in operation 713, perform booting and thereafter provide the usage environment of the communication processor (220) as the second environment. Here, the second environment may refer to an environment in which, for example, some of the functions performed by the user firmware are restricted. The restricted function may be, for example, a write function for the first region (241), which is an NV region. As in the third state (280) of Fig. 2c, writing of the extracted first parameter (273) for the first state (260) may need to be prevented. Accordingly, when the firmware to be used is user firmware, a situation like Fig. 2c can be prevented by restricting the write function for the first region (241), which is an NV region.
[0123] Additionally, the communication processor's access to or registration with the commercial network may be disabled, data transmission and reception may be blocked, call functions may be restricted, SMS transmission and reception may be restricted, VOLTE call functions may be restricted, VoNR functions may be restricted, use of certain functions may be restricted to certain RATs, use of certain bands may be restricted, and / or the IMEI of the communication processor may be removed, for example.
[0124] FIG. 8 is a drawing for explaining an operation method of an electronic device according to one embodiment.
[0125] According to one embodiment, the electronic device (101) may, in operation 801, check for an initialization command for an area where at least one parameter is stored (e.g., the first area (241), which is an NV area of FIG. 2A). For example, after booting the communication processor (220), the electronic device (101) may check for an initialization command for an area where at least one parameter is stored (e.g., the first area (241), which is an NV area of FIG. 2A). Once the initialization command is checked, the electronic device (101) may, in operation 803, check for a firmware type that the communication processor (220) is executing. In operation 805, the electronic device (101) may check for whether the firmware type that the communication processor (220) is executing is a process firmware. If the type of firmware being executed is process firmware (Action 805 - Yes), the electronic device (101) may, in operation 807, perform initialization for an area where at least one parameter is stored (e.g., the first area (241) which is an NV area of FIG. 2a). Process firmware may be allowed to be executed only by the subject for manufacturing and / or repair and / or only during the manufacturing and / or repair stage, and thus its use is restricted in cases other than the electronic device (101). Accordingly, when process firmware is used, initialization may be permitted, but a situation such as that in FIG. 2c may be prevented. If the type of firmware being executed is user firmware and not process firmware (Action 805 - No), the electronic device (101) may, in operation 809, restrict initialization for an area where at least one parameter is stored (e.g., the first area (241) which is an NV area of FIG. 2a). For example, initialization to the second state (270) in Fig. 2c must be performed before subsequent extraction of parameters (273) can be possible.According to the embodiment of FIG. 8, when user firmware is used, the transition to the second state (270) in FIG. 2c due to initialization can be prevented, so that a situation like FIG. 2c can be prevented.
[0126] The electronic device (101) may include an application processor (210) and a communication processor (220).
[0127] The application processor (210) may be configured to check the type of firmware used by the communication processor (220) after booting, based on checking the boot command of the communication processor (220).
[0128] Here, the type of the firmware can be identified as either process firmware for function testing and / or calibration of the communication processor (220) or user firmware for performing the function of the communication processor (220).
[0129] The application processor (210) may be set to store the type of the confirmed firmware in an area (242) shared by the communication processor (220) and the application processor (210) among the memory (230) of the electronic device (101).
[0130] The application processor (210) may be configured to provide the booting command to the communication processor (220).
[0131] The communication processor (220) may be configured to check whether an area (241) in which at least one parameter indicating whether at least one function supported by the communication processor (220) of the memory (230) is allowed is initialized based on checking a boot command provided from the application processor (210).
[0132] The communication processor (220) may be configured to perform at least one operation for booting in response to the booting command based on the type of the firmware being confirmed as the process firmware by referencing the area (242) shared by the communication processor (220) and the application processor (210) based on the area (241) where the at least one parameter is stored being confirmed to be initialized.
[0133] The communication processor (220) may be configured to refrain from performing at least one operation for booting based on the type of the firmware being confirmed as the user firmware by referencing the area (242) shared by the communication processor (220) and the application processor (210) based on the confirmation that the area (241) where the at least one parameter is stored has been initialized. Accordingly, extraction of at least a portion of the at least one initialized parameter may be prevented.
[0134] The application processor (210) may be configured to execute a communication processor (220) secure boot module as at least part of an operation of storing the type of the identified firmware in an area (242) shared by the communication processor (220) and the application processor (210) among the memory (230), and to use the communication processor (220) secure boot module to store the type of the firmware in an area (242) shared by the communication processor (220) and the application processor (210) among the memory (230).
[0135] The application processor (210) may be configured to execute the communication processor (220) secure boot module included in the application processor (210) boot loader by executing the application processor (210) boot loader as at least part of the operation of executing the communication processor (220) secure boot module.
[0136] The application processor (210) may be configured to execute an application processor (210) boot loader as at least a part of an operation of storing the type of the firmware in an area (242) shared by the communication processor (220) and the application processor (210) among the memory (230), and to store the type of the firmware identified by the application processor (210) boot loader in an area (242) shared by the communication processor (220) and the application processor (210) among the memory (230) through the communication processor (220) secure boot module.
[0137] The communication processor (220) may be configured to check the type of firmware being executed based on receiving an initialization command for an area (241) in which at least one parameter indicating whether at least one function supported by the communication processor (220) is allowed is stored.
[0138] The communication processor (220) may be set to perform initialization on an area (241) in which at least one parameter indicating whether at least one function supported by the communication processor (220) is permitted is stored, based on whether the type of the firmware being executed is the process firmware.
[0139] The communication processor (220) may be configured to check the type of firmware being executed based on receiving an initialization command for an area (241) in which at least one parameter indicating whether at least one function supported by the communication processor (220) is allowed is stored.
[0140] The above communication processor (220) may be set to refrain from performing initialization corresponding to the initialization command based on the type of the firmware being executed being the user firmware.
[0141] The communication processor (220) may be configured to check the type of firmware being executed based on receiving an initialization command for an area (241) in which at least one parameter indicating whether at least one function supported by the communication processor (220) is allowed is stored.
[0142] The communication processor (220) may be configured to perform at least one operation for the initialization command based on additional authority being verified based on the type of the firmware being executed being the user firmware.
[0143] The method of operating an electronic device (101) may include an operation of checking the type of firmware used by the communication processor (220) after booting based on checking a booting command of the communication processor (220) of the electronic device (101) by the application processor (210) of the electronic device (101).
[0144] Here, the type of the firmware can be identified as either process firmware for function testing and / or calibration of the communication processor (220) or user firmware for performing the function of the communication processor (220).
[0145] The operating method of the electronic device (101) may include an operation of storing the type of the identified firmware in an area (242) shared by the communication processor (220) and the application processor (210) among the memory (230) of the electronic device (101), by the application processor (210) of the electronic device (101).
[0146] The operating method of the electronic device (101) may include an operation of providing the booting command to the communication processor (220) by the application processor (210) of the electronic device (101).
[0147] The method of operating the electronic device (101) may include an operation of checking, by the communication processor (220), whether an area (241) in which at least one parameter indicating whether at least one function supported by the communication processor (220) of the memory (230) is stored is initialized based on checking a booting command provided from the application processor (210).
[0148] The method of operating the electronic device (101) may include, based on the confirmation by the communication processor (220) that the area (241) in which the at least one parameter is stored has been initialized, performing at least one operation for booting in response to the booting command based on the confirmation that the type of the firmware is the process firmware by referencing the area (242) shared by the communication processor (220) and the application processor (210), or refraining from performing at least one operation for booting based on the confirmation that the type of the firmware is the user firmware. Accordingly, extraction of at least a part of the at least one initialized parameter may be prevented.
[0149] The operation of storing the type of the confirmed firmware in the area (242) shared by the communication processor (220) and the application processor (210) among the memory (230) may include the operation of executing the communication processor (220) secure boot module.
[0150] The operation of storing the type of the confirmed firmware in the area (242) shared by the communication processor (220) and the application processor (210) among the memory (230) may include the operation of storing the type of the firmware in the area (242) shared by the communication processor (220) and the application processor (210) among the memory (230) using the secure boot module of the communication processor (220).
[0151] The operation of executing the above communication processor (220) security boot module can execute the communication processor (220) security boot module included in the application processor (210) boot loader by executing the application processor (210) boot loader.
[0152] The operation of storing the type of the firmware in the area (242) shared by the communication processor (220) and the application processor (210) among the memory (230) may include the operation of executing the application processor (210) boot loader.
[0153] The operation of storing the type of the firmware in the area (242) shared by the communication processor (220) and the application processor (210) among the memory (230) may include the operation of storing the type of the firmware identified by the boot loader of the application processor (210) in the area (242) shared by the communication processor (220) and the application processor (210) among the memory (230) through the secure boot module of the communication processor (220).
[0154] The method of operating the electronic device (101) may include an operation of checking the type of firmware being executed based on receiving an initialization command for an area (241) in which at least one parameter indicating whether at least one function supported by the communication processor (220) is allowed is stored.
[0155] The method of operating the electronic device (101) may include an operation of performing initialization on an area (241) in which at least one parameter indicating whether at least one function supported by the communication processor (220) is permitted is stored based on whether the type of the firmware being executed is the process firmware.
[0156] The method of operating the electronic device (101) may include an operation of checking the type of the firmware being executed based on receiving an initialization command for an area (241) in which at least one parameter indicating whether at least one function supported by the communication processor (220) is allowed is stored. Based on the type of the firmware being executed being the user firmware, the execution of initialization corresponding to the initialization command may be avoided.
[0157] The method of operating the electronic device (101) may include an operation of checking the type of firmware being executed based on receiving an initialization command for an area (241) in which at least one parameter indicating whether at least one function supported by the communication processor (220) is allowed is stored.
[0158] The method of operating the electronic device (101) may include performing at least one operation for the initialization command based on additional authority being confirmed based on the type of the running firmware being the user firmware by the communication processor (220).
[0159] A storage medium storing computer-readable instructions may be provided. The instructions, when executed, may cause the electronic device (101) to perform at least one operation.
[0160] The at least one operation may include an operation of checking, by the application processor (210) of the electronic device (101), the type of firmware used by the communication processor (220) after booting based on checking a booting command of the communication processor (220) of the electronic device (101).
[0161] Here, the type of the firmware can be identified as either process firmware for function testing and / or calibration of the communication processor (220) or user firmware for performing the function of the communication processor (220).
[0162] The at least one operation may include an operation of storing, by the application processor (210) of the electronic device (101), the type of the identified firmware in an area (242) shared by the communication processor (220) and the application processor (210) among the memory (230) of the electronic device (101).
[0163] The at least one operation may include an operation of providing the booting command to the communication processor (220) by the application processor (210) of the electronic device (101).
[0164] The at least one operation may include an operation of checking, by the communication processor (220), whether an area (241) in which at least one parameter indicating whether at least one function supported by the communication processor (220) of the memory (230) is stored is initialized based on checking a boot command provided from the application processor (210).
[0165] The at least one operation may include performing at least one operation for booting in response to the booting command based on the type of the firmware being confirmed as the process firmware by referencing the area (242) shared by the communication processor (220) and the application processor (210) based on the confirmation by the communication processor (220) that the area (241) in which the at least one parameter is stored has been initialized, or refraining from performing the at least one operation for booting based on the confirmation by the communication processor (220) that the area (241) in which the at least one parameter is stored. Accordingly, extraction of at least a portion of the at least one initialized parameter may be prevented.
[0166] The operation of storing the type of the confirmed firmware in the area (242) shared by the communication processor (220) and the application processor (210) among the memory (230) may include the operation of executing the communication processor (220) secure boot module.
[0167] The operation of storing the type of the confirmed firmware in the area (242) shared by the communication processor (220) and the application processor (210) among the memory (230) may include the operation of storing the type of the firmware in the area (242) shared by the communication processor (220) and the application processor (210) among the memory (230) using the secure boot module of the communication processor (220).
[0168] The operation of executing the above communication processor (220) security boot module can execute the communication processor (220) security boot module included in the application processor (210) boot loader by executing the application processor (210) boot loader.
[0169] The operation of storing the type of the firmware in the area (242) shared by the communication processor (220) and the application processor (210) among the memory (230) may include the operation of executing the application processor (210) boot loader.
[0170] The operation of storing the type of the firmware in the area (242) shared by the communication processor (220) and the application processor (210) among the memory (230) may include the operation of storing the type of the firmware identified by the boot loader of the application processor (210) in the area (242) shared by the communication processor (220) and the application processor (210) among the memory (230) through the secure boot module of the communication processor (220).
[0171] The at least one operation may include an operation of checking the type of firmware being executed based on receiving an initialization command for an area (241) in which at least one parameter indicating whether at least one function supported by the communication processor (220) is allowed is stored.
[0172] The at least one operation may include an operation of initializing an area (241) in which at least one parameter indicating whether at least one function supported by the communication processor (220) is permitted is stored based on whether the type of the firmware being executed is the process firmware.
[0173] The at least one operation may include an operation of checking the type of the firmware being executed based on receiving an initialization command for an area (241) in which at least one parameter indicating whether at least one function supported by the communication processor (220) is allowed is stored. Based on the type of the firmware being executed being the user firmware, the execution of the initialization corresponding to the initialization command may be avoided.
[0174] The at least one operation may include an operation of checking the type of firmware being executed based on receiving an initialization command for an area (241) in which at least one parameter indicating whether at least one function supported by the communication processor (220) is allowed is stored.
[0175] The at least one operation may include performing at least one operation for the initialization command based on additional authorization being verified based on the type of the running firmware being the user firmware by the communication processor (220).
[0176] The electronic device (101) may include an application processor (210) and a communication processor (220).
[0177] The application processor (210) may be configured to check the type of firmware used by the communication processor (220) after booting, based on checking the boot command of the communication processor (220).
[0178] Here, the type of the firmware can be identified as either process firmware for function testing and / or calibration of the communication processor (220) or user firmware for performing the function of the communication processor (220).
[0179] The application processor (210) may be set to store the type of the confirmed firmware in an area (242) shared by the communication processor (220) and the application processor (210) among the memory (230) of the electronic device (101).
[0180] The application processor (210) may be configured to provide the booting command to the communication processor (220).
[0181] The communication processor (220) may be configured to check whether an area (241) in which at least one parameter indicating whether at least one function supported by the communication processor (220) of the memory (230) is allowed is initialized based on checking a boot command provided from the application processor (210).
[0182] The communication processor (220) may be configured to perform at least one operation for booting in response to the booting command based on the type of the firmware being confirmed as the process firmware by referencing the area (242) shared by the communication processor (220) and the application processor (210) based on the area (241) where the at least one parameter is stored being confirmed to be initialized.
[0183] The communication processor (220) may be configured to perform at least one operation for booting based on the type of the firmware being confirmed as the user firmware by referencing the area (242) shared by the communication processor (220) and the application processor (210) based on the confirmation that the area (241) where the at least one parameter is stored has been initialized, and to limit at least a part of the functions of the communication processor (220) after booting. Accordingly, modification of at least a part of the at least one parameter initialized accordingly may be prevented.
[0184] At least some of the functions of the above-mentioned limited communication processor (220) may include a write function for an area (241) in which the at least one parameter is stored and / or an extraction function for the at least one parameter.
[0185] The method of operating an electronic device (101) may include an operation of checking the type of firmware used by the communication processor (220) after booting based on checking a booting command of the communication processor (220) of the electronic device (101) by the application processor (210) of the electronic device (101).
[0186] Here, the type of the firmware can be identified as either process firmware for function testing and / or calibration of the communication processor (220) or user firmware for performing the function of the communication processor (220).
[0187] The operating method of the electronic device (101) may include an operation of storing the type of the identified firmware in an area (242) shared by the communication processor (220) and the application processor (210) among the memory (230) of the electronic device (101), by the application processor (210) of the electronic device (101).
[0188] The operating method of the electronic device (101) may include an operation of providing the booting command to the communication processor (220) by the application processor (210) of the electronic device (101).
[0189] The method of operating the electronic device (101) may include an operation of checking, by the communication processor (220), whether an area (241) in which at least one parameter indicating whether at least one function supported by the communication processor (220) of the memory (230) is stored is initialized based on checking a booting command provided from the application processor (210).
[0190] The operating method of the electronic device (101) may include an operation of performing at least one operation for booting in response to the booting command based on the type of the firmware being confirmed as the process firmware by referring to the area (242) shared by the communication processor (220) and the application processor (210) based on the confirmation by the communication processor (220) that the area (241) in which the at least one parameter is stored has been initialized, or performing at least one operation for booting based on the confirmation by the user firmware of the type of the firmware, and limiting at least a part of the functions of the communication processor (220) after booting. Accordingly, modification of at least a part of the at least one initialized parameter may be prevented.
[0191] At least some of the functions of the above-mentioned limited communication processor (220) may include a write function for an area (241) in which the at least one parameter is stored and / or an extraction function for the at least one parameter.
[0192] A storage medium storing computer-readable instructions may be provided. The instructions, when executed, may cause the electronic device (101) to perform at least one operation.
[0193] The at least one operation may include an operation of checking, by the application processor (210) of the electronic device (101), the type of firmware used by the communication processor (220) after booting based on checking a booting command of the communication processor (220) of the electronic device (101).
[0194] Here, the type of the firmware can be identified as either process firmware for function testing and / or calibration of the communication processor (220) or user firmware for performing the function of the communication processor (220).
[0195] The at least one operation may include an operation of storing, by the application processor (210) of the electronic device (101), the type of the identified firmware in an area (242) shared by the communication processor (220) and the application processor (210) among the memory (230) of the electronic device (101).
[0196] The at least one operation may include an operation of providing the booting command to the communication processor (220) by the application processor (210) of the electronic device (101).
[0197] The at least one operation may include an operation of checking, by the communication processor (220), whether an area (241) in which at least one parameter indicating whether at least one function supported by the communication processor (220) of the memory (230) is stored is initialized based on checking a boot command provided from the application processor (210).
[0198] The at least one operation may include performing at least one operation for booting in response to the booting command based on the type of the firmware being confirmed as the process firmware by referencing the area (242) shared by the communication processor (220) and the application processor (210) based on the confirmation by the communication processor (220) that the area (241) in which the at least one parameter is stored has been initialized, or performing at least one operation for booting based on the confirmation by the communication processor (220) that the type of the firmware is the user firmware, and limiting at least a part of the functions of the communication processor (220) after booting. Accordingly, modification of at least a part of the at least one initialized parameter may be prevented.
[0199] At least some of the functions of the above-mentioned limited communication processor (220) may include a write function for an area (241) in which the at least one parameter is stored and / or an extraction function for the at least one parameter.
[0200] Electronic devices according to the embodiments disclosed in this document may take various forms. Electronic devices may include, for example, portable communication devices (e.g., smartphones), computer devices, portable multimedia devices, portable medical devices, cameras, wearable devices, or home appliances. Electronic devices according to the embodiments disclosed in this document are not limited to the aforementioned devices.
[0201] The embodiments of this document and the terminology used herein are not intended to limit the technical features described in this document to specific embodiments, but should be understood to include various modifications, equivalents, or substitutes of the embodiments. In connection with the description of the drawings, similar reference numerals may be used for similar or related components. The singular form of a noun corresponding to an item may include one or more of the items, unless the context clearly indicates otherwise. In this document, each of the phrases "A or B", "at least one of A and B", "at least one of A or B", "A, B, or C", "at least one of A, B, and C", and "at least one of A, B, or C" can include any one of the items listed together in the corresponding phrase among those phrases, or all possible combinations thereof. Terms such as "first," "second," or "first" or "second" may be used merely to distinguish one component from another, and do not limit the components in any other respect (e.g., importance or order). When a component (e.g., a first component) is referred to as "coupled" or "connected" to another (e.g., a second component), with or without the terms "functionally" or "communicatively," it means that the component can be connected to the other component directly (e.g., wired), wirelessly, or through a third component.
[0202] The term "module" used in the embodiments of this document may include a unit implemented in hardware, software, or firmware, and may be used interchangeably with terms such as logic, logic block, component, or circuit. A module may be an integral component, or a minimum unit or part of such a component that performs one or more functions. For example, according to one embodiment, a module may be implemented in the form of an application-specific integrated circuit (ASIC).
[0203] One embodiment of the present document may be implemented as software (e.g., a program (140)) including one or more instructions stored in a storage medium (e.g., an internal memory (136) or an external memory (138)) readable by a machine (e.g., an electronic device (101)). For example, a processor (e.g., a processor (120)) of the machine (e.g., an electronic device (101)) may call at least one instruction among the one or more instructions stored from the storage medium and execute it. This enables the machine to operate to perform at least one function according to the at least one called instruction. The one or more instructions may include code generated by a compiler or code executable by an interpreter. The machine-readable storage medium may be provided in the form of a non-transitory storage medium. Here, 'non-transitory' simply means that the storage medium is a tangible device and does not contain signals (e.g., electromagnetic waves), and the term does not distinguish between cases where data is stored semi-permanently or temporarily on the storage medium.
[0204] According to one embodiment, the method according to one embodiment disclosed in this document may be provided as included in a computer program product. The computer program product may be traded as a product between a seller and a buyer. The computer program product may be distributed in the form of a machine-readable storage medium (e.g., compact disc read-only memory (CD-ROM)), or may be distributed online (e.g., downloaded or uploaded) via an application store (e.g., Play Store™) or directly between two user devices (e.g., smart phones). In the case of online distribution, at least a portion of the computer program product may be temporarily stored or temporarily generated in a machine-readable storage medium, such as the memory of a manufacturer's server, an application store's server, or an intermediary server.
[0205] According to one embodiment, each component (e.g., a module or a program) of the above-described components may include one or more entities, and some of the entities may be separated and arranged in other components. According to one embodiment, one or more components or operations of the aforementioned components may be omitted, or one or more other components or operations may be added. Alternatively or additionally, a plurality of components (e.g., a module or a program) may be integrated into a single component. In this case, the integrated component may perform one or more functions of each of the plurality of components identically or similarly to those performed by the corresponding component among the plurality of components prior to the integration. According to one embodiment, the operations performed by a module, program, or other component may be executed sequentially, in parallel, iteratively, or heuristically, or one or more of the operations may be executed in a different order, omitted, or one or more other operations may be added.
Claims
1. In an electronic device (101), Memory (230) for storing computer executable instructions; An application processor (210) connected to communicate with the above memory (230); and Includes a communication processor (220) connected to communicate with the above memory (230), The above instructions, when executed individually or collectively by one or more processors, cause the electronic device to: By the above application processor (210): Based on the confirmation of the booting command of the communication processor (220), the type of firmware used by the communication processor (220) before or after booting is confirmed, and the type of firmware is confirmed as either process firmware for function testing and / or calibration of the communication processor (220) or user firmware for performing the function of the communication processor (220). The type of the above-mentioned confirmed firmware is stored in an area (242) shared by the communication processor (220) and the application processor (210) among the memory (230) of the electronic device (101), Includes instructions set to provide the boot command to the communication processor (220), By the above communication processor (220): Based on the confirmation of the boot command provided from the application processor (210), it is confirmed whether an area (241) in which at least one parameter indicating whether at least one function supported by the communication processor (220) of the memory (230) is stored is initialized, Based on the determination that the area (241) where at least one parameter is stored has been initialized: By referring to the area (242) shared by the communication processor (220) and the application processor (210), at least one operation for booting is performed in response to the boot command based on the type of the firmware being confirmed as the process firmware, An electronic device (101) characterized in that it includes instructions that are set to refrain from performing at least one operation for booting based on the type of the firmware being identified as the user firmware by referring to an area (242) shared by the communication processor (220) and the application processor (210), and are set to prevent extraction of at least a part of at least one parameter that has been initialized accordingly.
2. In paragraph 1, The above instructions, when individually or collectively executed by the one or more processors, cause the electronic device to: At least as a part of the operation of storing the type of the confirmed firmware in the area (242) shared by the communication processor (220) and the application processor (210) among the memory (230), by the application processor (210), Run the communication processor (220) secure boot module, An electronic device (101), characterized in that it includes instructions set to store the type of the firmware in the area (242) shared by the communication processor (220) and the application processor (210) among the memory (230) using the secure boot module of the communication processor (220).
3. In paragraph 1 or 2, The above instructions, when individually or collectively executed by the one or more processors, cause the electronic device to: At least as a part of the operation of executing the secure boot module of the communication processor (220) by the application processor (210), An electronic device (101), characterized in that it includes instructions set to execute the communication processor (220) secure boot module included in the application processor (210) boot loader by executing the application processor (210) boot loader.
4. In any one of paragraphs 1 to 3, The above instructions, when individually or collectively executed by the one or more processors, cause the electronic device to: At least as a part of the operation of storing the type of the firmware in the area (242) shared by the communication processor (220) and the application processor (210) among the memory (230), by the application processor (210), The above application processor (210) executes the boot loader, An electronic device (101) characterized in that it further includes instructions set to store the type of the firmware identified by the boot loader of the application processor (210) in the area (242) shared by the communication processor (220) and the application processor (210) among the memory (230) through the secure boot module of the communication processor (220).
5. In any one of paragraphs 1 to 4, The above instructions, when individually or collectively executed by the one or more processors, cause the electronic device to: By the above communication processor (220): Based on receiving an initialization command for the area (241) in which at least one parameter indicating whether at least one function supported by the communication processor (220) is allowed is stored, the type of the running firmware is checked, An electronic device (101), characterized in that it includes instructions set to perform initialization for the area (241) in which at least one parameter indicating whether at least one function supported by the communication processor (220) is allowed is stored based on the type of the firmware being executed being the process firmware.
6. In any one of paragraphs 1 to 5, The above instructions, when individually or collectively executed by the one or more processors, cause the electronic device to: By the above communication processor (220): Based on receiving an initialization command for the area (241) in which at least one parameter indicating whether at least one function supported by the communication processor (220) is allowed is stored, the type of the running firmware is checked, An electronic device (101), characterized in that it includes instructions set to refrain from performing initialization corresponding to the initialization command based on the type of the firmware being executed being the user firmware.
7. In the operating method of the electronic device (101), By the application processor (210) of the above electronic device (101): An operation of confirming the type of firmware used by the communication processor (220) before or after booting based on confirming the booting command of the communication processor (220) of the electronic device (101), wherein the type of firmware is confirmed as either process firmware for function testing and / or calibration of the communication processor (220) or user firmware for performing the function of the communication processor (220); An operation of storing the type of the above-mentioned confirmed firmware in an area (242) shared by the communication processor (220) and the application processor (210) among the memory (230) of the electronic device (101); An operation of providing the booting command to the communication processor (220); By the above communication processor (220): An operation of checking whether an area (241) in which at least one parameter indicating whether at least one function supported by the communication processor (220) of the memory (230) is allowed is initialized based on checking a boot command provided from the application processor (210); Based on the determination that the area (241) where at least one parameter is stored has been initialized: An operation of performing at least one operation for booting in response to the boot command based on the type of the firmware being confirmed as the process firmware by referring to the area (242) shared by the communication processor (220) and the application processor (210), or refraining from performing at least one operation for booting based on the type of the firmware being confirmed as the user firmware. A method of operating an electronic device (101), characterized in that extraction of at least a part of at least one parameter initialized accordingly is prevented.
8. In a storage medium storing computer-readable instructions, the instructions, when executed, cause the electronic device (101) to perform at least one operation, the at least one operation being: By the application processor (210) of the above electronic device (101): An operation of confirming the type of firmware used by the communication processor (220) before or after booting based on confirming the booting command of the communication processor (220) of the electronic device (101), wherein the type of firmware is confirmed as either process firmware for function testing and / or calibration of the communication processor (220) or user firmware for performing the function of the communication processor (220); An operation of storing the type of the above-mentioned confirmed firmware in an area (242) shared by the communication processor (220) and the application processor (210) among the memory (230) of the electronic device (101); An operation of providing the booting command to the communication processor (220); By the above communication processor (220): An operation of checking whether an area (241) in which at least one parameter indicating whether at least one function supported by the communication processor (220) of the memory (230) is allowed is initialized based on checking a boot command provided from the application processor (210); Based on the determination that the area (241) where at least one parameter is stored has been initialized: An operation of performing at least one operation for booting in response to the boot command based on the type of the firmware being confirmed as the process firmware by referring to the area (242) shared by the communication processor (220) and the application processor (210), or refraining from performing at least one operation for booting based on the type of the firmware being confirmed as the user firmware. A storage medium, characterized in that extraction of at least a portion of at least one parameter initialized accordingly is prevented.
9. In paragraph 8, The operation of storing the type of the above-mentioned confirmed firmware in the area (242) shared by the communication processor (220) and the application processor (210) among the memory (230) is as follows: An operation to execute a communication processor (220) secure boot module; and An operation of storing the type of the firmware in the area (242) shared by the communication processor (220) and the application processor (210) among the memory (230) using the security boot module of the communication processor (220). A storage medium, characterized in that it includes:
10. In paragraph 8 or 9, A storage medium characterized in that the operation of executing the above communication processor (220) security boot module executes the communication processor (220) security boot module included in the application processor (210) boot loader by executing the application processor (210) boot loader.
11. In any one of paragraphs 8 to 10, The operation of storing the type of the firmware in the area (242) shared by the communication processor (220) and the application processor (210) among the memory (230) is as follows: An operation of executing the above application processor (210) boot loader; and An operation of storing the type of the firmware identified by the boot loader of the application processor (210) in the area (242) shared by the communication processor (220) and the application processor (210) among the memory (230) through the secure boot module of the communication processor (220). A storage medium, characterized in that it includes:
12. In any one of paragraphs 8 to 11, By the above communication processor (220): An operation of checking the type of the running firmware based on receiving an initialization command for the area (241) in which at least one parameter indicating whether at least one function supported by the communication processor (220) is allowed is stored; and An operation of performing initialization for the area (241) in which at least one parameter indicating whether at least one function supported by the communication processor (220) is permitted is stored based on the type of the firmware being executed being the process firmware. A storage medium characterized by further comprising:
13. In any one of paragraphs 8 to 12, By the above communication processor (220): An operation of checking the type of the firmware being executed based on receiving an initialization command for the area (241) in which at least one parameter indicating whether at least one function supported by the communication processor (220) is allowed is stored. Including more, A storage medium of an electronic device (101), characterized in that the execution of initialization corresponding to the initialization command is avoided based on the type of the firmware being executed being the user firmware.
14. In the electronic device (101), A memory (230) containing computer-executable instructions; An application processor (210) connected to communicate with the above memory (230); and Includes a communication processor (220) connected to communicate with the above memory (230), The above instructions, when executed individually or collectively by one or more processors, cause the electronic device to: By the above application processor (210): Based on the confirmation of the booting command of the communication processor (220), the type of firmware used by the communication processor (220) before or after booting is confirmed, and the type of firmware is confirmed as either process firmware for function testing and / or calibration of the communication processor (220) or user firmware for performing the function of the communication processor (220). The type of the above-mentioned confirmed firmware is stored in an area (242) shared by the communication processor (220) and the application processor (210) among the memory (230) of the electronic device (101), Includes instructions set to provide the boot command to the communication processor (220), By the above communication processor (220): Based on the confirmation of the boot command provided from the application processor (210), it is confirmed whether an area (241) in which at least one parameter indicating whether at least one function supported by the communication processor (220) of the memory (230) is stored is initialized, Based on the determination that the area (241) where at least one parameter is stored has been initialized: By referring to the area (242) shared by the communication processor (220) and the application processor (210), at least one operation for booting is performed in response to the boot command based on the type of the firmware being confirmed as the process firmware, An electronic device (101), characterized in that it includes instructions configured to perform at least one operation for booting based on the type of the firmware being identified as the user firmware by referring to an area (242) shared by the communication processor (220) and the application processor (210), and to limit at least some of the functions of the communication processor (220) after booting, and thus to prevent modification of at least some of at least one initialized parameter.
15. In paragraph 14, An electronic device (101), characterized in that at least some of the functions of the communication processor (220) that are limited include a write function for the area (241) in which the at least one parameter is stored and / or an extraction function for the at least one parameter.
Citation Information
Patent Citations
Precise monitoring system capable of responding to railway disorder and performance test
KR1020240170657A
Polishing particle dispersion for semiconductor polishing process, polishing slurry composition and method for manufacturing semiconductor devices
KR1020260024802A
System-on-chip and electronic device having the same
KR102385552B1
Firmware write system to shorten production time of open platform boards
KR102678799B1
Systems and methods for BMC firmware identity based access control
US20240134989A1