Changes between Version 1 and Version 2 of venice/edgelock
- Timestamp:
- 08/12/2025 06:53:19 PM (3 days ago)
Legend:
- Unmodified
- Added
- Removed
- Modified
-
venice/edgelock
v1 v2 2 2 3 3 = NXP !EdgeLock Secure Enclave 4 While the i.MX8M does have its own internal !EdgeLock Secure Enclave it only allows up to FIPS level 2 and in some cases level 3 is required (which requires the keys are stored in a different IC). 4 5 Gateworks has added the NXP EdgeLock SEO52F Secure Element with FIPS 140-3 Level 3 Certification to VeniceFLEX and Catalina SBCs. 6 7 While the i.MX8M processor used on the SBCs does have its own internal !EdgeLock Secure Enclave it only allows up to FIPS level 2 and in some cases level 3 is required (which requires the keys are stored in a different IC). 5 8 6 9 The SE05x speaks SCP03 on top of I2C and can co-exist with other I2C devices. It is often used within OPTEE with a trampoline driver that hooks into Linux with an SMC call to allow Linux owning the I2C bus but OPTEE still allowed controlled access … … 24 27 The following Gateworks boards have a SE05x chip on-board: 25 28 ||= Family =||= Board =||= Chip =||= bus/address =||= reset =|| 26 || Venice || GW8201-C+ || SE052F || I2C2@0x48 || N/A || 29 || VeniceFLEX || GW8201-C+ || SE052F || I2C2@0x48 || N/A || 30 31 * Note, the SE052F is not available on standard Venice, only VeniceFLEX 27 32 28 33 … … 35 40 Valid chip addresses: 48 36 41 }}} 37 - the valid chip address above confirms SCL/SDA/VDD_3V3/GND are wired correctly and powered42 - The valid chip address above confirms SCL/SDA/VDD_3V3/GND are wired correctly and powered 38 43 39 44 Because there is no U-Boot or Linux kernel driver there does not need to be any device-tree node for the device. … … 42 47 43 48 === NXP Plug & Trust Middleware 44 The NXP Plug & Trust middleware communicates with the SE05x directly in userspace via the I2C device file (e.g., /dev/i2c-1). It uses the Linux I2C userspace interface (ioctl calls) to send T1oI2C APDUs, bypassing the need for a dedicated kernel driver. The middleware handles all protocol details, including authentication (e.g., SCP03) and command formatting. Because this is in userspace there is no d tentry needed as long as the I2C bus is enabled.49 The NXP Plug & Trust middleware communicates with the SE05x directly in userspace via the I2C device file (e.g., /dev/i2c-1). It uses the Linux I2C userspace interface (ioctl calls) to send T1oI2C APDUs, bypassing the need for a dedicated kernel driver. The middleware handles all protocol details, including authentication (e.g., SCP03) and command formatting. Because this is in userspace there is no device-tree entry needed as long as the I2C bus is enabled. 45 50 46 51 There are multiple flavors of the NXP Plug & Trust Middleware below are very minimal examples of getting it up and running by building software on the target board itself. … … 50 55 51 56 Notes: 52 - example apps take a 'port' argument identifying the bus and address via <busdev>:<slaveaddr> (ie '/dev/i2c-1:0x48' for GW8201). Note that while the busdev is a Linux path that exists the ':0x48' will not exist in a device path)53 - the ssscli ssscli tool isnt' a standalone binary; its a python based CLI installed via setup.py after building the middleware libraries.54 - there are fairly detailed HTML docs within the docs directory57 - Example apps take a 'port' argument identifying the bus and address via <busdev>:<slaveaddr> (ie '/dev/i2c-1:0x48' for GW8201). Note that while the busdev is a Linux path that exists the ':0x48' will not exist in a device path) 58 - The ssscli ssscli tool isnt' a standalone binary; its a python based CLI installed via setup.py after building the middleware libraries. 59 - There are fairly detailed HTML docs within the docs directory 55 60 56 61 Building: … … 255 260 256 261 Example: 257 * build262 * Build 258 263 {{{#!bash 259 264 # install pre-requisites 260 265 apt update && apt install -y build-essential git cmake python3 python3-pip python3-setuptools python3-wheel libssl-dev libusb-1.0-0-dev pkg-config unzip wget 261 266 262 # fetch code267 # Fetch code 263 268 git clone https://github.com/NXPPlugNTrust/nano-package 264 269 cd nano-package 265 270 266 # configure271 # Configure 267 272 cd examples/se05x_GetInfo/linux 268 273 mkdir build … … 270 275 cmake ../ 271 276 272 # build277 # Build 273 278 make 274 279 }}}