Commit Graph

163 Commits

Author SHA1 Message Date
Johan Hedberg 2b83dd72d8 boards: arm64: Use HEAP_MEM_POOL_ADD_SIZE KConfig options
Kconfig options with a HEAP_MEM_POOL_ADD_SIZE_ prefix should be used to
set the minimum required system heap size. This helps prevent
applications from creating a non-working image by trying to set a too
small value.

Signed-off-by: Johan Hedberg <johan.hedberg@intel.com>
2023-12-20 11:01:42 +01:00
Murlidhar Roy bc8e09d4ec boards: arm64: intel: intel_socfpga_agilex5_socdk: Enable sdmmc
Enable SDMMC and add MMC child node

Signed-off-by: Murlidhar Roy <murlidhar.roy@intel.com>
2023-12-18 15:00:38 +01:00
Wojciech Sipak 60dc8dd410 boards: Use unique names for boards in the YAML files
There are duplicated names specified in per-board YAML files.
This change will allow distinguishing boards in software that
presents the pretty names and not the raw names of boards.

Signed-off-by: Wojciech Sipak <wsipak@antmicro.com>
2023-11-24 09:26:28 +01:00
Benjamin Cabé 7433a203ef doc: boards: Clean up repeated words
Removed a bunch from repeated words across board READMEs.

Signed-off-by: Benjamin Cabé <benjamin@zephyrproject.org>
2023-11-15 22:01:07 +01:00
Chekhov Ma 2b6c861f0c imx93: increase mmu region count to 64
The default mmu region count is not enough when more drivers are added.

Signed-off-by: Chekhov Ma <chekhov.ma@nxp.com>
2023-11-14 07:10:59 -06:00
Chekhov Ma 2c13e53081 imx93: add lpuart1
imx93: add dts node and mmu region for lpuart1

Signed-off-by: Chekhov Ma <chekhov.ma@nxp.com>
2023-11-14 07:10:59 -06:00
Chekhov Ma 90aee7d65c imx93: update iomuxc refs to match new pinctrl.dtsi
Update iomuxc references to match the changes of
`mimx9352cvuxk-pinctrl.dtsi` in hal/nxp.

Signed-off-by: Chekhov Ma <chekhov.ma@nxp.com>
2023-11-14 07:10:59 -06:00
Benjamin Cabé 12e8490b8f boards: nxp: doc: Fix typo in imx8mn_evk board specs
The M core on this board is an M7, not M47.

Fixes #65047.

Signed-off-by: Benjamin Cabé <benjamin@zephyrproject.org>
2023-11-10 13:41:04 +00:00
Mykola Kvach bcaa7c2bdb boards: arm64: xenvm: read real frequency
Read real frequncy from ARM Arch Timer instead of using define
'CONFIG_SYS_CLOCK_HW_CYCLES_PER_SEC' which can be incorrect for
some run cases. If we run xenvm under qemu we get one frequency, but
we can run this build as a DomU for Xen under different real platforms
and thus with differenty arch timer frequencies. So, we need to read
frequency from the timer registers.

Signed-off-by: Mykola Kvach <xakep.amatop@gmail.com>
2023-11-10 10:39:54 +01:00
Fabio Baltieri 8bec2d7b37 boards: roc_rk3568: do not use as default test platform
Only qemu boards are used as default in CI, drop the default property
from this one.

Signed-off-by: Fabio Baltieri <fabiobaltieri@google.com>
2023-11-07 17:44:25 -05:00
Charlie Xiong 8fe6e0130e boards: arm64: provide support for ROC-RK3568-PC
This is support for AArch64 development board.
The board uses 4-core Cortex-A55, which are based on
the ARMv8.2 architecture.
In addition,we support smp support and
it can use 4-cores to run basic samples.

Signed-off-by: Charlie Xiong <1981639884@qq.com>
2023-11-06 10:14:20 +01:00
Chen Xingyu 03e2b6aee2 boards: arm64: rpi_4b: Update doc for programming with TF cards
Rewrote with a more detailed procedure.

