Compare commits

..

152 Commits

Author SHA1 Message Date
Mr Jenkins a4ab48c63e meta-netmodule-bsp: updated source revisions 2023-12-27 20:36:58 +01:00
Mr Jenkins a3e87ec6d9 meta-netmodule-bsp: updated source revisions 2023-12-14 10:32:44 +01:00
Mr Jenkins 7cad5c1048 meta-netmodule-bsp: updated source revisions 2023-12-13 11:09:21 +01:00
Alexandre Bard 17c6b96ac9 machine:hw20: Add gnss support 2023-05-22 08:36:01 +02:00
Alexandre Bard b12ccc01a8 freecale/imx-mkimage: Remove autorev
The the branch is anyway not updated anymore and the autorev is causing
parsing problem even when the recipe is not used.
2023-05-16 09:32:45 +02:00
Alexandre Bard a2226ab942 recipes-imx: Update SRC_URIs
codeaurora closed and the sources moved to github

id:382539
2023-04-03 11:02:57 +02:00
Alexandre Bard cff1dfc0c6 ublox-gnss-fw-update: Move to fct layer
This tool is deprecated and used only for factory testing.
So the updated version has been added to fct layer.

id:379391
2023-03-30 11:10:00 +02:00
Mr Jenkins 65b0b8f377 meta-netmodule-bsp: updated source revisions 2023-03-25 20:49:28 +01:00
Patrick Zysset 3cd38e5536 Revert "lpa: Add NRSW base recipe"
Additionally the two follow up commits are reverted too:
Revert "lpa: Remove dependencies to NRSW"
Revert "lpa: Use latest version with patched toby driver"

This reverts commit
8f2fca9c5f,
c1187b5553 and
c18ced1d01.

id:379399

Signed-off-by: Patrick Zysset <patrick.zysset@netmodule.com>
2023-03-24 17:31:48 +01:00
Mr Jenkins 25003ce8e1 meta-netmodule-bsp: updated source revisions 2023-03-10 10:59:22 +01:00
Mr Jenkins bc645c4c48 meta-netmodule-bsp: updated source revisions 2023-03-06 22:33:48 +01:00
Mr Jenkins cacadef098 meta-netmodule-bsp: updated source revisions 2023-03-06 13:57:19 +01:00
Alexandre Bard 6dc6ddc79c hw26/hw21: Fix order of machine overrides
For most of the overrides the order is not important since all overrides
are used.

But when using a file specific to a machine, only one override is used
and in this case the order is important: the last override matching is
used. So we must keep more specific overrides at the end.

id:366284
2023-02-15 09:44:30 +01:00
Alexandre Bard 5d00c9807b hw25: Remove machine override from hw24
This override was useful in the past when we had a lot of features
defined directly using the machine name. But now it is not needed
anymore.

It is actually the source of problems when using specific files for both
hw24 and 25: Since the HW24 overrides was at the end, the files for it
were always used and the files for HW25 were ignored.

id:366284
2023-02-15 09:44:23 +01:00
Alexandre Bard a020f9406e lmsensors: Add ignition voltage to HW24
id:366281
2023-02-15 09:44:13 +01:00
Mr Jenkins 335e778fed meta-netmodule-bsp: updated source revisions 2023-02-06 16:35:25 +01:00
Mr Jenkins fc29da1d42 meta-netmodule-bsp: updated source revisions 2023-01-20 22:03:46 +01:00
Alexandre Bard ab9518068b wwan-config: configuration: Add comments for fields specific to TOBY-L2
The default APN configuration is only required for TOBY-L2. For LARA, it
is properly handled through the QMI interface.

For LARA the only supported profile is RMNET, so this is not
configurable.

tpID: #354963
2023-01-20 11:56:16 +01:00
Alexandre Bard 3ba77cdf83 modemmanager: Add support for LARA-L6
LARA-L6 is using a QMI interface so we need to enable QMI and the
"generic" plugin.

Also we need to backport libqmi to have the version matching
ModemManager 1.14.

BugzID: 81947
2022-12-13 12:59:41 +01:00
Mr Jenkins 1f8c466f7d meta-netmodule-bsp: updated source revisions 2022-11-25 11:19:51 +01:00
Alexandre Bard 063bdd83a3 network-manager-conf: Enhance support for user module
Now all scenarios with a user module are covered:

- static setup with a user module will create a bridge with static IP
- dhcp setup with a user module will put a static IP on the UM and DHCP
on the main interface

BugzID: 81969
2022-11-18 10:07:49 +01:00
Alexandre Bard 230743c03d networkmanager-conf: Add support for bridge to user-module
This is a setup required for the factory testing image: the user module
must be reachable from the CPU. And since the subnet of the fct ethernet
port and the subnet of the user module are the same, we must bridge them
together.

BugzID: 81969
2022-11-14 15:55:20 +01:00
Alexandre Bard 6fa868f2d4 machines.conf: Add new machine hw26-vcupro
This is the new VCU pro based on HW26 but which includes the user
module.
Because of this change, we cannot reuse HW21 nor HW26 machines.

BugzID: 81969
2022-11-14 15:40:40 +01:00
Alexandre Bard 3c281d8e78 lmsensors: hw20: Remove input voltage
This is not implemented.
2022-09-27 08:50:13 +02:00
Alexandre Bard 76457f2106 lmsensors: Fully extend configs for DA9063 on all hardwares
BugzID: 81382
2022-09-13 15:00:44 +02:00
Alexandre Bard 275d265ee7 lmsensors: Add configs for HW21 and HW26
Label and compute all input from the PMIC.

BugzID: 81382
2022-09-12 16:31:11 +02:00
Alexandre Bard 1eb5a1a51e wwan-config: Fix ModemManager not stopped when stopping wwan-config
BugzID: 81051
2022-09-01 12:24:38 +00:00
Alexandre Bard 2fca63a11b lmsensors-config: Update da9063 rules
Names with dashes are not allowed. They were working only because of a
patch.

BugzID: 81093
2022-08-24 10:00:47 +02:00
Alexandre Bard 9183a5f886 lmsensors: Remove uneeded patch
After discussion with the maintainers, the problem actually lies in the
kernel drivers where a dash is forbidden. But the da9063-hwmon driver
was using a deprecated function which was not checking the name.

BugzID: 81093
2022-08-24 09:59:10 +02:00
Alexandre Bard c18ced1d01 lpa: Use latest version with patched toby driver
BugzID: 80707
2022-08-16 15:25:14 +00:00
Alexandre Bard c1187b5553 lpa: Remove dependencies to NRSW
BugzID: 80707
2022-08-16 15:25:14 +00:00
Alexandre Bard 8f2fca9c5f lpa: Add NRSW base recipe
This is a tool to manage eUICC sim cards profiles.

BugzID: 80707
2022-08-16 15:25:14 +00:00
Alexandre Bard 376186bb85 wwan-config: Get rid of platform specific files
These platform specific files are replaced by definitions in devicetree
or abstraction through lmsensors.
2022-08-16 15:55:05 +02:00
Alexandre Bard a8254343f4 Add lmsensors rules for HW24 and HW25
These two hardware have the ability to read out the wwan modem supply to
know when it is completely turned off.

This is abstracted to wwan-config through lmsensors rules.

BugzID: 80542
2022-08-16 15:55:05 +02:00
Alexandre Bard f4fcefbc19 Patch lmsensors to support da9063-hwmon driver
lmsensors is not able to handle driver names with dashes inside by
default.

BugzID: 80542
2022-08-16 15:55:05 +02:00
Alexandre Bard 34bdf31db0 ssf: sysstate module: Remove SSC_KBUILD_EXTRA_SYMBOLS variable
It is suspected that having this variable containing a local path is the
reason why when building from sstate, the kernel sometimes need to be
rebuild.

BugzID: 80858
2022-08-04 10:55:51 +02:00
Marc Mattmueller a5300c936e u-boot: set default URL to public GitLab
BugzID: 80085
Signed-off-by: Marc Mattmueller <marc.mattmueller@netmodule.com>
2022-07-28 12:21:35 +02:00
Marc Mattmueller 38d78f2ba0 linux-netmodule kernel: set default URL to public GitLab
BugzID: 80085
Signed-off-by: Marc Mattmueller <marc.mattmueller@netmodule.com>
2022-07-28 11:28:50 +02:00
Mr Jenkins 87cf99189d meta-netmodule-bsp: updated source revisions 2022-06-28 09:17:53 +02:00
Alexandre Bard 3dba18ccfc netmodule-fitimage: Fix deployment when building from sstate
Deploying directly the DEPLOY_DIR_IMAGE bypasses the shared state
mechanism implemented in the deploy class, leading to the image not
being properly deployed when building entirely from sstate.

BugzID: 80331
2022-06-24 16:02:36 +02:00
Alexandre Bard d7bb7b2796 wwan-config: Increase TimeoutStartSec
As explained in the comment, the start of this service may include some
power cycles of the modem and also the startup of ModemManager. All of
this may take longer than the default 90 seconds in some special cases.

This should anyway not be a problem since this service is self resilient
and can handle errors during startup.

BugzID: 80178
2022-06-21 17:07:26 +02:00
Mr Jenkins 886811e338 meta-netmodule-bsp: updated source revisions 2022-06-20 09:01:42 +02:00
Mr Jenkins d070d3f944 meta-netmodule-bsp: updated source revisions 2022-06-16 14:35:14 +02:00
Mr Jenkins 5bb784bd38 meta-netmodule-bsp: updated source revisions 2022-06-14 08:17:40 +02:00
Alexandre Bard 8b20e8ef04 fpga-image: Restrict compatible machines
This avoid a warning when building for machines which don't have an
fpga.
2022-06-10 19:07:10 +02:00
Alexandre Bard 50916d798c kernel-modules: Build them for architecture and not MACHINE
As for the kernel, we don't need to build them for every MACHINE and
will save some build time when building them only once per architecture.

BugzID: 80015
2022-06-09 12:11:39 +02:00
Alexandre Bard dae3c027be recipes-kernel: Build kernel tools for architecture and not machine
As explained in the comments, in yocto the kernel is expected to be
built for each MACHINE and not for each architecture as we do.

Therefor all tools related to kernel must also be adapted.

BugzID: 80015
2022-06-09 12:11:39 +02:00
Alexandre Bard 43dd045696 linux-netmodule: Remove latest dependencies to MACHINE variable
These dependencies lead to a partial rebuild of the kernel when
switching machine, even where they are actually using the exact same
kernel sources and config.

BugzID: 80015
2022-06-09 12:11:18 +02:00
Alexandre Bard ee9b13081b recipes-kernel: Reorganize directory
Grouping all system state framework modules into one directory and all
other modules together.

BugzID: 80015
2022-06-09 12:11:00 +02:00
Alexandre Bard 537291f8dd Remove outdated devicetree tools
These tools are not used anymore and not planned to be used in a near
future.

BugzID: 80015
2022-06-09 12:10:51 +02:00
Alexandre Bard 9e05073856 Remove wireless-regdb
This is already part of meta-netmodule-wlan and maintained there.

BugzID: 80015
2022-06-09 12:10:40 +02:00
Alexandre Bard 901c12f911 linux-netmodule: Split per kernel version
Instead of having one kernel recipe with two hashes, it makes more sense
and is easier to maintain two recipes with the same name but different
versions. The shared part is in an include file.

Each machine then chooses which version it wants to use with
PREFERRED_VERSION variable.

BugzID: 79987
2022-06-08 08:37:11 +02:00
Mr Jenkins bf8e21637a meta-netmodule-bsp: updated source revisions 2022-05-31 12:22:29 +02:00
Alexandre Bard d7d56c9048 Remove wlconf-bin
This is now integrated in meta-netmodule-wlan.

BugzID: 79548
2022-05-11 18:11:56 +02:00
Alexandre Bard 8b8abe9561 fpga-image: Update HW18 image
BugzID: 77953
2022-05-05 15:42:31 +02:00
Alexandre Bard e99985266c fpga-image: Make compatible with HW17
BugzID: 77953
2022-05-05 15:42:08 +02:00
Alexandre Bard d934b0e9d1 HW17: machine.conf: Rename and add machine features
Following new standard without nr or nb prefix in machine names.

BugzID: 77953
2022-05-05 15:41:13 +02:00
Alexandre Bard 58102512a5 HW17: machine.conf: Update kernel configuration
BugzID: 77953
2022-05-05 15:33:58 +02:00
Alexandre Bard cd3f47b05b armada: machine.conf: Update u-boot configs
BugzID: 77953
2022-05-05 15:02:28 +02:00
Alexandre Bard e284973988 mac-address-set: BT: do a hard reset when soft reset fails
It happens that a soft reset is failing and blocking the chip in a state
where it always times out. The only wait to get out of this is to hard
reset the bluetooth chip.

BugzID: 77171
2022-02-08 10:59:01 +01:00
Alexandre Bard b1540a4555 mac-address-set: Make the bt mac inverted on demand
Detecting if the mac address must be inverted means doing two resets of
the chip in a short period when the mac must be inverted.
These two resets is sometimes letting the BT chip in a state where it
does not answer for more than a minute.

Also fixes getopts string: options -w and -b don't have arguments.

BugzID: 77171
2022-02-03 16:52:44 +01:00
Patrick Zysset 7c3befb14c mac-address-set: use own services for bt and wlan settings
settin mac address of bt and wlan is now triggered in two separated
services.

BugzID: 77171

Signed-off-by: Patrick Zysset <patrick.zysset@netmodule.com>
2022-01-31 23:43:02 +01:00
Patrick Zysset d4799485a9 mac-address-set: bug fixes and testify support
added several enhancements to the mac-address-set script:

- splittet wlan and bt address setting (use -w / -b options)
- fixed upper and lower case problem with vcu1 addresses
- fixed hexadecimal support with vcu2 addresses
- added testify support (incl. log_test function)

BugzID: 77171

Signed-off-by: Patrick Zysset <patrick.zysset@netmodule.com>
2022-01-31 23:24:13 +01:00
Patrick Zysset 2734a8b02f mac-address-set: add testify unit-test
adding a unit test script which uses testify framework to test the
mac-address-set script for vuc1 and vcu2.

BugzID: 77171

Signed-off-by: Patrick Zysset <patrick.zysset@netmodule.com>
2022-01-31 23:24:03 +01:00
Patrick Zysset 2173bda09c mac-address-set: add timeout to wait_on function
if a device is never getting ready on startup sequence, the wait_on()
function runs forever. with this patch it aborts after 10 seconds.

BugzID: 77171

Signed-off-by: Patrick Zysset <patrick.zysset@netmodule.com>
2022-01-25 18:17:23 +01:00
Alexandre Bard 197b4f6f07 mac-address-set: start service before NetworkManager
If NetworkManager starts before, it may change the mac address for
scanning and store the chip mac address. When finaly using a static mac
address (for an established connection or AP) it will restore the chip
address instead of our address.

BugzID: 77171

Signed-off-by: Patrick Zysset <patrick.zysset@netmodule.com>
2022-01-18 16:45:45 +01:00
Alexandre Bard da62ee6786 mac-address-set: adding vcu2 support (hw23)
After an overall refactoring this script now does:

 * Wait on devices being ready before changing the address
 * Handle errors when setting wlan or bluetooth mac address
 * Handle different MAC address schemes
 * Handle different behaviors when setting wlan mac:

On HW21, the address must be set while the interface is down, but on
HW23 it must be set while the interface is up and if it is down, no
error is thrown, so the modified address is checked.

 * Handle different behaviors while setting BT mac:

On HW21, the address must be given with the bytes in reverse order.
We therefore first try with the right order and check the address and
retry with the reversed address if it failed.

BugzID: 77171

Signed-off-by: Patrick Zysset <patrick.zysset@netmodule.com>
2022-01-18 16:43:06 +01:00
Alexandre Bard 54d559d706 hw23: Force wpa-supplicant and hostapd versions
hw23: Force wpa-supplicant and hostapd versions

meta-netmodule-wlan provides modified versions of these tools, but they
seem to not work properly on HW23. Since this HW is anyway not supported
in meta-netmodule-wlan, we force the usage of latest stable version.

BugzID: 77173

Co-authored-by: Patrick Zysset <patrick.zysset@netmodule.com>
Reviewed-on: https://git.netmodule.intranet/yoctoproject/meta-netmodule-bsp/pulls/111
Co-Authored-By: Alexandre Bard <alexandre.bard@netmodule.com>
Co-Committed-By: Alexandre Bard <alexandre.bard@netmodule.com>
2022-01-12 00:36:22 +01:00
Alexandre Bard 07b47e5c7d gpsd: Update to 3.23.1
This fixes a bug where the dates is rolled back to 20 years ago.

BugzID: 77484
2022-01-06 16:48:45 +01:00
Lucien Mueller 180f8c8028 scfw: dlm update to 02348b77dae2096e536a193f51936d2294efbad8
master update to 29839d110cf4566709b1f2ba653df6638d5ad95d

BugzID: 75851

Signed-off-by: Lucien Mueller <lucien.mueller@netmodule.com>
2021-12-10 13:51:22 +01:00
Alexandre Bard 8bc99070fa udev-rules-nmhw: Update rule to also add scripts
Some scripts trigerred by udev rules must also be installed.

BugzID: 75479
2021-12-10 09:48:38 +01:00
Alexandre Bard 27a82d21c9 linux-netmodule: Update kernel to 5.10 branch
BugzID: 75479
2021-12-09 16:07:03 +01:00
Marc Mattmueller d887e262a8 storage-info: set license to MIT
Signed-off-by: Marc Mattmueller <marc.mattmueller@netmodule.com>
2021-11-29 09:50:24 +01:00
Marc Mattmueller 4856b5a3d8 storage-info: adapted install of config and systemd service files
those files reside now in the repository itself, thus the recipe
needed to be adapted

BugzID: 75350
Signed-off-by: Marc Mattmueller <marc.mattmueller@netmodule.com>
2021-11-24 15:59:21 +01:00
Marc Mattmueller 842e337481 recipes-bsp: added storage-info as systemd service
BugzID: 75350
Signed-off-by: Marc Mattmueller <marc.mattmueller@netmodule.com>
2021-11-24 15:38:27 +01:00
Marc Mattmueller 96c52172f7 linux-netmodule: changed git url from gitea to (internal) gitlab
BugzID: 75775
Signed-off-by: Marc Mattmueller <marc.mattmueller@netmodule.com>
2021-11-17 17:01:31 +01:00
Alexandre Bard 405c374f05 linux-netmodule: Remove redundant find_cfgs function
This function is already present in the cml1 bbclass which is
automatically inherited by the kernel bbclass.

BugzID: 75318
2021-10-19 10:39:18 +02:00
Alexandre Bard 514cd7fd80 Add support for shared kernel between IMX machines
BugzID: 75223
2021-10-16 17:24:02 +02:00
Alexandre Bard 723c5db1de Use one kernel config for all armada devices
BugzID: 75223
2021-10-15 14:23:54 +02:00
Alexandre Bard 17f6ca3268 Move the kernel sharing variable into a common config file
BugzID: 75223
2021-10-15 14:23:54 +02:00
Alexandre Bard 17fae35e5e linux-kernel: Build only one kernel per platform
With this change we are building the same kernel config for all
hardwares belonging to the same platform. The configs only differ from
one or two drivers which are enabled or not and they are anyway not
loaded as long as the devicetree is not matching.

But having only one config for several hardwares is reducing maintenance
(like enabling or disabling kernel security features) and also reducing
build time when building for different machines.

BugzID: 75223
2021-10-15 14:05:12 +02:00
Alexandre Bard 7bc85ccf32 linux-netmodule: Remove useless do_install steps
The two "ifs" are covering cases where the fitImage is not used and we
don't support this case.

And as the Module.symvers comment says, this has been fixed upstream in
kernel.bbclass.

BugzID: 75220
2021-10-12 16:44:43 +02:00
Lucien Mueller 23ef02e236 u-boot: use mainline u-boot.inc
Our u-boot-nm.inc was just a copy of an outdated u-boot.inc.
I now changed the u-boot-nm.inc file to be a common configuration file
for our u-boot recipes.

BugzID: 75187

Signed-off-by: Lucien Mueller <lucien.mueller@netmodule.com>
2021-10-12 13:42:21 +02:00
Lucien Mueller 554d477873 hw23, hw21: add da9063-ignition machine feature.
ATM the system state framework only works properly if we have the da9063
with working ignition.

BugzID: 74987

Signed-off-by: Lucien Mueller <lucien.mueller@netmodule.com>
2021-09-28 12:12:18 +02:00
Alexandre Bard 8c76216b9b linux-netmodule: Remove useless HW23 overrides
The only thing which is different for HW23 is the kernel source (which
contains a different license)

BugzID: 74961
2021-09-24 16:34:54 +02:00
Alexandre Bard 7627d49b28 linux-netmodule: Remove PV variables
These values are out of date with the real kernel versions and may be
misleading. Since we have only one version of the kernel, we can remove
them and "git" will be used as default value.

BugzID: 74959
2021-09-24 16:06:53 +02:00
Alexandre Bard 3efbecb49f linux-netmodule: Remove symlinks for devicetrees
These symlinks were required for compatibility with NRSW u-boot.
Since we are now using fitimage, the name of the devicetree is not
relevant since it is directly part of the fitimage.

BugzID: 74958
2021-09-24 15:48:22 +02:00
Alexandre Bard dc6566f9a6 linux-netmodule: Don't install kernel in /boot directory
We don't need the kernel in the rootfs since it is always packed into a
fitimage.

BugzID: 74573
2021-09-02 13:19:11 +02:00
Lucien Mueller 93af481ded hw23: remove additional configs.
BugzID: 74562

Signed-off-by: Lucien Mueller <lucien.mueller@netmodule.com>
2021-09-01 13:19:03 +02:00
Alexandre Bard c76e078016 kernel-fitimage: Fix fpga support in fitimage
Instead of rewriting the full fitimage_assemble, we can just append to
the part generating the kernel entry, therefore reducing the duplicated
code.

BugzID: 74530
2021-08-30 11:03:16 +02:00
Alexandre Bard 29d4398168 gpsd.bbappend: Use machine features instead of machine overrides
With this approach, we just need to change a machine.conf file to add
advanced-gnss to machine_feature in machine.conf to enable gnss-mgr,
force gpsd to start with 115200 bitrate and to disable gpsd service
because it will be started by gnss-mgr.

BugzID: 74458
2021-08-26 13:11:56 +02:00
Lucien Mueller 26e480a6e0 netmodule-fitimage: do_assemble_fitimage is now run before the do_deploy
step.

BugzID: 74417

Signed-off-by: Lucien Mueller <lucien.mueller@netmodule.com>
2021-08-24 13:12:36 +02:00
Alexandre Bard a9ac74dac7 u-boot-armada: Deploy u-boot-spl.kwb file
This is the name used for the wic file creation.

BugzID: 74357
2021-08-23 15:02:36 +02:00
Alexandre Bard 139bb581ba u-boot-ti: Deploy MLO and u-boot.img files
These are the names used for the wic file creation.

BugzID: 74357
2021-08-23 14:16:56 +02:00
Alexandre Bard 4d68c84dfc u-boot: fix name of deployed artifacts
And also reduce the number of created artifacts and simplify do_deploy.
The rm commands are not required. bitbake is smart enough to remove the
old deployed artifacts of a recipe.

BugzID: 74357

Signed-off-by: Patrick Zysset <patrick.zysset@netmodule.com>
2021-08-19 22:20:41 +02:00
Alexandre Bard 7cdc60e983 u-boot: make only one u-boot recipe per soc
BugzID: 74357

Signed-off-by: Patrick Zysset <patrick.zysset@netmodule.com>
2021-08-19 22:19:53 +02:00
Alexandre Bard b2bb823e3c machines.conf: add pci to MACHINE_FEATURES
This will bring pciutils automatically to all machines:
- all armada machines
- all am33x machines
- imx8 hw23

BugzID: 73589

Signed-off-by: Patrick Zysset <patrick.zysset@netmodule.com>
2021-08-19 22:19:41 +02:00
Alexandre Bard b0a1d9ead2 machines.conf: add machine feature user-module to hw21
and remove the machine feature on hw26 since it is derived from hw21
machine config.

BugzID: 73593

Signed-off-by: Patrick Zysset <patrick.zysset@netmodule.com>
2021-08-17 02:40:24 +02:00
Alexandre Bard 1fe3fd0780 machines.conf: add wifi machine features
In order to pull in some chip specific firmware / drivers or tool there
are also one specific wifi feature per wifi chip:
- ath-wifi for atheros chips
- ti-wifi for TI chips
- ublox-wifi for u-blox chips

BugzID: 75593

Signed-off-by: Patrick Zysset <patrick.zysset@netmodule.com>
2021-08-17 02:39:35 +02:00
Alexandre Bard 42f969ee33 machines.conf: add machine feature advanced-gnss to hw21 and hw23
This describes gnss chips with ADR which are supported by gnss-mgr.

BugzID: 73593

Signed-off-by: Patrick Zysset <patrick.zysset@netmodule.com>
2021-08-17 02:38:17 +02:00
Lucien Mueller cac425ad89 Add missing UBOOT_LOADADDRESS variable.
Because we don't have the kernel class in the netmodule-fitimage recipe,
we have to add this line there.

Signed-off-by: Lucien Mueller <lucien.mueller@netmodule.com>
2021-08-04 09:24:47 +02:00
Lucien Mueller dd047c4fbd fix the PROVIDES variable.
Signed-off-by: Lucien Mueller <lucien.mueller@netmodule.com>
2021-08-03 13:51:40 +02:00
Lucien Mueller 898c9d60a8 fix ostree build with netmodule-fitimage.
Signed-off-by: Lucien Mueller <lucien.mueller@netmodule.com>
2021-08-03 12:20:09 +02:00
Alexandre Bard 6204c7fbdc HW21+HW23: Add gnss as machine feature
BugzID: 73593
2021-08-02 13:00:07 +02:00
Alexandre Bard 7b757d4c9e HW21 + HW23: Add imu to machine features
BugzID: 73593
2021-08-02 13:00:07 +02:00
Alexandre Bard de1294228d HW21 and HW23: Add spi machine feature
BugzID: 73593
2021-08-02 13:00:07 +02:00
Alexandre Bard 200a4ee56b HW16: add wakeuptimer as a machine feature
BugzID: 73593
2021-08-02 13:00:07 +02:00
Alexandre Bard 473fedd18b machines.conf: Add can MACHINE_FEATURE when required
BugzID: 73593
2021-08-02 13:00:07 +02:00
Lucien Mueller 1bf9ce5778 add netmodule-fitimage recipe.
This recipe lets us create a fitimage outside of the kernel recipe.
For this to work we need to create just the zImage from the standard
 kernel recipe.

