project:build.sh: Added fastboot support; custom modifications to U-Boot and kernel implemented using patches.

project:cfg:BoardConfig_IPC: Added fastboot BoardConfig file and firmware post-scripts, distinguishing between
the BoardConfigs for Luckfox Pico Pro and Luckfox Pico Max. project:app: Added fastboot_client and rk_smart_door
for quick boot applications; updated rkipc app to adapt to the latest media library. media:samples: Added more
usage examples. media:rockit: Fixed bugs; removed support for retrieving data frames from VPSS. media:isp:
Updated rkaiq library and related tools to support connection to RKISP_Tuner. sysdrv:Makefile: Added support for
compiling drv_ko on Luckfox Pico Ultra W using Ubuntu; added support for custom root filesystem.
sysdrv:tools:board: Updated Buildroot optional mirror sources, updated some software versions, and stored device
tree files and configuration files that undergo multiple modifications for U-Boot and kernel separately.
sysdrv:source:mcu: Used RISC-V MCU SDK with RT-Thread system, mainly for initializing camera AE during quick
boot. sysdrv:source:uboot: Added support for fastboot; added high baud rate DDR bin for serial firmware upgrades.
sysdrv:source:kernel: Upgraded to version 5.10.160; increased NPU frequency for RV1106G3; added support for
fastboot.

Signed-off-by: luckfox-eng29 <eng29@luckfox.com>
This commit is contained in:
luckfox-eng29
2024-08-21 10:05:47 +08:00
parent e79fd21975
commit 8f34c2760d
20902 changed files with 6567362 additions and 11248383 deletions

View File

@@ -46,6 +46,9 @@ int arch_fixup_fdt(void *blob)
if (ret)
return ret;
/* Show "/reserved-memory" */
boot_mem_rsv_regions(NULL, blob);
#if defined(CONFIG_ARMV7_NONSEC) || defined(CONFIG_OF_LIBFDT)
bd_t *bd = gd->bd;
int bank;

View File

@@ -22,6 +22,7 @@
#include <asm/byteorder.h>
#include <linux/libfdt.h>
#include <mapmem.h>
#include <mp_boot.h>
#include <fdt_support.h>
#include <asm/bootm.h>
#include <asm/secure.h>
@@ -80,7 +81,7 @@ __weak void board_quiesce_devices(void *images)
*/
static void announce_and_cleanup(bootm_headers_t *images, int fake)
{
ulong us;
ulong us, tt_us;
bootstage_mark_name(BOOTSTAGE_ID_BOOTM_HANDOFF, "start_kernel");
#ifdef CONFIG_BOOTSTAGE_FDT
@@ -108,8 +109,12 @@ static void announce_and_cleanup(bootm_headers_t *images, int fake)
cleanup_before_linux();
#ifdef CONFIG_MP_BOOT
mpb_post(4);
#endif
us = (get_ticks() - gd->sys_start_tick) / (COUNTER_FREQUENCY / 1000000);
printf("Total: %ld.%ld ms\n", us / 1000, us % 1000);
tt_us = get_ticks() / (COUNTER_FREQUENCY / 1000000);
printf("Total: %ld.%ld/%ld.%ld ms\n", us / 1000, us % 1000, tt_us / 1000, tt_us % 1000);
printf("\nStarting kernel ...%s\n\n", fake ?
"(fake run for tracing)" : "");

View File

@@ -66,42 +66,6 @@
*/
ENTRY(_main)
/*
* Enable instruction cache (if required), stack pointer,
* data access alignment checks and SError.
*/
#ifdef CONFIG_SPL_BUILD
mov x1, #CR_I
#else
mov x1, #0
#endif
switch_el x2, 3f, 2f, 1f
3: mrs x0, sctlr_el3
orr x0, x0, x1
msr sctlr_el3, x0
#ifndef CONFIG_SUPPORT_USBPLUG
msr daifclr, #4 /* Enable SError. SCR_EL3.EA=1 was already set in start.S */
#endif
b 0f
2: mrs x0, sctlr_el2
orr x0, x0, x1
msr sctlr_el2, x0
mrs x0, hcr_el2
orr x0, x0, #HCR_EL2_TGE
orr x0, x0, #HCR_EL2_AMO
#if CONFIG_IS_ENABLED(IRQ)
orr x0, x0, #HCR_EL2_IMO
#endif
msr hcr_el2, x0
msr daifclr, #4
b 0f
1: mrs x0, sctlr_el1
orr x0, x0, x1
msr sctlr_el1, x0
msr daifclr, #4
0:
isb
/*
* Set up initial C runtime environment and call board_init_f(0).

View File

@@ -10,6 +10,9 @@
#include <efi_loader.h>
#include <iomem.h>
#include <stacktrace.h>
#ifdef CONFIG_ROCKCHIP_MINIDUMP
#include <rk_mini_dump.h>
#endif
DECLARE_GLOBAL_DATA_PTR;
@@ -181,6 +184,13 @@ void do_bad_error(struct pt_regs *pt_regs, unsigned int esr)
void do_sync(struct pt_regs *pt_regs, unsigned int esr)
{
efi_restore_gd();
#ifdef CONFIG_ROCKCHIP_MINIDUMP
if (md_no_fault_handler(pt_regs, esr)) {
/* Return to next instruction */
pt_regs->elr += 4;
return;
}
#endif
printf("\"Synchronous Abort\" handler, esr 0x%08x\n", esr);
show_regs(pt_regs);
panic("Resetting CPU ...\n");
@@ -219,6 +229,13 @@ void do_fiq(struct pt_regs *pt_regs, unsigned int esr)
void __weak do_error(struct pt_regs *pt_regs, unsigned int esr)
{
efi_restore_gd();
#ifdef CONFIG_ROCKCHIP_MINIDUMP
if (md_no_fault_handler(pt_regs, esr)) {
/* Return to next instruction */
pt_regs->elr += 4;
return;
}
#endif
printf("\"Error\" handler, esr 0x%08x\n", esr);
show_regs(pt_regs);
panic("Resetting CPU ...\n");