diff --git a/repos/base-hw/lib/mk/spec/imx53_qsb/core-hw.mk b/repos/base-hw/lib/mk/spec/imx53_qsb/core-hw.mk index c38e5d26ec..378bd99bbd 100644 --- a/repos/base-hw/lib/mk/spec/imx53_qsb/core-hw.mk +++ b/repos/base-hw/lib/mk/spec/imx53_qsb/core-hw.mk @@ -8,7 +8,6 @@ # add include paths INC_DIR += $(REP_DIR)/src/core/spec/imx53_qsb INC_DIR += $(REP_DIR)/src/core/spec/imx53 -INC_DIR += $(REP_DIR)/src/core/spec/imx SRC_CC += spec/imx53/pic.cc SRC_CC += spec/imx53/timer.cc diff --git a/repos/base-hw/lib/mk/spec/imx6/core-hw.mk b/repos/base-hw/lib/mk/spec/imx6/core-hw.mk index c95150fc1b..d9b4337b1e 100644 --- a/repos/base-hw/lib/mk/spec/imx6/core-hw.mk +++ b/repos/base-hw/lib/mk/spec/imx6/core-hw.mk @@ -8,7 +8,6 @@ # add include paths INC_DIR += $(REP_DIR)/src/core/spec/wand_quad -INC_DIR += $(REP_DIR)/src/core/spec/imx # add C++ sources SRC_CC += platform_services.cc diff --git a/repos/base-hw/lib/mk/spec/panda/core-hw.mk b/repos/base-hw/lib/mk/spec/panda/core-hw.mk index 8883929c2a..783e035cdb 100644 --- a/repos/base-hw/lib/mk/spec/panda/core-hw.mk +++ b/repos/base-hw/lib/mk/spec/panda/core-hw.mk @@ -7,7 +7,6 @@ # add include paths INC_DIR += $(REP_DIR)/src/core/spec/panda -INC_DIR += $(REP_DIR)/src/core/spec/tl16c750 # add C++ sources SRC_CC += platform_services.cc diff --git a/repos/base-hw/lib/mk/spec/pbxa9/core-hw.mk b/repos/base-hw/lib/mk/spec/pbxa9/core-hw.mk index b87782f57d..6816f9fc35 100644 --- a/repos/base-hw/lib/mk/spec/pbxa9/core-hw.mk +++ b/repos/base-hw/lib/mk/spec/pbxa9/core-hw.mk @@ -7,7 +7,6 @@ # add include paths INC_DIR += $(REP_DIR)/src/core/spec/pbxa9 -INC_DIR += $(REP_DIR)/src/core/spec/pl011 # add C++ sources SRC_CC += platform_services.cc diff --git a/repos/base-hw/lib/mk/spec/rpi/core-hw.mk b/repos/base-hw/lib/mk/spec/rpi/core-hw.mk index 4d4f230adc..ef12aab5ef 100644 --- a/repos/base-hw/lib/mk/spec/rpi/core-hw.mk +++ b/repos/base-hw/lib/mk/spec/rpi/core-hw.mk @@ -6,7 +6,6 @@ # add include paths INC_DIR += $(REP_DIR)/src/core/spec/rpi -INC_DIR += $(REP_DIR)/src/core/spec/pl011 # add C++ sources SRC_CC += platform_services.cc diff --git a/repos/base-hw/lib/mk/spec/usb_armory/core-hw.mk b/repos/base-hw/lib/mk/spec/usb_armory/core-hw.mk index 1057ae01d6..3094d8611e 100644 --- a/repos/base-hw/lib/mk/spec/usb_armory/core-hw.mk +++ b/repos/base-hw/lib/mk/spec/usb_armory/core-hw.mk @@ -7,7 +7,6 @@ # add include paths INC_DIR += $(REP_DIR)/src/core/spec/usb_armory INC_DIR += $(REP_DIR)/src/core/spec/imx53 -INC_DIR += $(REP_DIR)/src/core/spec/imx INC_DIR += $(REP_DIR)/src/core/spec/arm_v7/trustzone INC_DIR += $(REP_DIR)/src/core/spec/imx53/trustzone diff --git a/repos/base-hw/lib/mk/spec/zynq_qemu/core-hw.mk b/repos/base-hw/lib/mk/spec/zynq_qemu/core-hw.mk index 86931d6681..fe4c1e701b 100644 --- a/repos/base-hw/lib/mk/spec/zynq_qemu/core-hw.mk +++ b/repos/base-hw/lib/mk/spec/zynq_qemu/core-hw.mk @@ -5,7 +5,6 @@ # # add include paths -INC_DIR += $(REP_DIR)/src/core/spec/xilinx_uartps_0 INC_DIR += $(REP_DIR)/src/core/spec/zynq_qemu NR_OF_CPUS = 1 diff --git a/repos/base-hw/src/core/kernel_log.cc b/repos/base-hw/src/core/kernel_log.cc index 2df756b871..354fd5a672 100644 --- a/repos/base-hw/src/core/kernel_log.cc +++ b/repos/base-hw/src/core/kernel_log.cc @@ -15,13 +15,14 @@ /* base-internal includes */ #include -#include +#include +#include #include void Kernel::log(char const c) { - using Genode::Serial; + using namespace Board; enum { ASCII_LINE_FEED = 10, @@ -29,7 +30,8 @@ void Kernel::log(char const c) BAUD_RATE = 115200 }; - Serial & serial = *unmanaged_singleton(BAUD_RATE); + static Serial serial { Genode::Platform::mmio_to_virt(UART_BASE), + UART_CLOCK, BAUD_RATE }; if (c == ASCII_LINE_FEED) serial.put_char(ASCII_CARRIAGE_RETURN); serial.put_char(c); } diff --git a/repos/base-hw/src/core/spec/arndale/board.h b/repos/base-hw/src/core/spec/arndale/board.h index e279b43bfb..6e34318464 100644 --- a/repos/base-hw/src/core/spec/arndale/board.h +++ b/repos/base-hw/src/core/spec/arndale/board.h @@ -16,12 +16,19 @@ /* base includes */ #include +#include #include namespace Board { using namespace Arndale; using Cpu_mmio = Hw::Cortex_a15_mmio; + using Serial = Genode::Exynos_uart; + + enum { + UART_BASE = UART_2_MMIO_BASE, + UART_CLOCK = UART_2_CLOCK, + }; static constexpr bool SMP = true; } diff --git a/repos/base-hw/src/core/spec/exynos5/serial.h b/repos/base-hw/src/core/spec/exynos5/serial.h deleted file mode 100644 index 9c89c086d0..0000000000 --- a/repos/base-hw/src/core/spec/exynos5/serial.h +++ /dev/null @@ -1,47 +0,0 @@ -/* - * \brief Serial output driver for core - * \author Martin Stein - * \author Stefan Kalkowski - * \date 2013-01-09 - */ - -/* - * Copyright (C) 2013-2017 Genode Labs GmbH - * - * This file is part of the Genode OS framework, which is distributed - * under the terms of the GNU Affero General Public License version 3. - */ - -#ifndef _CORE__SPEC__EXYNOS5__SERIAL_H_ -#define _CORE__SPEC__EXYNOS5__SERIAL_H_ - -/* core includes */ -#include -#include - -/* Genode includes */ -#include - -namespace Genode -{ - /** - * Serial output driver for core - */ - class Serial : public Exynos_uart - { - public: - - /** - * Constructor - * - * \param baud_rate targeted transfer baud-rate - */ - Serial(unsigned const baud_rate) - : - Exynos_uart(Platform::mmio_to_virt(Board::UART_2_MMIO_BASE), - Board::UART_2_CLOCK, baud_rate) - { } - }; -} - -#endif /* _CORE__SPEC__EXYNOS5__SERIAL_H_ */ diff --git a/repos/base-hw/src/core/spec/imx/serial.h b/repos/base-hw/src/core/spec/imx/serial.h deleted file mode 100644 index 4d9f3da9da..0000000000 --- a/repos/base-hw/src/core/spec/imx/serial.h +++ /dev/null @@ -1,39 +0,0 @@ -/* - * \brief Serial output driver for core - * \author Stefan Kalkowski - * \date 2012-10-24 - */ - -/* - * Copyright (C) 2012-2017 Genode Labs GmbH - * - * This file is part of the Genode OS framework, which is distributed - * under the terms of the GNU Affero General Public License version 3. - */ - -#ifndef _CORE__SPEC__IMX__SERIAL_H_ -#define _CORE__SPEC__IMX__SERIAL_H_ - -/* core includes */ -#include -#include - -/* Genode includes */ -#include - -namespace Genode -{ - /** - * Serial output driver for core - */ - class Serial : public Imx_uart - { - public: - - Serial(unsigned baudrate) - : Imx_uart(Platform::mmio_to_virt(Board::UART_1_MMIO_BASE), - /* ignored clock rate */ 0, baudrate) { } - }; -} - -#endif /* _CORE__SPEC__IMX__SERIAL_H_ */ diff --git a/repos/base-hw/src/core/spec/imx53_qsb/board.h b/repos/base-hw/src/core/spec/imx53_qsb/board.h index d16148148b..8c5ced7391 100644 --- a/repos/base-hw/src/core/spec/imx53_qsb/board.h +++ b/repos/base-hw/src/core/spec/imx53_qsb/board.h @@ -16,9 +16,17 @@ #define _CORE__SPEC__IMX53_QSB__BOARD_H_ #include +#include namespace Board { using namespace Imx53_qsb; + using Serial = Genode::Imx_uart; + + enum { + UART_BASE = UART_1_MMIO_BASE, + UART_CLOCK = 0, /* ignored value */ + }; + static constexpr bool SMP = false; } diff --git a/repos/base-hw/src/core/spec/odroid_xu/board.h b/repos/base-hw/src/core/spec/odroid_xu/board.h index a871dc008c..9dcbf56f50 100644 --- a/repos/base-hw/src/core/spec/odroid_xu/board.h +++ b/repos/base-hw/src/core/spec/odroid_xu/board.h @@ -16,12 +16,19 @@ /* base includes */ #include +#include #include namespace Board { using namespace Odroid_xu; using Cpu_mmio = Hw::Cortex_a15_mmio; + using Serial = Genode::Exynos_uart; + + enum { + UART_BASE = UART_2_MMIO_BASE, + UART_CLOCK = UART_2_CLOCK, + }; static constexpr bool SMP = true; } diff --git a/repos/base-hw/src/core/spec/panda/board.h b/repos/base-hw/src/core/spec/panda/board.h index 1ac5b5e184..c15fa29e20 100644 --- a/repos/base-hw/src/core/spec/panda/board.h +++ b/repos/base-hw/src/core/spec/panda/board.h @@ -17,6 +17,7 @@ /* base includes */ #include +#include #include #include @@ -26,6 +27,12 @@ namespace Board { using namespace Panda; using Cpu_mmio = Hw::Cortex_a9_mmio; + using Serial = Genode::Tl16c750_uart; + + enum { + UART_BASE = TL16C750_3_MMIO_BASE, + UART_CLOCK = TL16C750_CLOCK, + }; static constexpr bool SMP = true; diff --git a/repos/base-hw/src/core/spec/pbxa9/board.h b/repos/base-hw/src/core/spec/pbxa9/board.h index c3b9891c8e..3d9747bc3a 100644 --- a/repos/base-hw/src/core/spec/pbxa9/board.h +++ b/repos/base-hw/src/core/spec/pbxa9/board.h @@ -16,14 +16,22 @@ /* base includes */ #include +#include #include #include namespace Board { using namespace Pbxa9; + using Cpu_mmio = Hw::Cortex_a9_mmio; using L2_cache = Hw::Pl310; + using Serial = Genode::Pl011_uart; + + enum { + UART_BASE = PL011_0_MMIO_BASE, + UART_CLOCK = PL011_0_CLOCK, + }; static constexpr bool SMP = true; diff --git a/repos/base-hw/src/core/spec/pl011/serial.h b/repos/base-hw/src/core/spec/pl011/serial.h deleted file mode 100644 index 38a465bddf..0000000000 --- a/repos/base-hw/src/core/spec/pl011/serial.h +++ /dev/null @@ -1,43 +0,0 @@ -/* - * \brief Serial output driver for core - * \author Martin Stein - * \date 2012-04-23 - */ - -/* - * Copyright (C) 2012-2017 Genode Labs GmbH - * - * This file is part of the Genode OS framework, which is distributed - * under the terms of the GNU Affero General Public License version 3. - */ - -#ifndef _CORE__SPEC__PL011__SERIAL_H_ -#define _CORE__SPEC__PL011__SERIAL_H_ - -/* core includes */ -#include -#include - -/* Genode includes */ -#include - -namespace Genode { class Serial; } - - -class Genode::Serial : public Pl011_uart -{ - public: - - /** - * Constructor - * - * \param baud_rate targeted transfer baud-rate - */ - Serial(unsigned const baud_rate) - : - Pl011_uart(Platform::mmio_to_virt(Board::PL011_0_MMIO_BASE), - Board::PL011_0_CLOCK, baud_rate) - { } -}; - -#endif /* _CORE__SPEC__PL011__SERIAL_H_ */ diff --git a/repos/base-hw/src/core/spec/riscv/board.h b/repos/base-hw/src/core/spec/riscv/board.h index 226dbb96d5..a65aa80153 100644 --- a/repos/base-hw/src/core/spec/riscv/board.h +++ b/repos/base-hw/src/core/spec/riscv/board.h @@ -14,6 +14,10 @@ #ifndef _CORE__SPEC__RISCV__BOARD_H_ #define _CORE__SPEC__RISCV__BOARD_H_ -namespace Board { } +namespace Board { + enum { UART_BASE, UART_CLOCK }; + struct Serial : Hw::Riscv_uart { + Serial(unsigned, unsigned, unsigned) {} }; +} #endif /* _CORE__SPEC__RISCV__BOARD_H_ */ diff --git a/repos/base-hw/src/core/spec/riscv/serial.h b/repos/base-hw/src/core/spec/riscv/serial.h deleted file mode 100644 index a9b8f7ace3..0000000000 --- a/repos/base-hw/src/core/spec/riscv/serial.h +++ /dev/null @@ -1,29 +0,0 @@ -/* - * \brief Serial output driver for core - * \author Sebastian Sumpf - * \date 2015-06-02 - */ - -/* - * Copyright (C) 2015-2017 Genode Labs GmbH - * - * This file is part of the Genode OS framework, which is distributed - * under the terms of the GNU Affero General Public License version 3. - */ - -#ifndef _CORE__SPEC__RISCV__SERIAL_H_ -#define _CORE__SPEC__RISCV__SERIAL_H_ - -#include - -namespace Genode { struct Serial; } - -/** - * Serial output driver for core - */ -struct Genode::Serial : Hw::Riscv_uart -{ - Serial(unsigned) { } -}; - -#endif /* _CORE__SPEC__RISCV__SERIAL_H_ */ diff --git a/repos/base-hw/src/core/spec/rpi/board.h b/repos/base-hw/src/core/spec/rpi/board.h index 6af776238a..651895520e 100644 --- a/repos/base-hw/src/core/spec/rpi/board.h +++ b/repos/base-hw/src/core/spec/rpi/board.h @@ -15,12 +15,19 @@ #ifndef _CORE__SPEC__RPI__BOARD_H_ #define _CORE__SPEC__RPI__BOARD_H_ -/* core includes */ #include +#include namespace Board { using namespace Rpi; + using Serial = Genode::Pl011_uart; + + enum { + UART_BASE = Rpi::PL011_0_MMIO_BASE, + UART_CLOCK = Rpi::PL011_0_CLOCK, + }; + static constexpr bool SMP = false; }; diff --git a/repos/base-hw/src/core/spec/tl16c750/serial.h b/repos/base-hw/src/core/spec/tl16c750/serial.h deleted file mode 100644 index efd2054375..0000000000 --- a/repos/base-hw/src/core/spec/tl16c750/serial.h +++ /dev/null @@ -1,46 +0,0 @@ -/* - * \brief Serial output driver for core - * \author Martin Stein - * \date 2012-04-23 - */ - -/* - * Copyright (C) 2012-2017 Genode Labs GmbH - * - * This file is part of the Genode OS framework, which is distributed - * under the terms of the GNU Affero General Public License version 3. - */ - -#ifndef _CORE__SPEC__TL16C750__SERIAL_H_ -#define _CORE__SPEC__TL16C750__SERIAL_H_ - -/* core includes */ -#include -#include - -/* Genode includes */ -#include - -namespace Genode -{ - /** - * Serial output driver for core - */ - class Serial : public Tl16c750_uart - { - public: - - /** - * Constructor - * - * \param baud_rate targeted transfer baud-rate - */ - Serial(unsigned const baud_rate) - : - Tl16c750_uart(Platform::mmio_to_virt(Board::TL16C750_3_MMIO_BASE), - Board::TL16C750_CLOCK, baud_rate) - { } - }; -} - -#endif /* _CORE__SPEC__TL16C750__SERIAL_H_ */ diff --git a/repos/base-hw/src/core/spec/usb_armory/board.h b/repos/base-hw/src/core/spec/usb_armory/board.h index 7e079b51d7..cf530eb342 100644 --- a/repos/base-hw/src/core/spec/usb_armory/board.h +++ b/repos/base-hw/src/core/spec/usb_armory/board.h @@ -16,9 +16,17 @@ #define _CORE__SPEC__USB_ARMORY__BOARD_H_ #include +#include namespace Board { using namespace Usb_armory; + using Serial = Genode::Imx_uart; + + enum { + UART_BASE = UART_1_MMIO_BASE, + UART_CLOCK = 0, /* dummy value, not used */ + }; + static constexpr bool SMP = false; } diff --git a/repos/base-hw/src/core/spec/wand_quad/board.h b/repos/base-hw/src/core/spec/wand_quad/board.h index 9868f46ad8..d5c4d74a91 100644 --- a/repos/base-hw/src/core/spec/wand_quad/board.h +++ b/repos/base-hw/src/core/spec/wand_quad/board.h @@ -17,6 +17,7 @@ /* base includes */ #include +#include #include #include @@ -25,6 +26,12 @@ namespace Board { using namespace Wand_quad; using Cpu_mmio = Hw::Cortex_a9_mmio; using L2_cache = Hw::Pl310; + using Serial = Genode::Imx_uart; + + enum { + UART_BASE = UART_1_MMIO_BASE, + UART_CLOCK = 0, /* dummy value, not used */ + }; static constexpr bool SMP = true; diff --git a/repos/base-hw/src/core/spec/x86_64/board.h b/repos/base-hw/src/core/spec/x86_64/board.h index f67c564863..38f40fbcda 100644 --- a/repos/base-hw/src/core/spec/x86_64/board.h +++ b/repos/base-hw/src/core/spec/x86_64/board.h @@ -14,17 +14,23 @@ #ifndef _CORE__SPEC__X86_64__BOARD_H_ #define _CORE__SPEC__X86_64__BOARD_H_ -namespace Genode -{ - struct Board - { - enum { - VECTOR_REMAP_BASE = 48, - TIMER_VECTOR_KERNEL = 32, - TIMER_VECTOR_USER = 50, - ISA_IRQ_END = 15, - }; +#include + +namespace Board { + struct Serial; + enum Dummies { UART_BASE, UART_CLOCK }; + + enum { + VECTOR_REMAP_BASE = 48, + TIMER_VECTOR_KERNEL = 32, + TIMER_VECTOR_USER = 50, + ISA_IRQ_END = 15, }; } + +struct Board::Serial : Genode::X86_uart { + Serial(Genode::addr_t, Genode::size_t, unsigned); +}; + #endif /* _CORE__SPEC__X86_64__BOARD_H_ */ diff --git a/repos/base-hw/src/core/spec/x86_64/muen/board.h b/repos/base-hw/src/core/spec/x86_64/muen/board.h index b4e158dab8..64f78b303c 100644 --- a/repos/base-hw/src/core/spec/x86_64/muen/board.h +++ b/repos/base-hw/src/core/spec/x86_64/muen/board.h @@ -14,23 +14,29 @@ #ifndef _CORE__SPEC__X86_64__MUEN__BOARD_H_ #define _CORE__SPEC__X86_64__MUEN__BOARD_H_ -namespace Genode -{ - struct Board - { - enum { - TIMER_BASE_ADDR = 0xe00010000, - TIMER_SIZE = 0x1000, - TIMER_PREEMPT_BASE_ADDR = 0xe00011000, - TIMER_PREEMPT_SIZE = 0x1000, +#include - VECTOR_REMAP_BASE = 48, - TIMER_EVENT_PREEMPT = 30, - TIMER_EVENT_KERNEL = 31, - TIMER_VECTOR_KERNEL = 32, - TIMER_VECTOR_USER = 50, - }; +namespace Board { + struct Serial; + enum Dummies { UART_BASE, UART_CLOCK }; + + enum { + TIMER_BASE_ADDR = 0xe00010000, + TIMER_SIZE = 0x1000, + TIMER_PREEMPT_BASE_ADDR = 0xe00011000, + TIMER_PREEMPT_SIZE = 0x1000, + + VECTOR_REMAP_BASE = 48, + TIMER_EVENT_PREEMPT = 30, + TIMER_EVENT_KERNEL = 31, + TIMER_VECTOR_KERNEL = 32, + TIMER_VECTOR_USER = 50, }; } + +struct Board::Serial : Genode::X86_uart { + Serial(Genode::addr_t, Genode::size_t, unsigned); +}; + #endif /* _CORE__SPEC__X86_64__MUEN__BOARD_H_ */ diff --git a/repos/base-hw/src/core/spec/x86_64/muen/platform_support.cc b/repos/base-hw/src/core/spec/x86_64/muen/platform_support.cc index cb7bd1363e..c7d18fa9d1 100644 --- a/repos/base-hw/src/core/spec/x86_64/muen/platform_support.cc +++ b/repos/base-hw/src/core/spec/x86_64/muen/platform_support.cc @@ -94,3 +94,8 @@ void Platform::_init_additional() Rom_module((addr_t)Sinfo::PHYSICAL_BASE_ADDR, Sinfo::SIZE, "subject_info_page")); } + + +enum { COM1_PORT = 0x3f8 }; +Board::Serial::Serial(Genode::addr_t, Genode::size_t, unsigned baudrate) +:X86_uart(COM1_PORT, 0, baudrate) {} diff --git a/repos/base-hw/src/core/spec/x86_64/muen/serial.h b/repos/base-hw/src/core/spec/x86_64/muen/serial.h deleted file mode 100644 index 121a4a4e67..0000000000 --- a/repos/base-hw/src/core/spec/x86_64/muen/serial.h +++ /dev/null @@ -1,43 +0,0 @@ -/* - * \brief Serial output driver for core - * \author Stefan Kalkowski - * \author Adrian-Ken Rueegsegger - * \date 2015-08-20 - */ - -/* - * Copyright (C) 2012-2017 Genode Labs GmbH - * - * This file is part of the Genode OS framework, which is distributed - * under the terms of the GNU Affero General Public License version 3. - */ - -#ifndef _CORE__SPEC__X86_64__MUEN__SERIAL_H_ -#define _CORE__SPEC__X86_64__MUEN__SERIAL_H_ - -/* Genode includes */ -#include - -namespace Genode { class Serial; } - -/** - * Serial output driver for core - */ -class Genode::Serial : public X86_uart -{ - private: - - enum { - CLOCK_UNUSED = 0, - COM1_PORT = 0x3f8 - }; - - public: - - Serial(unsigned baud_rate) - : - X86_uart(COM1_PORT, CLOCK_UNUSED, baud_rate) - { } -}; - -#endif /* _CORE__SPEC__X86_64__MUEN__SERIAL_H_ */ diff --git a/repos/base-hw/src/core/spec/x86_64/platform_support.cc b/repos/base-hw/src/core/spec/x86_64/platform_support.cc index 465989c35e..0cedb682d6 100644 --- a/repos/base-hw/src/core/spec/x86_64/platform_support.cc +++ b/repos/base-hw/src/core/spec/x86_64/platform_support.cc @@ -11,7 +11,7 @@ * under the terms of the GNU Affero General Public License version 3. */ -/* core includes */ +#include #include #include @@ -29,3 +29,7 @@ void Platform::setup_irq_mode(unsigned irq_number, unsigned trigger, bool Platform::get_msi_params(const addr_t mmconf, addr_t &address, addr_t &data, unsigned &irq_number) { return false; } + + +Board::Serial::Serial(addr_t, size_t, unsigned baudrate) +:X86_uart(Bios_data_area::singleton()->serial_port(), 0, baudrate) {} diff --git a/repos/base-hw/src/core/spec/x86_64/serial.h b/repos/base-hw/src/core/spec/x86_64/serial.h deleted file mode 100644 index d9d1436169..0000000000 --- a/repos/base-hw/src/core/spec/x86_64/serial.h +++ /dev/null @@ -1,41 +0,0 @@ -/* - * \brief Serial output driver for core - * \author Stefan Kalkowski - * \date 2012-10-24 - */ - -/* - * Copyright (C) 2012-2017 Genode Labs GmbH - * - * This file is part of the Genode OS framework, which is distributed - * under the terms of the GNU Affero General Public License version 3. - */ - -#ifndef _CORE__SPEC__X86_64__SERIAL_H_ -#define _CORE__SPEC__X86_64__SERIAL_H_ - -/* Genode includes */ -#include -#include - -namespace Genode { class Serial; } - -/** - * Serial output driver for core - */ -class Genode::Serial : public X86_uart -{ - private: - - enum { CLOCK_UNUSED = 0 }; - - public: - - Serial(unsigned baud_rate) - : - X86_uart(Bios_data_area::singleton()->serial_port(), - CLOCK_UNUSED, baud_rate) - { } -}; - -#endif /* _CORE__SPEC__X86_64__SERIAL_H_ */ diff --git a/repos/base-hw/src/core/spec/xilinx_uartps_0/serial.h b/repos/base-hw/src/core/spec/xilinx_uartps_0/serial.h deleted file mode 100644 index ffec6da028..0000000000 --- a/repos/base-hw/src/core/spec/xilinx_uartps_0/serial.h +++ /dev/null @@ -1,45 +0,0 @@ -/* - * \brief Serial output driver for core - * \author Johannes Schlatow - * \date 2014-12-15 - */ - -/* - * Copyright (C) 2014-2017 Genode Labs GmbH - * - * This file is part of the Genode OS framework, which is distributed - * under the terms of the GNU Affero General Public License version 3. - */ - -#ifndef _CORE__SPEC__XILINX_UARTPS_0__SERIAL_H_ -#define _CORE__SPEC__XILINX_UARTPS_0__SERIAL_H_ - -/* core includes */ -#include -#include - -/* Genode includes */ -#include - -namespace Genode { class Serial; } - -/** - * Serial output driver for core - */ -class Genode::Serial : public Xilinx_uart -{ - public: - - /** - * Constructor - * - * \param baud_rate targeted transfer baud-rate - */ - Serial(unsigned const baud_rate) - : - Xilinx_uart(Platform::mmio_to_virt(Board::UART_0_MMIO_BASE), - Board::UART_CLOCK, baud_rate) - { } -}; - -#endif /* _CORE__SPEC__XILINX_UARTPS_0__SERIAL_H_ */ diff --git a/repos/base-hw/src/core/spec/zynq_qemu/board.h b/repos/base-hw/src/core/spec/zynq_qemu/board.h index 65068d7342..6adfc82f76 100644 --- a/repos/base-hw/src/core/spec/zynq_qemu/board.h +++ b/repos/base-hw/src/core/spec/zynq_qemu/board.h @@ -18,6 +18,7 @@ /* base includes */ #include +#include #include #include @@ -26,6 +27,11 @@ namespace Board { using namespace Zynq_qemu; using Cpu_mmio = Hw::Cortex_a9_mmio; using L2_cache = Hw::Pl310; + using Serial = Genode::Xilinx_uart; + + enum { + UART_BASE = UART_0_MMIO_BASE, + }; static constexpr bool SMP = true; diff --git a/repos/base/mk/spec/exynos5.mk b/repos/base/mk/spec/exynos5.mk index 8152be41d4..694d34bb23 100644 --- a/repos/base/mk/spec/exynos5.mk +++ b/repos/base/mk/spec/exynos5.mk @@ -5,11 +5,10 @@ # # denote specs that are fullfilled by this spec -SPECS += exynos cortex_a15 framebuffer usb +SPECS += cortex_a15 framebuffer usb # add repository relative paths REP_INC_DIR += include/spec/exynos5 -REP_INC_DIR += include/spec/exynos # include implied specs include $(BASE_DIR)/mk/spec/cortex_a15.mk diff --git a/repos/base/mk/spec/imx53.mk b/repos/base/mk/spec/imx53.mk index 74c19a94fa..c0d647a9ba 100644 --- a/repos/base/mk/spec/imx53.mk +++ b/repos/base/mk/spec/imx53.mk @@ -5,11 +5,10 @@ # # denote wich specs are also fullfilled by this spec -SPECS += cortex_a8 imx gpio framebuffer +SPECS += cortex_a8 gpio framebuffer # add repository relative include paths REP_INC_DIR += include/spec/imx53 -REP_INC_DIR += include/spec/imx # include implied specs include $(BASE_DIR)/mk/spec/cortex_a8.mk diff --git a/repos/base/mk/spec/imx6.mk b/repos/base/mk/spec/imx6.mk index a85cdb4158..cff68f5238 100644 --- a/repos/base/mk/spec/imx6.mk +++ b/repos/base/mk/spec/imx6.mk @@ -7,11 +7,10 @@ # # denote wich specs are also fullfilled by this spec -SPECS += cortex_a9 imx +SPECS += cortex_a9 # add repository relative include paths REP_INC_DIR += include/spec/imx6 -REP_INC_DIR += include/spec/imx # include implied specs include $(BASE_DIR)/mk/spec/cortex_a9.mk diff --git a/repos/base/mk/spec/odroid_x2.mk b/repos/base/mk/spec/odroid_x2.mk index 24cc06b51d..3edd01cf2f 100644 --- a/repos/base/mk/spec/odroid_x2.mk +++ b/repos/base/mk/spec/odroid_x2.mk @@ -7,12 +7,11 @@ # # denote specs that are fullfilled by this spec -SPECS += exynos exynos4 cortex_a9 usb framebuffer gpio +SPECS += exynos4 cortex_a9 usb framebuffer gpio # add repository relative paths REP_INC_DIR += include/spec/odroid_x2 REP_INC_DIR += include/spec/exynos4 -REP_INC_DIR += include/spec/exynos # include implied specs include $(BASE_DIR)/mk/spec/cortex_a9.mk diff --git a/repos/base/mk/spec/panda.mk b/repos/base/mk/spec/panda.mk index aaca51c817..ab98946ce0 100644 --- a/repos/base/mk/spec/panda.mk +++ b/repos/base/mk/spec/panda.mk @@ -1,7 +1,7 @@ # # Enable peripherals of the platform # -SPECS += omap4 usb cortex_a9 tl16c750 panda gpio framebuffer +SPECS += omap4 usb cortex_a9 panda gpio framebuffer # # Pull in CPU specifics @@ -14,5 +14,4 @@ SPECS += arm_v7a REP_INC_DIR += include/spec/panda include $(BASE_DIR)/mk/spec/cortex_a9.mk -include $(BASE_DIR)/mk/spec/tl16c750.mk include $(BASE_DIR)/mk/spec/arm_v7a.mk diff --git a/repos/base/mk/spec/pbxa9.mk b/repos/base/mk/spec/pbxa9.mk index 54ae754fb9..4fa3ee9c54 100644 --- a/repos/base/mk/spec/pbxa9.mk +++ b/repos/base/mk/spec/pbxa9.mk @@ -1,7 +1,7 @@ # # Enable peripherals of the platform # -SPECS += pl050 pl11x ps2 pl180 lan9118 pl011 framebuffer +SPECS += pl050 pl11x ps2 pl180 lan9118 framebuffer # # Pull in CPU specifics @@ -14,4 +14,3 @@ SPECS += cortex_a9 REP_INC_DIR += include/spec/pbxa9 include $(BASE_DIR)/mk/spec/cortex_a9.mk -include $(BASE_DIR)/mk/spec/pl011.mk diff --git a/repos/base/mk/spec/pl011.mk b/repos/base/mk/spec/pl011.mk deleted file mode 100644 index 8ff6c0180d..0000000000 --- a/repos/base/mk/spec/pl011.mk +++ /dev/null @@ -1,9 +0,0 @@ -# -# \brief Build-system configurations specifically for the ARM PL011 -# \author Martin Stein -# \date 2011-12-20 -# - -# add repository relative include paths -REP_INC_DIR += include/spec/pl011 - diff --git a/repos/base/mk/spec/rpi.mk b/repos/base/mk/spec/rpi.mk index e1b82818ab..b9dc94055b 100644 --- a/repos/base/mk/spec/rpi.mk +++ b/repos/base/mk/spec/rpi.mk @@ -12,4 +12,3 @@ REP_INC_DIR += include/spec/rpi # include implied specs include $(BASE_DIR)/mk/spec/arm_v6.mk -include $(BASE_DIR)/mk/spec/pl011.mk diff --git a/repos/base/mk/spec/tl16c750.mk b/repos/base/mk/spec/tl16c750.mk deleted file mode 100644 index ebeedec51e..0000000000 --- a/repos/base/mk/spec/tl16c750.mk +++ /dev/null @@ -1,9 +0,0 @@ -# -# \brief Build-system configurations specifically for the TL16C750 -# \author Martin Stein -# \date 2011-12-20 -# - -# add repository relative include paths -REP_INC_DIR += include/spec/tl16c750 - diff --git a/repos/base/mk/spec/zynq_qemu.mk b/repos/base/mk/spec/zynq_qemu.mk index f119a39f1b..75ee033f84 100644 --- a/repos/base/mk/spec/zynq_qemu.mk +++ b/repos/base/mk/spec/zynq_qemu.mk @@ -4,6 +4,5 @@ SPECS += zynq cadence_gem REP_INC_DIR += include/spec/zynq_qemu -REP_INC_DIR += include/spec/xilinx include $(BASE_DIR)/mk/spec/zynq.mk