- 07 Jun, 2017 6 commits
-
-
Generate a MAC address based on the cpuid available in the efuse block: Use the first 6 byte of the cpuid's SHA256 hash and set the locally administered bits. Also ensure that the multicast bit is cleared. The MAC address is only generated and set if there is no ethaddr present in the saved environment. Signed-off-by:
Klaus Goger <klaus.goger@theobroma-systems.com> Signed-off-by:
Philipp Tomsich <philipp.tomsich@theobroma-systems.com> Reviewed-by:
Simon Glass <sjg@chromium.org>
-
With our efuse driver for the RK3399 ready, we can add the board-specific code that consumes the cpuid from the efuse block and postprocesses it into the system serial (using the same CRC32 based derivation as in Linux). We expose the cpuid via two distinct environment variables: serial# - the serial number, as derived in Linux cpuid# - the raw 16 byte CPU id field from the fuse block Signed-off-by:
Philipp Tomsich <philipp.tomsich@theobroma-systems.com> Acked-by:
Simon Glass <sjg@chromium.org>
-
This adds a simple driver for reading the efuse block of the RK3399. It should be easy enough to add drivers for other devices (e.g. the RK3328, RK3368, etc.) by passing the device details via driver_data. Unlike the kernel driver (using the nvmem subsystem), we don't expose the efuse as multiple named cells, but rather as a linear memory that can be read using misc_read(...). The primary use case (as of today) is the generation of a 'serial#' (and a 'cpuid#') environment variable for the RK3399-Q7 (Puma) system-on-module. Note that this adds a debug-only (i.e. only if DEBUG is defined) command 'rk3399_dump_efuses' that dumps the efuse block's content. N.B.: The name 'rk3399_dump_efuses' was intentionally chosen to include a SoC-name (together with a comment in the function) to remind whoever adds support for additional SoCs that this function currently makes assumptions regarding the size of the fuse-box based on the RK3399. The hope is that the function is adjusted to reflect any changes resulting from generalising the driver for multiple SoCs and is then renamed. Signed-off-by:
Philipp Tomsich <philipp.tomsich@theobroma-systems.com> Reviewed-by:
Simon Glass <sjg@chromium.org>
-
The rk8xx_priv structure need to allocate for driver, or else it will cause data abort when CPU access it. This is a bug fix for below patch set: https://www.mail-archive.com/u-boot@lists.denx.de/msg247345.html Signed-off-by:
Kever Yang <kever.yang@rock-chips.com> Acked-by:
Simon Glass <sjg@chromium.org>
-
Some host like SD and eMMC may use DMA to transter data to SRAM, set memory to non-secure to make sure the address can be accessed. The security of SRAM in OS suppose to initialized in ATF bl31, and the SPL is before the bl31. Signed-off-by:
Kever Yang <kever.yang@rock-chips.com> Acked-by:
Simon Glass <sjg@chromium.org>
-
The option is named PINCTRL_ROCKCHIP_RK3399 not ROCKCHIP_RK3399_PINCTRL. Set the correct option. Signed-off-by:
Heiko Stuebner <heiko@sntech.de> Acked-by:
Simon Glass <sjg@chromium.org>
-
- 06 Jun, 2017 4 commits
-
-
git://git.denx.de/u-boot-ubiTom Rini authored
-
This patch fixes the below warning by typecasting it properly fs/ubifs/ubifs.c: In function 'ubifs_load': fs/ubifs/ubifs.c:942:29: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast] err = ubifs_read(filename, (void *)addr, 0, size, &actread); Signed-off-by:
Siva Durga Prasad Paladugu <sivadur@xilinx.com> Signed-off-by:
Michal Simek <michal.simek@xilinx.com> Reviewed-by:
Heiko Schocher <hs@denx.de>
-
git://git.denx.de/u-boot-usbTom Rini authored
-
Tom Rini authored
Signed-off-by:
Tom Rini <trini@konsulko.com>
-
- 05 Jun, 2017 30 commits
-
-
The branch instruction only has an 11-bit relative target address, which is sometimes not enough. Signed-off-by:
Phil Edworthy <phil.edworthy@renesas.com>
-
Rather than change asm files that come from Linux, add the symbols to Kconfig. Since one of the symbols is for thumb2 builds, make CPU_V7M always select them. Signed-off-by:
Phil Edworthy <phil.edworthy@renesas.com>
-
Fix inaccurate instructions in README. Signed-off-by:
Michal Simek <michal.simek@xilinx.com>
-
If CONFIG_CLK flag is not set, compilation raises the following error message: drivers/ram/stm32_sdram.c: In function 'stm32_fmc_probe': drivers/ram/stm32_sdram.c:154:2: error: 'ret' undeclared (first use in this function) ret = stm32_sdram_init(dev); Signed-off-by:
Patrice Chotard <patrice.chotard@st.com> cc: Vikas Manocha <vikas.manocha@st.com>
-
Mark explicitly bss sections to not be loaded at run time. The similar patch was done in past by: "Fix linker scripts: add NOLOAD atribute to .bss/.sbss sections" (sha1: 64134f01 ) The problem is related to latest toolchain added to Xilinx v2017.1 design tools where jtag loader is trying to access ununitialized memory. Signed-off-by:
Michal Simek <michal.simek@xilinx.com>
-
Add support for calling poweroff in case of psci is wired. Based on the same solution as is used for reset. Signed-off-by:
Michal Simek <michal.simek@xilinx.com> Reviewed-by:
Simon Glass <sjg@chromium.org> [trini: Move all logic in to fwcall.c as other ARMs implement poweroff via PMIC] Signed-off-by:
Tom Rini <trini@konsulko.com>
-
Tom Rini authored
With clang-3.8 we see warnings like: cmd/ethsw.c:304:6: warning: implicit conversion from enumeration type 'enum ethsw_keyword_opt_id' to different enumeration type 'enum ethsw_keyword_id' [-Wenum-conversion] ethsw_id_pvid_no, ^~~~~~~~~~~~~~~~ Because we have one enum for ethsw_keyword_id and a second enum for ethsw_keyword_opt_id. This ends up being safe as ethsw_keyword_opt_id explicitly starts after ethsw_keyword_id enum ends. Disable the warning here rather than collapse these into one enum and rely on comments to denote where optional keywords begin. Cc: Codrin Ciubotariu <codrin.ciubotariu@freescale.com> Cc: Joe Hershberger <joe.hershberger@ni.com> Signed-off-by:
Tom Rini <trini@konsulko.com> Acked-by:
Joe Hershberger <joe.hershberger@ni.com>
-
Unit tests require mallinfo which in turn requires DEBUG on dlmalloc to be enabled. The dependancy on CONFIG_SANDBOX is wrong. Signed-off-by:
Pantelis Antoniou <pantelis.antoniou@konsulko.com> Reviewed-by:
Tom Rini <trini@konsulko.com> Reviewed-by:
Simon Glass <sjg@chromium.org>
-
The dtb blob section must always be present in the resulting image. Either if OF_EMBEDED is used or if unit tests include dtb blobs. Signed-off-by:
Pantelis Antoniou <pantelis.antoniou@konsulko.com> Reviewed-by:
Tom Rini <trini@konsulko.com> Reviewed-by:
Simon Glass <sjg@chromium.org>
-
Update vcores for am571-idk board. Reported-by:
Steve Kipisz <s-kipisz2@ti.com> Signed-off-by:
Keerthy <j-keerthy@ti.com> Signed-off-by:
Lokesh Vutla <lokeshvutla@ti.com> Reviewed-by:
Tom Rini <trini@konsulko.com>
-
Tom Rini authored
We only want to apply files such as 'omap5-u-boot.dtsi', which resides in arch/arm/dts/ to other files in arch/arm/dts/ and not say test/overlay/. Rework the make logic to check for -u-boot.dtsi files in the same directory as their target dts. Cc: Simon Glass <sjg@chromium.org> Reported-by:
Pantelis Antoniou <pantelis.antoniou@konsulko.com> Signed-off-by:
Tom Rini <trini@konsulko.com> Tested-by:
Pantelis Antoniou <pantelis.antoniou@konsulko.com> Reviewed-by:
Simon Glass <sjg@chromium.org>
-
The problems with the current DFU layout are: MMC: The space allocated for u-boot is too small for the latest u-boot (>750KB). We need to increase it. eMMC uses a much bigger area (2MB). eMMC: region "u-boot.img.raw" overlaps the environment area and the region "spl-os-image.raw". both: region "spl-os-image.raw" is quite small and can't handle android kernels Fixing this requires growing some regions and moving others. Care has been taken to leave some room for further growth of "spl-os-args.raw". Also the "env" now appears in the dfu so that it's apparent that the region is not free space that can be used to grow "u-boot.img.raw". The MLO region is 0x100 sectors wide but the 0x100 are unused in case the MLO comes too overflow this areas. The total space allocated for those raw binaries is 16MB, of which 13+MB are reserved for the kernel image. Signed-off-by:
Jean-Jacques Hiblot <jjhiblot@ti.com> Reviewed-by:
Tom Rini <trini@konsulko...>
-
Tom Rini authored
Much of the entries here simply depend on SPL (or TPL). Instead of this redundancy use if SPL / if TPL to guard the rest of the choices and only show them when we have the relevant option enabled. Signed-off-by:
Tom Rini <trini@konsulko.com>
-
This time is interesting as a comparision with the flat device tree time. Add it to the record. Signed-off-by:
Simon Glass <sjg@chromium.org>
-
At present bootstage only supports U-Boot proper. But SPL can also consume boot time so it is useful to have the record start there. Add bootstage support to SPL. Also support stashing the timing information when SPL finishes so that it can be picked up and reported by U-Boot proper. This provides a full boot time record, excluding only the time taken by the boot ROM. Signed-off-by:
Simon Glass <sjg@chromium.org>
-
There are a few places that should use const *, such as bootstage_unstash(). Update these to make it clearer when parameters are changed. Signed-off-by:
Simon Glass <sjg@chromium.org>
-
We should return a proper error number instead of just -1. This helps the caller to determine what when wrong. Update a few functions to fix this. Signed-off-by:
Simon Glass <sjg@chromium.org>
-
Driver model is set up ones before relocation and once after. Record the time taken in each case. Signed-off-by:
Simon Glass <sjg@chromium.org>
-
At present we don't allow use of bootstage before driver model is running. This means we cannot time the init of driver model itself. Now that bootstage requires its own board-specific timer, we can move its init to earlier in the sequence, both before and after relocation. Signed-off-by:
Simon Glass <sjg@chromium.org>
-
Some boards cannot access pre-relocation data after relocation. Reserve space for this and copy it during preparation for relocation. Signed-off-by:
Simon Glass <sjg@chromium.org>
-
We don't normally want to see these messages. Change them to debug-only. Signed-off-by:
Simon Glass <sjg@chromium.org>
-
We can now use the record count to determine whether a record is valid or not. Drop the test for a zero time. Signed-off-by:
Simon Glass <sjg@chromium.org>
-
At present bootstage has a large array with all possible bootstage IDs recorded. It adds times to the array element indexed by the ID. This is inefficient because many IDs are not used during boot. We can save space by only recording those IDs which actually have timestamps. Update the array to use a record count, which increments with each addition of a new timestamp. This takes longer to record a time, since it may involve an array search. Such a search may be particularly expensive before relocation when the CPU is running slowly or the cache is off. But at that stage there should be very few records. Signed-off-by:
Simon Glass <sjg@chromium.org>
-
There are several code style and comment nits. Fix them and also remove the comment about passing bootstage to the kernel being TBD. This is already supported. Signed-off-by:
Simon Glass <sjg@chromium.org>
-
At present bootstage uses the data section of the image to store its information. There are a few problems with this: - It does not work on all boards (e.g. those which run from flash before relocation) - Allocated strings still point back to the pre-relocation data after relocation Now that U-Boot has a pre-relocation malloc() we can use this instead, with a pointer to the data in global_data. Update bootstage to do this and set up an init routine to allocate the memory. Now that we have a real init function, we can drop the fake 'reset' record and add a normal one instead. Note that part of the problem with allocated strings remains. They are reallocated but this will only work where pre-relocation memory is accessible after relocation. Signed-off-by:
Simon Glass <sjg@chromium.org>
-
There is no good read to make this hex, and integer is more natural for this type of setting. Update it. Signed-off-by:
Simon Glass <sjg@chromium.org>
-
At present we provide a default version of this function for use by bootstage. However it uses the system timer and therefore likely requires driver model. This makes it impossible to time driver-model init. Drop the function and require boards to provide their own. Add a sandbox version also. There is a default implememtation in lib/time.c for boards which use CONFIG_SYS_TIMER_COUNTER. Signed-off-by:
Simon Glass <sjg@chromium.org>
-
If CONFIG_SYS_TIMER_COUNTER is used we can provide a default microsecond timer implementation. Signed-off-by:
Simon Glass <sjg@chromium.org>
-
Main pll is marked as arm plls for higher speeds. Fix this. Signed-off-by:
Lokesh Vutla <lokeshvutla@ti.com>
-
Tom Rini authored
The bootelf command could, but does not, pass additional arguments along on the command line. Make do_bootelf consume bootelf/flags/address as needed and then pass along anything else to the ELF application we've launched. Reported-by:
Thomas Doerfler <thomas.doerfler@embedded-brains.de> Signed-off-by:
Tom Rini <trini@konsulko.com>
-