BugzID: 73616

Signed-off-by: Lucien Mueller <lucien.mueller@netmodule.com>
2021-07-30 12:37:35 +02:00
Stefan Eichenberger 1b86182dc6 ssc-sysstate-driver: add Module.symvers path
Make sure that the sysstate driver finds the Module.symvers file of the
broker driver.

Signed-off-by: Stefan Eichenberger <eichest@gmail.com>
2021-06-09 18:38:59 +02:00
Alexandre Bard 89440ae8d9 imx-sc-firmware: Cleanup
Removed state machine, ignition handling and V2X power handling.

BugzID: 73163
2021-06-09 15:24:27 +02:00
Marc Mattmueller ddd720dc11 v2x: added error check when aborting get_status in v2x-fw-load
BugzID: 67750
Signed-off-by: Marc Mattmueller <marc.mattmueller@netmodule.com>
2021-06-08 12:59:12 +02:00
Marc Mattmueller f626798f94 v2x-fw-load: waiting for exiting DFU mode with placeholder fw
BugzID: 72787
Signed-off-by: Marc Mattmueller <marc.mattmueller@netmodule.com>
2021-06-07 18:40:49 +02:00
Marc Mattmueller db235c3453 v2x: added config file for shipment
Signed-off-by: Marc Mattmueller <marc.mattmueller@netmodule.com>
2021-06-07 16:55:02 +02:00
Marc Mattmueller c18178f212 gnss-init: reverted the gnss-init service back to "original" state
Reason for reverting to originial state:
- adaption of the v2x-fw-load script
- re-introduction of the v2x recipe in all of our images
- no difference when wainting on USB disconnect event or directly
  releaseing the gnss module from its reset

BTW: The original timeout of 50s can be explained as the SCU held a
delay of 40s until powering the v2x module. This delay shall be
removed in the next couple of days.

BugzID: 72787
Signed-off-by: Marc Mattmueller <marc.mattmueller@netmodule.com>
2021-06-07 14:46:32 +02:00
Marc Mattmueller b9e18a3a0b gnss-init: disable device state check when timeout is set to 0 (default)
BugzID: 72787
Signed-off-by: Marc Mattmueller <marc.mattmueller@netmodule.com>
2021-06-07 14:06:18 +02:00
Marc Mattmueller 21679f459f v2x: reworked the v2x-fw-load script for shell
BugzID: 72787
Signed-off-by: Marc Mattmueller <marc.mattmueller@netmodule.com>
2021-06-03 22:32:10 +02:00
Marc Mattmueller 29bc1b86ac v2x: removed capture of get_status error during abort
we power cylce now the power of the v2x module hence it is no longer
needed.

BugzID: 72787
Signed-off-by: Marc Mattmueller <marc.mattmueller@netmodule.com>
2021-06-03 17:41:46 +02:00
Marc Mattmueller 06295ec022 v2x: v2x-fw-load script reads a config file, where the fw load can be skipped
the v2x-fw-load script was refactored and ready now a config file. The v2x
recipe installs a v2x config file depending on a distro variable
V2X_ENABLE_FW_LOAD. Inthere it is possible to declare a parameter line like
'is-placeholder-firmware=true' to skip the firmware load in the v2x-fw-load
script. The skip includes also the detection of the DFU mode of the module.

These changes enables us to introduce the v2x package in all our images so
that the service doesn't fail anymore when we are using our placeholder
firmware.

BugzID: 72787
Signed-off-by: Marc Mattmueller <marc.mattmueller@netmodule.com>
2021-06-03 17:01:51 +02:00
Marc Mattmueller 8487d2fb79 gnss-init: added option to script for setting the check timeout
adapted also the default timeout down to 20s

BugzID: 72787
Signed-off-by: Marc Mattmueller <marc.mattmueller@netmodule.com>
2021-06-03 13:59:10 +02:00
Marc Mattmueller c3e5b9af5a gnss-reset: fixed error checking when setting reset pin
BugzID: 72787
Signed-off-by: Marc Mattmueller <marc.mattmueller@netmodule.com>
2021-06-03 09:24:08 +02:00
Marc Mattmueller e367bcf0c1 usb-hub/gnss-init: handle releasing resets at power-up and reboot
start-up changes:
 - usb-hub is just released from reset
 - gnss-init service calls a script twice:
   - as pre-step: checking the hub state depending on the start
                  reason:
                   - at reboot   --> just go on, at power-up
                   - at power-up --> wait for a USB disconnect
                                     of a device for a certain
                                     time
   - as start step: releasing gnss module from reset

shutdown changes:
 - no resets were triggered

BugzID: 72787
Signed-off-by: Marc Mattmueller <marc.mattmueller@netmodule.com>
2021-06-02 18:53:38 +02:00
Marc Mattmueller c2eabcb4e9 usb-hub/gnss-init: handle potential enabling within bootloader
The bootloader might already release the usb-hub, the v2x module and
the gnss modem from reset. Thus the usb-hub and the gnss modem are put
into reset first so that a proper enumeration would be possible.

BugzID: 72787

Signed-off-by: Marc Mattmueller <marc.mattmueller@netmodule.com>
2021-05-20 13:42:44 +02:00
Marc Mattmueller 09903e21fc ubs-hub-reset/gnss-init: added postfix and fixed post command path
Signed-off-by: Marc Mattmueller <marc.mattmueller@netmodule.com>
2021-05-19 19:11:51 +02:00
Marc Mattmueller dbdef42445 v2x/gnss-init/usb-hub-reset: extracted the usb hub reset part from v2x
The v2x firmware load script contained also the usb hub reset which
affects the GNSS modem. This means that the GNSS modem worked only
when the v2x recipe was enabled. But without firmware the v2x-service
fails at start-up which affects all other images except vcu.

Therefore the usb-hub reset part was extracted from the v2x firmware
load script so that we decouple those two functions. ZF/OM need a
failing v2x service when no firmware is loaded, thus the v2x service
was moved back to the vcu image (see meta-netmodule-om).

The systemd services v2x and gnss-init depend now on usb-hub-reset
whereas gnss-init additionally depends on v2x (if available).

BugzID: 72787

Signed-off-by: Marc Mattmueller <marc.mattmueller@netmodule.com>
2021-05-19 12:22:47 +02:00
Marc Mattmueller 3c25250176 gnss-init.service: set gnss modem into reset state at reboot/poweroff
BugzID: 72787

Signed-off-by: Marc Mattmueller <marc.mattmueller@netmodule.com>
2021-05-19 10:48:51 +02:00
Marc Mattmueller 2b3c3f3e9f v2x: added exit criteria when no v2x module was found on the usb bus
the v2x service won't fail anymore if no modem is found on the usb
bus.

BugzID: 72787

Signed-off-by: Marc Mattmueller <marc.mattmueller@netmodule.com>
2021-05-18 14:27:54 +02:00
Marc Mattmueller 0b52ba81d1 v2x: added recipe (moved from meta-netmodule-om)
BugzID: 72787

Signed-off-by: Marc Mattmueller <marc.mattmueller@netmodule.com>
2021-05-18 11:36:40 +02:00
Alexandre Bard 3cfed374e5 board-descriptor: Fix partial installation
The descriptor.py file was not properly packaged because the variable
PYTHON_SITEPACKAGES_DIR was not defined. It is defined in the
python3-dir class.

BugzID: 72580
2021-05-04 17:17:30 +02:00
Alexandre Bard 0f78b1b8e5 imx-sc-firmware: Let uboot clear irq registers
uboot is now able to communicate with the SCU and to clear the irq
registers itself.

BugzID: 71440
2021-04-30 10:19:12 +02:00
Alexandre Bard 4e05cd8cf9 imx-sc-firmware: Update SCU firmware with I2C tunnel
This updated firmware is allowing the kernel core to access the I2C bus
of the SCU core.

It also properly forwards the interrupts from the SCU core to linux.

BugzID: 70694
2021-04-20 20:09:39 +02:00
Alexandre Bard 52a03477a8 wlan: make bbappend compatible with any versions
These tools were updated in meta-netmodule-wlan and the version number
changed.
2021-03-29 12:03:08 +02:00
Alexandre Bard 007da9524c HW26: Add support for PPS
BugzID: 66249
2021-03-25 19:19:37 +01:00
Lucien Mueller 5db36b3b32 system-state-framework: remove extmod-driver.
BugzID: 70266

Signed-off-by: Lucien Mueller <lucien.mueller@netmodule.com>
2021-02-15 17:00:25 +01:00
Lucien Mueller 9a830cc206 system-state-framework: fix dependency to broker.
BugzID: 70200

Signed-off-by: Lucien Mueller <lucien.mueller@netmodule.com>
2021-02-12 17:17:01 +01:00
Alexandre Bard 52a8c3468e wwan-config: Fix systemd service location
The service is required by multi user target and not just wanted.

BugzID: 70251
2021-02-12 09:11:01 +01:00
Alexandre Bard 99ec03ae74 tibluetooth: Handle errors intead of relying on abritrary delay
There is no guarantee that a fix delay is actually enough, because with
the BT_EN gpio, we only control activation of bluetooth on the chip. But
we don't know the status of the whole chip.

Also hciattach has anyway a timeout of 5 seconds, so 0.1 seconds does
probably not make a big difference in this regard.

So in order to make it the safest possible, we can only rely a failure
handling and retrying. The number 5 for retries has been defined since
repeated restart of the service with only 3 retries leads to failure
pretty quickly. At 4 there is no failure anymore. So with 5 we are sure
the risk of failure is really low.

BugzID: 70195
2021-02-10 12:18:33 +01:00
Alexandre Bard d6ee12600f wwan-config: Make APN configurable
BugzID: 69970
2021-01-27 11:43:04 +01:00
Alexandre Bard b034539375 tibluetooth: Start only after bluetooth0 symlink is ready
The service must wait until udev has setup the symlink, since it is
using it.

BugzID: 69855
2021-01-20 15:37:26 +01:00
Lucien Mueller 70bdcc3110 ssf: autoload kernel modules
BugzID: 69520

Signed-off-by: Lucien Mueller <lucien.mueller@netmodule.com>
2021-01-19 13:34:29 +01:00
Alexandre Bard 36546bdf67 tibluetooth: Add missing dependency to gpio tools
This package contains gpioset, gpiofind, etc
This tools are required to access the gpios from shell scripts.

Also fixes the RDEPENDS ${PN}

BugzID: 65420
2021-01-19 12:27:13 +01:00
Lucien Mueller 9361b9851c tibluetooth: optimize build.
Signed-off-by: Lucien Mueller <lucien.mueller@netmodule.com>
2021-01-18 14:45:58 +01:00
Lucien Mueller 1c8c1bb002 tibluetooth: improved the service to be more generic.
Name the BT_EN gpio in the device tree when you want to use this service.
It has to be found with the command: "gpiofind BT_EN".

Signed-off-by: Lucien Mueller <lucien.mueller@netmodule.com>
2021-01-18 14:19:36 +01:00
Alexandre Bard da7ad95535 u-boot-hw23: Set empty initial environment
The default behavior is to try to build u-boot-initial-env
Which is not implemented in our u-boot repo.

Part of yocto update to dunfell release.

BugzID: 69636
2021-01-16 18:47:54 +01:00
Alexandre Bard 3a0b031550 jody-w1-bt-hcd: Add missing dependency
The BT script is using the libgpiod tools (gpioset, gpiofind).

Part of yocto update to dunfell release.

BugzID: 69636
2021-01-16 18:47:54 +01:00
Alexandre Bard 69b1bfbdad hw23: Use A35 tune instead of generic aarch64
Afer upgrading meta-freescale to dunfell, the new default tune is
a35-crypto instead of aarch64.

Part of yocto update to dunfell release.

BugzID: 69636
2021-01-16 18:47:54 +01:00
Alexandre Bard 0bfb1df3f3 imx-sc-firmware: Update to 1.5.0
Aligning with recipes from meta-freescale/dunfell.

Part of yocto update to dunfell release.

BugzID: 69636
2021-01-16 18:47:54 +01:00
Alexandre Bard 2e9dbfea17 Make layer compatible with dunfell
BugzID: 69636
2021-01-16 18:47:54 +01:00
Alexandre Bard c3cd8fb06f gpsd: Move to recipes-navigation
BugzID: 67798
2021-01-16 18:47:54 +01:00
Alexandre Bard ddec09b25f gpsd: Use official backport recipe from meta-oe/master
BugzID: 67798
2021-01-16 18:47:54 +01:00
Alexandre Bard 17b7f134d8 ssc drivers: Fix build dependency
Build dependency are not package related and therefor the suffix _${PN}
is not required and not working as expected.

