# Kconfig - generic PC platform configuration options

#
# Copyright (c) 2014-2015 Wind River Systems, Inc.
#
# SPDX-License-Identifier: Apache-2.0
#

if SOC_IA32

config SOC
	default ia32

config PHYS_LOAD_ADDR
	default 0x00001000

config PHYS_RAM_ADDR
	default 0x00400000

config RAM_SIZE
	default 4096 if XIP
	default 8188 if !XIP

config ROM_SIZE
	default 4092 if XIP

config SYS_CLOCK_HW_CYCLES_PER_SEC
	default 150000000 if LOAPIC_TIMER
	default 25000000  if HPET_TIMER

config CLFLUSH_DETECT
	def_bool y if CACHE_FLUSHING

if UART_NS16550

config UART_NS16550_PCI
	def_bool n

config UART_NS16550_PORT_0
	def_bool y

if UART_NS16550_PORT_0

config UART_NS16550_PORT_0_NAME
	default "UART_0"
config UART_NS16550_PORT_0_IRQ_PRI
	default 3
config UART_NS16550_PORT_0_BAUD_RATE
	default 115200
config UART_NS16550_PORT_0_OPTIONS
	default 0

endif # UART_NS16550_PORT_0

config UART_NS16550_PORT_1
	def_bool y

if UART_NS16550_PORT_1

config UART_NS16550_PORT_1_NAME
	default "UART_1"
config UART_NS16550_PORT_1_IRQ_PRI
	default 3
config UART_NS16550_PORT_1_BAUD_RATE
	default 115200
config UART_NS16550_PORT_1_OPTIONS
	default 0

endif # UART_NS16550_PORT_1

endif # UART_NS16550

if BT_UART

config BT_UART_ON_DEV_NAME
	default "UART_1"

endif

if UART_PIPE

config UART_PIPE_ON_DEV_NAME
	default "UART_1"

endif

config BT_MONITOR_ON_DEV_NAME
	default "UART_1" if BT_DEBUG_MONITOR

endif
