Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
9 changes: 9 additions & 0 deletions build_sdk.py
Original file line number Diff line number Diff line change
Expand Up @@ -317,6 +317,15 @@ class ConfigInfo:
"KernelPlatform": "rockpro64",
} | DEFAULT_KERNEL_OPTIONS_AARCH64,
),
BoardInfo(
name="rock3b",
arch=KernelArch.AARCH64,
gcc_cpu="cortex-a55",
loader_link_address=0x30000000,
kernel_options={
"KernelPlatform": "rk3568",
} | DEFAULT_KERNEL_OPTIONS_AARCH64,
),
BoardInfo(
name="hifive_p550",
arch=KernelArch.RISCV64,
Expand Down
14 changes: 14 additions & 0 deletions docs/manual.md
Original file line number Diff line number Diff line change
Expand Up @@ -1140,6 +1140,7 @@ The currently supported platforms are:
* qemu_virt_aarch64
* qemu_virt_riscv64
* rockpro64
* rock3b
* rpi4b_1gb
* rpi4b_2gb
* rpi4b_4gb
Expand Down Expand Up @@ -1379,6 +1380,19 @@ Microkit will produce a raw binary file by default, so when using U-Boot run the

=> go 0x30000000

## Radxa Rock3b {#rock3b}

Support is available for the Radxa Rock3b platform which is based on the Rockchip rk3568 SoC.

Since the platform relies on some closed-source binary blobs for first stage bootloader and then ARM's TrustZone A, we need to compile the U-Boot including these images. Detailed instructions on how to do that are avalilable [here](https://docs.sel4.systems/Hardware/rock3b.html).

Once the proper U-Boot image is in place, you can simply load the `loader.img` on the board and run it like that (this is assuming you have the TFTP server set up):

=> tftp 0x02000000 loader.img
=> go 0x02000000

For more booting options, please refer to the seL4 [board setup guide](https://docs.sel4.systems/Hardware/rock3b.html).

## Pine64 Star64 {#star64}

Support is available for the Pine64 Star64 platform which is based on the
Expand Down
12 changes: 12 additions & 0 deletions loader/src/uart.c
Original file line number Diff line number Diff line change
Expand Up @@ -169,7 +169,19 @@ void putc(uint8_t ch)
while ((*UART_REG(ULSR) & ULSR_THRE) == 0);
*UART_REG(UTHR) = ch;
}
#elif defined(CONFIG_PLAT_RK3568)
#define UART_BASE 0xfe660000
#define UTHR 0x0
#define ULSR 0x14
#define ULSR_THRE (1 << 5)

void uart_init(void) {}

void putc(uint8_t ch)
{
while ((*UART_REG(ULSR) & ULSR_THRE) == 0);
*UART_REG(UTHR) = ch;
}
#elif defined(CONFIG_ARCH_RISCV64)

#include "riscv/sbi.h"
Expand Down
Loading