ะ ะฑัะป ัะตะฐะปะธะทะพะฒะฐะฝ ะฑะพะปะตะต-ะผะตะฝะตะต ัะฐะฑะพัะฐััะธะน ะบะพะฝััะพะปะปะตั ะฟะฐะผััะธ, ะฐ ัะพัะฝะตะต โ ะพะฑัััะบะฐ ะฝะฐะด IP Core ะธะท Quartus, ัะฒะปัััะฐััั ะฟะตัะตั
ะพะดะฝะธะบะพะผ ะฝะฐ TileLink. ะกะตะณะพะดะฝั ะถะต ะฒ ััะฑัะธะบะต ยซะะพััะธััะตะผ RocketChip ะฝะฐ ะผะฐะปะพะธะทะฒะตััะฝัั ะบะธัะฐะนัะบัั ะฟะปะฐัั ั ะฆะธะบะปะพะฝะพะผยป ะฒั ัะฒะธะดะธัะต ัะฐะฑะพัะฐัััั ะบะพะฝัะพะปั. ะัะพัะตัั ะฝะตัะบะพะปัะบะพ ะทะฐััะฝัะปัั: ั ัะถะต ะฑัะปะพ ะดัะผะฐะป, ััะพ ัะตะนัะฐั ะฟะพ-ะฑััััะพะผั ะทะฐะฟััั Linux, ะธ ะฟะพะนะดัะผ ะดะฐะปััะต, ะฝะพ ะฝะต ััั ัะพ ะฑัะปะพ. ะ ััะพะน ัะฐััะธ ะฟัะตะดะปะฐะณะฐั ะฟะพัะผะพััะตัั ะฝะฐ ะฟัะพัะตัั ะทะฐะฟััะบะฐ U-Boot, BBL, ะธ ัะพะฑะบะธะต ะฟะพะฟััะบะธ Linux kernel ะธะฝะธัะธะฐะปะธะทะธัะพะฒะฐัััั. ะะพ ะบะพะฝัะพะปั ะตััั โ U-Boot-ะพะฒัะบะฐั, ะธ ะดะพะฒะพะปัะฝะพ-ัะฐะบะธ ะฟัะพะดะฒะธะฝััะฐั, ะธะผะตััะฐั ะผะฝะพะณะพะต ะธะท ัะพะณะพ, ััะพ ะฒั ะพะถะธะดะฐะตัะต ะพั ะฟะพะปะฝะพัะตะฝะฝะพะน ะบะพะฝัะพะปะธ.
เจนเจพเจฐเจกเจตเฉเจ
เจฐ เจตเจฟเฉฑเจ เจเฉฑเจ SD เจเจพเจฐเจก เจธเจผเจพเจฎเจฒ เจนเฉเจตเฉเจเจพ เจเฉ SPI เจเฉฐเจเจฐเจซเฉเจธ เจฆเฉเจเจฐเจพ เจเฉเฉเจฟเจ เจนเฉเจเจ เจนเฉ, เจจเจพเจฒ เจนเฉ เจเฉฑเจ UART. เจธเจพเจซเจเจตเฉเจ
เจฐ เจนเจฟเฉฑเจธเฉ เจตเจฟเฉฑเจ, BootROM เจจเจพเจฒ เจคเจฌเจฆเฉเจฒ เจเฉเจคเจพ เจเจพเจตเฉเจเจพ xip 'เจคเฉ sdboot เจ
เจคเฉ, เจ
เจธเจฒ เจตเจฟเฉฑเจ, เจนเฉเจ เจพเจ เจฆเจฟเฉฑเจคเฉ เจฒเฉเจกเจฟเฉฐเจ เจชเฉเจพเจ
เจธเจผเจพเจฎเจฒ เจเฉเจคเฉ เจเจ เจนเจจ (SD เจเจพเจฐเจก 'เจคเฉ)เฅค
เจนเจพเจฐเจกเจตเฉเจ เจฐ เจจเฉเฉฐ เจชเฉเจฐเจพ เจเจฐเจจเจพ
เจเจธ เจฒเจ, เจเฉฐเจฎ: เจคเฉเจนเจพเจจเฉเฉฐ เจเฉฑเจ "เจตเฉฑเจกเฉ" เจเฉเจฐ 'เจคเฉ เจเจพเจฃ เจฆเฉ เจฒเฉเฉ เจนเฉ เจ เจคเฉ เจเฉฑเจ UART (เจฐเจธเจฌเฉเจฐเฉ เจคเฉเจ) เจ เจคเฉ เจเฉฑเจ SD เจ เจกเจพเจชเจเจฐ (เจ เจธเฉเจ เจเฉเจเฉเจฒเฉเจเจธ เจคเฉเจ เจเฉ เจชเจฟเฉฐเจจเจพเจ เจจเจพเจฒ เจเฉฑเจ เจเจพเจฐเจก เจตเจฐเจคเจฟเจ เจนเฉ: GND, VCC, MISO, MOSI, SCK, CS) .
เจ
เจธเฉเจฒ เจตเจฟเฉฑเจ, เจธเจญ เจเฉเจ เจเจพเจซเจผเฉ เจธเจงเจพเจฐเจจ เจธเฉ. เจชเจฐ เจเจธ เจคเฉเจ เจชเจนเจฟเจฒเจพเจ เจเจฟ เจฎเฉเจจเฉเฉฐ เจเจน เจ
เจนเจฟเจธเจพเจธ เจนเฉ เจเจพเจตเฉ, เจฎเฉเจจเฉเฉฐ เจเฉฑเจ เจชเจพเจธเฉ เจคเฉเจ เจฆเฉเจเฉ เจชเจพเจธเฉ เจธเฉเฉฑเจ เจฆเจฟเฉฑเจคเจพ เจเจฟเจ เจธเฉ: เจชเจฟเจเจฒเฉ เจตเจพเจฐ เจคเฉเจ เจฌเจพเจ
เจฆ, เจฎเฉเจ เจซเฉเจธเจฒเจพ เจเฉเจคเจพ เจเจฟ เจฆเฉเจฌเจพเจฐเจพ เจฎเฉเจจเฉเฉฐ เจเจธ เจตเจฟเฉฑเจ เจฎเจฟเจฒเจพเจเจฃ เจฆเฉ เจฒเฉเฉ เจนเฉ. System เจเฉเจ เจ
เจเจฟเจนเจพ HasPeripheryUART (เจ
เจคเฉ เจเจธ เจ
เจจเฉเจธเจพเจฐ เจฒเจพเจเฉ เจเจฐเจจเจพ), SD เจเจพเจฐเจก เจฒเจ เจเจนเฉ - เจ
เจคเฉ เจธเจญ เจเฉเจ เจคเจฟเจเจฐ เจนเฉ เจเจพเจตเฉเจเจพเฅค เจซเจฟเจฐ เจฎเฉเจ เจเจน เจฆเฉเจเจฃ เจฆเจพ เจซเฉเจธเจฒเจพ เจเฉเจคเจพ เจเจฟ เจเจธเจจเฉเฉฐ "เจเฉฐเจญเฉเจฐ" เจกเจฟเจเจผเจพเจเจจ เจตเจฟเฉฑเจ เจเจฟเจตเฉเจ เจฒเจพเจเฉ เจเฉเจคเจพ เจเจฟเจ เจธเฉเฅค เจเจธ เจฒเจ, เจเจธ เจฌเจพเจฐเฉ เจเฉฐเจญเฉเจฐ เจเฉ เจนเฉ? เจเจฐเจเฉ, เจเจผเจพเจนเจฐ เจคเฉเจฐ 'เจคเฉ, เจซเจฟเฉฑเจ เจจเจนเฉเจ เจฌเฉเจ เจฆเฉ - เจฐเจพเจเจธเจผ เจฐเจนเจฟเฉฐเจฆเจพ เจนเฉ unleahshed.DevKitConfigs. เจ
เจคเฉ เจ
เจเจพเจจเจ เจเจน เจชเจคเจพ เจเจฒเจฟเจ เจเจฟ เจนเจฐ เจเจเฉเจนเจพ เจเฉเจ เจเจตเจฐเจฒเฉเจ
เจธเจจ, เจเฉ เจเฉเฉฐเจเฉเจเจ เจฆเฉเจเจฐเจพ เจชเฉเจฐเจพเจฎเฉเจเจฐเจพเจ เจฆเฉเจเจฐเจพ เจเฉเฉเจฟเจ เจเจฟเจ เจธเฉ. เจฎเฉเจฐเจพ เจ
เจจเฉเจฎเจพเจจ เจนเฉ เจเจฟ เจเจน เจธเจผเจพเจเจฆ เจฌเจนเฉเจค เจฒเจเจเจฆเจพเจฐ เจ
เจคเฉ เจธเฉฐเจฐเจเจจเจพเจฏเฉเจ เจนเฉ, เจชเจฐ เจฎเฉเจ เจเฉฑเจเฉ เจเฉฑเจ เจชเจนเจฟเจฒเจพเจ เจเฉเจ เจเจฒเจพเจเจฃเจพ เจเจพเจนเจพเจเจเจพ ... เจเฉ เจคเฉเจนเจพเจกเฉ เจเฉเจฒ เจเจนเฉ เจเฉเจเจผ เจจเจนเฉเจ เจนเฉ, เจธเจฟเจฐเจซ เจธเจฐเจฒ เจ
เจคเฉ เจตเจงเฉเจฐเฉ เจคเฉฐเจ เจเจฐเจจ เจตเจพเจฒเฉ? .. เจเจน เจเจฆเฉเจ เจนเฉเจเจ เจเจฆเฉเจ เจฎเฉเจ เจชเจพเจฐ เจเจเจ vera.iofpga.FPGAChip เจฎเจพเจเจเฉเจฐเฉเจธเฉเจฎเฉ FPGAs เจฒเจ เจ
เจคเฉ เจคเฉเจฐเฉฐเจค เจเจธ เจจเฉเฉฐ เจนเจตเจพเจฒเจฟเจเจ เจฒเจ เจตเฉฑเจ เจเจฐ เจฒเจฟเจ เจ
เจคเฉ เจธเจฎเจพเจจเจคเจพ เจฆเฉเจเจฐเจพ เจฎเฉเจฐเฉ เจเฉเจฆ เจฆเฉ เจฒเจพเจเฉ เจเจฐเจจ เจฆเฉ เจเฉเจธเจผเจฟเจธเจผ เจเฉเจคเฉ, เจเฉเจธเจผเจเจฟเจธเจฎเจคเฉ เจจเจพเจฒ เจเฉฑเจ เจซเจพเจเจฒ เจตเจฟเฉฑเจ เจเฉฑเจ เจเจพเจ เจเฉฑเจ เจชเฉเจฐเจพ โเจฎเจฆเจฐเจฌเฉเจฐเจก เจฒเฉเจเจเจโ เจนเฉเฅค
เจเจน เจชเจคเจพ เจเจฒเจฟเจ เจเจฟ เจคเฉเจนเจพเจจเฉเฉฐ เจ
เจธเจฒ เจตเจฟเฉฑเจ เจธเจผเจพเจฎเจฒ เจเจฐเจจ เจฆเฉ เจเจผเจฐเฉเจฐเจค เจนเฉ System.scala เจฒเจพเจเจจเจพเจ
class System(implicit p: Parameters) extends RocketSubsystem
...
with HasPeripherySPI
with HasPeripheryUART
...
{
val tlclock = new FixedClockResource("tlclk", p(DevKitFPGAFrequencyKey))
...
}
class SystemModule[+L <: System](_outer: L)
extends RocketSubsystemModuleImp(_outer)
...
with HasPeripheryUARTModuleImp
with HasPeripheryGPIOModuleImp
...เจเจฒเจพเจธ เจฌเจพเจกเฉ เจตเจฟเฉฑเจ เจฒเจพเจเจจ System เจเจธ เจฌเจพเจฐเฉฐเจฌเจพเจฐเจคเจพ เจฌเจพเจฐเฉ เจเจพเจฃเจเจพเจฐเฉ เจเฉเฉเจฆเจพ เจนเฉ เจเจฟเจธ 'เจคเฉ เจธเจพเจกเฉ SoC เจฆเจพ เจเจน เจนเจฟเฉฑเจธเจพ dts เจซเจพเจเจฒ เจตเจฟเฉฑเจ เจเฉฐเจฎ เจเจฐเจฆเจพ เจนเฉเฅค เจเจฟเฉฑเจฅเฉเจ เจคเฉฑเจ เจฎเฉเจ เจธเจฎเจเจฆเจพ เจนเจพเจ, DTS/DTB เจเจฎเจฌเฉเจกเจก เจกเจฟเจตเจพเจเจธเจพเจ เจฒเจ เจชเจฒเฉฑเจ-เจเจเจก-เจชเจฒเฉ เจคเจเจจเจพเจฒเฉเจเฉ เจฆเจพ เจเฉฑเจ เจธเจฅเจฟเจฐ เจเจจเจพเจฒเจพเจ เจนเฉ: dts เจตเจฐเจฃเจจ เจเฉเจฐเฉ เจจเฉเฉฐ เจเฉฑเจ เจฌเจพเจเจจเจฐเฉ dtb เจซเจพเจเจฒ เจตเจฟเฉฑเจ เจเฉฐเจชเจพเจเจฒ เจเฉเจคเจพ เจเจพเจเจฆเจพ เจนเฉ เจ
เจคเฉ เจฌเฉเจเจฒเฉเจกเจฐ เจฆเฉเจเจฐเจพ เจเจฐเจจเจฒ เจตเจฟเฉฑเจ เจเฉเจฐเจพเจเจธเจซเจฐ เจเฉเจคเจพ เจเจพเจเจฆเจพ เจนเฉ เจคเจพเจ เจเฉ เจเจน เจธเจนเฉ เจขเฉฐเจ เจจเจพเจฒ เจธเฉฐเจฐเจเจฟเจค เจเจฐ เจธเจเฉเฅค เจนเจพเจฐเจกเจตเฉเจ
เจฐเฅค เจฆเจฟเจฒเจเจธเจช เจเฉฑเจฒ เจเจน เจนเฉ เจเจฟ, เจจเจพเจฒ เจฒเจพเจเจจ เจฆเฉ เจฌเจฟเจจเจพเจ tlclock เจนเจฐ เจเฉเจเจผ เจชเฉเจฐเฉ เจคเจฐเฉเจนเจพเจ เจธเฉฐเจธเจฒเฉเจธเจผเจฃ เจเจฐเจฆเฉ เจนเฉ, เจชเจฐ BootROM เจเฉฐเจชเจพเจเจฒ เจเจฐเจจเจพ (เจฎเฉเจจเฉเฉฐ เจคเฉเจนเจพเจจเฉเฉฐ เจฏเจพเจฆ เจฆเจฟเจตเจพเจเจฃ เจฆเจฟเจ, เจนเฉเจฃ เจเจน เจชเจนเจฟเจฒเจพเจ เจนเฉ เจนเฉเจตเฉเจเจพ sdboot) เจเฉฐเจฎ เจจเจนเฉเจ เจเจฐเฉเจเจพ - เจธเฉฐเจเจฒเจจ เจชเฉเจฐเจเจฟเจฐเจฟเจ เจฆเฉ เจฆเฉเจฐเจพเจจ เจเจน dts เจซเจพเจเจฒ เจจเฉเฉฐ เจชเจพเจฐเจธ เจเจฐเจฆเจพ เจนเฉ เจ
เจคเฉ เจเฉฑเจ เจฎเฉเจเจฐเฉ เจจเจพเจฒ เจเฉฑเจ เจธเจฟเจฐเจฒเฉเจ เจฌเจฃเจพเจเจเจฆเจพ เจนเฉ TL_CLK, เจเจฟเจธเจฆเจพ เจงเฉฐเจจเจตเจพเจฆ เจเจน เจฌเจพเจนเจฐเฉ เจเฉฐเจเจฐเจซเฉเจธ เจฒเจ เจฌเจพเจฐเฉฐเจฌเจพเจฐเจคเจพ เจตเจฟเจญเจพเจเจเจพเจ เจจเฉเฉฐ เจธเจนเฉ เจขเฉฐเจ เจจเจพเจฒ เจเฉเจเจซเจฟเจเจฐ เจเจฐเจจ เจฆเฉ เจฏเฉเจ เจนเฉเจตเฉเจเจพเฅค
เจคเฉเจนเจพเจจเฉเฉฐ "เจตเจพเจเจฐเจฟเฉฐเจ" เจจเฉเฉฐ เจฅเฉเฉเฉเจนเจพ เจ เฉเจ เจเจฐเจจ เจฆเฉ เจตเฉ เจฒเฉเฉ เจชเจตเฉเจเฉ:
Platform.scala:
class PlatformIO(implicit val p: Parameters) extends Bundle {
...
// UART
io.uart_tx := sys.uart(0).txd
sys.uart(0).rxd := RegNext(RegNext(io.uart_rx))
// SD card
io.sd_cs := sys.spi(0).cs(0)
io.sd_sck := sys.spi(0).sck
io.sd_mosi := sys.spi(0).dq(0).o
sys.spi(0).dq(0).i := false.B
sys.spi(0).dq(1).i := RegNext(RegNext(io.sd_miso))
sys.spi(0).dq(2).i := false.B
sys.spi(0).dq(3).i := false.B
}เจฐเจเจฟเจธเจเจฐ เจเฉเจจ, เจเจฎเจพเจจเจฆเจพเจฐ เจนเฉเจฃ เจฒเจ, เจ
เจธเจฒ เจเฉเจก เจตเจฟเฉฑเจ เจเฉเจ เจนเฉเจฐ เจธเจฅเจพเจจเจพเจ เจจเจพเจฒ เจธเจฎเจพเจจเจคเจพ เจฆเฉเจเจฐเจพ เจเฉเฉเจฟเจ เจเจฟเจ เจธเฉเฅค เจเจผเจฟเจเจฆเจพเจคเจฐ เจธเฉฐเจญเจพเจตเจจเจพ เจนเฉ, เจเจนเจจเจพเจ เจจเฉเฉฐ เจเจธ เจคเฉเจ เจฌเจเจพเจเจฃเจพ เจเจพเจนเฉเจฆเจพ เจนเฉ . เจธเจผเจพเจเจฆ เจตเจฟเฉฑเจ เจเฉเฉฑเจ เจฌเจฒเจพเจเจพเจ เจฆเฉ เจชเจนเจฟเจฒเจพเจ เจนเฉ เจเจชเจฃเฉ เจธเฉเจฐเฉฑเจเจฟเจ เจนเฉ, เจชเจฐ เจชเจนเจฟเจฒเจพเจ เจฎเฉเจ เจเจธเจจเฉเฉฐ เจเฉฑเจเฉ-เจเฉฑเจ "เจเฉฑเจ-เจเฉเจฃเจตเฉฑเจคเจพ เจฆเฉ เจชเฉฑเจงเจฐ 'เจคเฉ เจฒเจพเจเจ เจเจฐเจจเจพ เจเจพเจนเฉเฉฐเจฆเจพ เจนเจพเจเฅค" เจฎเฉเจฐเฉ เจฒเจ เจเฉฑเจ เจนเฉเจฐ เจฆเจฟเจฒเจเจธเจช เจธเจตเจพเจฒ เจเจน เจนเฉ เจเจฟ MISO เจ
เจคเฉ MOSI เจตเฉฑเจ-เจตเฉฑเจ เจเจฟเจเจ เจนเจจ dq? เจฎเฉเจจเฉเฉฐ เจ
เจเฉ เจคเฉฑเจ เจเจตเจพเจฌ เจจเจนเฉเจ เจฎเจฟเจฒเจฟเจ เจนเฉ, เจชเจฐ เจ
เจเจฟเจนเจพ เจฒเจเจฆเจพ เจนเฉ เจเจฟ เจฌเจพเจเฉ เจเฉเจก เจธเจฟเจฐเจซ เจ
เจเจฟเจนเฉ เจเฉเจจเฉเจเจธเจผเจจ 'เจคเฉ เจจเจฟเจฐเจญเจฐ เจเจฐเจฆเจพ เจนเฉ.
เจญเฉเจคเจฟเจ เจคเฉเจฐ 'เจคเฉ, เจฎเฉเจ เจฌเจฒเจพเจ 'เจคเฉ เจฎเฉเจซเจค เจธเฉฐเจชเจฐเจเจพเจ เจฒเจ เจกเจฟเจเจผเจพเจเจจ เจชเจฟเฉฐเจจ เจจเจฟเจฐเจงเจพเจฐเจค เจเฉเจคเฉ เจ เจคเฉ เจตเฉเจฒเจเฉเจ เจเฉเจฃ เจเฉฐเจชเจฐ เจจเฉเฉฐ 3.3V 'เจคเฉ เจญเฉเจ เจฆเจฟเฉฑเจคเจพเฅค
SD เจ เจกเจพเจชเจเจฐ
เจเฉฑเจชเจฐเฉเจ เจตเฉเจเฉ:

เจนเฉเจ เจฒเจพ เจฆเฉเจฐเจฟเจธเจผ:

เจธเฉเจซเจเจตเฉเจ เจฐ เจกเฉเจฌเฉฑเจเจฟเฉฐเจ: เจเฉเจฒ
เจชเจนเจฟเจฒเจพเจ, เจเจ เจเจชเจฒเจฌเจง เจกเฉเจฌเจเจฟเฉฐเจ เจเฉเจฒเจธ เจ เจคเฉ เจเจนเจจเจพเจ เจฆเฉเจเจ เจธเฉเจฎเจพเจตเจพเจ เจฌเจพเจฐเฉ เจเฉฑเจฒ เจเจฐเฉเจเฅค
เจฎเจฟเจจเฉเจเจพเจฎ
ะะพ-ะฟะตัะฒัั , ะฝะฐะผ ะฑัะดะตั ะฝัะถะฝะพ ะบะฐะบ-ัะพ ัะธัะฐัั ัะพ, ััะพ ะฒัะฒะพะดะธั ะทะฐะณััะทัะธะบ ะธ ัะดัะพ. ะะปั ััะพะณะพ ะฝะฐ Linux (ะฒ ะดะฐะฝะฝะพะผ ัะปััะฐะต โ ะฝะฐ ัะพะผ, ััะพ ะฝะฐ RaspberryPi) ะฝะฐะผ ะฟะพััะตะฑัะตััั ะฟัะพะณัะฐะผะผะฐ Minicom. ะะพะพะฑัะต ะณะพะฒะพัั, ะฟะพะดะพะนะดัั ะปัะฑะฐั ะฟัะพะณัะฐะผะผะฐ ะดะปั ัะฐะฑะพัั ั ะฟะพัะปะตะดะพะฒะฐัะตะปัะฝั ะฟะพััะพะผ.
เจเจฟเจฐเจชเจพ เจเจฐเจเฉ เจงเจฟเจเจจ เจฆเจฟเจ เจเจฟ เจเจฆเฉเจ เจธเจผเฉเจฐเฉ เจนเฉเฉฐเจฆเจพ เจนเฉ, เจคเจพเจ เจชเฉเจฐเจ เจกเจฟเจตเจพเจเจธ เจฆเจพ เจจเจพเจฎ เจเจธ เจคเจฐเฉเจนเจพเจ เจฆเจฟเฉฑเจคเจพ เจเจพเจฃเจพ เจเจพเจนเฉเจฆเจพ เจนเฉ -D /dev/ttyS0 - เจตเจฟเจเจฒเจช เจฆเฉ เจฌเจพเจ
เจฆ -D. เจเฉเจฐ, เจฎเฉเฉฑเจ เจเจพเจฃเจเจพเจฐเฉ: เจฌเจพเจนเจฐ เจจเจฟเจเจฒเจฃ เจฒเจ, เจตเจฐเจคเฉเจ Ctrl-A, X. เจฎเฉเจฐเฉ เจเฉเจฒ เจ
เจธเจฒ เจตเจฟเฉฑเจ เจเฉฑเจ เจเฉเจธ เจธเฉ เจเจฆเฉเจ เจเจน เจธเฉเจฎเฉเจฒ เจเฉฐเจฎ เจจเจนเฉเจ เจเจฐเจฆเจพ เจธเฉ - เจคเจพเจ เจคเฉเจธเฉเจ เจฌเจธ เจเฉฑเจ เจเฉเจเจเจขเฉ SSH เจธเฉเจธเจผเจจ เจคเฉเจ เจเจนเจฟ เจธเจเจฆเฉ เจนเฉ killall -KILL minicom.
เจเฉฑเจ เจนเฉเจฐ เจตเจฟเจธเจผเฉเจธเจผเจคเจพ เจนเฉ. เจเจพเจธ เจคเฉเจฐ 'เจคเฉ, RaspberryPi เจฆเฉ เจฆเฉ UARTs เจนเจจ, เจ เจคเฉ เจฆเฉเจตเฉเจ เจชเฉเจฐเจเจพเจ เจจเฉเฉฐ เจชเจนเจฟเจฒเจพเจ เจนเฉ เจเจฟเจธเฉ เจเฉเจเจผ เจฒเจ เจ เจจเฉเจเฉเจฒเจฟเจค เจเฉเจคเจพ เจเจพ เจธเจเจฆเจพ เจนเฉ: เจเฉฑเจ เจฌเจฒเฉเจเฉเฉฑเจฅ เจฒเจ, เจฆเฉเจเจพ เจฎเฉเจฒ เจฐเฉเจช เจตเจฟเฉฑเจ เจเจฐเจจเจฒ เจเฉฐเจธเฉเจฒ เจจเฉเฉฐ เจเจเจเจชเฉเฉฑเจ เจเจฐเจฆเจพ เจนเฉเฅค เจเฉเจธเจผเจเจฟเจธเจฎเจคเฉ เจจเจพเจฒ, เจเจธ เจตเจฟเจตเจนเจพเจฐ เจจเฉเฉฐ เจเจตเจฐเจฐเจพเจเจก เจเฉเจคเจพ เจเจพ เจธเจเจฆเจพ เจนเฉ .
เจฎเฉเจฎเฉเจฐเฉ เจฎเฉเฉ เจฒเจฟเจเจฃเจพ
เจกเฉเจฌเฉฑเจเจฟเฉฐเจ เจเจฐเจฆเฉ เจธเจฎเฉเจ, เจเฉฑเจ เจ
เจจเฉเจฎเจพเจจ เจฆเฉ เจเจพเจเจ เจเจฐเจจ เจฒเจ, เจฎเฉเจจเฉเฉฐ เจเจ เจตเจพเจฐ เจเจฐเจจเจพ เจชเฉเจเจฆเจพ เจธเฉ เจฌเฉเจเจฒเฉเจกเจฐ เจฒเฉเจก เจเจฐเฉ (เจ
เจซเจธเฉเจธ) เจนเฉเจธเจ เจคเฉเจ เจธเจฟเฉฑเจงเจพ RAM เจตเจฟเฉฑเจ. เจนเฉ เจธเจเจฆเจพ เจนเฉ เจเจฟ เจเจน เจธเจฟเฉฑเจงเฉ GDB เจคเฉเจ เจเฉเจคเจพ เจเจพ เจธเจเจฆเจพ เจนเฉ, เจชเจฐ เจ
เฉฐเจค เจตเจฟเฉฑเจ เจฎเฉเจ เจเฉฑเจ เจธเจงเจพเจฐเจจ เจฎเจพเจฐเจ เจฆเฉ เจชเจพเจฒเจฃเจพ เจเฉเจคเฉ: เจฎเฉเจ เจฐเจพเจธเจฌเฉเจฐเฉ เจตเจฟเฉฑเจ เจฒเฉเฉเฉเจเจฆเฉ เจซเจพเจเจฒ เจฆเฉ เจจเจเจฒ เจเฉเจคเฉ, SSH (เจเจชเจจเจเจธเฉเจกเฉ เจคเฉเจ เจเฉเจฒเจจเฉเฉฑเจ) เจฆเฉเจเจฐเจพ เจชเฉเจฐเจ 4444 เจจเฉเฉฐ เจตเฉ เจ
เฉฑเจเฉ เจญเฉเจเจฟเจ เจ
เจคเฉ เจเจฎเจพเจเจก เจฆเฉ เจตเจฐเจคเฉเจ เจเฉเจคเฉเฅค load_image. เจเจฆเฉเจ เจคเฉเจธเฉเจ เจเจน เจเจฐเจฆเฉ เจนเฉ, เจ
เจเจฟเจนเจพ เจฒเจเจฆเจพ เจนเฉ เจเจฟ เจธเจญ เจเฉเจ เจเฉฐเจฎ เจเจฟเจ เจนเฉ, เจชเจฐ เจ
เจธเจฒ เจตเจฟเฉฑเจ "เจเจน เจจเฉเจเจฆ เจจเจนเฉเจ เจเจเจเจฆเฉ, เจเจน เจนเฉเจฒเฉ เจนเฉเจฒเฉ เจเจชเจเจฆเฉ เจนเฉ": เจเจน เจซเจพเจเจฒ เจจเฉเฉฐ เจกเจพเจเจจเจฒเฉเจก เจเจฐเจฆเจพ เจนเฉ, เจเจน เจธเจฟเจฐเจซ เจเฉเจ เจเจฟเจฒเฉเจฌเจพเจเจ เจชเฉเจฐเจคเฉ เจธเจเจฟเฉฐเจ เจฆเฉ เจเจคเฉ เจจเจพเจฒ เจเจฐเจฆเจพ เจนเฉเฅค
เจฌเจฐเฉเจเจชเฉเจเจเฉฐเจ เจธเจฅเจพเจชเจค เจเจฐเจจ เจฆเฉเจเจ เจตเจฟเจธเจผเฉเจธเจผเจคเจพเจตเจพเจ
เจจเจฟเจฏเจฎเจค เจชเฉเจฐเฉเจเจฐเจพเจฎเจพเจ เจจเฉเฉฐ เจกเฉเจฌเฉฑเจ เจเจฐเจจ เจตเฉเจฒเฉ เจฌเจนเฉเจค เจธเจพเจฐเฉ เจฒเฉเจเจพเจ เจจเฉเฉฐ เจธเจผเจพเจเจฆ เจเจธ เจฌเจพเจฐเฉ เจธเฉเจเจฃ เจฆเฉ เจฒเฉเฉ เจจเจนเฉเจ เจนเฉ, เจชเจฐ เจฌเจฐเฉเจเจชเฉเจเจเฉฐเจ เจนเจฎเฉเจธเจผเจพ เจนเจพเจฐเจกเจตเฉเจ
เจฐ เจตเจฟเฉฑเจ เจธเฉเฉฑเจ เจจเจนเฉเจ เจเฉเจคเฉ เจเจพเจเจฆเฉ เจนเจจเฅค เจเจ เจตเจพเจฐ เจฌเฉเจฐเฉเจเจชเฉเจเจเฉฐเจ เจธเฉเจ เจเจฐเจจ เจตเจฟเฉฑเจ เจ
เจธเจฅเจพเจ เจคเฉเจฐ 'เจคเฉ เจธเจนเฉ เจเจเฉเจนเจพ 'เจคเฉ เจตเจฟเจธเจผเฉเจธเจผ เจนเจฆเจพเจเจคเจพเจ เจจเฉเฉฐ เจฒเจฟเจเจฃเจพ เจธเจผเจพเจฎเจฒ เจนเฉเฉฐเจฆเจพ เจนเฉ เจธเจฟเฉฑเจงเฉ เจฎเจธเจผเฉเจจ เจเฉเจก เจตเจฟเฉฑเจ. เจเจฆเจพเจนเจฐเจจ เจฒเจ, เจฎเฉเจฐเฉ เจธเจเฉเจเจกเจฐเจก เจเจฎเจพเจเจก เจเจธ เจคเจฐเฉเจนเจพเจ เจเฉฐเจฎ เจเจฐเจฆเฉ เจนเฉ b GDB เจตเจฟเฉฑเจเฅค เจเฉฑเจฅเฉ เจเฉ เจนเฉ:
- เจคเฉเจธเฉเจ BootROM เจฆเฉ เจ เฉฐเจฆเจฐ เจเฉฑเจ เจฌเจฟเฉฐเจฆเฉ เจจเจนเฉเจ เจฒเจเจพ เจธเจเจฆเฉ เจเจฟเจเจเจเจฟ ROM
- เจคเฉเจธเฉเจ SD เจเจพเจฐเจก เจคเฉเจ RAM เจตเจฟเฉฑเจ เจฒเฉเจก เจเฉเจคเฉ เจเฉเจก 'เจคเฉ เจเฉฑเจ เจฌเฉเจฐเฉเจเจชเฉเจเจเฉฐเจ เจธเฉเจ เจเจฐ เจธเจเจฆเฉ เจนเฉ, เจชเจฐ เจคเฉเจนเจพเจจเฉเฉฐ เจเจธ เจฆเฉ เจฒเฉเจก เจนเฉเจฃ เจคเฉฑเจ เจเจกเฉเจ เจเจฐเจจเฉ เจชเจตเฉเจเฉเฅค เจจเจนเฉเจ เจคเจพเจ, เจ เจธเฉเจ เจเฉเจก เจฆเฉ เจเฉเจเฉเฉ เจจเฉเฉฐ เจฆเฉเจฌเจพเจฐเจพ เจจเจนเฉเจ เจฒเจฟเจเจพเจเจเฉ, เจชเจฐ เจฒเฉเจกเจฐ เจธเจพเจกเฉ เจฌเฉเจฐเฉเจเจชเฉเจเจเฉฐเจ เจจเฉเฉฐ เจฆเฉเจฌเจพเจฐเจพ เจฒเจฟเจ เจฆเฉเจตเฉเจเจพ
เจฎเฉเจจเฉเฉฐ เจฏเจเฉเจจ เจนเฉ เจเจฟ เจคเฉเจธเฉเจ เจธเจชเจธเจผเจ เจคเฉเจฐ 'เจคเฉ เจนเจพเจฐเจกเจตเฉเจ เจฐ เจฌเฉเจฐเฉเจเจชเฉเจเจเฉฐเจเจธ เจฆเฉ เจตเจฐเจคเฉเจ เจเจฐเจจ เจฒเจ เจเจนเจฟ เจธเจเจฆเฉ เจนเฉ, เจชเจฐ เจซเจฟเจฐ เจตเฉ เจเจนเจจเจพเจ เจฆเฉ เจเจฟเจฃเจคเฉ เจธเฉเจฎเจค เจนเฉเฅค
เจคเฉเจเจผ BootROM เจคเจฌเจฆเฉเจฒเฉ
เจกเฉเจฌเฉฑเจเจฟเฉฐเจ เจฆเฉ เจธเจผเฉเจฐเฉเจเจคเฉ เจชเฉเจพเจ 'เจคเฉ, เจ เจเจธเจฐ เจฌเฉเจเจฐเฉเจฎ เจจเฉเฉฐ เจ เฉเจ เจเจฐเจจ เจ เจคเฉ เจฆเฉเจฌเจพเจฐเจพ เจเฉเจธเจผเจฟเจธเจผ เจเจฐเจจ เจฆเฉ เจเฉฑเจเจพ เจนเฉเฉฐเจฆเฉ เจนเฉเฅค เจชเจฐ เจเฉฑเจ เจธเจฎเฉฑเจธเจฟเจ เจนเฉ: BootROM FPGA เจตเจฟเฉฑเจ เจฒเฉเจก เจเฉเจคเฉ เจเจ เจกเจฟเจเจผเจพเจเจจ เจฆเจพ เจนเจฟเฉฑเจธเจพ เจนเฉ, เจ เจคเฉ เจเจธเจฆเจพ เจธเฉฐเจธเจฒเฉเจธเจผเจฃ เจเฉเจ เจฎเจฟเฉฐเจเจพเจ เจฆเจพ เจฎเจพเจฎเจฒเจพ เจนเฉ (เจ เจคเฉ เจเจน C เจ เจคเฉ เจ เจธเฉเจเจฌเจฒเจฐ เจคเฉเจ BootROM เจเจฟเฉฑเจคเจฐ เจฆเฉ เจฒเจเจญเจ เจคเฉเจฐเฉฐเจค เจธเฉฐเจเจฒเจจ เจคเฉเจ เจฌเจพเจ เจฆ เจนเฉ...)เฅค เจเฉเจธเจผเจเจฟเจธเจฎเจคเฉ เจจเจพเจฒ, เจ เจธเจฒ เจตเจฟเฉฑเจ เจธเจญ เจเฉเจ เจฌเจนเฉเจค เจคเฉเจเจผ: เจเจพเจฐเจตเจพเจเจเจ เจฆเจพ เจเฉเจฐเจฎ เจเจธ เจชเฉเจฐเจเจพเจฐ เจนเฉ:
- regenerate bootrom.mif (เจฎเฉเจ HEX เจฆเฉ เจฌเจเจพเจ MIF 'เจคเฉ เจธเจตเจฟเจ เจเฉเจคเจพ, เจเจฟเจเจเจเจฟ เจฎเฉเจจเฉเฉฐ เจนเจฎเฉเจธเจผเจพ HEX เจจเจพเจฒ เจเฉเจ เจธเจฎเฉฑเจธเจฟเจเจตเจพเจ เจธเจจ, เจ เจคเฉ MIF Alter เจฆเจพ เจฎเฉเจฒ เจซเจพเจฐเจฎเฉเจ เจนเฉ)
- Quartus เจตเจฟเฉฑเจ เจเจนเจฟเฉฐเจฆเฉ เจนเจจ
Processing -> Update Memory Initialization File - เจ เจธเฉเจเจฌเจฒเจฐ เจเจเจเจฎ 'เจคเฉ (เจเจพเจธเจ เจฆเฉ เจเฉฑเจฌเฉ เจเจพเจฒเจฎ เจตเจฟเฉฑเจ) เจเจฎเจพเจเจก เจฆเฉเจฌเจพเจฐเจพ เจธเจผเฉเจฐเฉ เจเจฐเฉ
เจนเจฐ เจเฉเจเจผ เจฌเจพเจฐเฉ เจธเจญ เจเฉเจ - เจธเจเจฟเฉฐเจ เจฆเฉ เจเฉฑเจ เจเฉเฉเฉ เจจเฉเฉฐ.
SD เจเจพเจฐเจก เจคเจฟเจเจฐ เจเฉเจคเจพ เจเจพ เจฐเจฟเจนเจพ เจนเฉ
เจเฉฑเจฅเฉ เจนเจฐ เจเฉเจเจผ เจฎเฉเจเจพเจฌเจฒเจคเจจ เจธเจงเจพเจฐเจจ เจนเฉ, เจชเจฐ เจคเฉเจนเจพเจจเฉเฉฐ เจงเฉเจฐเจ เจฐเฉฑเจเจฃ เจฆเฉ เจฒเฉเฉ เจนเฉ เจ เจคเฉ เจฒเจเจญเจ 14Gb เจกเจฟเจธเจ เจธเจชเฉเจธ เจนเฉเจฃเฉ เจเจพเจนเฉเจฆเฉ เจนเฉ:
git clone https://github.com/sifive/freedom-u-sdk
git submodule update --recursive --init
makeเจเจฟเจธ เจคเฉเจ เจฌเจพเจ เจฆ เจคเฉเจนเจพเจจเฉเฉฐ เจเฉฑเจ เจธเจพเจซเจผ, เจเจพเจ เจเจธ เจฆเฉ เจฌเจเจพเจ, เจเฉฑเจ เจ เจเจฟเจนเจพ เจชเจพเจเจฃ เจฆเฉ เจเจผเจฐเฉเจฐเจค เจนเฉ เจเจฟเจธ เจตเจฟเฉฑเจ เจเฉเจ เจตเฉ เจเจผเจฐเฉเจฐเฉ เจจเจนเฉเจ เจนเฉ, SD เจเจพเจฐเจก, เจ เจคเฉ เจเจฒเจพเจเจฃเจพ
sudo make DISK=/dev/sdX format-boot-loaderโฆ เจเจฟเฉฑเจฅเฉ sdX โ เจเจพเจฐเจก เจจเฉเฉฐ เจฆเจฟเฉฑเจคเจพ เจเจฟเจ เจกเจฟเจตเจพเจเจธเฅค เจงเจฟเจเจจ เจฆเจฟเจ: เจเจพเจฐเจก เจฆเจพ เจกเฉเจเจพ เจฎเจฟเจเจพ เจฆเจฟเฉฑเจคเจพ เจเจพเจตเฉเจเจพ, เจเจตเจฐเจฐเจพเจเจ เจเฉเจคเจพ เจเจพเจตเฉเจเจพ เจ
เจคเฉ เจเจฎ เจคเฉเจฐ 'เจคเฉ! เจชเฉเจฐเฉ เจ
เจธเฉเจเจฌเจฒเฉ เจจเฉเฉฐ เจนเฉเจ เจพเจ เจคเฉเจ เจเจฐเจจเจพ เจฎเฉเจธเจผเจเจฟเจฒ เจนเฉ sudoเจเจฟเจเจเจเจฟ เจคเจฆ เจธเจพเจฐเฉเจเจ เจฌเจฟเจฒเจก เจเจฒเจพเจเฉเจฐเจฟเจคเฉเจเจ เจจเจพเจฒ เจธเจฌเฉฐเจงเจค เจนเฉเจฃเจเฉเจเจ root, เจ
เจคเฉ เจ
เจธเฉเจเจฌเจฒเฉ เจจเฉเฉฐ เจนเฉเจ เจพเจ เจคเฉเจ เจเจฐเจจเจพ เจนเฉเจตเฉเจเจพ sudo เจฒเจเจพเจคเจพเจฐ.
เจจเจคเฉเจเจพ GPT เจตเจฟเฉฑเจ เจเจพเจฐ เจญเจพเจเจพเจ เจตเจพเจฒเจพ เจเฉฑเจ เจเจพเจฐเจก เจนเฉ, เจเจฟเจธ เจตเจฟเฉฑเจเฉเจ เจเฉฑเจ เจตเจฟเฉฑเจ FAT เจนเฉ uEnv.txt เจ
เจคเฉ FIT เจซเจพเจฐเจฎเฉเจ เจตเจฟเฉฑเจ เจเฉฑเจ เจฌเฉเจ เจนเฉเจฃ เจฏเฉเจ เจเจฟเฉฑเจคเจฐ (เจเจธ เจตเจฟเฉฑเจ เจเจ เจเจช-เจเจฟเฉฑเจคเจฐเจพเจ เจนเจจ, เจนเจฐเฉเจ เจตเจฟเฉฑเจ เจเจธเจฆเฉ เจเจชเจฃเฉ เจกเจพเจเจจเจฒเฉเจก เจชเจคเฉ เจฆเฉ เจจเจพเจฒ), เจฆเฉเจเจพ เจญเจพเจ เจเจพเจฒเฉ เจนเฉ, เจเจธเจจเฉเฉฐ เจฒเฉเจจเจเจธ เจฒเจ Ext4 เจตเจฟเฉฑเจ เจซเจพเจฐเจฎเฉเจ เจเฉเจคเจพ เจเจพเจฃเจพ เจเจพเจนเฉเจฆเจพ เจนเฉเฅค เจฆเฉ เจนเฉเจฐ เจญเจพเจ - เจฐเจนเฉฑเจธเจฎเจ: เจฏเฉ-เจฌเฉเจ เจเฉฑเจ 'เจคเฉ เจฐเจนเจฟเฉฐเจฆเจพ เจนเฉ (เจเจธเจฆเจพ เจเจซเจธเฉเฉฑเจ, เจเจฟเฉฑเจฅเฉเจ เจคเฉฑเจ เจฎเฉเจ เจธเจฎเจเจฆเจพ เจนเจพเจ, เจฌเฉเจเจฐเฉเจฎ เจตเจฟเฉฑเจ เจนเจพเจฐเจกเจเฉเจก เจเฉเจคเจพ เจเจฟเจ เจนเฉ), เจฆเฉเจเฉ เจชเจพเจธเฉ, เจ
เจเจฟเจนเจพ เจฒเจเจฆเจพ เจนเฉ, เจเจธเจฆเฉ เจตเจพเจคเจพเจตเจฐเจฃ เจตเฉเจฐเฉเจเจฌเจฒ เจฐเจนเจฟเฉฐเจฆเฉ เจนเจจ, เจชเจฐ เจฎเฉเจ เจเจนเจจเจพเจ เจฆเฉ เจตเจฐเจคเฉเจ เจจเจนเฉเจ เจเจฐเจฆเจพ เจนเจพเจเฅค
เจชเจนเจฟเจฒเจพ เจชเฉฑเจงเจฐ, BootROM
เจชเฉเจฐเจธเจฟเฉฑเจง เจธเจฟเจเจฃเจช เจเจนเจฟเฉฐเจฆเฉ เจนเฉ: "เจเฉ เจชเฉเจฐเฉเจเจฐเจพเจฎเจฟเฉฐเจ เจตเจฟเฉฑเจ เจเฉฑเจ เจเฉเจเจฌเฉเจฐเฉเจจ เจจเจพเจฒ เจจเฉฑเจเจฃเจพ เจนเฉ, เจคเจพเจ เจเจฒเฉเจเจเฉเจฐเฉเจจเจฟเจเจธ เจตเจฟเฉฑเจ เจ เฉฑเจ เจฌเฉเจเจพเจเจฃ เจตเจพเจฒเฉ เจจเจพเจฒ เจจเฉฑเจเจฃเจพ เจตเฉ เจนเฉ." เจเจน เจเจธ เจคเฉฑเจฅ เจฌเจพเจฐเฉ เจตเฉ เจจเจนเฉเจ เจนเฉ เจเจฟ เจเฉฑเจ เจตเจพเจฐ เจฎเฉเจ เจฌเฉเจฐเจก เจจเฉเฉฐ เจฒเจเจญเจ เจธเจพเฉ เจฆเจฟเฉฑเจคเจพ, เจเจน เจซเฉเจธเจฒเจพ เจเจฐเจฆเฉ เจนเฉเจ เจเจฟ "เจ เฉเจ เจนเฉ, GND เจเจนเฉ เจจเฉเจตเจพเจ เจชเฉฑเจงเจฐ เจนเฉเฅค" (เจเจผเจพเจนเจฐ เจนเฉ, เจเฉฑเจ เจฐเฉเจงเจ เจธเจญ เจคเฉเจ เจฌเจพเจ เจฆ เจฆเฉเจเฉ เจจเจนเฉเจ เจนเฉเจตเฉเจเจพ ...) เจเจน เจเจธ เจคเฉฑเจฅ เจฌเจพเจฐเฉ เจตเจงเฉเจฐเฉ เจนเฉ เจเจฟ เจเฉเจเจฐ เจนเฉฑเจฅ เจเฉฑเจฅเฉเจ เจจเจนเฉเจ เจตเจงเจฆเฉ, เจคเจพเจ เจเจฒเฉเจเจเฉเจฐเฉเจจเจฟเจเจธ เจเจฆเฉ เจตเฉ เจนเฉเจฐเจพเจจเฉ เจฒเจฟเจเจเจฃเจพ เจฌเฉฐเจฆ เจจเจนเฉเจ เจเจฐเจฆเจพ: เจเจฆเฉเจ เจเจจเฉเจเจเจฐ เจจเฉเฉฐ เจฌเฉเจฐเจก 'เจคเฉ เจธเฉเจฒเจกเจฐ เจเจฐเจฆเฉ เจนเฉเจ, เจฎเฉเจ เจ เจเฉ เจตเฉ เจธเฉฐเจชเจฐเจเจพเจ เจจเฉเฉฐ เจธเจนเฉ เจคเจฐเฉเจนเจพเจ เจธเฉเจฒเจกเจฐ เจจเจนเฉเจ เจเจฐ เจธเจเจฟเจ - เจตเฉเจกเฉเจ เจฆเจฟเจเจพเจเจเจฆเจพ เจนเฉ เจเจฟ เจธเฉเจฒเจกเจฐ เจธเจฟเฉฑเจงเฉ เจเจฟเจตเฉเจ เจซเฉเจฒเจฆเจพ เจนเฉ เจชเฉเจฐเฉ เจเฉเจจเฉเจเจธเจผเจจ เจเฉฑเจคเฉ, เจฌเจธ เจเฉฑเจ เจธเฉเจฒเจกเจฐเจฟเฉฐเจ เจเจเจฐเจจ เจฒเจเจพเจ, เจฎเฉเจฐเฉ เจฒเจ, เจเจธเจจเฉ เจฌเฉเจคเจฐเจคเฉเจฌเฉ "เจฅเฉฑเจชเฉ" เจฎเจพเจฐเจฟเจเฅค เจเฉเจฐ, เจนเฉ เจธเจเจฆเจพ เจนเฉ เจเจฟ เจธเฉเจฒเจกเจฐ เจธเฉเจฒเจกเจฐเจฟเฉฐเจ เจเจเจฐเจจ เจฆเฉ เจคเจพเจชเจฎเจพเจจ เจฒเจ เจขเฉเจเจตเจพเจ เจจเจนเฉเจ เจธเฉ, เจธเจผเจพเจเจฆ เจเฉเจ เจนเฉเจฐ... เจเจฎ เจคเฉเจฐ 'เจคเฉ, เจเจฆเฉเจ เจฎเฉเจ เจฆเฉเจเจฟเจ เจเจฟ เจฎเฉเจฐเฉ เจเฉเจฒ เจชเจนเจฟเจฒเจพเจ เจนเฉ เจเฉฑเจ เจฆเจฐเจเจจ เจธเฉฐเจชเจฐเจ เจนเจจ, เจฎเฉเจ เจนเจพเจฐ เจฎเฉฐเจจ เจฒเจ เจ เจคเฉ เจกเฉเจฌเฉฑเจ เจเจฐเจจเจพ เจธเจผเฉเจฐเฉ เจเจฐ เจฆเจฟเฉฑเจคเจพเฅค เจ เจคเฉ เจซเจฟเจฐ เจเจน เจธเจผเฉเจฐเฉ เจนเฉเจเจ เจฐเจนเฉฑเจธเจฎเจ: เจฎเฉเจ UART เจคเฉเจ RX/TX เจเจจเฉเจเจ เจเฉเจคเจพ, เจฎเฉเจ เจซเจฐเจฎเจตเฉเจ เจฐ เจฒเฉเจก เจเจฐเจฆเจพ เจนเจพเจ - เจเจน เจเจนเจฟเฉฐเจฆเจพ เจนเฉ
INIT
CMD0
ERRORเจเฉเจฐ, เจธเจญ เจเฉเจ เจคเจฐเจเจชเฉเจฐเจจ เจนเฉ - เจฎเฉเจ SD เจเจพเจฐเจก เจฎเฉเจกเฉเจเจฒ เจจเฉเฉฐ เจเจจเฉเจเจ เจจเจนเฉเจ เจเฉเจคเจพ. เจ เจธเฉเจ เจธเจฅเจฟเจคเฉ เจจเฉเฉฐ เจ เฉเจ เจเจฐเจฆเฉ เจนเจพเจ, เจซเจฐเจฎเจตเฉเจ เจฐ เจฒเฉเจก เจเจฐเจฆเฉ เจนเจพเจ... เจ เจคเฉ เจเฉเฉฑเจช... เจฎเฉเจ เจเจชเจฃเจพ เจฎเจจ เจเจฟเจเจ เจจเจนเฉเจ เจฌเจฆเจฒเจฟเจ, เจชเจฐ เจฌเจพเจเจธ เจนเฉเจฃเฉ เจเฉเฉฑเจฒเฉเจนเจฟเจ เจนเฉ: เจเฉฑเจ เจฎเฉเจกเฉเจเจฒ เจชเจฟเฉฐเจจ เจจเฉเฉฐ VCC เจจเจพเจฒ เจเจจเฉเจเจ เจเฉเจคเจพ เจเจพเจฃเจพ เจธเฉเฅค เจฎเฉเจฐเฉ เจเฉเจธ เจตเจฟเฉฑเจ, เจฎเฉเจกเฉเจเจฒ เจจเฉ เจชเจพเจตเจฐ เจธเจชเจฒเจพเจ เจฒเจ 5V เจฆเจพ เจธเจฎเจฐเจฅเจจ เจเฉเจคเจพ, เจเจธเจฒเจ เจฌเจฟเจจเจพเจ เจฆเฉ เจตเจพเจฐ เจธเฉเจเฉ, เจฎเฉเจ เจฎเฉเจกเฉเจเจฒ เจคเฉเจ เจฌเฉเจฐเจก เจฆเฉ เจเจฒเจ เจชเจพเจธเฉ เจตเฉฑเจฒ เจเจเจฃ เจตเจพเจฒเฉ เจคเจพเจฐ เจจเฉเฉฐ เจชเจฒเฉฑเจ เจเฉเจคเจพเฅค เจจเจคเฉเจเฉ เจตเจเฉเจ, เจเฉเจขเฉ เจขเฉฐเจ เจจเจพเจฒ เจธเฉเจฒเจก เจเฉเจคเจพ เจเฉเจจเฉเจเจเจฐ เจคเจฟเฉฑเจเจพ เจนเฉ เจเจฟเจ, เจ เจคเฉ UART เจธเฉฐเจชเจฐเจ เจฌเจธ เจเฉเฉฐเจฎ เจนเฉ เจเจฟเจ เจธเฉเฅค facepalm.jpg เจเจฎ เจคเฉเจฐ 'เจคเฉ, "เจฌเฉเจฐเจพ เจธเจฟเจฐ เจฒเฉฑเจคเจพเจ เจจเฉเฉฐ เจเจฐเจพเจฎ เจจเจนเฉเจ เจฆเจฟเฉฐเจฆเจพ," เจ เจคเฉ เจเฉเจขเฉ เจนเฉฑเจฅ เจธเจฟเจฐ เจจเฉเฉฐ เจเจฐเจพเจฎ เจจเจนเฉเจ เจฆเจฟเฉฐเจฆเฉ ...
เจจเจคเฉเจเฉ เจตเจเฉเจ, เจฎเฉเจ เจฒเฉฐเจฌเฉ เจธเจฎเฉเจ เจคเฉเจ เจเจกเฉเจเจฟเจ เจฆเฉเจเจฟเจ
INIT
CMD0
CMD8
ACMD41
CMD58
CMD16
CMD18
LOADING /เจเจธ เจคเฉเจ เจเจฒเจพเจตเจพ, เจเจน เจนเจฟเจฒเจฆเจพ เจนเฉ เจ เจคเฉ เจฒเฉเจกเจฟเฉฐเจ เจเฉฐเจกเฉเจเฉเจเจฐ เจธเจชเจฟเจจ เจนเฉเฉฐเจฆเจพ เจนเฉเฅค เจฎเฉเจจเฉเฉฐ เจคเฉเจฐเฉฐเจค เจฎเฉเจฐเฉ เจธเจเฉเจฒ เจฆเฉ เจฆเจฟเจจ เจ เจคเฉ เจเฉฑเจ เจซเจฒเจพเจชเฉ เจกเจฟเจธเจ เจคเฉเจ MinuetOS เจฆเฉ เจเจฐเจพเจฎ เจจเจพเจฒ เจฒเฉเจกเจฟเฉฐเจ เจฏเจพเจฆ เจนเฉเฅค เจเจฆเฉเจ เจคเฉฑเจ เจกเจฐเจพเจเจต เจชเฉเจธ เจจเจนเฉเจ เจเจพเจเจฆเฉเฅค
เจธเจฎเฉฑเจธเจฟเจ เจเจน เจนเฉ เจเจฟ BOOT เจธเฉฐเจฆเฉเจธเจผ เจคเฉเจ เจฌเจพเจ เจฆ เจเฉเจ เจจเจนเฉเจ เจนเฉเฉฐเจฆเจพเฅค เจเจธเจฆเจพ เจฎเจคเจฒเจฌ เจนเฉ เจเจฟ เจเจน เจเจชเจจเจเจธเฉเจกเฉ เจฆเฉเจเจฐเจพ เจฐเจพเจธเจฌเฉเจฐเฉ เจคเฉเจ, เจนเฉเจธเจ 'เจคเฉ GDB เจจเจพเจฒ เจเฉเฉเจจ เจฆเจพ เจธเจฎเจพเจ เจนเฉ, เจ เจคเฉ เจฆเฉเจเฉ เจเจฟ เจเจน เจเฉ เจนเฉเฅค
เจธเจญ เจคเฉเจ เจชเจนเจฟเจฒเจพเจ, GDB เจฆเฉ เจตเจฐเจคเฉเจ เจเจฐเจฆเฉ เจนเฉเจ เจเจจเฉเจเจ เจเจฐเจจเจพ เจคเฉเจฐเฉฐเจค เจฆเจฟเจเจพเจเจ เจเจฟเจ เจนเฉ $pc (เจชเฉเจฐเฉเจเจฐเจพเจฎ เจเจพเจเจเจเจฐ, เจฎเฉเจเฉเจฆเจพ เจนเจฆเจพเจเจค เจฆเจพ เจชเจคเจพ) เจฒเจ เจเฉฑเจกเจฆเจพ เจนเฉ 0x0 - เจเจน เจธเจผเจพเจเจฆ เจเจ เจคเจฐเฉเฉฑเจเฉเจเจ เจคเฉเจ เจฌเจพเจ
เจฆ เจตเจพเจชเจฐเจฆเจพ เจนเฉเฅค เจเจธ เจฒเจ, เจธเฉฐเจฆเฉเจธเจผ เจเจพเจฐเฉ เจนเฉเจฃ เจคเฉเจ เจคเฉเจฐเฉฐเจค เจฌเจพเจ
เจฆ BOOT เจเจฒเฉ เจเฉฑเจ เจ
เจจเฉฐเจค เจฒเฉเจช เจเฉเฉเฉเจเฅค เจเจน เจเจธเจจเฉเฉฐ เจเฉเจ เจธเจฎเฉเจ เจฒเจ เจฆเฉเจฐเฉ เจเจฐเฉเจเจพ ...
diff --git a/bootrom/sdboot/sd.c b/bootrom/sdboot/sd.c
index c6b5ede..bca1b7f 100644
--- a/bootrom/sdboot/sd.c
+++ b/bootrom/sdboot/sd.c
@@ -224,6 +224,8 @@ int main(void)
kputs("BOOT");
+ while(*(volatile char *)0x10000){}
+
__asm__ __volatile__ ("fence.i" : : : "memory");
return 0;
}เจ
เจเจฟเจนเฉ เจเฉเฉฐเจเจฒเจฆเจพเจฐ เจเฉเจก เจฆเฉ เจตเจฐเจคเฉเจ "เจญเจฐเฉเจธเฉเจฏเฉเจเจคเจพ เจฒเจ" เจเฉเจคเฉ เจเจพเจเจฆเฉ เจนเฉ: เจฎเฉเจ เจเจฟเจคเฉ เจธเฉเจฃเจฟเจ เจนเฉ เจเจฟ เจเฉฑเจ เจฌเฉเจ
เฉฐเจค เจฒเฉเจช เจเฉฑเจ เจชเจฐเจฟเจญเจพเจธเจผเจฟเจค เจตเจฟเจตเจนเจพเจฐ เจนเฉ, เจชเจฐ เจเฉฐเจชเจพเจเจฒเจฐ เจฆเจพ เจ
เจจเฉเจฎเจพเจจ เจฒเจเจพเจเจฃ เจฆเฉ เจธเฉฐเจญเจพเจตเจจเจพ เจจเจนเฉเจ เจนเฉ (เจฎเฉเจ เจคเฉเจนเจพเจจเฉเฉฐ เจฏเจพเจฆ เจฆเจฟเจตเจพเจเจเจฆเจพ เจนเจพเจ เจเจฟ 0x10000 เจธเจฅเจฟเจค BootROM).

เจเจน เจเจพเจชเจฆเจพ เจนเฉ, เจนเฉเจฐ เจเฉ เจเจฎเฉเจฆ เจเจฐเจจเฉ เจนเฉ - เจเจ เฉเจฐ เจเจฎเจฌเฉเจก, เจเจฟเจธ เจเจฟเจธเจฎ เจฆเฉ เจธเจฐเฉเจค เจเฉเจก เจนเจจ? เจชเจฐ เจตเจฟเฉฑเจ เจฒเฉเจเจ เจธเฉ เจเฉเจก เจจเฉเฉฐ เจกเฉเจฌเฉฑเจ เจเจฐ เจฐเจฟเจนเจพ เจธเฉ... Kreks-fex-pex:
(gdb) file builds/zeowaa-e115/sdboot.elf
A program is being debugged already.
Are you sure you want to change the file? (y or n) y
Reading symbols from builds/zeowaa-e115/sdboot.elf...done.
เจคเฉเจนเจพเจจเฉเฉฐ เจธเจฟเจฐเจซเจผ MIF เจซเจผเจพเจเจฒ เจเจพเจ เจฌเจฟเจจ เจจเฉเฉฐ เจจเจนเฉเจ, เจธเจเฉเจ ELF เจซเจพเจฐเจฎเฉเจ เจตเจฟเฉฑเจ เจ เจธเจฒ เจธเฉฐเจธเจเจฐเจฃ เจจเฉเฉฐ เจกเจพเจเจจเจฒเฉเจก เจเจฐเจจ เจฆเฉ เจฒเฉเฉ เจนเฉเฅค
เจนเฉเจฃ เจคเฉเจธเฉเจ nเจตเฉเจ เจเฉเจธเจผเจฟเจธเจผ เจจเจพเจฒ เจชเจคเจพ เจฒเจเจพ เจธเจเจฆเฉ เจนเฉ เจเจฟเฉฑเจฅเฉ เจเจเจเจผเฉเจเจฟเจเจธเจผเจจ เจเจพเจฐเฉ เจฐเจนเฉเจเจพ (เจเจน เจเจ เจนเฉเจฐ เจเจพเจฐเจจ เจนเฉ เจเจฟ เจเฉฐเจชเจพเจเจฒเจฐ เจจเฉเฉฐ เจเจน เจ เจจเฉเจฎเจพเจจ เจจเจนเฉเจ เจฒเจเจพเจเจฃเจพ เจเจพเจนเฉเจฆเจพ เจธเฉ เจเจฟ เจฒเฉเจช เจ เจจเฉฐเจค เจนเฉ)เฅค เจเฉเจฎ
set variable $pc=0xADDRเจคเฉเจนเจพเจจเฉเฉฐ เจซเจฒเจพเจ 'เจคเฉ เจฐเจเจฟเจธเจเจฐ เจฎเฉเฉฑเจฒ เจจเฉเฉฐ เจฌเจฆเจฒเจฃ เจฆเฉ เจเจเจฟเจ เจฆเจฟเฉฐเจฆเจพ เจนเฉ (เจเจธ เจเฉเจธ เจตเจฟเฉฑเจ, เจฎเฉเจเฉเจฆเจพ เจนเจฆเจพเจเจค เจฆเจพ เจชเจคเจพ)เฅค เจเจธเจฆเฉ เจฎเจฆเจฆ เจจเจพเจฒ, เจคเฉเจธเฉเจ เจฎเฉเจฎเฉเจฐเฉ (เจ เจคเฉ เจฎเฉเจฎเฉเจฐเฉ-เจฎเฉเจชเจก เจฐเจเจฟเจธเจเจฐเจพเจ) เจตเจฟเฉฑเจ เจฒเจฟเจเฉ เจฎเฉเฉฑเจฒเจพเจ เจจเฉเฉฐ เจฌเจฆเจฒ เจธเจเจฆเฉ เจนเฉเฅค
เจเจเจฐเจเจพเจฐ, เจฎเฉเจ เจเจธ เจธเจฟเฉฑเจเฉ 'เจคเฉ เจชเจนเฉเฉฐเจเจฟเจ (เจชเฉฑเจเจพ เจจเจนเฉเจ เจเจฟ เจเจฟเจนเฉเจพ เจธเจนเฉ เจนเฉ) เจเจฟ เจธเจพเจกเฉ เจเฉเจฒ "เจเจฒเจค เจธเจฟเจธเจเจฎ เจฆเจพ เจเฉฑเจ SD เจเจพเจฐเจก เจเจฟเฉฑเจคเจฐ" เจนเฉ, เจ
เจคเฉ เจธเจพเจจเฉเฉฐ เจกเจพเจเจจเจฒเฉเจก เจเฉเจคเฉ เจกเฉเจเจพ เจฆเฉ เจธเจผเฉเจฐเฉเจเจค เจตเจฟเฉฑเจ เจจเจนเฉเจ เจเจพเจฃ เจฆเฉ เจเจผเจฐเฉเจฐเจค เจนเฉ, เจชเจฐ 0x89800 เจฌเจพเจเจ เจนเฉเจฐ:
diff --git a/bootrom/sdboot/head.S b/bootrom/sdboot/head.S
index 14fa740..2a6c944 100644
--- a/bootrom/sdboot/head.S
+++ b/bootrom/sdboot/head.S
@@ -13,7 +13,7 @@ _prog_start:
smp_resume(s1, s2)
csrr a0, mhartid
la a1, dtb
- li s1, PAYLOAD_DEST
+ li s1, (PAYLOAD_DEST + 0x89800)
jr s1
.section .rodataเจธเจผเจพเจเจฆ เจเจน เจเจธ เจคเฉฑเจฅ เจคเฉเจ เจตเฉ เจชเฉเจฐเจญเจพเจตเจฟเจค เจนเฉเจเจ เจธเฉ เจเจฟ เจนเฉฑเจฅ เจตเจฟเฉฑเจ เจเฉฑเจ เจฌเฉเจฒเฉเฉเจพ 4Gb เจเจพเจฐเจก เจจเจพ เจนเฉเจฃ เจเจฐเจเฉ, เจฎเฉเจ เจเฉฑเจ 2Gb เจฒเจฟเจ เจ
เจคเฉ เจเจธเจจเฉเฉฐ เจฌเฉเจคเจฐเจคเฉเจฌเฉ เจฎเฉเจเจซเจพเจเจฒ เจตเจฟเฉฑเจ เจฌเจฆเจฒ เจฆเจฟเฉฑเจคเจพเฅค DEMO_END=11718750 'เจคเฉ DEMO_END=3078900 (เจเจฟเจธเฉ เจเจพเจธ เจ
เจฐเจฅ เจตเจฟเฉฑเจ เจ
เจฐเจฅ เจจเจพ เจฒเฉฑเจญเฉ - เจเฉฑเจฅเฉ เจเฉเจ เจจเจนเฉเจ เจนเฉ, เจฌเฉฑเจธ เจเจน เจนเฉ เจเจฟ เจนเฉเจฃ เจเจฟเฉฑเจคเจฐ เจเจพเจฐเจก 'เจคเฉ เจฐเฉฑเจเจฟเจ เจเจฟเจ เจนเฉ)เฅค
เจชเฉฑเจงเจฐ เจฆเฉ, เจฏเฉ-เจฌเฉเจ
เจนเฉเจฃ เจ
เจธเฉเจ เจ
เจเฉ เจตเฉ "เจกเจฟเฉฑเจ เจฐเจนเฉ เจนเจพเจ", เจชเจฐ เจ
เจธเฉเจ เจชเจนเจฟเจฒเจพเจ เจนเฉ เจธเจนเฉ เจเจเฉเจนเจพ 'เจคเฉ เจนเจพเจ 0x0000000080089a84. เจเฉฑเจฅเฉ เจฎเฉเจจเฉเฉฐ เจธเจตเฉเจเจพเจฐ เจเจฐเจจเจพ เจชเจเจเจพ: เจ
เจธเจฒ เจตเจฟเฉฑเจ, เจชเฉเจธเจผเจเจพเจฐเฉ "เจธเจพเจฐเฉ เจธเจเจพเจชเจพเจ เจฆเฉ เจจเจพเจฒ" เจจเจนเฉเจ เจเจพเจเจฆเฉ เจนเฉ, เจชเจฐ เจ
เฉฐเจธเจผเจ เจคเฉเจฐ 'เจคเฉ "เจฌเจพเจ
เจฆ" เจฒเจฟเจเฉ เจเจพเจเจฆเฉ เจนเฉ, เจเจธ เจฒเจ เจเฉฑเจฅเฉ เจฎเฉเจ เจชเจนเจฟเจฒเจพเจ เจนเฉ เจธเจพเจกเฉ SoC เจคเฉเจ เจธเจนเฉ dtb เจซเจพเจเจฒ เจจเฉเฉฐ เจธเฉฐเจฎเจฟเจฒเจฟเจค เจเจฐเจจ เจตเจฟเฉฑเจ เจชเฉเจฐเจฌเฉฐเจงเจฟเจค เจเฉเจคเจพ เจนเฉ, เจเจธเจจเฉเฉฐ เจธเฉเจเจฟเฉฐเจเจพเจ เจตเจฟเฉฑเจ เจ เฉเจ เจเจฐเฉ HiFive_U-Boot เจตเฉเจฐเฉเจเจฌเจฒ CONFIG_SYS_TEXT_BASE=0x80089800 (เจฆเฉ เจฌเจเจพเจ 0x08000000) เจคเจพเจ เจเฉ เจกเจพเจเจจเจฒเฉเจก เจชเจคเจพ เจ
เจธเจฒ เจจเจพเจฒ เจฎเฉเจฒ เจเจพเจเจฆเจพ เจนเฉเจตเฉเฅค เจนเฉเจฃ เจ
เจธเฉเจ เจ
เจเจฒเฉ เจชเฉฑเจงเจฐ เจฆเจพ เจจเจเจธเจผเจพ เจฒเฉเจก เจเจฐเจฆเฉ เจนเจพเจ, เจเฉฑเจ เจนเฉเจฐ เจเจฟเฉฑเจคเจฐ:
(gdb) file ../freedom-u-sdk/work/HiFive_U-Boot/u-boot
(gdb) tui enเจ เจคเฉ เจ เจธเฉเจ เจฆเฉเจเจฆเฉ เจนเจพเจ:
โ304 /* โ
โ305 * trap entry โ
โ306 */ โ
โ307 trap_entry: โ
โ308 addi sp, sp, -32*REGBYTES โ
>โ309 SREG x1, 1*REGBYTES(sp) โ
โ310 SREG x2, 2*REGBYTES(sp) โ
โ311 SREG x3, 3*REGBYTES(sp) โเจเจธ เจคเฉเจ เจเจฒเจพเจตเจพ, เจ
เจธเฉเจ เจฒเจพเจเจจเจพเจ 308 เจ
เจคเฉ 309 เจฆเฉ เจตเจฟเจเจเจพเจฐ เจเจพเจฒ เจฎเจพเจฐเจฆเฉ เจนเจพเจเฅค เจ
เจคเฉ เจเจน เจนเฉเจฐเจพเจจเฉ เจฆเฉ เจเฉฑเจฒ เจจเจนเฉเจ เจนเฉ เจเจฟ $sp เจฆเจพ เจฎเจคเจฒเจฌ เจนเฉ 0xfffffffe31cdc0a0. เจนเจพเจ, เจเจน เจฒเจพเจเจจ 307 เจฆเฉ เจเจพเจฐเจจ เจฒเจเจพเจคเจพเจฐ "เจญเฉฑเจเจฆเจพ" เจตเฉ เจนเฉเฅค เจเจธ เจฒเจ, เจเจ เจเฉฑเจฅเฉ เจเฉฑเจ เจฌเฉเจฐเฉเจเจชเฉเจเจเฉฐเจ เจธเฉเฉฑเจ เจเจฐเจจ เจฆเฉ เจเฉเจธเจผเจฟเจธเจผ เจเจฐเฉเจเฅค trap_entry, เจ
เจคเฉ เจซเจฟเจฐ เจตเจพเจชเจธ เจเจพเจ 0x80089800 (เจฏเฉ-เจฌเฉเจ เจฆเจพ เจเจเจเจฐเฉ เจชเฉเจเจเฉฐเจ), เจ
เจคเฉ เจเจ เจเจฎเฉเจฆ เจเจฐเฉเจ เจเจฟ เจเจธ เจจเฉเฉฐ เจเฉฐเจช เจเจฐเจจ เจคเฉเจ เจชเจนเจฟเจฒเจพเจ เจฐเจเจฟเจธเจเจฐเจพเจ เจจเฉเฉฐ เจธเจนเฉ เจขเฉฐเจ เจจเจพเจฒ เจธเฉเฉฑเจ เจเจฐเจจ เจฆเฉ เจฒเฉเฉ เจจเจนเฉเจ เจนเฉ... เจฒเฉฑเจเจฆเจพ เจนเฉ เจเจฟ เจเจน เจเฉฐเจฎ เจเจฐเจฆเจพ เจนเฉ:
(gdb) b trap_entry
Breakpoint 1 at 0x80089a80: file /hdd/trosinenko/fpga/freedom-u-sdk/HiFive_U-Boot/arch/riscv/cpu/HiFive/start.S, line 308.
(gdb) set variable $pc=0x80089800
(gdb) c
Continuing.
Breakpoint 1, trap_entry () at /hdd/trosinenko/fpga/freedom-u-sdk/HiFive_U-Boot/arch/riscv/cpu/HiFive/start.S:308
(gdb) p/x $sp
$4 = 0x81cf950เจธเจเฉเจ เจชเฉเจเจเฉฐเจเจฐ เจเฉฐเจจเจพ เจนเฉ, เจธเจชเฉฑเจธเจผเจ เจคเฉเจฐ 'เจคเฉ: เจเจน RAM เจจเฉเฉฐ เจชเฉเจฐเฉ เจคเจฐเฉเจนเจพเจ เจฌเจพเจเจชเจพเจธ เจเจฐเจจ เจตเฉฑเจฒ เจเจธเจผเจพเจฐเจพ เจเจฐเจฆเจพ เจนเฉ (เจเจฆเฉเจ เจคเฉฑเจ, เจฌเฉเจธเจผเฉฑเจ, เจธเจพเจกเฉ เจเฉเจฒ เจชเจนเจฟเจฒเจพเจ เจคเฉเจ เจชเจคเจพ เจ เจจเฉเจตเจพเจฆ เจจเจนเฉเจ เจนเฉ, เจชเจฐ เจเจ เจเฉฑเจ เจธเจงเจพเจฐเจจ เจตเจฟเจเจฒเจช เจฆเฉ เจเจฎเฉเจฆ เจเจฐเฉเจ)เฅค
เจเจ เจเจธ เจจเจพเจฒ เจชเฉเจเจเฉฐเจเจฐ เจจเฉเฉฐ เจฌเจฆเจฒเจฃ เจฆเฉ เจเฉเจธเจผเจฟเจธเจผ เจเจฐเฉเจ 0x881cf950. เจจเจคเฉเจเฉ เจตเจเฉเจ, เจ
เจธเฉเจ เจเจธ เจธเจฟเฉฑเจเฉ 'เจคเฉ เจชเจนเฉเฉฐเจเจฆเฉ เจนเจพเจ เจเจฟ handle_trap เจฌเฉเจฒเจพเจเจ เจ
เจคเฉ เจฌเฉเจฒเจพเจเจ, เจ
เจคเฉ เจเจธเฉ เจธเจฎเฉเจ เจ
เจธเฉเจ เจ
เฉฐเจฆเจฐ เจเจพเจเจฆเฉ เจนเจพเจ _exit_trap เจเฉฑเจ เจฆเจฒเฉเจฒ เจจเจพเจฒ epc=2148315240 (เจฆเจธเจผเจฎเจฒเจต เจตเจฟเฉฑเจ):
(gdb) x/10i 2148315240
0x800cb068 <strnlen+12>: lbu a4,0(a5)
0x800cb06c <strnlen+16>: bnez a4,0x800cb078 <strnlen+28>
0x800cb070 <strnlen+20>: sub a0,a5,a0
0x800cb074 <strnlen+24>: ret
0x800cb078 <strnlen+28>: addi a5,a5,1
0x800cb07c <strnlen+32>: j 0x800cb064 <strnlen+8>
0x800cb080 <strdup>: addi sp,sp,-32
0x800cb084 <strdup+4>: sd s0,16(sp)
0x800cb088 <strdup+8>: sd ra,24(sp)
0x800cb08c <strdup+12>: li s0,0'เจคเฉ เจฌเจฐเฉเจเจชเฉเจเจเฉฐเจ เจธเฉเฉฑเจ เจเจฐเฉ strnlen, เจ
เจธเฉเจ เจเจพเจฐเฉ เจฐเฉฑเจเจฆเฉ เจนเจพเจ เจ
เจคเฉ เจฆเฉเจเจฆเฉ เจนเจพเจ:
(gdb) bt
#0 strnlen (s=s@entry=0x10060000 "", count=18446744073709551615) at lib/string.c:283
#1 0x00000000800cc14c in string (buf=buf@entry=0x881cbd4c "", end=end@entry=0x881cc15c "", s=0x10060000 "", field_width=<optimized out>, precision=<optimized out>, flags=<optimized out>) at lib/vsprintf.c:265
#2 0x00000000800cc63c in vsnprintf_internal (buf=buf@entry=0x881cbd38 "exception code: 5 , ", size=size@entry=1060, fmt=0x800d446e "s , epc %08x , ra %08lxn", fmt@entry=0x800d4458 "exception code: %d , %s , epc %08x , ra %08lxn", args=0x881cc1a0,
args@entry=0x881cc188) at lib/vsprintf.c:619
#3 0x00000000800cca54 in vsnprintf (buf=buf@entry=0x881cbd38 "exception code: 5 , ", size=size@entry=1060, fmt=fmt@entry=0x800d4458 "exception code: %d , %s , epc %08x , ra %08lxn", args=args@entry=0x881cc188) at lib/vsprintf.c:710
#4 0x00000000800cca68 in vscnprintf (buf=buf@entry=0x881cbd38 "exception code: 5 , ", size=size@entry=1060, fmt=fmt@entry=0x800d4458 "exception code: %d , %s , epc %08x , ra %08lxn", args=args@entry=0x881cc188) at lib/vsprintf.c:717
#5 0x00000000800ccb50 in printf (fmt=fmt@entry=0x800d4458 "exception code: %d , %s , epc %08x , ra %08lxn") at lib/vsprintf.c:792
#6 0x000000008008a9f0 in _exit_trap (regs=<optimized out>, epc=2148315240, code=<optimized out>) at arch/riscv/lib/interrupts.c:92
#7 handle_trap (mcause=<optimized out>, epc=<optimized out>, regs=<optimized out>) at arch/riscv/lib/interrupts.c:55
#8 0x0000000080089b10 in trap_entry () at /hdd/trosinenko/fpga/freedom-u-sdk/HiFive_U-Boot/arch/riscv/cpu/HiFive/start.S:343
Backtrace stopped: frame did not save the PCเจฆเจฟเจธเจฆเจพ เจนเฉ, _exit_trap เจเจ เจนเฉเจ เจ
เจชเจตเจพเจฆ เจฌเจพเจฐเฉ เจกเฉเจฌเจเจฟเฉฐเจ เจเจพเจฃเจเจพเจฐเฉ เจชเฉเจฐเจฆเจพเจจ เจเจฐเจจเจพ เจเจพเจนเฉเฉฐเจฆเจพ เจนเฉ, เจชเจฐ เจเจน เจจเจนเฉเจ เจเจฐ เจธเจเจฆเจพ. เจเจธ เจฒเจ, เจเจฟเจธเฉ เจคเจฐเฉเจนเจพเจ เจธเจพเจกเฉ เจธเจฐเฉเจค เจฆเฉเจฌเจพเจฐเจพ เจจเจนเฉเจ เจชเฉเจฐเจฆเจฐเจธเจผเจฟเจค เจเฉเจคเฉ เจเจพเจเจฆเฉ เจนเจจ. set directories ../freedom-u-sdk/HiFive_U-Boot/ เจฌเจพเจฐเฉ! เจนเฉเจฃ เจชเฉเจฐเจฆเจฐเจธเจผเจฟเจค!
เจเฉเจฐ, เจเจฒเฉ เจเจธเจจเฉเฉฐ เจฆเฉเจฌเจพเจฐเจพ เจเจฒเจพเจเจเจฆเฉ เจนเจพเจ, เจ
เจคเฉ เจธเจเฉเจ เจเฉเจฐเฉเจธ เจคเฉเจ เจ
เจธเจฒเฉ เจธเจฎเฉฑเจธเจฟเจ เจฆเฉ เจเจพเจฐเจจ เจจเฉเฉฐ เจตเฉเจเจฆเฉ เจนเจพเจ เจเจฟเจธ เจจเจพเจฒ เจชเจนเจฟเจฒเฉ เจเจฒเจคเฉ เจนเฉเจ เจธเฉ (mcause == 5). เจเฉ เจฎเฉเจ เจธเจนเฉ เจคเจฐเฉเจนเจพเจ เจธเจฎเจเจฆเจพ เจนเจพเจ เจเจฟ เจเฉ เจฒเจฟเจเจฟเจ เจนเฉ เจชเฉฐเจจเจพ 37 'เจคเฉ, เจซเจฟเจฐ เจเจธ เจ
เจชเจตเจพเจฆ เจฆเจพ เจฎเจคเจฒเจฌ เจนเฉ Load access fault. เจเจพเจฐเจจ เจเฉฑเจฅเฉ เจเจพเจชเจฆเจพ เจนเฉ
arch/riscv/cpu/HiFive/start.S:
call_board_init_f:
li t0, -16
li t1, CONFIG_SYS_INIT_SP_ADDR
and sp, t1, t0 /* force 16 byte alignment */
#ifdef CONFIG_DEBUG_UART
jal debug_uart_init
#endif
call_board_init_f_0:
mv a0, sp
jal board_init_f_alloc_reserve
mv sp, a0
jal board_init_f_init_reserve
mv a0, zero /* a0 <-- boot_flags = 0 */
la t5, board_init_f
jr t5 /* jump to board_init_f() */
$sp เจฆเจพ เจเฉฑเจเฉ เจนเฉ เจเจฒเจค เจ
เจฐเจฅ เจนเฉ, เจ
เจคเฉ เจ
เฉฐเจฆเจฐ board_init_f_init_reserve เจเฉฑเจ เจเจฒเจคเฉ เจนเฉเฉฐเจฆเฉ เจนเฉเฅค เจ
เจเจฟเจนเจพ เจฒเจเจฆเจพ เจนเฉ เจเจฟ เจเจน เจฆเฉเจธเจผเฉ เจนเฉ: เจเฉฑเจ เจ
เจธเจชเจธเจผเจ เจจเจพเจฎ เจตเจพเจฒเจพ เจเฉฑเจ เจตเฉเจฐเฉเจเจฌเจฒ CONFIG_SYS_INIT_SP_ADDR. เจเจน เจซเจพเจเจฒ เจตเจฟเฉฑเจ เจชเจฐเจฟเจญเจพเจธเจผเจฟเจค เจเฉเจคเจพ เจเจฟเจ เจนเฉ HiFive_U-Boot/include/configs/HiFive-U540.h. เจเจฟเจธเฉ เจธเจฎเฉเจ เจฎเฉเจ เจเจน เจตเฉ เจธเฉเจเจฟเจ เจธเฉ, เจนเฉ เจธเจเจฆเจพ เจนเฉ, เจ เฉเจ เจนเฉ, เจฎเฉเจจเฉเฉฐ เจชเฉเจฐเฉเจธเฉเจธเจฐ เจฒเจ เจเฉฑเจ เจฌเฉเจ เจฒเฉเจกเจฐ เจเฉเฉเจจเจพ เจเจพเจนเฉเจฆเจพ เจนเฉ - เจนเฉ เจธเจเจฆเจพ เจนเฉ เจเจฟ เจชเฉเจฐเฉเจธเฉเจธเจฐ เจจเฉเฉฐ เจฅเฉเฉเจพ เจเจฟเจนเจพ เจ เฉเจ เจเจฐเจจเจพ เจธเฉเจเจพ เจนเฉ เจเจพเจตเฉ? เจชเจฐ เจซเจฟเจฐ เจฎเฉเจ เจฆเฉเจเจฟเจ เจเจฟ เจเจน เจชเฉเจฐเฉ เจคเจฐเฉเจนเจพเจ เจฎเฉเจเฉฐเจฎเจฒ เจจเจพ เจนเฉเจฃ เจคเฉเจ เจเฉฑเจ เจเจฒเจพเจคเจฎเจ เจเฉเจเจผ เจตเจฐเจเจพ เจธเฉ#if 0-เจเฉฑเจ เจตเฉฑเจเจฐเฉ เจฎเฉเจฎเฉเจฐเฉ เจธเฉฐเจฐเจเจจเจพ เจฒเจ เจเจพเจธ เจธเฉเจเจฟเฉฐเจเจพเจ, เจ
เจคเฉ เจคเฉเจธเฉเจ เจ
เจเจฟเจนเจพ เจเจฐเจจ เจฆเฉ เจเฉเจธเจผเจฟเจธเจผ เจเจฐ เจธเจเจฆเฉ เจนเฉ:
diff --git a/include/configs/HiFive-U540.h b/include/configs/HiFive-U540.h
index ca89383..245542c 100644
--- a/include/configs/HiFive-U540.h
+++ b/include/configs/HiFive-U540.h
@@ -65,12 +65,9 @@
#define CONFIG_SYS_SDRAM_BASE PHYS_SDRAM_0
#endif
#if 1
-/*#define CONFIG_NR_DRAM_BANKS 1*/
+#define CONFIG_NR_DRAM_BANKS 1
#define PHYS_SDRAM_0 0x80000000 /* SDRAM Bank #1 */
-#define PHYS_SDRAM_1
- (PHYS_SDRAM_0 + PHYS_SDRAM_0_SIZE) /* SDRAM Bank #2 */
-#define PHYS_SDRAM_0_SIZE 0x80000000 /* 2 GB */
-#define PHYS_SDRAM_1_SIZE 0x10000000 /* 256 MB */
+#define PHYS_SDRAM_0_SIZE 0x40000000 /* 1 GB */
#define CONFIG_SYS_SDRAM_BASE PHYS_SDRAM_0
#endif
/*
@@ -81,7 +78,7 @@
#define CONSOLE_ARG "console=ttyS0,115200 "
/* Init Stack Pointer */
-#define CONFIG_SYS_INIT_SP_ADDR (0x08000000 + 0x001D0000 -
+#define CONFIG_SYS_INIT_SP_ADDR (0x80000000 + 0x001D0000 -
GENERATED_GBL_DATA_SIZE)
#define CONFIG_SYS_LOAD_ADDR 0xa0000000 /* partway up SDRAM */เจเจฟเจธเฉ เจธเจฎเฉเจ เจฌเฉเจธเจพเจเฉเจเจ เจฆเฉ เจเจฟเจฃเจคเฉ เจเฉฑเจ เจจเจพเจเจผเฉเจ เจฌเจฟเฉฐเจฆเฉ 'เจคเฉ เจชเจนเฉเฉฐเจ เจเจฟเจ เจนเฉ. เจฅเฉเฉเจพ เจเจฟเจนเจพ เจธเฉฐเจเจฐเจธเจผ เจเจฐเจจ เจคเฉเจ เจฌเจพเจ เจฆ, เจฎเฉเจจเฉเฉฐ เจเจชเจฃเฉ เจฌเฉเจฐเจก เจฒเจ เจธเจนเฉ เจชเฉเจฐเจ เจฌเจฃเจพเจเจฃ เจฆเฉ เจเจผเจฐเฉเจฐเจค เจเจ. เจ เจเจฟเจนเจพ เจเจฐเจจ เจฒเจ, เจธเจพเจจเฉเฉฐ เจธเจพเจกเฉ เจธเฉฐเจฐเจเจจเจพ เจฆเฉ เจ เจจเฉเจเฉเจฒ เจนเฉเจฃ เจฒเจ เจเจ เจซเจพเจเจฒเจพเจ เจจเฉเฉฐ เจเจพเจชเฉ เจ เจคเฉ เจเจกเจเจธเจ เจเจฐเจจ เจฆเฉ เจฒเฉเฉ เจนเฉเฅค
เจเฉเจฐ, เจฒเจเจญเจ, เจเฉฑเจฅเฉ เจเฉฑเจ เจเฉเจเฉ เจเจฟเจนเฉ เจธเจพเจฐเจฃเฉ เจนเฉ
trosinenko@trosinenko-pc:/hdd/trosinenko/fpga/freedom-u-sdk/HiFive_U-Boot$ git show --name-status
commit 39cd67d59c16ac87b46b51ac1fb58f16f1eb1048 (HEAD -> zeowaa-1gb)
Author: Anatoly Trosinenko <anatoly.trosinenko@gmail.com>
Date: Tue Jul 2 17:13:16 2019 +0300
Initial support for Zeowaa A-E115FB board
M arch/riscv/Kconfig
A arch/riscv/cpu/zeowaa-1gb/Makefile
A arch/riscv/cpu/zeowaa-1gb/cpu.c
A arch/riscv/cpu/zeowaa-1gb/start.S
A arch/riscv/cpu/zeowaa-1gb/timer.c
A arch/riscv/cpu/zeowaa-1gb/u-boot.lds
M arch/riscv/dts/Makefile
A arch/riscv/dts/zeowaa-1gb.dts
A board/Zeowaa/zeowaa-1gb/Kconfig
A board/Zeowaa/zeowaa-1gb/MAINTAINERS
A board/Zeowaa/zeowaa-1gb/Makefile
A board/Zeowaa/zeowaa-1gb/Zeowaa-A-E115FB.c
A configs/zeowaa-1gb_defconfig
A include/configs/zeowaa-1gb.hเจตเจฟเฉฑเจ เจตเฉเจฐเจตเฉ เจฎเจฟเจฒ เจธเจเจฆเฉ เจนเจจ .
ะะฐะบ ะพะบะฐะทะฐะปะพัั, ะฝะฐ ััะพะน SiFive-ะพะฒัะบะพะน ะฟะปะฐัะต ัะตะณะธัััั ะฝะตะบะพัะพััั
ััััะพะนััะฒ ะธะผะตัั ะดััะณะธะต ะฐะดัะตัะฐ. ะ ะตัั ะพะบะฐะทะฐะปะพัั, ััะพ U-Boot ะบะพะฝัะธะณััะธััะตััั ัะถะต ะทะฝะฐะบะพะผัะผ ะฟะพ ัะดัั Linux ะผะตั
ะฐะฝะธะทะผะพะผ Kconfig โ ะฝะฐะฟัะธะผะตั, ะผะพะถะฝะพ ัะบะพะผะฐะฝะดะพะฒะฐัั make menuconfig, เจ
เจคเฉ เจเฉฑเจ เจธเฉเจตเจฟเจงเจพเจเจจเจ เจเฉเจเจธเจ เจเฉฐเจเจฐเจซเฉเจธ เจคเฉเจนเจพเจกเฉ เจธเจพเจนเจฎเจฃเฉ เจชเฉเจฐเจเจ เจนเฉเจตเฉเจเจพ เจเฉ เจเจฟ เจฆเฉเจเจฐเจพ เจฎเจพเจชเจฆเฉฐเจกเจพเจ เจฆเจพ เจตเจฐเจฃเจจ เจฆเจฟเจเจพ เจฐเจฟเจนเจพ เจนเฉ ? เจเจฆเจฟ เจเจฎ เจคเฉเจฐ 'เจคเฉ, เจฆเฉ เจฌเฉเจฐเจกเจพเจ เจฆเฉ เจตเจฐเจฃเจจ เจคเฉเจ เจคเฉเจเฉ เจฆเฉ เจตเจฐเจฃเจจ เจจเฉเฉฐ เจเจเฉฑเจ เจพ เจเจฐเจจเจพ, เจเจฅเฉเจ เจนเจฐ เจเจฟเจธเจฎ เจฆเฉ เจฆเจฟเจเจพเจตเฉ เจตเจพเจฒเฉ PLL เจชเฉเจจเจฐ-เจธเฉฐเจฐเจเจจเจพ เจจเฉเฉฐ เจฌเจพเจนเจฐ เจเฉฑเจขเจฆเจพ เจนเฉ (เจเจผเจพเจนเจฐ เจคเฉเจฐ 'เจคเฉ, เจเจน PCIe เจฆเฉเจเจฐเจพ เจนเฉเจธเจ เจเฉฐเจชเจฟเจเจเจฐ เจคเฉเจ เจจเจฟเจฏเฉฐเจคเจฐเจฃ เจจเจพเจฒ เจเฉเฉเจฟเจ เจนเฉเจเจ เจนเฉ, เจชเจฐ เจเจน เจจเจฟเจธเจผเจเจฟเจค เจจเจนเฉเจ เจนเฉ) , เจฎเฉเจจเฉเฉฐ เจเฉเจ เจซเจฐเจฎเจตเฉเจ
เจฐ เจชเฉเจฐเจพเจชเจค เจนเฉเจ, เจเจฟเจธ เจจเฉ เจฎเฉฐเจเจฒ 'เจคเฉ เจธเจนเฉ เจฎเฉเจธเจฎ เจตเจฟเฉฑเจ เจฎเฉเจจเฉเฉฐ UART เจฆเฉเจเจฐเจพ เจเฉฑเจ เจธเฉเจจเฉเจนเจพ เจฆเจฟเฉฑเจคเจพ เจเจฟ เจเจน เจเจฟเจธ เจเจฎเจ เจนเฉเจธเจผ เจคเฉเจ เจเฉฐเจชเจพเจเจฒ เจเฉเจคเจพ เจเจฟเจ เจธเฉ, เจ
เจคเฉ เจเจธ เจฌเจพเจฐเฉ เจเจฟ เจฎเฉเจฐเฉ เจเฉเจฒ เจเจฟเฉฐเจจเจพ DRAM เจนเฉ (เจชเจฐ เจฎเฉเจ เจเฉเจฆ เจเจน เจเจพเจฃเจเจพเจฐเฉ เจนเฉเจกเจฐ เจตเจฟเฉฑเจ เจฒเจฟเจเฉ เจนเฉ)เฅค
เจธเจฟเจฐเจซเจผ เจ
เจซเจผเจธเฉเจธ เจฆเฉ เจเฉฑเจฒ เจเจน เจนเฉ เจเจฟ เจเจธเจฆเฉ เจฌเจพเจ
เจฆ เจฌเฉเจฐเจก เจจเฉ เจเจฎ เจคเฉเจฐ 'เจคเฉ เจชเฉเจฐเฉเจธเฉเจธเจฐ JTAG เจฆเฉเจเจฐเจพ เจเจตเจพเจฌ เจฆเฉเจฃเจพ เจฌเฉฐเจฆ เจเจฐ เจฆเจฟเฉฑเจคเจพ, เจ
เจคเฉ เจเฉฑเจ SD เจเจพเจฐเจก เจคเฉเจ เจฒเฉเจก เจเจฐเจจเจพ, เจ
เจซเจผเจธเฉเจธ, เจฎเฉเจฐเฉ เจธเฉฐเจฐเจเจจเจพ เจตเจฟเฉฑเจ เจคเฉเจเจผ เจจเจนเฉเจ เจนเฉเฅค เจฆเฉเจเฉ เจชเจพเจธเฉ, เจเจ เจตเจพเจฐ BootROM เจเฉฑเจ เจธเฉเจจเฉเจนเจพ เจฆเจฟเฉฐเจฆเจพ เจนเฉ เจเจฟ ERROR, เจฌเฉเจ เจเจฐเจจ เจตเจฟเฉฑเจ เจ
เจธเจซเจฒ, เจ
เจคเฉ เจฏเฉ-เจฌเฉเจ เจคเฉเจฐเฉฐเจค เจชเฉเจช เจ
เฉฑเจช เจนเฉ เจเจฟเจเฅค เจเจน เจเจฆเฉเจ เจธเฉ เจเจฆเฉเจ เจเจน เจฎเฉเจฐเฉ 'เจคเฉ เจ เจเจฟเจ: เจเจผเจพเจนเจฐ เจคเฉเจฐ 'เจคเฉ, FPGA เจตเจฟเฉฑเจ เจฌเจฟเฉฑเจเจธเจเฉเจฐเฉเจฎ เจจเฉเฉฐ เจฐเฉเจฌเฉเจ เจเจฐเจจ เจคเฉเจ เจฌเจพเจ
เจฆ, เจฎเฉเจฎเฉเจฐเฉ เจฎเจฟเจเจฆเฉ เจจเจนเฉเจ เจนเฉ, เจเจธ เจเฉเจฒ "เจ
เจจเจเฉเจฐเฉเจจ" เจเจฐเจจ เจฆเจพ เจธเจฎเจพเจ เจจเจนเฉเจ เจนเฉ, เจเจฆเจฟ. เจธเฉฐเจเฉเจช เจตเจฟเฉฑเจ, เจคเฉเจธเฉเจ เจธเจฟเจฐเจซเจผ เจเจฆเฉเจ เจเจฐ เจธเจเจฆเฉ เจนเฉ เจเจฆเฉเจ เจเฉเจ เจธเฉเจจเฉเจนเจพ เจฆเจฟเจเจพเจ เจฆเจฟเฉฐเจฆเจพ เจนเฉ LOADING / เจกเฉเจฌเฉฑเจเจฐ เจ
เจคเฉ เจเจฎเจพเจเจก เจจเจพเจฒ เจเฉเฉเฉ set variable $pc=0x80089800, เจเจธ เจคเจฐเฉเจนเจพเจ เจเจธ เจฒเฉฐเจฌเฉ เจฒเฉเจกเจฟเฉฐเจ เจจเฉเฉฐ เจฌเจพเจเจชเจพเจธ เจเจฐเจจเจพ (เจฌเฉเจธเจผเจ, เจเจธ เจงเจพเจฐเจจเจพ 'เจคเฉ เจเจฟ เจชเจฟเจเจฒเฉ เจตเจพเจฐ เจเจน เจฌเจนเฉเจค เจเจฒเจฆเฉ เจเฉเฉฑเจ เจเจฟเจ เจธเฉ เจเจฟ เจเจธ เจเฉเจฒ เจ
เจธเจฒ เจเฉเจก เจฆเฉ เจธเจฟเจเจฐ 'เจคเฉ เจเฉเจ เจตเฉ เจฒเฉเจก เจเจฐเจจ เจฆเจพ เจธเจฎเจพเจ เจจเจนเฉเจ เจธเฉ)เฅค
เจตเฉเจธเฉ, เจเฉ เจเจน เจเจฎ เจคเฉเจฐ 'เจคเฉ เจธเจงเจพเจฐเจฃ เจนเฉ เจเจฟ เจชเฉเจฐเฉเจธเฉเจธเจฐ เจชเฉเจฐเฉ เจคเจฐเฉเจนเจพเจ เจซเฉเจฐเฉเจเจผ เจนเฉ เจเจพเจเจฆเจพ เจนเฉ เจ เจคเฉ JTAG เจกเฉเจฌเจเจฐ เจธเฉเจจเฉเจนเจฟเจเจ เจจเจพเจฒ เจเจธ เจจเจพเจฒ เจเฉเฉ เจจเจนเฉเจ เจธเจเจฆเจพ เจนเฉ?
Error: unable to halt hart 0
Error: dmcontrol=0x80000001
Error: dmstatus =0x00030c82เจเจธ เจฒเจ, เจเจกเฉเจ เจเจฐเฉ! เจฎเฉเจ เจเจธเจจเฉเฉฐ เจชเจนเจฟเจฒเจพเจ เจนเฉ เจฆเฉเจเจฟเจ เจนเฉ! เจเฉเจ เจ เจเจฟเจนเจพ เจนเฉ เจนเฉเฉฐเจฆเจพ เจนเฉ เจเจฆเฉเจ เจเจพเจเจฒเจฟเฉฐเจ เจกเฉเฉฑเจกเจฒเจพเจ เจนเฉ เจเจพเจเจฆเจพ เจนเฉ, เจ เจคเฉ เจฎเฉเจ เจเจฟเจธเฉ เจคเจฐเฉเจนเจพเจ เจฎเฉเจฎเฉเจฐเฉ เจเฉฐเจเจฐเฉเจฒเจฐ เจฆเฉ เจฒเฉเจเจ 'เจคเฉ เจญเจฐเฉเจธเจพ เจจเจนเฉเจ เจเจฐเจฆเจพ - เจฎเฉเจ เจเจธเจจเฉเฉฐ เจเจชเจฃเฉ เจเจช เจฒเจฟเจเจฟเจ... เจ เจเจพเจจเจ, เจเฉฐเจเจฐเฉเจฒเจฐ เจจเฉเฉฐ เจธเฉฐเจชเจพเจฆเจฟเจค เจเจฐเจจ เจคเฉเจ เจฌเจพเจ เจฆ เจชเฉเจฐเฉเจธเฉเจธเจฐ เจฆเฉ เจชเจนเจฟเจฒเฉ เจธเจซเจฒ เจชเฉเจจเจฐ เจจเจฟเจฐเจฎเจพเจฃ เจคเฉเจ เจฌเจพเจ เจฆ, เจฎเฉเจ เจฆเฉเจเจฟเจ:
INIT
CMD0
CMD8
ACMD41
CMD58
CMD16
CMD18
LOADING
BOOT
U-Boot 2018.09-g39cd67d-dirty (Jul 03 2019 - 13:50:33 +0300)
DRAM: 1 GiB
MMC:
BEFORE LOAD ENVBEFORE FDTCONTROLADDRBEFORE LOADADDRIn: serial
Out: serial
Err: serial
Hit any key to stop autoboot: 3เจ
เฉฑเจเฉ เจเจธ เจ
เจเฉเจฌ เจฒเจพเจเจจ เจจเฉเฉฐ In: serial เจงเจฟเจเจจ เจจเจพ เจฆเจฟเจ - เจฎเฉเจ เจเฉฑเจ เจนเฉเจเจเจฟเฉฐเจ เจชเฉเจฐเฉเจธเฉเจธเจฐ 'เจคเฉ เจเจน เจธเจฎเจเจฃ เจฆเฉ เจเฉเจธเจผเจฟเจธเจผ เจเจฐ เจฐเจฟเจนเจพ เจธเฉ เจเจฟ เจเฉ เจเจน เจตเจพเจคเจพเจตเจฐเจฃ เจจเจพเจฒ เจธเจนเฉ เจคเจฐเฉเจนเจพเจ เจเฉฐเจฎ เจเจฐเจฆเจพ เจนเฉเฅค เจคเฉเจนเจพเจกเจพ เจเฉ เจฎเจคเจฒเจฌ เจนเฉ, "เจเจน เจฆเจธ เจฎเจฟเฉฐเจเจพเจ เจคเฉเจ เจเจธ เจคเจฐเฉเจนเจพเจ เจฒเจเจ เจฐเจฟเจนเจพ เจนเฉ"? เจเฉฑเจเฉ-เจเฉฑเจ เจเจธ เจจเฉเฉฐ เจฎเฉเฉ เจธเจฅเจพเจชเจฟเจค เจเจฐเจจ เจ
เจคเฉ เจฌเฉเจ เจฎเฉเจจเฉ 'เจคเฉ เจเจพเจฃ เจฆเจพ เจชเฉเจฐเจฌเฉฐเจง เจเฉเจคเจพ เจเจฟเจ เจนเฉ! เจเฉฑเจ เจเฉเจเจพ เจเจฟเจนเจพ เจตเจฟเจเจพเฉ: เจนเจพเจฒเจพเจเจเจฟ เจฏเฉ-เจฌเฉเจ SD เจเจพเจฐเจก เจคเฉเจ เจชเจนเจฟเจฒเฉ 2^24 เจฌเจพเจเจเจพเจ เจตเจฟเฉฑเจ เจฒเฉเจก เจนเฉเฉฐเจฆเจพ เจนเฉ, เจเจฆเฉเจ เจเจน เจธเจผเฉเจฐเฉ เจนเฉเฉฐเจฆเจพ เจนเฉ, เจเจน เจเจชเจฃเฉ เจเจช เจจเฉเฉฐ เจเฉฑเจ เจฆเฉเจฐ เจฆเฉ เจชเจคเฉ 'เจคเฉ เจเจพเจชเฉ เจเจฐเจฆเจพ เจนเฉ, เจเจพเจ เจคเจพเจ เจธเฉฐเจฐเจเจจเจพ เจธเจฟเจฐเจฒเฉเจ เจตเจฟเฉฑเจ เจฒเจฟเจเจฟเจ เจเจพเจเจฆเจพ เจนเฉ, เจเจพเจ เจธเจฟเจฐเจซเจผ RAM เจฆเฉ เจเฉฑเจเฉ เจชเจคเจฟเจเจ 'เจคเฉเฅค , เจ
เจคเฉ ELF เจฐเฉเจฒเฉเจเฉเจธเจผเจจ -เจ
เฉฑเจเจฐ เจเจฐเจฆเจพ เจนเฉ, เจ
เจคเฉ เจเฉฑเจฅเฉ เจเฉฐเจเจฐเฉเจฒ เจเฉเจฐเจพเจเจธเจซเจฐ เจเจฐเจฆเจพ เจนเฉเฅค เจเจธ เจฒเจ: เจ
เจเจฟเจนเจพ เจฒเจเจฆเจพ เจนเฉ เจเจฟ เจ
เจธเฉเจ เจเจธ เจชเฉฑเจงเจฐ เจจเฉเฉฐ เจชเจพเจธ เจเจฐ เจฒเจฟเจ เจนเฉ เจ
เจคเฉ เจเฉฑเจ เจฌเฉเจจเจธ เจชเฉเจฐเจพเจชเจค เจเฉเจคเจพ เจนเฉ เจเจฟ เจชเฉเจฐเฉเจธเฉเจธเจฐ เจเจธ เจคเฉเจ เจฌเจพเจ
เจฆ เจเฉฑเจธ เจเฉ เจจเจนเฉเจ เจฒเจเจเจฟเจ.
เจคเจพเจ เจเจพเจเจฎเจฐ เจเฉฐเจฎ เจเจฟเจเจ เจจเจนเฉเจ เจเจฐ เจฐเจฟเจนเจพ? เจเฉฐเจ เจฒเฉฑเจเจฆเจพ เจนเฉ เจเจฟ เจเฉเฉ เจเจฟเจธเฉ เจเจพเจฐเจจ เจเฉฐเจฎ เจจเจนเฉเจ เจเจฐ เจฐเจนเฉ เจนเฉ...
(gdb) x/x 0x0200bff8
0x200bff8: 0x00000000เจเฉ เจคเฉเจธเฉเจ เจคเฉเจฐเจพเจ เจจเฉเฉฐ เจนเฉฑเจฅเฉเจ เจฎเฉเฉเจฆเฉ เจนเฉ เจคเจพเจ เจเฉ เจนเฉเจตเฉเจเจพ?
(gdb) set variable *0x0200bff8=310000000
(gdb) cเจซเจฟเจฐ:
Hit any key to stop autoboot: 0
MMC_SPI: 0 at 0:1 hz 20000000 mode 0เจธเจฟเฉฑเจเจพ: เจเฉเฉ เจเจฟเจ เจจเจนเฉเจ เจฐเจนเฉ เจนเฉเฅค เจธเจผเจพเจเจฆ เจเจนเฉ เจเจพเจฐเจจ เจนเฉ เจเจฟ เจเฉเจฌเฉเจฐเจก เจเจจเจชเฉเจ เจเฉฐเจฎ เจจเจนเฉเจ เจเจฐเจฆเจพ:
HiFive_U-Boot/cmd/bootmenu.c:
static void bootmenu_loop(struct bootmenu_data *menu,
enum bootmenu_key *key, int *esc)
{
int c;
while (!tstc()) {
WATCHDOG_RESET();
mdelay(10);
}
c = getc();
switch (*esc) {
case 0:
/* First char of ANSI escape sequence 'e' */
if (c == 'e') {
*esc = 1;
*key = KEY_NONE;
}
break;
case 1:
/* Second char of ANSI '[' */
if (c == '[') {
...เจธเจฎเฉฑเจธเจฟเจ เจเจน เจจเจฟเจเจฒเฉ เจเจฟ เจฎเฉเจ เจฅเฉเฉเจพ เจฌเจนเฉเจค เจเจฒเจพเจ เจธเฉ: เจฎเฉเจ เจชเฉเจฐเฉเจธเฉเจธเจฐ เจธเฉฐเจฐเจเจจเจพ เจตเจฟเฉฑเจ เจเฉเฉฐเจเฉ เจเฉเฉ เจฆเจฟเฉฑเจคเฉ:
case DTSTimebase => BigInt(0)... เจเจธ เจคเฉฑเจฅ เจฆเฉ เจ
เจงเจพเจฐ เจคเฉ เจเจฟ เจเจฟเฉฑเจชเจฃเฉ เจตเจฟเฉฑเจ เจเจฟเจนเจพ เจเจฟเจ เจนเฉ "เจเฉ เจคเฉเจธเฉเจ เจจเจนเฉเจ เจเจพเจฃเจฆเฉ, เจคเจพเจ 0 เจเฉฑเจกเฉเฅค" เจ
เจคเฉ เจธเจญ เจฆเฉ เจฌเจพเจ
เจฆ WithNBigCores เจฎเฉเจ เจเจธเจจเฉเฉฐ 1MHz 'เจคเฉ เจธเฉเฉฑเจ เจเฉเจคเจพ เจนเฉ (เจเจฟเจตเฉเจ เจเจฟ, เจเจธ เจจเฉเฉฐ เจฏเฉ-เจฌเฉเจ เจธเฉฐเจฐเจเจจเจพ เจตเจฟเฉฑเจ เจฆเจฐเจธเจพเจเจ เจเจฟเจ เจธเฉ)เฅค เจชเจฐ เจฒเจพเจนเจจเจค, เจฎเฉเจ เจธเจพเจซเจผ-เจธเฉเจฅเจฐเจพ เจ
เจคเฉ เจธเฉเจเฉเจค เจนเจพเจ: เจฎเฉเจจเฉเฉฐ เจเฉฑเจฅเฉ เจจเจนเฉเจ เจชเจคเจพ, เจเฉฑเจฅเฉ เจเจน 25MHz เจนเฉ! เจ
เฉฐเจค เจตเจฟเฉฑเจ, เจเฉเจ เจตเฉ เจเฉฐเจฎ เจจเจนเฉเจ เจเจฐเจฆเจพ. เจฎเฉเจ เจเจชเจฃเฉ "เจธเฉเจงเจพเจฐ" เจจเฉเฉฐ เจนเจเจพ เจฆเจฟเฉฑเจคเจพ เจนเฉ เจ
เจคเฉ...
Hit any key to stop autoboot: 0
MMC_SPI: 0 at 0:1 hz 20000000 mode 0
## Unknown partition table type 0
libfdt fdt_path_offset() returned FDT_ERR_NOTFOUND
** No partition table - mmc 0 **
## Info: input data size = 34 = 0x22
Running uEnv.txt boot2...
## Error: "boot2" not defined
HiFive-Unleashed #เจคเฉเจธเฉเจ เจเจฎเจพเจเจกเจพเจ เจตเฉ เจฆเจฐเจ เจเจฐ เจธเจเจฆเฉ เจนเฉ! เจเจฆเจพเจนเจฐเจจ เจฒเจ, เจฅเฉเฉเจพ เจเจฟเจนเจพ เจเฉเฉฐเจฎเจฃ เจคเฉเจ เจฌเจพเจ
เจฆ, เจคเฉเจธเฉเจ เจ
เฉฐเจค เจตเจฟเฉฑเจ เจฆเจพเจเจฒ เจนเฉเจฃ เจฆเจพ เจ
เจจเฉเจฎเจพเจจ เจฒเจเจพ เจธเจเจฆเฉ เจนเฉ mmc_spi 1 10000000 0; mmc part, SPI เจฌเจพเจฐเฉฐเจฌเจพเจฐเจคเจพ เจจเฉเฉฐ 20MHz เจคเฉเจ 10MHz เจคเฉฑเจ เจเจเจพ เจเฉเฅค เจเจฟเจเจ? เจเฉเจฐ, 20MHz เจฆเฉ เจตเฉฑเจง เจคเฉเจ เจตเฉฑเจง เจฌเจพเจฐเฉฐเจฌเจพเจฐเจคเจพ เจธเฉฐเจฐเจเจจเจพ เจตเจฟเฉฑเจ เจฒเจฟเจเฉ เจเจ เจธเฉ, เจ
เจคเฉ เจเจน เจ
เจเฉ เจตเฉ เจเจฅเฉ เจฒเจฟเจเฉ เจเจ เจนเฉ. เจชเจฐ, เจเจฟเฉฑเจฅเฉเจ เจคเฉฑเจ เจฎเฉเจ เจธเจฎเจเจฆเจพ เจนเจพเจ, เจเฉฐเจเจฐเจซเฉเจธ, เจเฉฑเจเฉ-เจเฉฑเจ เจเฉฑเจฅเฉ, เจเจธ เจคเจฐเฉเจนเจพเจ เจเฉฐเจฎ เจเจฐเจฆเฉ เจนเจจ: เจเฉเจก เจนเจพเจฐเจกเจตเฉเจ
เจฐ เจฏเฉเจจเจฟเจ (เจฎเฉเจฐเจพ เจนเจฐ เจฅเจพเจ 25MHz เจนเฉ) เจฆเฉ เจฌเจพเจฐเฉฐเจฌเจพเจฐเจคเจพ เจจเฉเฉฐ เจเฉเจเฉ เจฆเฉเจเจฐเจพ เจตเฉฐเจกเจฆเจพ เจนเฉ, เจ
เจคเฉ เจจเจคเฉเจเฉ เจตเจเฉเจ เจฎเฉเฉฑเจฒ เจจเฉเฉฐ เจ
เจจเฉเจธเจพเจฐเฉ เจจเจฟเจฏเฉฐเจคเจฐเจฃ เจตเจฟเฉฑเจ เจเฉฑเจ เจตเจฟเจญเจพเจเจ เจตเจเฉเจ เจธเฉเฉฑเจ เจเจฐเจฆเจพ เจนเฉเฅค เจฐเจเจฟเจธเจเจฐ. เจธเจฎเฉฑเจธเจฟเจ เจเจน เจนเฉ เจเจฟ เจเฉเจเจฐ 115200Hz UART เจฒเจ เจฒเจเจญเจ เจฒเฉเฉเฉเจเจฆเจพ เจนเฉ, เจคเจพเจ เจเฉเจเจฐ เจคเฉเจธเฉเจ 25000000 เจจเฉเฉฐ 20000000 เจจเจพเจฒ เจตเฉฐเจกเจฆเฉ เจนเฉ เจคเจพเจ เจคเฉเจนเจพเจจเฉเฉฐ 1 เจฎเจฟเจฒเฉเจเจพ, เจฏเจพเจจเฉ. เจเจน 25MHz 'เจคเฉ เจเฉฐเจฎ เจเจฐเฉเจเจพเฅค เจนเฉ เจธเจเจฆเจพ เจนเฉ เจเจฟ เจเจน เจเจฎ เจเฉฑเจฒ เจนเฉ, เจชเจฐ เจเฉเจเจฐ เจชเจพเจฌเฉฐเจฆเฉเจเจ เจธเฉเจ เจเฉเจคเฉเจเจ เจเจพเจเจฆเฉเจเจ เจนเจจ, เจคเจพเจ เจเจธเจฆเจพ เจฎเจคเจฒเจฌ เจนเฉ เจเจฟ เจเจฟเจธเฉ เจจเฉเฉฐ เจเจธเจฆเฉ เจฒเฉเฉ เจนเฉ (เจชเจฐ เจเจน เจจเจฟเจธเจผเจเจฟเจค เจจเจนเฉเจ เจนเฉ)... เจเจฎ เจคเฉเจฐ 'เจคเฉ, เจเจธเจจเฉเฉฐ เจธเฉเฉฑเจ เจเจฐเจจเจพ เจ
เจคเฉ เจ
เฉฑเจเฉ เจตเจงเจฃเจพ เจเจธเจพเจจ เจนเฉ - เจฌเจนเฉเจค เจฆเฉเจฐ เจ
เจคเฉ, เจนเจพเจ, เจฒเฉฐเจฌเฉ เจธเจฎเฉเจ เจฒเจเฅค 25MHz เจเฉฑเจ เจเฉเจฐ i9 เจจเจนเฉเจ เจนเฉเฅค
เจเฉฐเจธเฉเจฒ เจเจเจเจชเฉเฉฑเจ
HiFive-Unleashed # env edit mmcsetup
edit: mmc_spi 1 10000000 0; mmc part
HiFive-Unleashed # boot
MMC_SPI: 1 at 0:1 hz 10000000 mode 0
Partition Map for MMC device 0 -- Partition Type: EFI
Part Start LBA End LBA Name
Attributes
Type GUID
Partition GUID
1 0x00000800 0x0000ffde "Vfat Boot"
attrs: 0x0000000000000000
type: ebd0a0a2-b9e5-4433-87c0-68b6b72699c7
type: data
guid: 76bd71fd-1694-4ff3-8197-bfa81699c2fb
2 0x00040800 0x002efaf4 "root"
attrs: 0x0000000000000000
type: 0fc63daf-8483-4772-8e79-3d69d8477de4
type: linux
guid: 9f3adcc5-440c-4772-b7b7-283124f38bf3
3 0x0000044c 0x000007e4 "uboot"
attrs: 0x0000000000000000
type: 5b193300-fc78-40cd-8002-e86c45580b47
guid: bb349257-0694-4e0f-9932-c801b4d76fa3
4 0x00000400 0x0000044b "uboot-env"
attrs: 0x0000000000000000
type: a09354ac-cd63-11e8-9aff-70b3d592f0fa
guid: 4db442d0-2109-435f-b858-be69629e7dbf
libfdt fdt_path_offset() returned FDT_ERR_NOTFOUND
2376 bytes read in 0 ms
Running uEnv.txt boot2...
15332118 bytes read in 0 ms
## Loading kernel from FIT Image at 90000000 ...
Using 'config-1' configuration
Trying 'bbl' kernel subimage
Description: BBL/SBI/riscv-pk
Type: Kernel Image
Compression: uncompressed
Data Start: 0x900000d4
Data Size: 74266 Bytes = 72.5 KiB
Architecture: RISC-V
OS: Linux
Load Address: 0x80000000
Entry Point: 0x80000000
Hash algo: sha256
Hash value: 28972571467c4ad0cf08a81d9cf92b9dffc5a7cb2e0cd12fdbb3216cf1f19cbd
Verifying Hash Integrity ... sha256+ OK
## Loading fdt from FIT Image at 90000000 ...
Using 'config-1' configuration
Trying 'fdt' fdt subimage
Description: unavailable
Type: Flat Device Tree
Compression: uncompressed
Data Start: 0x90e9d31c
Data Size: 6911 Bytes = 6.7 KiB
Architecture: RISC-V
Load Address: 0x81f00000
Hash algo: sha256
Hash value: 10b0244a5a9205357772ea1c4e135a4f882409262176d8c7191238cff65bb3a8
Verifying Hash Integrity ... sha256+ OK
Loading fdt from 0x90e9d31c to 0x81f00000
Booting using the fdt blob at 0x81f00000
## Loading loadables from FIT Image at 90000000 ...
Trying 'kernel' loadables subimage
Description: Linux kernel
Type: Kernel Image
Compression: uncompressed
Data Start: 0x900123e8
Data Size: 10781356 Bytes = 10.3 MiB
Architecture: RISC-V
OS: Linux
Load Address: 0x80200000
Entry Point: unavailable
Hash algo: sha256
Hash value: 72a9847164f4efb2ac9bae736f86efe7e3772ab1f01ae275e427e2a5389c84f0
Verifying Hash Integrity ... sha256+ OK
Loading loadables from 0x900123e8 to 0x80200000
## Loading loadables from FIT Image at 90000000 ...
Trying 'ramdisk' loadables subimage
Description: buildroot initramfs
Type: RAMDisk Image
Compression: gzip compressed
Data Start: 0x90a5a780
Data Size: 4467411 Bytes = 4.3 MiB
Architecture: RISC-V
OS: Linux
Load Address: 0x82000000
Entry Point: unavailable
Hash algo: sha256
Hash value: 883dfd33ca047e3ac10d5667ffdef7b8005cac58b95055c2c2beda44bec49bd0
Verifying Hash Integrity ... sha256+ OK
Loading loadables from 0x90a5a780 to 0x82000000เจ เฉเจ เจนเฉ, เจ
เจธเฉเจ เจ
เจเจฒเฉ เจชเฉฑเจงเจฐ 'เจคเฉ เจชเจนเฉเฉฐเจ เจเจ เจนเจพเจ, เจชเจฐ เจเจน เจ
เจเฉ เจตเฉ เจ เฉฐเจขเจพ เจนเฉเฅค เจ
เจคเฉ เจเจ เจตเจพเจฐ เจเจน เจ
เจชเจตเจพเจฆเจพเจ เจจเฉเฉฐ เจตเฉ เจเจฟเฉเจเจฆเจพ เจนเฉ. เจคเฉเจธเฉเจ เจจเจฟเจธเจผเจเจฟเจค เจชเจคเฉ 'เจคเฉ เจเฉเจก เจฆเฉ เจเจกเฉเจ เจตเจฟเฉฑเจ เจชเจ เจฐเจนเจฟ เจเฉ mcause เจจเฉเฉฐ เจฆเฉเจ เจธเจเจฆเฉ เจนเฉ $pc เจ
เจคเฉ เจฌเจพเจ
เจฆ เจตเจฟเฉฑเจ si 'เจคเฉ เจนเฉเจฃเจพ trap_entry. U-Boot เจนเฉเจเจกเจฒเจฐ เจเฉเจฆ เจธเจฟเจฐเจซ mcause = 0..4 เจฒเจ เจเจเจเจชเฉเฉฑเจ เจฆเฉ เจธเจเจฆเจพ เจนเฉ, เจเจธเจฒเจ เจเฉฑเจ เจเจฒเจค เจฌเฉเจ เจตเจฟเฉฑเจ เจซเจธเจฃ เจฒเจ เจคเจฟเจเจฐ เจนเฉ เจเจพเจเฅค เจซเจฟเจฐ เจฎเฉเจ เจธเฉฐเจฐเจเจจเจพ เจตเจฟเฉฑเจ เจเจฟเจ, เจเจน เจฆเฉเจเจฃเจพ เจธเจผเฉเจฐเฉ เจเฉเจคเจพ เจเจฟ เจฎเฉเจ เจเฉ เจฌเจฆเจฒ เจฐเจฟเจนเจพ เจนเจพเจ, เจ
เจคเฉ เจฏเจพเจฆ เจเจเจ: เจเฉฑเจฅเฉ เจตเจฟเฉฑเจ conf/rvboot-fit.txt เจฒเจฟเจเจฟเจ:
fitfile=image.fit
# below much match what's in FIT (ugha)เจเฉเจฐ, เจเจฒเฉ เจธเจพเจฐเฉเจเจ เจซเจพเจเจฒเจพเจ เจจเฉเฉฐ เจชเจพเจฒเจฃเจพ เจตเจฟเฉฑเจ เจฒเจฟเจเจเจเจฆเฉ เจนเจพเจ, เจเจฐเจจเจฒ เจเจฎเจพเจเจก เจฒเจพเจเจจ เจจเฉเฉฐ เจเจธ เจคเจฐเฉเจนเจพเจ เจฆเฉ เจเฉเจเจผ เจจเจพเจฒ เจฌเจฆเจฒเจฆเฉ เจนเจพเจ, เจเจฟเจเจเจเจฟ เจเฉฑเจฅเฉ เจธเจผเฉฑเจ เจนเจจ เจเจฟ SIF0 - เจเจน PCIe เจฆเฉเจเจฐเจพ เจเจฟเจคเฉ เจเจเจเจชเฉเฉฑเจ เจนเฉ:
-bootargs=console=ttySIF0,921600 debug
+bootargs=console=ttyS0,125200 debugเจ เจคเฉ เจเจ เจนเฉเจธเจผเจฟเฉฐเจ เจเจฒเจเฉเจฐเจฟเจฆเจฎ เจจเฉเฉฐ SHA-256 เจคเฉเจ MD5 เจตเจฟเฉฑเจ เจฌเจฆเจฒเฉเจ: เจฎเฉเจจเฉเฉฐ เจเฉเจฐเจฟเจชเจเฉเจเฉเจฐเจพเจซเจฟเจ เจคเจพเจเจค เจฆเฉ เจฒเฉเฉ เจจเจนเฉเจ เจนเฉ (เจเจพเจธ เจเจฐเจเฉ เจเจฆเฉเจ เจกเฉเจฌเฉฑเจเจฟเฉฐเจ เจเจฐเจฆเฉ เจนเฉ), เจเจธ เจตเจฟเฉฑเจ เจฌเจนเฉเจค เจฒเฉฐเจฌเจพ เจธเจฎเจพเจ เจฒเฉฑเจเจฆเจพ เจนเฉ, เจ เจคเฉ เจฒเฉเจก เจเจฐเจจ เจฆเฉเจฐเจพเจจ เจเจเจธเจพเจฐเจคเจพ เจฆเฉเจเจ เจเจฒเจคเฉเจเจ เจจเฉเฉฐ เจซเฉเจจ เจฒเจ, MD5 เจฌเจนเฉเจค เจเจธเจพเจจ เจนเฉเฅค เจ เฉฐเจค เจฆเจพ เจจเจคเฉเจเจพ เจเฉ เจนเฉ? เจ เจธเฉเจ เจชเจฟเจเจฒเฉ เจชเฉฑเจงเจฐ เจจเฉเฉฐ เจคเฉเจเจผเฉ เจจเจพเจฒ เจชเฉเจฐเจพ เจเจฐเจจเจพ เจธเจผเฉเจฐเฉ เจเฉเจคเจพ (เจธเจงเจพเจฐเจจ เจนเฉเจธเจผเจฟเฉฐเจ เจฆเฉ เจเจพเจฐเจจ), เจ เจคเฉ เจ เจเจฒเจพ เจเฉเจฒเฉเจนเจฟเจ เจเจฟเจ:
...
Verifying Hash Integrity ... md5+ OK
Loading loadables from 0x90a5a758 to 0x82000000
libfdt fdt_check_header(): FDT_ERR_BADMAGIC
chosen {
linux,initrd-end = <0x00000000 0x83000000>;
linux,initrd-start = <0x00000000 0x82000000>;
riscv,kernel-end = <0x00000000 0x80a00000>;
riscv,kernel-start = <0x00000000 0x80200000>;
bootargs = "debug console=tty0 console=ttyS0,125200 root=/dev/mmcblk0p2 rootwait";
};
libfdt fdt_path_offset() returned FDT_ERR_NOTFOUND
chosen {
linux,initrd-end = <0x00000000 0x83000000>;
linux,initrd-start = <0x00000000 0x82000000>;
riscv,kernel-end = <0x00000000 0x80a00000>;
riscv,kernel-start = <0x00000000 0x80200000>;
bootargs = "debug console=tty0 console=ttyS0,125200 root=/dev/mmcblk0p2 rootwait";
};
Loading Kernel Image ... OK
Booting kernel in
3เจชเจฐ เจเฉเฉ เจเจฟเจ เจจเจนเฉเจ เจฐเจนเฉ...
(gdb) x/x 0x0200bff8
0x200bff8: 0x00000000เจเจนเฉ, เจ เจเจฟเจนเจพ เจฒเจเจฆเจพ เจนเฉ เจเจฟ เจเฉเฉ เจจเฉเฉฐ เจ เฉเจ เจเจฐเจจเจพ เจเฉฑเจ เจชเจฒเฉเจธเจฌเฉ เจฌเจฃ เจเจฟเจ, เจนเจพเจฒเจพเจเจเจฟ เจเจน เจฎเฉเจจเฉเฉฐ เจเจธ เจธเจฎเฉเจ เจเจพเจชเจฆเจพ เจธเฉ เจเจฟ เจเจธเจจเฉ เจฎเจฆเจฆ เจเฉเจคเฉ เจธเฉเฅค เจจเจนเฉเจ, เจฌเฉเจธเจผเจ เจเจธ เจจเฉเฉฐ เจ เฉเจ เจเจฐเจจ เจฆเฉ เจฒเฉเฉ เจนเฉ, เจชเจฐ เจเจ เจชเจนเจฟเจฒเจพเจ เจคเฉเจฐเจพเจ เจจเฉเฉฐ เจนเฉฑเจฅเฉเจ เจฎเฉเฉเฉเจ เจ เจคเฉ เจตเฉเจเฉเจ เจเจฟ เจเฉ เจนเฉเฉฐเจฆเจพ เจนเฉ:
0x00000000bff6dbb0 in ?? ()
(gdb) set variable *0x0200bff8=1000000
(gdb) c
Continuing.
^C
Program received signal SIGINT, Interrupt.
0x00000000bff6dbb0 in ?? ()
(gdb) set variable *0x0200bff8=2000000
(gdb) c
Continuing.
^C
Program received signal SIGINT, Interrupt.
0x00000000bff6dbb0 in ?? ()
(gdb) set variable *0x0200bff8=3000000
(gdb) c
Continuing.เจเจธ เจฆเฉเจฐเจพเจจโฆ
Loading Kernel Image ... OK
Booting kernel in
3
2
1
0
## Starting application at 0x80000000 ...เจจเจนเฉเจ, เจฎเฉเจ เจเฉเฉ เจจเฉเฉฐ เจธเจตเฉเจเจฒเจฟเจค เจเจฐเจพเจเจเจพ - เจจเจนเฉเจ เจคเจพเจ เจนเฉ เจธเจเจฆเจพ เจนเฉ เจเจฟ เจเจน เจเฉฑเจฅเฉ เจเจพเจเจฎเจฐ เจจเฉเฉฐ เจเฉเจฒเฉเจฌเจฐเฉเจ เจเจฐเจจ เจฆเจพ เจซเฉเจธเจฒเจพ เจเจฐเฉเจเจพ!
เจเจธ เจฆเฉเจฐเจพเจจ, เจฎเฉเจเฉเจฆเจพ เจนเจฆเจพเจเจคเจพเจ เจฆเจพ เจชเจคเจพ เจเจฟเจคเฉ เจ เฉฐเจฆเจฐ เจตเฉฑเจฒ เจเจธเจผเจพเจฐเจพ เจเจฐเจฆเจพ เจนเฉ
0000000080001c20 <poweroff>:
80001c20: 1141 addi sp,sp,-16
80001c22: e022 sd s0,0(sp)
80001c24: 842a mv s0,a0
80001c26: 00005517 auipc a0,0x5
80001c2a: 0ca50513 addi a0,a0,202 # 80006cf0 <softfloat_countLeadingZeros8+0x558>
80001c2e: e406 sd ra,8(sp)
80001c30: f7fff0ef jal ra,80001bae <printm>
80001c34: 8522 mv a0,s0
80001c36: 267000ef jal ra,8000269c <finisher_exit>
80001c3a: 00010797 auipc a5,0x10
80001c3e: 41e78793 addi a5,a5,1054 # 80012058 <htif>
80001c42: 639c ld a5,0(a5)
80001c44: c399 beqz a5,80001c4a <poweroff+0x2a>
80001c46: 72c000ef jal ra,80002372 <htif_poweroff>
80001c4a: 45a1 li a1,8
80001c4c: 4501 li a0,0
80001c4e: dc7ff0ef jal ra,80001a14 <send_ipi_many>
80001c52: 10500073 wfi
80001c56: bff5 j 80001c52 <poweroff+0x32>เจฒเฉเจก เจเฉเจคเฉ เจฌเจฐเจเจฒเฉ เจฌเฉเจ เจฒเฉเจกเจฐ เจฆเฉ เจ
เฉฐเจฆเจฐเฅค เจตเจฟเจ
เจเจคเฉเจเจค เจคเฉเจฐ 'เจคเฉ, เจเฉ เจฎเฉเจจเฉเฉฐ เจเจธ เจฌเจพเจฐเฉ เจเจฒเจเจฃ เจตเจฟเฉฑเจ เจฐเฉฑเจเจฆเจพ เจนเฉ เจเจน เจนเฉ เจเจผเจฟเจเจฐ htif โ เจนเฉเจธเจ เจเฉฐเจเจฐเจซเฉเจธ เจเจฐเจจเจฒ เจฆเฉ เจเฉเจฅเจฐเจก เจฒเจพเจเจ เจฒเจ เจตเจฐเจคเจฟเจ เจเจพเจเจฆเจพ เจนเฉ (เจเฉ เจเจฟ เจนเฉเจธเจ เจเจเจฐเจเจฎ เจฆเฉ เจธเจนเจฟเจฏเฉเจ เจจเจพเจฒ), เจฎเฉเจ เจธเจเฉเจเจกเจ
เจฒเฉเจจ เจฎเฉฐเจจเจฟเจ เจนเฉเฅค เจนเจพเจฒเจพเจเจเจฟ, เจเฉเจเจฐ เจคเฉเจนเจพเจจเฉเฉฐ เจธเจฐเฉเจค เจเฉเจก เจตเจฟเฉฑเจ เจเจน เจซเฉฐเจเจธเจผเจจ เจฎเจฟเจฒเจฆเจพ เจนเฉ, เจคเจพเจ เจคเฉเจธเฉเจ เจฆเฉเจ เจธเจเจฆเฉ เจนเฉ เจเจฟ เจนเจฐ เจเฉเจเจผ เจเฉฐเจจเฉ เจฎเจพเฉเฉ เจจเจนเฉเจ เจนเฉ:
void poweroff(uint16_t code)
{
printm("Power offrn");
finisher_exit(code);
if (htif) {
htif_poweroff();
} else {
send_ipi_many(0, IPI_HALT);
while (1) { asm volatile ("wfin"); }
}
}เจเฉเจ: เจเฉเฉ เจธเจผเฉเจฐเฉ เจเจฐเฉ
CLINT เจตเจฟเฉฑเจ เจฐเจเจฟเจธเจเจฐเจพเจ เจฆเฉ เจเฉเจ เจเจฐเจจเจพ เจธเจพเจจเฉเฉฐ เจเจธ เจตเฉฑเจฒ เจฒเฉ เจเจพเจเจฆเจพ เจนเฉ
val io = IO(new Bundle {
val rtcTick = Bool(INPUT)
})
val time = RegInit(UInt(0, width = timeWidth))
when (io.rtcTick) { time := time + UInt(1) }เจเฉ RTC เจจเจพเจฒ เจเฉเฉเจฆเจพ เจนเฉ, เจเจพเจ เจฐเจนเฉฑเจธเจฎเจ MockAON เจจเจพเจฒ, เจเจฟเจธ เจฌเจพเจฐเฉ เจฎเฉเจ เจธเจผเฉเจฐเฉ เจตเจฟเฉฑเจ เจธเฉเจเจฟเจ เจธเฉ: "เจคเจพเจ, เจธเจพเจกเฉ เจเฉเจฒ เจเฉฑเจฅเฉ เจเฉ เจนเฉ? เจ
เจธเจชเจธเจผเจ? เจเจฒเฉ เจเจธเจจเฉเฉฐ เจฌเฉฐเจฆ เจเจฐเฉเจ!" เจเจฟเจเจเจเจฟ เจฎเฉเจจเฉเฉฐ เจ
เจเฉ เจตเฉ เจธเจฎเจ เจจเจนเฉเจ เจเจเจเจฆเฉ เจเจฟ เจเฉฑเจฅเฉ เจเจฟเจธ เจเจฟเจธเจฎ เจฆเจพ เจเฉเฉ เจฆเจพ เจเจพเจฆเฉ เจเฉฑเจฒ เจฐเจฟเจนเจพ เจนเฉ, เจเจธ เจฒเจ เจฎเฉเจ เจเจธ เจคเจฐเจ เจจเฉเฉฐ เจฆเฉเจฌเจพเจฐเจพ เจฒเจพเจเฉ เจเจฐเจพเจเจเจพ System.scala:
val rtcDivider = RegInit(0.asUInt(16.W)) // ะฝะฐ ะฒััะบะธะน ัะปััะฐะน ะฟะพะดะดะตัะถั ะดะพ 16ะะั, ั ะพะฟัะธะผะธัั :)
val mhzInt = p(DevKitFPGAFrequencyKey).toInt
// ะัะตะฟะพะปะพะถะธะผ, ัะฐััะพัะฐ ัะฐะฒะฝะฐ ัะตะปะพะผั ัะธัะปั ะผะตะณะฐะณะตัั
rtcDivider := Mux(rtcDivider === (mhzInt - 1).U, 0.U, rtcDivider + 1.U)
outer.clintOpt.foreach { clint =>
clint.module.io.rtcTick := rtcDivider === 0.U
}ะัะพะฑะธัะฐััั ะบ Linux เจเจฐเจจเจฒ
เจเฉฑเจฅเฉ เจเจนเจพเจฃเฉ เจชเจนเจฟเจฒเจพเจ เจนเฉ เจเจฟเฉฑเจเฉ เจเจพ เจเฉเฉฑเจเฉ เจนเฉ เจ เจคเฉ เจฅเฉเฉเฉ เจเจเจธเจพเจฐ เจนเฉ เจเจ เจนเฉ, เจเจธ เจฒเจ เจฎเฉเจ เจเจธเจจเฉเฉฐ เจเฉฑเจชเจฐ เจคเฉเจ เจนเฉเจ เจพเจ เจตเจฐเจฃเจจ เจเจฐเจพเจเจเจพ:
BBL เจจเฉ FDT เจฆเฉ เจฎเฉเจเฉเจฆเจเฉ เจฎเฉฐเจจเฉ 0xF0000000, เจชเจฐ เจฎเฉเจ เจเจธเจจเฉเฉฐ เจชเจนเจฟเจฒเจพเจ เจนเฉ เจ เฉเจ เจเจฐ เจฆเจฟเฉฑเจคเจพ เจนเฉ! เจเฉเจฐ, เจเจฒเฉ เจฆเฉเจฌเจพเจฐเจพ เจฆเฉเจเฉเจ... เจเจธ เจตเจฟเฉฑเจ เจฎเจฟเจฒเจฟเจ HiFive_U-Boot/arch/riscv/lib/boot.c, เจฆเฉเจเจฐเจพ เจฌเจฆเจฒเจฟเจ เจเจฟเจ 0x81F00000, เจฏเฉ-เจฌเฉเจ เจฌเฉเจ เจธเฉฐเจฐเจเจจเจพ เจตเจฟเฉฑเจ เจฆเจฟเฉฑเจคเจพ เจเจฟเจ เจนเฉเฅค
เจซเจฟเจฐ เจฌเฉเจฌเฉเจเจฒ เจจเฉ เจธเจผเจฟเจเจพเจเจค เจเฉเจคเฉ เจเจฟ เจฏเจพเจฆเจฆเจพเจธเจผเจค เจจเจนเฉเจ เจนเฉเฅค เจฎเฉเจฐเจพ เจฎเจพเจฐเจ เจซเฉฐเจเจธเจผเจจ เจตเจฟเฉฑเจ เจชเจฟเจ mem_prop, เจเฉ เจตเจฟเฉฑเจ riscv-pk/machine/fdt.c: เจเฉฑเจฅเฉเจ เจฎเฉเจ เจธเจฟเฉฑเจเจฟเจ เจเจฟ เจคเฉเจนเจพเจจเฉเฉฐ fdt ram node เจจเฉเฉฐ เจเจธ เจคเจฐเฉเจนเจพเจ เจฎเจพเจฐเจ เจเจฐเจจ เจฆเฉ เจฒเฉเฉ เจนเฉ device_type = "memory" - เจซเจฟเจฐ, เจธเจผเจพเจเจฆ, เจชเฉเจฐเฉเจธเฉเจธเจฐ เจเจจเจฐเฉเจเจฐ เจจเฉเฉฐ เจ เฉเจ เจเจฐเจจ เจฆเฉ เจเจผเจฐเฉเจฐเจค เจนเฉเจเจเฉ, เจชเจฐ เจนเฉเจฃ เจฒเจ เจฎเฉเจ เจเจธเจจเฉเฉฐ เจธเจฟเจฐเจซ เจนเฉฑเจฅเฉเจ เจฒเจฟเจเจพเจเจเจพ - เจเจฟเจธเฉ เจตเฉ เจคเจฐเฉเจนเจพเจ, เจฎเฉเจ เจเจธ เจซเจพเจเจฒ เจจเฉเฉฐ เจนเฉฑเจฅเฉเจ เจเฉเจฐเจพเจเจธเจซเจฐ เจเฉเจคเจพ เจนเฉ.
เจนเฉเจฃ เจฎเฉเจจเฉเฉฐ เจธเฉเจจเฉเจนเจพ เจฎเจฟเจฒเจฟเจ (เจเฉเจฐเฉเจ เจฐเจฟเจเจฐเจจ เจฆเฉ เจจเจพเจฒ, เจซเจพเจฐเจฎเฉเจ เจเฉเจคเฉ เจฐเฉเจช เจตเจฟเฉฑเจ เจชเฉเจฐเจฆเจพเจจ เจเฉเจคเจพ เจเจฟเจ):
This is bbl's dummy_payload. To boot a real kernel, reconfigure bbl
with the flag --with-payload=PATH, then rebuild bbl. Alternatively,
bbl can be used in firmware-only mode by adding device-tree nodes
for an external payload and use QEMU's -bios and -kernel options.เจ
เจเจฟเจนเจพ เจฒเจเจฆเจพ เจนเฉ เจเจฟ เจตเจฟเจเจฒเจช เจฒเฉเฉ เจ
เจจเฉเจธเจพเจฐ เจฆเจฐเจธเจพเจ เจเจ เจนเจจ riscv,kernel-start ะธ riscv,kernel-end DTB เจตเจฟเฉฑเจ, เจชเจฐ เจเจผเฉเจฐเฉ เจชเจพเจฐเจธ เจเฉเจคเฉ เจเจ เจนเจจเฅค เจกเฉเจฌเฉฑเจเจฟเฉฐเจ query_chosen เจจเฉ เจฆเจฟเจเจพเจเจ เจเจฟ BBL เจเฉฑเจ 32-เจฌเจฟเฉฑเจ เจเจกเจฐเฉเฉฑเจธ เจจเฉเฉฐ เจชเจพเจฐเจธ เจเจฐเจจ เจฆเฉ เจเฉเจธเจผเจฟเจธเจผ เจเจฐ เจฐเจฟเจนเจพ เจนเฉ, เจชเจฐ เจเจน เจเฉฑเจ เจเฉเฉเจพ เจตเจฟเฉฑเจ เจเจเจเจฆเจพ เจนเฉ <0x0 0xADDR>, เจ
เจคเฉ เจชเจนเจฟเจฒเจพ เจฎเฉเฉฑเจฒ เจเฉฑเจ เจคเฉเจ เจเฉฑเจ เจฎเจนเฉฑเจคเจตเจชเฉเจฐเจจ เจฌเจฟเฉฑเจ เจเจพเจชเจฆเจพ เจนเฉเฅค เจธเฉเจเจธเจผเจจ เจตเจฟเฉฑเจ เจธเจผเจพเจฎเจฒ เจเฉเจคเจพ เจเจฟเจ chosen
chosen {
#address-cells = <1>;
#size-cells = <0>;
...
}เจ
เจคเฉ เจฎเฉเฉฑเจฒเจพเจ เจฆเฉ เจชเฉเฉเฉเจนเฉ เจจเฉเฉฐ เจ เฉเจ เจเฉเจคเจพ: เจเฉเฉเฉ เจจเจพ 0x0 เจชเจนเจฟเจฒเจพ เจคเฉฑเจค.
เจเจน 100500 เจธเจงเจพเจฐเจจ เจเจฆเจฎ เจชเฉเจเจเฉเจเจจ เจฆเฉ เจกเจฟเฉฑเจเจฆเฉ เจจเฉเฉฐ เจฆเฉเจเจฃเจพ เจเจธเจพเจจ เจฌเจฃเจพ เจฆเฉเจฃเจเฉ:
เจฒเฉเจเจฟเจ เจนเฉเจเจ เจเฉเจเจธเจ
Verifying Hash Integrity ... md5+ OK
Loading loadables from 0x90a5a758 to 0x82000000
libfdt fdt_check_header(): FDT_ERR_BADMAGIC
chosen {
linux,initrd-end = <0x83000000>;
linux,initrd-start = <0x82000000>;
riscv,kernel-end = <0x80a00000>;
riscv,kernel-start = <0x80200000>;
#address-cells = <0x00000001>;
#size-cells = <0x00000000>;
bootargs = "debug console=tty0 console=ttyS0,125200 root=/dev/mmcblk0p2 rootwait";
stdout-path = "uart0:38400n8";
};
libfdt fdt_path_offset() returned FDT_ERR_NOTFOUND
chosen {
linux,initrd-end = <0x83000000>;
linux,initrd-start = <0x82000000>;
riscv,kernel-end = <0x80a00000>;
riscv,kernel-start = <0x80200000>;
#address-cells = <0x00000001>;
#size-cells = <0x00000000>;
bootargs = "debug console=tty0 console=ttyS0,125200 root=/dev/mmcblk0p2 rootwait";
stdout-path = "uart0:38400n8";
};
Loading Kernel Image ... OK
Booting kernel in
3
2
1
0
## Starting application at 0x80000000 ...
bbl loader
SIFIVE, INC.
5555555555555555555555555
5555 5555
5555 5555
5555 5555
5555 5555555555555555555555
5555 555555555555555555555555
5555 5555
5555 5555
5555 5555
5555555555555555555555555555 55555
55555 555555555 55555
55555 55555 55555
55555 5 55555
55555 55555
55555 55555
55555 55555
55555 55555
55555 55555
555555555
55555
5
SiFive RISC-V Core IP
[ 0.000000] OF: fdt: Ignoring memory range 0x80000000 - 0x80200000
[ 0.000000] Linux version 4.19.0-sifive-1+ (trosinenko@trosinenko-pc) (gcc version 8.3.0 (Buildroot 2019.02-07449-g4eddd28f99)) #1 SMP Wed Jul 3 21:29:21 MSK 2019
[ 0.000000] bootconsole [early0] enabled
[ 0.000000] Initial ramdisk at: 0x(____ptrval____) (16777216 bytes)
[ 0.000000] Zone ranges:
[ 0.000000] DMA32 [mem 0x0000000080200000-0x00000000bfffffff]
[ 0.000000] Normal [mem 0x00000000c0000000-0x00000bffffffffff]
[ 0.000000] Movable zone start for each node
[ 0.000000] Early memory node ranges
[ 0.000000] node 0: [mem 0x0000000080200000-0x00000000bfffffff]
[ 0.000000] Initmem setup node 0 [mem 0x0000000080200000-0x00000000bfffffff]
[ 0.000000] On node 0 totalpages: 261632
[ 0.000000] DMA32 zone: 3577 pages used for memmap
[ 0.000000] DMA32 zone: 0 pages reserved
[ 0.000000] DMA32 zone: 261632 pages, LIFO batch:63
[ 0.000000] software IO TLB: mapped [mem 0xbb1fc000-0xbf1fc000] (64MB)(เจฒเฉเจเฉ BBL เจฆเฉเจเจฐเจพ เจชเฉเจฐเจฆเจฐเจธเจผเจฟเจค เจเฉเจคเจพ เจเจพเจเจฆเจพ เจนเฉ, เจ เจคเฉ เจเจพเจเจฎเจธเจเฉเจเจช เจตเจพเจฒเจพ เจเฉฑเจ เจเจฐเจจเจฒ เจฆเฉเจเจฐเจพ เจชเฉเจฐเจฆเจฐเจธเจผเจฟเจค เจนเฉเฉฐเจฆเจพ เจนเฉ)เฅค
เจเฉเจธเจผเจเจฟเจธเจฎเจคเฉ เจจเจพเจฒ, เจฎเฉเจจเฉเฉฐ เจจเจนเฉเจ เจชเจคเจพ เจเจฟ เจเจน เจนเจฐ เจเจเฉเจนเจพ เจเจฟเจตเฉเจ เจนเฉ, เจชเจฐ RocketChip 'เจคเฉ, เจเจฆเฉเจ เจคเฉเจธเฉเจ JTAG เจฐเจพเจนเฉเจ เจเฉฑเจ เจกเฉเจฌเจเจฐ เจจเฉเฉฐ เจเฉเฉเจฆเฉ เจนเฉ, เจคเจพเจ เจคเฉเจธเฉเจ เจฌเจพเจเจธ เจฆเฉ เจฌเจพเจนเจฐ เจเจพเจฒ เจซเฉ เจธเจเจฆเฉ เจนเฉ - เจกเฉเจฌเจเจฐ เจเจธ เจธเจฎเฉเจ เจฌเจฟเจฒเจเฉเจฒ เจฌเฉฐเจฆ เจนเฉ เจเจพเจตเฉเจเจพเฅค
Program received signal SIGTRAP, Trace/breakpoint trap.
0xffffffe0000024ca in ?? ()
(gdb) bt
#0 0xffffffe0000024ca in ?? ()
Backtrace stopped: previous frame identical to this frame (corrupt stack?)
(gdb) file work/linux/vmlinux
A program is being debugged already.
Are you sure you want to change the file? (y or n) y
Reading symbols from work/linux/vmlinux...done.
(gdb) bt
#0 0xffffffe0000024ca in setup_smp () at /hdd/trosinenko/fpga/freedom-u-sdk/linux/arch/riscv/kernel/smpboot.c:75
#1 0x0000000000000000 in ?? ()
Backtrace stopped: frame did not save the PCเจเจเจผเจพเจฆเฉ-u-sdk/linux/arch/riscv/kernel/smpboot.c:
void __init setup_smp(void)
{
struct device_node *dn = NULL;
int hart;
bool found_boot_cpu = false;
int cpuid = 1;
while ((dn = of_find_node_by_type(dn, "cpu"))) {
hart = riscv_of_processor_hartid(dn);
if (hart < 0)
continue;
if (hart == cpuid_to_hartid_map(0)) {
BUG_ON(found_boot_cpu);
found_boot_cpu = 1;
continue;
}
cpuid_to_hartid_map(cpuid) = hart;
set_cpu_possible(cpuid, true);
set_cpu_present(cpuid, true);
cpuid++;
}
BUG_ON(!found_boot_cpu); // < ะะซ ะะะฅะะะะขะะกะฌ ะะะะกะฌ
}เจเจฟเจตเฉเจ เจเจฟ เจชเฉเจฐเจพเจฃเฉ เจเฉเจเจเจฒเฉ เจจเฉ เจเจฟเจนเจพ, CPU เจจเจนเฉเจ เจฎเจฟเจฒเจฟเจ, เจธเจพเจซเจเจตเฉเจ เจฐ เจเจฎเฉเจฒเฉเจธเจผเจจ เจเฉฑเจฒ เจฐเจฟเจนเจพ เจนเฉ. เจ เฉเจ เจนเฉ, เจเจพเจ เจจเจนเฉเจ เจเฉฑเจฒ เจฐเจฟเจนเจพ. เจเฉฑเจ เจธเจฟเฉฐเจเจฒ เจชเฉเจฐเฉเจธเฉเจธเจฐ เจเฉเจฐ เจตเจฟเฉฑเจ เจเฉเจเจ เจเจฟเจเฅค
/* The lucky hart to first increment this variable will boot the other cores */
atomic_t hart_lottery;
unsigned long boot_cpu_hartid;เจตเจฟเฉฑเจ เจตเจงเฉเจ เจเจฟเฉฑเจชเจฃเฉ linux/arch/riscv/kernel/setup.c - เจเฉเจฎ เจธเฉเจ เจฐ เจตเจฟเจงเฉ เจฆเฉ เจตเจฐเจคเฉเจ เจเจฐเจฆเฉ เจนเฉเจ เจตเจพเฉ เจฆเฉ เจเฉฑเจ เจเจฟเจธเจฎ เจฆเฉ เจชเฉเจเจเจฟเฉฐเจ. เจเจฎ เจคเฉเจฐ 'เจคเฉ, เจ เฉฑเจ เจเจฟเจธเฉ เจเจพเจฐเจจ เจเจฐเจเฉ เจเฉเจ เจตเจฟเจเฉเจคเจพ เจจเจนเฉเจ เจธเจจ, เจเจจเจพเจฎ เจ เจเจฒเฉ เจกเจฐเจพเจ เจตเจฟเฉฑเจ เจเฉเจฐเจพเจเจธเจซเจฐ เจเฉเจคเจพ เจเจพเจเจฆเจพ เจนเฉ...
เจเฉฑเจฅเฉ เจฎเฉเจ เจชเจนเจฟเจฒเจพเจ เจนเฉ เจฒเฉฐเจฌเฉ เจฒเฉเจ เจจเฉเฉฐ เจเจคเจฎ เจเจฐเจจ เจฆเจพ เจชเฉเจฐเจธเจคเจพเจต เจเจฐเจฆเจพ เจนเจพเจ.
เจจเฉเฉฐ เจเจพเจฐเฉ เจฐเฉฑเจเจฟเจ เจเจพเจตเฉเจเจพ. เจเฉฑเจ เจเจฒเจพเจ เจฌเฉฑเจ เจจเจพเจฒ เจฒเฉเจพเจ เจนเฉเจตเฉเจเฉ เจเฉ เจเฉเจชเจพเจเจฃ เจฆเจพ เจชเฉเจฐเจฌเฉฐเจง เจเจฐเจฆเจพ เจนเฉ เจเฉเจเจฐ เจคเฉเจธเฉเจ เจนเฉเจฒเฉ-เจนเฉเจฒเฉ เจธเจฟเฉฐเจเจฒ เจธเจเฉเจช เจจเจพเจฒ เจเจธ 'เจคเฉ เจเฉเฉเจน เจเจพเจเจฆเฉ เจนเฉเฅค
เจเฉเจเจธเจ เจกเจพเจเจจเจฒเฉเจก เจธเจเฉเจฐเฉเจจเจเจพเจธเจ (เจฌเจพเจนเจฐเฉ เจฒเจฟเฉฐเจ):
เจธเจฐเฉเจค: www.habr.com
