Compare commits

...

46 Commits

Author SHA1 Message Date
Alexandre Bard 881a818a37 Adapt gpsd recipe to make it compatible with gnss-mgr
gpsd needs some small changes to not conflict with gnss-mgr

id:502637
2024-03-15 14:00:01 +01:00
Alexandre Bard c5dd7ce5e8 nwl-distro: Add gnss-mgr to test tools
This tool is used to enable and configure the gnss receiver.

id:502637
2024-03-15 14:00:01 +01:00
Alexandre Bard 2837a9f876 nwl-distro: Add ModemManager and wwan-config to test tools
These tools are required to properly enable, configure and use the wwan
modems.

id:502637
2024-03-15 14:00:01 +01:00
Alexandre Bard a77ced658e nwl-distro: Add udev-rules to test tools
These udev rules are used to "standardized" the names of the different
interfaces (mainly GNSS and WWAN).

id:502637
2024-03-15 14:00:01 +01:00
Alexandre Bard 580b4be2ca nwl-test-image: Add some test tools
- hostapd to create access points
- gps-utils to test the gnss receiver
- can-utils to test the can interfaces
- libgpiod-tools to toggle the gpios
- chrony to get the time set properly on the target and help reading the
  logs
- minicom to debug the serial ports

id:502637
2024-03-15 14:00:01 +01:00
Alexandre Bard ead191b097 distro/nwl.conf: Fix typo 2024-03-15 14:00:01 +01:00
Alexandre Bard d2e0b9c9df packagegroup-nwl-core: Add dnsmasq for AP mode
dnsmasq is used by networkmanager as DHCP server in AP mode.
But the default service must be disabled otherwise it conflicts with the
instance started by NetworkManager.

id:502637
2024-03-15 14:00:01 +01:00
Alexandre Bard a11f7a39b9 meta-nwl-distro: Remove custom signing keys
Common development keys are now integrated directly in core-os.
2024-03-01 17:37:50 +01:00
Alexandre Bard 3516f4f7bd nwl-image.bbclass: Remove custom core-os configs
These configs are now properly handled in core-os based on machine
definitions.

id:502637
2024-03-01 17:37:50 +01:00
Alexandre Bard a40e734c0d meta-netmodule-legacy-bsp: machine.conf: Use relative import paths
Since the included files are in the same directory, it makes more sense
to include them relatively.

More specifically, it is a problem for ti33x.inc that exists in meta-ti
which is now used for hw34.

id:502637
2024-03-01 17:37:50 +01:00
Alexandre Bard 8d098aaa6c templates/bblayers.conf.sample: Add new layers from CoreOS
id:502637
2024-03-01 16:22:30 +01:00
Alexandre Bard f7c25896cf Update Core-OS to latest version
id:397918
2024-03-01 16:22:03 +01:00
Alexandre Bard 2bee4cb540 templates/conf-notes: Fix targets name
We forgot to change this when we renamed the images
2024-02-16 18:41:54 +01:00
Lucien Mueller e20ff1ff22 templates/bblayers.conf.sample: add the new meta-nwl-marvell-bsp layer
templates/local.conf.sample: add cn9131-nitroc machine as example

Signed-off-by: Lucien Mueller <lucien.mueller@netmodule.com>
2024-01-30 15:54:09 +01:00
Stefan Eichenberger c790b986ca layers: meta-nwl-marvell-bsp: add initial layer and add Nitroc support
Add an initial Marvell BSP layer which supports Nitroc. It is different
from CoreOS for now because it uses a newer kernel, U-Boot and trusted
firmware.

Signed-off-by: Stefan Eichenberger <stefan.eichenberger@netmodule.com>
2024-01-25 17:06:55 +01:00
Marc Mattmüller 3e672279f7 srcrev: updated source revisions by Jenkins Job 2023-11-07 05:51:11 +01:00
Alexandre Bard 16bd38ae2b nwl-test-image: Add components required by uboot to boot the image
nrsw-uboot is reading the devicetree and the fpga image from the rootfs.

id:458169
2023-10-31 11:10:56 +01:00
Alexandre Bard 20b9904c2b legacy-bsp: Add wic files for armada devices
id:458169
2023-10-31 11:10:56 +01:00
Alexandre Bard 64bc9777e8 legacy-bsp: Add support for u-boot for armada
id:458169
2023-10-31 11:10:56 +01:00
Alexandre Bard c1165a318f nwl-test-image: Add missing components
Since we worked mainly on the ramdisk image, the test-image was almost
empty and lacking the minimum components.
This components are now defined in a packagegroup which is included in
all nwl-images.

It also include a new MACHINE_FEATURE : nrsw-ready.
This feature allows us to not include NRSW modules for devices that are
not supported by NRSW: for the moment it is mainly the devices supported
by core-os like cn9130-cf-pro. These devices are build against there
custom kernel against which the NRSW modules are not buildable.

id:458169
2023-10-30 14:19:58 +01:00
Alexandre Bard 49cf460db4 kernel: Add support for gpt partitions
We are using a GPT partition table in the WIC file, so GPT support is
required.

id:458169
2023-10-27 14:35:20 +02:00
Alexandre Bard 02dc2cdbef ramdisk-image: Add tools to install the wic files on the mmc
id:458169
2023-10-27 14:35:20 +02:00
Alexandre Bard 19f4f4f7a3 nwl-test-image: Create a wic file for sitara devices
id:458169
2023-10-27 14:35:20 +02:00
Alexandre Bard f7a130b901 bsp: Add u-boot for sitara devices
id:458169
2023-10-27 14:35:20 +02:00
Lucien Mueller 6ad5d7fd94 add fpga image support in fitImage.
INFO: The image address entries in the fitImage changed
e.g. "fpga@1" -> "fpga-1"
see: commit 6047be9f8f0f5d616fda11d83b682c1b8aeaa0ae in meta-openembedded

Signed-off-by: Lucien Mueller <lucien.mueller@netmodule.com>
2023-10-26 15:15:52 +02:00
Alexandre Bard ff08561cb5 Update source revisions
Auto-update by jenkins in nightly branch

Squashed commit of the following:

commit 936c4f49f17f4fe0a10d601bf7dd3937b72b7a89
Author: Marc Mattmüller <marc.mattmueller@netmodule.com>
Date:   Thu Oct 5 05:51:12 2023 +0200

    srcrev: updated source revisions by Jenkins Job
2023-10-05 08:24:31 +02:00
Marcel Reichmuth af9096dd9a hw18: implement card detect for sd card
id:447882
2023-10-03 12:43:23 +02:00
Lucien Mueller 53507a012e sitara defconfig: add CONFIG_ETHTOOL_NETLINK to fix broadr issues
ID: 446426

Signed-off-by: Lucien Mueller <lucien.mueller@netmodule.com>
2023-10-03 09:17:40 +02:00
Marcel Reichmuth d63894745b dsa: fix cpu port configuration
id:447902
2023-09-29 14:18:32 +02:00
Lucien Mueller 2537fd2076 nwl-ramdisk-minimal: add kernel-modules
Signed-off-by: Lucien Mueller <lucien.mueller@netmodule.com>
2023-09-29 11:14:14 +02:00
Alexandre Bard 3c81ac50ca kernel-module-pcie: Use devicetree to configure gpios
id:452476
2023-09-28 18:30:17 +02:00
Lucien Mueller d9c27fbd9a nwl-ramdisk-minimal: add ssh support
Signed-off-by: Lucien Mueller <lucien.mueller@netmodule.com>
2023-09-28 09:47:31 +02:00
Lucien Mueller 0e30a45837 nwl-tests: update recipe for new file structure
Signed-off-by: Lucien Mueller <lucien.mueller@netmodule.com>
2023-09-21 09:54:32 +02:00
Samuel Dolt 8eec0f932c nwl-image-fitimage: Fix filename of the fitimage in the artifacts file
id: 414705
2023-09-18 11:01:45 +02:00
Alexandre Bard 41820366c4 nwl-ramdisk-minimal: Fix missing artifacts list
id:414705
2023-09-18 10:58:20 +02:00
Alexandre Bard 437387f41c linux-nrsw: Update to version 5.15
The the "patch number" in the linux version will likely change, the
version check is also disabled and only the "main" version is set.

id:448028
2023-09-12 13:50:43 +02:00
Marcel Reichmuth 5c04761e26 Update kernel-module-system-info to the latest version to make
it compile with kernel 5.15.

id:418230
2023-09-06 11:48:25 +02:00
Alexandre Bard a96df99645 Move wlan layer to external-layers
Having it in "layers" made the update-source-revisions script to update
revisions there too.

id:425378
2023-09-05 12:18:30 +02:00
Alexandre Bard 773946b892 ramdisk-image: Add wifi firmwares for TI chips
And make it dependent on MACHINE_FEATURES.

These firmwares are required for the chip to function properly.

id:425378
2023-09-04 16:38:45 +02:00
Alexandre Bard 6caf907636 Add meta-netmodule-wlan
id:425378
2023-09-04 16:38:45 +02:00
Marcel Reichmuth 7260611e4e kernel: add nrsw specific kernel modules system-info and pcie
id:418230
2023-09-04 15:53:44 +02:00
Samuel Dolt bef2978876 nwl-image-fitimage: automatically add the fitimage as a CI artifact
The nwl-image-fitimage is now integrated with the coreos-image-ci classes
and automatically add the generated fitimage to the list of artifacts
that need to be published by the CI
2023-09-04 14:31:08 +02:00
Marcel Reichmuth 0df5643e08 legacy-bsp: Add kernel module board descriptor
id:418230
2023-08-31 15:45:22 +02:00
Samuel Dolt 7d0367f2e6 nwl-image.bbclass: keep default value of COREOS_IMAGE_GENERATE_
The serie of COREOS_IMAGE_GENERATE_ variable are now better
handled by coreos and their default value depends on
DISTRO_FEATURES or COMBINED_FEATURES. We don't need to disable
them manually anymore.
2023-08-30 14:56:43 +02:00
Samuel Dolt 0d2952d9e0 nwl-image.bbclass: add fitimage generation support 2023-08-30 14:55:33 +02:00
Samuel Dolt 0cd9abc5a8 vscode: copy settings from CoreOS 2023-08-30 14:51:35 +02:00
84 changed files with 1891 additions and 246 deletions

4
.gitmodules vendored
View File

@ -2,3 +2,7 @@
path = coreos
url = ssh://git@bitbucket.gad.local:7999/ico/coreos.git
branch = master
[submodule "layers/meta-netmodule-wlan"]
path = external-layers/meta-netmodule-wlan
url = gitea@git.netmodule.intranet:nrsw-oe/meta-netmodule-wlan.git
branch = kirkstone

10
.vscode/extensions.json vendored Normal file
View File

@ -0,0 +1,10 @@
{
"recommendations": [
"ms-vscode.makefile-tools",
"timonwong.shellcheck",
"eugenwiens.bitbake",
"kweihmann.oelint-vscode",
"lextudio.restructuredtext",
"trond-snekvik.simple-rst"
]
}

12
.vscode/settings.json vendored Normal file
View File

@ -0,0 +1,12 @@
{
"files.watcherExclude": {
"**/build/cache/**": true,
"**/build/downloads/**": true,
"**/build/sstate-cache/**": true,
"**/build/tmp/**": true,
"**/documentation/_build/**": true,
"**/build/workspace": true
},
"python.formatting.provider": "black",
"editor.rulers": [80,100,120]
}

2
coreos

@ -1 +1 @@
Subproject commit 91cff2b07a0f0df9accc8a368beefaecbd5e558b
Subproject commit fd9b3e0a0ff210f95a384dc884dcf848adcc478f

@ -0,0 +1 @@
Subproject commit e14df2a2ec15acca43b3bd14f2b9df75c7933904

View File

@ -0,0 +1 @@
MACHINE_FEATURES += "nrsw-ready"

View File

@ -12,3 +12,8 @@ KERNEL_DEVICETREE = "\
DEBUG_SERIAL_CONSOLE ?= "115200;ttyS1"
COMIO_SERIAL_CONSOLE ?= "115200;ttyS0"
SERIAL_CONSOLES = "${DEBUG_SERIAL_CONSOLE} ${COMIO_SERIAL_CONSOLE}"
MACHINE_FEATURES += " \
wifi \
ti-wifi \
"

View File

@ -1,3 +1,5 @@
require all-netmodule.inc
SOC_FAMILY = "armada"
require conf/machine/include/soc-family.inc
@ -14,10 +16,14 @@ INODE_SIZE = "1024"
DIR_INODE_SIZE = "1024"
FILE_INODE_SIZE = "0"
WKS_FILE ?= "nm-armada-385-mmc.wks"
do_image_wic[depends] += "virtual/bootloader:do_deploy"
MACHINE_FEATURES:remove = "bluetooth"
PREFERRED_PROVIDER_virtual/kernel = "linux-nrsw"
PREFERRED_PROVIDER_virtual/bootloader = "u-boot-armada"
UBOOT_MACHINE = "${MACHINE}_defconfig"
UBOOT_ENTRYPOINT = "0x13000000"
UBOOT_LOADADDRESS = "${UBOOT_ENTRYPOINT}"

View File

@ -7,6 +7,7 @@
# xf86-video-modesetting \
# "
require all-netmodule.inc
MACHINE_EXTRA_RRECOMMENDS = "kernel-modules kernel-devicetree"
NM_TARGET = "netbird"
NM_ARCH = "arm"
@ -22,17 +23,18 @@ include conf/machine/include/arm/armv7a/tune-cortexa8.inc
# IMAGE_FSTYPES += "tar.bz2 jffs2 wic wic.bmap"
# EXTRA_IMAGECMD_jffs2 = "-lnp "
# WKS_FILE ?= "beaglebone-yocto.wks"
# IMAGE_INSTALL_append = " kernel-devicetree kernel-image-zimage"
# do_image_wic[depends] += "mtools-native:do_populate_sysroot dosfstools-native:do_populate_sysroot"
# SERIAL_CONSOLES = "115200;ttyO0"
# PREFERRED_PROVIDER_virtual/kernel ?= "linux-mainline"
# PREFERRED_VERSION_linux-yocto ?= "4.18%"
WKS_FILE ?= "nm-am335x-mmc.wks"
do_image_wic[depends] += "virtual/bootloader:do_deploy"
KERNEL_IMAGETYPE = "zImage"
PREFERRED_PROVIDER_virtual/bootloader = "u-boot-ti33x"
UBOOT_MACHINE = "${MACHINE}_defconfig"
# SPL_BINARY = "MLO"
UBOOT_SUFFIX = "img"

View File

@ -2,12 +2,14 @@
#@NAME: NRHW14 based routers like NB3800
#@DESCRIPTION: Machine configuration for the NBHW14 based routers http://netmodule.com/en/products/iot-routers
require conf/machine/include/armada.inc
require include/armada.inc
NRHW = "14"
NM_MODELS = "3701 3711 3800"
MAX_FS_SIZE = "279542"
UBOOT_MACHINE = "armada-385-hw14_defconfig"
# U-Boot reads actual DTB file name from board descriptor, see:
# printenv fdt_image
KERNEL_DEVICETREE = "\

View File

@ -2,11 +2,12 @@
#@NAME: NRHW16 based routers like NB800
#@DESCRIPTION: Machine configuration for the NBHW16 based routers http://netmodule.com/en/products/iot-routers
require conf/machine/include/ti33x.inc
require include/ti33x.inc
NRHW = "16"
NM_MODELS = "800"
# WARNING: This file needs to be kept in sync with HW24. Therefor use the common include:
require conf/machine/include/am335x-nrhw16-nrhw24.inc
require include/am335x-nrhw16-nrhw24.inc
UBOOT_MACHINE = "am335x_nbhw16_defconfig"

View File

