mirror of
https://github.com/LuckfoxTECH/luckfox-pico.git
synced 2026-01-19 17:59:18 +01:00
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:
@@ -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;
|
||||
|
||||
@@ -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)" : "");
|
||||
|
||||
@@ -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).
|
||||
|
||||
@@ -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");
|
||||
|
||||
Reference in New Issue
Block a user