1#![no_std]
3
4pub mod clocksource;
5pub mod console;
6pub mod irqchip;
7pub mod memrange;
8pub mod smp;
9
10pub trait BspDefine<C, I, CLK>
12where
13 C: console::ConsoleImpl,
14 I: irqchip::IrqchipImpl,
15 CLK: clocksource::ClockImpl,
16{
17 const DEFINE_SMP: smp::SmpDefine = smp::SmpDefine::create(
19 smp::PsciCompatible::Psci0_1,
20 smp::PsciEnableMethod::Hvc,
21 0,
22 [0; smp::NR_CPUS],
23 1,
24 );
25
26 const DEFINE_MEMS: memrange::MemDefine;
28
29 const DEFINE_CONSOLE: C;
31
32 const DEFINE_IRQCHIP: I;
34
35 const DEFINE_CLOCK: CLK;
37
38 const DEFINE_SYSTEM_TICK: usize = 5;
40
41 fn early_init(&self) {}
43
44 fn late_init(&self);
46
47 fn secondary_init(&self) {}
49}