Difference between Debian Trixie 6.12 kernel config and config for jh7100:
Noteable changes are:
- Disable
ARCH_SUNXI
andARCH_THEAD
- Enable
NONPORTABLE
- Enable
ERRATA_STARFIVE_JH7100
- Enable
BRCMFMAC_SDIO
# Set initrd_high and fdt_high to -1 | |
# This disables the relocation of them by u-boot in bootx commands | |
initrd_high=0xffffffffffffffff | |
fdt_high=0xffffffffffffffff | |
scriptaddr=0xa0000000 | |
# Disable autoload. Useful for dhcp/tftpboot to download without boot | |
#autoload=0 | |
# Optimization: Load kernel to DRAM + 2MB |
Difference between Debian Trixie 6.12 kernel config and config for jh7100:
Noteable changes are:
ARCH_SUNXI
and ARCH_THEAD
NONPORTABLE
ERRATA_STARFIVE_JH7100
BRCMFMAC_SDIO
branch-instructions OR branches [Hardware event] | |
branch-misses [Hardware event] | |
bus-cycles [Hardware event] | |
cache-misses [Hardware event] | |
cache-references [Hardware event] | |
cpu-cycles OR cycles [Hardware event] | |
instructions [Hardware event] | |
ref-cycles [Hardware event] | |
stalled-cycles-backend OR idle-cycles-backend [Hardware event] | |
stalled-cycles-frontend OR idle-cycles-frontend [Hardware event] |
msg.txt -> Nexus Message dump | |
trace.txt -> Nexus Trace dump |
First off, EIC7700 has several CPUs. MCPU (P550 cluster) + SCPU (E21) + LCPU (E21) + NPU and DSPs. The SCPU (Secure CPU) is used to run the Masked ROM after power on. The Masked ROM has the logic of loading different payloads from the selected boot source image and kickstarts other CPUs such as MCPU. Optionally it can also validate the cryptographic key/signature of the payload against OTP, thus implementing secure-boot. ESWIN calls the container of the payloads bootchain By default the boot source is QSPI boot flash. The bootchain is stored at the beginning of the flash (offset 0). The boot flash contains the following on my Hifive P550
*As it's shown, the DDR init blob i
/data/home/zhuxianbin/workspace/esos/esos/bsp/spacemit/applications/main.c | |
/data/home/zhuxianbin/workspace/esos/esos/bsp/spacemit/drivers/adma/adma_service.c | |
/data/home/zhuxianbin/workspace/esos/esos/bsp/spacemit/drivers/board.c | |
/data/home/zhuxianbin/workspace/esos/esos/bsp/spacemit/drivers/can/can_service.c | |
/data/home/zhuxianbin/workspace/esos/esos/bsp/spacemit/drivers/i2c/i2c_service.c | |
/data/home/zhuxianbin/workspace/esos/esos/bsp/spacemit/drivers/ir/ir_service.c | |
/data/home/zhuxianbin/workspace/esos/esos/bsp/spacemit/drivers/pm/k1x_pm.c | |
/data/home/zhuxianbin/workspace/esos/esos/bsp/spacemit/drivers/uart/board_uart.c | |
/data/home/zhuxianbin/workspace/esos/esos/bsp/spacemit/drivers/uart/ck_usart.c | |
/data/home/zhuxianbin/workspace/esos/esos/bsp/spacemit/drivers/uart/drv_usart.h |
My setup: Visionfive2 1.3b (JH7110)
Build spike
with my patch to emulate JH7110: https://github.com/ganboing/riscv-isa-sim/tree/ganboing-jh7110-emu
Run spike
with the following command line:
JH7110_BOOTMODE=sdcard ./spike -d -m0x1100000:0x2000,0x2a000000:0x10000 vf2-no-read-csr-7c1.rom.elf 2> spike.log > spike.out
My setup: Visionfive2 1.3b (JH7110). Using U-boot/OpenSBI from starfive's downstream fork (VF2_v3.8.2)
I confirmed my OTP has all 0xffffffff's
(not programmed), using both methods.
https://github.com/ganboing/u-boot-starfive/commit/e931cc9856a9c5d5b5b24196fdc82a309db4dfbf
function FindProxyForURL(url, host) | |
{ | |
ipv4 = /^\d+\.\d+\.\d+\.\d+$/; | |
if (ipv4.test(host) && isInNet(host, "192.168.0.0", "255.255.0.0") ) | |
return "DIRECT" | |
return "SOCKS 192.168.0.10:1080"; | |
} |
function FindProxyForURL(url, host) | |
{ | |
return "SOCKS 192.168.1.100:1080"; | |
} |