@ -2,15 +2,21 @@
#@NAME: NRHW14 based routers like NB2800
#@DESCRIPTION: Machine configuration for the NBHW17 based routers http://netmodule.com/en/products/iot-routers
require conf/machine/include/armada.inc
require include/armada.inc
NRHW = "17"
NM_MODELS = "2800 2810"
MAX_FS_SIZE = "279542"
UBOOT_MACHINE = "armada-385-hw17_defconfig"
# U-Boot reads actual DTB file name from board descriptor, see:
# printenv fdt_image
KERNEL_DEVICETREE = "openwrt-nbhw17.dtb"
EXT_SERIAL_CONSOLE ?= "115200;ttyS1"
SERIAL_CONSOLES = "${EXT_SERIAL_CONSOLE}"
MACHINE_FEATURES += " \
fpga \
"

View File

@ -2,12 +2,14 @@
#@NAME: NRHW18 based routers like NB1800
#@DESCRIPTION: Machine configuration for the NBHW18 based routers http://netmodule.com/en/products/iot-routers
require conf/machine/include/armada.inc
require include/armada.inc
NRHW = "18"
NM_MODELS = "1800 1810"
MAX_FS_SIZE = "279542"
UBOOT_MACHINE = "armada-385-hw18_defconfig"
# U-Boot reads actual DTB file name from board descriptor, see:
# printenv fdt_image
KERNEL_DEVICETREE = " \
@ -18,3 +20,7 @@ KERNEL_DEVICETREE = " \
DEBUG_SERIAL_CONSOLE ?= "115200;ttyS0"
EXT_SERIAL_CONSOLE ?= "115200;ttyS1"
SERIAL_CONSOLES = "${EXT_SERIAL_CONSOLE} ${DEBUG_SERIAL_CONSOLE}"
MACHINE_FEATURES += " \
fpga \
"

View File

@ -2,12 +2,14 @@
#@NAME: NRHW16 based routers like NB800
#@DESCRIPTION: Machine configuration for the NBHW16 based routers http://netmodule.com/en/products/iot-routers
require conf/machine/include/ti33x.inc
require include/ti33x.inc
NRHW = "20"
NM_MODELS = "1601 B-1601"
MAX_FS_SIZE = "279542"
UBOOT_MACHINE = "am335x_nrhw20_defconfig"
KERNEL_DEVICETREE = "\
am335x-nrhw20-prod1.dtb \
"
@ -15,3 +17,8 @@ KERNEL_DEVICETREE = "\
EXT_SERIAL_CONSOLE ?= "115200;ttyS1"
COMIO_SERIAL_CONSOLE ?= "115200;ttyS0"
SERIAL_CONSOLES = "${EXT_SERIAL_CONSOLE} ${COMIO_SERIAL_CONSOLE}"
MACHINE_FEATURES += " \
wifi \
ti-wifi \
"

View File

@ -2,15 +2,22 @@
#@NAME: NRHW22 based routers like NB650 / Phoenix Timeserver
#@DESCRIPTION: Machine configuration for the NBHW22 based routers http://netmodule.com/en/products/iot-routers
require conf/machine/include/ti33x.inc
require include/ti33x.inc
NRHW = "22"
NM_MODELS = "650"
MAX_FS_SIZE = "279542"
UBOOT_MACHINE = "am335x_nrhw22_defconfig"
KERNEL_DEVICETREE = "\
am335x-nrhw22-prod1.dtb \
"
DEBUG_SERIAL_CONSOLE ?= "115200;ttyS0"
SERIAL_CONSOLES = "${DEBUG_SERIAL_CONSOLE}"
MACHINE_FEATURES += " \
wifi \
ti-wifi \
"

View File

@ -2,11 +2,13 @@
#@NAME: NRHW24 based routers like NB800 facelift / NB800mk2 (or however you like to call it)
#@DESCRIPTION: Machine configuration for the NBHW24 based routers http://netmodule.com/en/products/iot-routers
require conf/machine/include/ti33x.inc
require include/ti33x.inc
NRHW = "24"
NM_MODELS = "B-800"
# WARNING: This file needs to be kept in sync with HW24. Therefor use the common include:
require conf/machine/include/am335x-nrhw16-nrhw24.inc
UBOOT_MACHINE = "am335x_nrhw24_defconfig"
# WARNING: This file needs to be kept in sync with HW24. Therefor use the common include:
require include/am335x-nrhw16-nrhw24.inc

View File

@ -2,12 +2,14 @@
#@NAME: NRHW25 based routers like TC-Router
#@DESCRIPTION: Machine configuration for the NBHW24 based routers http://netmodule.com/en/products/iot-routers
require conf/machine/include/ti33x.inc
require include/ti33x.inc
NRHW = "25"
NM_MODELS ?= "660 670"
MAX_FS_SIZE = "279542"
UBOOT_MACHINE = "am335x_hw25_defconfig"
KERNEL_DEVICETREE = "\
am335x-hw25-prod1.dtb \
"
@ -16,3 +18,8 @@ KERNEL_DEVICETREE = "\
EXT_SERIAL_CONSOLE ?= "115200;ttyS5"
DEBUG_SERIAL_CONSOLE ?= "115200;ttyS0"
SERIAL_CONSOLES = "${EXT_SERIAL_CONSOLE} ${DEBUG_SERIAL_CONSOLE}"
MACHINE_FEATURES += " \
wifi \
ti-wifi \
"

View File

@ -2,15 +2,24 @@
#@NAME: HW26 based routers like NG800
#@DESCRIPTION: Machine configuration for the HW26 based routers http://netmodule.com/en/products/iot-routers
require conf/machine/include/ti33x.inc
require include/ti33x.inc
NRHW = "26"
NM_MODELS = "G-800"
MAX_FS_SIZE = "279542"
# HW26 is based on HW21, the boot config is the same
UBOOT_MACHINE = "am335x_nmhw21_defconfig"
KERNEL_DEVICETREE = "\
am335x-hw26-prod1.dtb \
"
EXT_SERIAL_CONSOLE ?= "115200;ttyS2"
SERIAL_CONSOLES = "${EXT_SERIAL_CONSOLE}"
MACHINE_FEATURES += " \
wifi \
ti-wifi \
"

View File

@ -0,0 +1,60 @@
diff --git a/license_info.c b/license_info.c
index 5e56753..d88d590 100644
--- a/license_info.c
+++ b/license_info.c
@@ -32,8 +32,53 @@
#include "license_info.h"
#include "bigdigits.h"
-#include <license-key.h>
-#include <bofh-key.h>
+#ifndef _LICENSE_KEY_H
+#define _LICENSE_KEY_H
+
+#define HMAC_KEY_SIZE 20
+#define SHA1_DIGEST_SIZE 20
+#define MOD_LENGTH 1536
+
+/* RSA public key */
+
+static
+unsigned char rsa1536E[MOD_LENGTH/8] =
+{
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01,
+} ;
+
+static
+unsigned char rsa1536N[MOD_LENGTH/8] =
+{
+ 0xA1, 0xFD, 0x5A, 0xC5, 0x77, 0xB8, 0xCC, 0x20, 0xFC, 0x80, 0xC2, 0xF0, 0xBD, 0x6F, 0x6F, 0x4A,
+ 0xEC, 0x70, 0xEE, 0x18, 0xBD, 0x6C, 0x07, 0xBB, 0xD6, 0x57, 0xE2, 0xE7, 0x3F, 0x2D, 0x51, 0x6D,
+ 0x9B, 0x76, 0xD7, 0x93, 0xCC, 0x1B, 0x7B, 0x38, 0x2F, 0x10, 0xEC, 0xAD, 0x3A, 0x79, 0x0C, 0xC6,
+ 0x74, 0x76, 0x93, 0x13, 0x6A, 0x20, 0xD9, 0xEB, 0x5B, 0x3C, 0x47, 0xB7, 0xCA, 0xAA, 0xFF, 0x7B,
+ 0x7F, 0x5A, 0x7D, 0xEE, 0xA3, 0x0B, 0xA0, 0x57, 0xB4, 0xB8, 0x77, 0xE9, 0xAD, 0x6D, 0xE8, 0xF7,
+ 0xF8, 0x2F, 0xE7, 0x49, 0xE5, 0x17, 0xBB, 0x7D, 0x5A, 0x6D, 0xF2, 0xD8, 0x1B, 0x01, 0x51, 0xB1,
+ 0x63, 0x48, 0xC1, 0x9E, 0x74, 0xE6, 0x64, 0xB1, 0x9C, 0xC9, 0xFC, 0x75, 0x73, 0x9F, 0x61, 0x89,
+ 0xE1, 0x10, 0x88, 0xFF, 0x90, 0x53, 0xE6, 0x4A, 0x41, 0x63, 0x01, 0x60, 0x2F, 0x85, 0x93, 0xAC,
+ 0x1A, 0x68, 0xAA, 0x8D, 0xBD, 0x31, 0x70, 0xF7, 0x48, 0x5B, 0xFF, 0x44, 0xC9, 0x63, 0xDC, 0xE4,
+ 0x25, 0x5E, 0xBA, 0xD5, 0x3E, 0x11, 0x55, 0xF4, 0x41, 0x58, 0xCF, 0xB3, 0x8A, 0x7A, 0x2B, 0xC3,
+ 0xA7, 0x07, 0x47, 0xAA, 0x88, 0x44, 0x18, 0x5C, 0x8B, 0x88, 0x64, 0x39, 0x07, 0xC4, 0xD1, 0x82,
+ 0x62, 0xA7, 0xDB, 0x9A, 0x53, 0x4D, 0xB9, 0x36, 0x69, 0x72, 0x01, 0x75, 0x88, 0x40, 0xD5, 0xF5,
+} ;
+
+static char checksumKey[HMAC_KEY_SIZE] = {0x17, 0x5e, 0x73, 0x42, 0xb9, 0xae, 0x11, 0xcd, 0x91, 0xa3,
+ 0x9a, 0xf4, 0x8c, 0xa1, 0x7b, 0x4f, 0x63, 0xf1, 0x75, 0xd3};
+
+#endif
/*--- defines ----------------------------------------------------------------*/

View File

@ -0,0 +1,27 @@
HOMEPAGE = "http://www.netmodule.com"
LICENSE = "GPL-2.0-only"
LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=b234ee4d69f5fce4486a80fdaf4a4263"
SRC_URI = "git://git.netmodule.intranet/NRSW/board-descriptor.git;protocol=ssh;user=gitea;branch=master \
file://0001-license-key.patch \
"
PV = "1.0+git${SRCPV}"
SRCREV="75b608d47b1c98cb66caf9a5d5a82b27990d8bbf"
S = "${WORKDIR}/git"
DEPENDS = "virtual/kernel"
inherit module
do_install:append() {
install -d ${D}/usr/include/board-descriptor/linux/
install -m 0755 ${S}/board_descriptor.h ${D}/usr/include/board-descriptor/linux/
install -m 0755 ${S}/bdparser.h ${D}/usr/include/board-descriptor/linux/
}
EXTRA_OEMAKE:append:task-install = " -C ${STAGING_KERNEL_DIR} M=${S}"
KERNEL_MODULE_AUTOLOAD += " board-descriptor "

View File

@ -0,0 +1,22 @@
HOMEPAGE = "http://www.netmodule.com"
LICENSE = "GPL-2.0-only"
LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=b234ee4d69f5fce4486a80fdaf4a4263"
SRC_URI = "git://git.netmodule.intranet/NRSW/netbox_pcie.git;protocol=ssh;user=gitea;branch=master \
"
PV = "1.0+git${SRCPV}"
SRCREV = "b479888720835ae1a03c78531e08ff5f70e26b50"
S = "${WORKDIR}/git"
DEPENDS = "virtual/kernel kernel-module-board-descriptor"
inherit module
KERNEL_CC:append = " -I${STAGING_DIR_TARGET}/usr/include/board-descriptor"
EXTRA_OEMAKE:append:task-install = " -C ${STAGING_KERNEL_DIR} M=${S}"
KERNEL_MODULE_AUTOLOAD += " pcie "

View File

@ -0,0 +1,35 @@
diff --git a/netbox_system_info.c b/netbox_system_info.c
index e6bf81e..823479b 100644
--- a/netbox_system_info.c
+++ b/netbox_system_info.c
@@ -26,7 +26,11 @@
#include <linux/mmc/sdio_func.h>
#include <net/rtnetlink.h>
#include <asm/byteorder.h>
-#include <nbsw.h>
+#define NBSW_VERSION_MAJOR 0
+#define NBSW_VERSION_MINOR 0
+#define NBSW_VERSION_PATCH 0
+#define NBSW_VERSION_BUILD 0
+#define NBSW_VERSION_DATE "20230101000000"
#include <linux/board_descriptor.h>
#include <linux/bdparser.h>
#include <linux/version.h>
diff --git a/netmodule_system_init.c b/netmodule_system_init.c
index dbf3c8b..1fa531b 100755
--- a/netmodule_system_init.c
+++ b/netmodule_system_init.c
@@ -14,7 +14,12 @@
#include <linux/of_device.h>
#include <linux/i2c.h>
#include <linux/board_descriptor.h>
-#include <bd-key.h>
+#ifndef _BD_KEY_H
+#define _BD_KEY_H
+
+static const unsigned char BD_KEY[] = { 0xa1, 0x73, 0x17, 0x9a, 0x5e, 0xf4, 0x42, 0xb9, 0xae, 0x8c,
+ 0xa3, 0xcd, 0x75, 0x63, 0xd3, 0x91, 0x4f, 0x11, 0xf1, 0x7b};
+#endif
#include <misc/nrsw-global.h>
#include "netbox_system_info.h"

View File

