From cf0d007fd4419012adcca906077ed5a8b1ee19f5 Mon Sep 17 00:00:00 2001 From: Stefan Kalkowski Date: Wed, 2 Feb 2022 16:57:17 +0100 Subject: [PATCH] os: remove imx53 specific platform api and fb_drv Fix #4402 --- repos/base/run/platform_drv.inc | 8 +- .../legacy/imx53/platform_session/client.h | 36 -- .../imx53/platform_session/connection.h | 35 -- .../imx53/platform_session/platform_session.h | 67 --- .../recipes/api/platform_session/content.mk | 1 - .../pkg/drivers_interactive-imx53_qsb/README | 3 - .../drivers_interactive-imx53_qsb/archives | 3 - .../pkg/drivers_interactive-imx53_qsb/hash | 1 - .../drivers_interactive-imx53_qsb/content.mk | 4 - .../drivers.config | 55 -- .../fb_drv.config | 1 - .../raw/drivers_interactive-imx53_qsb/hash | 1 - .../recipes/src/imx53_qsb_drivers/content.mk | 13 - repos/os/recipes/src/imx53_qsb_drivers/hash | 1 - .../recipes/src/imx53_qsb_drivers/used_apis | 8 - .../os/src/drivers/framebuffer/imx53/driver.h | 76 --- repos/os/src/drivers/framebuffer/imx53/ipu.h | 555 ------------------ .../os/src/drivers/framebuffer/imx53/main.cc | 79 --- repos/os/src/drivers/framebuffer/imx53/pwm.h | 36 -- .../src/drivers/framebuffer/imx53/target.mk | 8 - .../src/drivers/platform/legacy/imx53/ccm.h | 94 --- .../src/drivers/platform/legacy/imx53/iim.h | 39 -- .../src/drivers/platform/legacy/imx53/iomux.h | 110 ---- .../src/drivers/platform/legacy/imx53/main.cc | 152 ----- .../src/drivers/platform/legacy/imx53/src.h | 43 -- .../drivers/platform/legacy/imx53/target.mk | 5 - 26 files changed, 2 insertions(+), 1432 deletions(-) delete mode 100644 repos/os/include/legacy/imx53/platform_session/client.h delete mode 100644 repos/os/include/legacy/imx53/platform_session/connection.h delete mode 100644 repos/os/include/legacy/imx53/platform_session/platform_session.h delete mode 100644 repos/os/recipes/pkg/drivers_interactive-imx53_qsb/README delete mode 100644 repos/os/recipes/pkg/drivers_interactive-imx53_qsb/archives delete mode 100644 repos/os/recipes/pkg/drivers_interactive-imx53_qsb/hash delete mode 100644 repos/os/recipes/raw/drivers_interactive-imx53_qsb/content.mk delete mode 100644 repos/os/recipes/raw/drivers_interactive-imx53_qsb/drivers.config delete mode 100644 repos/os/recipes/raw/drivers_interactive-imx53_qsb/fb_drv.config delete mode 100644 repos/os/recipes/raw/drivers_interactive-imx53_qsb/hash delete mode 100644 repos/os/recipes/src/imx53_qsb_drivers/content.mk delete mode 100644 repos/os/recipes/src/imx53_qsb_drivers/hash delete mode 100644 repos/os/recipes/src/imx53_qsb_drivers/used_apis delete mode 100644 repos/os/src/drivers/framebuffer/imx53/driver.h delete mode 100644 repos/os/src/drivers/framebuffer/imx53/ipu.h delete mode 100644 repos/os/src/drivers/framebuffer/imx53/main.cc delete mode 100644 repos/os/src/drivers/framebuffer/imx53/pwm.h delete mode 100644 repos/os/src/drivers/framebuffer/imx53/target.mk delete mode 100644 repos/os/src/drivers/platform/legacy/imx53/ccm.h delete mode 100644 repos/os/src/drivers/platform/legacy/imx53/iim.h delete mode 100644 repos/os/src/drivers/platform/legacy/imx53/iomux.h delete mode 100644 repos/os/src/drivers/platform/legacy/imx53/main.cc delete mode 100644 repos/os/src/drivers/platform/legacy/imx53/src.h delete mode 100644 repos/os/src/drivers/platform/legacy/imx53/target.mk diff --git a/repos/base/run/platform_drv.inc b/repos/base/run/platform_drv.inc index 9b91534c52..56055252bf 100644 --- a/repos/base/run/platform_drv.inc +++ b/repos/base/run/platform_drv.inc @@ -1,7 +1,5 @@ proc have_platform_drv {} { - return [expr [have_board imx53_qsb] \ - || [have_board imx53_qsb_tz] \ - || [have_board pc]] + return [expr [have_board pc]] } @@ -63,9 +61,7 @@ proc append_platform_drv_build_components {} { } proc platform_drv_binary {} { - if {[have_board imx53_qsb]} { return legacy_imx53_platform_drv } - if {[have_board imx53_qsb_tz]} { return legacy_imx53_platform_drv } - if {[have_board pc]} { return legacy_pc_platform_drv } + if {[have_board pc]} { return legacy_pc_platform_drv } return no_platform_drv_available } diff --git a/repos/os/include/legacy/imx53/platform_session/client.h b/repos/os/include/legacy/imx53/platform_session/client.h deleted file mode 100644 index dfeb447fe1..0000000000 --- a/repos/os/include/legacy/imx53/platform_session/client.h +++ /dev/null @@ -1,36 +0,0 @@ -/* - * \brief i.MX53 specific platform session client side - * \author Stefan Kalkowski -#include -#include - -namespace Platform { struct Client; } - - -struct Platform::Client : Genode::Rpc_client -{ - explicit Client(Genode::Capability session) - : Genode::Rpc_client(session) { } - - void enable(Device dev) override { call(dev); } - void disable(Device dev) override { call(dev); } - void clock_rate(Device dev, unsigned long rate) override { - call(dev, rate); } - Board_revision revision() override { return call(); } -}; - -#endif /* _INCLUDE__LEGACY__IMX53__PLATFORM_SESSION__CLIENT_H_ */ diff --git a/repos/os/include/legacy/imx53/platform_session/connection.h b/repos/os/include/legacy/imx53/platform_session/connection.h deleted file mode 100644 index 5ed6d968ed..0000000000 --- a/repos/os/include/legacy/imx53/platform_session/connection.h +++ /dev/null @@ -1,35 +0,0 @@ -/* - * \brief Connection to platform service - * \author Stefan Kalkowski - * \date 2013-04-29 - */ - -/* - * 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 _INCLUDE__LEGACY__IMX53__PLATFORM_SESSION__CONNECTION_H_ -#define _INCLUDE__LEGACY__IMX53__PLATFORM_SESSION__CONNECTION_H_ - -#include -#include -#include - -namespace Platform { struct Connection; } - - -struct Platform::Connection : Genode::Connection, Client -{ - /** - * Constructor - */ - Connection(Genode::Env &env) - : Genode::Connection(env, session(env.parent(), - "ram_quota=6K, cap_quota=%u", CAP_QUOTA)), - Client(cap()) { } -}; - -#endif /* _INCLUDE__LEGACY__IMX53__PLATFORM_SESSION__CONNECTION_H_ */ diff --git a/repos/os/include/legacy/imx53/platform_session/platform_session.h b/repos/os/include/legacy/imx53/platform_session/platform_session.h deleted file mode 100644 index 186f2a6978..0000000000 --- a/repos/os/include/legacy/imx53/platform_session/platform_session.h +++ /dev/null @@ -1,67 +0,0 @@ -/* - * \brief i.MX53 specific platform session - * \author Stefan Kalkowski -#include - -namespace Platform { struct Session; } - - -struct Platform::Session : Genode::Session -{ - enum Device { - IPU, - I2C_2, - I2C_3, - BUTTONS, - PWM, - }; - - enum Board_revision { - SMD = 2, /* Freescale i.MX53 SMD Tablet */ - QSB = 3, /* Freescale i.MX53 low-cost Quickstart board */ - UNKNOWN, - }; - - /** - * \noapi - */ - static const char *service_name() { return "Platform"; } - - enum { CAP_QUOTA = 2 }; - - virtual ~Session() { } - - virtual void enable(Device dev) = 0; - virtual void disable(Device dev) = 0; - virtual void clock_rate(Device dev, unsigned long rate) = 0; - virtual Board_revision revision() = 0; - - - /********************* - ** RPC declaration ** - *********************/ - - GENODE_RPC(Rpc_enable, void, enable, Device); - GENODE_RPC(Rpc_disable, void, disable, Device); - GENODE_RPC(Rpc_clock_rate, void, clock_rate, Device, unsigned long); - GENODE_RPC(Rpc_revision, Board_revision, revision); - - GENODE_RPC_INTERFACE(Rpc_enable, Rpc_disable, Rpc_clock_rate, - Rpc_revision); -}; - -#endif /* _INCLUDE__LEGACY__IMX53__PLATFORM_SESSION__PLATFORM_SESSION_H_ */ diff --git a/repos/os/recipes/api/platform_session/content.mk b/repos/os/recipes/api/platform_session/content.mk index 6aa3f147a6..eab9147ce0 100644 --- a/repos/os/recipes/api/platform_session/content.mk +++ b/repos/os/recipes/api/platform_session/content.mk @@ -1,5 +1,4 @@ INCLUDE_SUB_DIRS := platform_session \ - legacy/imx53/platform_session \ legacy/x86/platform_session \ legacy/x86/platform_device diff --git a/repos/os/recipes/pkg/drivers_interactive-imx53_qsb/README b/repos/os/recipes/pkg/drivers_interactive-imx53_qsb/README deleted file mode 100644 index 9eace7d907..0000000000 --- a/repos/os/recipes/pkg/drivers_interactive-imx53_qsb/README +++ /dev/null @@ -1,3 +0,0 @@ - - Device drivers needed to run interactive - scenarios on i.MX53 Quickstart Board diff --git a/repos/os/recipes/pkg/drivers_interactive-imx53_qsb/archives b/repos/os/recipes/pkg/drivers_interactive-imx53_qsb/archives deleted file mode 100644 index 859cc99525..0000000000 --- a/repos/os/recipes/pkg/drivers_interactive-imx53_qsb/archives +++ /dev/null @@ -1,3 +0,0 @@ -_/src/platform_drv -_/src/imx53_qsb_drivers -_/raw/drivers_interactive-imx53_qsb diff --git a/repos/os/recipes/pkg/drivers_interactive-imx53_qsb/hash b/repos/os/recipes/pkg/drivers_interactive-imx53_qsb/hash deleted file mode 100644 index 3a395ddc4f..0000000000 --- a/repos/os/recipes/pkg/drivers_interactive-imx53_qsb/hash +++ /dev/null @@ -1 +0,0 @@ -2022-01-18 adfec25dff593f5fdb159fb542b6475ab9e9f4ba diff --git a/repos/os/recipes/raw/drivers_interactive-imx53_qsb/content.mk b/repos/os/recipes/raw/drivers_interactive-imx53_qsb/content.mk deleted file mode 100644 index 2f5e23df09..0000000000 --- a/repos/os/recipes/raw/drivers_interactive-imx53_qsb/content.mk +++ /dev/null @@ -1,4 +0,0 @@ -content: drivers.config fb_drv.config - -drivers.config fb_drv.config: - cp $(REP_DIR)/recipes/raw/drivers_interactive-imx53_qsb/$@ $@ diff --git a/repos/os/recipes/raw/drivers_interactive-imx53_qsb/drivers.config b/repos/os/recipes/raw/drivers_interactive-imx53_qsb/drivers.config deleted file mode 100644 index 36237c60df..0000000000 --- a/repos/os/recipes/raw/drivers_interactive-imx53_qsb/drivers.config +++ /dev/null @@ -1,55 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/repos/os/recipes/raw/drivers_interactive-imx53_qsb/fb_drv.config b/repos/os/recipes/raw/drivers_interactive-imx53_qsb/fb_drv.config deleted file mode 100644 index badf7e7ae7..0000000000 --- a/repos/os/recipes/raw/drivers_interactive-imx53_qsb/fb_drv.config +++ /dev/null @@ -1 +0,0 @@ - diff --git a/repos/os/recipes/raw/drivers_interactive-imx53_qsb/hash b/repos/os/recipes/raw/drivers_interactive-imx53_qsb/hash deleted file mode 100644 index 4a11b6ffaf..0000000000 --- a/repos/os/recipes/raw/drivers_interactive-imx53_qsb/hash +++ /dev/null @@ -1 +0,0 @@ -2022-01-18 9bd966603f5216a24dc0680a3d42e1b9bc85722d diff --git a/repos/os/recipes/src/imx53_qsb_drivers/content.mk b/repos/os/recipes/src/imx53_qsb_drivers/content.mk deleted file mode 100644 index 1c76b462ce..0000000000 --- a/repos/os/recipes/src/imx53_qsb_drivers/content.mk +++ /dev/null @@ -1,13 +0,0 @@ -include $(GENODE_DIR)/repos/base/recipes/src/content.inc - -content: src/drivers include/gpio - -include/gpio: - mkdir -p include - cp -r $(REP_DIR)/include/gpio $@ - -src/drivers: - mkdir -p $@/framebuffer $@/gpio - cp -r $(REP_DIR)/src/drivers/gpio/imx $@/gpio/ - cp -r $(REP_DIR)/src/drivers/framebuffer/imx53 $@/framebuffer/ - cp -r $(REP_DIR)/include/spec/imx53/imx_framebuffer_session $@/framebuffer/imx53/ diff --git a/repos/os/recipes/src/imx53_qsb_drivers/hash b/repos/os/recipes/src/imx53_qsb_drivers/hash deleted file mode 100644 index 43f41fa6ac..0000000000 --- a/repos/os/recipes/src/imx53_qsb_drivers/hash +++ /dev/null @@ -1 +0,0 @@ -2022-01-18 49f81fada899e3f40abeed62b0db6ec4128b210a diff --git a/repos/os/recipes/src/imx53_qsb_drivers/used_apis b/repos/os/recipes/src/imx53_qsb_drivers/used_apis deleted file mode 100644 index 22164f3795..0000000000 --- a/repos/os/recipes/src/imx53_qsb_drivers/used_apis +++ /dev/null @@ -1,8 +0,0 @@ -base -os -blit -platform_session -gpio_session -capture_session -input_session -timer_session diff --git a/repos/os/src/drivers/framebuffer/imx53/driver.h b/repos/os/src/drivers/framebuffer/imx53/driver.h deleted file mode 100644 index 36b37f9eef..0000000000 --- a/repos/os/src/drivers/framebuffer/imx53/driver.h +++ /dev/null @@ -1,76 +0,0 @@ -/* - * \brief Frame-buffer driver for Freescale's i.MX53 - * \author Nikolay Golikov - * \author Stefan Kalkowski - * \date 2012-06-21 - */ - -/* - * Copyright (C) 2009-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 _DRIVERS__FRAMEBUFFER__SPEC__IMX53__DRIVER_H_ -#define _DRIVERS__FRAMEBUFFER__SPEC__IMX53__DRIVER_H_ - -/* Genode includes */ -#include -#include -#include -#include -#include -#include - -/* local includes */ -#include - -namespace Framebuffer { - using namespace Genode; - using Area = Capture::Area; - class Driver; -}; - - -class Framebuffer::Driver -{ - private: - - Genode::Env &_env; - - Platform::Connection _platform; - Attached_io_mem_dataspace _ipu_mmio; - Ipu _ipu; - bool _disp0; - size_t _width; - size_t _height; - - public: - - enum Resolutions { BYTES_PER_PIXEL = 4 }; - - Driver(Genode::Env &env, Genode::Xml_node config) - : _env(env), - _platform(_env), - _ipu_mmio(_env, Imx53::IPU_BASE, Imx53::IPU_SIZE), - _ipu((addr_t)_ipu_mmio.local_addr()), - _disp0(config.attribute_value("display", 0) == 0), - _width(config.attribute_value("width", 800)), - _height(config.attribute_value("height", 480)) { } - - bool init(addr_t phys_base) - { - /* enable IPU via platform driver */ - _platform.enable(Platform::Session::IPU); - _ipu.init(_width, _height, _width * BYTES_PER_PIXEL, - phys_base, _disp0); - return true; - } - - Area screen_size() const { return Area { _width, _height }; } - - Ipu &ipu() { return _ipu; } -}; - -#endif /* _DRIVERS__FRAMEBUFFER__SPEC__IMX53__DRIVER_H_ */ diff --git a/repos/os/src/drivers/framebuffer/imx53/ipu.h b/repos/os/src/drivers/framebuffer/imx53/ipu.h deleted file mode 100644 index 4d9067e798..0000000000 --- a/repos/os/src/drivers/framebuffer/imx53/ipu.h +++ /dev/null @@ -1,555 +0,0 @@ -/* - * \brief Image Processing Unit registers - * \author Nikolay Golikov - * \author Stefan Kalkowski - * \date 2012-11-10 - */ - -/* - * Copyright (C) 2009-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 _DRIVERS__FRAMEBUFFER__SPEC__IMX53__IPU_H_ -#define _DRIVERS__FRAMEBUFFER__SPEC__IMX53__IPU_H_ - -/* Genode includes */ -#include -#include -#include - - -class Ipu : Genode::Mmio -{ - private: - - enum { REGS_OFF = 0x6000000 }; - - struct Conf : Register<0x0, 32> { }; - - template - struct Int_ctrl : Register<0x3c+(NR*4), 32> { }; - - struct Srm_pri2 : Register<0xa4, 32> - { - struct Dp_m_srm : Bitfield<3,2> { enum { UPDATE_NOW = 1 }; }; - }; - struct Disp_gen : Register<0xc4, 32> { }; - struct Mem_rst : Register<0xdc, 32> { }; - struct Pm : Register<0xe0, 32> { }; - struct Gpr : Register<0xe4, 32> { }; - struct Ch_db_mode_sel0 : Register<0x150, 32> { }; - struct Alt_ch_trb_mode_sel0 : Register<0x178, 32> { }; - struct Cur_buf_0 : Register<0x23c, 32> { }; - struct Triple_cur_buf_1 : Register<0x25c, 32> { }; - struct Ch_buf0_rdy0 : Register<0x268, 32> { }; - struct Ch_buf1_rdy0 : Register<0x270, 32> { }; - - - /************************************** - ** Image DMA controller registers ** - **************************************/ - - enum Idmac_channels { - CHAN_DP_PRIMARY_MAIN = 23, - CHAN_DP_PRIMARY_AUXI = 27, - CHAN_DC_SYNC_FLOW = 28 - }; - - struct Idmac_ch_en : Register_array<0x8004, 32, 32, 1> - { - struct Ch : Bitfield<0, 1> { }; - }; - - struct Idmac_ch_pri_1 : Register<0x8014, 32> { }; - - struct Idmac_wm_en : Register_array<0x801c, 32, 32, 1> - { - struct Ch : Bitfield<0, 1> { }; - }; - - struct Idmac_ch_lock_en_1 : Register<0x8024, 32> { }; - - - /*********************************** - ** Display processor registers ** - ***********************************/ - - struct Dp_com_conf : Register<0x1040000, 32> { }; - struct Dp_fg_pos_sync : Register<0x1040008, 32> { }; - struct Gr_wnd_ctl_sync : Register<0x1040004, 32> { }; - - - /*********************************** - ** Display interface registers ** - ***********************************/ - - template - struct Di - { - struct General : Register { }; - struct Bs_clkgen0 : Register { }; - struct Bs_clkgen1 : Register { }; - template - struct Sync_wave_gen0 : Register<0xc+OFF+(NR*4), 32> { }; - template - struct Sync_wave_gen1 : Register<0x30+OFF+(NR*4), 32> { }; - - struct Sync_as_gen : Register { }; - - template - struct Dw_gen : Register<0x58 + OFF + (NR*4), 32> { }; - template - struct Dw_set3 : Register<0x118 + OFF + (NR*4), 32> { }; - template - struct Step_repeat : Register<0x148 + OFF + (NR*4), 32> { }; - - struct Polarity : Register { }; - struct Scr_conf : Register { }; - }; - - typedef Di<0x40000> Di0; - typedef Di<0x48000> Di1; - - - /************************************ - ** Display controller registers ** - ************************************/ - - struct Dc_wr_ch_conf_5 : Register<0x5805c, 32> { }; - struct Dc_wr_ch_addr_5 : Register<0x58060, 32> { }; - template - struct Dc_rl_ch_5 : Register<0x58064+(NR*4), 32> { }; - struct Dc_gen : Register<0x580d4, 32> { }; - struct Dc_disp_conf2_0 : Register<0x580e8, 32> { }; - struct Dc_disp_conf2_1 : Register<0x580ec, 32> { }; - template - struct Dc_map_conf : Register<0x58108+(NR*4), 32> { }; - template - struct Dc_template : Register<0x1080000+(NR*4), 32> { }; - - - /*********************************************** - ** Display multi FIFO controller registers ** - ***********************************************/ - - struct Dmfc_wr_chan : Register<0x60004, 32> { }; - struct Dmfc_wr_chan_def : Register<0x60008, 32> { }; - struct Dmfc_dp_chan : Register<0x6000c, 32> { }; - struct Dmfc_dp_chan_def : Register<0x60010, 32> { }; - struct Dmfc_general_1 : Register<0x60014, 32> { }; - struct Dmfc_ic_ctrl : Register<0x6001c, 32> { }; - - - class Cp_mem - { - public: - - enum { OFFSET = 0x1000000 }; - - struct - { - unsigned xv : 10; /* XV Virtual Coordinate */ - unsigned yv : 9; /* YV Virtual Coordinate */ - unsigned xb : 13; /* XB inner Block Coordinate */ - unsigned yb : 12; /* YB inner Block Coordinate */ - unsigned nsb_b : 1; /* New Sub Block */ - unsigned cf : 1; /* Current Field */ - unsigned sx : 12; /* Scroll X counter */ - unsigned sy : 11; /* Scroll Y counter */ - unsigned ns : 10; /* Number of Scroll */ - unsigned sdx : 7; /* Scroll Delta X */ - unsigned sm : 10; /* Scroll Max */ - unsigned scc : 1; /* Scrolling Configuration */ - unsigned sce : 1; /* Scrolling Enable */ - unsigned sdy : 7; /* Scroll Delta Y */ - unsigned sdrx : 1; /* Scroll Horizontal Direction */ - unsigned sdry : 1; /* Scroll Vertical Direction */ - unsigned bpp : 3; /* Bits per Pixel */ - unsigned dec_sel : 2; /* Decode Address Select */ - unsigned dim : 1; /* Access Dimension */ - unsigned so : 1; /* Scan Order */ - unsigned bndm : 3; /* Band Mode */ - unsigned bm : 2; /* Block Mode */ - unsigned rot : 1; /* Rotation */ - unsigned hf : 1; /* Horizontal Flip */ - unsigned vf : 1; /* Vertical Flip */ - unsigned the : 1; /* Threshold Enable */ - unsigned cap : 1; /* Conditional Access Polarity */ - unsigned cae : 1; /* Conditional Access Enable */ - unsigned fw : 13; /* Frame Width */ - unsigned fh : 12; /* Frame Height */ - unsigned res0 : 10; /* reserved */ - Genode::uint32_t res1[3]; - - unsigned eba0 : 29; /* Ext Mem Buffer 0 Address */ - unsigned eba1 : 29; /* Ext Mem Buffer 1 Address */ - unsigned ilo : 20; /* Interlace Offset */ - unsigned npb : 7; /* Number of Pixels in Whole Burst Access */ - unsigned pfs : 4; /* Pixel Format Select */ - unsigned alu : 1; /* Alpha Used */ - unsigned albm : 3; /* Alpha Channel Mapping */ - unsigned id : 2; /* AXI ID */ - unsigned th : 7; /* Threshold */ - unsigned sly : 14; /* Stride Line */ - unsigned wid0 : 3; /* Width0 */ - unsigned wid1 : 3; /* Width1 */ - unsigned wid2 : 3; /* Width2 */ - unsigned wid3 : 3; /* Width3 */ - unsigned off0 : 5; /* Offset0 */ - unsigned off1 : 5; /* Offset1 */ - unsigned off2 : 5; /* Offset2 */ - unsigned off3 : 5; /* Offset3 */ - unsigned sxys : 1; /* Select SX SY Set */ - unsigned cre : 1; /* Conditional Read Enable */ - unsigned dec_sel2 : 1; /* Decode Address Select bit[2] */ - unsigned res2 : 9; /* reserved */ - Genode::uint32_t res3[3]; - } __attribute__((packed)); - - Cp_mem() { Genode::memset(this, 0, sizeof(Cp_mem)); } - } __attribute__((packed)); - - - void _init_dma_channel(unsigned channel, - Genode::uint16_t width, Genode::uint16_t height, - Genode::uint32_t stride, Genode::addr_t phys_base) - { - void *dst =(void*)(base() + Cp_mem::OFFSET + channel*sizeof(Cp_mem)); - Cp_mem cpmem; - - cpmem.fw = width - 1; - cpmem.fh = height - 1; - cpmem.sly = stride - 1; - cpmem.eba0 = phys_base >> 3; - cpmem.eba1 = phys_base >> 3; - cpmem.bpp = 0; /* corresponds to 32BPP */ - cpmem.pfs = 7; /* corresponds to RGB */ - cpmem.npb = 15; - - /* red */ - cpmem.wid0 = 7; - cpmem.off0 = 8; - - /* green */ - cpmem.wid1 = 7; - cpmem.off1 = 16; - - /* blue */ - cpmem.wid2 = 7; - cpmem.off2 = 24; - - /* alpha */ - cpmem.wid3 = 7; - cpmem.off3 = 0; - - Genode::memcpy(dst, (void*)&cpmem, sizeof(Cp_mem)); - } - - - void _init_di0(Genode::uint16_t width, Genode::uint16_t height, - Genode::uint32_t stride, Genode::addr_t phys_base) - { - /* set MCU_T to divide MCU access window into 2 */ - write(0x1600000); // ?= 0x600000 - - /* link display controller events */ - write >(0x5030000); - write >(0x602); - write >(0x701); - write >(0x5030000); - write >(0x0); - write >(0x0); - write >(0x602); - write >(0x0); - write >(0x0); - - write(0x2); - write(0x0); - - write(0x84); - - - /************************* - ** Display interface ** - *************************/ - - /* clear DI */ - write(0x200000); - - /* initialize display interface 0 */ - write(0x38); - write(0x30000); - write >(0x2020300); - write >(0x60000); - write >(0x21310000); - write >(0x10000000); - write >(0x21310001); - write >(0x30141000); - write >(0x0); - write >(0x10520000); - write >(0x30142000); - write(0x20a); - write >(0x3010b); - write >(0x8000000); - write >(0x1e00000); - write >(0x10319); - write >(0xa000000); - write >(0x0); - write >(0x0); - write >(0x0); - write >(0x0); - write >(0x0); - write >(0x0); - write >(0x0); - write >(0x0); - write >(0x320); - write >(0x0); - write >(0x0); - - /* write display connection microcode */ - write >(0x8885); - write >(0x380); - write >(0x8845); - write >(0x380); - write >(0x8805); - write >(0x380); - - write(0x220000); - write(0x2002); - write(0x200000); - write(0x4002); - - write(0x10); - write(0x320); - - /* init IDMAC channels */ - _init_dma_channel(CHAN_DP_PRIMARY_MAIN, width, height, stride, phys_base); - _init_dma_channel(CHAN_DP_PRIMARY_AUXI, width, height, stride, phys_base); - - /* round robin for simultaneous synchronous flows from DC & DP */ - write(0x3); - - /* enable DP, DI0, DC, DMFC */ - write(0x660); - - /* use double buffer for main DMA channel */ - write(1 << CHAN_DP_PRIMARY_MAIN | - 1 << CHAN_DP_PRIMARY_AUXI); - - /* buffer used by DMA channel is buffer 1 */ - write(1 << CHAN_DP_PRIMARY_MAIN); - - write(0x82); - - /* Enable IDMAC channels */ - write(1, CHAN_DP_PRIMARY_MAIN); - write(1, CHAN_DP_PRIMARY_AUXI); - } - - void _init_di1(Genode::uint16_t width, Genode::uint16_t height, - Genode::uint32_t stride, Genode::addr_t phys_base) - { - write(0x600000); //write(0x2400000); - - write(0); - write(Srm_pri2::Dp_m_srm::UPDATE_NOW); - - write >(0x2030000); - write >(0); - write >(0x302); - write >(0); - write >(0x401); - write(0xe); - write(0x0); - write(0x84); - - write(0); - - write(0x200000); - write(0x300000); - - write(0x10); - write(0x10000); - - write(0x10101010); - - write >(0x300); - write >(0x20000); - write >(0x29f90000); - write >(0x10000000); - write >(0x0); - write >(0x29f90001); - write >(0x30781000); - write >(0x0); - write >(0x192a0000); - write >(0x30142000); - write >(0x3000000); - write(0x325); - write >(0x300fb); - write >(0x8000000); - write >(0x3000000); - write >(0x108c1); - write >(0xa000000); - write >(0x400); - write >(0x29f90091); - write >(0x30781000); - write >(0x0); - write >(0x192a000a); - write >(0x30142000); - write >(0x0); - write >(0x0); - write >(0x0); - write >(0x0); - write >(0x0); - write >(0x0); - write >(0x400); - - write >(0x90011); - write >(0x4000000); - write >(0x28a0400); - - write >(0x10885); - write >(0x380); - write >(0x845); - write >(0x280); - write >(0x10805); - write >(0x380); - - write(0x6300000); - write(0x4000); - - write(0x10); - write(0x400); - - _init_dma_channel(CHAN_DP_PRIMARY_MAIN, width, height, stride, phys_base); - _init_dma_channel(CHAN_DP_PRIMARY_AUXI, width, height, stride, phys_base); - - /* use double buffer for main DMA channel */ - write(1 << CHAN_DP_PRIMARY_MAIN | - 1 << CHAN_DP_PRIMARY_AUXI); - - /* buffer used by DMA channel is buffer 1 */ - write(1 << CHAN_DP_PRIMARY_MAIN); - - write(0x6a0); - - /* Enable IDMAC channels */ - write(1, CHAN_DP_PRIMARY_MAIN); - write(1, CHAN_DP_PRIMARY_AUXI); - - write(1 << CHAN_DP_PRIMARY_MAIN | - 1 << CHAN_DP_PRIMARY_AUXI); - - write(0x8e); - - write(0x2600000); - } - - public: - - /** - * IPU initialization - */ - void init(Genode::uint16_t width, Genode::uint16_t height, - Genode::uint32_t stride, Genode::addr_t phys_base, - bool di0) - { - /* stop pixel clocks */ - write(0); - write(0); - - /* reset IPU memory buffers */ - write(0x807fffff); - while (read() & 0x80000000) ; - - /* initialize pixel format mappings for display controller */ - write >(0x14830820); - write >(0x2d4920e6); - write >(0x39ac); - write >(0xfff07ff); - write >(0x5fc17ff); - write >(0x11fc0bfc); - write >(0x17ff0fff); - write >(0x4f807ff); - write >(0xff80afc); - write >(0xdfc05fc); - write >(0x15fc); - - /* clear interrupt control registers */ - write >(0); - write >(0); - write >(0); - write >(0); - - /* disable DMFC channel from image converter */ - write(0x2); - - /* set DMFC FIFO for idma channels */ - write(0x90); /* channel CHAN_DC_SYNC_FLOW */ - write(0x202020f6); - write(0x968a); /* channels CHAN_DP_PRIMARY_XXX */ - write(0x2020f6f6); - write(0x3); - - /* set idma channels 23, 27, 28 as high priority */ - write(1 << CHAN_DP_PRIMARY_MAIN | - 1 << CHAN_DP_PRIMARY_AUXI | - 1 << CHAN_DC_SYNC_FLOW); - - /* - * generate 8 AXI bursts upon the assertion of DMA request - * for our channels - */ - write(0x3f0000); - - if (di0) - _init_di0(width, height, stride, phys_base); - else - _init_di1(width, height, stride, phys_base); - - - /************************ - ** overlay settings ** - ************************/ - - write(1 << 0); - write(Srm_pri2::Dp_m_srm::UPDATE_NOW); - - write(16); - write(Srm_pri2::Dp_m_srm::UPDATE_NOW); - - write(1 << 0 | 1 << 2); - write(Srm_pri2::Dp_m_srm::UPDATE_NOW); - - write(0xff000000); - write(Srm_pri2::Dp_m_srm::UPDATE_NOW); - } - - - void overlay(Genode::addr_t phys_base, int x, int y, int alpha) - { - volatile Genode::uint32_t *ptr = (volatile Genode::uint32_t*) - (base() + Cp_mem::OFFSET + CHAN_DP_PRIMARY_AUXI*sizeof(Cp_mem)); - ptr[8] = (((phys_base >> 3) & 0b111) << 29) | (phys_base >> 3); - ptr[9] = (phys_base >> 6); - - write(x << 16 | y); - write(Srm_pri2::Dp_m_srm::UPDATE_NOW); - - write(alpha << 24); - write(Srm_pri2::Dp_m_srm::UPDATE_NOW); - } - - - /** - * Constructor - * - * \param mmio_base base address of IPU - */ - Ipu(Genode::addr_t mmio_base) : Genode::Mmio(mmio_base + REGS_OFF) { } -}; - -#endif /* _DRIVERS__FRAMEBUFFER__SPEC__IMX53__IPU_H_ */ diff --git a/repos/os/src/drivers/framebuffer/imx53/main.cc b/repos/os/src/drivers/framebuffer/imx53/main.cc deleted file mode 100644 index 87cfa54947..0000000000 --- a/repos/os/src/drivers/framebuffer/imx53/main.cc +++ /dev/null @@ -1,79 +0,0 @@ -/* - * \brief Frame-buffer driver for the i.MX53 - * \author Nikolay Golikov - * \author Stefan Kalkowski - * \author Norman Feske - * \date 2012-06-21 - */ - -/* - * Copyright (C) 2012-2020 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. - */ - -/* Genode includes */ -#include -#include -#include -#include -#include -#include - -/* local includes */ -#include - -namespace Framebuffer { - using namespace Genode; - struct Main; -}; - - -struct Framebuffer::Main -{ - using Pixel = Capture::Pixel; - - Env &_env; - - Attached_rom_dataspace _config { _env, "config" }; - - Driver _driver { _env, _config.xml() }; - - Area const _size = _driver.screen_size(); - - Attached_ram_dataspace _fb_ds { _env.ram(), _env.rm(), - _size.count()*sizeof(Pixel), WRITE_COMBINED }; - - Capture::Connection _capture { _env }; - - Capture::Connection::Screen _captured_screen { _capture, _env.rm(), _size }; - - Timer::Connection _timer { _env }; - - Signal_handler
_timer_handler { _env.ep(), *this, &Main::_handle_timer }; - - void _handle_timer() - { - Surface surface(_fb_ds.local_addr(), _size); - - _captured_screen.apply_to_surface(surface); - } - - Main(Env &env) : _env(env) - { - log("--- i.MX53 framebuffer driver ---"); - - if (!_driver.init(Dataspace_client(_fb_ds.cap()).phys_addr())) { - error("could not initialize display"); - struct Could_not_initialize_display : Exception { }; - throw Could_not_initialize_display(); - } - - _timer.sigh(_timer_handler); - _timer.trigger_periodic(10*1000); - } -}; - - -void Component::construct(Genode::Env &env) { static Framebuffer::Main main(env); } diff --git a/repos/os/src/drivers/framebuffer/imx53/pwm.h b/repos/os/src/drivers/framebuffer/imx53/pwm.h deleted file mode 100644 index 35cb69bb0a..0000000000 --- a/repos/os/src/drivers/framebuffer/imx53/pwm.h +++ /dev/null @@ -1,36 +0,0 @@ -/* - * \brief Pulse width modulation - * \author Stefan Kalkowski - * \date 2013-03-05 - */ - -/* - * 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 _DRIVERS__FRAMEBUFFER__SPEC__IMX53__PWM_H_ -#define _DRIVERS__FRAMEBUFFER__SPEC__IMX53__PWM_H_ - -/* Genode includes */ -#include - -struct Pwm : Genode::Mmio -{ - struct Control : Register<0x0, 32> {}; - struct Sample : Register<0xc, 32> {}; - struct Period : Register<0x10,32> {}; - - Pwm(Genode::addr_t const mmio_base) : Genode::Mmio(mmio_base) { } - - void enable_display() - { - write(0x64); - write(0x64); - write(0x3c20001); - } -}; - -#endif /* _DRIVERS__FRAMEBUFFER__SPEC__IMX53__PWM_H_ */ diff --git a/repos/os/src/drivers/framebuffer/imx53/target.mk b/repos/os/src/drivers/framebuffer/imx53/target.mk deleted file mode 100644 index 16ea999700..0000000000 --- a/repos/os/src/drivers/framebuffer/imx53/target.mk +++ /dev/null @@ -1,8 +0,0 @@ -TARGET = imx53_fb_drv -REQUIRES = arm_v7 -SRC_CC = main.cc -LIBS = base blit -INC_DIR += $(PRG_DIR) -INC_DIR += $(call select_from_repositories,include/spec/imx53) - -CC_CXX_WARN_STRICT_CONVERSION = diff --git a/repos/os/src/drivers/platform/legacy/imx53/ccm.h b/repos/os/src/drivers/platform/legacy/imx53/ccm.h deleted file mode 100644 index c8783a4579..0000000000 --- a/repos/os/src/drivers/platform/legacy/imx53/ccm.h +++ /dev/null @@ -1,94 +0,0 @@ -/* - * \brief Clock control module register description - * \author Nikolay Golikov - * \author Stefan Kalkowski - * \date 2013-04-29 - */ - -/* - * 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 _DRIVERS__PLATFORM__SPEC__IMX53__CCM_H_ -#define _DRIVERS__PLATFORM__SPEC__IMX53__CCM_H_ - -/* Genode includes */ -#include -#include -#include - -class Ccm : public Genode::Attached_io_mem_dataspace, - Genode::Mmio -{ - private: - - /** - * Control divider register - */ - struct Ccdr : Register<0x4, 32> - { - struct Ipu_hs_mask : Bitfield <21, 1> { }; - }; - - /** - * Serial Clock Multiplexer Register 2 - */ - struct Cscmr2 : Register<0x20, 32> {}; - - /** - * D1 Clock Divider Register - */ - struct Cdcdr : Register<0x30, 32> {}; - - /** - * Low power control register - */ - struct Clpcr : Register<0x54, 32> - { - struct Bypass_ipu_hs : Bitfield<18, 1> { }; - }; - - struct Ccgr1 : Register<0x6c, 32> - { - struct I2c_1 : Bitfield<18, 2> { }; - struct I2c_2 : Bitfield<20, 2> { }; - struct I2c_3 : Bitfield<22, 2> { }; - }; - - struct Ccgr5 : Register<0x7c, 32> - { - struct Ipu : Bitfield<10, 2> { }; - }; - - public: - - Ccm(Genode::Env &env) - : Genode::Attached_io_mem_dataspace(env, Imx53::CCM_BASE, - Imx53::CCM_SIZE), - Genode::Mmio((Genode::addr_t)local_addr()) { } - - void i2c_1_enable(void) { write(3); } - void i2c_2_enable(void) { write(3); } - void i2c_3_enable(void) { write(3); } - - void ipu_clk_enable(void) - { - write(3); - write(0); - write(0); - write(0xa2b32f0b); - write(0x14370092); - } - - void ipu_clk_disable(void) - { - write(0); - write(1); - write(1); - } -}; - -#endif /* _DRIVERS__PLATFORM__SPEC__IMX53__CCM_H_ */ diff --git a/repos/os/src/drivers/platform/legacy/imx53/iim.h b/repos/os/src/drivers/platform/legacy/imx53/iim.h deleted file mode 100644 index 11c3e24015..0000000000 --- a/repos/os/src/drivers/platform/legacy/imx53/iim.h +++ /dev/null @@ -1,39 +0,0 @@ -/* - * \brief IC identification module register description - * \author Stefan Kalkowski - * \date 2013-04-29 - */ - -/* - * 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 _DRIVERS__PLATFORM__SPEC__IMX53__IIM_H_ -#define _DRIVERS__PLATFORM__SPEC__IMX53__IIM_H_ - -/* Genode includes */ -#include -#include -#include - -class Iim : public Genode::Attached_io_mem_dataspace, - Genode::Mmio -{ - private: - - struct Fuse_bank0_gp6 : Register<0x878, 32> {}; - - public: - - Iim(Genode::Env &env) - : Genode::Attached_io_mem_dataspace(env, Imx53::IIM_BASE, - Imx53::IIM_SIZE), - Genode::Mmio((Genode::addr_t)local_addr()) {} - - unsigned long revision() { return read() & 0xf; } -}; - -#endif /* _DRIVERS__PLATFORM__SPEC__IMX53__IIM_H_ */ diff --git a/repos/os/src/drivers/platform/legacy/imx53/iomux.h b/repos/os/src/drivers/platform/legacy/imx53/iomux.h deleted file mode 100644 index a8d01ffcda..0000000000 --- a/repos/os/src/drivers/platform/legacy/imx53/iomux.h +++ /dev/null @@ -1,110 +0,0 @@ -/* - * \brief IOMUX controller register description - * \author Stefan Kalkowski - * \date 2013-04-29 - */ - -/* - * 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 _DRIVERS__PLATFORM__SPEC__IMX53__IOMUX_H_ -#define _DRIVERS__PLATFORM__SPEC__IMX53__IOMUX_H_ - -/* Genode includes */ -#include -#include -#include - -class Iomux : public Genode::Attached_io_mem_dataspace, - Genode::Mmio -{ - private: - - struct Gpr2 : Register<0x8,32> - { - struct Ch1_mode : Bitfield<2, 2> { - enum { ROUTED_TO_DI1 = 0x3 }; }; - struct Data_width_ch1 : Bitfield<7, 1> { - enum { PX_18_BITS, PX_24_BITS }; }; - struct Bit_mapping_ch1 : Bitfield<8, 1> { - enum { SPWG, JEIDA }; }; - struct Di1_vs_polarity : Bitfield<10,1> { }; - }; - - struct Key_col3 : Register<0x3c, 32> {}; - struct Key_row3 : Register<0x40, 32> {}; - - struct Eim_a24 : Register<0x15c, 32> { }; - - template - struct Sw_mux_ctl_pad_gpio : Register<0x314 + OFF*4, 32> { }; - - struct Sw_pad_ctl_pad_key_col3 : Register<0x364, 32> { }; - struct Sw_pad_ctl_pad_key_row3 : Register<0x368, 32> { }; - - struct Sw_pad_ctl_pad_eim_a24 : Register<0x4a8, 32> { }; - - template - struct Sw_pad_ctl_pad_gpio : Register<0x6a4 + OFF*4, 32> { }; - - struct I2c2_ipp_scl_in_select_input : Register<0x81c, 32> { }; - struct I2c2_ipp_sda_in_select_input : Register<0x820, 32> { }; - struct I2c3_ipp_scl_in_select_input : Register<0x824, 32> { }; - struct I2c3_ipp_sda_in_select_input : Register<0x828, 32> { }; - - public: - - Iomux(Genode::Env &env) - : Genode::Attached_io_mem_dataspace(env, Imx53::IOMUXC_BASE, - Imx53::IOMUXC_SIZE), - Genode::Mmio((Genode::addr_t)local_addr()) - { } - - void i2c_2_enable() - { - write(0x14); - write(0); - write(0x12d); - write(0x14); - write(0); - write(0x12d); - } - - void i2c_3_enable() - { - write >(0x12); - write(0x1); - write >(0x12d); - write >(0x12); - write(0x1); - write >(0x12d); - } - - void ipu_enable() - { - write(1); - write(Gpr2::Data_width_ch1::PX_18_BITS); - write(Gpr2::Bit_mapping_ch1::SPWG); - write(Gpr2::Ch1_mode::ROUTED_TO_DI1); - } - - void pwm_enable() - { - write(1); - write(0); - write >(0x4); - write >(0x0); - } - - void buttons_enable() - { - write(1); - write(0); - } -}; - -#endif /* _DRIVERS__PLATFORM__SPEC__IMX53__IOMUX_H_ */ diff --git a/repos/os/src/drivers/platform/legacy/imx53/main.cc b/repos/os/src/drivers/platform/legacy/imx53/main.cc deleted file mode 100644 index 9e74cf45e4..0000000000 --- a/repos/os/src/drivers/platform/legacy/imx53/main.cc +++ /dev/null @@ -1,152 +0,0 @@ -/* - * \brief Driver for i.MX53 specific platform devices (clocks, power, etc.) - * \author Stefan Kalkowski - * \date 2013-04-29 - */ - -/* - * 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. - */ - -#include -#include -#include -#include -#include - -#include -#include -#include -#include - - -namespace Platform { - class Session_component; - class Root; -} - - -class Platform::Session_component : public Genode::Rpc_object -{ - private: - - Iim &_iim; /* IC identification module */ - Iomux &_iomux; /* I/O multiplexer device */ - Ccm &_ccm; /* clock control module */ - Src &_src; /* system reset controller */ - - public: - - /** - * Constructor - */ - Session_component(Iim &iim, Iomux &iomux, Ccm &ccm, Src &src) - : _iim(iim), _iomux(iomux), _ccm(ccm), _src(src) {} - - - /********************************** - ** Platform session interface ** - **********************************/ - - void enable(Device dev) override - { - switch (dev) { - case Session::IPU: - _src.reset_ipu(); - _ccm.ipu_clk_enable(); - _iomux.ipu_enable(); - break; - case Session::I2C_2: - _ccm.i2c_2_enable(); - _iomux.i2c_2_enable(); - break; - case Session::I2C_3: - _ccm.i2c_3_enable(); - _iomux.i2c_3_enable(); - break; - case Session::BUTTONS: - _iomux.buttons_enable(); - break; - case Session::PWM: - _iomux.pwm_enable(); - break; - default: - Genode::warning("invalid device"); - }; - } - - void disable(Device dev) override - { - switch (dev) { - case Session::IPU: - _ccm.ipu_clk_disable(); - break; - default: - Genode::warning("invalid device"); - }; - } - - void clock_rate(Device dev, unsigned long /* rate */) override - { - switch (dev) { - default: - Genode::warning("invalid device"); - }; - } - - Board_revision revision() override - { - switch (_iim.revision()) { - case QSB: return QSB; - case SMD: return SMD; - }; - return UNKNOWN; - } -}; - - -class Platform::Root : public Genode::Root_component -{ - private: - - Genode::Env &_env; - - Iim _iim { _env }; - Iomux _iomux { _env }; - Ccm _ccm { _env }; - Src _src { _env }; - - protected: - - Session_component *_create_session(const char *) override { - return new (md_alloc()) Session_component(_iim, _iomux, _ccm, _src); } - - public: - - Root(Genode::Env &env, - Genode::Allocator &md_alloc) - : Genode::Root_component(env.ep(), md_alloc), _env(env) - { } -}; - - -struct Main -{ - Genode::Env & env; - Genode::Heap heap { env.ram(), env.rm() }; - Platform::Root root { env, heap }; - - Main(Genode::Env & env) : env(env) { - env.parent().announce(env.ep().manage(root)); } -}; - - -void Component::construct(Genode::Env &env) -{ - Genode::log("--- i.MX53 platform driver ---"); - - static Main main(env); -} diff --git a/repos/os/src/drivers/platform/legacy/imx53/src.h b/repos/os/src/drivers/platform/legacy/imx53/src.h deleted file mode 100644 index c3ad8cd1a6..0000000000 --- a/repos/os/src/drivers/platform/legacy/imx53/src.h +++ /dev/null @@ -1,43 +0,0 @@ -/* - * \brief System reset controller register description - * \author Nikolay Golikov - * \author Stefan Kalkowski - * \date 2013-04-29 - */ - -/* - * 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 _DRIVERS__PLATFORM__SPEC__IMX53__SRC_H_ -#define _DRIVERS__PLATFORM__SPEC__IMX53__SRC_H_ - -/* Genode includes */ -#include -#include -#include - -class Src : public Genode::Attached_io_mem_dataspace, - Genode::Mmio -{ - private: - - struct Ctrl_reg : Register<0x0, 32> - { - struct Ipu_rst : Bitfield<3, 1> { }; - }; - - public: - - Src(Genode::Env &env) - : Genode::Attached_io_mem_dataspace(env, Imx53::SRC_BASE, - Imx53::SRC_SIZE), - Genode::Mmio((Genode::addr_t)local_addr()) {} - - void reset_ipu() { write(1); } -}; - -#endif /* _DRIVERS__PLATFORM__SPEC__IMX53__SRC_H_ */ diff --git a/repos/os/src/drivers/platform/legacy/imx53/target.mk b/repos/os/src/drivers/platform/legacy/imx53/target.mk deleted file mode 100644 index 2e200dff0c..0000000000 --- a/repos/os/src/drivers/platform/legacy/imx53/target.mk +++ /dev/null @@ -1,5 +0,0 @@ -TARGET = legacy_imx53_platform_drv -REQUIRES = arm_v7 -SRC_CC = main.cc -INC_DIR += ${PRG_DIR} $(call select_from_repositories,include/spec/imx53) -LIBS = base