Signed-off-by: Chen Xingyu <hi@xingrz.me>
2023-10-24 11:03:44 +02:00
Chen Xingyu 6739063847 boards: arm64: rpi_4b: Add DTS node for LED_ACT
LED_ACT is the green LED at the top left corner of the RPi 4B board.

Signed-off-by: Chen Xingyu <hi@xingrz.me>
2023-10-24 11:03:44 +02:00
Chen Xingyu a2ef2f7605 drivers: gpio: Add GPIO driver for BCM2711
The BCM2711 SoC exposes 58 GPIOs. The first 28 (bank 0) are accessible
to users via the 40-pin header, while the others (bank 1) are used for
controlling on-board peripherals.

This also update doc of `rpi_4b` board.

Signed-off-by: Chen Xingyu <hi@xingrz.me>
2023-10-24 11:03:44 +02:00
Chen Xingyu f2b3d704d7 boards: arm64: rpi_4b: Convert to `list-table` syntax
Keep aligned with `rpi_pico` board.

Signed-off-by: Chen Xingyu <hi@xingrz.me>
2023-10-24 11:03:44 +02:00
Chen Xingyu aa46254708 boards: arm64: rpi_4b: Fix doc
* defconfig is located under `boards/arm64/` instead of `boards/arm/`
* 64-bit mode (`arm_64bit=1`) is required to boot

Signed-off-by: Chen Xingyu <hi@xingrz.me>
2023-10-24 11:03:44 +02:00
Maureen Helm d5287578fe dts: bindings: boards: Update Ethernet PHY to use `reg` property
Updates Ethernet PHY devicetree bindings to be more consistent with
Linux by using the standard `reg` property for the PHY address instead
of a custom `address` property. As a result, MDIO controller bindings
now require standard `#address-cells` and `#size-cells` properties.

Signed-off-by: Maureen Helm <maureen.helm@analog.com>
2023-09-29 09:47:15 +02:00
Maureen Helm ce42ffcce0 dts: boards: Use `ethernet-phy` devicetree node name consistently
Some Ethernet PHYs used the devicetree node name `phy`, while others
used `ethernet-phy`. Be consistent and use `ethernet-phy` throughout.

Signed-off-by: Maureen Helm <maureen.helm@analog.com>
2023-09-29 09:47:15 +02:00
honglin leng c4f102fd8b boards: arm64: add support for Raspberry Pi 4 Model B
This is an AArch64 board. We also add BCM2711 SoC support

Signed-off-by: honglin leng <a909204013@gmail.com>
2023-09-28 13:40:45 +02:00
Anas Nashif c3827ec48e boards: add vendor to board yaml
This is coming from devicetree and corrosponds to what we have in the
dts/bindings/vendor-prefixes.txt file.

This will allow for static filtering, especially with twister, i.e. no
need to build anything to know the vendor of a board

All of the vendor data was extracted automatically from the devicetree,
so some platforms might not have the right vendor or no vendor at all
right now, we need to fix some of the DTS information or do this
manually to get this 100% correct. But we are close.

Signed-off-by: Anas Nashif <anas.nashif@intel.com>
2023-09-22 09:29:36 +02:00
Anas Nashif 839258a954 boards: rcar_salvator_xs_m3: not a default test platform
This is not an emulation platform, so it should not be set as a default.

Signed-off-by: Anas Nashif <anas.nashif@intel.com>
2023-09-19 09:51:54 -04:00
Carlo Caione e4a125b6a4 dt: Make zephyr,memory-attr a capabilities bitmask
This is the final step in making the `zephyr,memory-attr` property
actually useful.

The problem with the current implementation is that `zephyr,memory-attr`
is an enum type, this is making very difficult to use that to actually
describe the memory capabilities. The solution proposed in this PR is to
use the `zephyr,memory-attr` property as an OR-ed bitmask of memory
attributes.

With the change proposed in this PR it is possible in the DeviceTree to
mark the memory regions with a bitmask of attributes by using the
`zephyr,memory-attr` property. This property and the related memory
region can then be retrieved at run-time by leveraging a provided helper
library or the usual DT helpers.

