| #
2f96fde5 |
| 04-Feb-2025 |
Joseph Chen <chenjh@rock-chips.com> |
common: Add smp boot support
smp.S from u-boot-tb: #248761 (rk3576: mos: smp.c for dual boot device)
Change-Id: I0f82619f51696b6460f12fcf7912a4a1bfd05746 Signed-off-by: Joseph Chen <chenjh@rock-chi
common: Add smp boot support
smp.S from u-boot-tb: #248761 (rk3576: mos: smp.c for dual boot device)
Change-Id: I0f82619f51696b6460f12fcf7912a4a1bfd05746 Signed-off-by: Joseph Chen <chenjh@rock-chips.com>
show more ...
|
| #
5905ccea |
| 11-Sep-2023 |
Rasmus Villemoes <rasmus.villemoes@prevas.dk> |
UPSTREAM: fdt_support: add optional board_rng_seed() hook
A recurring theme on LKML is the boot process deadlocking due to some process blocking waiting for random numbers, while the kernel's Crypto
UPSTREAM: fdt_support: add optional board_rng_seed() hook
A recurring theme on LKML is the boot process deadlocking due to some process blocking waiting for random numbers, while the kernel's Cryptographic Random Number Generator (crng) is not initalized yet, but that very blocking means no activity happens that would generate the entropy necessary to finalize seeding the crng.
This is not a problem on boards that have a good hwrng (when the kernel is configured to trust it), whether in the CPU or in a TPM or elsewhere. However, that's far from all boards out there. Moreover, there are consumers in the kernel that try to obtain random numbers very early, before the kernel has had any chance to initialize any hwrng or other peripherals.
Allow a board to provide a board_rng_seed() function, which is responsible for providing a value to be put into the rng-seed property under the /chosen node.
The board code is responsible for how to actually obtain those bytes.
- One possibility is for the board to load a seed "file" from somewhere (it need not be a file in a filesystem of course), and then ensure that that the same seed file does not get used on subsequent boots.
* One way to do that is to delete the file, or otherwise mark it as invalid, then rely on userspace to create a new one, and living with the possibility of not finding a seed file during some boots.
* Another is to use the scheme used by systemd-boot and create a new seed file immediately, but in a way that the seed passed to the kernel and the new (i.e. next) seed cannot be deduced from each other, see the explanation at https://lore.kernel.org/lkml/20190929090512.GB13049@gardel-login/ and the current code at https://github.com/systemd/systemd/blob/main/src/boot/efi/random-seed.c
- The board may have an hwrng from which some bytes can be read; while the kernel can also do that, doing it in U-Boot and providing a seed ensures that even very early users in the kernel get good random numbers.
- If the board has a sensor of some sort (temperature, humidity, GPS, RTC, whatever), mixing in a reading of that doesn't hurt.
- etc. etc.
These can of course be combined.
The rng-seed property is mixed into the pool used by the linux kernel's CRNG very early during boot. Whether it then actually contributes towards the kernel considering the CRNG initialized depends on whether the kernel has been configured with CONFIG_RANDOM_TRUST_BOOTLOADER (nowadays overridable via the random.trust_bootloader command line option). But that's for the BSP developer to ultimately decide.
So, if the board needs to have all that logic, why not also just have it do the actual population of /chosen/rng-seed in ft_board_setup(), which is not that many extra lines of code?
I considered that, but decided handling this logically belongs in fdt_chosen(). Also, apart from saving the board code from the few lines of boilerplate, doing it in ft_board_setup() is too late for at least some use cases. For example, I want to allow the board logic to decide
ok, let's pass back this buffer and use that as seed, but also let's set random.trust_bootloader=n so no entropy is credited.
This requires the rng-seed handling to happen before bootargs handling. For example, during the very first boot, the board might not have a proper seed file, but the board could still return (a hash of) some CPU serial# or whatnot, so that at least no two boards ever get the same seed - the kernel always mixes in the value passed in rng-seed, but if it is not "trusted", the kernel would still go through the same motions as it would if no rng-seed was passed before considering its CRNG initialized. I.e., by returning that unique-to-this-board value and setting random.trust_bootloader=n, the board would be no worse off than if board_rng_seed() returned nothing at all.
Signed-off-by: Rasmus Villemoes <rasmus.villemoes@prevas.dk> (cherry picked from commit 6dca1d9ad38de9b7f9a44d2c6eaa6acf9be6c2c0) Change-Id: I9838bccc384ff6d52505ed48815f8e599f0a7ee1 Signed-off-by: Joseph Chen <chenjh@rock-chips.com>
show more ...
|
| #
36c449fe |
| 17-May-2023 |
Joseph Chen <chenjh@rock-chips.com> |
common: Add MP boot support
mp_boot build from: a5185c920.
Signed-off-by: Joseph Chen <chenjh@rock-chips.com> Change-Id: I8f8b2fe45ee87ad0a60e1dfd6f0950f052d4f1e7
|
| #
3e344c46 |
| 11-Feb-2022 |
Jason Zhu <jason.zhu@rock-chips.com> |
common: android: add ANDROID_AVB_ROLLBACK_INDEX
Add ANDROID_AVB_ROLLBACK_INDEX to support the android verified boot rollback index.
Signed-off-by: Jason Zhu <jason.zhu@rock-chips.com> Change-Id: I3
common: android: add ANDROID_AVB_ROLLBACK_INDEX
Add ANDROID_AVB_ROLLBACK_INDEX to support the android verified boot rollback index.
Signed-off-by: Jason Zhu <jason.zhu@rock-chips.com> Change-Id: I324fc251e4680fed48672bcec15a59a74f529e62
show more ...
|
| #
1af1a3cf |
| 21-Oct-2021 |
Jason Zhu <jason.zhu@rock-chips.com> |
common: Kconfig: add android features support menu
So that the configs can be selected when execute "make menuconfig".
Signed-off-by: Jason Zhu <jason.zhu@rock-chips.com> Change-Id: Ia785c383da123c
common: Kconfig: add android features support menu
So that the configs can be selected when execute "make menuconfig".
Signed-off-by: Jason Zhu <jason.zhu@rock-chips.com> Change-Id: Ia785c383da123c16ad6cb773ccd57d6240ff1fa5
show more ...
|
| #
9590331b |
| 03-Mar-2021 |
Joseph Chen <chenjh@rock-chips.com> |
common: Kconfig: add dependent for SKIP_RELOCATE_UBOOT
If armv8 aarch32 mode, don't skip reloc. It avoids kernel image overlay U-Boot address.
Signed-off-by: Joseph Chen <chenjh@rock-chips.com> Cha
common: Kconfig: add dependent for SKIP_RELOCATE_UBOOT
If armv8 aarch32 mode, don't skip reloc. It avoids kernel image overlay U-Boot address.
Signed-off-by: Joseph Chen <chenjh@rock-chips.com> Change-Id: I7a74631cb9690f861be6da6b44dc2ead7a0a0569
show more ...
|
| #
a78c1921 |
| 18-Jun-2020 |
Joseph Chen <chenjh@rock-chips.com> |
common: iotrace: do optimize
Signed-off-by: Joseph Chen <chenjh@rock-chips.com> Change-Id: I260f46e744a4059ba5b3022586c26910187606eb
|
| #
558b8198 |
| 15-Jun-2020 |
Joseph Chen <chenjh@rock-chips.com> |
dm: serial: introduce DEBUG_UART_ALWAYS_MODE configure
Rename CONSOLE_SERIAL_SKIP_INIT to DEBUG_UART_ALWAYS_MODE for easy understand.
Select this to always use debug UART, skip complicated console
dm: serial: introduce DEBUG_UART_ALWAYS_MODE configure
Rename CONSOLE_SERIAL_SKIP_INIT to DEBUG_UART_ALWAYS_MODE for easy understand.
Select this to always use debug UART, skip complicated console UART register.
Signed-off-by: Joseph Chen <chenjh@rock-chips.com> Change-Id: I3c265840bde015fe5fd7c73d959ba0538297b7c2
show more ...
|
| #
4a2b8db4 |
| 19-May-2020 |
Joseph Chen <chenjh@rock-chips.com> |
common: add usbplug support
- disable some message - add "usbplug.bin" generation - add minimum usbplug dtb support - add individual board_init_r() init sequence.
Signed-off-by: Joseph Chen <chenjh
common: add usbplug support
- disable some message - add "usbplug.bin" generation - add minimum usbplug dtb support - add individual board_init_r() init sequence.
Signed-off-by: Joseph Chen <chenjh@rock-chips.com> Change-Id: If48ee49247fca6108db3a1fbab3b403241b3a8eb
show more ...
|
| #
d45e5655 |
| 19-May-2020 |
Joseph Chen <chenjh@rock-chips.com> |
dm: serial: allow skip console serial init
Always use debug uart.
Signed-off-by: Joseph Chen <chenjh@rock-chips.com> Change-Id: Id751856abd7be219e8acb4c5986469a804051934
|
| #
9d4243d3 |
| 10-Apr-2020 |
Joseph Chen <chenjh@rock-chips.com> |
Merge branch 'next-dev' into thunder-boot
|
| #
e7be2a07 |
| 10-Apr-2020 |
Joseph Chen <chenjh@rock-chips.com> |
Kconfig: disable CLI for verified-boot
Signed-off-by: Joseph Chen <chenjh@rock-chips.com> Change-Id: I09acae3dda1a886629d0f9901b4c95059cdd8b42
|
| #
4103a11c |
| 30-Mar-2020 |
Joseph Chen <chenjh@rock-chips.com> |
Merge branch 'next-dev' into thunder-boot
|
| #
37526a51 |
| 28-Mar-2020 |
Joseph Chen <chenjh@rock-chips.com> |
common: support disable CLI for verified-boot
Not allow any interactive from CLI.
Signed-off-by: Joseph Chen <chenjh@rock-chips.com> Change-Id: I207da3f2c54df1a81100c404f045023ac763da73
|
| #
7497bc3d |
| 13-Mar-2020 |
Joseph Chen <chenjh@rock-chips.com> |
Merge branch 'next-dev' into thunder-boot
Change-Id: I35db1f0aa79575e972942b5c366f380fc8106343
|
| #
c15f3075 |
| 04-Mar-2020 |
Joseph Chen <chenjh@rock-chips.com> |
arm: Kconfig: default select SKIP_RELOCATE_UBOOT if !ARM64
Remove select from rockchip Kconfig.
Some 32-bit platforms needs relocation to support non-compressed kernel image.
Signed-off-by: Joseph
arm: Kconfig: default select SKIP_RELOCATE_UBOOT if !ARM64
Remove select from rockchip Kconfig.
Some 32-bit platforms needs relocation to support non-compressed kernel image.
Signed-off-by: Joseph Chen <chenjh@rock-chips.com> Change-Id: I0b60b79d7c67c5bd8439bd55bb277522c74a8bdd
show more ...
|
| #
1a4f6af8 |
| 02-Mar-2020 |
Joseph Chen <chenjh@rock-chips.com> |
Merge branch 'next-dev' into thunder-boot
|
| #
c484df2f |
| 09-Dec-2019 |
Joseph Chen <chenjh@rock-chips.com> |
common: android: refactor image load and sha1 verify
Unify single image load/memcpy to image_read(), containing sha1 update.
Not support verify image by RK legacy mkbootimg tools.
Signed-off-by: J
common: android: refactor image load and sha1 verify
Unify single image load/memcpy to image_read(), containing sha1 update.
Not support verify image by RK legacy mkbootimg tools.
Signed-off-by: Joseph Chen <chenjh@rock-chips.com> Change-Id: Ide88d2dda79f3335a6c34e41bdce56eac0d66408
show more ...
|
| #
3f7fb06b |
| 26-Nov-2019 |
Joseph Chen <chenjh@rock-chips.com> |
common: android: make image separate load mandory
Since this feature is stable and helpful to save boot time, let't make it mandory.
Signed-off-by: Joseph Chen <chenjh@rock-chips.com> Change-Id: I3
common: android: make image separate load mandory
Since this feature is stable and helpful to save boot time, let't make it mandory.
Signed-off-by: Joseph Chen <chenjh@rock-chips.com> Change-Id: I36f244c6d319d6b54ed3d54730352c8d5b4cc6bd
show more ...
|
| #
c641fb24 |
| 25-Nov-2019 |
Joseph Chen <chenjh@rock-chips.com> |
common: Kconfig: select SHA1 if !DM_CRYPTO for android image verify
Signed-off-by: Joseph Chen <chenjh@rock-chips.com> Change-Id: Id010fe3e5947ad19fdba8a2dd97f421d83282105
|
| #
0cb72e53 |
| 18-Jul-2019 |
Joseph Chen <chenjh@rock-chips.com> |
common: android: add image hash verify support
- mkbootimg tool always use SHA1 for images; - make the the crypto higher priority; - AVB images does not need this verify;
Change-Id: I543a3a53da61b9
common: android: add image hash verify support
- mkbootimg tool always use SHA1 for images; - make the the crypto higher priority; - AVB images does not need this verify;
Change-Id: I543a3a53da61b920b83ba464a71959518437c436 Signed-off-by: Joseph Chen <chenjh@rock-chips.com>
show more ...
|
| #
92da45ec |
| 24-Jul-2019 |
Kever Yang <kever.yang@rock-chips.com> |
treewide: Migrate CONFIG_BOARD_EARLY_INIT_R to Kconfig
Migrate the CONFIG_BOARD_EARLY_INIT_R option to Kconfig.
Signed-off-by: Mario Six <mario.six@gdsys.cc> Signed-off-by: Kever Yang <kever.yang@r
treewide: Migrate CONFIG_BOARD_EARLY_INIT_R to Kconfig
Migrate the CONFIG_BOARD_EARLY_INIT_R option to Kconfig.
Signed-off-by: Mario Six <mario.six@gdsys.cc> Signed-off-by: Kever Yang <kever.yang@rock-chips.com>
Change-Id: I92483d7ecb8f2449eda4b3cdd3bc5ede45ae6c8d
show more ...
|
| #
c7abde10 |
| 16-Jul-2019 |
Joseph Chen <chenjh@rock-chips.com> |
common: console: support disable console in & out
Set CONFIG_DISABLE_CONSOLE priority higher than CONFIG_DEBUG_UART, otherwise there maybe some early message is printed by CONFIG_DEBUG_UART.
Change
common: console: support disable console in & out
Set CONFIG_DISABLE_CONSOLE priority higher than CONFIG_DEBUG_UART, otherwise there maybe some early message is printed by CONFIG_DEBUG_UART.
Change-Id: I235a49646b154e10e724e3d63e0ceecdd862c636 Signed-off-by: Joseph Chen <chenjh@rock-chips.com>
show more ...
|
| #
5bb5aa82 |
| 30-Apr-2019 |
Joseph Chen <chenjh@rock-chips.com> |
common: console: optimize console record
- fix: passing argument 1 of ‘membuff_new’ discards ‘volatile’ qualifier from pointer target type; - add console_record_print_purge(); - set default CONSOLE_
common: console: optimize console record
- fix: passing argument 1 of ‘membuff_new’ discards ‘volatile’ qualifier from pointer target type; - add console_record_print_purge(); - set default CONSOLE_RECORD_OUT_SIZE value for rockchip;
Change-Id: Id247d590b677cd2cff95bc5e66963b0ff07b0658 Signed-off-by: Joseph Chen <chenjh@rock-chips.com>
show more ...
|
| #
590d13d7 |
| 08-Mar-2019 |
Joseph Chen <chenjh@rock-chips.com> |
console: add CONFIG_CONSOLE_DISABLE_CTRLC to disable ctrlc
There are sometimes we would like to disable ctrlc, just enable it.
Change-Id: I2911650b22d47b057a039774d8293cad6317bb6d Signed-off-by: Jo
console: add CONFIG_CONSOLE_DISABLE_CTRLC to disable ctrlc
There are sometimes we would like to disable ctrlc, just enable it.
Change-Id: I2911650b22d47b057a039774d8293cad6317bb6d Signed-off-by: Joseph Chen <chenjh@rock-chips.com>
show more ...
|