Project 'linux/u-boot' was moved to 'sw/misc/u-boot'. Please update any links and bookmarks that may still have the old path.
- Mar 08, 2021
-
-
Frieder Schrempf authored
This is only a quick and compile-tested patch for making HAB build on i.MX8MM. There is still a load of warnings reported in arch/arm/mach-imx/hab.c. It looks like this driver still needs work to get ready for ARM64. Signed-off-by:
Frieder Schrempf <frieder.schrempf@kontron.de>
-
Frieder Schrempf authored
Except for the base address this is just copy and paste from i.MX7 and has not been verfied or tested. There is still a load of warnings reported in drivers/crypto/fsl/jr.c. It looks like this driver still needs work to get ready for ARM64. Signed-off-by:
Frieder Schrempf <frieder.schrempf@kontron.de>
-
i.MX7ULP and i.MX8M may also use HAB. Add support for these platforms. Signed-off-by:
Fabio Estevam <festevam@gmail.com>
-
- Mar 06, 2021
-
-
https://gitlab.denx.de/u-boot/custodians/u-boot-fsl-qoriqTom Rini authored
- Convert qemu-ppce500 to driver model and enable additional driver support - bug fixes/updates in net-dsa driver, vid driver, move configs to kconfig - Update Maintainers of some powerpc, layerscape platforms
-
- Mar 05, 2021
-
-
Bin Meng authored
Add a reST document to describe how to build and run U-Boot for the QEMU ppce500 machine. Signed-off-by:
Bin Meng <bmeng.cn@gmail.com> Reviewed-by:
Simon Glass <sjg@chromium.org> Reviewed-by:
Priyanka Jain <priyanka.jain@nxp.com>
-
Bin Meng authored
board/emulation is the place for other QEMU targets like x86, arm, riscv. Let's move the qemu-ppce500 board codes there. List me as a co-maintainer for this board. Signed-off-by:
Bin Meng <bmeng.cn@gmail.com> Reviewed-by:
Priyanka Jain <priyanka.jain@nxp.com>
-
Bin Meng authored
This function is not called anywhere. Only fsl_ddr_sdram_size() is necessary [1] for QEMU. Drop it. [1] arch/powerpc/cpu/mpc85xx/cpu.c::dram_init() Signed-off-by:
Bin Meng <bmeng.cn@gmail.com> Reviewed-by:
Priyanka Jain <priyanka.jain@nxp.com>
-
Bin Meng authored
Now that we have switched to CONFIG_OF_CONTROL, and we can use the env variable 'fdtcontroladdr' directly instead of creating one that is duplicated. Signed-off-by:
Bin Meng <bmeng.cn@gmail.com> Reviewed-by:
Priyanka Jain <priyanka.jain@nxp.com>
-
Bin Meng authored
After U-Boot is relocated to RAM already, the previous temporary FDT virtual-physical mapping that was used in the pre-relocation phase is no longer needed. Let's delete the mapping. get_fdt_virt() might be used before and after relocation, update it to return different virtual address of FDT. Signed-off-by:
Bin Meng <bmeng.cn@gmail.com> Reviewed-by:
Priyanka Jain <priyanka.jain@nxp.com>
-
Bin Meng authored
The QEMU ppce500 target integrates a Freescale I2C controller and has a Pericom pt7c4338 RTC connected to it. Enable corresponding DM drivers so that 'date' command is actually useful. Signed-off-by:
Bin Meng <bmeng.cn@gmail.com> Reviewed-by:
Priyanka Jain <priyanka.jain@nxp.com>
-
Bin Meng authored
The QEMU ppce500 target provides the power off functionality via the GPIO pin#0, and we can support this using the sysreset gpio poweroff driver. Let's enable it. Signed-off-by:
Bin Meng <bmeng.cn@gmail.com> Reviewed-by:
Priyanka Jain <priyanka.jain@nxp.com>
-
Bin Meng authored
sysreset uclass driver provides an implementation of 'reset' command using the sysreset_ APIs unconditionally. It also supports the 'poweroff' command using the sysreset_ APIs, but under a Kconfig option CONFIG_SYSRESET_CMD_POWEROFF. Let's do the same for the 'reset' command, by introducing a new Kconfig option CONFIG_SYSRESET_CMD_RESET, and set it to on by default, to allow a board that don't have a sysreset reset driver yet, but have a sysreset poweroff driver to compile without any issue. Signed-off-by:
Bin Meng <bmeng.cn@gmail.com> Reviewed-by:
Simon Glass <sjg@chromium.org> Reviewed-by:
Priyanka Jain <priyanka.jain@nxp.com>
-
Bin Meng authored
QEMU ppce500 target integrates a GPIO controller that is compatible with the QorIQ GPIO controller. Enable the DM GPIO driver for it and the 'gpio' command. Signed-off-by:
Bin Meng <bmeng.cn@gmail.com> Reviewed-by:
Priyanka Jain <priyanka.jain@nxp.com>
-
Bin Meng authored
dev_read_addr_size_index() returns fdt_addr_t which might be a 64-bit physical address. This might be true for some 85xx SoCs whose CCSBAR is mapped beyond 4 GiB. Signed-off-by:
Bin Meng <bmeng.cn@gmail.com> Reviewed-by:
Priyanka Jain <priyanka.jain@nxp.com>
-
Bin Meng authored
Without this, the DM GPIO driver for MPC8xxx does not compile for MPC85xx SoCs. Signed-off-by:
Bin Meng <bmeng.cn@gmail.com> Reviewed-by:
Priyanka Jain <priyanka.jain@nxp.com>
-
Bin Meng authored
Enable VirtIO BLK driver so that we can store a kernel image to a disk image and boot from there. Signed-off-by:
Bin Meng <bmeng.cn@gmail.com> Reviewed-by:
Priyanka Jain <priyanka.jain@nxp.com>
-
Bin Meng authored
The VirtIO BLK driver depends on the blk uclass driver. Add the dependency in the Kconfig. Signed-off-by:
Bin Meng <bmeng.cn@gmail.com> Reviewed-by:
Simon Glass <sjg@chromium.org> Reviewed-by:
Priyanka Jain <priyanka.jain@nxp.com>
-
Bin Meng authored
By default the QEMU ppce500 machine connects a VirtIO NET to the PCI controller, although it can be replaced to an e1000 NIC via additional command line options. Now that we have switched over to DM PCI, VirtIO support becomes possible. This commit enables the support. Signed-off-by:
Bin Meng <bmeng.cn@gmail.com> Reviewed-by:
Priyanka Jain <priyanka.jain@nxp.com>
-
Bin Meng authored
The 'virtio' command calls blk_common_cmd() which is only available when CONFIG_HAVE_BLOCK_DEVICE is on. Fix the Kconfig dependency. Signed-off-by:
Bin Meng <bmeng.cn@gmail.com> Reviewed-by:
Simon Glass <sjg@chromium.org> Reviewed-by:
Priyanka Jain <priyanka.jain@nxp.com>
-
Bin Meng authored
ft_board_setup() is now empty. Drop it. Signed-off-by:
Bin Meng <bmeng.cn@gmail.com> Reviewed-by:
Priyanka Jain <priyanka.jain@nxp.com>
-
Bin Meng authored
At present the board supports non-DM version PCI and E1000 drivers. Switch over to use DM ETH and PCI by: - Rewrite the PCI address map functions using DM APIs - Enable CONFIG_MISC_INIT_R to do the PCI initialization and address map - Drop unnecessary ad-hoc config macros - Remove board_eth_init() in the board codes Signed-off-by:
Bin Meng <bmeng.cn@gmail.com> Reviewed-by:
Simon Glass <sjg@chromium.org> Reviewed-by:
Priyanka Jain <priyanka.jain@nxp.com>
-
Bin Meng authored
At present the driver only supports 32-bit bus and cpu address. The controller's outbound registers/fields for extended address are not programmed. Let's program them to support 64-bit bus and cpu address. Signed-off-by:
Bin Meng <bmeng.cn@gmail.com> Reviewed-by:
Heiko Schocher <hs@denx.de> Reviewed-by:
Priyanka Jain <priyanka.jain@nxp.com>
-
Bin Meng authored
devfdt_get_addr_index() returns fdt_addr_t which might be a 64-bit physical address. Use map_physmem() to return the virtual address that can be used by a 32-bit machine. Signed-off-by:
Bin Meng <bmeng.cn@gmail.com> Reviewed-by:
Heiko Schocher <hs@denx.de> Reviewed-by:
Priyanka Jain <priyanka.jain@nxp.com>
-
Bin Meng authored
For the QEMU ppce500 machine, LAW registers are not implemented hence CONFIG_FSL_LAW is not turned on and all LAW APIs are not available. We should wrap all LAW registers programming in the mpc85xx PCI driver with CONFIG_FSL_LAW. Signed-off-by:
Bin Meng <bmeng.cn@gmail.com> Reviewed-by:
Heiko Schocher <hs@denx.de> Reviewed-by:
Priyanka Jain <priyanka.jain@nxp.com>
-
Bin Meng authored
The QEMU ppce500 target integrates 2 NS16550 serial ports. Switch over to use the DM version of the driver by: - drop unnecessary ad-hoc config macros - add get_serial_clock() in the board codes Signed-off-by:
Bin Meng <bmeng.cn@gmail.com> Reviewed-by:
Simon Glass <sjg@chromium.org> Reviewed-by:
Priyanka Jain <priyanka.jain@nxp.com>
-
Bin Meng authored
At present initr_addr_map() is put at a late stage in the init_sequence_r[] calls. This won't work because lot of device driver initialization (e.g.: serial port) happens before it but is lack of the address translation support. This moves the call to a bit earlier, right after the DM initialization. Signed-off-by:
Bin Meng <bmeng.cn@gmail.com> Reviewed-by:
Simon Glass <sjg@chromium.org> Reviewed-by:
Priyanka Jain <priyanka.jain@nxp.com>
-
Bin Meng authored
In phys_to_virt() and virt_to_phys(), if CONFIG_ADDR_MAP is defined, they use addrmap_ translation APIs to do the address translation. However these APIs only work in post-relocation phase. Update the code logic to fall back to use the default one when in pre-relocation phase. Signed-off-by:
Bin Meng <bmeng.cn@gmail.com> Reviewed-by:
Priyanka Jain <priyanka.jain@nxp.com>
-
Bin Meng authored
Mention that CONFIG_ADDR_MAP only works in the post-relocation phase. Signed-off-by:
Bin Meng <bmeng.cn@gmail.com> Reviewed-by:
Simon Glass <sjg@chromium.org> Reviewed-by:
Priyanka Jain <priyanka.jain@nxp.com>
-
Bin Meng authored
This adds a basic test for the newly introduced 'addrmap' command. Signed-off-by:
Bin Meng <bmeng.cn@gmail.com> Reviewed-by:
Simon Glass <sjg@chromium.org> [Rebase] Signed-off-by:
Priyanka Jain <priyanka.jain@nxp.com>
-
Bin Meng authored
This adds a new command 'addrmap' to display the address map for non-identity virtual-physical memory mappings. Signed-off-by:
Bin Meng <bmeng.cn@gmail.com> Reviewed-by:
Simon Glass <sjg@chromium.org> Reviewed-by:
Priyanka Jain <priyanka.jain@nxp.com>
-
Bin Meng authored
At present address_map[] is static and its type is unknown to external modules. In preparation to create a command to list its contents, this patch moves its type definition and declaration to the header file. Signed-off-by:
Bin Meng <bmeng.cn@gmail.com> Reviewed-by:
Simon Glass <sjg@chromium.org> Reviewed-by:
Priyanka Jain <priyanka.jain@nxp.com>
-
Bin Meng authored
Remove the extern of the header because they are useless. Signed-off-by:
Bin Meng <bmeng.cn@gmail.com> Reviewed-by:
Simon Glass <sjg@chromium.org> Reviewed-by:
Priyanka Jain <priyanka.jain@nxp.com>
-
Bin Meng authored
At present QEMU ppce500 target has not been migrated to driver model yet. As a start, let's enable driver model and the 'dm' command. Signed-off-by:
Bin Meng <bmeng.cn@gmail.com> Reviewed-by:
Simon Glass <sjg@chromium.org> Reviewed-by:
Priyanka Jain <priyanka.jain@nxp.com>
-
Bin Meng authored
The QEMU ppce500 machine generates a device tree blob and passes it to U-Boot during boot. Let's enable OF_CONTROL with OF_BOARD and provide board_fdt_blob_setup() in the board codes. Signed-off-by:
Bin Meng <bmeng.cn@gmail.com> Reviewed-by:
Simon Glass <sjg@chromium.org> Reviewed-by:
Priyanka Jain <priyanka.jain@nxp.com>
-
Bin Meng authored
This function does nothing. Drop it. Signed-off-by:
Bin Meng <bmeng.cn@gmail.com> Reviewed-by:
Priyanka Jain <priyanka.jain@nxp.com>
-
Bin Meng authored
These are no longer needed. Drop them. Signed-off-by:
Bin Meng <bmeng.cn@gmail.com> Reviewed-by:
Priyanka Jain <priyanka.jain@nxp.com>
-
Bin Meng authored
LAW related codes should be wrapped with CONFIG_FSL_LAW. Signed-off-by:
Bin Meng <bmeng.cn@gmail.com> Reviewed-by:
Priyanka Jain <priyanka.jain@nxp.com>
-
Bin Meng authored
CONFIG_SYS_PCI_MAP_END currently points to 0xe8000000, which means the upper end of the virtual address mapped to PCI bus address ends at 0xe8000000. But this is wrong as the CCSBAR was already mapped at 0xe0000000 with a 1 MiB size. Fixes: fa08d395 ("PPC 85xx: Add qemu-ppce500 machine") Signed-off-by:
Bin Meng <bmeng.cn@gmail.com> Reviewed-by:
Priyanka Jain <priyanka.jain@nxp.com>
-
Bin Meng authored
When QEMU originally supported the ppce500 machine back in Jan 2014, it was created with a 1:1 mapping of PCI bus address. Things seemed to change rapidly that in Nov 2014 with the following QEMU commits: commit e6b4e5f4795b ("PPC: e500: Move CCSR and MMIO space to upper end of address space") and commit cb3778a0455a ("PPC: e500 pci host: Add support for ATMUs") the PCI memory and IO physical address were moved to beyond 4 GiB, but PCI bus address remained below 4 GiB, hence a non-identity mapping was created. Unfortunately corresponding U-Boot updates were missed along with the QEMU changes and the U-Boot QEMU ppce500 PCI support has been broken since then. This commit makes the PCI (non-DM version) work again. Signed-off-by:
Bin Meng <bmeng.cn@gmail.com> Reviewed-by:
Priyanka Jain <priyanka.jain@nxp.com>
-
Bin Meng authored
At present fdt_read_prop() can only handle 1 or 2 cells. It is called by fdt_read_range() which may be used to read PCI address from <ranges> for a PCI bus node where the number of PCI address cell is 3. The <ranges> property is an array of: { <child address> <parent address> <size in child address space> } When trying to read <child address> from a PCI bus node using fdt_read_prop(), as the codes below: /* Read <child address> */ if (child_addr) { r = fdt_read_prop(ranges, ranges_len, cell, child_addr, acells); if (r) return r; } it will fail, because the PCI child address is made up of 3 cells but fdt_read_prop() cannot handle it. We advance the cell offset by 1 so that the <child address> can be correctly read. This adds the special handling of such case. Signed-off-by:
Bin Meng <bmeng.cn@gmail.com> Reviewed-by:
Simon Glass <sjg@chromium.org> Reviewed-by:
Priyanka Jain <priyanka.jain@nxp.com>
-