The set of general attributes that can be specified in the property are
defined and explained in
`include/zephyr/dt-bindings/memory-attr/memory-attr.h` (the list can be
extended when needed).

For example, to mark a memory region in the DeviceTree as volatile,
non-cacheable, out-of-order:

   mem: memory@10000000 {
       compatible = "mmio-sram";
       reg = <0x10000000 0x1000>;
       zephyr,memory-attr = <( DT_MEM_VOLATILE |
			       DT_MEM_NON_CACHEABLE |
			       DT_MEM_OOO )>;
   };

The `zephyr,memory-attr` property can also be used to set
architecture-specific custom attributes that can be interpreted at run
time. This is leveraged, among other things, to create MPU regions out
of DeviceTree defined memory regions on ARM, for example:

   mem: memory@10000000 {
       compatible = "mmio-sram";
       reg = <0x10000000 0x1000>;
       zephyr,memory-region = "NOCACHE_REGION";
       zephyr,memory-attr = <( DT_ARM_MPU(ATTR_MPU_RAM_NOCACHE) )>;
   };

See `include/zephyr/dt-bindings/memory-attr/memory-attr-mpu.h` to see
how an architecture can define its own special memory attributes (in
this case ARM MPU).

The property can also be used to set custom software-specific
attributes. For example we can think of marking a memory region as
available to be used for memory allocation (not yet implemented):

   mem: memory@10000000 {
       compatible = "mmio-sram";
       reg = <0x10000000 0x1000>;
       zephyr,memory-attr = <( DT_MEM_NON_CACHEABLE |
			       DT_MEM_SW_ALLOCATABLE )>;
   };

Or maybe we can leverage the property to specify some alignment
requirements for the region:

   mem: memory@10000000 {
       compatible = "mmio-sram";
       reg = <0x10000000 0x1000>;
       zephyr,memory-attr = <( DT_MEM_CACHEABLE |
			       DT_MEM_SW_ALIGN(32) )>;
   };

The conventional and recommended way to deal and manage with memory
regions marked with attributes is by using the provided `mem-attr`
helper library by enabling `CONFIG_MEM_ATTR` (or by using the usual DT
helpers).

When this option is enabled the list of memory regions and their
attributes are compiled in a user-accessible array and a set of
functions is made available that can be used to query, probe and act on
regions and attributes, see `include/zephyr/mem_mgmt/mem_attr.h`

Note that the `zephyr,memory-attr` property is only a descriptive
property of the capabilities of the associated memory  region, but it
does not result in any actual setting for the memory to be set. The
user, code or subsystem willing to use this information to do some work
(for example creating an MPU region out of the property) must use either
the provided `mem-attr` library or the usual DeviceTree helpers to
perform the required work / setting.

Signed-off-by: Carlo Caione <ccaione@baylibre.com>
2023-09-15 12:46:54 +02:00
Mykola Kvach 66dfe7b99a dts: bindings: xen: add xen,xen.yaml file
Add yaml file for 'xen,xen', because without it an appropriate
'CONFIG_DT_HAS_XEN_XEN_ENABLED' isn't generated.

It will be used for checking Xen support on current setup, instead of
checking if it is BOARD/SOC "xenvm" (which is not correct for Domain-0
configurations).

Remove xen,xen-4.15.yaml at all, because it isn't necessary to have
yaml for some specific Xen version.

Signed-off-by: Mykola Kvach <mykola_kvach@epam.com>
Signed-off-by: Dmytro Firsov <dmytro_firsov@epam.com>
2023-09-15 11:15:00 +01:00
Mykola Kvach 62fd5ab3e1 drivers: xen: gnttab: do Xen node mapping inside driver
Move memory mapping of Xen node to Grant Table driver system init
function. After moving mapping we don't need anymore records of
xen-xen node into 'mmu_regions' array, so they were deleted from
all SoCs: Rcar Gen3/Gen4 and XenVM.

