summaryrefslogtreecommitdiff
path: root/board/toradex/common
AgeCommit message (Collapse)Author
2022-09-16blk: Switch over to using uclass IDsSimon Glass
We currently have an if_type (interface type) and a uclass id. These are closely related and we don't need to have both. Drop the if_type values and use the uclass ones instead. Maintain the existing, subtle, one-way conversion between UCLASS_USB and UCLASS_MASS_STORAGE for now, and add a comment. Signed-off-by: Simon Glass <[email protected]>
2022-08-04Audit <flash.h> inclusionTom Rini
A large number of files include <flash.h> as it used to be how various SPI flash related functions were found, or for other reasons entirely. In order to migrate some further CONFIG symbols to Kconfig we need to not include flash.h in cases where we don't have a NOR flash of some sort enabled. Furthermore, in cases where we are in common code and it doesn't make sense to try and further refactor the code itself in to new files we need to guard this inclusion. Signed-off-by: Tom Rini <[email protected]>
2022-07-25toradex: common: Improve product/serial print during bootFrancesco Dolcini
Add product id print in show_board_info(), with an increasing number of Toradex SKUs available with small differences it makes sense to print it. Move serial number print to a dedicated line, this prevents the previous line with the product name to overflow the 80 columns with any reasonable product name length. Signed-off-by: Francesco Dolcini <[email protected]>
2022-07-25toradex: tdx-cfg-block: Use official SKU namesFrancesco Dolcini
Up to now in the code we named Toradex SKUs in a slightly different way compared to the official product name, start using the official names from now on to avoid misunderstanding. This has also the nice benefit of the string being shorter, allowing to fit nicely in 80 columns even adding the product ID when printing the hardware information. Signed-off-by: Francesco Dolcini <[email protected]>
2022-07-25toradex: common: Remove #ifdef usage for 2nd ethaddrFrancesco Dolcini
Fix checkpatch warn, use `IS_ENABLED(CONFIG_TDX_CFG_BLOCK_2ND_ETHADDR)` instead of `#ifdef CONFIG_TDX_CFG_BLOCK_2ND_ETHADDR`. Signed-off-by: Francesco Dolcini <[email protected]>
2022-07-25toradex: common: Remove stale function declarationFrancesco Dolcini
Remove stale show_boot_logo() declaration, not used anywhere. Fixes: e6fd30dd9eef ("toradex: drop legacy show_boot_logo function and use splashscreen") Signed-off-by: Francesco Dolcini <[email protected]>
2022-07-25toradex: tdx-cfg-block: Cleanup interactive cfg block creationFrancesco Dolcini
Simplify interactive config block creation code, instead of having a a long list of questions and a complex tree of preprocessor directive to guess the exact SKU, just ask the user to select it from a list. The modules list is filtered out to include only SKUs that are supported by the specific u-boot binary in execution. Signed-off-by: Francesco Dolcini <[email protected]>
2022-07-25toradex: common: Use ARRAY_SIZE macroFrancesco Dolcini
Use generally available ARRAY_SIZE macro, instead of hand-coding it every time is needed. Signed-off-by: Francesco Dolcini <[email protected]>
2022-07-25toradex: common: Remove stale comments about modules availabilityFrancesco Dolcini
Remove comment "not currently on sale" on specific SKUs, this information does not belong to the code and will never be accurate. Signed-off-by: Francesco Dolcini <[email protected]>
2022-07-25toradex: tdx-cfg-block: add 0068 i.mx 8m mini skuPhilippe Schenker
Add new i.MX 8M Mini SKU to ConfigBlock handling. 0068: Verdin iMX8M Mini Quad 2GB WB IT No CAN This SKU is identical to 0055 but without CAN. Mention this in the name so those modules can be distinguished. Signed-off-by: Philippe Schenker <[email protected]> Reviewed-by: Francesco Dolcini <[email protected]> Signed-off-by: Francesco Dolcini <[email protected]>
2022-07-06toradex: tdx-cfg-block: add new toradex oui rangePhilippe Schenker
Add new Toradex MAC OUI (8c:06:cb), to the config block. With this change we extend the possible serial-numbers as follows: For serial-numbers 00000000-16777215 OUI 00:14:2d is taken For serial-numbers 16777216-33554431 OUI 8c:06:cb is taken Lower 24-bit of the serial number are used in the NIC part of the MAC address, the complete serial number can be calculated using the OUI. Signed-off-by: Philippe Schenker <[email protected]> Reviewed-by: Francesco Dolcini <[email protected]> Reviewed-by: Fabio Estevam <[email protected]> Acked-by: Marcel Ziswiler <[email protected]>
2022-07-06toradex: tdx-cfg-block: extend assembly versionPhilippe Schenker
There are two decimal digits reserved to encode the module version and revision. This code so far implemented A-Z which used 0-25 of this range. This commit extends the range to make use of all 99 numbers. After capital letters the form with a hashtag and number (e.g. #26) is used. Examples: If the assembly version is between zero and 25 the numbering is as follows, as it also has been before this commit: 0: V0.0A 1: V0.0B ... 25: V0.0Z New numbering of assembly version: If the number is between 26 and 99 the new assembly version name is: 26: V0.0#26 27: V0.0#27 ... 99: V0.0#99 Signed-off-by: Philippe Schenker <[email protected]> Reviewed-by: Francesco Dolcini <[email protected]> Acked-by: Marcel Ziswiler <[email protected]>
2022-07-06toradex: tdx-cfg-block: use defines for string lengthPhilippe Schenker
With those defines the length can be reused and is in one place extendable. Signed-off-by: Philippe Schenker <[email protected]> Reviewed-by: Francesco Dolcini <[email protected]> Acked-by: Marcel Ziswiler <[email protected]>
2022-07-06toradex: tdx-cfg-block: use only snprintfPhilippe Schenker
Prevent memory issues that could appear with sprintf. Replace all sprintf occurences with snprintf. Signed-off-by: Philippe Schenker <[email protected]> Reviewed-by: Francesco Dolcini <[email protected]> Acked-by: Marcel Ziswiler <[email protected]>
2022-06-14toradex: tdx-cfg-block: add new 8gb apalis-imx8Philippe Schenker
0067: Apalis iMX8 QuadMax 8GB Wi-Fi / BT IT This module is identical to its 4GB counterpart 0037: Apalis iMX8 QuadMax 4GB Wi-Fi / BT IT except for the RAM size. Signed-off-by: Philippe Schenker <[email protected]> Reviewed-by: Francesco Dolcini <[email protected]> Acked-by: Marcel Ziswiler <[email protected]>
2022-04-21board: toradex: drop colibri pxa270 supportMarcel Ziswiler
The Colibri PXA270 has been end-of-life since quite a while and would require more and more maintenance (e.g. DM conversions). Signed-off-by: Marcel Ziswiler <[email protected]>
2022-04-21toradex: apalis-imx8x: drop support for apalis imx8xDenys Drozdov
Drop Apalis iMX8X platform as it never left sample state and is no longer supported. Signed-off-by: Denys Drozdov <[email protected]> Signed-off-by: Marcel Ziswiler <[email protected]>
2021-10-20toradex: tdx-cfg-block: add new i.mx 6ull and 8m plus skusMarcel Ziswiler
Add new i.MX 6ULL and 8M Plus SKUs to ConfigBlock handling: 0062: Colibri iMX6ULL 1GB IT (eMMC) 0063: Verdin iMX8M Plus Quad 4GB IT 0064: Verdin iMX8M Plus Quad 2GB Wi-Fi / BT IT 0065: Verdin iMX8M Plus QuadLite 1GB IT 0066: Verdin iMX8M Plus Quad 8GB Wi-Fi / BT Signed-off-by: Marcel Ziswiler <[email protected]>
2021-10-20toradex: configblock: fix interactive mode it handlingDenys Drozdov
Restore "Is the module an IT version? [y/N]" for "cfgblock create" interactive mode command, which was leading to invalid detection of 0051 Colibri iMX8DX 1GB WB module; Fixes: a5b5ad4d859b ("toradex: tdx-cfg-clock: add new i.mx 8m mini/plus skus") Related-to: ELB-3482 Signed-off-by: Denys Drozdov <[email protected]> Signed-off-by: Marcel Ziswiler <[email protected]>
2021-09-07arm: Finish migration of CONFIG_MACH_TYPETom Rini
As this is only useful when booting with ATAGs, which are now largely disabled, remove this value for the remaining platforms. We have a few places in the code that had been testing for MACH_TYPE as a sort of internal logic. Update those to use different but still correct CONFIG symbols. Cc: Phil Sutter <[email protected]> Signed-off-by: Tom Rini <[email protected]>
2021-09-07arm: Disable ATAGs supportTom Rini
With the exceptions of ds109, ds414, icnova-a20-swac, nokia_rx51 and stemmy, disable ATAG support. A large number of platforms had enabled support but never supported a kernel so old as to require it. Further, some platforms are old enough to support both, but are well supported by devicetree booting, and have been for a number of years. This is because some of the ATAGs related functions have been re-used to provide the same kind of information, but for devicetree or just generally to inform the user. When needed still, rename these functions to get_board_revision() instead, to avoid conflicts. In other cases, these functions were simply unused, so drop them. Cc: Andre Przywara <[email protected]> Cc: Jagan Teki <[email protected]> Cc: Phil Sutter <[email protected]> Cc: Stefan Bosch <[email protected]> Signed-off-by: Tom Rini <[email protected]>
2021-08-09board: toradex: make USB PID from config block optionalStefan Agner
If config block support is enabled, USB gadget modes unconditionally use Toradex Product ID as USB PID. Some applications might prefer a different and/or static USB PID. Add a Kconfig configuration option to descide whether to use USB PID from config block or the fallback config option CONFIG_G_DNL_PRODUCT_NUM. Signed-off-by: Stefan Agner <[email protected]> Signed-off-by: Oleksandr Suvorov <[email protected]>
2021-08-02global: Convert simple_strtoul() with decimal to dectoul()Simon Glass
It is a pain to have to specify the value 10 in each call. Add a new dectoul() function and update the code to use it. Signed-off-by: Simon Glass <[email protected]>
2021-04-20toradex: configblock: fix module revision in config blockDenys Drozdov
U-boot might display wrong module revision information for modules with an assembly version 'K'. "cfgblock create" does not takes into account all revision digits from PID8. This fix takes into account all digits of PID8 to store module revision. Signed-off-by: Denys Drozdov <[email protected]> Reviewed-by: Oleksandr Suvorov <[email protected]>
2021-02-02common: Drop asm/global_data.h from common headerSimon Glass
Move this out of the common header and include it only where needed. In a number of cases this requires adding "struct udevice;" to avoid adding another large header or in other cases replacing / adding missing header files that had been pulled in, very indirectly. Finally, we have a few cases where we did not need to include <asm/global_data.h> at all, so remove that include. Signed-off-by: Simon Glass <[email protected]> Signed-off-by: Tom Rini <[email protected]>
2020-12-06toradex: tdx-cfg-clock: fix i.mx 8m mini interactiveMarcel Ziswiler
Now with them first Verdin iMX8M Mini DualLite modules in for bring-up we got clarity how is_cpu_type() actually behaves. Signed-off-by: Marcel Ziswiler <[email protected]> Reviewed-by: Oleksandr Suvorov <[email protected]>
2020-12-06toradex: tdx-cfg-clock: add new i.mx 8m mini/plus skusMarcel Ziswiler
Add new i.MX 8M Mini/Plus SKUs to ConfigBlock handling: 0058: Verdin iMX8M Plus Quad 4GB Wi-Fi / BT IT 0059: Verdin iMX8M Mini Quad 2GB IT 0060: Verdin iMX8M Mini DualLite 1GB WB IT 0061: Verdin iMX8M Plus Quad 2GB Rename existing SKU (use correct one): Verdin iMX8M Nano SoloLite 1GB -> Verdin iMX8M Nano Quad 1GB Wi-Fi Signed-off-by: Igor Opaniuk <[email protected]> Signed-off-by: Marcel Ziswiler <[email protected]>
2020-09-17toradex: drop legacy show_boot_logo function and use splashscreenIgor Opaniuk
Drop show_boot_logo legacy function, as splashscreen functionality can be used instead. Fixes: d324189772("toradex: common: show boot logo") Signed-off-by: Igor Opaniuk <[email protected]>
2020-07-27toradex: common: show boot logoIgor Opaniuk
Add function for showing boot logo, embed into u-boot blob. Signed-off-by: Igor Opaniuk <[email protected]>
2020-07-27toradex: tdx-cfg-block: add carrier board info printingIgor Opaniuk
Add carrier board info printing during boot time: U-Boot 2020.07-rc4-02435-g1756e05 (Jun 22 2020 - 22:43:59 +0300) CPU: Freescale i.MX8MMQ rev1.0 at 1200 MHz .... Carrier: Toradex Verdin Development Board V1.0A, Serial# 10622780 Verdin iMX8MM # Signed-off-by: Igor Opaniuk <[email protected]>
2020-07-27toradex: tdx-cfg-clock: add migration routine from PID8Igor Opaniuk
Add migration routine from PID8 pre-stored values on EEPROM (including sane value checks). Signed-off-by: Igor Opaniuk <[email protected]>
2020-07-27toradex: tdx-cfg-block: add support for EEPROMIgor Opaniuk
This introduces support for EEPROM as a storage for the main Toradex config block and additional config blocks on extra EEPROM chips (on carrier board or video adapters). To enable EEPROM as a storage for the main config block: TDX_HAVE_EEPROM=y. For additional EEPROMs please enable this Kconfig symbol: TDX_CFG_BLOCK_EXTRA=y. Information about existing EEPROM chips is provided via Device Tree using aliases. You can also write configuration for the carrier board using create_carrier subcommand for cfgblock. Example: Verdin iMX8MM # cfgblock create_carrier Supported carrier boards: UNKNOWN CARRIER = [0] Verdin Carrier Board = [1] Choose your carrier board (provide ID): 1 Enter carrier board version (e.g. V1.1B): V1.0A Enter carrier board serial number: 10622780 Also with barcode: Verdin iMX8MM # cfgblock create carrier -y 0156100010622780 Signed-off-by: Igor Opaniuk <[email protected]>
2020-07-27toradex: tdx-cfg-block: add carrier boards and display adaptersIgor Opaniuk
Add defines for supported carrier boards and display adapters. Signed-off-by: Igor Opaniuk <[email protected]>
2020-07-27toradex: tdx-cfg-block: add EEPROM read/store wrappersIgor Opaniuk
These functions wrap functionality for storing config blocks in EEPROM. Signed-off-by: Igor Opaniuk <[email protected]>
2020-07-17treewide: convert bd_t to struct bd_info by coccinelleMasahiro Yamada
The Linux coding style guide (Documentation/process/coding-style.rst) clearly says: It's a **mistake** to use typedef for structures and pointers. Besides, using typedef for structures is annoying when you try to make headers self-contained. Let's say you have the following function declaration in a header: void foo(bd_t *bd); This is not self-contained since bd_t is not defined. To tell the compiler what 'bd_t' is, you need to include <asm/u-boot.h> #include <asm/u-boot.h> void foo(bd_t *bd); Then, the include direcective pulls in more bloat needlessly. If you use 'struct bd_info' instead, it is enough to put a forward declaration as follows: struct bd_info; void foo(struct bd_info *bd); Right, typedef'ing bd_t is a mistake. I used coccinelle to generate this commit. The semantic patch that makes this change is as follows: <smpl> @@ typedef bd_t; @@ -bd_t +struct bd_info </smpl> Signed-off-by: Masahiro Yamada <[email protected]>
2020-05-18command: Remove the cmd_tbl_t typedefSimon Glass
We should not use typedefs in U-Boot. They cannot be used as forward declarations which means that header files must include the full header to access them. Drop the typedef and rename the struct to remove the _s suffix which is now not useful. This requires quite a few header-file additions. Signed-off-by: Simon Glass <[email protected]>
2020-05-18common: Drop init.h from common headerSimon Glass
Move this uncommon header out of the common header. Signed-off-by: Simon Glass <[email protected]>
2020-05-18common: Drop net.h from common headerSimon Glass
Move this header out of the common header. Network support is used in quite a few places but it still does not warrant blanket inclusion. Note that this net.h header itself has quite a lot in it. It could be split into the driver-mode support, functions, structures, checksumming, etc. Signed-off-by: Simon Glass <[email protected]>
2020-02-09toradex: tdx-cfg-block: add Verdin iMX8M Mini/Nano supportMarcel Ziswiler
Add support for storing configuration for Verdin iMX8M Mini and Nano SoMs in Toradex config block. Signed-off-by: Marcel Ziswiler <[email protected]> Signed-off-by: Igor Opaniuk <[email protected]> Reviewed-by: Oleksandr Suvorov <[email protected]>
2020-02-09toradex: tdx-cfg-block: add Apalis iMX8X supportMarcel Ziswiler
Add support for storing configuration for Apalis iMX8X SoM in Toradex config block. Signed-off-by: Marcel Ziswiler <[email protected]> Reviewed-by: Oleksandr Suvorov <[email protected]>
2019-08-11env: Drop environment.h header file where not neededSimon Glass
This header file is now only used by files that access internal environment features. Drop it from various places where it is not needed. Acked-by: Joe Hershberger <[email protected]> Signed-off-by: Simon Glass <[email protected]>
2019-08-11env: Move env_get() to env.hSimon Glass
Move env_get() over to the new header file. Acked-by: Joe Hershberger <[email protected]> Signed-off-by: Simon Glass <[email protected]>
2019-08-11env: Move env_set() to env.hSimon Glass
Move env_set() over to the new header file. Acked-by: Joe Hershberger <[email protected]> Signed-off-by: Simon Glass <[email protected]>
2019-07-19toradex: configblock: avoid line continuationsMarcel Ziswiler
Fix issue as reported by checkpatch.pl. Leave long lines as line continuation in text output is not recommended. Signed-off-by: Marcel Ziswiler <[email protected]> Reviewed-by: Igor Opaniuk <[email protected]> Reviewed-by: Oleksandr Suvorov <[email protected]>
2019-07-19toradex: configblock: fix apalis imx8 targetMarcel Ziswiler
The Apalis iMX8 was missing the interactive part should a customer have bricked his module and want to re-create the configuration block. Fix this. Signed-off-by: Marcel Ziswiler <[email protected]> Reviewed-by: Igor Opaniuk <[email protected]> Reviewed-by: Oleksandr Suvorov <[email protected]>
2019-07-19toradex: configblock: fix colibri imx8x targetMarcel Ziswiler
The Colibri iMX8X target got re-named late in the cycle which we forgot to reflect here. Furthermore, it was missing the interactive part should a customer have bricked his module and want to re-create the configuration block. Fix this. Signed-off-by: Marcel Ziswiler <[email protected]> Reviewed-by: Igor Opaniuk <[email protected]> Reviewed-by: Oleksandr Suvorov <[email protected]>
2019-07-19toradex: configblock: generic wi-fi/bt handlingMarcel Ziswiler
Make the interactive Wi-Fi/BT handling generic by pulling it out of the Colibri iMX6ULL interactive part to be re-used for Apalis iMX8 and Colibri iMX8X. Signed-off-by: Marcel Ziswiler <[email protected]> Reviewed-by: Igor Opaniuk <[email protected]> Reviewed-by: Oleksandr Suvorov <[email protected]>
2019-07-19toradex: configblock: initialize MMC before switching partitionStefan Agner
If the module is in serial downloader mode, we do no longer read the environment from eMMC. Therefor, the eMMC is unitialized when trying to read the config block. Use mmc_init to initialize the selected MMC device before using it. Note: In case the MMC has already been initialized, the mmc_init detects that and returns immediately. Signed-off-by: Stefan Agner <[email protected]> Acked-by: Max Krummenacher <[email protected]> Signed-off-by: Marcel Ziswiler <[email protected]> Reviewed-by: Igor Opaniuk <[email protected]> Reviewed-by: Oleksandr Suvorov <[email protected]>
2019-04-25board: toradex: tdx-cfg-block: add new skusMarcel Ziswiler
Add all the latest new SKUs: - Apalis iMX8 QuadXPlus 2GB Wi-Fi / BT IT - Apalis iMX8 QuadMax 4GB IT - Apalis iMX8 QuadPlus 2GB Wi-Fi / BT - Apalis iMX8 QuadPlus 2GB", - Colibri iMX8 QuadXPlus 2GB IT - Colibri iMX8 DualX 1GB Wi-Fi / Bluetooth - Colibri iMX8 DualX 1GB Signed-off-by: Marcel Ziswiler <[email protected]> Reviewed-by: Igor Opaniuk <[email protected]>
2019-04-25board: toradex: tdx-cfg-block: clean-up sku handlingMarcel Ziswiler
Clean-up handling of several SKUs. Signed-off-by: Marcel Ziswiler <[email protected]> Reviewed-by: Igor Opaniuk <[email protected]>