mirror of
https://github.com/apache/nuttx.git
synced 2026-08-01 20:28:58 +00:00
arm64: add RK3588 support
Add RK3588 chip selection, GICv3 and MMU boot hooks, PSCI support, and an inherited 16550 console. Signed-off-by: Emre Cecanpunar <emreleno@gmail.com>
This commit is contained in:
parent
685ca8b175
commit
4635aef828
11 changed files with 522 additions and 0 deletions
|
|
@ -66,6 +66,22 @@ config ARCH_CHIP_RK3399
|
|||
---help---
|
||||
Rockchip RK3399 SoC
|
||||
|
||||
config ARCH_CHIP_RK3588
|
||||
bool "Rockchip RK3588 / RK3588S"
|
||||
select ARCH_CORTEX_A55
|
||||
select ARCH_HAVE_ADDRENV
|
||||
select ARCH_HAVE_IRQPRIO
|
||||
select ARCH_HAVE_IRQTRIGGER
|
||||
select ARCH_HAVE_LOWPUTC
|
||||
select ARCH_HAVE_RESET
|
||||
select ARCH_NEED_ADDRENV_MAPPING
|
||||
select ARCH_USE_MMU
|
||||
select ARM64_HAVE_PSCI
|
||||
select ARMV8A_HAVE_GICv3
|
||||
---help---
|
||||
Rockchip RK3588 and RK3588S SoCs with GICv3, PSCI and early
|
||||
UART support.
|
||||
|
||||
config ARCH_CHIP_QEMU
|
||||
bool "QEMU virt platform (ARMv8a)"
|
||||
select ARCH_HAVE_ADDRENV
|
||||
|
|
@ -383,6 +399,7 @@ config ARCH_CHIP
|
|||
default "a64" if ARCH_CHIP_A64
|
||||
default "a527" if ARCH_CHIP_SUNXI_A527
|
||||
default "rk3399" if ARCH_CHIP_RK3399
|
||||
default "rk3588" if ARCH_CHIP_RK3588
|
||||
default "zynq-mpsoc" if ARCH_CHIP_ZYNQ_MPSOC
|
||||
default "qemu" if ARCH_CHIP_QEMU
|
||||
default "goldfish" if ARCH_CHIP_GOLDFISH
|
||||
|
|
@ -536,6 +553,10 @@ if ARCH_CHIP_RK3399
|
|||
source "arch/arm64/src/rk3399/Kconfig"
|
||||
endif
|
||||
|
||||
if ARCH_CHIP_RK3588
|
||||
source "arch/arm64/src/rk3588/Kconfig"
|
||||
endif
|
||||
|
||||
if ARCH_CHIP_QEMU
|
||||
source "arch/arm64/src/qemu/Kconfig"
|
||||
endif
|
||||
|
|
|
|||
79
arch/arm64/include/rk3588/chip.h
Normal file
79
arch/arm64/include/rk3588/chip.h
Normal file
|
|
@ -0,0 +1,79 @@
|
|||
/****************************************************************************
|
||||
* arch/arm64/include/rk3588/chip.h
|
||||
*
|
||||
* SPDX-License-Identifier: Apache-2.0
|
||||
*
|
||||
* Licensed to the Apache Software Foundation (ASF) under one or more
|
||||
* contributor license agreements. See the NOTICE file distributed with
|
||||
* this work for additional information regarding copyright ownership. The
|
||||
* ASF licenses this file to you under the Apache License, Version 2.0 (the
|
||||
* "License"); you may not use this file except in compliance with the
|
||||
* License. You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
|
||||
* WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
|
||||
* License for the specific language governing permissions and limitations
|
||||
* under the License.
|
||||
*
|
||||
****************************************************************************/
|
||||
|
||||
#ifndef __ARCH_ARM64_INCLUDE_RK3588_CHIP_H
|
||||
#define __ARCH_ARM64_INCLUDE_RK3588_CHIP_H
|
||||
|
||||
/****************************************************************************
|
||||
* Included Files
|
||||
****************************************************************************/
|
||||
|
||||
#include <nuttx/config.h>
|
||||
|
||||
/****************************************************************************
|
||||
* Pre-processor Definitions
|
||||
****************************************************************************/
|
||||
|
||||
/* Rockchip RK3588 / RK3588S GICv3 base addresses. The upstream device tree
|
||||
* places the distributor at 0xfe600000 and the redistributor window at
|
||||
* 0xfe680000.
|
||||
*/
|
||||
|
||||
#define CONFIG_GICD_BASE 0xfe600000
|
||||
#define CONFIG_GICD_SIZE 0x00010000
|
||||
#define CONFIG_GICR_BASE 0xfe680000
|
||||
#define CONFIG_GICR_SIZE 0x00100000
|
||||
#define CONFIG_GICR_OFFSET 0x20000
|
||||
|
||||
/* U-Boot relocates the ARM64 Image from kernel_addr_r to 0x02080000. The
|
||||
* initial port uses the 512 MiB window validated on the 4 GiB board.
|
||||
*/
|
||||
|
||||
#define CONFIG_RAMBANK1_ADDR CONFIG_RAM_START
|
||||
#define CONFIG_RAMBANK1_SIZE CONFIG_RAM_SIZE
|
||||
|
||||
/* The UART register window is 0x100 bytes in the upstream device tree. The
|
||||
* MMU maps it as one 4 KiB page, its minimum mapping granularity.
|
||||
*/
|
||||
|
||||
#define RK3588_UART_MMU_SIZE 0x1000
|
||||
|
||||
/* Address at which U-Boot enters NuttX after Image relocation. */
|
||||
|
||||
#define CONFIG_LOAD_BASE CONFIG_RAM_START
|
||||
|
||||
#define MPID_TO_CLUSTER_ID(mpid) ((mpid) & ~0xff)
|
||||
|
||||
/****************************************************************************
|
||||
* Assembly Macros
|
||||
****************************************************************************/
|
||||
|
||||
#ifdef __ASSEMBLY__
|
||||
|
||||
.macro get_cpu_id xreg0
|
||||
mrs \xreg0, mpidr_el1
|
||||
ubfx \xreg0, \xreg0, #0, #8
|
||||
.endm
|
||||
|
||||
#endif /* __ASSEMBLY__ */
|
||||
|
||||
#endif /* __ARCH_ARM64_INCLUDE_RK3588_CHIP_H */
|
||||
44
arch/arm64/include/rk3588/irq.h
Normal file
44
arch/arm64/include/rk3588/irq.h
Normal file
|
|
@ -0,0 +1,44 @@
|
|||
/****************************************************************************
|
||||
* arch/arm64/include/rk3588/irq.h
|
||||
*
|
||||
* SPDX-License-Identifier: Apache-2.0
|
||||
*
|
||||
* Licensed to the Apache Software Foundation (ASF) under one or more
|
||||
* contributor license agreements. See the NOTICE file distributed with
|
||||
* this work for additional information regarding copyright ownership. The
|
||||
* ASF licenses this file to you under the Apache License, Version 2.0 (the
|
||||
* "License"); you may not use this file except in compliance with the
|
||||
* License. You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
|
||||
* WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
|
||||
* License for the specific language governing permissions and limitations
|
||||
* under the License.
|
||||
*
|
||||
****************************************************************************/
|
||||
|
||||
/* This file should never be included directly but, rather, only indirectly
|
||||
* through nuttx/irq.h
|
||||
*/
|
||||
|
||||
#ifndef __ARCH_ARM64_INCLUDE_RK3588_IRQ_H
|
||||
#define __ARCH_ARM64_INCLUDE_RK3588_IRQ_H
|
||||
|
||||
/****************************************************************************
|
||||
* Pre-processor Definitions
|
||||
****************************************************************************/
|
||||
|
||||
/* Size the IRQ table to cover the highest SPI currently described by the
|
||||
* upstream RK3588 device tree. SPI 400 has GIC interrupt ID 432.
|
||||
*/
|
||||
|
||||
#define NR_IRQS 512
|
||||
|
||||
/* GIC interrupt IDs are the device-tree SPI number plus 32. */
|
||||
|
||||
#define RK3588_IRQ_UART2 365 /* GIC_SPI 333 */
|
||||
|
||||
#endif /* __ARCH_ARM64_INCLUDE_RK3588_IRQ_H */
|
||||
29
arch/arm64/src/rk3588/CMakeLists.txt
Normal file
29
arch/arm64/src/rk3588/CMakeLists.txt
Normal file
|
|
@ -0,0 +1,29 @@
|
|||
# ##############################################################################
|
||||
# arch/arm64/src/rk3588/CMakeLists.txt
|
||||
#
|
||||
# SPDX-License-Identifier: Apache-2.0
|
||||
#
|
||||
# Licensed to the Apache Software Foundation (ASF) under one or more contributor
|
||||
# license agreements. See the NOTICE file distributed with this work for
|
||||
# additional information regarding copyright ownership. The ASF licenses this
|
||||
# file to you under the Apache License, Version 2.0 (the "License"); you may not
|
||||
# use this file except in compliance with the License. You may obtain a copy of
|
||||
# the License at
|
||||
#
|
||||
# http://www.apache.org/licenses/LICENSE-2.0
|
||||
#
|
||||
# Unless required by applicable law or agreed to in writing, software
|
||||
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
|
||||
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
|
||||
# License for the specific language governing permissions and limitations under
|
||||
# the License.
|
||||
#
|
||||
# ##############################################################################
|
||||
|
||||
set(SRCS rk3588_boot.c rk3588_serial.c)
|
||||
|
||||
if(CONFIG_ARCH_EARLY_PRINT)
|
||||
list(APPEND SRCS rk3588_lowputc.S)
|
||||
endif()
|
||||
|
||||
target_sources(arch PRIVATE ${SRCS})
|
||||
7
arch/arm64/src/rk3588/Kconfig
Normal file
7
arch/arm64/src/rk3588/Kconfig
Normal file
|
|
@ -0,0 +1,7 @@
|
|||
#
|
||||
# For a description of the syntax of this configuration file,
|
||||
# see the file kconfig-language.txt in the NuttX tools repository.
|
||||
#
|
||||
|
||||
if ARCH_CHIP_RK3588
|
||||
endif # ARCH_CHIP_RK3588
|
||||
31
arch/arm64/src/rk3588/Make.defs
Normal file
31
arch/arm64/src/rk3588/Make.defs
Normal file
|
|
@ -0,0 +1,31 @@
|
|||
############################################################################
|
||||
# arch/arm64/src/rk3588/Make.defs
|
||||
#
|
||||
# SPDX-License-Identifier: Apache-2.0
|
||||
#
|
||||
# Licensed to the Apache Software Foundation (ASF) under one or more
|
||||
# contributor license agreements. See the NOTICE file distributed with
|
||||
# this work for additional information regarding copyright ownership. The
|
||||
# ASF licenses this file to you under the Apache License, Version 2.0 (the
|
||||
# "License"); you may not use this file except in compliance with the
|
||||
# License. You may obtain a copy of the License at
|
||||
#
|
||||
# http://www.apache.org/licenses/LICENSE-2.0
|
||||
#
|
||||
# Unless required by applicable law or agreed to in writing, software
|
||||
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
|
||||
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
|
||||
# License for the specific language governing permissions and limitations
|
||||
# under the License.
|
||||
#
|
||||
############################################################################
|
||||
|
||||
include common/Make.defs
|
||||
|
||||
# C Source Files specific to SoC
|
||||
|
||||
CHIP_CSRCS = rk3588_boot.c rk3588_serial.c
|
||||
|
||||
ifeq ($(CONFIG_ARCH_EARLY_PRINT),y)
|
||||
CHIP_ASRCS = rk3588_lowputc.S
|
||||
endif
|
||||
36
arch/arm64/src/rk3588/chip.h
Normal file
36
arch/arm64/src/rk3588/chip.h
Normal file
|
|
@ -0,0 +1,36 @@
|
|||
/****************************************************************************
|
||||
* arch/arm64/src/rk3588/chip.h
|
||||
*
|
||||
* SPDX-License-Identifier: Apache-2.0
|
||||
*
|
||||
* Licensed to the Apache Software Foundation (ASF) under one or more
|
||||
* contributor license agreements. See the NOTICE file distributed with
|
||||
* this work for additional information regarding copyright ownership. The
|
||||
* ASF licenses this file to you under the Apache License, Version 2.0 (the
|
||||
* "License"); you may not use this file except in compliance with the
|
||||
* License. You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
|
||||
* WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
|
||||
* License for the specific language governing permissions and limitations
|
||||
* under the License.
|
||||
*
|
||||
* Thin source-side wrapper that pulls in the RK3588 chip definitions from
|
||||
* the arch include tree. Common arm64 sources in this directory include
|
||||
* "chip.h" directly.
|
||||
*
|
||||
****************************************************************************/
|
||||
|
||||
#ifndef __ARCH_ARM64_SRC_RK3588_CHIP_H
|
||||
#define __ARCH_ARM64_SRC_RK3588_CHIP_H
|
||||
|
||||
/****************************************************************************
|
||||
* Included Files
|
||||
****************************************************************************/
|
||||
|
||||
#include <arch/chip/chip.h>
|
||||
|
||||
#endif /* __ARCH_ARM64_SRC_RK3588_CHIP_H */
|
||||
102
arch/arm64/src/rk3588/rk3588_boot.c
Normal file
102
arch/arm64/src/rk3588/rk3588_boot.c
Normal file
|
|
@ -0,0 +1,102 @@
|
|||
/****************************************************************************
|
||||
* arch/arm64/src/rk3588/rk3588_boot.c
|
||||
*
|
||||
* SPDX-License-Identifier: Apache-2.0
|
||||
*
|
||||
* Licensed to the Apache Software Foundation (ASF) under one or more
|
||||
* contributor license agreements. See the NOTICE file distributed with
|
||||
* this work for additional information regarding copyright ownership. The
|
||||
* ASF licenses this file to you under the Apache License, Version 2.0 (the
|
||||
* "License"); you may not use this file except in compliance with the
|
||||
* License. You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
|
||||
* WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
|
||||
* License for the specific language governing permissions and limitations
|
||||
* under the License.
|
||||
*
|
||||
****************************************************************************/
|
||||
|
||||
/****************************************************************************
|
||||
* Included Files
|
||||
****************************************************************************/
|
||||
|
||||
#include <nuttx/config.h>
|
||||
|
||||
#include <arch/chip/chip.h>
|
||||
|
||||
#ifdef CONFIG_SMP
|
||||
# include "arm64_smp.h"
|
||||
#endif
|
||||
|
||||
#include "arm64_arch.h"
|
||||
#include "arm64_internal.h"
|
||||
#include "arm64_mmu.h"
|
||||
#include "rk3588_boot.h"
|
||||
|
||||
/****************************************************************************
|
||||
* Private Data
|
||||
****************************************************************************/
|
||||
|
||||
static const struct arm_mmu_region g_mmu_regions[] =
|
||||
{
|
||||
MMU_REGION_FLAT_ENTRY("UART2",
|
||||
CONFIG_16550_UART0_BASE, RK3588_UART_MMU_SIZE,
|
||||
MT_DEVICE_NGNRNE | MT_RW | MT_SECURE),
|
||||
|
||||
MMU_REGION_FLAT_ENTRY("GICD",
|
||||
CONFIG_GICD_BASE, CONFIG_GICD_SIZE,
|
||||
MT_DEVICE_NGNRNE | MT_RW | MT_SECURE),
|
||||
|
||||
MMU_REGION_FLAT_ENTRY("GICR",
|
||||
CONFIG_GICR_BASE, CONFIG_GICR_SIZE,
|
||||
MT_DEVICE_NGNRNE | MT_RW | MT_SECURE),
|
||||
|
||||
MMU_REGION_FLAT_ENTRY("DRAM0_S0",
|
||||
CONFIG_RAMBANK1_ADDR, CONFIG_RAMBANK1_SIZE,
|
||||
MT_NORMAL | MT_RW | MT_SECURE),
|
||||
};
|
||||
|
||||
const struct arm_mmu_config g_mmu_config =
|
||||
{
|
||||
.num_regions = nitems(g_mmu_regions),
|
||||
.mmu_regions = g_mmu_regions,
|
||||
};
|
||||
|
||||
/****************************************************************************
|
||||
* Public Functions
|
||||
****************************************************************************/
|
||||
|
||||
void arm64_el_init(void)
|
||||
{
|
||||
/* The supported firmware handoff needs no platform-specific setup here. */
|
||||
}
|
||||
|
||||
void arm64_chip_boot(void)
|
||||
{
|
||||
rk3588_memory_initialize();
|
||||
|
||||
/* Map I/O and DRAM, then enable the MMU. */
|
||||
|
||||
arm64_mmu_init(true);
|
||||
|
||||
#if defined(CONFIG_ARM64_PSCI)
|
||||
arm64_psci_init("smc");
|
||||
#endif
|
||||
|
||||
rk3588_board_initialize();
|
||||
|
||||
#ifdef USE_EARLYSERIALINIT
|
||||
arm64_earlyserialinit();
|
||||
#endif
|
||||
}
|
||||
|
||||
#if defined(CONFIG_NET) && !defined(CONFIG_NETDEV_LATEINIT)
|
||||
void arm64_netinitialize(void)
|
||||
{
|
||||
/* Network initialization is not implemented. */
|
||||
}
|
||||
#endif
|
||||
56
arch/arm64/src/rk3588/rk3588_boot.h
Normal file
56
arch/arm64/src/rk3588/rk3588_boot.h
Normal file
|
|
@ -0,0 +1,56 @@
|
|||
/****************************************************************************
|
||||
* arch/arm64/src/rk3588/rk3588_boot.h
|
||||
*
|
||||
* SPDX-License-Identifier: Apache-2.0
|
||||
*
|
||||
* Licensed to the Apache Software Foundation (ASF) under one or more
|
||||
* contributor license agreements. See the NOTICE file distributed with
|
||||
* this work for additional information regarding copyright ownership. The
|
||||
* ASF licenses this file to you under the Apache License, Version 2.0 (the
|
||||
* "License"); you may not use this file except in compliance with the
|
||||
* License. You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
|
||||
* WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
|
||||
* License for the specific language governing permissions and limitations
|
||||
* under the License.
|
||||
*
|
||||
****************************************************************************/
|
||||
|
||||
#ifndef __ARCH_ARM64_SRC_RK3588_RK3588_BOOT_H
|
||||
#define __ARCH_ARM64_SRC_RK3588_RK3588_BOOT_H
|
||||
|
||||
/****************************************************************************
|
||||
* Included Files
|
||||
****************************************************************************/
|
||||
|
||||
#include <nuttx/config.h>
|
||||
|
||||
/****************************************************************************
|
||||
* Public Function Prototypes
|
||||
****************************************************************************/
|
||||
|
||||
#ifndef __ASSEMBLY__
|
||||
|
||||
#undef EXTERN
|
||||
#if defined(__cplusplus)
|
||||
# define EXTERN extern "C"
|
||||
extern "C"
|
||||
{
|
||||
#else
|
||||
# define EXTERN extern
|
||||
#endif
|
||||
|
||||
void rk3588_memory_initialize(void);
|
||||
void rk3588_board_initialize(void);
|
||||
|
||||
#undef EXTERN
|
||||
#if defined(__cplusplus)
|
||||
}
|
||||
#endif
|
||||
|
||||
#endif /* __ASSEMBLY__ */
|
||||
#endif /* __ARCH_ARM64_SRC_RK3588_RK3588_BOOT_H */
|
||||
63
arch/arm64/src/rk3588/rk3588_lowputc.S
Normal file
63
arch/arm64/src/rk3588/rk3588_lowputc.S
Normal file
|
|
@ -0,0 +1,63 @@
|
|||
/****************************************************************************
|
||||
* arch/arm64/src/rk3588/rk3588_lowputc.S
|
||||
*
|
||||
* SPDX-License-Identifier: Apache-2.0
|
||||
*
|
||||
* Licensed to the Apache Software Foundation (ASF) under one or more
|
||||
* contributor license agreements. See the NOTICE file distributed with
|
||||
* this work for additional information regarding copyright ownership. The
|
||||
* ASF licenses this file to you under the Apache License, Version 2.0 (the
|
||||
* "License"); you may not use this file except in compliance with the
|
||||
* License. You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
|
||||
* WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
|
||||
* License for the specific language governing permissions and limitations
|
||||
* under the License.
|
||||
*
|
||||
****************************************************************************
|
||||
*
|
||||
* DESCRIPTION
|
||||
* Early UART output for RK3588 / RK3588S.
|
||||
*
|
||||
* The Orange Pi 5 Pro debug UART is UART2, a 16550-compatible block
|
||||
* with 4-byte register spacing. Boot firmware already leaves it in a
|
||||
* usable state, so early printk only needs to poll THRE and write bytes.
|
||||
*
|
||||
****************************************************************************/
|
||||
|
||||
#include <nuttx/config.h>
|
||||
|
||||
#include "arm64_macro.inc"
|
||||
|
||||
.file "rk3588_lowputc.S"
|
||||
|
||||
#define CONSOLE_UART_BASE CONFIG_16550_UART0_BASE
|
||||
#define UART_THR_OFF 0x00
|
||||
#define UART_LSR_OFF 0x14
|
||||
#define UART_LSR_THRE (1 << 5)
|
||||
|
||||
.macro early_uart_ready xb, wt
|
||||
1:
|
||||
ldr \wt, [\xb, #UART_LSR_OFF]
|
||||
tst \wt, #UART_LSR_THRE
|
||||
b.eq 1b
|
||||
.endm
|
||||
|
||||
.macro early_uart_transmit xb, wt
|
||||
str \wt, [\xb, #UART_THR_OFF]
|
||||
.endm
|
||||
|
||||
GTEXT(arm64_earlyprintinit)
|
||||
SECTION_FUNC(text, arm64_earlyprintinit)
|
||||
ret
|
||||
|
||||
GTEXT(arm64_lowputc)
|
||||
SECTION_FUNC(text, arm64_lowputc)
|
||||
ldr x15, =CONSOLE_UART_BASE
|
||||
early_uart_ready x15, w2
|
||||
early_uart_transmit x15, w0
|
||||
ret
|
||||
54
arch/arm64/src/rk3588/rk3588_serial.c
Normal file
54
arch/arm64/src/rk3588/rk3588_serial.c
Normal file
|
|
@ -0,0 +1,54 @@
|
|||
/****************************************************************************
|
||||
* arch/arm64/src/rk3588/rk3588_serial.c
|
||||
*
|
||||
* SPDX-License-Identifier: Apache-2.0
|
||||
*
|
||||
* Licensed to the Apache Software Foundation (ASF) under one or more
|
||||
* contributor license agreements. See the NOTICE file distributed with
|
||||
* this work for additional information regarding copyright ownership. The
|
||||
* ASF licenses this file to you under the Apache License, Version 2.0 (the
|
||||
* "License"); you may not use this file except in compliance with the
|
||||
* License. You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
|
||||
* WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
|
||||
* License for the specific language governing permissions and limitations
|
||||
* under the License.
|
||||
*
|
||||
****************************************************************************/
|
||||
|
||||
/****************************************************************************
|
||||
* Included Files
|
||||
****************************************************************************/
|
||||
|
||||
#include <nuttx/config.h>
|
||||
|
||||
#ifdef CONFIG_16550_UART
|
||||
|
||||
#include <nuttx/serial/uart_16550.h>
|
||||
|
||||
#include "arm64_internal.h"
|
||||
|
||||
/****************************************************************************
|
||||
* Public Functions
|
||||
****************************************************************************/
|
||||
|
||||
void arm64_earlyserialinit(void)
|
||||
{
|
||||
/* The Orange Pi boot chain already programs the console UART. Preserve
|
||||
* that state and let the generic 16550 driver take over without forcing
|
||||
* a baud-rate reprogramming step.
|
||||
*/
|
||||
|
||||
u16550_earlyserialinit();
|
||||
}
|
||||
|
||||
void arm64_serialinit(void)
|
||||
{
|
||||
u16550_serialinit();
|
||||
}
|
||||
|
||||
#endif /* CONFIG_16550_UART */
|
||||
Loading…
Add table
Add a link
Reference in a new issue