We need at least 16M of virtual address space to map memory of Xen
node, so the virtual memory sized has been increased to 32 MB, it
should be enough for basic use-cases and mapping of 16M mem region
of Xen node.

Unfortunately, after moving we also need to increase number of XLAT
tables. The previous code was more efficient if we talking about
usage of XLAT tables, because it mapped grant tables using a higher-
order table that allows mapping blocks of 2MB. And after the changes
is maps every 4KB page, so we need more XLAT tables.

Increase number of grant frames, it is needed to sync stage 1 and stage 2
memory mappings, previously we map only one page on stage 2 and further
usage of unmap regions can cause MMU translation errors.

Perform mapping stage 1 before mapping for stage 2 (add to physmap),
because right after stage 1 we can try to access memory and if it is
unmap in stage 2, error will be received during translation.

Note: Xen Grant Table driver doesn't use Zephyr Device Model.

Authored-by: Mykola Kvach <mykola_kvach@epam.com>
Co-authored-by: Oleksii Moisieiev <oleksii_moisieiev@epam.com>
Signed-off-by: Mykola Kvach <mykola_kvach@epam.com>
2023-09-15 11:15:00 +01:00
Benjamin Cabé 59e4c5aed0 samples: fully migrate basic samples to the new Sphinx extension
- Updated basic samples READMEs to use the new zephyr:code-sample::
  directive. Dropped "-sample" suffix that's not required anymore now
  that samples have their own namespace.
- Updated all references to the samples to use the :zephyr:code-sample:
  role. Checked and updated the wording of said references to account
  for the fact that samples should not have "... sample" in their name
  anymore.

Signed-off-by: Benjamin Cabé <benjamin@zephyrproject.org>
2023-09-13 09:15:34 +02:00
Huifeng Zhang af2ecf4051 boards: fvp_baser_aemv8r: enable cache_state_modelled
Let FVP_BaseR_AEMv8R simulate the operation of cache-related.

This will slow the speed of FVP_BaseR_AEMv8R but it can obtain realistic
simulation results as much as possible. So the timeout_multiplier needs
to be increased.

Signed-off-by: Huifeng Zhang <Huifeng.Zhang@arm.com>
2023-09-01 13:23:26 +02:00
Huifeng Zhang acfa9a06c9 boards: fvp_baser_aemv8r: adjust the base address of device_region
Change the base address of device_region to 0x9a000000 to avoid overlay
with the flash region.

Signed-off-by: Huifeng Zhang <Huifeng.Zhang@arm.com>
2023-09-01 13:23:26 +02:00
Anas Nashif 834e0a73e0 boards: rcar_h3ulcb_ca57: not a default platform
This platform should not be set as a default platform. It does not run
in CI, i.e. not a simulator/emulator.

Signed-off-by: Anas Nashif <anas.nashif@intel.com>
2023-08-30 06:39:39 -04:00
Grant Ramsay 5443703dc9 edtlib: Exclude PCI devices from some inapplicable checks
PCI devices are have some differences to regular nodes:
* node name specifies device/function e.g. "pcie@1,0"
* register address has a different meaning
* zero-sized register is allowed

This improves alignment with Linux DT for PCI devices

Signed-off-by: Grant Ramsay <gramsay@enphaseenergy.com>
2023-08-18 10:13:12 +02:00
Grant Ramsay 8a983eecea boards: arm64: Add networking support to qemu_cortex_a53
Enable qemu_cortex_a53 networking using the Intel e1000 Ethernet driver.
This board only supports a single UART, so subsystems like logging and
shell would need to be disabled to use SLIP, therefore QEMU Ethernet is
used as the default instead.

Signed-off-by: Grant Ramsay <gramsay@enphaseenergy.com>
2023-08-18 10:13:12 +02:00
Fabio Baltieri 243e84d155 ethernet: phy_mii: get the MDIO bus with DT_INST_BUS
Now that all in-tree phys are declared under their mdio bus, drop the
`mdio` property and use DT_INST_BUS to find the bus.

