I'm trying to boot linux smp on a dual core system based on ariane. For what I understand, if the hardware is designed well I only need to write a proper device-tree file and I can use the image generated by running make images.
I modified ./u-boot/arch/riscv/dts/cv64a6_genesysII.dts and I tried to boot linux.
During the booting process it seems that the second CPU can't be started:
`
[ 0.502943] smp: Bringing up secondary CPUs ...
I'm trying to boot linux smp on a dual core system based on ariane. For what I understand, if the hardware is designed well I only need to write a proper device-tree file and I can use the image generated by running
make images
. I modified ./u-boot/arch/riscv/dts/cv64a6_genesysII.dts and I tried to boot linux. During the booting process it seems that the second CPU can't be started: ` [ 0.502943] smp: Bringing up secondary CPUs ...[ 0.559411] CPU1: failed to start
[ 0.566169] smp: Brought up 1 node, 1 CPU `
It follows the device tree: ` /dts-v1/;
/ {
address-cells = <2>;
size-cells = <2>;
compatible = "eth,ariane-bare-dev"; model = "eth,ariane-bare"; chosen { stdout-path = "/soc/uart@10000000:115200"; //tick-timer = "/cpus/cpu@0"; }; cpus {
address-cells = <1>;
}; memory@80000000 { device_type = "memory"; reg = <0x0 0x80000000 0x0 0x40000000>; }; leds { compatible = "gpio-leds"; heartbeat-led { gpios = <&xlnx_gpio 1 0>; linux,default-trigger = "heartbeat"; retain-state-suspended; }; }; L26: soc {
address-cells = <2>;
// debug-controller@0 { // compatible = "riscv,debug-013"; // interrupts-extended = <&CPU0_intc 65535>; // reg = <0x0 0x0 0x0 0x1000>; // reg-names = "control"; // }; uart@10000000 { compatible = "ns16750", "ns16550"; reg = <0x0 0x10000000 0x0 0x1000>; clock-frequency = <50000000>; current-speed = <115200>; interrupt-parent = <&PLIC0>; interrupts = <1>; reg-shift = <2>; // regs are spaced on 32 bit boundary reg-io-width = <4>; // only 32-bit access are supported }; timer@18000000 { compatible = "pulp,apb_timer"; interrupts = <0x00000004 0x00000005 0x00000006 0x00000007>; reg = <0x00000000 0x18000000 0x00000000 0x00001000>; interrupt-parent = <&PLIC0>; reg-names = "control"; }; xps-spi@20000000 { compatible = "xlnx,xps-spi-2.00.b", "xlnx,xps-spi-2.00.a";
address-cells = <1>;
}; }; ` Do you have any idea of the reason? I will appreciate any help