@ -0,0 +1,514 @@
diff --git a/netbox-sim.c b/netbox-sim.c
index 3c4eefd..2eb34ee 100644
--- a/netbox-sim.c
+++ b/netbox-sim.c
@@ -579,7 +579,6 @@ int netbox_sim_init (void)
major = 235;
switch (NBHW) {
-#ifdef NBSW_TARGET_netbolt_arm
case 14 :
hwops = &netbox_sim14_ops;
break;
@@ -589,7 +588,6 @@ int netbox_sim_init (void)
case 18 :
hwops = &netbox_sim17_ops;
break;
-#elif defined(NBSW_TARGET_netbird_arm)
case 16 :
hwops = &netbox_sim16_ops;
break;
@@ -605,7 +603,6 @@ int netbox_sim_init (void)
case 26 :
hwops = &netbox_sim26_ops;
break;
-#endif
default :
SIM_LOG(KERN_ERR, "netbox_sim_init: Hardware not supported");
return -1;
diff --git a/netbox-sim.h b/netbox-sim.h
index 336234f..2585ec8 100644
--- a/netbox-sim.h
+++ b/netbox-sim.h
@@ -11,8 +11,6 @@
#ifndef _NETBOX_SIM_H
#define _NETBOX_SIM_H
-#include <nbsw.h>
-
#define SIM_LOG(level, format, arg...) printk(level "sim: " format "\n", ##arg)
#define MAX_SIMS 14
@@ -54,18 +52,13 @@ extern int netbox_sim_init (void);
extern void netbox_sim_uninit (void);
extern void netbox_sim_changed (int dindex, int inserted);
-#ifdef NBSW_TARGET_netbolt_arm
extern struct sim_ops netbox_sim14_ops;
extern struct sim_ops netbox_sim17_ops;
-#endif
-
-#ifdef NBSW_TARGET_netbird_arm
extern struct sim_ops netbox_sim16_ops;
extern struct sim_ops netbox_sim20_ops;
extern struct sim_ops netbox_sim24_ops;
extern struct sim_ops netbox_sim25_ops;
extern struct sim_ops netbox_sim26_ops;
-#endif
#endif /* _NETBOX_SIM_H */
diff --git a/netbox-sim14.c b/netbox-sim14.c
index b00d010..e8c0f03 100644
--- a/netbox-sim14.c
+++ b/netbox-sim14.c
@@ -17,22 +17,17 @@
#include <linux/module.h>
#include <linux/timer.h>
#include <linux/device.h>
-#include <nbsw.h>
#include <linux/board_descriptor.h>
#include "netbox-sim.h"
#include "netbox_system_info.h"
-#if defined(NBSW_TARGET_netbolt_arm)
-
/**********************************************************************/
#include <asm/io.h>
-#if defined(NBSW_TARGET_netbolt_arm)
#define FPGA_BASE_ADDRESS 0xFD000000
#define EXT_IRQ_PIN 24
#include <linux/gpio.h>
-#endif
#define FPGA_BASE_SIZE 131072
#define FPGA_IDENTIFICATION 0x0000
@@ -486,4 +481,3 @@ struct sim_ops netbox_sim14_ops = {
};
EXPORT_SYMBOL(netbox_sim14_ops);
-#endif
diff --git a/netbox-sim16.c b/netbox-sim16.c
index 9120e9a..d40eb94 100644
--- a/netbox-sim16.c
+++ b/netbox-sim16.c
@@ -16,8 +16,6 @@
#include <linux/gpio.h>
#include "netbox-sim.h"
-#ifdef NBSW_TARGET_netbird_arm
-
#define DEBUG 0
/**********************************************************************/
@@ -108,4 +106,3 @@ struct sim_ops netbox_sim16_ops = {
};
EXPORT_SYMBOL(netbox_sim16_ops);
-#endif /* NBSW_TARGET_netbird_arm */
diff --git a/netbox-sim17.c b/netbox-sim17.c
index 8711390..5e70391 100644
--- a/netbox-sim17.c
+++ b/netbox-sim17.c
@@ -17,12 +17,9 @@
#include <linux/module.h>
#include <linux/timer.h>
#include <linux/device.h>
-#include <nbsw.h>
#include <misc/nrsw-global.h>
#include "netbox-sim.h"
-#if defined(NBSW_TARGET_netbolt_arm)
-
/**********************************************************************/
#include <asm/io.h>
@@ -325,4 +322,3 @@ struct sim_ops netbox_sim17_ops = {
};
EXPORT_SYMBOL(netbox_sim17_ops);
-#endif
diff --git a/netbox-sim20.c b/netbox-sim20.c
index d0c4ea3..4e52197 100644
--- a/netbox-sim20.c
+++ b/netbox-sim20.c
@@ -16,8 +16,6 @@
#include <linux/gpio.h>
#include "netbox-sim.h"
-#ifdef NBSW_TARGET_netbird_arm
-
#define DEBUG 0
/**********************************************************************/
@@ -138,4 +136,3 @@ struct sim_ops netbox_sim20_ops = {
};
EXPORT_SYMBOL(netbox_sim20_ops);
-#endif /* NBSW_TARGET_netbird_arm */
diff --git a/netbox-sim24.c b/netbox-sim24.c
index f5e20bf..1601a9f 100644
--- a/netbox-sim24.c
+++ b/netbox-sim24.c
@@ -16,8 +16,6 @@
#include <linux/gpio.h>
#include "netbox-sim.h"
-#ifdef NBSW_TARGET_netbird_arm
-
#define DEBUG 0
/**********************************************************************/
@@ -139,4 +137,3 @@ struct sim_ops netbox_sim24_ops = {
};
EXPORT_SYMBOL(netbox_sim24_ops);
-#endif /* NBSW_TARGET_netbird_arm */
diff --git a/netbox-sim25.c b/netbox-sim25.c
index 05370f8..5b16de5 100644
--- a/netbox-sim25.c
+++ b/netbox-sim25.c
@@ -16,8 +16,6 @@
#include <linux/gpio.h>
#include "netbox-sim.h"
-#ifdef NBSW_TARGET_netbird_arm
-
#define DEBUG 0
/**********************************************************************/
@@ -139,4 +137,3 @@ struct sim_ops netbox_sim25_ops = {
};
EXPORT_SYMBOL(netbox_sim25_ops);
-#endif /* NBSW_TARGET_netbird_arm */
diff --git a/netbox-sim26.c b/netbox-sim26.c
index 050c8e5..cd53d45 100644
--- a/netbox-sim26.c
+++ b/netbox-sim26.c
@@ -16,8 +16,6 @@
#include <linux/gpio.h>
#include "netbox-sim.h"
-#ifdef NBSW_TARGET_netbird_arm
-
#define DEBUG 0
/**********************************************************************/
@@ -140,4 +138,3 @@ struct sim_ops netbox_sim26_ops = {
};
EXPORT_SYMBOL(netbox_sim26_ops);
-#endif /* NBSW_TARGET_netbird_arm */
diff --git a/netbox_system_info.c b/netbox_system_info.c
index e6bf81e..1f7ee01 100644
--- a/netbox_system_info.c
+++ b/netbox_system_info.c
@@ -35,7 +35,7 @@
#include "netbox-sim.h"
#include "../../../drivers/net/wireless/ath/ath9k/ath9k.h"
-#if defined(NBSW_TARGET_netbolt_arm)
+#if defined(CONFIG_ARCH_MVEBU)
extern int mvebu_get_soc_id(u32 *dev, u32 *rev);
#endif
@@ -1197,7 +1197,6 @@ static netbox_dev_t netbox_c_can_dev = {
.gnss_type = 0
};
-#if defined(NBSW_TARGET_netbird_arm)
static netbox_dev_t netbox_uart_gnss_dev = {
/* c_can (CAN) */
.idVendor = 0x00,
@@ -1230,7 +1229,6 @@ static netbox_dev_t netbox_uart_gnss_hw22_dev = {
.gnss_type = GNSS_TYPE_GPS | GNSS_TYPE_GLONASS | GNSS_TYPE_GALILEO |
GNSS_TYPE_QZSS
};
-#endif
static netbox_dev_t * netbox_lookup_dev (uint16_t idVendor, uint16_t idProduct,
const char *product, const char *serial)
@@ -1334,7 +1332,7 @@ static int starts_with (const char* usb_id, const char* prefix)
/*-------------------------------------------------------------------------*/
-#if defined(NBSW_TARGET_netbird_arm)
+#if defined(CONFIG_SOC_AM33XX)
static int nr_usb_controllers (void)
{
static int nr = 0;
@@ -1359,7 +1357,7 @@ static int nr_usb_controllers (void)
int pcie_slot_number_from_usb_id (const char* usb_id)
{
switch (NBHW) {
-#if defined(NBSW_TARGET_netbolt_arm)
+#if defined(CONFIG_SOC_AM33XX)
case 14 :
if ((NBMCver<5) || ((NBMCver==5) && (NBMCrel<=1))) {
/* MC board < 5.2 */
@@ -1427,9 +1425,9 @@ int pcie_slot_number_from_usb_id (const char* usb_id)
} else if (starts_with(usb_id, "1-1.4")) {
return 4;
}
-
break;
-#elif defined(NBSW_TARGET_netbird_arm)
+#endif /* CONFIG_ARCH_MVEBU */
+#if defined(CONFIG_SOC_AM33XX)
case 16 :
if (nr_usb_controllers() == 2) {
/* modems are connected to 2nd USB controller if present */
@@ -1452,7 +1450,7 @@ int pcie_slot_number_from_usb_id (const char* usb_id)
case 26 :
if (starts_with(usb_id, "2-1")) return 0;
break;
-#endif
+#endif /* CONFIG_SOC_AM33XX */
default :
break;
}
@@ -1460,7 +1458,7 @@ int pcie_slot_number_from_usb_id (const char* usb_id)
}
EXPORT_SYMBOL(pcie_slot_number_from_usb_id);
-#if defined(NBSW_TARGET_netbolt_arm)
+#if defined(CONFIG_ARCH_MVEBU)
static int get_pex2_slot(void) {
/* Determine based on the FPGA PCIe mux config to which slot PEX2 is routed */
@@ -1494,7 +1492,7 @@ int pcie_slot_number_from_pdev (struct pci_dev *pdev)
if (!pdev) return -1;
-#if defined(NBSW_TARGET_netbolt_arm)
+#if defined(CONFIG_ARCH_MVEBU)
switch (NBHW) {
case 14 :
if (NBMCver >= 4) {
@@ -1525,7 +1523,7 @@ int pcie_slot_number_from_pdev (struct pci_dev *pdev)
default:
break;
}
-#endif
+#endif /* CONFIG_ARCH_MVEBU */
return slot;
}
@@ -1789,7 +1787,7 @@ static void free_usb_devices (void)
/*-------------------------------------------------------------------------*/
-#if defined(NBSW_TARGET_netbolt_arm)
+#if defined(CONFIG_ARCH_MVEBU)
static int add_pci_device (struct pci_dev * pdev, void * user_data)
{
@@ -1816,7 +1814,9 @@ static void find_pci_devices (void)
pci_probed = 1;
}
-#else
+#endif
+
+#if defined(CONFIG_SOC_AM33XX)
static void find_pci_devices (void)
{
@@ -1836,7 +1836,7 @@ int sdio_slot_number_from_func (struct sdio_func *func)
{
int slot = -1;
-#ifdef NBSW_TARGET_netbird_arm
+#if defined(CONFIG_SOC_AM33XX)
switch (NBHW) {
case 16:
case 20:
@@ -1852,7 +1852,7 @@ int sdio_slot_number_from_func (struct sdio_func *func)
return slot;
}
-#if defined(NBSW_TARGET_netbird_arm)
+#if defined(CONFIG_SOC_AM33XX)
static int add_sdio_device (struct sdio_func *func)
{
return add_device_list(&sdio_devices, func->vendor, func->device, sdio_slot_number_from_func(func), NULL);
@@ -2682,7 +2682,7 @@ static void check_buses (void)
netbox_dev_t *nbdev;
tmpdev_t *d;
-#if defined(NBSW_TARGET_netbird_arm)
+#if defined(CONFIG_SOC_AM33XX)
uint16_t shield;
int res;
#endif
@@ -2780,7 +2780,7 @@ static void check_buses (void)
add_can_interface(nbdev, d->slot, d->bus, d->hwinfo);
}
-#if defined(NBSW_TARGET_netbird_arm)
+#if defined(CONFIG_SOC_AM33XX)
if ((NBHW==20) || /* NBHW20 has a built in GNSS on slot 2 */
(NBHW==22) || /* NBHW22 has a built in GNSS on slot 0 */
(NBHW==24) || /* NBHW24 has a built in GNSS on slot 2 */
@@ -2842,7 +2842,7 @@ unlock:
#define BLMAGIC_START 0x424C5354
#define BLMAGIC_END 0x424C454E
-#if defined(NBSW_TARGET_netbolt_arm)
+#if defined(CONFIG_ARCH_MVEBU)
static int read_uboot_version_from_part(const char* path)
{
struct file *f;
@@ -2917,7 +2917,7 @@ static int armada_read_mmc_uboot_version (void)
return rc;
}
-#elif defined(NBSW_TARGET_netbird_arm)
+#elif defined(CONFIG_SOC_AM33XX)
static const char* get_sitara_boot_device(void)
{
@@ -5047,7 +5047,13 @@ static const struct proc_ops proc_release_version_fops = {
static int proc_nbsw_profile_show (struct seq_file *seq, void *v)
{
- seq_printf(seq, "%s\n", NBSW_PROFILE);
+#if defined(CONFIG_ARCH_MVEBU)
+ seq_printf(seq, "%s\n", "NETBOLT");
+#elif defined(CONFIG_SOC_AM33XX)
+ seq_printf(seq, "%s\n", "NETBIRD");
+#else
+#error "unknown target"
+#endif
return 0;
}
@@ -5104,7 +5110,7 @@ static const struct proc_ops proc_release_date_fops = {
/*-------------------------------------------------------------------------*/
-#ifdef NBSW_TARGET_netbird_arm
+#if defined(CONFIG_SOC_AM33XX)
static int sitara_read_spl_version_from_location(const int location, char* version, int version_length)
{
@@ -5168,10 +5174,6 @@ static int proc_spl_version_show (struct seq_file *seq, void *v)
return 0;
}
-#endif
-
-#if defined(NBSW_TARGET_netbird_arm)
-
static int proc_spl_version_open (struct inode *inode, struct file *file)
{
return single_open(file, proc_spl_version_show, PDE_DATA(inode));
@@ -5193,15 +5195,15 @@ static const struct proc_ops proc_spl_version_fops = {
.proc_release = single_release,
};
#endif
-#endif /* NBSW_TARGET_netbird_arm */
+#endif /* CONFIG_SOC_AM33XX */
/*-------------------------------------------------------------------------*/
static int proc_uboot_version_show (struct seq_file *seq, void *v)
{
-#if defined(NBSW_TARGET_netbolt_arm)
+#if defined(CONFIG_ARCH_MVEBU)
armada_read_mmc_uboot_version();
-#elif defined(NBSW_TARGET_netbird_arm)
+#elif defined(CONFIG_SOC_AM33XX)
sitara_read_mmc_uboot_version();
#endif
if (uboot_version != 0xFFFFFFFF) {
@@ -5241,7 +5243,7 @@ static const struct proc_ops proc_uboot_version_fops = {
static int proc_cpuinfo_show (struct seq_file *seq, void *v)
{
-#if defined(NBSW_TARGET_netbolt_arm)
+#if defined(CONFIG_ARCH_MVEBU)
{
u32 dev, rev;
char* rev_str;
@@ -5266,7 +5268,7 @@ static int proc_cpuinfo_show (struct seq_file *seq, void *v)
}
seq_printf(seq, "MV%4.4X Rev %s (0x%2.2x)\n", dev, rev_str, rev);
}
-#elif defined(NBSW_TARGET_netbird_arm)
+#elif defined(CONFIG_SOC_AM33XX)
{
void* iomap;
unsigned int device_id, rev, part, mfgr;
@@ -5509,7 +5511,7 @@ static void usbport_probe (struct usb_device *hdev, int port)
if (usbports_probed) return;
switch (NBHW) {
-#ifdef NBSW_TARGET_netbolt_arm
+#if defined(CONFIG_ARCH_MVEBU)
case 14 :
if (NBMCver == 0) {
/* happens early, check if MC version has been provided on cmdline */
@@ -5566,7 +5568,8 @@ static void usbport_probe (struct usb_device *hdev, int port)
if (usbports[0]) probed++;
}
break;
-#elif defined(NBSW_TARGET_netbird_arm)
+#endif /* CONFIG_ARCH_MVEBU */
+#if defined(CONFIG_SOC_AM33XX)
case 16 :
case 24 :
case 25 :
@@ -5586,7 +5589,7 @@ static void usbport_probe (struct usb_device *hdev, int port)
if (usbports[0]) probed = MAX_NUMBER_OF_USBPORTS;
}
break;
-#endif
+#endif /* CONFIG_SOC_AM33XX */
default:
break;
}
@@ -5898,7 +5901,6 @@ int netbox_system_info_prepare (void)
if (NRSW_SYSTEM_INFO_DIR) return 0;
-#ifdef NBSW_TARGET_netbolt_arm
switch (NBHW) {
case 14 :
MAX_NUMBER_OF_WWAN_INTERFACES = 6;
@@ -5929,11 +5931,6 @@ int netbox_system_info_prepare (void)
MAX_NUMBER_OF_CAN_INTERFACES = 4;
MAX_NUMBER_OF_UART_INTERFACES = 2;
break;
- default :
- break;
- }
-#elif defined(NBSW_TARGET_netbird_arm)
- switch (NBHW) {
case 16 :
MAX_NUMBER_OF_WWAN_INTERFACES = 1;
MAX_NUMBER_OF_WLAN_INTERFACES = 1;
@@ -5988,7 +5985,7 @@ int netbox_system_info_prepare (void)
default :
break;
}
-#endif
+
NRSW_SYSTEM_INFO_DIR = proc_mkdir("sysinfo", NULL);
if (!NRSW_SYSTEM_INFO_DIR) return -1;
@@ -6104,9 +6101,9 @@ int netbox_system_info_prepare (void)
proc_create_data(SI_RELEASE_VERSION, S_IRUGO, dir, &proc_release_version_fops, (void *) 0);
proc_create_data(SI_NBSW_PROFILE, S_IRUGO, dir, &proc_nbsw_profile_fops, (void *) 0);
proc_create_data(SI_RELEASE_DATE, S_IRUGO, dir, &proc_release_date_fops, (void *) 0);
-#if defined(NBSW_TARGET_netbird_arm)
+#if defined(CONFIG_SOC_AM33XX)
proc_create_data(SI_SPL_VERSION, S_IRUGO, dir, &proc_spl_version_fops, (void *) 0);
-#endif /* NBSW_TARGET_netbird_arm */
+#endif /* CONFIG_SOC_AM33XX */
proc_create_data(SI_UBOOT_VERSION, S_IRUGO, dir, &proc_uboot_version_fops, (void *) 0);
proc_create_data(SI_CPU_INFO, S_IRUGO, dir, &proc_cpuinfo_fops, (void *) 0);
proc_create_data(SI_MODULES_PROBED, S_IRUGO, dir, &proc_modules_probed_fops, (void *) 0);

View File

@ -0,0 +1,28 @@
HOMEPAGE = "http://www.netmodule.com"
LICENSE = "GPL-2.0-only"
LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=b234ee4d69f5fce4486a80fdaf4a4263"
SRC_URI = "git://git.netmodule.intranet/NRSW/system-info.git;protocol=ssh;user=gitea;branch=master \
file://0001-dummy-version-info-and-bd-key.patch \
"
PV = "1.0+git${SRCPV}"
SRCREV = "9ac224b6411758ec399518b0781659f1d8b7beb7"
S = "${WORKDIR}/git"
DEPENDS = "virtual/kernel kernel-module-board-descriptor kernel-module-pcie"
inherit module
KERNEL_CC:append = " -I${STAGING_DIR_TARGET}/usr/include/board-descriptor"
do_install:append() {
install -d ${D}/usr/include/system-info/linux/
install -m 0755 ${S}/netbox_system_info.h ${D}/usr/include/system-info/linux/
}
EXTRA_OEMAKE:append:task-install = " -C ${STAGING_KERNEL_DIR} M=${S}"
KERNEL_MODULE_AUTOLOAD += " system-info "

View File

@ -0,0 +1,26 @@
DESCRIPTION = "Fpga images"
LICENSE = "Proprietary"
LIC_FILES_CHKSUM = "file://${COREBASE}/meta/files/common-licenses/Proprietary;md5=0557f9d92cf58f2ccdd50f62f8ac0b28"
inherit deploy
COMPATIBLE_MACHINE = "(netmodule-hw17|netmodule-hw18)"
SRC_URI = "file://LG00000000"
PACKAGE_ARCH = "${MACHINE_ARCH}"
PV = "1.0.0"
do_install () {
install -d ${D}/logic
install -m 0644 ${WORKDIR}/LG00000000 ${D}/logic/
}
do_deploy () {
cp ${WORKDIR}/LG00000000 ${DEPLOYDIR}/fpga-image-${MACHINE}
}
FILES:${PN} += "/logic/LG00000000"
addtask deploy before do_build after do_compile

View File

@ -0,0 +1,44 @@
From 52c3ac31426131c555093542d51f1e6e0623507c Mon Sep 17 00:00:00 2001
From: Marc Mattmueller <marc.mattmueller@netmodule.com>
Date: Mon, 18 Jul 2022 19:26:59 +0200
Subject: [PATCH] u-boot-armada: Remove redundant YYLOC global declaration
Same as the upstream fix for building dtc with gcc 10.
After having consulted the team, this patch is only applied to
the armada bootloader as this one is used on the core os
environment build-up.
Signed-off-by: Marc Mattmueller <marc.mattmueller@netmodule.com>
---
scripts/dtc/dtc-lexer.l | 1 -
scripts/dtc/dtc-lexer.lex.c_shipped | 1 -
2 files changed, 2 deletions(-)
diff --git a/scripts/dtc/dtc-lexer.l b/scripts/dtc/dtc-lexer.l
index fd825ebba6..24af549977 100644
--- a/scripts/dtc/dtc-lexer.l
+++ b/scripts/dtc/dtc-lexer.l
@@ -38,7 +38,6 @@ LINECOMMENT "//".*\n
#include "srcpos.h"
#include "dtc-parser.tab.h"
-YYLTYPE yylloc;
extern bool treesource_error;
/* CAUTION: this will stop working if we ever use yyless() or yyunput() */
diff --git a/scripts/dtc/dtc-lexer.lex.c_shipped b/scripts/dtc/dtc-lexer.lex.c_shipped
index 3934d8624d..22f6e0d1f8 100644
--- a/scripts/dtc/dtc-lexer.lex.c_shipped
+++ b/scripts/dtc/dtc-lexer.lex.c_shipped
@@ -639,7 +639,6 @@ char *yytext;
#include "srcpos.h"
#include "dtc-parser.tab.h"
-YYLTYPE yylloc;
extern bool treesource_error;
/* CAUTION: this will stop working if we ever use yyless() or yyunput() */
--
2.20.1

View File

@ -0,0 +1,27 @@
require u-boot-nm.inc
SRC_URI = "git://git.netmodule.intranet/nmrouter/u-boot.git;protocol=ssh;user=gitea;branch=nrsw-armada-2017.11 \
file://0001-remove-redundant-YYLOC-declaration.patch;name=yylloc \
"
SRC_URI[yylloc.md5sum] = "504cb5b73a174a32e55c58f60608925d"
DEPENDS += "bc-native"
SRCREV = "2fe363eb69a360c9e9b6bd53dfdab32772b2f41a"
UBOOT_SUFFIX = "kwb"
UBOOT_BINARY = "u-boot-spl.${UBOOT_SUFFIX}"
do_deploy() {
# xmodem files
cp ${B}/spl/u-boot-spl.bin ${DEPLOYDIR}/spl-u-boot-${MACHINE}.xmodem.bin
cp ${B}/u-boot.bin ${DEPLOYDIR}/u-boot-${MACHINE}.xmodem.bin
# file for wic file
cp ${B}/${UBOOT_BINARY} ${DEPLOYDIR}/u-boot-spl.${UBOOT_SUFFIX}
# file for user usage
cp ${B}/${UBOOT_BINARY} ${DEPLOYDIR}/u-boot-${MACHINE}.${UBOOT_SUFFIX}
}

View File

@ -0,0 +1,19 @@
require recipes-bsp/u-boot/u-boot.inc
LICENSE = "GPL-2.0-only"
LIC_FILES_CHKSUM = "file://Licenses/README;md5=a2c678cfd4a4d97135585cad908541c6"
S = "${WORKDIR}/git"
B = "${WORKDIR}/build"
do_configure[cleandirs] = "${B}"
UBOOT_INITIAL_ENV = ""
# This variable is set to "0" in distro in order to get reproducible build
# It is however not needed for uboot and unsetting it allows us to keep the build date in uboot output
unset SOURCE_DATE_EPOCH
# CFLAGS are unset by u-boot.inc
# The user flags should be passed by KCFLAGS, but for some reason, it does not work
# KCCPFLAGS on the other hand also end in the actual cflags
export KCPPFLAGS = "-DCONFIG_NRSW_BUILD"

View File

@ -0,0 +1,22 @@
require u-boot-nm.inc
SRC_URI = "git://git.netmodule.intranet/nmrouter/u-boot.git;protocol=ssh;user=gitea;branch=nrsw-sitara-2016.04"
SRCREV = "66fb8f8532ba174b14542c0c8a0245818df14f02"
SPL_BINARY = "MLO"
UBOOT_SUFFIX = "img"
do_deploy() {
# xmodem files
cp ${B}/spl/u-boot-spl.bin ${DEPLOYDIR}/spl-u-boot-${MACHINE}.xmodem.bin
cp ${B}/u-boot.bin ${DEPLOYDIR}/u-boot-${MACHINE}.xmodem.bin
# files for wic file
cp ${B}/MLO ${DEPLOYDIR}/
cp ${B}/u-boot.img ${DEPLOYDIR}/
# files for user usage
cp ${B}/MLO ${DEPLOYDIR}/spl-u-boot-${MACHINE}.${UBOOT_SUFFIX}
cp ${B}/u-boot.img ${DEPLOYDIR}/u-boot-${MACHINE}.${UBOOT_SUFFIX}
}

View File

@ -666,7 +666,7 @@ CONFIG_MSDOS_PARTITION=y
# CONFIG_ULTRIX_PARTITION is not set
# CONFIG_SUN_PARTITION is not set
# CONFIG_KARMA_PARTITION is not set
# CONFIG_EFI_PARTITION is not set
CONFIG_EFI_PARTITION=y
# CONFIG_SYSV68_PARTITION is not set
# CONFIG_CMDLINE_PARTITION is not set
# end of Partition Types

View File

@ -669,7 +669,7 @@ CONFIG_MSDOS_PARTITION=y
# CONFIG_ULTRIX_PARTITION is not set
# CONFIG_SUN_PARTITION is not set
# CONFIG_KARMA_PARTITION is not set
# CONFIG_EFI_PARTITION is not set
CONFIG_EFI_PARTITION=y
# CONFIG_SYSV68_PARTITION is not set
# CONFIG_CMDLINE_PARTITION is not set
# end of Partition Types
@ -1368,7 +1368,7 @@ CONFIG_GRO_CELLS=y
CONFIG_NET_DEVLINK=y
CONFIG_PAGE_POOL=y
# CONFIG_FAILOVER is not set
# CONFIG_ETHTOOL_NETLINK is not set
CONFIG_ETHTOOL_NETLINK=y
CONFIG_HAVE_EBPF_JIT=y
#

View File

@ -5,7 +5,7 @@ require recipes-kernel/linux/linux-yocto.inc
require kernel-modules-autoload.inc
GIT_BRANCH = "nmlinux-kernel-upgrade"
GIT_BRANCH = "nmlinux-5.15"
GIT_OPTIONS = "protocol=ssh;user=gitea;branch=${GIT_BRANCH};nocheckout=1"
SRC_URI = "\
git://git.netmodule.intranet/NRSW/nmlinux-kernel.git;${GIT_OPTIONS} \
@ -16,10 +16,11 @@ SRC_URI = "\
LIC_FILES_CHKSUM = "file://COPYING;md5=6bc538ed5bd9a7fc9398086aedcd7e46"
LINUX_VERSION ?= "5.10.80"
KERNEL_VERSION_SANITY_SKIP="1"
LINUX_VERSION = "5.15"
LINUX_VERSION_EXTENSION = "-netmodule"
SRCREV="85f5f38b6ced73852a213bba35fb83102b7aa167"
SRCREV = "5a18cd05107545cb6f971c01126a13fc6a5d7eb6"
PV = "${LINUX_VERSION}+git${SRCPV}"

View File

@ -0,0 +1,13 @@
# Dual root partition for sitara devices
part SPL --offset 256S --source rawcopy --sourceparams="file=MLO" --ondisk mmcblk1 --part-name "spl" --no-table
part u-boot --offset 768S --source rawcopy --sourceparams="file=u-boot.img" --ondisk mmcblk1 --part-name "uboot0" --no-table
part u-boot --offset 6912S --source rawcopy --sourceparams="file=u-boot.img" --ondisk mmcblk1 --part-name "uboot1" --no-table
part / --source rootfs --fstype=ext4 --ondisk mmcblk1 --fixed-size 1G --label "rootfs0"
part / --source rootfs --fstype=ext4 --ondisk mmcblk1 --fixed-size 1G --label "rootfs1"
# Shared data partition to be extended on live system
part /data --fstype=ext4 --ondisk mmcblk1 --size 100M --label "data" --part-name "data"
bootloader --ptable gpt

View File

@ -0,0 +1,11 @@
# Dual root partition for armada devices
bootloader --ptable gpt
part u-boot --source rawcopy --sourceparams="file=u-boot-spl.kwb" --ondisk mmcblk --no-table --align 384
part / --source rootfs --fstype=ext4 --ondisk mmcblk0 --fixed-size 1G --label "rootfs0"
part / --source rootfs --fstype=ext4 --ondisk mmcblk0 --fixed-size 1G --label "rootfs1"
# Shared data partition
part /data --fstype=ext4 --ondisk mmcblk0 --size 100M --label data

View File

@ -0,0 +1,23 @@
do_assemble_fitimage[depends] += "fpga-image:do_deploy"
#
# Emit the fitImage ITS fpga section
#
# $1 ... .its filename
# $2 ... Image counter
# $3 ... Path to fpga image
fitimage_emit_section_kernel:append() {
fpgacount=1
cat << EOF >> ${1}
fpga-${fpgacount} {
description = "FPGA";
data = /incbin/("${DEPLOY_DIR_IMAGE}/fpga-image-${MACHINE}");
type = "fpga";
arch = "${UBOOT_ARCH}";
compression = "none";
hash-1 {
algo = "sha1";
};
};
EOF
}

View File

@ -0,0 +1,109 @@
# This class generate a fitimage
# This class should ihnerited after the nwl-image class
# Configuration:
# ==============================================================================
# Set the initramfs to the current image being build by default
# This can be overriden if another image as to be included
INITRAMFS_IMAGE ??= "${IMAGE_BASENAME}"
INITRAMFS_IMAGE_NAME ??= "${INITRAMFS_IMAGE}-${MACHINE}"
# Glue for kernel-fitimage
# ==============================================================================
kernel_do_deploy () {
# The kernel-fitimage class appends the deployment to this task. We just have to provide the task.
deployDir=${DEPLOY_DIR_IMAGE}
}
inherit kernel-fitimage
inherit kernel-arch
inherit ${@bb.utils.contains('MACHINE_FEATURES', 'fpga', 'kernel-fitimage-fpga', '', d)}
do_assemble_fitimage:prepend() {
install -d ${S}/arch/${ARCH}/boot/
install -m 0644 ${DEPLOY_DIR_IMAGE}/${KERNEL_IMAGETYPE}-${KERNEL_IMAGE_LINK_NAME}${KERNEL_IMAGE_BIN_EXT} ${S}/arch/${ARCH}/boot/vmlinuz.bin
for DTB in ${KERNEL_DEVICETREE}; do
# We have to watch out for when the device-tree is located in its own subdirectory in the kernel sources.
# DTB_SUBDIR will contain this directory.
DTB_DEPLOY=`basename ${DTB}`
DTB_SUBDIR=`dirname ${DTB}`
install -d arch/${ARCH}/boot/${DTB_SUBDIR}
install -m 0644 ${DEPLOY_DIR_IMAGE}/${DTB_DEPLOY} ${S}/arch/${ARCH}/boot/${DTB}
done
}
KERNEL_CLASSES = "kernel-fitimage"
KERNEL_IMAGETYPES += "fitImage"
# We want the initramfs inside the fitimage as a separate part and not bundle
# inside the kernel part
INITRAMFS_IMAGE_BUNDLE = "0"
do_image_fitimage() {
kernel_do_deploy
}
addtask image_fitimage after do_image before do_image_complete
addtask assemble_fitimage_initramfs after do_image before do_image_fitimage
addtask assemble_fitimage after do_image before do_image_fitimage
do_assemble_fitimage_initramfs[depends] += "virtual/kernel:do_deploy virtual/${TARGET_PREFIX}binutils:do_populate_sysroot"
do_assemble_fitimage[depends] += "virtual/kernel:do_deploy virtual/${TARGET_PREFIX}binutils:do_populate_sysroot"
# a fitimage image can be embedded into a WIC image
do_image_wic[recrdeptask] += "do_image_fitimage"
python __anonymous () {
initramfs = d.getVar('INITRAMFS_IMAGE')
image = d.getVar('IMAGE_BASENAME')
if image == initramfs:
# If the initramfs is the same as the image being build, we should
# not depend on do_image_complete but on do_image_${FSTYPE_WITHOUT_EXT}
fstype = d.getVar('IMAGE_FSTYPES').split('.')[0]
d.appendVarFlag('do_assemble_fitimage_initramfs', 'recrdeptask', f' do_image_{fstype}')
depends = d.getVarFlag('do_assemble_fitimage_initramfs', 'depends')
depends = depends.replace(f'{initramfs}:do_image_complete', '')
d.setVarFlag('do_assemble_fitimage_initramfs', 'depends', depends)
# If the initramfs is the same as the image being build, it should
# come from IMGDEPLOYDIR instead of DEPLOY_DIR_IMAGE
# This is done by using an ugly monkey patching of the
# fitimage_assemble function
imgdeploydir = d.getVar('IMGDEPLOYDIR')
deploy_dir_image = d.getVar('DEPLOY_DIR_IMAGE')
task = d.getVar('fitimage_assemble')
task = task.replace(f'initramfs_path="{deploy_dir_image}', f'initramfs_path="{imgdeploydir}')
d.setVar('fitimage_assemble', task)
}
# Glue for coreos-image-ci.bbclass
# ==============================================================================
def get_nwl_fitimage_ci_artifacts(d):
bundle = d.getVar('INITRAMFS_IMAGE_BUNDLE')
initramfs = d.getVar('INITRAMFS_IMAGE_NAME')
# We only support fitimage with INITRAMFS_IMAGE_BUNDLE set to 0
if bundle == "1":
bb.warn(f"Adding a fitimage built with INITRAMFS_IMAGE_BUNDLE into COREOS_CI_DEPLOY_ARTIFACTS is currently not supported")
return ""
# If an initramfs is used, publish the fitImage that contains it
# otherwise the image without an initramfs
if initramfs.strip() != "":
return "fitImage-${INITRAMFS_IMAGE_NAME}-${KERNEL_FIT_LINK_NAME}"
else:
return "fitImage-linux.bin-${KERNEL_FIT_LINK_NAME}"
# Add the generated fitImage to the list of artifacts to publish in the CI
COREOS_CI_DEPLOY_ARTIFACTS += "${@get_nwl_fitimage_ci_artifacts(d)}"

View File

@ -1,8 +1,7 @@
# Remove EFI support for machines which don't support it
EFI = "${@bb.utils.contains("MACHINE_FEATURES", "efi", "1", "0", d)}"
COREOS_IMAGE_GENERATE_UKI = "${EFI}"
COREOS_IMAGE_GENERATE_INSTALLER = "${EFI}"
COREOS_IMAGE_GENERATE_SWU = "${EFI}"
# Base classe for all image based on NWL
inherit coreos-image
IMAGE_INSTALL:append = " \
packagegroup-nwl-core \
"

View File

@ -13,14 +13,6 @@ MAINTAINER = "Netmodule Software Teams"
DISTRO_VERSION = "2023.03"
DISTRO_CODENAME = "NWL 2023 Edition (DRAFT)"
# Use by default the in-tree developers set of keys for Secure Boot
COREOS_EFI_SECUREBOOT_KEYDIR ?= "${NWL_ROOT}/layers/meta-nwl-distro/files/keys"
# CoreOS ensure that COREOS_EFI_SECUREBOOT_KEYDIR has a vardep on the
# hash of each used keys. We don't have to depends on the full path
# to NWL_ROOT in the hash of COREOS_EFI_SECUREBOOT_KEYDIR
COREOS_EFI_SECUREBOOT_KEYDIR[vardepsexclude] = "NWL_ROOT"
# Here you can override settings from the CoreOS distro or from
# OpenEmbedded-core. But keep in mind that the CoreOS team doesn't support
# all the features of OpenEmbedded-Core. We have added some checks for some
@ -36,8 +28,24 @@ DISTRO_FEATURES:remove = "ptest virtualization"
PACKAGECONFIG:pn-systemd = "usrmerge rfkill kmod timedated vconsole"
# systemd-conf provides a packageconfig for a default dhcp client that we don't need
PACKAGECONFIG:pn-systemd-conf = ""
PACKAGECONFIG:pn-networkmanager = "systemd nss gnutls wifi bluez5 nmcli"
PACKAGECONFIG:pn-networkmanager = "systemd nss gnutls wifi bluez5 nmcli modemmanager"
# NetworkManager is starting dnsmasq when it needs it for AP mode
SYSTEMD_AUTO_ENABLE:pn-dnsmasq = "disable"
PACKAGECONFIG:pn-bluez5 = "systemd udev"
# Wit busybox "less" the output of "nmcli c" does not show up properly
# ModemManager is started by wwan-config
SYSTEMD_AUTO_ENABLE:pn-modemmanager = "disable"
PACKAGECONFIG:pn-modemmanager = "systemd qmi"
EXTRA_OEMESON:pn-modemmanager = "-Dauto_features=disabled -Dplugin_generic=enabled"
# Enable the python3 bindings for libgpiod
PACKAGECONFIG:append:pn-libgpiod = " python3"
# With busybox "less" the output of "nmcli c" does not show up properly
RDEPENDS:networkmanager-nmcli += "less"
# Dependency to meta-netmodule-wlan
# Reduce priority as we want only what we explicitly take from this layer
BBFILE_PRIORITY_netmodule-wlan = "1"

View File

@ -9,7 +9,8 @@ BBFILE_COLLECTIONS += "meta-nwl-distro"
BBFILE_PATTERN_meta-nwl-distro = "^${LAYERDIR}/"
BBFILE_PRIORITY_meta-nwl-distro = "6"
LAYERDEPENDS_meta-nwl-distro = "core"
LAYERDEPENDS_meta-nwl-distro = "core netmodule-wlan"
LAYERSERIES_COMPAT_meta-nwl-distro = "kirkstone"
# Set a variable to get to the top of the metadata location

View File

@ -1,19 +0,0 @@
-----BEGIN CERTIFICATE-----
MIIDBzCCAe+gAwIBAgIUMBZqg8KVjLqv+5xzlrr//O78ys0wDQYJKoZIhvcNAQEL
BQAwEzERMA8GA1UEAwwIVEVTVF9LRUswHhcNMjMwNzI2MDg0MDU2WhcNMjQwNzI1
MDg0MDU2WjATMREwDwYDVQQDDAhURVNUX0tFSzCCASIwDQYJKoZIhvcNAQEBBQAD
ggEPADCCAQoCggEBALVZOmvAVYvmOjMITsZiGlKfeafohprnKyC/MEttlceBzwEu
DSXbvXaGpoaT+SsDkutcJIMkfVte4EEM7m7tmzfJT10++++saG7wzFRfn4qCiz7s
NVGp7lSQGwPKlqToHtEc3n62Ni9/t2opMbjAMh4MigYmmhgRb0EjubnxkQi02oXQ
b6vAMsqxsWgHTHQIqMQrMpWP+rxwVB2/0u4GfUvyROIP77gUweINaiaZFNwg5j/M
HbNpE/YIzvOO1iiut7fGuRq8nzKsRa6v/5sQxpQCiFhEeW+L2TBBLWcn38HkGhZQ
HL1wrMwIFnxhts+c/iXX/04hX7XLaE2VP8WbZq8CAwEAAaNTMFEwHQYDVR0OBBYE
FGd2nYmDABv3X2xX5ChFTBGAPT9NMB8GA1UdIwQYMBaAFGd2nYmDABv3X2xX5ChF
TBGAPT9NMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBAK+PrMYv
/Riu59mNJBBg0IQ5Lg8njkZDJkTUNoPqfduxI8hShCVTazZTOUISrPCKvYWpti4r
8OAuw/17vBcQzHa2ayJwaiKYL/xC94xxcMwZDsfIul/2TvMsUjh8Tbl6stVLhI5J
Yga+ytHKkBvTw7whW7uqZAlynk1lkFlCuK5/rTD+WcZADat2kcXVw4ILUSP2QNIj
HSW3q7YaerxUavPyUiYHTMmjMQtaqjvRv6AZaOFiPvl5/s0HIK2yfwGGyMbXgR/M
70lqHtrgLORkAruWv35v16BBNaX1rQHholk+HIsjg1kTcjS5Tg9NAF1TAKH4G6LL
YvNkqBtolbJKmjs=
-----END CERTIFICATE-----

View File

@ -1,28 +0,0 @@
-----BEGIN PRIVATE KEY-----
MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQC1WTprwFWL5joz
CE7GYhpSn3mn6Iaa5ysgvzBLbZXHgc8BLg0l2712hqaGk/krA5LrXCSDJH1bXuBB
DO5u7Zs3yU9dPvvvrGhu8MxUX5+Kgos+7DVRqe5UkBsDypak6B7RHN5+tjYvf7dq
KTG4wDIeDIoGJpoYEW9BI7m58ZEItNqF0G+rwDLKsbFoB0x0CKjEKzKVj/q8cFQd
v9LuBn1L8kTiD++4FMHiDWommRTcIOY/zB2zaRP2CM7zjtYorre3xrkavJ8yrEWu
r/+bEMaUAohYRHlvi9kwQS1nJ9/B5BoWUBy9cKzMCBZ8YbbPnP4l1/9OIV+1y2hN
lT/Fm2avAgMBAAECggEAT5LwnJlPsEx8myn5Dvm7HSgXBMN2VQA8n2jlMyPJxjpC
b/0aDdOnBhw9c+34NpSh4h6TcuwPCYnPExwuf4RJSKhP59WcTOW1CYEl15wB8JAp
s5mIJ+ZNytNU10wM4B1ucEmfo7AmhJ8hBzc+Nxg2pZLQ+bP0h70WuVmIxHuoLU4X
f+V3x0jl5Dgeh0L+j61b6jDYcQmVZmldugj+HxoyJPXZ3z3VcCBHzcX+JdA1YQtz
9YwH6njxFUs6sTIWpavIphWy7oiulGhRj+8sU6cDpO932T0oLrvFVIPCM1yVSw+k
h23wb8I20CN/qdjc8nk9uQ1kJfGhbEFCYq+QoQ6F+QKBgQD26N/yhslAVUH+tYQK
gaQwYJMowj32b77WHIxnTSxmrCZ+Hjelpx57fuBilgvAJtlwxZpd8PJM8fUQff4S
ob8YGrOg7qLzmtWLnx5VREYekLl6aHsOIlnaQLnsGUHEj6NQfn/2U4BRLv9G1zI+
Y1SzwfX8QRFOFP9Q6tZXSd7A2wKBgQC8BnB/BmN2jqEgDF3eud+L6mAC5o7Jv/8X
Xi1/w6OImzhm/poVb9pU5cFAZdzqJ9oIg78YAKERFHjfdLHtASZ1RF7DR2ysVxFC
R5xPYMttmyfTE/umgIRLwkljMZ5ZTRNvPDkpT0n0BkXxs7D45XB7cEYPzgvUAhwb
ezEKSc2fvQKBgFHBIgXn41NN56Ay8hmYe4kZMSDZ0DJ9Ja83nLXHs9/7OHOiBcLv
5wP1Ks7558IkGvNgOpDIazJXG1HupeX9cIzGqpuq6IHIztSAR0bsaFtOiFujpLs1
XJMLw4QNiN1Qwj6w5CXn2CEJcrU+JADMWwt6Obzgvp4gDbn5SCd26i7pAoGABpcP
MFSP/eLH4PCuBZVsMWI4lUFxdb7F+RKy84xu2eXe1zVLPz8ZXupimJg5Yvecm7nK
Y9P50ThveB2F8vGcYHXSAHQraervTuxlnR6eYqwSfEJyCobsnB8mJVTi4Oxjpv1s
X3dI90WVBACxTjf0dk8cFYe6QGcGhywNLvghPd0CgYEAwHu7S16k/+5JL81QrJMS
lGUxdJ7xgPZp6G2lnzHKrumUXsE7u9efB3t5RauDX51dLOqaJGzoTVF403Cx/Xps
kWkWiN8r7g22gHvYWO43mvVyGZ+VUsu5D50gndaDdoCfWoHRZ6UbBPdhAztI/ePU
kUM2jC74IiCINRyszkcfEUw=
-----END PRIVATE KEY-----

View File

@ -1,19 +0,0 @@
-----BEGIN CERTIFICATE-----
MIIDBTCCAe2gAwIBAgIUaqd3t7MrDxsQCyBIp+ldFIexS+YwDQYJKoZIhvcNAQEL
BQAwEjEQMA4GA1UEAwwHVEVTVF9QSzAeFw0yMzA3MjYwODQwNTZaFw0yNDA3MjUw
ODQwNTZaMBIxEDAOBgNVBAMMB1RFU1RfUEswggEiMA0GCSqGSIb3DQEBAQUAA4IB
DwAwggEKAoIBAQDio1QgioSSx8tzr2YfYFxwxMZvONXTBgyEo1qH9eVnDhd/nN66
odj0JOWQ6ZxZ1thAA94M0k9uNM60AYd4IPJfIok//MQbICzKbpSp8sTePBui2dxx
/Su3lkNim9ZkQ5hjbJHhogzF31DfSRhUej9mr5yzDjD+liGtvRKbLZ4RCEx3WeDn
taS3YojRNBXoNKumr/e6m+qACh9lOswAgAFw0FvS6v5j3y2AzBhL76pBNJ2+phzv
uDk2xFGz5Hwa2JnjdwbjFJTGMpHRoI8m9PCM9fTAXmgwTaXgP3/6d4HgxHyIyNMK
oPkPUp26CxpXeP+x6XfHlcUZdE3Agg4TTmaBAgMBAAGjUzBRMB0GA1UdDgQWBBSh
s2prPUwajZ++I9D8NqQprrUlPTAfBgNVHSMEGDAWgBShs2prPUwajZ++I9D8NqQp
rrUlPTAPBgNVHRMBAf8EBTADAQH/MA0GCSqGSIb3DQEBCwUAA4IBAQBBhsVJzuy2
BMJft7nzLjplh5234R03/YMieMG3ryOclPaAj8nuEkIRzgE3uJdS/121T2A5wReW
Pg6o21bPGljXHHGFS6Xh2bav3WLWtB8G2HXQ5xum0sXcj58cNc3DGEq/ECDT+wcX
Y2RL3RHMZflSndXtcGnqT+9PrgCKaNaxtrIoIWk8SI6p2LEcHbidDiEJ5JHvUr4r
BWhLsgKmoGCDQsOPAz6ZXZPR34VF56BAVBLAJPymFiV5O/GGL99UfHhEXBO5kPt3
ha1iPedOfxge+nRuGYxlGF0bcA7gZhPPzuy5rZSTZtXaNMWf8/Hteo18muX3aDqr
ekkVlpgnXEeJ
-----END CERTIFICATE-----

View File

@ -1,28 +0,0 @@
-----BEGIN PRIVATE KEY-----
MIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQDio1QgioSSx8tz
r2YfYFxwxMZvONXTBgyEo1qH9eVnDhd/nN66odj0JOWQ6ZxZ1thAA94M0k9uNM60
AYd4IPJfIok//MQbICzKbpSp8sTePBui2dxx/Su3lkNim9ZkQ5hjbJHhogzF31Df
SRhUej9mr5yzDjD+liGtvRKbLZ4RCEx3WeDntaS3YojRNBXoNKumr/e6m+qACh9l
OswAgAFw0FvS6v5j3y2AzBhL76pBNJ2+phzvuDk2xFGz5Hwa2JnjdwbjFJTGMpHR
oI8m9PCM9fTAXmgwTaXgP3/6d4HgxHyIyNMKoPkPUp26CxpXeP+x6XfHlcUZdE3A
gg4TTmaBAgMBAAECggEAKzOAC03sNICCPzSNjmiTZmmT+8qFM9sA0t3CmY0dY/YT
M5+m80N7tBo+ak+lnphuE1HJZ39FZdgKGNT7ykHZgZn3OKvJg/QvpYzLqNOehFBH
4lSOCWp9hVrO0IKtLOKXr0gYTL7TmXpWk6F+0keVQ1ExWQ5Y94aNt+0FGXBqI4uq
ENDH3UfFIIZjtoyO4xLa3FBqj19lNsj/RIGAo/H2RgOUAIoG8N6uHBszROd48w1H
CUgdtCCL1YE2zoDcAcmFTUFI1KA6y5t7n248ZRkRlDZVeeGDSCcH9zFkiy41Vpct
Ej7BPdCU/t6F3axqXahtkDAAuRKfWjytoVa8iekX0wKBgQD2k0oee/4qaIv5M0Xx
ZNRcptMCkmX354XfFcWMgLchK1oloZNtLjvntgXmiK6jAGCR8yG1NWFwOB2vhgE0
UuqU+Ah4JMJHivYVlqhUzFVASYt1XLIrxglHDVq05gfkMjUwVUavB90KPHXwLTJE
/5iMvyBO7NCJxGXtnwsKw5fKhwKBgQDrTPRbibb1BSCDSCTZHoyVYxTFX5Tyuas3
Wu2bRmTWo/RsZHhAumemlOIjX/6gRMn2SYAvH4j7V9+V4SFprrajEDQaACwYbRP8
31yaUAUPbx4b1VgCY0XVS6CCExQOVQdT9YsQueNcmhZ2HU/aELN0InMSwyf+9F90
vEGU79ZgtwKBgBcw+0OqvdkXRDMIE4gEx8R/HFGdm2GZsQmuboosgQzpmuz3KXqX
YqMEh8GLEYHbQzn2+DCm+KcpYAFmRS66rb2dJo7GRk+cTlDxfpubLFmDkU5UjZ14
Xt8D7ogdKpjX8BC/tIo53xxbW2xfk97Re3OhdlR2CZcrlbqnvs4gX2J5AoGBALeM
oTVi2SCLLlCaj3v7E6lY0BQjOnqZkVEuEhnFMNYqsXl4akH75u0QSNNVh7gX0P/Z
WC/qRp3ib1xocPsSug+7jRkXN06akDP7PS5262udv3vw0aWTMR9wzjWJkmSXuY6q
BSA4EX7kCE99EBRIYORgFyn0qJd+o5PZYsM+0BlDAoGBALCEcSsZYWAX+k6/6EsA
kax0KscOFHji62PSLuWJX7PdLyGeAFnIKfm6X/RKXTInH+1dLJI/BXPuxrKIQFjB
CUrhmcwdSZ690mQLogT1tFAAt4+FfdGn8cnlPn9r8je/+6AR4sHUkbDTUJgBE3YG
/OVVo+MW242kcym893qgkPS/
-----END PRIVATE KEY-----

View File

@ -1,19 +0,0 @@
-----BEGIN CERTIFICATE-----
MIIDBTCCAe2gAwIBAgIUL8w6OMWe5milePbOVue9IyI4pG4wDQYJKoZIhvcNAQEL
BQAwEjEQMA4GA1UEAwwHVEVTVF9kYjAeFw0yMzA3MjYwODQwNTZaFw0yNDA3MjUw
ODQwNTZaMBIxEDAOBgNVBAMMB1RFU1RfZGIwggEiMA0GCSqGSIb3DQEBAQUAA4IB
DwAwggEKAoIBAQCbGXtPx/xRCDHqPkUSC/g08eH4IQHW2ku7IJwGd3MOfB+hMLVN
YSMNNx2ltFguPm+bh1rDsT+6Lq+RiXf++KXjzpy7ShRyBQ6Xjy5hfz0hR6CtDonG
RpBmndgwl2yUVhpdgD0BZzhqO5OzmONqZpP968yIRts7Xl1zF2Z63/EiWdOY5m6Y
WaE3inRr2W0GttJ55eqVFeBRTX2tASyrh+b1NvWlo52phs/EAb2CCE+cUC82S68Q
tMsyvIGGNRiBr9tQ5x9rRtPIens8AK9/H9K8rG+ldXcAsop8C4SvQg+hBW8ViHEu
9EQ1c9N3vA+KE3IP91jvRMP3HONxDWok4pjXAgMBAAGjUzBRMB0GA1UdDgQWBBRl
oRIc0AjAlJG4xzJAYA3RqoPVAzAfBgNVHSMEGDAWgBRloRIc0AjAlJG4xzJAYA3R
qoPVAzAPBgNVHRMBAf8EBTADAQH/MA0GCSqGSIb3DQEBCwUAA4IBAQBCnMDK+noa
oYJZZ4H1dvqnjAk2C9Wy2UpeNbM6igFRQUgK6W/4WbUDeHktVB2/X5CqwYJxLC+Y
S1qNVUiabS4MuuXfGCdvJIcPRUcnx1RIUQL2VpE7I9Z1LQ1qAvJt5Bx1eyKdy/+O
wYMHQAAcd7lQuwnFLtOgHrOqHOtcp8jiltCoivEIyc+RyZrhq+w8xkZOvhIJ+Nxv
lo41xQKcXHU1bVV7O0FEyFv7Sj+VRo/Os2Eesk1mEYDiqYfF2mEvFnY+tj8e7jxJ
N9lRS7mb/5iBObZp6sv2y4afJfzAXDPEt7QVMDORjUqPHhIlkjCpE0/AIwbJVnvd
5x4tiZjDcVZZ
-----END CERTIFICATE-----

View File

@ -1,28 +0,0 @@
-----BEGIN PRIVATE KEY-----
MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQCbGXtPx/xRCDHq
PkUSC/g08eH4IQHW2ku7IJwGd3MOfB+hMLVNYSMNNx2ltFguPm+bh1rDsT+6Lq+R
iXf++KXjzpy7ShRyBQ6Xjy5hfz0hR6CtDonGRpBmndgwl2yUVhpdgD0BZzhqO5Oz
mONqZpP968yIRts7Xl1zF2Z63/EiWdOY5m6YWaE3inRr2W0GttJ55eqVFeBRTX2t
ASyrh+b1NvWlo52phs/EAb2CCE+cUC82S68QtMsyvIGGNRiBr9tQ5x9rRtPIens8
AK9/H9K8rG+ldXcAsop8C4SvQg+hBW8ViHEu9EQ1c9N3vA+KE3IP91jvRMP3HONx
DWok4pjXAgMBAAECggEAORiyWnZmnnYD2hW+W5xobSU2aJ/OC4glJOgmSAMlKgnr
ou1JcQj3XGAT2/J+G9gEQh8b/Lp9mU6id1NCB20FtM1UyWXGDQtricO98Upj+KJj
thGKCqHjesNU2N6FrD3eStlwm9mh3Qm9n/oCjiLhDDMIAosDHeHpSPsuUMGsBVa0
zDcmcpujgb/aHWw5Iy9yy2Po+M4X2faLljZWwwFvgBDhftlVRGyZOwuUc+TxL6/v
HEmYGhsDiEle6XiqcV0hVt0obeic7yxQOPEahWbwLdLjrO+Wx1GaTsxbwfqLWU0g
ut8Te8+8RJiZGdT2mbtbkGiXrN2CbcPfkCvuzDE/UQKBgQDaLtEus8s6tVo9lvh/
phtb0mwY9dQ7gekrbjVmlHl1Yrtc4UTP4u1MwKu1B8t6Oe0s3i2iYtre2z1F6MmR
cr1wweN4PNAZ5/6jwsTDDfUEAWPq+vriics5YmyCL9nLaBk4b7/3TZNpmBn/UuOu
JpFeAhLC3QG9XubHF0mEcKPicwKBgQC1+4ng0jg3jQofTdx29yDND5q1ftbZHx5Q
n9g4gR8Y9Gr8ETox3GVfiKTAIzaE53UfzEHpEmj756XdggxZIkNvHxWoIAsEEiwY
nI3ztz9rIQfx+10FVY9VrgTZDDYlv9NMcUg6cEuGbH0lKiZoqRLyVcqGWgWTF2Qg
gnll54RDDQKBgF3aK7M6Nd6gKhw6N9S5ACXEYyltfYjHfiRneOMSVRjQiqYOZMpD
5C3S50ms+7Ms/cACJoEmot2gU0AiPaqqP6EkVhPfnOi36cpJutfoxg+eBXwL0CXo
fhnGI8TwjnA37DlhoKLhpNqUSgKRhkzgXEGjBKz74oayLvVPKBmnVmfPAoGAditM
MMzQ7GGNPR6WFjoK9p03XLtsT7jBOqFRCf/ubYnpHp0hKNdwjERylsFG2a5ig69i
7TGjMlANiHS2B/sTxshsi6ui+5XBRIoEM0m+yJW+TwdmM9yHIp/JThd74a9aSb0V
pbzdjgBMkyF3p2aCgxHqXKuACy+ZOPMAWYeoftECgYEAjKEUKfsZIZfgHicZYxbZ
gVrIG/ifGKpzPdFYtR2Yq0F7/ECrKf4VRRpfVbs+KPOfaSYtlE400MecOgLsxK76
LMaSsuJB/YURrUjjR7O5orupVAlIG8tblBiAwx5VAsFTfyw4WVcHP+AJ+kYUuCB0
JriD7XK6yHORwPka9yD+SYg=
-----END PRIVATE KEY-----

View File

@ -0,0 +1,69 @@
DESCRIPTION = "WWAN modems configuration tool"
LICENSE = "Proprietary"
LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/Proprietary;md5=0557f9d92cf58f2ccdd50f62f8ac0b28"
RDEPENDS:${PN} += " \
python3-pyserial \
libgpiod-python \
python3-setuptools \
python3-systemd \
lmsensors-sensors \
lmsensors-config-libsensors \
"
DEPENDS = "python3-setuptools-scm-native"
inherit gitpkgv systemd allarch
# Package Version (built from tags)
PKGV = "${GITPKGVTAG}"
# Recipe Version
PV = "1.0-git${SRCPV}"
PR = "r1"
SRCREV = "a943fa76d5385c3f9bc54023c6fcf8b7bf339fd1"
SRC_URI = "git://gitlab.com/netmodule/tools/wwan-config.git;protocol=ssh;user=git;branch=master \
file://wwan-config@.service \
file://default.conf \
file://0001-Hotfixes-for-gemini.patch \
file://0002-hotfix-for-kirkstone.patch \
"
S = "${WORKDIR}/git"
inherit setuptools3_legacy
# Should be set by machine.conf
WWAN_NBR ??= "1"
do_install:append() {
install -d ${D}/${systemd_unitdir}/system/
install -m 0644 ${WORKDIR}/wwan-config@.service ${D}/${systemd_unitdir}/system/
install -d ${D}/${sysconfdir}/wwan
if [ ! -z "${WWAN_NBR}" ] ; then
install -d ${D}${sysconfdir}/systemd/system/multi-user.target.requires/
for i in `seq 0 ${WWAN_NBR}`; do
if [ $i = ${WWAN_NBR} ]; then continue; fi
if [ "${SYSTEMD_AUTO_ENABLE}" = "enable" ] ; then
ln -sf ${systemd_unitdir}/system/wwan-config@.service \
${D}${sysconfdir}/systemd/system/multi-user.target.requires/wwan-config@wwan$i.service
fi
install -m 0644 ${WORKDIR}/default.conf ${D}${sysconfdir}/wwan/wwan$i.conf
if [ ! -z "${NM_WWAN_APN}" ]; then
sed -i 's/apn=/apn=${NM_WWAN_APN}/g' ${D}${sysconfdir}/wwan/wwan$i.conf
fi
if [ ! -z "${NM_WWAN_USER}" ]; then
sed -i 's/user=/user=${NM_WWAN_USER}/g' ${D}${sysconfdir}/wwan/wwan$i.conf
fi
if [ ! -z "${NM_WWAN_PASSWORD}" ]; then
sed -i 's/password=/password=${NM_WWAN_PASSWORD}/g' ${D}${sysconfdir}/wwan/wwan$i.conf
fi
done
fi
}

View File

@ -0,0 +1,68 @@
From 3ffd1a9c0b42c32e720f05b36b6b837fb1ea8c46 Mon Sep 17 00:00:00 2001
From: Alexandre Bard <alexandre.bard@netmodule.com>
Date: Thu, 22 Feb 2024 17:21:09 +0100
Subject: [PATCH] Hotfixes for gemini
- Handling HUB_RST and GSM_RST lines
- Using GSM_EN instead of GSM_PWR
- Using gpio line EXT_SUPPLY_EN0 instead of "kernel" supply
Signed-off-by: Alexandre Bard <alexandre.bard@netmodule.com>
---
wwan_config/modems/wwan_modem.py | 28 +++++++++++++++++++++++-----
1 file changed, 23 insertions(+), 5 deletions(-)
diff --git a/wwan_config/modems/wwan_modem.py b/wwan_config/modems/wwan_modem.py
index 710ec76..cc12a53 100755
--- a/wwan_config/modems/wwan_modem.py
+++ b/wwan_config/modems/wwan_modem.py
@@ -25,8 +25,24 @@ class WwanModem:
def __init__(self, device_name):
self.name = device_name
- self.pwr_line = gpiod.find_line('GSM_PWR')
+
+ # Start by disabling the power supply
+ self.supply_line = gpiod.find_line('EXT_SUPPLY_EN0')
+ self.supply_line.request(consumer=self.name, type=gpiod.LINE_REQ_DIR_OUT, default_vals=[0])
+
+ # Release all RST lines
+ self.hub_rst_line = gpiod.find_line('HUB_RST~')
+ self.hub_rst_line.request(consumer=self.name, type=gpiod.LINE_REQ_DIR_OUT, default_vals=[1])
+
+ self.rst_line = gpiod.find_line('GSM_RST')
+ self.rst_line.request(consumer=self.name, type=gpiod.LINE_REQ_DIR_OUT, default_vals=[0])
+
+
+ # Prepare the the PWR line for the pulse
+ self.pwr_line = gpiod.find_line('GSM_EN')
self.pwr_line.request(consumer=self.name, type=gpiod.LINE_REQ_DIR_OUT, default_vals=[0])
+ time.sleep(1)
+
while True:
try:
@@ -34,7 +50,11 @@ class WwanModem:
break
except ModemNotPoweredException as e:
logger.error("The modem did not power up, turning power off and on again")
- self.power_down()
+ try:
+ self.power_down()
+ except PwrNotControllableException as e:
+ logger.error("The power cannot be controlled, not shutting down, the only we can do is wait...");
+
# Make sure the power is down long enough to avoid a glitch
# With toby-l2 this down time must be at least 130ms
time.sleep(1)
@@ -158,9 +178,7 @@ class WwanModem:
raise ModemNotPoweredException()
def set_pwr_state(self, value):
- state = "enabled" if value == 1 else "disabled"
- with open("/sys/devices/platform/" + self.name + "-supply/state", "w") as supply_file:
- supply_file.write(state + "\n")
+ self.supply_line.set_value(value)
def power_up(self):
logger.info("modem power up")

View File

@ -0,0 +1,26 @@
From a2b92fb896bdf2c5579676f05df4fcc7c488d94f Mon Sep 17 00:00:00 2001
From: Alexandre Bard <alexandre.bard@netmodule.com>
Date: Thu, 22 Feb 2024 17:28:56 +0100
Subject: [PATCH] hotfix for kirkstone
With the upgrade from dunfell to kirkstone, setuptools-git-version does
not exists anymore.
Signed-off-by: Alexandre Bard <alexandre.bard@netmodule.com>
---
setup.py | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/setup.py b/setup.py
index 8009e49..88415ae 100755
--- a/setup.py
+++ b/setup.py
@@ -5,7 +5,7 @@ from setuptools import setup, find_packages
setup(
name='wwan_config',
version_format='{tag}.{commitcount}+{gitsha}',
- setup_requires=['setuptools-git-version'],
+ setup_requires=['setuptools-scm'],
description='WWAN modem configurator',
author='Alexandre Bard',
author_email='alexandre.bard@netmodule.com',

View File

@ -0,0 +1,51 @@
#
# This file is part of wwan-config service
#
# Define a private APN to be used by the modem
# ! ONLY REQUIRED WHEN USING UBLOX TOBY-L2, will be ignored for other modems
#
# Required fields:
# apn: Name of the access point
# user: Username used to authenticate on APN
# password: Password used to authenticate on APN
#
[apn]
apn=
user=
password=
#
# Select the SIM card to be used by the modem
#
# auto: The script will detect if a physical SIM card is
# present and switch to eSIM if it is not the case
# sim1: Use the physical SIM card on the main board
# m2m: Use the eSIM of the main board
# ui-top: Use the SIM card that is on top of the User Interface
# ui-btm: Use the SIM card that is on the bottom of the User Interface
#
[sim]
SIM=auto
#
# ublox specific configurations:
#
# mode (+UBMCONF) :
# - Router : The modem will act as router and DHCP server.
# - Bridge : The modem will only act as a Bridge between the local and the GSM network.
#
# usb_profile (+UUSBCONF) :
# ! ONLY USED WITH TOBY-L2, will be ignored for other modems
# Select between different network/usb interfaces :
# - RNDIS
# - ECM
#
[ublox]
mode=Bridge
usb_profile=ECM

View File

@ -0,0 +1,18 @@
[Unit]
Description=WWAN configurator for device %I
[Service]
Type=forking
ExecStart=/usr/bin/wwan-config %I
PIDFile=/run/%I.pid
Restart=on-failure
Nice=-20
# Start time may include power cycles and start of ModemManager
TimeoutStartSec=180
# The default kill mode is killing the subprocesses created by the "os.system"
# calls used to stop ModemManager when handling the kill signal.
KillMode=mixed
[Install]
RequiredBy=multi-user.target

View File

@ -1,47 +0,0 @@
SUMMARY = "Create a fitimage with included kernel, dtb and ramdisk"
MAINTAINER = "Lucien Müller <lucien.mueller@netmodule.com>"
LICENSE = "CLOSED"
inherit kernel-fitimage
inherit kernel-arch
inherit deploy
PACKAGE_ARCH = "${MACHINE_ARCH}"
KERNEL_CLASSES = "kernel-fitimage"
KERNEL_IMAGETYPES += "fitImage"
addtask assemble_fitimage_initramfs before do_install after do_compile
addtask do_deploy after assemble_fitimage_initramfs
do_configure[depends] += "virtual/kernel:do_deploy"
do_bundle_initramfs[depends] += "${INITRAMFS_IMAGE}:do_image_complete"
do_deploy[depends] += "${PN}:do_assemble_fitimage"
INITRAMFS_IMAGE = "nwl-ramdisk-minimal"
INITRAMFS_IMAGE_NAME = "${INITRAMFS_IMAGE}-${MACHINE}"
INITRAMFS_IMAGE_BUNDLE = "0"
do_configure:prepend () {
install -d ${S}/arch/${ARCH}/boot/
for DTB in ${KERNEL_DEVICETREE}; do
# We have to watch out for when the device-tree is located in its own subdirectory in the kernel sources.
# DTB_SUBDIR will contain this directory.
DTB_DEPLOY=`basename ${DTB}`
DTB_SUBDIR=`dirname ${DTB}`
install -d arch/${ARCH}/boot/${DTB_SUBDIR}
install -m 0644 ${DEPLOY_DIR_IMAGE}/${DTB_DEPLOY} arch/${ARCH}/boot/${DTB}
done
install -m 0644 ${DEPLOY_DIR_IMAGE}/${KERNEL_IMAGETYPE}-${KERNEL_IMAGE_LINK_NAME}.bin arch/${ARCH}/boot/vmlinuz.bin
}
kernel_do_deploy () {
# The kernel-fitimage class appends the deployment to this task. We just have to provide the task.
}
do_deploy () {
deployDir=${DEPLOY_DIR_IMAGE}
kernel_do_deploy
}

View File

@ -1,22 +1,27 @@
SUMMARY = "A minimal ramdisk image."
MAINTAINER = "Lucien Müller <lucien.mueller@netmodule.com>"
COREOS_IMAGE_GENERATE_INSTALLER = "0"
COREOS_IMAGE_GENERATE_UKI = "0"
COREOS_IMAGE_GENERATE_SWU = "0"
inherit nwl-image
inherit nwl-image-fitimage
# Overwrite definition from nwl-image-fitimage to get rid of default artifacts from
# coreos like u-boot
COREOS_CI_DEPLOY_ARTIFACTS = "${@get_nwl_fitimage_ci_artifacts(d)}"
IMAGE_FSTYPES = "cpio.xz"
# Keep only the minimum packages
NO_RECOMMENDATIONS = "1"
COREOS_IMAGE_GENERATE_INSTALLER = "0"
COREOS_IMAGE_GENERATE_UKI = "0"
COREOS_IMAGE_GENERATE_SWU = "0"
EXTRA_IMAGE_FEATURES = "debug-tweaks ssh-server"
IMAGE_INSTALL:append = " \
coreutils \
ncurses-terminfo-base \
nwl-tests \
\
networkmanager-nmcli \
systemd-conf \
nwl-tests-kernel \
bmap-tools \
xz \
"

View File

@ -12,6 +12,22 @@ inherit nwl-image
# NWL specific files can be added as well:
# COREOS_CI_DEPLOY_ARTIFACTS += "${IMAGE_LINK_NAME}.custom.binary"
# Components required by uboot to boot an installed image
IMAGE_INSTALL:append = "\
kernel-devicetree \
${@bb.utils.contains('MACHINE_FEATURES', 'fpga', 'fpga-image', '', d)} \
"
# Add features and packages that are used in our tests:
IMAGE_FEATURES += "ssh-server networkmanager swupdate"
IMAGE_INSTALL:append = " packagegroup-core-full-cmdline swupdate-www"
IMAGE_INSTALL:append = " \
packagegroup-core-full-cmdline \
swupdate-www \
nwl-tests \
packagegroup-nwl-test-tools \
"
IMAGE_FSTYPES += "wic.xz wic.bmap"

View File

@ -0,0 +1,33 @@
inherit packagegroup
DESCRIPTION = "Base packages required for the NWL Distro"
PACKAGE_ARCH = "${MACHINE_ARCH}"
NRSW_MODULES = " \
kernel-module-board-descriptor \
kernel-module-system-info \
kernel-module-pcie \
"
TI_WIFI_PACKAGES = " \
firmware-ti-wl18xx \
"
WIFI_PACKAGES = " \
${@bb.utils.contains("MACHINE_FEATURES", "ti-wifi", "${TI_WIFI_PACKAGES}", "", d)} \
"
RDEPENDS:${PN} = " \
coreutils \
ncurses-terminfo-base \
networkmanager-nmcli \
dnsmasq \
systemd-conf \
\
kernel-modules \
${@bb.utils.contains("MACHINE_FEATURES", "nrsw-ready", "${NRSW_MODULES}", "", d)} \
\
${@bb.utils.contains("MACHINE_FEATURES", "wifi", "${WIFI_PACKAGES}", "", d)} \
"

View File

@ -0,0 +1,24 @@
inherit packagegroup
DESCRIPTION = "Common tools convenient for testing the features of NWL"
RDEPENDS:${PN} = " \
hostapd \
\
gps-utils \
\
can-utils \
\
libgpiod-tools \
\
chrony \
minicom \
\
udev-rules-nmhw \
\
modemmanager \
wwan-config \
\
gnss-mgr \
"

View File

@ -0,0 +1,25 @@
# Copyright (C) 2019 Ramon Moesching <ramon.moesching@netmodule.com>
# Released under the MIT license (see COPYING.MIT for the terms)
DESCRIPTION = "udev rules for netmodule router and oem hardware"
HOMEPAGE = "netmodule.com"
LICENSE = "MIT"
LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/MIT;md5=0835ade698e0bcf8506ecda2f7b4f302"
SECTION = "base"
S = "${WORKDIR}/git"
SRC_URI = "git://gitlab.com/netmodule/tools/udev-rules-nmhw;protocol=ssh;user=git;branch=master;"
SRCREV = "e2fe34ea2d0c1ebd08d26bf90197b5625765e242"
do_install () {
install -d ${D}${libdir}/udev/rules.d
if ls ${S}/machines/${MACHINE}/*.rules 1> /dev/null 2>&1 ; then
install -m 0644 ${S}/machines/${MACHINE}/*.rules ${D}${libdir}/udev/rules.d/
if [ -f ${S}/machines/${MACHINE}/*.sh ]; then
install -m 0755 ${S}/machines/${MACHINE}/*.sh ${D}${libdir}/udev/rules.d/
fi
fi
}

View File

@ -0,0 +1,51 @@
DESCRIPTION = "NetModule GNSS management tool"
LICENSE = "LGPL-3.0-only"
LIC_FILES_CHKSUM = "file://LICENSE;md5=3000208d539ec061b899bce1d9ce9404"
RDEPENDS:${PN} += " \
python3-setuptools \
nmubxlib \
python3-systemd \
"
DEPENDS = "python3-setuptools-scm-native"
inherit setuptools3
inherit gitpkgv
inherit systemd
SYSTEMD_SERVICE:${PN} = "gnss-mgr.service"
inherit allarch
# Package Version (built from tags)
PKGV = "${GITPKGVTAG}"
# Recipe Version
PV = "1.0-git${SRCPV}"
PR = "r1"
SRC_URI = "git://gitlab.com/netmodule/tools/gnssmgr.git;protocol=ssh;user=git;branch=master \
file://0001-setup.py-Make-compatible-with-kirkstone.patch \
file://0002-gnss-mgr.service-Hotfix-for-gemini.patch \
"
SRCREV = "3d80bb4871ddc2e3e84553a86b767b419b96148f"
S = "${WORKDIR}/git"
PACKAGES =+ "${PN}-test"
SUMMARY:${PN}-test = "Addon to gnss-mgr for testing purposes"
FILES:${PN}-test = "${bindir}/gnss-config-reader"
do_install:append() {
install -d ${D}${sysconfdir}/gnss
install -m 0644 ${S}/config/gnss-neom8.conf ${D}${sysconfdir}/gnss/gnss0.conf
install -d ${D}/${sbindir}/
install -m 0755 ${S}/systemd/gnss-mgr-service.py ${D}${sbindir}/gnss-mgr-service
install -d ${D}/${systemd_unitdir}/system/
install -m 0644 ${S}/systemd/gnss-mgr.service ${D}/${systemd_unitdir}/system/
# Test tool
install -d ${D}${bindir}/
install -m 0755 ${S}/testing/gnss-config-reader.py ${D}${bindir}/gnss-config-reader
}

View File

@ -0,0 +1,23 @@
From e1dc9e6a5e683dd8ed09a319d06ef0be8d0022cb Mon Sep 17 00:00:00 2001
From: Alexandre Bard <alexandre.bard@netmodule.com>
Date: Tue, 27 Feb 2024 11:33:39 +0100
Subject: [PATCH] setup.py: Make compatible with kirkstone
Signed-off-by: Alexandre Bard <alexandre.bard@netmodule.com>
---
setup.py | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/setup.py b/setup.py
index 8d3714e..cda325e 100644
--- a/setup.py
+++ b/setup.py
@@ -5,7 +5,7 @@ from setuptools import setup, find_packages
setup(
name='gnss_mgr',
version_format='{tag}.{commitcount}+{gitsha}',
- setup_requires=['setuptools-git-version'],
+ setup_requires=['setuptools-scm'],
description='GNSS Manager',
author='Marc Mattmüller',
author_email='marc.mattmueller@netmodule.com',

View File

@ -0,0 +1,34 @@
From 88eb6099cecfaa344dee3cacec54db0cd24f542f Mon Sep 17 00:00:00 2001
From: Alexandre Bard <alexandre.bard@netmodule.com>
Date: Thu, 29 Feb 2024 15:03:02 +0100
Subject: [PATCH] gnss-mgr.service: Hotfix for gemini
Start the gnss receiver as part of the service startup because it is not
started automatically.
Signed-off-by: Alexandre Bard <alexandre.bard@netmodule.com>
---
systemd/gnss-mgr.service | 5 +++--
1 file changed, 3 insertions(+), 2 deletions(-)
diff --git a/systemd/gnss-mgr.service b/systemd/gnss-mgr.service
index 4694bee..2aa0a9b 100644
--- a/systemd/gnss-mgr.service
+++ b/systemd/gnss-mgr.service
@@ -1,13 +1,14 @@
[Unit]
Description=GNSS Manager
-Requires=dev-gnss0.device
-After=dev-gnss0.device
[Service]
Type=oneshot
RemainAfterExit=yes
+ExecStartPre=/bin/sh -c 'gpioset $(gpiofind "GNSS_RST~")=1'
+ExecStartPre=sleep 5
ExecStart=/usr/sbin/gnss-mgr-service start
ExecStop=/usr/sbin/gnss-mgr-service stop
+ExecStopPost=/bin/sh -c 'gpioset $(gpiofind "GNSS_RST~")=0'
ExecReload=/usr/sbin/gnss-mgr-service reload
StandardOutput=null

View File

@ -0,0 +1,15 @@
TTY_DEVICE = "/dev/gnss0"
USBAUTO_STATE = "false"
do_install:append () {
sed -i 's|DEVICES=""|DEVICES="${TTY_DEVICE}"|g' ${D}/etc/default/gpsd.default
sed -i 's|USBAUTO="true"|USBAUTO="${USBAUTO_STATE}"|g' ${D}/etc/default/gpsd.default
sed -i "s/GPSD_OPTIONS=\"\(.*\)\"/GPSD_OPTIONS=\"\1 -s 115200\"/g" \
${D}${sysconfdir}/default/gpsd.default
}
# Service is started by gnss-mgr
SYSTEMD_AUTO_ENABLE = "disable"

View File

@ -0,0 +1,24 @@
DESCRIPTION = "Library implementing UBX protocol for u-blox gnss modems"
LICENSE = "MIT"
LIC_FILES_CHKSUM = "file://LICENSE;md5=331a9220a74b05f133bf1ef09b6903b2"
RDEPENDS:${PN} += " \
python3-setuptools \
"
DEPENDS = "python3-setuptools-scm-native"
inherit setuptools3
inherit gitpkgv
# Package Version (built from tags)
PKGV = "${GITPKGVTAG}"
# Recipe Version
PV = "1.0-git${SRCPV}"
PR = "r1"
SRC_URI = "git://gitlab.com/netmodule/tools/nmubxlib.git;protocol=ssh;user=git;branch=master"
SRCREV = "7c22b57cdd169a6651cb0c17a215d1e448727bcb"
S = "${WORKDIR}/git"

View File

@ -7,20 +7,16 @@ SRC_URI = "git://git@bitbucket.gad.local:7999/nm-nsp/nwl-test.git;protocol=ssh;b
PV = "1.0+git${SRCPV}"
SRCREV = "8a3c5de105eb290342ed67e7cbeecb0879da1384"
SRCREV = "9989fb3c439db711ecaef4a8e8eb60f88533eccc"
S = "${WORKDIR}/git"
PACKAGES += "${PN}-kernel"
RDEPENDS:${PN}-kernel = "${PN} bats"
RDEPENDS:${PN} = "bats"
FILES:${PN} = "${datadir}/*"
FILES:${PN}-kernel = "${bindir}/nwl-tests-kernel"
FILES:${PN} += "${bindir}/*"
do_install () {
install -d ${D}${bindir}
install -m 0755 ${S}/kernel-tests/kernel-tests.bats ${D}${bindir}/nwl-tests-kernel
install -d ${D}${datadir}/nwl-tests
install -m 0644 ${S}/hardware-specifications/* ${D}${datadir}/nwl-tests/
make install PREFIX=${D}${prefix}
}

View File

@ -0,0 +1,18 @@
# We have a conf and classes directory, add to BBPATH
BBPATH .= ":${LAYERDIR}"
# We have recipes-* directories, add to BBFILES
BBFILES += "${LAYERDIR}/recipes-*/*/*.bb \
${LAYERDIR}/recipes-*/*/*.bbappend"
BBFILE_COLLECTIONS += "nwl-marvell-bsp"
BBFILE_PATTERN_nwl-marvell-bsp = "^${LAYERDIR}/"
BBFILE_PRIORITY_nwl-marvell-bsp = "7"
# This should only be incremented on significant changes that will
# cause compatibility issues with other layers
LAYERVERSION_nwl-marvell-bsp = "1"
LAYERDEPENDS_nwl-marvell-bsp = "core meta-belden-coreos"
LAYERSERIES_COMPAT_nwl-marvell-bsp = "kirkstone"

View File

@ -0,0 +1,70 @@
#@TYPE: Machine
#@NAME: cn9131-nitroc
#@DESCRIPTION: Belden NetModule CN9131 NITROC
#
# cn913x is from Marvell octeon tx2 family, but it's based on a cortex-A72
# so we can't use the armv8-2a/tune-octeontx2.inc (armv8a vs arm8-2a)
# instead we can use the older octeontx family previously known as thunderx
require conf/machine/include/arm/armv8a/tune-thunderx.inc
# SOC_FAMILY is added to MACHINE_OVERRIDES in the soc-family.inc file
SOC_FAMILY = "cn913x"
require conf/machine/include/soc-family.inc
# Bootloader configuration
# *****************************************************************************
PREFERRED_PROVIDER_virtual/bootloader = "u-boot"
PREFERRED_VERSION_u-boot ?= "2020.10-marvell"
# Set the configuration and device tree for Nitroc
UBOOT_MACHINE = "nitroc_defconfig"
UBOOT_BUILDENV_DEVICE_TREE ??= "cn9131-nitroc-v1"
# Kernel configuration
# ******************************************************************************
PREFERRED_PROVIDER_virtual/kernel ?= "linux-nitroc"
PREFERRED_VERSION_linux-netmodule ?= "v6.6.y%"
PREFERRED_VERSION_trusted-firmware-a ?= "2.9"
KERNEL_IMAGETYPE = "Image"
KERNEL_DEFCONFIG ?= "nitroc_defconfig"
KERNEL_DEVICETREE ?= "\
marvell/cn9131-nitroc-v1.dtb \
marvell/cn9131-nitroc-m12.dtb \
marvell/cn9131-nitroc-rj45.dtb \
"
# getty configuration
# ******************************************************************************
SERIAL_CONSOLES = "115200;ttyS0"
SERIAL_CONSOLES_CHECK ?= "${SERIAL_CONSOLES}"
APPEND += "console=ttyS0,115200"
# Image generation
# ******************************************************************************
# Ensure that both flash-image.bin and boot.scr are generated as they are needed
# for a wic image
do_image_wic[depends] += "trusted-firmware-a:do_deploy"
WKS_FILE = "cn913x-sdcard.wks.in"
COREOS_INSTALLER_WKS_FILE ?= "cn913x-sdcard-installer.wks"
IMAGE_FSTYPES += "wic.xz wic.bmap"
COREOS_IMAGE_SWUPDATE_EXTRACLASSES += " coreos-image-swupdate-cn913x"
# No watchdog available yet
EFIBOOTGUARD_TIMEOUT ?= "0"
require conf/machine/include/coreos-generic-features/efi.inc
require conf/machine/include/coreos-generic-features/partitions.inc
### Device specific settings
# Kernel modules are not essential for booting but are needed for most things
MACHINE_EXTRA_RDEPENDS += "kernel-modules"
# Device trees are included in the unified kernel and not needed in the rootfs
# MACHINE_EXTRA_RDEPENDS += "kernel-devicetree"
# Needed for phy firmware
MACHINE_EXTRA_RDEPENDS += "linux-firmware-ath11k"
MACHINE_EXTRA_RDEPENDS += "linux-firmware-ath10k"

View File

@ -0,0 +1,29 @@
DESCRIPTION = "Marvell binaries like the system controller firmware"
LICENSE = "MIT"
LIC_FILES_CHKSUM = "file://README.md;md5=bbdf038ac62317d3a12a067c50dadc61"
SRC_URI = "git://git@bitbucket.gad.local:7999/nm-nsp/binaries-marvell.git;protocol=ssh;user=git;branch=nitroc"
# Modify these as desired
PV = "11.23.08+git${SRCPV}"
SRCREV = "6765e4fa3eae4000a307bdb891fe8c03f3422f91"
S = "${WORKDIR}/git"
do_configure () {
:
}
do_compile () {
:
}
do_install () {
# The sources are needed by arm-trusted-firmware
install -d "${D}/usr/src/${PN}"
cp -r "${S}/mrvl_scp_bl2.img" "${D}/usr/src/${PN}/"
}
FILES:${PN}-dev = "/usr/src/${PN}"
INSANE_SKIP:${PN}-dev += "file-rdeps"
SYSROOT_DIRS += " /usr/src/${PN} "

View File

@ -0,0 +1,29 @@
DESCRIPTION = "Marvell DDR training library"
LICENSE = "GPL-2.0-or-later"
LIC_FILES_CHKSUM = "file://Makefile;md5=9993156c815673120e02a7c8e00a8cc3"
SRC_URI = "git://github.com/MarvellEmbeddedProcessors/mv-ddr-marvell.git;protocol=https;branch=master"
# Modify these as desired
PV = "devel+git${SRCPV}"
SRCREV = "bfcf62051be835f725005bb5137928f7c27b792e"
S = "${WORKDIR}/git"
do_configure () {
:
}
do_compile () {
:
}
do_install () {
# The sources are needed by arm-trusted-firmware
install -d "${D}/usr/src/${PN}"
cp -r "${S}/." "${D}/usr/src/${PN}/"
}
FILES:${PN}-dev = "/usr/src/${PN}"
INSANE_SKIP:${PN}-dev += "file-rdeps"
SYSROOT_DIRS += " /usr/src/${PN} "

View File

@ -0,0 +1,21 @@
require recipes-bsp/trusted-firmware-a/trusted-firmware-a.inc
DEPENDS += "mv-ddr-marvell binaries-marvell coreutils-native"
COMPATIBLE_MACHINE = "cn913x"
LIC_FILES_CHKSUM += "file://docs/license.rst;md5=b2c740efedc159745b9b31f88ff03dde"
SRC_URI = "git://git@bitbucket.gad.local:7999/nm-nsp/trusted-firmware-a.git;protocol=ssh;user=git;branch=nitroc-v2.9.0"
SRCREV = "41911b0db0a07878a384e8358950b79e6df7d1be"
EXTRA_OEMAKE += "MV_DDR_PATH=${PKG_CONFIG_SYSROOT_DIR}/usr/src/mv-ddr-marvell DDR_TOPOLOGY=2 SCP_BL2=${PKG_CONFIG_SYSROOT_DIR}/usr/src/binaries-marvell/mrvl_scp_bl2.img"
TFA_PLATFORM = "t9130_nitroc"
TFA_BUILD_TARGET = "all mrvl_flash"
TFA_INSTALL_TARGET = "flash-image"
TFA_DEBUG = "1"
TFA_MBEDTLS = "0"
TFA_UBOOT = "1"
TFA_UEFI = "0"

View File

@ -0,0 +1,32 @@
HOMEPAGE = "http://www.denx.de/wiki/U-Boot/WebHome"
DESCRIPTION = "U-Boot, a boot loader for Embedded boards based on PowerPC, \
ARM, MIPS and several other processors, which can be installed in a boot \
ROM and used to initialize and test the hardware or to download and run \
application code."
SECTION = "bootloaders"
DEPENDS += "flex-native bison-native"
COMPATIBLE_MACHINE = "cn913x"
LICENSE = "GPL-2.0-or-later"
LIC_FILES_CHKSUM = "file://Licenses/README;md5=5a7450c57ffe5ae63fd732446b988025"
PE = "1"
SRCREV = "3534f6601c53362407bc6b3bf0af85908c38b81c"
SRC_URI = "git://git@bitbucket.gad.local:7999/nm-nsp/netmodule-u-boot.git;protocol=ssh;user=git;branch=sdk11.23.08-v2020.10-nitroc"
S = "${WORKDIR}/git"
require recipes-bsp/u-boot/u-boot.inc
require recipes-bsp/u-boot/u-boot-coreos.inc
# Solidrun patches require to build out-of-the-tree
B = "${WORKDIR}/build"
DEPENDS += "bc-native dtc-native u-boot-mkimage-native"
do_compile:prepend() {
export DEVICE_TREE="${UBOOT_BUILDENV_DEVICE_TREE}"
}
SYSROOT_DIRS += " /boot "

View File

@ -0,0 +1,71 @@
DESCRIPTION = "Linux kernel for the Nitroc hardware"
COMPATIBLE_MACHINE = "cn9131-nitroc"
inherit kernel
SRC_URI = "git://git@bitbucket.gad.local:7999/nm-nsp/netmodule-linux.git;protocol=ssh;user=git;branch=nitroc-v6.6.y"
SRCREV ?= "0b8f8f81ab0ec015002357820f50bfc2924390fe"
PV = "v6.6.y+git${SRCPV}"
LICENSE = "GPL-2.0-only"
LIC_FILES_CHKSUM = "file://COPYING;md5=6bc538ed5bd9a7fc9398086aedcd7e46"
S = "${WORKDIR}/git"
#If a KERNEL_DEFCONFIG is specified, the defconfig specified in SRC_URI will be overwritten!
do_configure:append(){
if [ "${KERNEL_DEFCONFIG}" != "" ]; then
oe_runmake ${KERNEL_DEFCONFIG}
fi
configs="${@" ".join(find_cfgs(d))}"
if [ ! -z "${configs}" ]; then
${S}/scripts/kconfig/merge_config.sh -m -O ${WORKDIR}/build ${WORKDIR}/build/.config ${WORKDIR}/*.cfg
fi
}
# The default kenrel.bbclass expects it can remove the source symlink,
# newer kernels don't have this symlink so we need to override kernel_do_install
kernel_do_install() {
#
# First install the modules
#
unset CFLAGS CPPFLAGS CXXFLAGS LDFLAGS MACHINE
if (grep -q -i -e '^CONFIG_MODULES=y$' .config); then
oe_runmake DEPMOD=echo MODLIB=${D}${nonarch_base_libdir}/modules/${KERNEL_VERSION} INSTALL_FW_PATH=${D}${nonarch_base_libdir}/firmware modules_install
rm "${D}${nonarch_base_libdir}/modules/${KERNEL_VERSION}/build"
# Remove empty module directories to prevent QA issues
find "${D}${nonarch_base_libdir}/modules/${KERNEL_VERSION}/kernel" -type d -empty -delete
else
bbnote "no modules to install"
fi
#
# Install various kernel output (zImage, map file, config, module support files)
#
install -d ${D}/${KERNEL_IMAGEDEST}
#
# When including an initramfs bundle inside a FIT image, the fitImage is created after the install task
# by do_assemble_fitimage_initramfs.
# This happens after the generation of the initramfs bundle (done by do_bundle_initramfs).
# So, at the level of the install task we should not try to install the fitImage. fitImage is still not
# generated yet.
# After the generation of the fitImage, the deploy task copies the fitImage from the build directory to
# the deploy folder.
#
for imageType in ${KERNEL_IMAGETYPES} ; do
if [ $imageType != "fitImage" ] || [ "${INITRAMFS_IMAGE_BUNDLE}" != "1" ] ; then
install -m 0644 ${KERNEL_OUTPUT_DIR}/$imageType ${D}/${KERNEL_IMAGEDEST}/$imageType-${KERNEL_VERSION}
fi
done
install -m 0644 System.map ${D}/${KERNEL_IMAGEDEST}/System.map-${KERNEL_VERSION}
install -m 0644 .config ${D}/${KERNEL_IMAGEDEST}/config-${KERNEL_VERSION}
install -m 0644 vmlinux ${D}/${KERNEL_IMAGEDEST}/vmlinux-${KERNEL_VERSION}
[ -e Module.symvers ] && install -m 0644 Module.symvers ${D}/${KERNEL_IMAGEDEST}/Module.symvers-${KERNEL_VERSION}
install -d ${D}${sysconfdir}/modules-load.d
install -d ${D}${sysconfdir}/modprobe.d
}
require recipes-kernel/linux/linux-yocto-coreos-efi.inc

View File

@ -30,6 +30,7 @@ TEMPLATECONF="${NWL_ROOT}/templates"
# Add support for ##NWLS_LAYERSDIR## inside of bblayer template
coreos-bblayers-envsub NWL_LAYERSDIR "${NWL_ROOT}/layers"
coreos-bblayers-envsub NWL_EXTLAYERSDIR "${NWL_ROOT}/external-layers"
# Add the scripts directory of the NWL to the path
coreos_path_add "${NWL_ROOT}/scripts"

View File

@ -10,6 +10,7 @@ BBLAYERS ?= " \
##COREOS_LAYERSDIR##/meta-belden-coreos \
##COREOS_LAYERSDIR##/meta-belden-coreos-bsp \
##COREOS_LAYERSDIR##/meta-belden-marvell-bsp \
##COREOS_LAYERSDIR##/meta-netmodule-coreos-bsp \
##COREOS_EXTLAYERSDIR##/meta-openembedded/meta-oe \
##COREOS_EXTLAYERSDIR##/meta-openembedded/meta-networking \
##COREOS_EXTLAYERSDIR##/meta-openembedded/meta-filesystems \
@ -18,7 +19,12 @@ BBLAYERS ?= " \
##COREOS_EXTLAYERSDIR##/meta-virtualization \
##COREOS_EXTLAYERSDIR##/meta-efibootguard \
##COREOS_EXTLAYERSDIR##/meta-swupdate \
##COREOS_EXTLAYERSDIR##/meta-arm/meta-arm \
##COREOS_EXTLAYERSDIR##/meta-arm/meta-arm-toolchain \
##COREOS_EXTLAYERSDIR##/meta-ti/meta-ti-bsp \
##NWL_LAYERSDIR##/meta-nwl-distro \
##NWL_LAYERSDIR##/meta-netmodule-legacy-bsp \
##NWL_LAYERSDIR##/meta-nwl-marvell-bsp \
##NWL_EXTLAYERSDIR##/meta-netmodule-wlan \
"

View File

@ -27,8 +27,8 @@
You can now run 'bitbake <target>'
Common targets are:
nwl-image-minimal
nwl-image-testable
nwl-ramdisk-minimal
nwl-test-image
You can also run generated qemu images with a command like 'runqemu qemuarm64'.

View File

@ -26,6 +26,7 @@
#MACHINE ?= "qemux86"
#MACHINE ?= "qemux86-64"
#MACHINE ?= "cn9130-cf-pro"
#MACHINE ?= "cn9131-nitroc"
#
# This sets the default machine to be qemuarm64 if no other machine is selected:
MACHINE ??= "cn9130-cf-pro"