Signed-off-by: Fabio Baltieri <fabiobaltieri@google.com>
2023-08-17 13:29:45 -05:00
Fabio Baltieri f2e275639d ethernet: smsc91x: rework the device node hierarchy
Rework the devicetree definition for smsc91x to put the mdio and
ethernet device at the same level, and make the phy a child of the mdio
node.

This allows matching up the device initialization sequence with the
devicetree hierarchy.

Signed-off-by: Fabio Baltieri <fabiobaltieri@google.com>
2023-08-16 14:52:31 +02:00
Girisha Dengi 42477ed68d boards: arm64: Add Intel SoC FPGA Agilex5 development kit board
This is the initial Zephyr support for Intel SoC FPGA Agilex5 support.
Agilex5 has dual-core 64-bit ARM Cortex*-A55 and dual-core 64bit
ARM Cortex*-A76.

The Zephyr will need to be loaded by Intel Arm Trusted Firmware (ATF).
Agilex5 Zephyr boot flow:
  FSBL:ATF BL2(EL3) -> ATF BL31(EL3) -> OS:Zephyr(EL1)

Intel ATF can be loaded from:
  https://github.com/altera-opensource/arm-trusted-firmware.git

Signed-off-by: Teik Heng Chong <teik.heng.chong@intel.com>
Signed-off-by: Girisha Dengi <girisha.dengi@intel.com>
2023-07-25 16:58:01 +00:00
Carlo Caione 15e84cbfac dts: Move to 'zephyr,memory-attr'
Move to 'zephyr,memory-attr' and use the newly introduced helpers.

Signed-off-by: Carlo Caione <ccaione@baylibre.com>
2023-07-25 11:22:10 +02:00
Mykola Kvach 7471c0ca0f boards: arm64: add support of Salvator XS M3 board
Add support of 'rcar_salvator_xs_m3' board: minimal dts
and configuration.

Signed-off-by: Mykola Kvach <mykola_kvach@epam.com>
2023-07-11 11:17:41 +02:00
Mykola Kvach 1de9794e12 boards: arm64: add Renesas H3ULCB CA57 board support
Add basic functionality for supporting h3ulcb board:
  * add documentation for h3ulcb board;
  * add pinctrl dtsi for scif driver;
  * add dts, yaml and configuration files.

Signed-off-by: Mykola Kvach <mykola_kvach@epam.com>
2023-07-11 11:17:41 +02:00
Daniel Leung 001795b24c boards: qemu_cortex_a53: move MAX_THREAD_BYTES to Kconfig
This moves CONFIG_MAX_THREAD_BYTES from the board's defconfig
file into the Kconfig file. This is to get rid of the cmake
warning about CONFIG_MAX_THREAD_BYTES being assigned value
but got the value ''. This is due to CONFIG_USERSPACE being
disabled, where some tests explicitly do so. This is simply
done to avoid confusion when running those tests manually.

Signed-off-by: Daniel Leung <daniel.leung@intel.com>
2023-06-20 19:41:42 -04:00
Piotr Wojnarowski 562716d709 soc: arm64: xenvm: Move GIC version to DT
Move the GIC version to the device tree for xenvm
to improve readability

Signed-off-by: Piotr Wojnarowski <pwojnarowski@antmicro.com>
2023-06-17 08:01:46 -04:00
Piotr Wojnarowski ff9fe7271a soc: arm64: fvp_aemv8: Move GIC version to DT
Move the GIC version to the device tree for fvp_aemv8{a,r}
to improve readability

Signed-off-by: Piotr Wojnarowski <pwojnarowski@antmicro.com>
2023-06-17 08:01:46 -04:00
Anas Nashif 689ea54b78 tests: do not filter on SMP, use board yaml file
Avoid expensive runtime filtering and use platform features instead.

Signed-off-by: Anas Nashif <anas.nashif@intel.com>
2023-05-24 07:50:50 -04:00
Daniel Schultz f18c0b5ba5 boards: arm64: phycore_am62x_a53: Update documentation
The latest Yocto release, PD23.1.0, has the CACHE_CMD included.
Therefore, the default image can be used to boot Zephyr.