BugzID: 69520
2021-01-16 18:46:02 +01:00
Lucien Müller 1ae49c5df8 fb69520-integrate-system-state-framework (#70)
system-state-framework: added recipes for the broker, extmod and
sysstate parts.

move include files to ${STAGING_KERNEL_BUILDDIR}/include/broker/

Signed-off-by: Lucien Mueller <lucien.mueller@netmodule.com>

Co-authored-by: Ramon Moesching <ramon.moesching@netmodule.com>
Reviewed-on: https://git.netmodule.intranet/yoctoproject/meta-netmodule-bsp/pulls/70
2021-01-15 14:14:01 +01:00
120 changed files with 1709 additions and 1700 deletions

View File

@ -1,5 +1,3 @@
inherit kernel
do_assemble_fitimage[depends] += "fpga-image:do_deploy"
#
@ -8,12 +6,12 @@ do_assemble_fitimage[depends] += "fpga-image:do_deploy"
# $1 ... .its filename
# $2 ... Image counter
# $3 ... Path to fpga image
fitimage_emit_section_fpga() {
cat << EOF >> ${1}
fpga@${2} {
fitimage_emit_section_kernel_append() {
fpgacount=1
cat << EOF >> ${1}
fpga@${fpgacount} {
description = "FPGA";
data = /incbin/("${3}");
data = /incbin/("${DEPLOY_DIR_IMAGE}/fpga-image-${MACHINE}");
type = "fpga";
arch = "${UBOOT_ARCH}";
compression = "none";
@ -23,128 +21,3 @@ fitimage_emit_section_fpga() {
};
EOF
}
#
# Assemble fitImage
#
# $1 ... .its filename
# $2 ... fitImage name
# $3 ... include ramdisk
fitimage_assemble() {
kernelcount=1
fpgacount=1
dtbcount=""
DTBS=""
ramdiskcount=${3}
setupcount=""
rm -f ${1} arch/${ARCH}/boot/${2}
fitimage_emit_fit_header ${1}
#
# Step 1: Prepare a kernel image section.
#
fitimage_emit_section_maint ${1} imagestart
uboot_prep_kimage
fitimage_emit_section_kernel ${1} "${kernelcount}" linux.bin "${linux_comp}"
#
# Step 1.5: Prepare a fpga image section.
#
fitimage_emit_section_fpga ${1} "${fpgacount}" "${DEPLOY_DIR_IMAGE}/fpga-image-${MACHINE}"
#
# Step 2: Prepare a DTB image section
#
if [ -n "${KERNEL_DEVICETREE}" ]; then
dtbcount=1
for DTB in ${KERNEL_DEVICETREE}; do
if echo ${DTB} | grep -q '/dts/'; then
bbwarn "${DTB} contains the full path to the the dts file, but only the dtb name should be used."
DTB=`basename ${DTB} | sed 's,\.dts$,.dtb,g'`
fi
DTB_PATH="arch/${ARCH}/boot/dts/${DTB}"
if [ ! -e "${DTB_PATH}" ]; then
DTB_PATH="arch/${ARCH}/boot/${DTB}"
fi
DTB=$(echo "${DTB}" | tr '/' '_')
DTBS="${DTBS} ${DTB}"
fitimage_emit_section_dtb ${1} ${DTB} ${DTB_PATH}
done
fi
#
# Step 3: Prepare a setup section. (For x86)
#
if [ -e arch/${ARCH}/boot/setup.bin ]; then
setupcount=1
fitimage_emit_section_setup ${1} "${setupcount}" arch/${ARCH}/boot/setup.bin
fi
#
# Step 4: Prepare a ramdisk section.
#
if [ "x${ramdiskcount}" = "x1" ] ; then
# Find and use the first initramfs image archive type we find
for img in cpio.lz4 cpio.lzo cpio.lzma cpio.xz cpio.gz ext2.gz cpio; do
initramfs_path="${DEPLOY_DIR_IMAGE}/${INITRAMFS_IMAGE_NAME}.${img}"
echo "Using $initramfs_path"
if [ -e "${initramfs_path}" ]; then
fitimage_emit_section_ramdisk ${1} "${ramdiskcount}" "${initramfs_path}"
break
fi
done
fi
fitimage_emit_section_maint ${1} sectend
# Force the first Kernel and DTB in the default config
kernelcount=1
if [ -n "${dtbcount}" ]; then
dtbcount=1
fi
#
# Step 5: Prepare a configurations section
#
fitimage_emit_section_maint ${1} confstart
if [ -n "${DTBS}" ]; then
i=1
for DTB in ${DTBS}; do
dtb_ext=${DTB##*.}
if [ "${dtb_ext}" = "dtbo" ]; then
fitimage_emit_section_config ${1} "" "${DTB}" "" "" "`expr ${i} = ${dtbcount}`"
else
fitimage_emit_section_config ${1} "${kernelcount}" "${DTB}" "${ramdiskcount}" "${setupcount}" "`expr ${i} = ${dtbcount}`"
fi
i=`expr ${i} + 1`
done
fi
fitimage_emit_section_maint ${1} sectend
fitimage_emit_section_maint ${1} fitend
#
# Step 6: Assemble the image
#
uboot-mkimage \
${@'-D "${UBOOT_MKIMAGE_DTCOPTS}"' if len('${UBOOT_MKIMAGE_DTCOPTS}') else ''} \
-f ${1} \
arch/${ARCH}/boot/${2}
#
# Step 7: Sign the image and add public key to U-Boot dtb
#
if [ "x${UBOOT_SIGN_ENABLE}" = "x1" ] ; then
uboot-mkimage \
${@'-D "${UBOOT_MKIMAGE_DTCOPTS}"' if len('${UBOOT_MKIMAGE_DTCOPTS}') else ''} \
-F -k "${UBOOT_SIGN_KEYDIR}" \
${@'-K "${DEPLOY_DIR_IMAGE}/${UBOOT_DTB_BINARY}"' if len('${UBOOT_DTB_BINARY}') else ''} \
-r arch/${ARCH}/boot/${2}
fi
}

View File

@ -3,11 +3,10 @@
#@DESCRIPTION: Machine configuration for the netmodule hw25, aka TC Router
require am335x-nmhw24.conf
MACHINEOVERRIDES .= ":am335x-nmhw24"
PREFERRED_PROVIDER_virtual/bootloader = "u-boot-am335x-hw25"
UBOOT_MACHINE = "am335x_hw25_defconfig"
KERNEL_DEVICETREE = "am335x-hw25.dtb "
KERNEL_DEVICETREE_TO_USE = "${HW25_DT}"
SERIAL_CONSOLES = "115200;ttyS0"
DEFAULT_ETH = "lan0"

View File

@ -0,0 +1,9 @@
#@TYPE: Machine
#@NAME: NetModule HW 26 with user module
#@DESCRIPTION: NG800 (hw26) was based on VCU1 (hw21), but later on,
# the new VCU pro was based on the changes done on NG800
require am335x-hw26.conf
MACHINEOVERRIDES =. "am335x-hw26:"
USER_MODULE_MACHINE_FEATURE = "user-module"

View File

@ -4,5 +4,10 @@
#require conf/machine/include/ti33x.inc
require am335x-nmhw21.conf
KERNEL_DEVICETREE = "am335x-hw26.dtb "
MACHINEOVERRIDES .= ":am335x-nmhw21"
KERNEL_DEVICETREE_TO_USE = "${HW26_DT}"
MACHINEOVERRIDES =. "am335x-nmhw21:"
MACHINE_FEATURES += "pps"
# Remove usermodule
USER_MODULE_MACHINE_FEATURE = ""

View File

@ -6,13 +6,10 @@ require conf/machine/include/ti33x.inc
MACHINE_EXTRA_RRECOMMENDS = " kernel-modules kernel-devicetree"
KERNEL_DEFCONFIG ??= "am335x-nmhw21_defconfig"
KERNEL_DEVICETREE = "am335x-nmhw21-prod1.dtb \
"
KERNEL_DEVICETREE_TO_USE = "${HW21_DT}"
KERNEL_IMAGETYPE = "fitImage"
PREFERRED_PROVIDER_virtual/bootloader = "u-boot-am335x-nmhw21"
PREFERRED_PROVIDER_virtual/bootloader = "u-boot-ti33x"
UBOOT_MACHINE = "am335x_nmhw21_defconfig"
USE_VT = "0"
@ -22,9 +19,20 @@ WWAN_NBR = "1"
WWAN_VENDORS = "ublox"
MACHINE_FEATURES += " \
can \
spi \
imu \
gnss \
advanced-gnss \
wwan \
bluetooth \
tibluetooth \
neo-m8l \
wifi \
ti-wifi \
da9063-ignition \
"
USER_MODULE_MACHINE_FEATURE = "user-module"
MACHINE_FEATURES_append = " ${USER_MODULE_MACHINE_FEATURE}"

View File

@ -6,13 +6,10 @@ require conf/machine/include/ti33x.inc
MACHINE_EXTRA_RRECOMMENDS = " kernel-modules kernel-devicetree"
KERNEL_DEFCONFIG ??= "am335x-nmhw24_defconfig"
KERNEL_DEVICETREE = "am335x-nmhw24-prod1.dtb \
"
KERNEL_DEVICETREE_TO_USE = "${HW24_DT}"
KERNEL_IMAGETYPE = "fitImage"
PREFERRED_PROVIDER_virtual/bootloader = "u-boot-am335x-nmhw24"
PREFERRED_PROVIDER_virtual/bootloader = "u-boot-ti33x"
UBOOT_MACHINE = "am335x_nrhw24_defconfig"
USE_VT = "0"
@ -22,9 +19,12 @@ WWAN_NBR="1"
WWAN_VENDORS = "ublox"
MACHINE_FEATURES += " \
can \
wwan \
bluetooth \
tibluetooth \
atsha \
wifi \
ti-wifi \
"

View File

@ -6,23 +6,22 @@ require conf/machine/include/ti33x.inc
MACHINE_EXTRA_RRECOMMENDS = " kernel-modules kernel-devicetree"
KERNEL_DEFCONFIG ??= "am335x-nrhw16_defconfig"
KERNEL_DEVICETREE = "am335x-nrhw16.dtb \
am335x-nrhw16-prod2.dtb \
am335x-nrhw16-prod3.dtb \
am335x-nrhw16-prod4.dtb \
am335x-nrhw16-prod5.dtb \
"
KERNEL_IMAGETYPE = "fitImage"
KERNEL_DEVICETREE_TO_USE = "${HW16_DT}"
PREFERRED_PROVIDER_virtual/bootloader = "u-boot-am335x-nrhw16-v2"
PREFERRED_PROVIDER_virtual/bootloader = "u-boot-ti33x"
UBOOT_MACHINE = "am335x_nbhw16_v2_defconfig"
USE_VT = "0"
SERIAL_CONSOLES ?= "115200;ttyS1"
MACHINE_FEATURES += " \
can \
bluetooth \
tibluetooth \
atsha \
"
am335x-wakeup-timer \
wifi \
ti-wifi \
ath-wifi \
"

View File

@ -6,12 +6,10 @@ require conf/machine/include/ti33x.inc
MACHINE_EXTRA_RRECOMMENDS = " kernel-modules kernel-devicetree"
KERNEL_DEFCONFIG ??= "am335x-nrhw20_defconfig"
KERNEL_DEVICETREE = "am335x-nrhw20-prod1.dtb \
"
KERNEL_IMAGETYPE = "fitImage"
KERNEL_DEVICETREE_TO_USE = "${HW20_DT}"
PREFERRED_PROVIDER_virtual/bootloader = "u-boot-am335x-nrhw20-v1"
PREFERRED_PROVIDER_virtual/bootloader = "u-boot-ti33x"
UBOOT_MACHINE = "am335x_nrhw20_defconfig"
USE_VT = "0"
@ -21,8 +19,13 @@ WWAN_NBR = "1"
WWAN_VENDORS = "ublox"
MACHINE_FEATURES += " \
can \
wwan \
gnss \
bluetooth \
tibluetooth \
atsha \
"
wifi \
ti-wifi \
ath-wifi \
"

View File

@ -0,0 +1,21 @@
#@TYPE: Machine
#@NAME: HW17 based routers like NB2800
#@DESCRIPTION: Machine configuration for the HW17 based routers http://netmodule.com/en/products/vehicle-routers/NB2800
require conf/machine/include/armada.inc
SERIAL_CONSOLE = "115200 ttyS1"
MACHINE_EXTRA_RRECOMMENDS = " kernel-modules kernel-devicetree"
UBOOT_MACHINE = "${MACHINE}_defconfig"
IMAGE_BOOT_FILES = "u-boot-armada-385-hw17.kwb"
KERNEL_DEVICETREE_TO_USE = "${HW17_DT}"
PREFERRED_PROVIDER_virtual/kernel = "linux-netmodule"
MACHINE_FEATURES += " \
fpga \
atsha \
wifi \
ath-wifi \
"

View File

@ -1,18 +0,0 @@
#@TYPE: Machine
#@NAME: NBHW17 based routers like NB2800
#@DESCRIPTION: Machine configuration for the NBHW17 based routers http://netmodule.com/en/products/vehicle-routers/NB2800
require conf/machine/include/armada.inc
SERIAL_CONSOLE = "115200 ttyS1"
MACHINE_EXTRA_RRECOMMENDS = " kernel-modules kernel-devicetree"
KERNEL_DEFCONFIG ??= "nbhw_defconfig"
KERNEL_DEVICETREE = "armada-385-nbhw17-prod1.dtb"
KERNEL_IMAGETYPE = "zImage"
PREFERRED_PROVIDER_virtual/kernel = "linux-netmodule"
PV_pn-linux-netmodule = "4.12.0-${SRCPV}"
SRC_URI_pn-linux-netmodule = "git://github.com/netmodule/linux.git;protocol=https;branch=4.12/standard/nrhw14"
SRCREV_pn-linux-netmodule = "2fb3360ec3cf672c74321e1dbe5c04e59d1ced11"

View File

@ -7,19 +7,19 @@ require conf/machine/include/armada.inc
SERIAL_CONSOLE = "115200 ttyS1"
MACHINE_EXTRA_RRECOMMENDS = " kernel-modules kernel-devicetree"
KERNEL_DEFCONFIG ??= "armada-385-nrhw18_defconfig"
KERNEL_DEVICETREE = "armada-385-nrhw18-prod1.dtb"
KERNEL_IMAGETYPE = "fitImage"
KERNEL_DEVICETREE_TO_USE = "${HW18_DT}"
KERNEL_MODULE_PROBECONF += "ath10k_pci"
module_conf_ath10k_pci = "options ath10k_pci irq_mode=1"
PREFERRED_PROVIDER_virtual/bootloader = "u-boot-armada-385-nrhw18-v2"
IMAGE_BOOT_FILES = "u-boot-armada-385-nrhw18-v2.kwb"
UBOOT_MACHINE = "armada-385-hw18_defconfig"
IMAGE_BOOT_FILES = "u-boot-armada-385-hw18.kwb"
DEFAULT_ETH = "eth2"
MACHINE_FEATURES += " \
fpga \
atsha \
"
wifi \
ath-wifi \
"

View File

@ -17,9 +17,6 @@ SOTA_MACHINE = "${MACHINE}"
KERNEL_CLASSES_append = " kernel-fitimage"
KERNEL_IMAGETYPE = "Image"
KERNEL_IMAGETYPES = "fitImage Image"
KERNEL_IMAGETYPE_sota = "fitImage"
KERNEL_IMAGETYPES_sota = "fitImage"
UBOOT_ENTRYPOINT ?= "0x80020000"
UBOOT_MACHINE = "imx8qxp_mek_defconfig"
IMAGE_BOOT_FILES = "flash.bin"

View File

@ -3,7 +3,7 @@
#@DESCRIPTION: Machine configuration for the netmodule HW23, DLM variant
require imx8-nmhw23.conf
KERNEL_DEVICETREE = "netmodule/imx8-nmhw23-dlm.dtb"
KERNEL_DEVICETREE_TO_USE = "${HW23_DLM_DT}"
MACHINEOVERRIDES .= ":imx8-nmhw23"
SOTA_MACHINE = "imx8-nmhw23"

View File

@ -1,31 +1,19 @@
#@TYPE: Machine
#@NAME: NetModule HW 23
#@DESCRIPTION: Machine configuration for the nmhw23 mainboard
require conf/machine/include/imx-base.inc
# Prevent the use of imx mainline BSP
IMX_DEFAULT_BSP = ""
require conf/machine/include/tune-cortexa35.inc
MACHINEOVERRIDES =. "mx8:mx8x:mx8qxp:"
require include/imx8.inc
IMAGE_FSTYPES += "tar.gz cpio cpio.gz.u-boot"
IMAGE_CLASSES += "image_types"
MACHINE_EXTRA_RRECOMMENDS = " kernel-modules kernel-devicetree"
KERNEL_DEFCONFIG = "defconfig"
KERNEL_DEVICETREE = "netmodule/imx8-nmhw23.dtb"
KERNEL_DEVICETREE_TO_USE = "${HW23_DT}"
SOTA_MACHINE = "${MACHINE}"
KERNEL_CLASSES_append = " kernel-fitimage"
KERNEL_IMAGETYPE = "fitImage"
KERNEL_IMAGETYPE_aarch64 = "fitImage"
KERNEL_ALT_IMAGETYPE = "Image"
UBOOT_ENTRYPOINT = "0x80280000"
#UBOOT_MACHINE = "imx8_nmhw23_defconfig"
IMAGE_BOOT_FILES = "flash.bin"
@ -43,13 +31,28 @@ WWAN_NBR = "1"
WWAN_VENDORS = "ublox"
MACHINE_FEATURES += " \
pci \
can \
spi \
imu \
gnss \
advanced-gnss \
wwan \
bluetooth \
neo-m8l \
usb-hub-reset \
v2x \
imx-boot \
wifi \
ublox-wifi \
da9063-ignition \
"
ACCEPT_FSL_EULA = "1"
UBLOX_FEATURES = "jody-w1-pcie"
# Unstable versions are provided by meta-netmodule-wlan
# We prefer to keep the official stable versions
PREFERRED_VERSION_wpa-supplicant = "2.9"
PREFERRED_VERSION_hostapd = "2.9"

View File

@ -1,14 +1,13 @@
SOC_FAMILY = "armada"
require conf/machine/include/soc-family.inc
require netmodule-hardware.inc
DEFAULTTUNE ?= "cortexa9thf-neon"
require conf/machine/include/tune-cortexa9.inc
# Default providers, may need to override for specific machines
PREFERRED_PROVIDER_virtual/bootloader = "u-boot"
PREFERRED_PROVIDER_u-boot = "u-boot"
KERNEL_IMAGETYPE = "zImage"
PREFERRED_PROVIDER_virtual/bootloader = "u-boot-armada"
PREFERRED_PROVIDER_u-boot = "u-boot-armada"
UBOOT_ARCH = "arm"
UBOOT_MACHINE = "mvebu_db_armada8k_config"
@ -17,10 +16,22 @@ UBOOT_ENTRYPOINT = "0x13000000"
UBOOT_LOADADDRESS = "0x13000000"
# List common SoC features, may need to add touchscreen for specific machines
MACHINE_FEATURES = "kernel26 usbgadget usbhost vfat ext2 ext4 ethernet"
MACHINE_FEATURES = "kernel26 usbgadget usbhost pci vfat ext2 ext4 ethernet"
SOTA_MACHINE = "armada-385"
NM_TARGET = "netbolt"
NM_ARCH = "arm"
MACHINEOVERRIDES =. "${NM_TARGET}:"
PREFERRED_PROVIDER_virtual/kernel ?= "linux-netmodule"
PREFERRED_VERSION_linux-netmodule ?= "git-5.10"
# We have one kernel for all armada machines
KERNEL_IMAGETYPE = "zImage"
KERNEL_DEFCONFIG = "armada-385-netmodule_defconfig"
HW17_DT = "armada-385-nbhw17-prod1.dtb"
HW18_DT = "armada-385-nrhw18-prod1.dtb"
KERNEL_DEVICETREE = "${HW17_DT} ${HW18_DT}"

View File

@ -0,0 +1,24 @@
require conf/machine/include/imx-base.inc
require netmodule-hardware.inc
# Prevent the use of imx mainline BSP
IMX_DEFAULT_BSP = ""
# Prevent usage of dynamic-packagearch for the kernel
MACHINE_ARCH_FILTER = ""
require conf/machine/include/tune-cortexa35.inc
MACHINEOVERRIDES =. "mx8:mx8x:mx8qxp:"
KERNEL_IMAGETYPE = "Image"
KERNEL_ALT_IMAGETYPE = "Image"
UBOOT_ENTRYPOINT = "0x80280000"
PREFERRED_PROVIDER_virtual/kernel ?= "linux-netmodule"
PREFERRED_VERSION_linux-netmodule ?= "git-4.14-nxp"
KERNEL_DEFCONFIG = "imx8-netmodule_defconfig"
HW23_DT = "netmodule/imx8-nmhw23.dtb"
HW23_DLM_DT = "netmodule/imx8-nmhw23-dlm.dtb"
KERNEL_DEVICETREE = "${HW23_DT} ${HW23_DLM_DT}"

View File

@ -0,0 +1,2 @@
STAGING_KERNEL_DIR = "${TMPDIR}/work-shared/${TUNE_PKGARCH}/kernel-source"
STAGING_KERNEL_BUILDDIR = "${TMPDIR}/work-shared/${TUNE_PKGARCH}/kernel-build-artifacts"

View File

@ -1,5 +1,6 @@
SOC_FAMILY = "ti33x"
require conf/machine/include/soc-family.inc
require netmodule-hardware.inc
DEFAULTTUNE ?= "cortexa8thf-neon"
require conf/machine/include/tune-cortexa8.inc
@ -20,7 +21,8 @@ GUI_MACHINE_CLASS = "bigscreen"
MACHINE_KERNEL_PR = "r22"
# Default providers, may need to override for specific machines
PREFERRED_PROVIDER_virtual/kernel ?= "linux-mainline"
PREFERRED_PROVIDER_virtual/kernel ?= "linux-netmodule"
PREFERRED_VERSION_linux-netmodule ?= "git-5.10"
PREFERRED_PROVIDER_virtual/bootloader ?= "u-boot-ti-staging"
PREFERRED_PROVIDER_u-boot ?= "u-boot-ti-staging"
@ -39,9 +41,29 @@ IMAGE_BOOT_FILES = "MLO u-boot.img"
UBI_VOLNAME = "rootfs"
# List common SoC features, may need to add touchscreen for specific machines
MACHINE_FEATURES = "kernel26 apm usbgadget usbhost vfat ext2 screen alsa ethernet sgx"
MACHINE_FEATURES = "kernel26 apm usbgadget usbhost pci vfat ext2 screen alsa ethernet sgx"
NM_TARGET = "netbird"
NM_ARCH = "arm"
MACHINEOVERRIDES =. "${NM_TARGET}:"
# We have one kernel for all TI machines
KERNEL_IMAGETYPE = "zImage"
KERNEL_DEFCONFIG = "am335x-netmodule_defconfig"
# We need to specify all devicetrees here in order to build them with the kernel
HW16_DT = "am335x-nrhw16.dtb \
am335x-nrhw16-prod2.dtb \
am335x-nrhw16-prod3.dtb \
am335x-nrhw16-prod4.dtb \
am335x-nrhw16-prod5.dtb \
"
HW20_DT = "am335x-nrhw20-prod1.dtb"
HW21_DT = "am335x-nmhw21-prod1.dtb"
HW24_DT = "am335x-nmhw24-prod1.dtb"
HW25_DT = "am335x-hw25.dtb"
HW26_DT = "am335x-hw26.dtb"
KERNEL_DEVICETREE = "${HW16_DT} ${HW20_DT} ${HW21_DT} ${HW24_DT} ${HW25_DT} ${HW26_DT}"

View File

@ -8,10 +8,10 @@ LIC_FILES_CHKSUM = "file://${COREBASE}/meta/files/common-licenses/BSD-3-Clause;m
PV = "1.5.0+git${SRCPV}"
SRCBRANCH = "imx_4.14.98_2.0.0_ga"
SRC_URI = "git://source.codeaurora.org/external/imx/imx-atf.git;protocol=https;branch=${SRCBRANCH} \
SRC_URI = "git://github.com/nxp-imx/imx-atf.git;protocol=https;branch=${SRCBRANCH} \
file://0001-Allow-BUILD_STRING-to-be-set-in-.revision-file.patch \
"
SRCREV ?= "${AUTOREV}"
SRCREV ?= "413e93e10ee4838e9a68b190f1468722f6385e0e"
S = "${WORKDIR}/git"

View File

@ -4,8 +4,8 @@ DEPENDS = "zlib-native openssl-native"
SRCBRANCH = "imx_4.14.98_2.0.0_ga"
SRC_URI = "git://source.codeaurora.org/external/imx/imx-mkimage.git;protocol=https;branch=${SRCBRANCH}"
SRCREV ?= "${AUTOREV}"
SRC_URI = "git://github.com/nxp-imx/imx-mkimage.git;protocol=https;branch=${SRCBRANCH}"
SRCREV ?= "dd0234001713623c79be92b60fa88bc07b07f24f"
S = "${WORKDIR}/git"
BOOT_TOOLS = "imx-boot-tools"

View File

@ -14,7 +14,7 @@ PKGV = "${GITPKGVTAG}"
PV = "1.0-git${SRCPV}"
SRC_URI = "git://gitlab.com/netmodule/tools/bootloader-config.git;protocol=ssh;user=git;branch=master"
SRCREV ?= "${AUTOREV}"
SRCREV ?= "60269b7bbb4076247607c7a59b2134c3a5369f07"
S = "${WORKDIR}/git"
# Likely required in the future

View File

@ -1,28 +1,26 @@
DESCRIPTION = "Fpga image for NRHW18"
DESCRIPTION = "Fpga images"
LICENSE = "Proprietary"
LIC_FILES_CHKSUM = "file://${COREBASE}/meta/files/common-licenses/Proprietary;md5=0557f9d92cf58f2ccdd50f62f8ac0b28"
inherit deploy
SRC_URI_armada-385-nrhw18 = "file://LG00000000"
COMPATIBLE_MACHINE = "(armada-385-hw17|armada-385-nrhw18)"
SRC_URI = "file://LG00000000"
SRCREV = "${AUTOREV}"
PACKAGE_ARCH = "${MACHINE_ARCH}"
PV = "1.0.0"
do_install_armada-385-nrhw18 () {
do_install () {
install -d ${D}/logic
install -m 0644 ${WORKDIR}/LG00000000 ${D}/logic/
}
do_deploy_armada-385-nrhw18 () {
do_deploy () {
cp ${WORKDIR}/LG00000000 ${DEPLOYDIR}/fpga-image-${MACHINE}
}
do_deploy(){
}
FILES_${PN} += "/logic/LG00000000"
addtask deploy before do_build after do_compile
addtask deploy before do_build after do_compile

View File

@ -0,0 +1,7 @@
chip "da9063-*"
label in0 "main-voltage"
ignore in1
ignore in2
label in3 "wwan0-supply"
label in4 "rtc-voltage"
label temp1 "tjunc"

View File

@ -0,0 +1,13 @@
chip "da9063-*"
label in0 "main-voltage"
label in1 "input-voltage"
compute in1 15.0*@, @/15.0
label in2 "ignition-voltage"
compute in2 4.96*@, @/4.96
ignore in3
label in4 "rtc-voltage"
label temp1 "tjunc"
chip "*-mdio-*"
ignore in0
ignore temp1

View File

@ -0,0 +1 @@
am335x-hw26

View File

@ -0,0 +1,9 @@
chip "da9063-*"
label in0 "main-voltage"
label in1 "input-voltage"
compute in1 15.0*@, @/15.0
label in2 "ignition-voltage"
compute in2 4.96*@, @/4.96
label in3 "wwan0-supply"
label in4 "rtc-voltage"
label temp1 "tjunc"

View File

@ -0,0 +1,7 @@
chip "da9063-*"
label in0 "main-voltage"
ignore in1
ignore in2
ignore in3
label in4 "rtc-voltage"
label temp1 "tjunc"

View File

@ -0,0 +1,4 @@
FILESEXTRAPATHS_prepend := "${THISDIR}/${PN}:"
PACKAGECONFIG = ""

View File

@ -1,9 +1,11 @@
[Unit]
After=tibluetooth.service
After=jody-w1-bt-init.service
[Service]
Type=oneshot
ExecStart=/usr/bin/mac-address-set
RemainAfterExit=yes
ExecStart=/usr/bin/mac-address-set -b -l 1
[Install]
WantedBy=multi-user.target

View File

@ -1,25 +1,378 @@
#!/usr/bin/env bash
eth_mac=$(ip addr show eth0 | awk '$1 == "link/ether" {gsub(/\/.*$/, "", $2); print $2}')
wlan_mac=$(echo $eth_mac | sed -r "s/^(.{9})50(.{6})/\170\2/")
bt_addr=$(echo $eth_mac | sed -r "s/^(.{9})50(.{6})/\180\2/")
help_text='
This script configures bluetooth and wifi mac addresses
It is using the eth0 mac address as reference and then applying
a logical operation based on the mac address range.
Since the handling of wifi and bluetooth devices may be different
on different devices, this script is doing several attempts with
different approaches to be compatible with all devices.
Currently supported devices: HW21 and HW23
It currently supports two schemes:
* VCU1 scheme, starts with 7C:97:63: and ends with:
eth0: :50:XX:YY
wlan0: :70:XX:YY
bt0: :80:XX:YY
* VCU2 scheme, starts with 00:11:2B: and ends with:
eth0: :XX:YY:ZZ
wlan0: :XX:YY:ZZ+3
bt0: :XX:YY:ZZ+4
This script is NOT setting eth0 mac address, this must be done
before (usually bootloader).
'
level_error=0
level_warning=1
level_info=2
level_test=3
log_level="$level_info"
eth_mac=0
set_wlan=0
set_bt=0
invert_bt_mac=0
log () {
msg_level="$1"
level_string="$2"
msg="$3"
if [ "$log_level" = "$level_test" ]; then
echo "$msg"
elif [ "$log_level" -ge "$msg_level" ]; then
echo "$0: $level_string: $msg"
fi
}
log_test() {
msg="$1"
log "$level_test" "test" "$msg"
}
log_info() {
msg="$1"
log "$level_info" "info" "$msg"
}
log_warning() {
msg="$1"
log "$level_warning" "warning" "$msg"
}
log_error() {
msg="$1"
log "$level_error" "error" "$msg"
}
wait_on() {
cmd=$1
device=$2
if $cmd "$device" > /dev/null 2>/dev/null; then
return
fi
log_info "$device not ready"
log_info "Waiting...."
wait_timeout=0
while ! $cmd "$device" > /dev/null 2>/dev/null; do
if [ $wait_timeout -gt 10 ]; then
log_warning "Timeout after 10 seconds, exiting now.."
break
else
sleep 1
fi
wait_timeout=$(($wait_timeout+1))
done
log_info "$device ready"
}
wait_on_wlan0() {
wait_on ifconfig wlan0
}
wait_on_hci0() {
wait_on hciconfig hci0
}
is_wlan0_up() {
if ifconfig wlan0 | grep UP > /dev/null;
then
return "1"
else
return "0"
fi
}
set_wlan_mac_address() {
address=$1
log_info "Setting wlan0 mac address to $address"
ip link set wlan0 address "$address"
ret=$?
if [ $ret -ne 0 ]; then
log_warning "Setting wlan address failed $ret"
fi
return $ret
}
set_and_check_wlan_mac_address() {
address=$1
set_wlan_mac_address "$address"
ret=$?
if [ $ret -ne 0 ]; then
log_warning "Setting wlan address failed: $ret"
return $ret
fi
log_info "Checking success"
# Setting the mac may fail without error
# Checking MAC to be sure it worked
if ifconfig wlan0 | grep -i "$address" > /dev/null; then
log_info "wlan mac address successfully set"
return 0
else
log_warning "Setting wlan address failed without throwing an error"
return 1
fi
}
prepare_wlan() {
is_wlan0_up
wlan_iface_was_up=$?
if [[ "$wlan_iface_was_up" -eq "1" ]]; then
log_info "Taking wlan0 down"
ifconfig wlan0 down
fi
return "$wlan_iface_was_up"
}
unprepare_wlan() {
wlan_iface_was_up=$1
if [[ "$wlan_iface_was_up" -eq "1" ]]; then
log_info "Taking wlan0 back up"
ifconfig wlan0 up
else
log_info "Making sure wlan0 is down"
ifconfig wlan0 down
fi
}
prepare_and_set_wlan_mac_address() {
address="$1"
wait_on_wlan0
prepare_wlan
wlan_iface_was_up=$?
set_and_check_wlan_mac_address "$address"
ret=$?
if [[ "$ret" -ne 0 ]]; then
# On some devices the interface must be up to set the address
log_warning "Setting wlan address failed, trying with interface up"
ifconfig wlan0 up
set_and_check_wlan_mac_address "$address"
ret=$?
fi
unprepare_wlan "$wlan_iface_was_up"
return $ret
}
# Set WLAN address
ifconfig wlan0 | grep UP > /dev/null
up=$?
if [[ $up == 0 ]]; then
ifconfig wlan0 down
fi
ip link set wlan0 address $wlan_mac
# Returns 1 in case reset failed
# Returns 2 when the address is not correct after reset
set_and_check_bt_mac_address() {
address="$1"
addr_to_set="$address" # Because of some bug the address to set may be inverted
if [[ "$invert_bt_mac" -eq "1" ]]; then
addr_to_set=$(echo "$address" | sed -r "s/^(.{2}):(.{2}):(.{2}):(.{2}):(.{2}):(.{2})/\\6:\\5:\\4:\\3:\\2:\\1/")
fi
if [[ $up == 0 ]]; then
ifconfig wlan0 up
bdaddr "$addr_to_set" > /dev/null
ret=$?
if [ $ret -ne 0 ]; then
log_warning "Setting bluetooth address failed: $ret"
fi
sleep 2
log_info "Restarting bluetooth service"
if ! hciconfig hci0 reset; then
return 1
fi
systemctl restart bluetooth
sleep 1
wait_on_hci0
hciconfig hci0 up
log_info "Checking success"
if hciconfig hci0 | grep -i "$address" > /dev/null; then
log_info "Bluetooth address successfully set"
ret=0
else
log_warning "Setting bluetooth address failed without error"
ret=2
fi
return $ret
}
prepare_and_set_bt_mac_address() {
address=$1
wait_on_hci0
hciconfig hci0 up
log_info "Setting bluetooth mac address to $address"
set_and_check_bt_mac_address "$address"
ret=$?
return $ret
}
do_bt_hard_reset() {
if systemctl is-active --quiet jody-w1-bt-init; then
systemctl restart jody-w1-bt-init
elif systemctl is-active --quiet tibluetooth; then
systemctl restart tibluetooth
else
log_error "No hard reset possible"
return 1
fi
}
# VCU1 scheme, starts with 7C:97:63:
# eth0: 50:XX:YY
# wlan0: 70:XX:YY
# bt0: 80:XX:YY
is_vcu1_mac() {
[[ ${1^^} == "7C:97:63:50:"* ]]
}
vcu1_eth_to_wlan() {
echo "${1^^}" | sed -r "s/^(.{9})50(.{6})/\\170\\2/"
}
vcu1_eth_to_bt() {
echo "${1^^}" | sed -r "s/^(.{9})50(.{6})/\\180\\2/"
}
# VCU2 scheme, starts with 00:11:2B:
# eth0: XX:YY:ZZ
# wlan0: XX:YY:ZZ+3
# bt0: XX:YY:ZZ+4
is_vcu2_mac() {
[[ $1 == "00:11:2B:"* ]]
}
vcu2_eth_to_wlan_and_bt() {
iface="$1"
IFS=':' read -r -a digits <<< "$2"
# convert digits from hex to decimal
for ((x=0 ; x<6 ; x++)); do digits[x]=0x${digits[x]}; done
if [ $iface = "wlan" ]; then
digits[5]=$((digits[5] + 3))
elif [ $iface = "bt" ]; then
digits[5]=$((digits[5] + 4))
fi
mac=$(printf ":%02X" "${digits[@]}")
mac=${mac:1} # Remove first ":"
echo "$mac"
}
main() {
ret=0
if [ "$1" = "-h" ]; then
echo "$help_text"
echo "Usage:"
echo " $0"
echo " $0 -l <loglevel> # loglevel being between 0 (errors) and 2 (info)"
echo " $0 -w # set wifi address"
echo " $0 -b # set bluetooth address"
echo " $0 -i # invert bluetooth address"
echo " $0 -e <eth0 addr> # mac address input, e.g. 00:11:22:33:44:10"
exit 0
fi
while getopts l:wbie: option
do
case "${option}"
in
l)log_level=${OPTARG};;
w)set_wlan=1;;
b)set_bt=1;;
i)invert_bt_mac=1;;
e)eth_mac=${OPTARG};;
esac
done
if [ $eth_mac = 0 ]; then
eth_mac=$(ip addr show eth0 | awk '$1 == "link/ether" {gsub(/\/.*$/, "", $2); print $2}')
fi
eth_mac=${eth_mac^^} # UPPER case
if is_vcu1_mac "$eth_mac"; then
log_info "VCU1 mac address scheme"
wlan_mac=$(vcu1_eth_to_wlan "$eth_mac")
bt_addr=$(vcu1_eth_to_bt "$eth_mac")
elif is_vcu2_mac "$eth_mac"; then
log_info "VCU2 mac address scheme"
wlan_mac=$(vcu2_eth_to_wlan_and_bt "wlan" "$eth_mac")
bt_addr=$(vcu2_eth_to_wlan_and_bt "bt" "$eth_mac")
else
log_error "Unknown mac address scheme for: $eth_mac"
exit 1
fi
log_test "wlan: $wlan_mac"
log_test "bt: $bt_addr"
if [ $set_wlan = 1 ]; then
prepare_and_set_wlan_mac_address "$wlan_mac"
ret_wlan=$?
if [ $ret_wlan -ne 0 ]; then
log_error "Failed to set wlan mac address"
ret="$ret_wlan"
fi
fi
if [ $set_bt = 1 ]; then
prepare_and_set_bt_mac_address "$bt_addr"
ret_bt=$?
while [ $ret_bt -eq 1 ]; do
log_warning "Soft reset failed, doing hard reset and retrying"
do_bt_hard_reset
prepare_and_set_bt_mac_address "$bt_addr"
ret_bt=$?
done
if [ $ret_bt -ne 0 ]; then
log_error "Failed to set bluetooth mac address"
ret="$ret_bt"
fi
fi
return "$ret"
}
if [ "$1" = "testify" ]; then
return 0
fi
# Set BT address
bt_addr_rev=$(echo $bt_addr | sed -r "s/^(.{2}):(.{2}):(.{2}):(.{2}):(.{2}):(.{2})/\6:\5:\4:\3:\2:\1/")
bdaddr $bt_addr_rev
hciconfig hci0 reset
systemctl restart bluetooth
main $@
exit $?

View File

@ -0,0 +1,12 @@
[Unit]
Before=NetworkManager.service
[Service]
Type=oneshot
RemainAfterExit=yes
ExecStart=/usr/bin/mac-address-set -w -l 1
[Install]
WantedBy=multi-user.target

View File

@ -9,7 +9,8 @@ PR = "r2"
inherit systemd
SRC_URI = " \
file://mac-address-set.service \
file://wlan-address-set.service \
file://bt-address-set.service \
file://mac-address-set.sh \
"
@ -17,7 +18,7 @@ S = "${WORKDIR}"
INHIBIT_PACKAGE_DEBUG_SPLIT = "1"
SYSTEMD_SERVICE_${PN} = "mac-address-set.service"
SYSTEMD_SERVICE_${PN} = "wlan-address-set.service bt-address-set.service"
SYSTEMD_AUTO_ENABLE ?= "enable"
FILES_${PN}_append = " \
@ -25,9 +26,17 @@ FILES_${PN}_append = " \
/usr \
"
PACKAGE_ARCH = "${MACHINE_ARCH}"
do_install () {
install -d ${D}${systemd_unitdir}/system/
install -m 0644 mac-address-set.service ${D}${systemd_unitdir}/system/
install -m 0644 wlan-address-set.service ${D}${systemd_unitdir}/system/
install -m 0644 bt-address-set.service ${D}${systemd_unitdir}/system/
# Invert BT mac for TI chips
if ${@bb.utils.contains('MACHINE_FEATURES', 'tibluetooth', 'true', 'false',d)}; then
sed -i 's/^ExecStart=.*/& -i/g' ${D}${systemd_unitdir}/system/bt-address-set.service
fi
install -d ${D}/usr/bin
install -m 0755 mac-address-set.sh ${D}/usr/bin/mac-address-set

View File

@ -0,0 +1,48 @@
# bash-assert
testify is a lightweight unit testing framework for bash
# Usage
clone this repository `git clone https://github.com/zombieleet/testify.git` here.
run the mac-address-set-test.sh file and check the console output.
# Commands
all subcommands to the assert functions requres 4 arguments, the first argument is the actual value to test for, while the second argument
is the expected value, the thrid argument is a description of the test , while the fourth argument is a short description of what the test output should be
**expect** Compares two values
`assert expect "$(Name 'Jane' 'Doe')" "John Doe" "Test for Name Function" "should fail"`
To test the output of a function you have to use command substitution
You can also test single values
`assert expect "victory" "favour" "Test for Name comparison" "This should fail"`
testing for mathematical expressions
`assert expect "$((2+2))" "4" "Test for Simple Math Operation" "It should succeed"`
**regex** Does a regular expression match. The second argument to this subcommand should be a regular expression
`assert regex "What is the difference between 6 and half a dozen" "[[:digit:]]" "Match Number Regular Expression" "It should succeed"`
**status** Test for any status code. The second argument should be the expected status code. The first argument to this subcommand should be a command name, and it should not be passed as a command substitution but it should be passed as just a string wrapped in double quotes.
The arguments to the function should also be in the double quotes. Arguments with spaced should be wrapped in single quotes
`assert status "ls ." "0" "List in current dir" "it should return 0"`
**done** This should be last subcommand to call, it does not require any argument
# LICENSE
GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version.

View File

@ -0,0 +1,51 @@
#!/usr/bin/env bash
source ../files/mac-address-set.sh testify
source ./testify/testify.bash
assert expect "$(log_error 'test')" "$0: error: test" "Test for Error logging" "should succeed"
assert expect "$(log_info 'test')" "$0: info: test" "Test for Info logging" "should succeed"
# Testing VCU1 mac address converter
assert expect "$(vcu1_eth_to_wlan '7C:97:63:50:00:00')" "7C:97:63:70:00:00" "Test VCU1 WLAN 1" "should match"
assert expect "$(vcu1_eth_to_wlan '7c:97:63:50:00:00')" "7C:97:63:70:00:00" "Test VCU1 WLAN 2" "should match"
assert expect "$(vcu1_eth_to_bt '7C:97:63:50:00:0A')" "7C:97:63:80:00:0A" "Test VCU1 BT 1" "should match"
assert expect "$(vcu1_eth_to_bt '7c:97:63:50:00:0a')" "7C:97:63:80:00:0A" "Test VCU1 BT 2" "should match"
# Testing VCU2 mac address converter
assert expect "$(vcu2_eth_to_wlan_and_bt 'wlan' '00:11:2b:aa:cd:00')" "00:11:2B:AA:CD:03" "Test VCU2 WLAN 1" "should match"
assert expect "$(vcu2_eth_to_wlan_and_bt 'wlan' '00:11:2B:AA:CD:00')" "00:11:2B:AA:CD:03" "Test VCU2 WLAN 2" "should match"
assert expect "$(vcu2_eth_to_wlan_and_bt 'wlan' '00:11:2b:00:00:39')" "00:11:2B:00:00:3C" "Test VCU2 WLAN 3" "should match"
assert expect "$(vcu2_eth_to_wlan_and_bt 'wlan' '00:11:2b:00:00:f0')" "00:11:2B:00:00:F3" "Test VCU2 WLAN 4" "should match"
assert expect "$(vcu2_eth_to_wlan_and_bt 'wlan' '00:11:2b:00:00:f6')" "00:11:2B:00:00:F9" "Test VCU2 WLAN 5" "should match"
assert expect "$(vcu2_eth_to_wlan_and_bt 'wlan' '00:11:2b:00:00:f7')" "00:11:2B:00:00:FA" "Test VCU2 WLAN 6" "should match"
#assert expect "$(vcu2_eth_to_wlan_and_bt 'wlan' '00:11:2b:00:00:RS')" "" "Test VCU2 WLAN 7" "should match"
#assert expect "$(vcu2_eth_to_wlan_and_bt 'wlan' '00:11:2b:00:00:FF')" "" "Test VCU2 WLAN 8" "should match"
assert expect "$(vcu2_eth_to_wlan_and_bt 'wlan' '00:11:2b:00:00:06')" "00:11:2B:00:00:09" "Test VCU2 WLAN 9" "should match"
assert expect "$(vcu2_eth_to_wlan_and_bt 'bt' '00:11:2b:aa:cd:00')" "00:11:2B:AA:CD:04" "Test VCU2 BT 1" "should match"
assert expect "$(vcu2_eth_to_wlan_and_bt 'bt' '00:11:2B:AA:CD:00')" "00:11:2B:AA:CD:04" "Test VCU2 BT 2" "should match"
assert expect "$(vcu2_eth_to_wlan_and_bt 'bt' '00:11:2b:00:00:39')" "00:11:2B:00:00:3D" "Test VCU2 BT 3" "should match"
assert expect "$(vcu2_eth_to_wlan_and_bt 'bt' '00:11:2b:00:00:f0')" "00:11:2B:00:00:F4" "Test VCU2 BT 4" "should match"
assert expect "$(vcu2_eth_to_wlan_and_bt 'bt' '00:11:2b:00:00:f6')" "00:11:2B:00:00:FA" "Test VCU2 BT 5" "should match"
assert expect "$(vcu2_eth_to_wlan_and_bt 'bt' '00:11:2b:00:00:f7')" "00:11:2B:00:00:FB" "Test VCU2 BT 6" "should match"
#assert expect "$(vcu2_eth_to_wlan_and_bt 'wlan' '00:11:2b:00:00:RS')" "" "Test VCU2 BT 7" "should match"
#assert expect "$(vcu2_eth_to_wlan_and_bt 'wlan' '00:11:2b:00:00:FF')" "" "Test VCU2 BT 8" "should match"
assert expect "$(vcu2_eth_to_wlan_and_bt 'bt' '00:11:2b:00:00:06')" "00:11:2B:00:00:0A" "Test VCU2 BT 9" "should match"
# Examples:
#assert expect "$(Name 'Jane' 'Doe')" "John Doe" "Test for Name Function" "should fail"
#assert expect "$(Name 'Jane' 'Doe')" "Jane Doe" "Test for Name Function" "should succeed"
#assert status "Name" "5" "Test for status code" "should return 5"
#assert status "Name 'Jane' 'Doe'" "0" "Test for Status Code" "should return 0"
#assert status "Name 'Jane' " "3" "Test for Status Code" "should return 3"
#assert status "Name 'Jane' 'Doe'" "12" "Test for Status Code" "it should fail"
#assert regex "$(Name 'Jane' 'Doe')" "Jane" "Test for Regexp" "it should match"
#assert regex "123victory" "\W" "Test for Regexp Non Word Character" "it should fail if match failes"
#assert expect "$((2+2))" "4" "Test for Simple Math Operation" "It should succeed"
#assert regex "What is the difference between 6 and half a dozen" "[[:digit:]]" "Match Number Regular Expression" "It should succeed"
#assert status "ls ." "0" "List in current dir" "it should return 0"
assert done

View File

@ -0,0 +1,38 @@
SUMMARY = "Storage Information Tool"
SECTION = "base"
LICENSE = "MIT"
LIC_FILES_CHKSUM = "file://LICENSE;md5=81438338854bd7a09cb97215f36db46b"
SRC_URI = "git://gitlab.com/netmodule/tools/storage-info.git;protocol=ssh;user=git;branch=develop"
SRCREV ?= "6584feb5fb3e18572fee1cea9e20a6b8e5cd0251"
PV = "0.0.1+git${SRCPV}"
DEPENDS_append = " libnmapp"
inherit systemd
S = "${WORKDIR}/git"
B = "${S}/build"
SYSTEMD_SERVICE_${PN} = "storage-info.service"
FILES_${PN} += " \
${bindir}/storage-info \
${systemd_system_unitdir}/storage-info.service \
${sysconfdir}/storage/storage-info.conf \
"
# build variables for the target (rest is default)
EXTRA_OEMAKE_append = " 'BUILD_TARGET=target' 'BUILD_CONFIG=rls' 'SYSROOT=${STAGING_DIR_TARGET}'"
do_install() {
install -d ${D}${bindir}
install -m 755 ${B}/rls/target/${BPN} ${D}${bindir}
install -d ${D}${sysconfdir}/storage
install -m 644 ${S}/config/${BPN}.conf ${D}${sysconfdir}/storage/
install -d ${D}${systemd_system_unitdir}
install -m 644 ${S}/systemd/${BPN}.service ${D}${systemd_system_unitdir}
}

View File

@ -1,5 +0,0 @@
require u-boot-am335x-nmhw24_git.bb
UBOOT_MACHINE = "am335x_hw25_defconfig"

View File

@ -1,32 +0,0 @@
require u-boot-nm.inc
# Force machine configuration for this recipe
UBOOT_MACHINE = "am335x_nmhw21_defconfig"
# Be aware github/netmodule git
SRC_URI = "git://git.netmodule.intranet/nmrouter/u-boot;protocol=ssh;user=gitea;branch=2016.05-am335x-netmodule"
# Should be updated when a new U-Boot Version is available
SRCREV ?= "${AUTOREV}"
PV = "v2016.05+git${SRCPV}"
SPL_BINARY = "MLO"
UBOOT_SUFFIX = "img"
do_deploy_append() {
rm -f ${DEPLOYDIR}/*${PN}.xmodem.bin
rm -f ${DEPLOYDIR}/*${PN}.${UBOOT_SUFFIX}
cp ${S}/spl/u-boot-spl.bin ${DEPLOYDIR}/spl-${PN}.xmodem.bin
cp ${S}/u-boot.bin ${DEPLOYDIR}/${PN}.xmodem.bin
cp ${S}/u-boot.img ${DEPLOYDIR}/${PN}.${UBOOT_SUFFIX}
cp ${S}/MLO ${DEPLOYDIR}/spl-${PN}.${UBOOT_SUFFIX}
}
# nmhw21 and hw26 using same u-boot sources so let's create symlinks for hw26 when building nmhw21
PN_E = "u-boot-${MACHINE}"
do_deploy_append_am335x-hw26() {
cp ${S}/spl/u-boot-spl.bin ${DEPLOYDIR}/spl-${PN_E}.xmodem.bin
cp ${S}/u-boot.bin ${DEPLOYDIR}/${PN_E}.xmodem.bin
cp ${S}/u-boot.img ${DEPLOYDIR}/${PN_E}.${UBOOT_SUFFIX}
cp ${S}/MLO ${DEPLOYDIR}/spl-${PN_E}.${UBOOT_SUFFIX}
}

View File

@ -1,24 +0,0 @@
require u-boot-nm.inc
# Force machine configuration for this recipe
UBOOT_MACHINE = "am335x_nrhw24_defconfig"
# Be aware github/netmodule git
SRC_URI = "git://git.netmodule.intranet/nmrouter/u-boot;protocol=ssh;user=gitea;branch=2016.05-am335x-netmodule"
# Should be updated when a new U-Boot Version is available
SRCREV ?= "${AUTOREV}"
PV = "v2016.05+git${SRCPV}"
SPL_BINARY = "MLO"
UBOOT_SUFFIX = "img"
do_deploy_append() {
rm -f ${DEPLOYDIR}/*${PN}.xmodem.bin
rm -f ${DEPLOYDIR}/*${PN}.${UBOOT_SUFFIX}
cp ${S}/spl/u-boot-spl.bin ${DEPLOYDIR}/spl-${PN}.xmodem.bin
cp ${S}/u-boot.bin ${DEPLOYDIR}/${PN}.xmodem.bin
cp ${S}/u-boot.img ${DEPLOYDIR}/${PN}.${UBOOT_SUFFIX}
cp ${S}/MLO ${DEPLOYDIR}/spl-${PN}.${UBOOT_SUFFIX}
}

View File

@ -1,21 +0,0 @@
require u-boot-nm.inc
# Be aware github/netmodule git
SRC_URI = "git://git.netmodule.intranet/nmrouter/u-boot;protocol=ssh;user=gitea;branch=2016.05-am335x-netmodule"
# Should be updated when a new U-Boot Version is available
PV = "v2016.05+git${SRCPV}"
SPL_BINARY = "MLO"
UBOOT_SUFFIX = "img"
do_deploy_append() {
rm -f ${DEPLOYDIR}/*${PN}.xmodem.bin
rm -f ${DEPLOYDIR}/*${PN}.${UBOOT_SUFFIX}
cp ${S}/spl/u-boot-spl.bin ${DEPLOYDIR}/spl-${PN}.xmodem.bin
cp ${S}/u-boot.bin ${DEPLOYDIR}/${PN}.xmodem.bin
cp ${S}/u-boot.img ${DEPLOYDIR}/${PN}.${UBOOT_SUFFIX}
cp ${S}/MLO ${DEPLOYDIR}/spl-${PN}.${UBOOT_SUFFIX}
}

View File

@ -1,7 +0,0 @@
require u-boot-am335x-nrhw16-common.inc
# Force machine configuration for this recipe
UBOOT_MACHINE = "am335x_nbhw16_defconfig"
# Should be updated when a new U-Boot Version is available
SRCREV ?= "a6f157c6dbd048b452c7e2640215c55be658780c"

View File

@ -1,7 +0,0 @@
require u-boot-am335x-nrhw16-common.inc
# Force machine configuration for this recipe
UBOOT_MACHINE = "am335x_nbhw16_v2_defconfig"
SRCREV ?= "${AUTOREV}"

View File

@ -1,24 +0,0 @@
require u-boot-nm.inc
# Force machine configuration for this recipe
UBOOT_MACHINE = "am335x_nrhw20_defconfig"
# Be aware github/netmodule git
SRC_URI = "git://git.netmodule.intranet/nmrouter/u-boot;protocol=ssh;user=gitea;branch=2016.05-am335x-netmodule"
# Should be updated when a new U-Boot Version is available
SRCREV ?= "${AUTOREV}"
PV = "v2016.05+git${SRCPV}"
SPL_BINARY = "MLO"
UBOOT_SUFFIX = "img"
do_deploy_append() {
rm -f ${DEPLOYDIR}/*${PN}.xmodem.bin
rm -f ${DEPLOYDIR}/*${PN}.${UBOOT_SUFFIX}
cp ${S}/spl/u-boot-spl.bin ${DEPLOYDIR}/spl-${PN}.xmodem.bin
cp ${S}/u-boot.bin ${DEPLOYDIR}/${PN}.xmodem.bin
cp ${S}/u-boot.img ${DEPLOYDIR}/${PN}.${UBOOT_SUFFIX}
cp ${S}/MLO ${DEPLOYDIR}/spl-${PN}.${UBOOT_SUFFIX}
}

View File

@ -1,28 +0,0 @@
require u-boot-nm.inc
# Force machine configuration for this recipe
UBOOT_MACHINE = "armada-385-nrhw18-v2_defconfig"
# Be aware github/netmodule git
SRC_URI = "git://git.netmodule.intranet/nmrouter/u-boot;protocol=ssh;user=gitea;branch=2017.11-armada-nrhw"
DEPENDS = "bc-native"
# Should be updated when a new U-Boot Version is available
#SRCREV ?= "f665946cc415e628b237fcf846bda1debf40980b"
SRCREV = "${AUTOREV}"
PV = "v2017.11+git${SRCPV}"
UBOOT_SUFFIX = "kwb"
UBOOT_BINARY = "u-boot-spl.${UBOOT_SUFFIX}"
do_deploy_append() {
rm -f ${DEPLOYDIR}/${PN}-spl.bin
rm -f ${DEPLOYDIR}/${PN}.bin
rm -f ${DEPLOYDIR}/${PN}-spl.kwb
cp ${S}/spl/u-boot-spl.bin ${DEPLOYDIR}/spl-${PN}.xmodem.bin
cp ${S}/u-boot.bin ${DEPLOYDIR}/${PN}.xmodem.bin
cp ${S}/${UBOOT_BINARY} ${DEPLOYDIR}/${PN}.${UBOOT_SUFFIX}
}

View File

@ -0,0 +1,26 @@
require u-boot-nm.inc
# Be aware github/netmodule git
SRC_URI = "git://gitlab.com/netmodule/bootloader/netmodule-uboot.git;protocol=ssh;user=git;branch=2017.11/standard/armada-385"
DEPENDS += "bc-native"
# Should be updated when a new U-Boot Version is available
#SRCREV ?= "68d28424cf41e141207d9d8af76c5bc5e01a55e2"
SRCREV ?= "68d28424cf41e141207d9d8af76c5bc5e01a55e2"
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

@ -10,8 +10,8 @@ PROVIDES += "u-boot"
LICENSE = "GPLv2+"
LIC_FILES_CHKSUM = "file://Licenses/gpl-2.0.txt;md5=b234ee4d69f5fce4486a80fdaf4a4263"
SRC_URI = "git://git.netmodule.intranet/nmrouter/u-boot;protocol=ssh;user=gitea;branch=2018.03/imx/imx8-nmhw23;destsuffix=git"
SRCREV ?= "${AUTOREV}"
SRC_URI = "git://gitlab.com/netmodule/bootloader/netmodule-uboot.git;protocol=ssh;user=git;branch=2018.03/imx/imx8-nmhw23;destsuffix=git"
SRCREV ?= "68ad3ed09773011ab15e9dd50f9ec2bbf817ef3f"
S = "${WORKDIR}/git"

View File

@ -1,294 +1,13 @@
SUMMARY = "Universal Boot Loader for embedded devices"
HOMEPAGE = "http://www.denx.de/wiki/U-Boot/WebHome"
require recipes-bsp/u-boot/u-boot.inc
LICENSE = "GPLv2+"
LIC_FILES_CHKSUM = "file://Licenses/README;md5=a2c678cfd4a4d97135585cad908541c6"
S = "${WORKDIR}/git"
PACKAGE_ARCH = "${MACHINE_ARCH}"
PROVIDES = "virtual/bootloader"
inherit uboot-config deploy
PROVIDES = "virtual/bootloader"
EXTRA_OEMAKE = 'CROSS_COMPILE=${TARGET_PREFIX} CC="${TARGET_PREFIX}gcc ${TOOLCHAIN_OPTIONS}" V=1'
EXTRA_OEMAKE += 'HOSTCC="${BUILD_CC} ${BUILD_CFLAGS} ${BUILD_LDFLAGS}"'
PACKAGECONFIG ??= "openssl"
# u-boot will compile its own tools during the build, with specific
# configurations (aka when CONFIG_FIT_SIGNATURE is enabled) openssl is needed as
# a host build dependency.
PACKAGECONFIG[openssl] = ",,openssl-native"
# Allow setting an additional version string that will be picked up by the
# u-boot build system and appended to the u-boot version. If the .scmversion
# file already exists it will not be overwritten.
UBOOT_LOCALVERSION ?= ""
# Some versions of u-boot use .bin and others use .img. By default use .bin
# but enable individual recipes to change this value.
UBOOT_SUFFIX ??= "bin"
UBOOT_IMAGE ?= "u-boot-${MACHINE}-${PV}-${PR}.${UBOOT_SUFFIX}"
UBOOT_BINARY ?= "u-boot.${UBOOT_SUFFIX}"
UBOOT_SYMLINK ?= "${PN}.${UBOOT_SUFFIX}"
UBOOT_MAKE_TARGET ?= "all"
# Output the ELF generated. Some platforms can use the ELF file and directly
# load it (JTAG booting, QEMU) additionally the ELF can be used for debugging
# purposes.
UBOOT_ELF ?= ""
UBOOT_ELF_SUFFIX ?= "elf"
UBOOT_ELF_IMAGE ?= "u-boot-${MACHINE}-${PV}-${PR}.${UBOOT_ELF_SUFFIX}"
UBOOT_ELF_BINARY ?= "u-boot.${UBOOT_ELF_SUFFIX}"
UBOOT_ELF_SYMLINK ?= "u-boot-${MACHINE}.${UBOOT_ELF_SUFFIX}"
# Some versions of u-boot build an SPL (Second Program Loader) image that
# should be packaged along with the u-boot binary as well as placed in the
# deploy directory. For those versions they can set the following variables
# to allow packaging the SPL.
SPL_BINARY ?= ""
SPL_IMAGE ?= "${SPL_BINARY}-${MACHINE}-${PV}-${PR}"
SPL_SYMLINK ?= "${SPL_BINARY}-${PN}"
# Additional environment variables or a script can be installed alongside
# u-boot to be used automatically on boot. This file, typically 'uEnv.txt'
# or 'boot.scr', should be packaged along with u-boot as well as placed in the
# deploy directory. Machine configurations needing one of these files should
# include it in the SRC_URI and set the UBOOT_ENV parameter.
UBOOT_ENV_SUFFIX ?= "txt"
UBOOT_ENV ?= ""
UBOOT_ENV_BINARY ?= "${UBOOT_ENV}.${UBOOT_ENV_SUFFIX}"
UBOOT_ENV_IMAGE ?= "${UBOOT_ENV}-${MACHINE}-${PV}-${PR}.${UBOOT_ENV_SUFFIX}"
UBOOT_ENV_SYMLINK ?= "${UBOOT_ENV}-${MACHINE}.${UBOOT_ENV_SUFFIX}"
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
do_compile () {
if [ "${@bb.utils.contains('DISTRO_FEATURES', 'ld-is-gold', 'ld-is-gold', '', d)}" = "ld-is-gold" ] ; then
sed -i 's/$(CROSS_COMPILE)ld$/$(CROSS_COMPILE)ld.bfd/g' config.mk
fi
unset LDFLAGS
unset CFLAGS
unset CPPFLAGS
if [ ! -e ${B}/.scmversion -a ! -e ${S}/.scmversion ]
then
echo ${UBOOT_LOCALVERSION} > ${B}/.scmversion
echo ${UBOOT_LOCALVERSION} > ${S}/.scmversion
fi
if [ "x${UBOOT_CONFIG}" != "x" ]
then
for config in ${UBOOT_MACHINE}; do
i=`expr $i + 1`;
for type in ${UBOOT_CONFIG}; do
j=`expr $j + 1`;
if [ $j -eq $i ]
then
oe_runmake O=${config} ${config}
oe_runmake O=${config} ${UBOOT_MAKE_TARGET}
cp ${S}/${config}/${UBOOT_BINARY} ${S}/${config}/u-boot-${type}.${UBOOT_SUFFIX}
fi
done
unset j
done
unset i
else
oe_runmake ${UBOOT_MACHINE}
oe_runmake ${UBOOT_MAKE_TARGET}
fi
}
do_install () {
if [ "x${UBOOT_CONFIG}" != "x" ]
then
for config in ${UBOOT_MACHINE}; do
i=`expr $i + 1`;
for type in ${UBOOT_CONFIG}; do
j=`expr $j + 1`;
if [ $j -eq $i ]
then
install -d ${D}/boot
install ${S}/${config}/u-boot-${type}.${UBOOT_SUFFIX} ${D}/boot/u-boot-${type}-${PV}-${PR}.${UBOOT_SUFFIX}
ln -sf u-boot-${type}-${PV}-${PR}.${UBOOT_SUFFIX} ${D}/boot/${UBOOT_BINARY}-${type}
ln -sf u-boot-${type}-${PV}-${PR}.${UBOOT_SUFFIX} ${D}/boot/${UBOOT_BINARY}
fi
done
unset j
done
unset i
else
install -d ${D}/boot
install ${S}/${UBOOT_BINARY} ${D}/boot/${UBOOT_IMAGE}
ln -sf ${UBOOT_IMAGE} ${D}/boot/${UBOOT_BINARY}
fi
if [ "x${UBOOT_ELF}" != "x" ]
then
if [ "x${UBOOT_CONFIG}" != "x" ]
then
for config in ${UBOOT_MACHINE}; do
i=`expr $i + 1`;
for type in ${UBOOT_CONFIG}; do
j=`expr $j + 1`;
if [ $j -eq $i ]
then
install ${S}/${config}/${UBOOT_ELF} ${D}/boot/u-boot-${type}-${PV}-${PR}.${UBOOT_ELF_SUFFIX}
ln -sf u-boot-${type}-${PV}-${PR}.${UBOOT_ELF_SUFFIX} ${D}/boot/${UBOOT_BINARY}-${type}
ln -sf u-boot-${type}-${PV}-${PR}.${UBOOT_ELF_SUFFIX} ${D}/boot/${UBOOT_BINARY}
fi
done
unset j
done
unset i
else
install ${S}/${UBOOT_ELF} ${D}/boot/${UBOOT_ELF_IMAGE}
ln -sf ${UBOOT_ELF_IMAGE} ${D}/boot/${UBOOT_ELF_BINARY}
fi
fi
if [ -e ${WORKDIR}/fw_env.config ] ; then
install -d ${D}${sysconfdir}
install -m 644 ${WORKDIR}/fw_env.config ${D}${sysconfdir}/fw_env.config
fi
if [ "x${SPL_BINARY}" != "x" ]
then
if [ "x${UBOOT_CONFIG}" != "x" ]
then
for config in ${UBOOT_MACHINE}; do
i=`expr $i + 1`;
for type in ${UBOOT_CONFIG}; do
j=`expr $j + 1`;
if [ $j -eq $i ]
then
install ${S}/${config}/${SPL_BINARY} ${D}/boot/${SPL_IMAGE}-${type}-${PV}-${PR}
ln -sf ${SPL_IMAGE}-${type}-${PV}-${PR} ${D}/boot/${SPL_BINARY}-${type}
ln -sf ${SPL_IMAGE}-${type}-${PV}-${PR} ${D}/boot/${SPL_BINARY}
fi
done
unset j
done
unset i
else
install ${S}/${SPL_BINARY} ${D}/boot/${SPL_IMAGE}
ln -sf ${SPL_IMAGE} ${D}/boot/${SPL_BINARY}
fi
fi
if [ "x${UBOOT_ENV}" != "x" ]
then
install ${WORKDIR}/${UBOOT_ENV_BINARY} ${D}/boot/${UBOOT_ENV_IMAGE}
ln -sf ${UBOOT_ENV_IMAGE} ${D}/boot/${UBOOT_ENV_BINARY}
fi
}
FILES_${PN} = "/boot ${sysconfdir}"
# Ensure the split debug part of any elf files are put into dbg
FILES_${PN}-dbg += "/boot/.debug"
do_deploy () {
if [ "x${UBOOT_CONFIG}" != "x" ]
then
for config in ${UBOOT_MACHINE}; do
i=`expr $i + 1`;
for type in ${UBOOT_CONFIG}; do
j=`expr $j + 1`;
if [ $j -eq $i ]
then
install -d ${DEPLOYDIR}
install ${S}/${config}/u-boot-${type}.${UBOOT_SUFFIX} ${DEPLOYDIR}/u-boot-${type}-${PV}-${PR}.${UBOOT_SUFFIX}
cd ${DEPLOYDIR}
ln -sf u-boot-${type}-${PV}-${PR}.${UBOOT_SUFFIX} ${UBOOT_SYMLINK}-${type}
ln -sf u-boot-${type}-${PV}-${PR}.${UBOOT_SUFFIX} ${UBOOT_SYMLINK}
ln -sf u-boot-${type}-${PV}-${PR}.${UBOOT_SUFFIX} ${UBOOT_BINARY}-${type}
ln -sf u-boot-${type}-${PV}-${PR}.${UBOOT_SUFFIX} ${UBOOT_BINARY}
fi
done
unset j
done
unset i
else
install -d ${DEPLOYDIR}
install ${S}/${UBOOT_BINARY} ${DEPLOYDIR}/${UBOOT_IMAGE}
cd ${DEPLOYDIR}
rm -f ${UBOOT_BINARY} ${UBOOT_SYMLINK}
ln -sf ${UBOOT_IMAGE} ${UBOOT_SYMLINK}
ln -sf ${UBOOT_IMAGE} ${UBOOT_BINARY}
fi
if [ "x${UBOOT_ELF}" != "x" ]
then
if [ "x${UBOOT_CONFIG}" != "x" ]
then
for config in ${UBOOT_MACHINE}; do
i=`expr $i + 1`;
for type in ${UBOOT_CONFIG}; do
j=`expr $j + 1`;
if [ $j -eq $i ]
then
install ${S}/${config}/${UBOOT_ELF} ${DEPLOYDIR}/u-boot-${type}-${PV}-${PR}.${UBOOT_ELF_SUFFIX}
ln -sf u-boot-${type}-${PV}-${PR}.${UBOOT_ELF_SUFFIX} ${DEPLOYDIR}/${UBOOT_ELF_BINARY}-${type}
ln -sf u-boot-${type}-${PV}-${PR}.${UBOOT_ELF_SUFFIX} ${DEPLOYDIR}/${UBOOT_ELF_BINARY}
ln -sf u-boot-${type}-${PV}-${PR}.${UBOOT_ELF_SUFFIX} ${DEPLOYDIR}/${UBOOT_ELF_SYMLINK}-${type}
ln -sf u-boot-${type}-${PV}-${PR}.${UBOOT_ELF_SUFFIX} ${DEPLOYDIR}/${UBOOT_ELF_SYMLINK}
fi
done
unset j
done
unset i
else
install ${S}/${UBOOT_ELF} ${DEPLOYDIR}/${UBOOT_ELF_IMAGE}
ln -sf ${UBOOT_ELF_IMAGE} ${DEPLOYDIR}/${UBOOT_ELF_BINARY}
ln -sf ${UBOOT_ELF_IMAGE} ${DEPLOYDIR}/${UBOOT_ELF_SYMLINK}
fi
fi
if [ "x${SPL_BINARY}" != "x" ]
then
if [ "x${UBOOT_CONFIG}" != "x" ]
then
for config in ${UBOOT_MACHINE}; do
i=`expr $i + 1`;
for type in ${UBOOT_CONFIG}; do
j=`expr $j + 1`;
if [ $j -eq $i ]
then
install ${S}/${config}/${SPL_BINARY} ${DEPLOYDIR}/${SPL_IMAGE}-${type}-${PV}-${PR}
rm -f ${DEPLOYDIR}/${SPL_BINARY} ${DEPLOYDIR}/${SPL_SYMLINK}-${type}
ln -sf ${SPL_IMAGE}-${type}-${PV}-${PR} ${DEPLOYDIR}/${SPL_BINARY}-${type}
ln -sf ${SPL_IMAGE}-${type}-${PV}-${PR} ${DEPLOYDIR}/${SPL_BINARY}
ln -sf ${SPL_IMAGE}-${type}-${PV}-${PR} ${DEPLOYDIR}/${SPL_SYMLINK}-${type}
ln -sf ${SPL_IMAGE}-${type}-${PV}-${PR} ${DEPLOYDIR}/${SPL_SYMLINK}
fi
done
unset j
done
unset i
else
install ${S}/${SPL_BINARY} ${DEPLOYDIR}/${SPL_IMAGE}
rm -f ${DEPLOYDIR}/${SPL_BINARY} ${DEPLOYDIR}/${SPL_SYMLINK}
ln -sf ${SPL_IMAGE} ${DEPLOYDIR}/${SPL_BINARY}
ln -sf ${SPL_IMAGE} ${DEPLOYDIR}/${SPL_SYMLINK}
fi
fi
if [ "x${UBOOT_ENV}" != "x" ]
then
install ${WORKDIR}/${UBOOT_ENV_BINARY} ${DEPLOYDIR}/${UBOOT_ENV_IMAGE}
rm -f ${DEPLOYDIR}/${UBOOT_ENV_BINARY} ${DEPLOYDIR}/${UBOOT_ENV_SYMLINK}
ln -sf ${UBOOT_ENV_IMAGE} ${DEPLOYDIR}/${UBOOT_ENV_BINARY}
ln -sf ${UBOOT_ENV_IMAGE} ${DEPLOYDIR}/${UBOOT_ENV_SYMLINK}
fi
}
addtask deploy before do_build after do_compile

View File

@ -0,0 +1,24 @@
require u-boot-nm.inc
# Be aware github/netmodule git
SRC_URI = "git://gitlab.com/netmodule/bootloader/netmodule-uboot.git;protocol=ssh;user=git;branch=2016.05/standard/am335x"
# Should be updated when a new U-Boot Version is available
SRCREV = "69e9c386dd3734a01af79ca1cc565896facfb9f6"
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

@ -0,0 +1,87 @@
#!/bin/sh
# ************************************************************
# USB Hub Reset Script
# -----------------------
#
# The USB hub in the HW23 connects the GNSS modem, the v2x-
# module, the user interface and the user module.
#
# When HW23 device is powering up the v2x module enters DFU
# mode. This mode leads to enumeration errors when releasing
# the gnss module from reset. Thus a sequentialized startup
# is needed.
# This script just sets the USB hub either into reset mode or
# releases it from reset.
# ************************************************************
SCRIPT_NAME=$(basename "${0}")
SCRIPT_DIR=$(dirname "${0}")
SCRIPT_PATH=$(realpath "${SCRIPT_DIR}")
MYDIR=$(pwd)
HUB_RST=/sys/class/leds/hub_rst/brightness
ON_VALUE=0
OFF_VALUE=255
export HUB_RST_STATE="off"
#**********************************************************************************************
# local helper functions
#**********************************************************************************************
function printUsage()
{
echo -e "\\nUsage: ${SCRIPT_NAME} [OPTIONS] HUB_STATE\\n\\n"
echo -e " HUB_STATE The requested state of the usb hub:"
echo -e " * on = release hub from reset"
echo -e " * off = set hub into reset state (default)"
echo -e " OPTIONS:"
echo -e " -h|--help Show this help"
echo -e ""
}
#**********************************************************************************************
# main
#**********************************************************************************************
O=$(getopt -o h --long help -- "$@") || exit 1
if [ $? != 0 ]; then
echo "ERROR: Could not parse $SCRIPT_NAME command line options"
exit 1
fi
eval set -- "$O"
while true; do
case "${1}" in
-h|--help)
printUsage
exit 0
;;
--)
export HUB_RST_STATE="${2}"
shift 2
break
;;
*)
printUsage; exit 0 ;;
esac
done
if [ ! -f $HUB_RST ]; then
echo "ERROR $SCRIPT_NAME: USB hub reset lines not available"
return 1
fi
HUB_RST_VALUE=$OFF_VALUE
[[ "${HUB_RST_STATE}" != "off" ]] && HUB_RST_VALUE=$ON_VALUE || true
echo "$SCRIPT_NAME: set usb-hub=${HUB_RST_STATE}($HUB_RST_VALUE)..."
echo $HUB_RST_VALUE > $HUB_RST
if [[ "$?" != "0" ]]; then
echo "ERROR $SCRIPT_NAME: Could not set usb hub to ${HUB_RST_STATE}"
exit 1
fi
exit 0

View File

@ -0,0 +1,14 @@
[Unit]
Description=USB Hub Reset Service
Before=gpsd.service
[Service]
Type=oneshot
ExecStart=/usr/bin/usb-hub-reset on
RemainAfterExit=yes
[Install]
WantedBy=multi-user.target
RequiredBy=multi-user.target

View File

@ -0,0 +1,29 @@
DESCRIPTION = "USB-Hub Reset on HW23"
HOMEPAGE = "www.netmodule.com"
LICENSE = "MIT"
SECTION = "bsp"
RDEPENDS_${PN} = "usbutils coreutils"
LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/MIT;md5=0835ade698e0bcf8506ecda2f7b4f302"
inherit systemd
SRC_URI = " \
file://usb-hub-reset.service \
file://usb-hub-reset\
"
S = "${WORKDIR}"
SYSTEMD_SERVICE_${PN} = " \
usb-hub-reset.service \
"
FILES_${PN} = "${systemd_unitdir}/system ${bindir}"
do_install() {
install -d ${D}${systemd_unitdir}/system
install -m 644 ${WORKDIR}/usb-hub-reset.service ${D}${systemd_unitdir}/system/
install -d ${D}${bindir}
install -m 744 ${WORKDIR}/usb-hub-reset ${D}${bindir}
}

View File

@ -0,0 +1,141 @@
#!/bin/sh
SCRIPT_NAME=$(basename "${0}")
V2X_CONF=/etc/v2x0.conf
V2X_RST=/sys/class/leds/v2x_rst/brightness
ON_VALUE=0
#OFF_VALUE=255
IS_PLACEHOLDER_FW=false
#**********************************************************************************************
# local helper functions
#**********************************************************************************************
printUsage()
{
echo ""
echo "Usage: ${SCRIPT_NAME} [OPT] CMD"
echo ""
echo " CMD:"
echo " -h|--help Show this help"
echo ""
echo " OPT:"
echo " -c|--config-file=FILE The config file pathname (default=${V2X_CONF})"
echo ""
}
checkInputParameters()
{
if [ ! -f $V2X_RST ]; then
echo "ERROR $SCRIPT_NAME: v2x module reset lines not available"
exit 1
fi
if [ ! -f $V2X_CONF ]; then
echo "ERROR $SCRIPT_NAME: no v2x config file '${V2X_CONF}' found"
exit 1
fi
}
getConfigParameters()
{
echo "$SCRIPT_NAME: getting config parameter from $V2X_CONF"
placeholderEntry=$(grep is-placeholder-firmware $V2X_CONF | cut -d'=' -f2)
if [ "${placeholderEntry}" != "" ] && [ "${placeholderEntry}" = "true" ]; then
IS_PLACEHOLDER_FW=true
fi
}
enableTheModule()
{
pwrGpio="$(gpiofind UM_SUP_EN)"
echo "$SCRIPT_NAME: releasing v2x reset..."
echo $ON_VALUE > $V2X_RST
echo "$SCRIPT_NAME: toggling v2x module power..."
gpioset -m time -s 1 $pwrGpio=0
gpioset -m signal $pwrGpio=1 &
}
detectDfuMode()
{
timeoutS=30
echo "$SCRIPT_NAME: discovering DFU mode of v2x module (timeout=${timeoutS}s)..."
timeout $timeoutS bash -c -- 'while true; do lsusb | grep "0483:df11"; if [ $? == 0 ]; then break; fi; done'
if [ $? = 124 ]; then
echo "ERROR: v2x module is not available on usb bus"
exit 1
fi
}
waitForDfuModeExit()
{
disconnectTimeoutS=20
echo "$SCRIPT_NAME: wait for v2x module leaving DFU mode (timeout=${disconnectTimeoutS}s)..."
timeout $disconnectTimeoutS bash -c -- 'while true; do dmesg | grep "0483:df11"; if [ $? != 0 ]; then break; fi; done'
if [ $? = 124 ]; then
echo "$SCRIPT_NAME: no DFU mode exit of v2x module detected"
else
echo "$SCRIPT_NAME: v2x module exited DFU mode"
fi
}
loadFirmware()
{
echo "$SCRIPT_NAME: loading v2x firmware..."
output=$(dfu-util -d 0483:df11 -s 0x10000000 -D /lib/firmware/v2x/SECTON.packed_bin.rom 2>&1)
if [ $? != 0 ]; then
if echo "$output" | grep -i "Error during abort get_status"; then
echo "$SCRIPT_NAME: get_status abort error: ignoring"
exit 0
fi
echo "$SCRIPT_NAME: Something went wrong while uploading firmware:"
echo "$output"
exit 1
fi
}
#**********************************************************************************************
# main
#**********************************************************************************************
O=$(getopt -o hc: --long help,config-file: -- "$@") || exit 1
eval set -- "$O"
while true; do
case "${1}" in
-h|--help)
printUsage
exit 0
;;
-c|--config-file)
V2X_CONF=${2}
shift 2
;;
--)
break
;;
*)
printUsage; exit 0 ;;
esac
done
checkInputParameters
getConfigParameters
enableTheModule
detectDfuMode
if [ $IS_PLACEHOLDER_FW = true ]; then
echo "$SCRIPT_NAME: v2x placeholder firmware configured"
waitForDfuModeExit
exit 0
fi
loadFirmware
exit 0

View File

@ -0,0 +1,12 @@
[Unit]
Description=V2X Firmware loader
After=usb-hub-reset.service
[Service]
Type=oneshot
ExecStart=/usr/bin/v2x-fw-load
RemainAfterExit=yes
[Install]
WantedBy=multi-user.target
RequiredBy=multi-user.target

View File

@ -0,0 +1,2 @@
[default]
is-placeholder-firmware=true

View File

@ -0,0 +1 @@
[default]

View File

@ -0,0 +1,45 @@
# Copyright (C) 2019 Ramon Moesching <ramon.moesching@netmodule.com>
# Released under the MIT license (see COPYING.MIT for the terms)
DESCRIPTION = "Murata v2x module firmware loader service"
HOMEPAGE = "www.netmodule.com"
LICENSE = "MIT"
SECTION = "bsp/firmware"
RDEPENDS_${PN} = "dfu-util usbutils coreutils"
LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/MIT;md5=0835ade698e0bcf8506ecda2f7b4f302"
inherit systemd
SRC_URI = " \
file://v2x-ieee802.11p.service \
file://v2x-fw-load \
file://v2x_dummy.rom \
file://v2x0.conf \
file://v2x0-placeholderFw.conf \
"
S = "${WORKDIR}"
SYSTEMD_SERVICE_${PN} = " \
v2x-ieee802.11p.service \
"
FILES_${PN} = "${systemd_unitdir}/system ${bindir} ${nonarch_base_libdir}/firmware/v2x ${sysconfdir} "
do_install() {
install -d ${D}${systemd_unitdir}/system
install -m 644 ${WORKDIR}/v2x-ieee802.11p.service ${D}${systemd_unitdir}/system/
install -d ${D}${nonarch_base_libdir}/firmware/v2x
install -m 644 ${WORKDIR}/v2x_dummy.rom ${D}${nonarch_base_libdir}/firmware/v2x/SECTON.packed_bin.rom
install -d ${D}${sysconfdir}
if [ ! -z "${V2X_ENABLE_FW_LOAD}" ]; then
install -m 544 ${WORKDIR}/v2x0.conf ${D}${sysconfdir}
else
install -m 544 ${WORKDIR}/v2x0-placeholderFw.conf ${D}${sysconfdir}/v2x0.conf
fi
install -d ${D}${bindir}
install -m 744 ${WORKDIR}/v2x-fw-load ${D}${bindir}
}

View File

@ -1,14 +1,11 @@
[Unit]
Description=GNSS init service
After=v2x-ieee802.11p.service
After=usb-hub-reset.service v2x-ieee802.11p.service
[Service]
Type=oneshot
ExecStartPre=/bin/sh -c "echo 0 > /sys/class/leds/gnss_rst/brightness"
ExecStart=/usr/bin/echo start
ExecStop=/usr/bin/echo stop
ExecStopPost=/bin/sh -c "echo 0 > /sys/class/leds/gnss_rst/brightness"
ExecStart=/usr/bin/sh -c "echo 0 > /sys/class/leds/gnss_rst/brightness"
RemainAfterExit=yes

View File

@ -26,5 +26,4 @@ FILES_${PN}_append = "${systemd_unitdir}/system ${bindir}"
do_install_append() {
install -d ${D}${systemd_unitdir}/system
install -m 644 ${WORKDIR}/gnss-init.service ${D}${systemd_unitdir}/system/
}

View File

@ -25,7 +25,7 @@ PV = "1.0-git${SRCPV}"
PR = "r1"
SRC_URI = "git://gitlab.com/netmodule/tools/gnssmgr.git;protocol=ssh;user=git;branch=master"
SRCREV ?= "${AUTOREV}"
SRCREV = "3d80bb4871ddc2e3e84553a86b767b419b96148f"
S = "${WORKDIR}/git"
PACKAGES =+ "${PN}-test"

View File

@ -0,0 +1,21 @@
SUMMARY = "libqmi is a library for talking to WWAN devices by QMI protocol"
DESCRIPTION = "libqmi is a glib-based library for talking to WWAN modems and \
devices which speak the Qualcomm MSM Interface (QMI) protocol"
HOMEPAGE = "http://www.freedesktop.org/wiki/Software/libqmi"
LICENSE = "GPLv2 & LGPLv2.1"
LIC_FILES_CHKSUM = " \
file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263 \
file://COPYING.LIB;md5=4fbd65380cdd255951079008b364516c \
"
DEPENDS = "glib-2.0 glib-2.0-native"
inherit autotools pkgconfig bash-completion gobject-introspection
SRC_URI = "http://www.freedesktop.org/software/${BPN}/${BPN}-${PV}.tar.xz"
SRC_URI[sha256sum] = "a71963bb1097a42665287e40a9a36f95b8f9d6d6a4b7a5de22d660328af97cb9"
PACKAGECONFIG ??= "udev mbim"
PACKAGECONFIG[udev] = ",--without-udev,libgudev"
PACKAGECONFIG[mbim] = "--enable-mbim-qmux,--disable-mbim-qmux,libmbim"

View File

@ -9,4 +9,9 @@ ATTRS{idVendor}=="1546", ATTRS{idProduct}=="1141", ENV{ID_MM_DEVICE_PROCESS}="1"
ATTRS{idVendor}=="1546", ATTRS{idProduct}=="1143", ENV{ID_MM_DEVICE_PROCESS}="1"
ATTRS{idVendor}=="1546", ATTRS{idProduct}=="1146", ENV{ID_MM_DEVICE_PROCESS}="1"
# LARA-L6
ATTRS{idVendor}=="1546", ATTRS{idProduct}=="1341", ENV{ID_MM_DEVICE_PROCESS}="1"
ATTRS{idVendor}=="1546", ATTRS{idProduct}=="1342", ENV{ID_MM_DEVICE_PROCESS}="1"
ATTRS{idVendor}=="1546", ATTRS{idProduct}=="1343", ENV{ID_MM_DEVICE_PROCESS}="1"
LABEL="mm_netmodule_whitelist_end"

View File

@ -2,14 +2,14 @@ require recipes-connectivity/modemmanager/modemmanager_1.14.8.bb
# Use custom git repo as SRC
SRC_URI = "git://gitlab.com/netmodule/third-party/ModemManager;protocol=ssh;user=git;branch=mm-1-14-netmodule;"
SRCREV = "${AUTOREV}"
SRCREV ?= "35ef2f387bf53f0601901a5f08ab0f6bf57105c4"
S = "${WORKDIR}/git"
# Keep only ublox plugin
EXTRA_OECONF += "--disable-all-plugins --enable-plugin-ublox"
EXTRA_OECONF += "--disable-all-plugins --enable-plugin-ublox --enable-plugin-generic"
# Exclude mbim and qmi
PACKAGECONFIG = "systemd"
# Exclude mbim
PACKAGECONFIG = "systemd qmi"
# Add whitelist rules
FILESEXTRAPATHS_prepend := "${THISDIR}/files:"

View File

@ -1,5 +1,3 @@
inherit allarch
DESCRIPTION = "Configuration files for NetworkManager"
LICENSE = "Proprietary"
@ -8,13 +6,14 @@ LIC_FILES_CHKSUM = "file://${COREBASE}/meta/files/common-licenses/Proprietary;md
RDEPENDS_${PN} = "networkmanager"
PACKAGECONFIG ?= ""
DEFAULT_ETH ??= "eth0"
export DEFAULT_ETH ??= "eth0"
PACKAGECONFIG[unmanaged-devices] = ""
PACKAGECONFIG[ethernet-dhcp] = ""
SRC_URI = " \
file://eth0-static \
file://eth0-dhcp \
file://bridge-slave-eth0.nmconnection \
file://NetworkManager.conf \
file://00-fallback-dns.conf \
file://unmanaged-devices.conf \
@ -25,24 +24,59 @@ SRC_URI_append_am335x-nrhw20 = " \
file://system-connections-dhcp.tar.gz \
"
PACKAGE_ARCH = "${MACHINE_ARCH}"
SYSTEM_CONNECTIONS = "${D}${sysconfdir}/NetworkManager/system-connections/"
do_install () {
install -d ${D}${sysconfdir}/NetworkManager/dnsmasq.d
install -d ${D}${sysconfdir}/NetworkManager/system-connections
install -d ${SYSTEM_CONNECTIONS}
install -m 0644 ${WORKDIR}/NetworkManager.conf ${D}${sysconfdir}/NetworkManager/
install -m 0644 ${WORKDIR}/00-fallback-dns.conf ${D}${sysconfdir}/NetworkManager/dnsmasq.d/
static_ifaces=""
dhcp_ifaces=""
bridged_ifaces=""
if ${@bb.utils.contains('PACKAGECONFIG','ethernet-dhcp','true','false',d)}; then
install -m 0600 ${WORKDIR}/eth0-dhcp ${D}${sysconfdir}/NetworkManager/system-connections/eth0.nmconnection
# DHCP on main interface and static IP on the user module interface (if present)
dhcp_ifaces="$DEFAULT_ETH"
if ${@bb.utils.contains('MACHINE_FEATURES','user-module','true','false',d)}; then
static_ifaces="umnet0"
fi
else
install -m 0600 ${WORKDIR}/eth0-static ${D}${sysconfdir}/NetworkManager/system-connections/eth0.nmconnection
# static IP either on the bridge or main interface
if ${@bb.utils.contains('MACHINE_FEATURES','user-module','true','false',d)}; then
static_ifaces="br0"
bridged_ifaces="$DEFAULT_ETH umnet0"
else
static_ifaces="$DEFAULT_ETH"
fi
fi
# Handle HWs with different default interface
if [ "${DEFAULT_ETH}" != "eth0" ]; then
sed -i 's/eth0/${DEFAULT_ETH}/g' ${D}${sysconfdir}/NetworkManager/system-connections/*
mv ${D}${sysconfdir}/NetworkManager/system-connections/eth0.nmconnection \
${D}${sysconfdir}/NetworkManager/system-connections/${DEFAULT_ETH}.nmconnection
fi
for iface in $static_ifaces; do
install -m 0600 ${WORKDIR}/eth0-static ${SYSTEM_CONNECTIONS}/$iface.nmconnection
sed -i "s/eth0/$iface/g" ${SYSTEM_CONNECTIONS}/$iface.nmconnection
# Handle bridges
if ! [ "$iface" = "${iface#br}" ]; then
# Change type of main connection to bridge
sed -i "s/type=.*/type=bridge/g" ${SYSTEM_CONNECTIONS}/$iface.nmconnection
printf "\n[bridge]\nstp=false\n" >> ${SYSTEM_CONNECTIONS}/$iface.nmconnection
fi
done
for iface in $dhcp_ifaces; do
install -m 0600 ${WORKDIR}/eth0-dhcp ${SYSTEM_CONNECTIONS}/$iface.nmconnection
sed -i "s/eth0/$iface/g" ${SYSTEM_CONNECTIONS}/$iface.nmconnection
done
for iface in $bridged_ifaces; do
install -m 0600 ${WORKDIR}/bridge-slave-eth0.nmconnection ${SYSTEM_CONNECTIONS}/$iface.nmconnection
sed -i "s/eth0/$iface/g" ${SYSTEM_CONNECTIONS}/$iface.nmconnection
done
if ${@bb.utils.contains('PACKAGECONFIG','unmanaged-devices','true','false',d)}; then
@ -52,11 +86,11 @@ do_install () {
}
do_install_append_am335x-nrhw20() {
rm -rf ${D}${sysconfdir}/NetworkManager/system-connections/*
rm -rf ${SYSTEM_CONNECTIONS}/*
if ${@bb.utils.contains('PACKAGECONFIG','ethernet-dhcp','true','false',d)}; then
install -m 0600 ${WORKDIR}/system-connections-dhcp/* ${D}${sysconfdir}/NetworkManager/system-connections/
install -m 0600 ${WORKDIR}/system-connections-dhcp/* ${SYSTEM_CONNECTIONS}/
else
install -m 0600 ${WORKDIR}/system-connections-static/* ${D}${sysconfdir}/NetworkManager/system-connections/
install -m 0600 ${WORKDIR}/system-connections-static/* ${SYSTEM_CONNECTIONS}/
fi
}
@ -64,7 +98,7 @@ do_install_append_am335x-nrhw20() {
FILES_${PN} = " \
${sysconfdir}/NetworkManager/NetworkManager.conf \
${sysconfdir}/NetworkManager/dnsmasq.d \
${sysconfdir}/NetworkManager/system-connections \
${sysconfdir}/NetworkManager/system-connections \
${sysconfdir}/NetworkManager/conf.d \
"

View File

@ -0,0 +1,12 @@
[connection]
id=bridge-slave-eth0
type=ethernet
interface-name=eth0
master=br0
permissions=
slave-type=bridge
[ethernet]
mac-address-blacklist=
[bridge-port]

View File

@ -1,6 +1,5 @@
[connection]
id=ethernet
uuid=2a2b6485-4d06-4b86-8051-751399c6881a
type=ethernet
interface-name=eth0
permissions=

View File

@ -1,6 +1,5 @@
[connection]
id=ethernet
uuid=2a2b6485-4d06-4b86-8051-751399c6881a
type=ethernet
interface-name=eth0
permissions=

View File

@ -18,7 +18,7 @@ PV = "1.0-git${SRCPV}"
PR = "r1"
SRC_URI = "git://gitlab.com/netmodule/tools/nmubxlib.git;protocol=ssh;user=git;branch=master"
SRCREV ?= "${AUTOREV}"
SRCREV = "7c22b57cdd169a6651cb0c17a215d1e448727bcb"
S = "${WORKDIR}/git"

View File

@ -8,11 +8,17 @@ LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/GPL-2.0;md5=801f80980d171dd6425
PR = "r2"
inherit systemd
inherit allarch
RDEPENDS_{PN} = "firmware-ti-wl18xx"
RDEPENDS_${PN} = "\
firmware-ti-wl18xx \
bash \
libgpiod-tools \
"
SRC_URI = " \
file://tibluetooth.service \
file://tibluetooth.sh \
"
S = "${WORKDIR}"
@ -26,7 +32,10 @@ FILES_${PN}_append = " \
"
do_install () {
sed -i 's:BINDIR:${bindir}:g' tibluetooth.service
install -d ${D}${systemd_unitdir}/system/
install -m 0644 tibluetooth.service ${D}${systemd_unitdir}/system/tibluetooth.service
install -d ${D}${bindir}
install -m 0755 tibluetooth.sh ${D}${bindir}/tibluetooth
}

View File

@ -1 +0,0 @@
am335x-nmhw21/

View File

@ -1,18 +0,0 @@
[Unit]
Description=Attach ti bluetooth
Before=bluetooth.target
Requires=bluetooth.target
[Service]
Type=forking
ExecStartPre=-/bin/sh -c "/bin/echo 52 > /sys/class/gpio/export"
ExecStartPre=-/bin/sh -c "/bin/echo out > /sys/class/gpio/gpio52/direction"
ExecStartPre=/bin/sh -c "/bin/echo 1 > /sys/class/gpio/gpio52/value"
ExecStart=/usr/bin/hciattach /dev/ttyS5 texas 3000000 flow
ExecStopPost=/bin/sh -c "/bin/echo 0 > /sys/class/gpio/gpio52/value"
Restart=on-failure
[Install]
WantedBy=multi-user.target

View File

@ -1,18 +0,0 @@
[Unit]
Description=Attach ti bluetooth
Before=bluetooth.target
Requires=bluetooth.target
[Service]
Type=forking
ExecStartPre=-/bin/sh -c "/bin/echo 52 > /sys/class/gpio/export"
ExecStartPre=-/bin/sh -c "/bin/echo out > /sys/class/gpio/gpio52/direction"
ExecStartPre=/bin/sh -c "/bin/echo 1 > /sys/class/gpio/gpio52/value"
ExecStart=/usr/bin/hciattach /dev/ttyS5 texas 3000000 flow
ExecStopPost=/bin/sh -c "/bin/echo 0 > /sys/class/gpio/gpio52/value"
Restart=on-failure
[Install]
WantedBy=multi-user.target

View File

@ -1,19 +0,0 @@
[Unit]
Description=Attach ti bluetooth
Before=bluetooth.target
Requires=bluetooth.target
[Service]
Type=forking
ExecStartPre=/bin/sleep 10
ExecStartPre=-/bin/sh -c "/bin/echo 100 > /sys/class/gpio/export"
ExecStartPre=-/bin/sh -c "/bin/echo out > /sys/class/gpio/gpio100/direction"
ExecStartPre=/bin/sh -c "/bin/echo 1 > /sys/class/gpio/gpio100/value"
ExecStart=/usr/bin/hciattach /dev/ttyS5 texas 3000000 flow
ExecStopPost=/bin/sh -c "/bin/echo 0 > /sys/class/gpio/gpio100/value"
Restart=on-failure
[Install]
WantedBy=multi-user.target

View File

@ -1,18 +0,0 @@
[Unit]
Description=Attach ti bluetooth
Before=bluetooth.target
Requires=bluetooth.target
[Service]
Type=forking
ExecStartPre=-/bin/sh -c "/bin/echo 52 > /sys/class/gpio/export"
ExecStartPre=-/bin/sh -c "/bin/echo out > /sys/class/gpio/gpio52/direction"
ExecStartPre=/bin/sh -c "/bin/echo 1 > /sys/class/gpio/gpio52/value"
ExecStart=/usr/bin/hciattach /dev/ttyS5 texas 3000000 flow
ExecStopPost=/bin/sh -c "/bin/echo 0 > /sys/class/gpio/gpio52/value"
Restart=on-failure
[Install]
WantedBy=multi-user.target

View File

@ -0,0 +1,16 @@
[Unit]
Description=Attach ti bluetooth
Before=bluetooth.target
Requires=bluetooth.target
Requires=dev-bluetooth0.device
After=dev-bluetooth0.device
[Service]
Type=forking
ExecStart=BINDIR/tibluetooth start
ExecStop=BINDIR/tibluetooth stop
PIDFile=/run/bluetooth0-hci.pid
[Install]
WantedBy=multi-user.target

View File

@ -0,0 +1,43 @@
#!/usr/bin/env bash
PIDFILE_GPIO=/run/bluetooth0-gpio.pid
PIDFILE_HCI=/run/bluetooth0-hci.pid
enable_bt_chip() {
BT_EN=$(gpiofind BT_EN)
gpioset -m signal ${BT_EN}=1 &
PID_GPIO=$!
echo $PID_GPIO > $PIDFILE_GPIO
}
disable_bt_chip() {
kill $(<$PIDFILE_GPIO)
}
if [ "$1" = "start" ]; then
retries=0
while [ $retries -lt 5 ]
do
enable_bt_chip
if HCI_LOG=$(hciattach -p /dev/bluetooth0 texas 3000000 flow ); then
# Writing PID
echo "$HCI_LOG" | tail -n 1 > $PIDFILE_HCI
exit 0
fi
echo "$HCI_LOG"
disable_bt_chip
((retries++))
sleep 1
done
echo "Could not start hciattach"
exit -1
elif [ "$1" = "stop" ]; then
kill $(<$PIDFILE_HCI)
disable_bt_chip
else
echo "Unknown command"
exit -1
fi

View File

@ -1,216 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE flash SYSTEM "flash.dtd">
<flash fisVersion="2" revision="$Rev: 100111 $">
<category cmd="SST" supply="3V">
<sectorSize>4096</sectorSize>
<device jedec="xBF2601">
<sectorCount>512</sectorCount>
</device>
<device jedec="xBF2602">
<sectorCount>1024</sectorCount>
</device>
<device jedec="xBF2643" cmd="SST2">
<!-- the SQI block only supports up to 32MBit -->
<sectorCount>1024</sectorCount>
</device>
</category>
<category cmd="SPANSION" supply="3V">
<device jedec="x014016">
<sectorCount>1024</sectorCount>
</device>
<device jedec="x014015">
<sectorCount>512</sectorCount>
</device>
</category>
<category cmd="WINBOND" supply="3V">
<sectorSize>4096</sectorSize>
<device jedec="xEF4013">
<sectorCount>128</sectorCount>
</device>
<device jedec="xEF4014">
<sectorCount>256</sectorCount>
</device>
<device jedec="xEF4015">
<sectorCount>512</sectorCount>
</device>
<device jedec="xEF4016">
<sectorCount>1024</sectorCount>
</device>
<device jedec="xEF4017">
<!-- the SQI block only supports up to 32MBit -->
<sectorCount>1024</sectorCount>
</device>
<device jedec="xEF5014" supply="1.8V">
<cap writeSuspend="0"/>
<sectorCount>256</sectorCount>
</device>
<device jedec="xEF6013" supply="1.8V">
<sectorCount>128</sectorCount>
</device>
<device jedec="xEF6014" supply="1.8V">
<sectorCount>256</sectorCount>
</device>
<device jedec="xEF6015" supply="1.8V">
<sectorCount>512</sectorCount>
</device>
<device jedec="xEF6016" supply="1.8V">
<sectorCount>1024</sectorCount>
</device>
</category>
<category cmd="MACRONIX">
<sectorSize>4096</sectorSize>
<sectorCount>256</sectorCount>
<device jedec="xC22014" supply="3V"/>
<device jedec="xC22016" supply="3V">
<cap writeSuspend="1"/>
<minEraseSuspend>12000</minEraseSuspend>
<sectorCount>1024</sectorCount>
</device>
<device jedec="xC22515" supply="3V">
<sectorCount>512</sectorCount>
</device>
<device jedec="xC22415">
<sectorCount>512</sectorCount>
</device>
<device jedec="xC22534" supply="1.8V">
<cap writeSuspend="1"/>
<minEraseSuspend>12000</minEraseSuspend>
</device>
<device jedec="xC22535" supply="1.8V">
<cap writeSuspend="1"/>
<minEraseSuspend>12000</minEraseSuspend>
<sectorCount>512</sectorCount>
</device>
<device jedec="xC22536" supply="3V" cmd="MACRONIX2">
<cap writeSuspend="1"/>
<minEraseSuspend>9600</minEraseSuspend>
<sectorCount>1024</sectorCount>
</device>
</category>
<category cmd="GIGADEVICE">
<device jedec="xC84013" supply="3V">
<sectorSize>4096</sectorSize>
<sectorCount>128/</sectorCount>
</device>
<device jedec="xC84014" supply="3V">
<sectorSize>4096</sectorSize>
<sectorCount>256/</sectorCount>
</device>
<device jedec="xC84015" supply="3V">
<sectorSize>4096</sectorSize>
<sectorCount>512/</sectorCount>
</device>
<device jedec="xC84016" supply="3V">
<sectorSize>4096</sectorSize>
<sectorCount>1024/</sectorCount>
</device>
</category>
<device cmd="MICRON" jedec="x20BA16" supply="3V">
<sectorSize>4096</sectorSize>
<sectorCount>1024/</sectorCount>
</device>
<category cmd="EON">
<device jedec="x1C3013">
<sectorCount>128</sectorCount>
<!-- this device needs a min CS high time of 100ns between two reads -->
<cfg>0x000010CC</cfg>
</device>
<device jedec="x1C3014">
<sectorCount>256</sectorCount>
</device>
<device jedec="x1C7015">
<sectorCount>512</sectorCount>
</device>
</category>
<category cmd="EON" supply="1.8V">
<!-- these devices needs a min CS high time of 30ns between two reads -->
<cfg>0x000004CC</cfg>
<device jedec="x1C3814">
<sectorCount>256</sectorCount>
</device>
<device jedec="x1C3815">
<sectorCount>512</sectorCount>
</device>
<device jedec="x1C3816">
<sectorCount>1024</sectorCount>
</device>
<device jedec="x1C3817">
<!-- the SQI block only supports up to 32MBit -->
<sectorCount>1024</sectorCount>
</device>
</category>
<category cmd="FIDELIX">
<device jedec="xF83214">
<sectorCount>256</sectorCount>
</device>
<device jedec="xF83215">
<sectorCount>512</sectorCount>
</device>
<device jedec="xF84214" supply="1.8V">
<sectorCount>256</sectorCount>
</device>
<device jedec="xF84215" supply="1.8V">
<sectorCount>512</sectorCount>
</device>
<device jedec="xF84216" supply="1.8V">
<sectorCount>1024</sectorCount>
</device>
<device jedec="xF84217" supply="1.8V">
<!-- the SQI block only supports up to 32MBit -->
<sectorCount>1024</sectorCount>
</device>
</category>
<!-- %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -->
<!-- % Don't touch anything below here. This is autogenerated! % -->
<!-- %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -->
<cmdset name="EON">
<length>4032</length>
<checksum>4ae9f731</checksum>
<code>021e2406c130140000100000000800005a000000cc020000e02e0000100000008900000025010000b1010000490400003d02000000000000b9ab03ebffffffff0000ff50000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000070b5234e2148f16a012201eb0005214913460a614ff00500c8614ff480748868c007fcd112b1f06a401b06d5cc618868c007fcd1086ac007f4d1cb6040200b610322ca618a68d207fcd1c0f30742ca618a68d207fcd1c0f30722ca618a68d207fcd1c0b2c8618868c007fcd10a4d7d44cc618a68d207fcd10a6a2e18401c86f844204428f4d3cb6070bd0000006cdc0200a001400020004006ffffff10b5204c7c4420480122026194f83b10c1618168c907fcd1022181610023c3618168c907fcd1c3618168c907fcd1c3618168c907fcd1216901f00f04c1f3031141ea0411c1618168c907fcd1c3618168c907fcd1c3618168c907fcd14ff48073c3618168c907fcd1c3618168c907fcd1c3618168c907fcd1c3618168c907fcd1c26010bd18ffffff0020004010b5204c7c4494f8421001221e48002341b983610261ff21c1618168c907fcd1c26010bd0261c3618168c907fcd1c3618168c907fcd1c3618168c907fcd194f84210c1618168c907fcd1c3618168c907fcd1c3618168c907fcd14ff48074c4618168c907fcd1c4618168c907fcd1c4618168c907fcd1c4618168c907fcd1c260836110bd8cfeffff002000402de9f04f7d4a7a4492f8426001247c4b00254ff4807946b99d611c61ff26de619e68f607fcd1dc602ee01c61dd619e68f607fcd1dd619e68f607fcd1dd619e68f607fcd192f84260de619e68f607fcd1dd619e68f607fcd1dd619e68f607fcd14f46c3f81c909e68f607fcd1df619e68f607fcd1df619e68f607fcd1df619e68f607fcd1dc609d615678f60700d10021a0f500001c610626de619e68f607fcd1dc601c612026de619e68f607fcd1c0f30746de619e68f607fcd1c0f30726de619e68f607fcd1c0b2d8619868c007fcd1dc60906909b1012600e00026dff824c116b1dcf82c703944dcf82c701c6107eb00084ff0050bc3f81cb09868c007fcd1414f4ff0e02ee24676b1daf82c00b0eb010c06d5b0eb080006d4def8040d384202d0dc60284609e0c3f81c909868c007fcd1186ac007e7d12046dc6008b102201fe01c6192f84000d8619868c007fcd1dc6000210e461c61c3f81cb09868c007fcd15746cc4616b1f86a401a07d5c3f81cc09868c007fcd1186ac007f3d1dc6001201c6192f83b10d9619968c907fcd102219961dd619968c907fcd1dd619968c907fcd1dd619968c907fcd1116901f00f02c1f3031141ea0211d9619968c907fcd1dd619968c907fcd1dd619968c907fcd14a46c3f81c909968c907fcd1da619968c907fcd1da619968c907fcd1da619968c907fcd1dc60bde8f08ffefdffff0020004000a0014001600200f0b5734f7f4497f842c0012400252602704bbcf1000f0cd19d611c614ff0ff0cc3f81cc0d3f808c05feacc7cfad1dc6043e01c61c3f81c50d3f808c05feacc7cfad1dd61d3f808c05feacc7cfad1dd61d3f808c05feacc7cfad197f842c0c3f81cc000bfd3f808c05feacc7cfad1dd61d3f808c05feacc7cfad1dd61d3f808c05feacc7cfad1de61d3f808c05feacc7cfad1de61d3f808c05feacc7cfad1de61d3f808c05feacc7cfad1de61d3f808c05feacc7cfad1dc609d611c614ff0060cc3f81cc0d3f808c05feacc7cfad1dc601c614ff0020cc3f81cc000bfd3f808e05feace7efad1c0f3074ec3f81ce000bfd3f808e05feace7efad1c0f3072ec3f81ce000bfd3f808e05feace7efad1c0b2d8619868c007fcd111f8010bd8619868c007fcd1521ef7d1dc6000210a461c610520d8619868c007fcd1dff89ce01ab1def82c00401a06d5de619868c007fcd1186ac007f3d1dc601c6197f83b00d8619868c007fcd1c3f818c0dd619868c007fcd1dd619868c007fcd1dd619868c007fcd1386900f00f01c0f3031040ea0110d8619868c007fcd1dd619868c007fcd1dd619868c007fcd1de619868c007fcd1de619868c007fcd1de619868c007fcd1de619868c007fcd1dc606046f0bd0000f4fbffff0020004000a00140</code>
</cmdset>
<cmdset name="FIDELIX">
<length>4032</length>
<checksum>b2daeed8</checksum>
<code>021e5c08c130140000100000800000005a000000cc0a0000e02e000010000000890000008901000015020000ad040000a102000089060000b9ab03ebffffffff757a005000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002de9f0433b4cdff8e8c0e26a012102eb0c06394a0d4611614ff00508c2f81c804ff000094ff480739068c007fcd111b1e06a801b06d5d3619068c007fcd1106ac007f4d1d560402015610321d1619168c907fcd1c0f30741d1619168c907fcd1c0f30721d1619168c907fcd1c0b2d0619068c007fcd1214f7f44d3619168c907fcd1116a3e18401c86f844104428f4d3d560484615610621d1619168c907fcd1d5601561d5619168c907fcd1d0619068c007fcd10220d0619068c007fcd1d560e16a012061441561c2f81c809668f607fcd110b1e66a761a06d5d3619668f607fcd1166af607f4d1d560bde8f0830000006cdc0200a0014000200040fcfeffff10b5204c7c4420480122026194f83b10c1618168c907fcd1022181610023c3618168c907fcd1c3618168c907fcd1c3618168c907fcd1216901f00f04c1f3031141ea0411c1618168c907fcd1c3618168c907fcd1c3618168c907fcd14ff48073c3618168c907fcd1c3618168c907fcd1c3618168c907fcd1c3618168c907fcd1c26010bdb4feffff0020004010b5204c7c4494f8421001221e48002341b983610261ff21c1618168c907fcd1c26010bd0261c3618168c907fcd1c3618168c907fcd1c3618168c907fcd194f84210c1618168c907fcd1c3618168c907fcd1c3618168c907fcd14ff48074c4618168c907fcd1c4618168c907fcd1c4618168c907fcd1c4618168c907fcd1c260836110bd28feffff002000402de9f04f7d4a7a4492f8426001247c4b00254ff4807946b99d611c61ff26de619e68f607fcd1dc602ee01c61dd619e68f607fcd1dd619e68f607fcd1dd619e68f607fcd192f84260de619e68f607fcd1dd619e68f607fcd1dd619e68f607fcd14f46c3f81c909e68f607fcd1df619e68f607fcd1df619e68f607fcd1df619e68f607fcd1dc609d615678f60700d10021a0f500001c610626de619e68f607fcd1dc601c612026de619e68f607fcd1c0f30746de619e68f607fcd1c0f30726de619e68f607fcd1c0b2d8619868c007fcd1dc60906909b1012600e00026dff824c116b1dcf82c703944dcf82c701c6107eb00084ff0050bc3f81cb09868c007fcd1414f4ff0e02ee24676b1daf82c00b0eb010c06d5b0eb080006d4def8040d384202d0dc60284609e0c3f81c909868c007fcd1186ac007e7d12046dc6008b102201fe01c6192f84000d8619868c007fcd1dc6000210e461c61c3f81cb09868c007fcd15746cc4616b1f86a401a07d5c3f81cc09868c007fcd1186ac007f3d1dc6001201c6192f83b10d9619968c907fcd102219961dd619968c907fcd1dd619968c907fcd1dd619968c907fcd1116901f00f02c1f3031141ea0211d9619968c907fcd1dd619968c907fcd1dd619968c907fcd14a46c3f81c909968c907fcd1da619968c907fcd1da619968c907fcd1da619968c907fcd1dc60bde8f08f9afdffff0020004000a0014001600200f0b5734f7f4497f842c0012400252602704bbcf1000f0cd19d611c614ff0ff0cc3f81cc0d3f808c05feacc7cfad1dc6043e01c61c3f81c50d3f808c05feacc7cfad1dd61d3f808c05feacc7cfad1dd61d3f808c05feacc7cfad197f842c0c3f81cc000bfd3f808c05feacc7cfad1dd61d3f808c05feacc7cfad1dd61d3f808c05feacc7cfad1de61d3f808c05feacc7cfad1de61d3f808c05feacc7cfad1de61d3f808c05feacc7cfad1de61d3f808c05feacc7cfad1dc609d611c614ff0060cc3f81cc0d3f808c05feacc7cfad1dc601c614ff0020cc3f81cc000bfd3f808e05feace7efad1c0f3074ec3f81ce000bfd3f808e05feace7efad1c0f3072ec3f81ce000bfd3f808e05feace7efad1c0b2d8619868c007fcd111f8010bd8619868c007fcd1521ef7d1dc6000210a461c610520d8619868c007fcd1dff89ce01ab1def82c00401a06d5de619868c007fcd1186ac007f3d1dc601c6197f83b00d8619868c007fcd1c3f818c0dd619868c007fcd1dd619868c007fcd1dd619868c007fcd1386900f00f01c0f3031040ea0110d8619868c007fcd1dd619868c007fcd1dd619868c007fcd1de619868c007fcd1de619868c007fcd1de619868c007fcd1de619868c007fcd1dc606046f0bd000090fbffff0020004000a001402de9f04f6f4a7a4492f8421001246e4b00254ff4807941b99d611c61ff21d9619968c907fcd1dc602ee01c61dd619968c907fcd1dd619968c907fcd1dd619968c907fcd192f84210d9619968c907fcd1dd619968c907fcd1dd619968c907fcd14e46c3f81c909968c907fcd1de619968c907fcd1de619968c907fcd1de619968c907fcd1dc609d611c6192f84110d9619968c907fcd1dc60916908b1012600e00026dff828c116b1dcf82c703844dcf82c701c6107eb01084ff0050bc3f81cb09968c907fcd1424f4ff0e02ee24676b1daf82c10b1eb000c06d5b1eb080106d4def8041d394202d0dc60284609e0c3f81c909968c907fcd1196ac907e7d12046dc6008b102201fe01c6192f84000d8619868c007fcd1dc6000210e461c61c3f81cb09868c007fcd15746cc4616b1f86a401a07d5c3f81cc09868c007fcd1186ac007f3d1dc6001201c6192f83b10d9619968c907fcd102219961dd619968c907fcd1dd619968c907fcd1dd619968c907fcd1116901f00f02c1f3031141ea0211d9619968c907fcd1dd619968c907fcd1dd619968c907fcd14a46c3f81c909968c907fcd1da619968c907fcd1da619968c907fcd1da619968c907fcd1dc60bde8f08f0000b2f9ffff0020004000a0014001600200</code>
</cmdset>
<cmdset name="GIGADEVICE">
<length>4032</length>
<checksum>853b6a2b</checksum>
<code>021a5c08c840130000100000800000000a000000cc020000e02e000010000000890000008901000015020000ad040000a102000089060000000000ebffffffff757a005000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002de9f0433b4cdff8e8c0e26a012102eb0c06394a0d4611614ff00508c2f81c804ff000094ff480739068c007fcd111b1e06a801b06d5d3619068c007fcd1106ac007f4d1d560402015610321d1619168c907fcd1c0f30741d1619168c907fcd1c0f30721d1619168c907fcd1c0b2d0619068c007fcd1214f7f44d3619168c907fcd1116a3e18401c86f844104428f4d3d560484615610621d1619168c907fcd1d5601561d5619168c907fcd1d0619068c007fcd10220d0619068c007fcd1d560e16a012061441561c2f81c809668f607fcd110b1e66a761a06d5d3619668f607fcd1166af607f4d1d560bde8f0830000006cdc0200a0014000200040fcfeffff10b5204c7c4420480122026194f83b10c1618168c907fcd1022181610023c3618168c907fcd1c3618168c907fcd1c3618168c907fcd1216901f00f04c1f3031141ea0411c1618168c907fcd1c3618168c907fcd1c3618168c907fcd14ff48073c3618168c907fcd1c3618168c907fcd1c3618168c907fcd1c3618168c907fcd1c26010bdb4feffff0020004010b5204c7c4494f8421001221e48002341b983610261ff21c1618168c907fcd1c26010bd0261c3618168c907fcd1c3618168c907fcd1c3618168c907fcd194f84210c1618168c907fcd1c3618168c907fcd1c3618168c907fcd14ff48074c4618168c907fcd1c4618168c907fcd1c4618168c907fcd1c4618168c907fcd1c260836110bd28feffff002000402de9f04f7d4a7a4492f8426001247c4b00254ff4807946b99d611c61ff26de619e68f607fcd1dc602ee01c61dd619e68f607fcd1dd619e68f607fcd1dd619e68f607fcd192f84260de619e68f607fcd1dd619e68f607fcd1dd619e68f607fcd14f46c3f81c909e68f607fcd1df619e68f607fcd1df619e68f607fcd1df619e68f607fcd1dc609d615678f60700d10021a0f500001c610626de619e68f607fcd1dc601c612026de619e68f607fcd1c0f30746de619e68f607fcd1c0f30726de619e68f607fcd1c0b2d8619868c007fcd1dc60906909b1012600e00026dff824c116b1dcf82c703944dcf82c701c6107eb00084ff0050bc3f81cb09868c007fcd1414f4ff0e02ee24676b1daf82c00b0eb010c06d5b0eb080006d4def8040d384202d0dc60284609e0c3f81c909868c007fcd1186ac007e7d12046dc6008b102201fe01c6192f84000d8619868c007fcd1dc6000210e461c61c3f81cb09868c007fcd15746cc4616b1f86a401a07d5c3f81cc09868c007fcd1186ac007f3d1dc6001201c6192f83b10d9619968c907fcd102219961dd619968c907fcd1dd619968c907fcd1dd619968c907fcd1116901f00f02c1f3031141ea0211d9619968c907fcd1dd619968c907fcd1dd619968c907fcd14a46c3f81c909968c907fcd1da619968c907fcd1da619968c907fcd1da619968c907fcd1dc60bde8f08f9afdffff0020004000a0014001600200f0b5734f7f4497f842c0012400252602704bbcf1000f0cd19d611c614ff0ff0cc3f81cc0d3f808c05feacc7cfad1dc6043e01c61c3f81c50d3f808c05feacc7cfad1dd61d3f808c05feacc7cfad1dd61d3f808c05feacc7cfad197f842c0c3f81cc000bfd3f808c05feacc7cfad1dd61d3f808c05feacc7cfad1dd61d3f808c05feacc7cfad1de61d3f808c05feacc7cfad1de61d3f808c05feacc7cfad1de61d3f808c05feacc7cfad1de61d3f808c05feacc7cfad1dc609d611c614ff0060cc3f81cc0d3f808c05feacc7cfad1dc601c614ff0020cc3f81cc000bfd3f808e05feace7efad1c0f3074ec3f81ce000bfd3f808e05feace7efad1c0f3072ec3f81ce000bfd3f808e05feace7efad1c0b2d8619868c007fcd111f8010bd8619868c007fcd1521ef7d1dc6000210a461c610520d8619868c007fcd1dff89ce01ab1def82c00401a06d5de619868c007fcd1186ac007f3d1dc601c6197f83b00d8619868c007fcd1c3f818c0dd619868c007fcd1dd619868c007fcd1dd619868c007fcd1386900f00f01c0f3031040ea0110d8619868c007fcd1dd619868c007fcd1dd619868c007fcd1de619868c007fcd1de619868c007fcd1de619868c007fcd1de619868c007fcd1dc606046f0bd000090fbffff0020004000a001402de9f04f6f4a7a4492f8421001246e4b00254ff4807941b99d611c61ff21d9619968c907fcd1dc602ee01c61dd619968c907fcd1dd619968c907fcd1dd619968c907fcd192f84210d9619968c907fcd1dd619968c907fcd1dd619968c907fcd14e46c3f81c909968c907fcd1de619968c907fcd1de619968c907fcd1de619968c907fcd1dc609d611c6192f84110d9619968c907fcd1dc60916908b1012600e00026dff828c116b1dcf82c703844dcf82c701c6107eb01084ff0050bc3f81cb09968c907fcd1424f4ff0e02ee24676b1daf82c10b1eb000c06d5b1eb080106d4def8041d394202d0dc60284609e0c3f81c909968c907fcd1196ac907e7d12046dc6008b102201fe01c6192f84000d8619868c007fcd1dc6000210e461c61c3f81cb09868c007fcd15746cc4616b1f86a401a07d5c3f81cc09868c007fcd1186ac007f3d1dc6001201c6192f83b10d9619968c907fcd102219961dd619968c907fcd1dd619968c907fcd1dd619968c907fcd1116901f00f02c1f3031141ea0211d9619968c907fcd1dd619968c907fcd1dd619968c907fcd14a46c3f81c909968c907fcd1da619968c907fcd1da619968c907fcd1da619968c907fcd1dc60bde8f08f0000b2f9ffff0020004000a0014001600200</code>
</cmdset>
<cmdset name="MACRONIX">
<length>4032</length>
<checksum>215f4423</checksum>
<code>021eb408c22014000010000000010000a5000000cc02000080bb00001000000089000000e10100006d02000005050000f9020000e1060000b9ab14ebffffffffb030005000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002de9f043dff84091dff840c1fc44504b0121da6a4f4c4a440d4621614ff00507e7614ff48076a068c007fcd111b1d86a801a06d5e661a068c007fcd1206ac007f4d1e560402025610321e161a168c907fcd1c0f30741e161a168c907fcd1c0f30721e161a168c907fcd1c0b2e061a068c007fcd1dff8d480f844a8f1b008e661a168c907fcd1216a08eb0002401c82f844104428f3d3e5602b202561e061a068c007fcd1e661a068c007fcd1206ae56010f00c0f13d025619cf84100e061a068c007fcd1e56000210a462561e761a068c007fcd13ab1d86a401a04d4e56025610620e06107e0e661a068c007fcd1206ac007efd1f2e7a068c007fcd1e5602561e561a068c007fcd14020e061a068c007fcd1a068c007fcd1e560da6a012002eb09012561e761a268d207fcd110b1da6a521a06d5e661a268d207fcd1226ad207f4d1e560bde8f083006cdc02acffffff00a001400020004010b5204c7c4420480122026194f83b10c1618168c907fcd1022181610023c3618168c907fcd1c3618168c907fcd1c3618168c907fcd1216901f00f04c1f3031141ea0411c1618168c907fcd1c3618168c907fcd1c3618168c907fcd14ff48073c3618168c907fcd1c3618168c907fcd1c3618168c907fcd1c3618168c907fcd1c26010bd5cfeffff0020004010b5204c7c4494f8421001221e48002341b983610261ff21c1618168c907fcd1c26010bd0261c3618168c907fcd1c3618168c907fcd1c3618168c907fcd194f84210c1618168c907fcd1c3618168c907fcd1c3618168c907fcd14ff48074c4618168c907fcd1c4618168c907fcd1c4618168c907fcd1c4618168c907fcd1c260836110bdd0fdffff002000402de9f04f7d4a7a4492f8426001247c4b00254ff4807946b99d611c61ff26de619e68f607fcd1dc602ee01c61dd619e68f607fcd1dd619e68f607fcd1dd619e68f607fcd192f84260de619e68f607fcd1dd619e68f607fcd1dd619e68f607fcd14f46c3f81c909e68f607fcd1df619e68f607fcd1df619e68f607fcd1df619e68f607fcd1dc609d615678f60700d10021a0f500001c610626de619e68f607fcd1dc601c612026de619e68f607fcd1c0f30746de619e68f607fcd1c0f30726de619e68f607fcd1c0b2d8619868c007fcd1dc60906909b1012600e00026dff824c116b1dcf82c703944dcf82c701c6107eb00084ff0050bc3f81cb09868c007fcd1414f4ff0e02ee24676b1daf82c00b0eb010c06d5b0eb080006d4def8040d384202d0dc60284609e0c3f81c909868c007fcd1186ac007e7d12046dc6008b102201fe01c6192f84000d8619868c007fcd1dc6000210e461c61c3f81cb09868c007fcd15746cc4616b1f86a401a07d5c3f81cc09868c007fcd1186ac007f3d1dc6001201c6192f83b10d9619968c907fcd102219961dd619968c907fcd1dd619968c907fcd1dd619968c907fcd1116901f00f02c1f3031141ea0211d9619968c907fcd1dd619968c907fcd1dd619968c907fcd14a46c3f81c909968c907fcd1da619968c907fcd1da619968c907fcd1da619968c907fcd1dc60bde8f08f42fdffff0020004000a0014001600200f0b5734f7f4497f842c0012400252602704bbcf1000f0cd19d611c614ff0ff0cc3f81cc0d3f808c05feacc7cfad1dc6043e01c61c3f81c50d3f808c05feacc7cfad1dd61d3f808c05feacc7cfad1dd61d3f808c05feacc7cfad197f842c0c3f81cc000bfd3f808c05feacc7cfad1dd61d3f808c05feacc7cfad1dd61d3f808c05feacc7cfad1de61d3f808c05feacc7cfad1de61d3f808c05feacc7cfad1de61d3f808c05feacc7cfad1de61d3f808c05feacc7cfad1dc609d611c614ff0060cc3f81cc0d3f808c05feacc7cfad1dc601c614ff0020cc3f81cc000bfd3f808e05feace7efad1c0f3074ec3f81ce000bfd3f808e05feace7efad1c0f3072ec3f81ce000bfd3f808e05feace7efad1c0b2d8619868c007fcd111f8010bd8619868c007fcd1521ef7d1dc6000210a461c610520d8619868c007fcd1dff89ce01ab1def82c00401a06d5de619868c007fcd1186ac007f3d1dc601c6197f83b00d8619868c007fcd1c3f818c0dd619868c007fcd1dd619868c007fcd1dd619868c007fcd1386900f00f01c0f3031040ea0110d8619868c007fcd1dd619868c007fcd1dd619868c007fcd1de619868c007fcd1de619868c007fcd1de619868c007fcd1de619868c007fcd1dc606046f0bd000038fbffff0020004000a001402de9f04f6f4a7a4492f8421001246e4b00254ff4807941b99d611c61ff21d9619968c907fcd1dc602ee01c61dd619968c907fcd1dd619968c907fcd1dd619968c907fcd192f84210d9619968c907fcd1dd619968c907fcd1dd619968c907fcd14e46c3f81c909968c907fcd1de619968c907fcd1de619968c907fcd1de619968c907fcd1dc609d611c6192f84110d9619968c907fcd1dc60916908b1012600e00026dff828c116b1dcf82c703844dcf82c701c6107eb01084ff0050bc3f81cb09968c907fcd1424f4ff0e02ee24676b1daf82c10b1eb000c06d5b1eb080106d4def8041d394202d0dc60284609e0c3f81c909968c907fcd1196ac907e7d12046dc6008b102201fe01c6192f84000d8619868c007fcd1dc6000210e461c61c3f81cb09868c007fcd15746cc4616b1f86a401a07d5c3f81cc09868c007fcd1186ac007f3d1dc6001201c6192f83b10d9619968c907fcd102219961dd619968c907fcd1dd619968c907fcd1dd619968c907fcd1116901f00f02c1f3031141ea0211d9619968c907fcd1dd619968c907fcd1dd619968c907fcd14a46c3f81c909968c907fcd1da619968c907fcd1da619968c907fcd1da619968c907fcd1dc60bde8f08f00005af9ffff0020004000a0014001600200</code>
</cmdset>
<cmdset name="MACRONIX2">
<length>4032</length>
<checksum>d51ae60f</checksum>
<code>021eb408c22014000010000000010000a5000000cc02000080bb00001000000089000000e10100006d02000005050000f9020000e1060000b9ab14ebffffffff757a005000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002de9f043dff84091dff840c1fc44504b0121da6a4f4c4a440d4621614ff00507e7614ff48076a068c007fcd111b1d86a801a06d5e661a068c007fcd1206ac007f4d1e560402025610321e161a168c907fcd1c0f30741e161a168c907fcd1c0f30721e161a168c907fcd1c0b2e061a068c007fcd1dff8d480f844a8f1b008e661a168c907fcd1216a08eb0002401c82f844104428f3d3e5602b202561e061a068c007fcd1e661a068c007fcd1206ae56010f00c0f13d025619cf84100e061a068c007fcd1e56000210a462561e761a068c007fcd13ab1d86a401a04d4e56025610620e06107e0e661a068c007fcd1206ac007efd1f2e7a068c007fcd1e5602561e561a068c007fcd14020e061a068c007fcd1a068c007fcd1e560da6a012002eb09012561e761a268d207fcd110b1da6a521a06d5e661a268d207fcd1226ad207f4d1e560bde8f083006cdc02acffffff00a001400020004010b5204c7c4420480122026194f83b10c1618168c907fcd1022181610023c3618168c907fcd1c3618168c907fcd1c3618168c907fcd1216901f00f04c1f3031141ea0411c1618168c907fcd1c3618168c907fcd1c3618168c907fcd14ff48073c3618168c907fcd1c3618168c907fcd1c3618168c907fcd1c3618168c907fcd1c26010bd5cfeffff0020004010b5204c7c4494f8421001221e48002341b983610261ff21c1618168c907fcd1c26010bd0261c3618168c907fcd1c3618168c907fcd1c3618168c907fcd194f84210c1618168c907fcd1c3618168c907fcd1c3618168c907fcd14ff48074c4618168c907fcd1c4618168c907fcd1c4618168c907fcd1c4618168c907fcd1c260836110bdd0fdffff002000402de9f04f7d4a7a4492f8426001247c4b00254ff4807946b99d611c61ff26de619e68f607fcd1dc602ee01c61dd619e68f607fcd1dd619e68f607fcd1dd619e68f607fcd192f84260de619e68f607fcd1dd619e68f607fcd1dd619e68f607fcd14f46c3f81c909e68f607fcd1df619e68f607fcd1df619e68f607fcd1df619e68f607fcd1dc609d615678f60700d10021a0f500001c610626de619e68f607fcd1dc601c612026de619e68f607fcd1c0f30746de619e68f607fcd1c0f30726de619e68f607fcd1c0b2d8619868c007fcd1dc60906909b1012600e00026dff824c116b1dcf82c703944dcf82c701c6107eb00084ff0050bc3f81cb09868c007fcd1414f4ff0e02ee24676b1daf82c00b0eb010c06d5b0eb080006d4def8040d384202d0dc60284609e0c3f81c909868c007fcd1186ac007e7d12046dc6008b102201fe01c6192f84000d8619868c007fcd1dc6000210e461c61c3f81cb09868c007fcd15746cc4616b1f86a401a07d5c3f81cc09868c007fcd1186ac007f3d1dc6001201c6192f83b10d9619968c907fcd102219961dd619968c907fcd1dd619968c907fcd1dd619968c907fcd1116901f00f02c1f3031141ea0211d9619968c907fcd1dd619968c907fcd1dd619968c907fcd14a46c3f81c909968c907fcd1da619968c907fcd1da619968c907fcd1da619968c907fcd1dc60bde8f08f42fdffff0020004000a0014001600200f0b5734f7f4497f842c0012400252602704bbcf1000f0cd19d611c614ff0ff0cc3f81cc0d3f808c05feacc7cfad1dc6043e01c61c3f81c50d3f808c05feacc7cfad1dd61d3f808c05feacc7cfad1dd61d3f808c05feacc7cfad197f842c0c3f81cc000bfd3f808c05feacc7cfad1dd61d3f808c05feacc7cfad1dd61d3f808c05feacc7cfad1de61d3f808c05feacc7cfad1de61d3f808c05feacc7cfad1de61d3f808c05feacc7cfad1de61d3f808c05feacc7cfad1dc609d611c614ff0060cc3f81cc0d3f808c05feacc7cfad1dc601c614ff0020cc3f81cc000bfd3f808e05feace7efad1c0f3074ec3f81ce000bfd3f808e05feace7efad1c0f3072ec3f81ce000bfd3f808e05feace7efad1c0b2d8619868c007fcd111f8010bd8619868c007fcd1521ef7d1dc6000210a461c610520d8619868c007fcd1dff89ce01ab1def82c00401a06d5de619868c007fcd1186ac007f3d1dc601c6197f83b00d8619868c007fcd1c3f818c0dd619868c007fcd1dd619868c007fcd1dd619868c007fcd1386900f00f01c0f3031040ea0110d8619868c007fcd1dd619868c007fcd1dd619868c007fcd1de619868c007fcd1de619868c007fcd1de619868c007fcd1de619868c007fcd1dc606046f0bd000038fbffff0020004000a001402de9f04f6f4a7a4492f8421001246e4b00254ff4807941b99d611c61ff21d9619968c907fcd1dc602ee01c61dd619968c907fcd1dd619968c907fcd1dd619968c907fcd192f84210d9619968c907fcd1dd619968c907fcd1dd619968c907fcd14e46c3f81c909968c907fcd1de619968c907fcd1de619968c907fcd1de619968c907fcd1dc609d611c6192f84110d9619968c907fcd1dc60916908b1012600e00026dff828c116b1dcf82c703844dcf82c701c6107eb01084ff0050bc3f81cb09968c907fcd1424f4ff0e02ee24676b1daf82c10b1eb000c06d5b1eb080106d4def8041d394202d0dc60284609e0c3f81c909968c907fcd1196ac907e7d12046dc6008b102201fe01c6192f84000d8619868c007fcd1dc6000210e461c61c3f81cb09868c007fcd15746cc4616b1f86a401a07d5c3f81cc09868c007fcd1186ac007f3d1dc6001201c6192f83b10d9619968c907fcd102219961dd619968c907fcd1dd619968c907fcd1dd619968c907fcd1116901f00f02c1f3031141ea0211d9619968c907fcd1dd619968c907fcd1dd619968c907fcd14a46c3f81c909968c907fcd1da619968c907fcd1da619968c907fcd1da619968c907fcd1dc60bde8f08f00005af9ffff0020004000a0014001600200</code>
</cmdset>
<cmdset name="MICRON">
<length>4032</length>
<checksum>3d2ff0c5</checksum>
<code>021a480520ba1600001000000004000000000000cc020000e02e0000100000008900000013010000bd040000fb0100000b03000000000000000000ebffffffff0000ff50000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000070b5ff480122ff4ef16a134601eb0005fd490a614ff00500c8614ff480748868c007fcd112b1f06a401b06d5cc618868c007fcd1086ac007f4d1cb6040200b610322ca618a68d207fcd1c0f30742ca618a68d207fcd1c0f30722ca618a68d207fcd1c0b2c8618868c007fcd1e74d7d44cc618a68d207fcd10a6a2e18401c86f844204428f4d3cb6070bdf0b5de4901240c610620c8618868c007fcd1cc600c618120c8618868c007fcd16720c8618868c007fcd1cc60d54ed24f7e44d048083efb6a012203440c614ff00500c8614ff0000c4ff480758868c007fcd112b1f86ac01a06d5cd618868c007fcd1086ac007f4d1cc600c6196f83b00c8618868c007fcd102208861c1f81cc08868c007fcd1c1f81cc08868c007fcd1c1f81cc08868c007fcd1306900f00f02c0f3031040ea0210c8618868c007fcd1c1f81cc08868c007fcd1c1f81cc08868c007fcd1cd618868c007fcd1cd618868c007fcd1cd618868c007fcd1cd618868c007fcd1cc60f0bdf0b5a54c7c44c43c94f842300125a14e4ff0000c2f024bb9c6f818c03561ff23f361b368db07fcd1f56032e03561c6f81cc0b368db07fcd1c6f81cc0b368db07fcd1c6f81cc0b368db07fcd194f84230f361b368db07fcd1c6f81cc0b368db07fcd1c6f81cc0b368db07fcd1f761b368db07fcd1f761b368db07fcd1f761b368db07fcd1f761b368db07fcd1f560c6f818c035610623f361b368db07fcd1f56035610224f461b368db07fcd1c0f30743f361b368db07fcd1c0f30723f361b368db07fcd1c0b2f061b068c007fcd111f8010bf061b068c007fcd1521ef7d1f560014635610522f261b268d207fcd1684b11b1da6a121a06d5f761b268d207fcd1326ad207f4d1f560fff706ff2046f0bd2de9f04f624c7c4494f842505e4a01234ff0000c4ff480784db9c2f818c01361ff25d5619568ed07fcd1d36036e01361c2f81cc09568ed07fcd1c2f81cc09568ed07fcd1c2f81cc09568ed07fcd194f84250d5619568ed07fcd1c2f81cc09568ed07fcd1c2f81cc09568ed07fcd1c2f81c809568ed07fcd1c2f81c809568ed07fcd1c2f81c809568ed07fcd1c2f81c809568ed07fcd1d360c2f818c06578ed0700d10021a0f5000013610625d5619568ed07fcd1d36013612025d5619568ed07fcd1c0f30745d5619568ed07fcd1c0f30725d5619568ed07fcd1c0b2d0619068c007fcd1d360a06909b1012500e00025244f0db1fe6a3144fe6a136106444ff0050ac2f81ca09068c007fcd1dff884e04ff0e02bb94665b1d9f82c00471a06d5801b06d4dbf8040d10ea0e0f01d0d36009e0c2f81c809068c007fcd1106ac007e9d1d3609c46bcf1000f01d002242ae0136194f84000d0619068c007fcd1d36001461361c2f81ca09468e407fcd14c46454611b1e66a361a13d5d5610be0006cdc0200a001400020004006ffffff30fdffff016002009668f607efd1166af607e7d1d3600124fff72ffe2046bde8f08f000010b5204c7c4494f8421001221e48002341b983610261ff21c1618168c907fcd1c26010bd0261c3618168c907fcd1c3618168c907fcd1c3618168c907fcd194f84210c1618168c907fcd1c3618168c907fcd1c3618168c907fcd14ff48074c4618168c907fcd1c4618168c907fcd1c4618168c907fcd1c4618168c907fcd1c260836110bd80fbffff00200040</code>
</cmdset>
<cmdset name="SPANSION">
<length>4032</length>
<checksum>2b5e2d56</checksum>
<code>021bbc08ef401300001000008000000002000000cc000000e02e00001000000089000000e9010000750200000d05000001030000e9060000b9ab06ebffffffff757a005000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002de9f047dff84891dff848c1fc44524b0121da6a514c4a440d4621614ff00507e7614ff0000a4ff48076a068c007fcd111b1d86a801a06d5e661a068c007fcd1206ac007f4d1e560402025610321e161a168c907fcd1c0f30741e161a168c907fcd1c0f30721e161a168c907fcd1c0b2e061a068c007fcd1dff8d880f844a8f1b408e661a168c907fcd1216a08eb0002401c82f844104428f3d3e56035202561e061a068c007fcd1e661a068c007fcd1206ae56010f0800f13d025619cf84100e061a068c007fcd1e56000210a462561e761a068c007fcd13ab1d86a401a04d4e56025610620e06107e0e661a068c007fcd1206ac007efd1f2e7a068c007fcd1e5602561e561a068c007fcd1c4f81ca0a068c007fcd10220e061a068c007fcd1e560da6a012002eb09012561e761a268d207fcd110b1da6a521a06d5e661a268d207fcd1226ad207f4d1e560bde8f087006cdc02acffffff00a001400020004010b5204c7c4420480122026194f83b10c1618168c907fcd1022181610023c3618168c907fcd1c3618168c907fcd1c3618168c907fcd1216901f00f04c1f3031141ea0411c1618168c907fcd1c3618168c907fcd1c3618168c907fcd14ff48073c3618168c907fcd1c3618168c907fcd1c3618168c907fcd1c3618168c907fcd1c26010bd54feffff0020004010b5204c7c4494f8421001221e48002341b983610261ff21c1618168c907fcd1c26010bd0261c3618168c907fcd1c3618168c907fcd1c3618168c907fcd194f84210c1618168c907fcd1c3618168c907fcd1c3618168c907fcd14ff48074c4618168c907fcd1c4618168c907fcd1c4618168c907fcd1c4618168c907fcd1c260836110bdc8fdffff002000402de9f04f7d4a7a4492f8426001247c4b00254ff4807946b99d611c61ff26de619e68f607fcd1dc602ee01c61dd619e68f607fcd1dd619e68f607fcd1dd619e68f607fcd192f84260de619e68f607fcd1dd619e68f607fcd1dd619e68f607fcd14f46c3f81c909e68f607fcd1df619e68f607fcd1df619e68f607fcd1df619e68f607fcd1dc609d615678f60700d10021a0f500001c610626de619e68f607fcd1dc601c612026de619e68f607fcd1c0f30746de619e68f607fcd1c0f30726de619e68f607fcd1c0b2d8619868c007fcd1dc60906909b1012600e00026dff824c116b1dcf82c703944dcf82c701c6107eb00084ff0050bc3f81cb09868c007fcd1414f4ff0e02ee24676b1daf82c00b0eb010c06d5b0eb080006d4def8040d384202d0dc60284609e0c3f81c909868c007fcd1186ac007e7d12046dc6008b102201fe01c6192f84000d8619868c007fcd1dc6000210e461c61c3f81cb09868c007fcd15746cc4616b1f86a401a07d5c3f81cc09868c007fcd1186ac007f3d1dc6001201c6192f83b10d9619968c907fcd102219961dd619968c907fcd1dd619968c907fcd1dd619968c907fcd1116901f00f02c1f3031141ea0211d9619968c907fcd1dd619968c907fcd1dd619968c907fcd14a46c3f81c909968c907fcd1da619968c907fcd1da619968c907fcd1da619968c907fcd1dc60bde8f08f3afdffff0020004000a0014001600200f0b5734f7f4497f842c0012400252602704bbcf1000f0cd19d611c614ff0ff0cc3f81cc0d3f808c05feacc7cfad1dc6043e01c61c3f81c50d3f808c05feacc7cfad1dd61d3f808c05feacc7cfad1dd61d3f808c05feacc7cfad197f842c0c3f81cc000bfd3f808c05feacc7cfad1dd61d3f808c05feacc7cfad1dd61d3f808c05feacc7cfad1de61d3f808c05feacc7cfad1de61d3f808c05feacc7cfad1de61d3f808c05feacc7cfad1de61d3f808c05feacc7cfad1dc609d611c614ff0060cc3f81cc0d3f808c05feacc7cfad1dc601c614ff0020cc3f81cc000bfd3f808e05feace7efad1c0f3074ec3f81ce000bfd3f808e05feace7efad1c0f3072ec3f81ce000bfd3f808e05feace7efad1c0b2d8619868c007fcd111f8010bd8619868c007fcd1521ef7d1dc6000210a461c610520d8619868c007fcd1dff89ce01ab1def82c00401a06d5de619868c007fcd1186ac007f3d1dc601c6197f83b00d8619868c007fcd1c3f818c0dd619868c007fcd1dd619868c007fcd1dd619868c007fcd1386900f00f01c0f3031040ea0110d8619868c007fcd1dd619868c007fcd1dd619868c007fcd1de619868c007fcd1de619868c007fcd1de619868c007fcd1de619868c007fcd1dc606046f0bd000030fbffff0020004000a001402de9f04f6f4a7a4492f8421001246e4b00254ff4807941b99d611c61ff21d9619968c907fcd1dc602ee01c61dd619968c907fcd1dd619968c907fcd1dd619968c907fcd192f84210d9619968c907fcd1dd619968c907fcd1dd619968c907fcd14e46c3f81c909968c907fcd1de619968c907fcd1de619968c907fcd1de619968c907fcd1dc609d611c6192f84110d9619968c907fcd1dc60916908b1012600e00026dff828c116b1dcf82c703844dcf82c701c6107eb01084ff0050bc3f81cb09968c907fcd1424f4ff0e02ee24676b1daf82c10b1eb000c06d5b1eb080106d4def8041d394202d0dc60284609e0c3f81c909968c907fcd1196ac907e7d12046dc6008b102201fe01c6192f84000d8619868c007fcd1dc6000210e461c61c3f81cb09868c007fcd15746cc4616b1f86a401a07d5c3f81cc09868c007fcd1186ac007f3d1dc6001201c6192f83b10d9619968c907fcd102219961dd619968c907fcd1dd619968c907fcd1dd619968c907fcd1116901f00f02c1f3031141ea0211d9619968c907fcd1dd619968c907fcd1dd619968c907fcd14a46c3f81c909968c907fcd1da619968c907fcd1da619968c907fcd1da619968c907fcd1dc60bde8f08f000052f9ffff0020004000a0014001600200</code>
</cmdset>
<cmdset name="SST">
<length>4032</length>
<checksum>7df33088</checksum>
<code>021b6804bf26020000100000000400000000000bc5000000e02e0000100000000f0100008900000000000000ad030000cf010000e502000000000000ffffffff00000050000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000070b5f2480021816101240461ff21c1618168c907fcd1c46004613821c1618168c907fcd1c4600221816104616621c1618168c907fcd1c46000bf00bf00bf00bf04619921c1618168c907fcd1c460e14ddf49eb6a01220b4404614ff00501c1618168c907fcd14ff4807622b1e96ac91a01d4c46070bdc6618168c907fcd1016a0906f2d4f5e7f0b5d04901240c616620c8618868c007fcd1cc6000bf00bf00bf00bf0c619920c8618868c007fcd1cc60c84dc748eb6a012203440c614ff0050cc1f81cc04ff000074ff480768868c007fcd112b1e86ac01a06d5ce618868c007fcd1086a0006f4d4cc600c610620c8618868c007fcd1cc600a200c614222ca618a68d207fcd1cf618a68d207fcd1401ef9d1cc60eb6a4bf6803201201a440c61c1f81cc08b68db07fcd120b1eb6a9b1a01d4cc60f0bdce618b68db07fcd10b6a1b06f2d4f5e72de9f04fa04b0124a0f500001c610527df619a68d207fcd14ff48078c3f81c809a68d207fcd1dc601a6a12f00c0f02d00320bde8f08f1c610622da619a68d207fcd1dc601c612022da619a68d207fcd1c0f30742da619a68d207fcd1c0f30722da619a68d207fcd1c0b2d8619868c007fcd1dc6087487844c06d09b1012200e00022824e0ab1f56a2944f56a1c610544b946df614ff0000b9868c007fcd17d4f4ff0e02a62b1f06ab0eb010c05d5401b06d4daf8040d384202d0dc60584609e0c3f81c809868c007fcd1186a0006e9d42046dc6008b10220abe71c61b020d8619868c007fcd1dc6000210a461c61c3f81c909868c007fcd112b1f06a401a07d5c3f81c809868c007fcd1186a0006f3d4dc6001208de72de9f04f5a4b01241c613021d9619968c907fcd1dc6059497944b839c96d08b1012200e00022dff8508112b1d8f82c502844d8f82c501c610d444ff0050ac3f81ca04ff0000b4ff480769968c907fcd14b4f4ff0e0296ab1d8f82c10b1eb000c05d5491b06d4d9f8041d394202d0dc60584608e0de619968c907fcd1196a0906e9d42046dc60e8b91c61b020d8619868c007fcd1dc6000210a461c61c3f81ca09868c007fcd11ab1d8f82c00401a06d5de619868c007fcd1186a0006f3d4dc6001202be7022029e7f0b5294b01241c610525dd619e68f607fcd14ff48077df619e68f607fcd1dc601e6a16f00c0f01d00320f0bd1c610626de619e68f607fcd1dc601c610226de619e68f607fcd1c0f30746de619e68f607fcd1c0f30726de619e68f607fcd1c0b2d8619868c007fcd111f8010bd8619868c007fcd1521ef7d1dc6000210a461c61dd619868c007fcd1094d12b1e86a401a06d5df619868c007fcd1186a0006f4d4dc600220f0bd000000200040006cdc0200a00140b8fdffff01600200</code>
</cmdset>
<cmdset name="SST2">
<length>4032</length>
<checksum>7ee13dd7</checksum>
<code>021b1409bf26430000100000000800005a000000cc000000e02e0000100000008900000041020000cd020000650500005903000041070000000000ebffffffffb03000500000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000feb5654a7a4492f84200002501246349260240b98d610c61ff20c8618868c007fcd1cc602ce00c61cd618868c007fcd1cd618868c007fcd1cd618868c007fcd192f84200c8618868c007fcd1cd618868c007fcd1cd618868c007fcd1ce618868c007fcd1ce618868c007fcd1ce618868c007fcd1ce618868c007fcd1cc608d61484f4748fb6a012203440c614ff00500c8618868c007fcd112b1f86ac01a06d5ce618868c007fcd1086ac007f4d1cc600c610620c8618a68d207fcd1cc600c61cc618a68d207fcd1cd618a68d207fcd10222ca618a68d207fcd1cc600c61c8618868c007fcd1cc600c619820c8618868c007fcd1cc600c610327cf618868c007fcd1cd618868c007fcd1cd618868c007fcd11820c8618868c007fcd16b46ce618a68d207fcd10a6a1a54401c0328f6d3cc600c61cf618868c007fcd19df802008038c8618868c007fcd19df80100c8618868c007fcd19df80000c8618868c007fcd1ce618a68d207fcd10f6a421c1f5410460c2af5d3cc600b490098884209d10a490198884205d109490298884201d108480571febd0000b4ffffff00200040006cdc0200a00140312e30302028353938343329204e002010b5204c7c4420480122026194f83b10c1618168c907fcd1022181610023c3618168c907fcd1c3618168c907fcd1c3618168c907fcd1216901f00f04c1f3031141ea0411c1618168c907fcd1c3618168c907fcd1c3618168c907fcd14ff48073c3618168c907fcd1c3618168c907fcd1c3618168c907fcd1c3618168c907fcd1c26010bdfcfdffff0020004010b5204c7c4494f8421001221e48002341b983610261ff21c1618168c907fcd1c26010bd0261c3618168c907fcd1c3618168c907fcd1c3618168c907fcd194f84210c1618168c907fcd1c3618168c907fcd1c3618168c907fcd14ff48074c4618168c907fcd1c4618168c907fcd1c4618168c907fcd1c4618168c907fcd1c260836110bd70fdffff002000402de9f04f7d4a7a4492f8426001247c4b00254ff4807946b99d611c61ff26de619e68f607fcd1dc602ee01c61dd619e68f607fcd1dd619e68f607fcd1dd619e68f607fcd192f84260de619e68f607fcd1dd619e68f607fcd1dd619e68f607fcd14f46c3f81c909e68f607fcd1df619e68f607fcd1df619e68f607fcd1df619e68f607fcd1dc609d615678f60700d10021a0f500001c610626de619e68f607fcd1dc601c612026de619e68f607fcd1c0f30746de619e68f607fcd1c0f30726de619e68f607fcd1c0b2d8619868c007fcd1dc60906909b1012600e00026dff824c116b1dcf82c703944dcf82c701c6107eb00084ff0050bc3f81cb09868c007fcd1414f4ff0e02ee24676b1daf82c00b0eb010c06d5b0eb080006d4def8040d384202d0dc60284609e0c3f81c909868c007fcd1186ac007e7d12046dc6008b102201fe01c6192f84000d8619868c007fcd1dc6000210e461c61c3f81cb09868c007fcd15746cc4616b1f86a401a07d5c3f81cc09868c007fcd1186ac007f3d1dc6001201c6192f83b10d9619968c907fcd102219961dd619968c907fcd1dd619968c907fcd1dd619968c907fcd1116901f00f02c1f3031141ea0211d9619968c907fcd1dd619968c907fcd1dd619968c907fcd14a46c3f81c909968c907fcd1da619968c907fcd1da619968c907fcd1da619968c907fcd1dc60bde8f08fe2fcffff0020004000a0014001600200f0b5734f7f4497f842c0012400252602704bbcf1000f0cd19d611c614ff0ff0cc3f81cc0d3f808c05feacc7cfad1dc6043e01c61c3f81c50d3f808c05feacc7cfad1dd61d3f808c05feacc7cfad1dd61d3f808c05feacc7cfad197f842c0c3f81cc000bfd3f808c05feacc7cfad1dd61d3f808c05feacc7cfad1dd61d3f808c05feacc7cfad1de61d3f808c05feacc7cfad1de61d3f808c05feacc7cfad1de61d3f808c05feacc7cfad1de61d3f808c05feacc7cfad1dc609d611c614ff0060cc3f81cc0d3f808c05feacc7cfad1dc601c614ff0020cc3f81cc000bfd3f808e05feace7efad1c0f3074ec3f81ce000bfd3f808e05feace7efad1c0f3072ec3f81ce000bfd3f808e05feace7efad1c0b2d8619868c007fcd111f8010bd8619868c007fcd1521ef7d1dc6000210a461c610520d8619868c007fcd1dff89ce01ab1def82c00401a06d5de619868c007fcd1186ac007f3d1dc601c6197f83b00d8619868c007fcd1c3f818c0dd619868c007fcd1dd619868c007fcd1dd619868c007fcd1386900f00f01c0f3031040ea0110d8619868c007fcd1dd619868c007fcd1dd619868c007fcd1de619868c007fcd1de619868c007fcd1de619868c007fcd1de619868c007fcd1dc606046f0bd0000d8faffff0020004000a001402de9f04f6f4a7a4492f8421001246e4b00254ff4807941b99d611c61ff21d9619968c907fcd1dc602ee01c61dd619968c907fcd1dd619968c907fcd1dd619968c907fcd192f84210d9619968c907fcd1dd619968c907fcd1dd619968c907fcd14e46c3f81c909968c907fcd1de619968c907fcd1de619968c907fcd1de619968c907fcd1dc609d611c6192f84110d9619968c907fcd1dc60916908b1012600e00026dff828c116b1dcf82c703844dcf82c701c6107eb01084ff0050bc3f81cb09968c907fcd1424f4ff0e02ee24676b1daf82c10b1eb000c06d5b1eb080106d4def8041d394202d0dc60284609e0c3f81c909968c907fcd1196ac907e7d12046dc6008b102201fe01c6192f84000d8619868c007fcd1dc6000210e461c61c3f81cb09868c007fcd15746cc4616b1f86a401a07d5c3f81cc09868c007fcd1186ac007f3d1dc6001201c6192f83b10d9619968c907fcd102219961dd619968c907fcd1dd619968c907fcd1dd619968c907fcd1116901f00f02c1f3031141ea0211d9619968c907fcd1dd619968c907fcd1dd619968c907fcd14a46c3f81c909968c907fcd1da619968c907fcd1da619968c907fcd1da619968c907fcd1dc60bde8f08f0000faf8ffff0020004000a0014001600200</code>
</cmdset>
<cmdset name="WINBOND">
<length>4032</length>
<checksum>94ad0fde</checksum>
<code>021bbc08ef401300001000008000000002000000c4000000e02e00001000000089000000e9010000750200000d05000001030000e9060000000000e3ffffffff757a005000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002de9f047dff84891dff848c1fc44524b0121da6a514c4a440d4621614ff00507e7614ff0000a4ff48076a068c007fcd111b1d86a801a06d5e661a068c007fcd1206ac007f4d1e560402025610321e161a168c907fcd1c0f30741e161a168c907fcd1c0f30721e161a168c907fcd1c0b2e061a068c007fcd1dff8d880f844a8f1b408e661a168c907fcd1216a08eb0002401c82f844104428f3d3e56035202561e061a068c007fcd1e661a068c007fcd1206ae56010f0800f13d025619cf84100e061a068c007fcd1e56000210a462561e761a068c007fcd13ab1d86a401a04d4e56025610620e06107e0e661a068c007fcd1206ac007efd1f2e7a068c007fcd1e5602561e561a068c007fcd1c4f81ca0a068c007fcd10220e061a068c007fcd1e560da6a012002eb09012561e761a268d207fcd110b1da6a521a06d5e661a268d207fcd1226ad207f4d1e560bde8f087006cdc02acffffff00a001400020004010b5204c7c4420480122026194f83b10c1618168c907fcd1022181610023c3618168c907fcd1c3618168c907fcd1c3618168c907fcd1216901f00f04c1f3031141ea0411c1618168c907fcd1c3618168c907fcd1c3618168c907fcd14ff48073c3618168c907fcd1c3618168c907fcd1c3618168c907fcd1c3618168c907fcd1c26010bd54feffff0020004010b5204c7c4494f8421001221e48002341b983610261ff21c1618168c907fcd1c26010bd0261c3618168c907fcd1c3618168c907fcd1c3618168c907fcd194f84210c1618168c907fcd1c3618168c907fcd1c3618168c907fcd14ff48074c4618168c907fcd1c4618168c907fcd1c4618168c907fcd1c4618168c907fcd1c260836110bdc8fdffff002000402de9f04f7d4a7a4492f8426001247c4b00254ff4807946b99d611c61ff26de619e68f607fcd1dc602ee01c61dd619e68f607fcd1dd619e68f607fcd1dd619e68f607fcd192f84260de619e68f607fcd1dd619e68f607fcd1dd619e68f607fcd14f46c3f81c909e68f607fcd1df619e68f607fcd1df619e68f607fcd1df619e68f607fcd1dc609d615678f60700d10021a0f500001c610626de619e68f607fcd1dc601c612026de619e68f607fcd1c0f30746de619e68f607fcd1c0f30726de619e68f607fcd1c0b2d8619868c007fcd1dc60906909b1012600e00026dff824c116b1dcf82c703944dcf82c701c6107eb00084ff0050bc3f81cb09868c007fcd1414f4ff0e02ee24676b1daf82c00b0eb010c06d5b0eb080006d4def8040d384202d0dc60284609e0c3f81c909868c007fcd1186ac007e7d12046dc6008b102201fe01c6192f84000d8619868c007fcd1dc6000210e461c61c3f81cb09868c007fcd15746cc4616b1f86a401a07d5c3f81cc09868c007fcd1186ac007f3d1dc6001201c6192f83b10d9619968c907fcd102219961dd619968c907fcd1dd619968c907fcd1dd619968c907fcd1116901f00f02c1f3031141ea0211d9619968c907fcd1dd619968c907fcd1dd619968c907fcd14a46c3f81c909968c907fcd1da619968c907fcd1da619968c907fcd1da619968c907fcd1dc60bde8f08f3afdffff0020004000a0014001600200f0b5734f7f4497f842c0012400252602704bbcf1000f0cd19d611c614ff0ff0cc3f81cc0d3f808c05feacc7cfad1dc6043e01c61c3f81c50d3f808c05feacc7cfad1dd61d3f808c05feacc7cfad1dd61d3f808c05feacc7cfad197f842c0c3f81cc000bfd3f808c05feacc7cfad1dd61d3f808c05feacc7cfad1dd61d3f808c05feacc7cfad1de61d3f808c05feacc7cfad1de61d3f808c05feacc7cfad1de61d3f808c05feacc7cfad1de61d3f808c05feacc7cfad1dc609d611c614ff0060cc3f81cc0d3f808c05feacc7cfad1dc601c614ff0020cc3f81cc000bfd3f808e05feace7efad1c0f3074ec3f81ce000bfd3f808e05feace7efad1c0f3072ec3f81ce000bfd3f808e05feace7efad1c0b2d8619868c007fcd111f8010bd8619868c007fcd1521ef7d1dc6000210a461c610520d8619868c007fcd1dff89ce01ab1def82c00401a06d5de619868c007fcd1186ac007f3d1dc601c6197f83b00d8619868c007fcd1c3f818c0dd619868c007fcd1dd619868c007fcd1dd619868c007fcd1386900f00f01c0f3031040ea0110d8619868c007fcd1dd619868c007fcd1dd619868c007fcd1de619868c007fcd1de619868c007fcd1de619868c007fcd1de619868c007fcd1dc606046f0bd000030fbffff0020004000a001402de9f04f6f4a7a4492f8421001246e4b00254ff4807941b99d611c61ff21d9619968c907fcd1dc602ee01c61dd619968c907fcd1dd619968c907fcd1dd619968c907fcd192f84210d9619968c907fcd1dd619968c907fcd1dd619968c907fcd14e46c3f81c909968c907fcd1de619968c907fcd1de619968c907fcd1de619968c907fcd1dc609d611c6192f84110d9619968c907fcd1dc60916908b1012600e00026dff828c116b1dcf82c703844dcf82c701c6107eb01084ff0050bc3f81cb09968c907fcd1424f4ff0e02ee24676b1daf82c10b1eb000c06d5b1eb080106d4def8041d394202d0dc60284609e0c3f81c909968c907fcd1196ac907e7d12046dc6008b102201fe01c6192f84000d8619868c007fcd1dc6000210e461c61c3f81cb09868c007fcd15746cc4616b1f86a401a07d5c3f81cc09868c007fcd1186ac007f3d1dc6001201c6192f83b10d9619968c907fcd102219961dd619968c907fcd1dd619968c907fcd1dd619968c907fcd1116901f00f02c1f3031141ea0211d9619968c907fcd1dd619968c907fcd1dd619968c907fcd14a46c3f81c909968c907fcd1da619968c907fcd1da619968c907fcd1da619968c907fcd1dc60bde8f08f000052f9ffff0020004000a0014001600200</code>
</cmdset>
</flash>

View File

@ -1,13 +0,0 @@
#!/usr/bin/env sh
systemctl stop gpsd
systemctl stop gpsd.socket
killall gpsd
killall ser2net
fwupdate -p /dev/ttyS3 -F /lib/firmware/ubx-fw-flash.xml /lib/firmware/UBX_M8_301_ADR_421_NEO_M8L.bin
if [ $? -eq 0 ]; then
echo "Firmware update was successful, please do a full power cycle of the device"
else
echo "Firmware update failed"
fi

View File

@ -1,42 +0,0 @@
SUMMARY = "FW update tool for ublox NEO-M8L"
DESCRIPTION = "Fw update tool for ublox NEO-M8L"
SECTION = "utils"
LICENSE="Proprietary"
LIC_FILES_CHKSUM="file://${COREBASE}/meta/files/common-licenses/Proprietary;md5=0557f9d92cf58f2ccdd50f62f8ac0b28"
DEPENDS = "ncurses"
SRC_URI = "file://ubx-fw-update.tar.gz \
file://flash.xml \
file://UBX_M8_301_ADR_421_NEO_M8L.bin \
file://gnss-fw-update \
"
PACKAGECONFIG ?= ""
PACKAGECONFIG[ubx-tool-only] = ""
S = "${WORKDIR}/ubx-fw-update"
do_compile() {
oe_runmake
}
do_install() {
install -d ${D}${bindir}
install -m 0755 fwupdate ${D}${bindir}/
if ! ${@bb.utils.contains('PACKAGECONFIG','ubx-tool-only','true','false',d)}; then
install -m 0755 ../gnss-fw-update ${D}${bindir}/
install -d ${D}${nonarch_base_libdir}/firmware/
install -m 0644 ../UBX_M8_301_ADR_421_NEO_M8L.bin ${D}${nonarch_base_libdir}/firmware/
install -m 0644 ../flash.xml ${D}${nonarch_base_libdir}/firmware/ubx-fw-flash.xml
fi
}
FILES_${PN} = " \
${bindir} \
${nonarch_base_libdir} \
"

View File

@ -1,26 +0,0 @@
DESCRIPTION = "Configuration binary wlconf for ti wifi chips"
HOMEPAGE = "http://www.netmodule.com/"
LICENSE = "GPLv2"
LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/GPL-2.0;md5=801f80980d171dd6425610833a22dbe6"
SRC_URI = "git://gitlab.com/netmodule/tools/wlconf-bin.git;protocol=ssh;user=git;branch=master"
S = "${WORKDIR}/git"
SRCREV = "${AUTOREV}"
INSTALLPATH = "${nonarch_base_libdir}/firmware/ti-connectivity"
CONFIGBINARY = "wl18xx-conf.bin"
FILES_${PN} += "${nonarch_base_libdir}/firmware/"
do_install () {
install -d ${D}/${INSTALLPATH}
if ls ${S}/wlconf-8.7.3/bin/${MACHINE}/${CONFIGBINARY} 1> /dev/null 2>&1 ; then
install -m 0644 ${S}/wlconf-8.7.3/bin/${MACHINE}/${CONFIGBINARY} ${D}/${INSTALLPATH}
ln -sfr ${D}/${INSTALLPATH}/${CONFIGBINARY} ${D}${nonarch_base_libdir}/firmware/${CONFIGBINARY}
fi
}

View File

@ -8,10 +8,12 @@ RDEPENDS_${PN} += " \
python3-setuptools \
python3-configparser \
python3-systemd \
lmsensors-sensors \
lmsensors-config-libsensors \
"
DEPENDS = "python3-setuptools-git-version-native"
inherit gitpkgv systemd
inherit gitpkgv systemd allarch
# Package Version (built from tags)
@ -21,7 +23,7 @@ PV = "1.0-git${SRCPV}"
PR = "r1"
SRCREV ?= "${AUTOREV}"
SRCREV = "f885ccb90b31c90bfed0b6d62c26ad64d69805c1"
SRC_URI = "git://gitlab.com/netmodule/tools/wwan-config.git;protocol=ssh;user=git;branch=master \
file://wwan-config@.service \
file://default.conf \
@ -30,27 +32,31 @@ S = "${WORKDIR}/git"
inherit setuptools3
PACKAGE_ARCH = "${MACHINE_ARCH}"
do_configure_prepend() {
cp ${S}/platforms/${MACHINE}/* ${S}/wwan_config
}
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.wants/
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.wants/wwan-config@wwan$i.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

@ -3,6 +3,7 @@
#
# 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
@ -40,6 +41,7 @@ SIM=auto
# - 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

View File

@ -7,6 +7,11 @@ 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

@ -9,6 +9,8 @@ LICENSE = "GPLv2+"
LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/GPL-2.0;md5=801f80980d171dd6425610833a22dbe6"
PR = "r0"
inherit python3-dir
RDEPENDS_${PN} = "python3-core python3-json"
SRC_URI = " \

View File

@ -9,7 +9,7 @@ LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/MIT;md5=0835ade698e0bcf8506ecda
SECTION = "base"
S = "${WORKDIR}/git"
SRCREV = "${AUTOREV}"
SRCREV = "26cf27fd134036e4d756ac289764a5b5083966d2"
SRC_URI = "git://gitlab.com/netmodule/tools/udev-rules-nmhw;protocol=ssh;user=git;branch=master;"
@ -18,5 +18,8 @@ do_install () {
if ls ${S}/machines/${MACHINE}/*.rules 1> /dev/null 2>&1 ; then
install -m 0644 ${S}/machines/${MACHINE}/*.rules ${D}${sysconfdir}/udev/rules.d/
if [ -f ${S}/machines/${MACHINE}/*.sh ]; then
install -m 0755 ${S}/machines/${MACHINE}/*.sh ${D}${sysconfdir}/udev/rules.d/
fi
fi
}

View File

@ -1,13 +0,0 @@
DESCRIPTION = "Allow loading of devicetree overlays via configfs"
HOMEPAGE = "http://www.netmodule.com/"
LICENSE = "GPLv2"
LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/GPL-2.0;md5=801f80980d171dd6425610833a22dbe6"
inherit module
PV = "1.0.0"
SRCREV ?= "${AUTOREV}"
SRC_URI = "git://github.com/netmodule/dt-overlay.git;protocol=https"
S = "${WORKDIR}/git"

View File

@ -1,37 +0,0 @@
DESCRIPTION = "Allow loading of devicetree overlays via configfs"
HOMEPAGE = "http://www.netmodule.com/"
LICENSE = "GPLv2"
LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/GPL-2.0;md5=801f80980d171dd6425610833a22dbe6"
DEPENDS = "dtc-native"
PV = "1.0.0"
SRCREV ?= "de7143db7ec306775dad690fcaa8922202b928dc"
SRC_URI = "git://git.netmodule.intranet/nmrouter/dt-overlays.git;protocol=ssh;user=gitea"
S = "${WORKDIR}/git"
dtos = " \
am335x-nbhw16-shield-comio-gpio \
am335x-nbhw16-shield-dualcan-can \
am335x-nbhw16-shield-dualcan-dyngpio \
am335x-nbhw16-shield-dualcan-fixgpio \
"
FILES_${PN} += "${nonarch_base_libdir}/firmware"
do_compile() {
for dto in ${dtos}; do
dtc -@ -i dts -o dto -o $dto.dtbo $dto.dts
done
}
do_install() {
install -d ${D}${nonarch_base_libdir}/firmware/
for dto in ${dtos}; do
install -m 0644 $dto.dtbo ${D}${nonarch_base_libdir}/firmware/
done
}

View File

@ -1,23 +0,0 @@
SUMMARY = "Device Tree Compiler"
DESCRIPTION = "The Device Tree Compiler is a tool used to manipulate the Open-Firmware-like device tree used by PowerPC kernels."
SECTION = "bootloader"
LICENSE = "GPLv2 | BSD"
DEPENDS = "flex-native bison-native"
SRC_URI = "git://git.kernel.org/pub/scm/utils/dtc/dtc.git \
file://make_install.patch \
"
EXTRA_OEMAKE='PREFIX="${prefix}" LIBDIR="${libdir}" DESTDIR="${D}" NO_PYTHON=1'
CFLAGS="-Wno-error"
S = "${WORKDIR}/git"
do_install () {
oe_runmake install
}
PACKAGES =+ "${PN}-misc"
FILES_${PN}-misc = "${bindir}/convert-dtsv0 ${bindir}/ftdump ${bindir}/dtdiff"
RDEPENDS_${PN}-misc += "bash"

View File

@ -1,26 +0,0 @@
Upstream-Status: Inappropriate [configuration]
Index: git/Makefile
===================================================================
--- git.orig/Makefile 2011-11-02 14:52:17.243104779 -0700
+++ git/Makefile 2011-11-02 15:06:01.555104982 -0700
@@ -18,7 +18,7 @@
CPPFLAGS = -I libfdt -I .
WARNINGS = -Wall -Wpointer-arith -Wcast-qual -Wnested-externs \
-Wstrict-prototypes -Wmissing-prototypes -Wredundant-decls -Wshadow
-CFLAGS = -g -Os $(SHAREDLIB_CFLAGS) -Werror $(WARNINGS)
+CFLAGS = -g -Os $(SHAREDLIB_CFLAGS) $(WARNINGS)
BISON = bison
LEX = flex
@@ -161,8 +161,8 @@
$(INSTALL) -d $(DESTDIR)$(BINDIR)
$(INSTALL) $(BIN) $(SCRIPTS) $(DESTDIR)$(BINDIR)
$(INSTALL) -d $(DESTDIR)$(LIBDIR)
- $(INSTALL) $(LIBFDT_lib) $(DESTDIR)$(LIBDIR)
- ln -sf $(notdir $(LIBFDT_lib)) $(DESTDIR)$(LIBDIR)/$(LIBFDT_soname)
+ $(INSTALL) $(LIBFDT_lib) $(DESTDIR)$(LIBDIR)/$(LIBFDT_soname)
+ ln -sf $(LIBFDT_soname) $(DESTDIR)$(LIBDIR)/$(notdir $(LIBFDT_lib))
ln -sf $(LIBFDT_soname) $(DESTDIR)$(LIBDIR)/libfdt.$(SHAREDLIB_EXT)
$(INSTALL) -m 644 $(LIBFDT_archive) $(DESTDIR)$(LIBDIR)
$(INSTALL) -d $(DESTDIR)$(INCLUDEDIR)

View File

@ -1,11 +0,0 @@
require dtc.inc
LIC_FILES_CHKSUM = "file://GPL;md5=94d55d512a9ba36caa9b7df079bae19f \
file://libfdt/libfdt.h;beginline=3;endline=52;md5=fb360963151f8ec2d6c06b055bcbb68c"
SRCREV = "1ae2d185ddda6ca578dce5641a8a39db3117492d"
PV = "1.4.5+git${SRCPV}"
S = "${WORKDIR}/git"
BBCLASSEXTEND = "native nativesdk"

View File

@ -0,0 +1,2 @@
# We are building one kernel for all machines with the same architecture
PACKAGE_ARCH = "${TUNE_PKGARCH}"

View File

@ -0,0 +1,2 @@
# We are building one kernel for all machines with the same architecture
PACKAGE_ARCH = "${TUNE_PKGARCH}"

Some files were not shown because too many files have changed in this diff Show More