Signed-off-by: Daniel Schultz <d.schultz@phytec.de>
2023-05-12 14:18:53 +02:00
Laurentiu Mihalcea 4b27dcc88c boards: arm64: mimx93_evk: doc: Add information about SOF board variant
This commit adds some additional information about the SOF variant
of the mimx93_evk board. It mostly goes into how SOF with Zephyr
is going to work using this board and some basic Jailhouse-related
concepts.

Signed-off-by: Laurentiu Mihalcea <laurentiu.mihalcea@nxp.com>
2023-04-19 10:01:19 +02:00
Laurentiu Mihalcea 1b923275e6 boards: arm64: mimx93_evk: Introduce new board for SOF usage
This commit introduces a new variant of the mimx93_evk_a55 board
used to run the SOF module.

This is required because we don't want to pollute the imx93_a55
generic board with SOF-specific nodes such as the memory nodes.
Also, the SOF-specific drivers should not be activated in the
generic board.

SOF with Jailhouse also requires some specific configurations
such as the 40-bit PAs and VAs and the static data cache line
size so this is another reason for which this new
board had to be created.

Signed-off-by: Laurentiu Mihalcea <laurentiu.mihalcea@nxp.com>
2023-04-19 10:01:19 +02:00
Huifeng Zhang c26c5b1f42 board: fvp_base_revc_2xaemv8a: Add ethernet, phy and mdio nodes
Add the SMSC_91C111 driver for the fvp_base_revc_2xaemv8a.

Signed-off-by: Huifeng Zhang <Huifeng.Zhang@arm.com>
2023-04-11 11:27:05 +02:00
Huifeng Zhang 49ca47e54a board: arm64: fvp_baser_aemv8r: Add ethernet, phy and mdio nodes
Enable the smsc91c111 driver for fvp_baser_aemv8r

Signed-off-by: Huifeng Zhang <Huifeng.Zhang@arm.com>
2023-04-11 11:27:05 +02:00
Huifeng Zhang 9bf75d1eea board: fvp_base_revc_2xaemv8a: change the uart interrupts values
There are some wrong interrupt-cells values of the uart nodes in this
board. The order of the arm,gic interrupt-cells should be type, irq,
flags and priority.

Signed-off-by: Huifeng Zhang <Huifeng.Zhang@arm.com>
2023-04-11 11:27:05 +02:00
Luca Fancellu 0deeb5ff65 soc: include: fvp_aemv8r: Define device memory as device tree node
A recent change introduced the possibility to declare MPU memory
regions using the device tree and the framework described in
zephyr/linker/devicetree_regions.h.

So remove the device region declared in mpu_regions[] and the used
defines for the addresses, rename REGION_DEVICE_ATTR to REGION_IO_ATTR
in arm_mpu.h to be compatible with the framework and add a device tree
node to fvp_baser_aemv8r.dts to describe the device memory region.

Signed-off-by: Luca Fancellu <luca.fancellu@arm.com>
2023-03-27 13:20:47 +00:00
Jiafei Pan 3a36b0736d board: arm64: mimx8mp/n/m: fix cpu command in document
Fixed the wrong cpu command.

Signed-off-by: Jiafei Pan <Jiafei.Pan@nxp.com>
2023-03-15 08:51:25 -04:00
Grant Ramsay 37ca1034dd boards: arm64: Configure phyCORE-AM62x A53 UART0 using pinctrl
This demonstates how to use the TI K3 pincrtl driver.
Previously UART0 only worked becuase U-Boot leaves it configured

Signed-off-by: Grant Ramsay <gramsay@enphaseenergy.com>
2023-03-02 13:50:06 +01:00
Grant Ramsay f92dd6d357 drivers: serial: Name the NS16550 variant Kconfig choice
Naming this choice allows setting a default value in defconfig.

Signed-off-by: Grant Ramsay <gramsay@enphaseenergy.com>
2023-02-24 18:11:56 +01:00