Raspberry Pi 3(여러 rootfs + RAUC 소프트웨어 업데이트에 사용됨)에 대한 베어박스 부트 선택기/상태 통합과 관련된 문제가 있습니다.
나는 다음을 사용하고 있습니다: Yocto Pyro 2.3.2, barebox 2018.12.0 . 베어박스를 성공적으로 구성했으며 디버그 콘솔에서 출력을 볼 수 있습니다.
Rpi 3에는 다른 비휘발성 메모리(SD 카드 제외)가 없습니다. 베어박스 상태를 SD 카드에 어떻게 저장할 수 있나요? 다른 보드의 경우 베어박스 상태는 장치 트리 소스에 이미 설명되어 있는 EEPROM/온보드 eMMC/NAND(SD 카드 포함)에 저장됩니다. RPI용 SD 카드(mci0)는 베어박스 시작 시 감지되며 DTS에 설명되어 있지 않습니다(아래 devinfo 출력 참조).
barebox@RaspberryPi 3 Model B:/ devinfo
`-- global
`-- nv
`-- platform
`-- soc
`-- 3f003000.timer@7e003000
`-- 3f004000.txp@7e004000
`-- 3f007000.dma@7e007000
`-- 3f00b200.interrupt-controller@7e00b200
`-- 3f100000.watchdog@7e100000
`-- wdog0
`-- 3f101000.cprman@7e101000
`-- 3f104000.rng@7e104000
`-- 3f00b880.mailbox@7e00b880
`-- 3f200000.gpio@7e200000
`-- 3f202000.mmc@7e202000
`-- 3f205000.i2c@7e205000
`-- 3f206000.pixelvalve@7e206000
`-- 3f207000.pixelvalve@7e207000
`-- 3f209000.dsi@7e209000
`-- 3f212000.thermal@7e212000
`-- 3f215000.aux@7e215000
`-- 3f215040.serial@7e215040
`-- 3f20c000.pwm@7e20c000
`-- 3f300000.sdhci@7e300000
`-- mci0
`-- 0x00000000-0x76e47ffff ( 29.7 GiB): /dev/disk0
`-- 0x00001000-0x022c1fff ( 34.8 MiB): /dev/disk0.0
`-- 0x022c2000-0xfbc5bbff ( 3.9 GiB): /dev/disk0.1
`-- 0xfbc5c000-0x1f55f5bff ( 3.9 GiB): /dev/disk0.2
`-- 0x1f55f5c00-0x2149f5fff ( 500 MiB): /dev/disk0.3
`-- 0x1f55f5e00-0x1fb9f5dff ( 100 MiB): /dev/disk0.4
`-- 0x1fb9f6000-0x2149f5fff ( 400 MiB): /dev/disk0.5
`-- fat0
`-- 3f400000.hvs@7e400000
`-- 3f804000.i2c@7e804000
`-- 3f805000.i2c@7e805000
`-- 3f806000.vec@7e806000
`-- 3f807000.pixelvalve@7e807000
`-- 3f902000.hdmi@7e902000
`-- 3f980000.usb@7e980000
`-- 3fc00000.v3d@7ec00000
`-- soc:gpu
`-- 40000000.local_intc@40000000
`-- soc:firmware
`-- soc:firmware:gpio
`-- soc:power
`-- 3f00b840.mailbox@7e00b840
`-- clocks
`-- clocks:clock@3
`-- clocks:clock@4
`-- phy
`-- arm-pmu
`-- timer
`-- leds
`-- wifi-pwrseq
`-- regulator-bcm2835
`-- mem0
`-- 0x00000000-0x3b3fffff ( 948 MiB): /dev/ram0
`-- mem1
`-- 0x00000000-0xfffffffe ( 4 GiB): /dev/mem
`-- bcm2835_fb0
`-- amba
`-- 3f201000.serial@7e201000
`-- cs0
`-- 0x00000000-0xffffffffffffffff ( 0 Bytes): /dev/cs0
`-- spi
`-- fs
`-- ramfs0
`-- devfs0
또한 베어박스 문서에는 SD 카드 상태 저장과 관련하여 다음과 같이 명시되어 있습니다. "현재 온디스크 파티션 테이블은 지원되지 않습니다. 대신 ofpart 파티션 설명을 사용해야 합니다. 이 파티션이 지원되는지 확인해야 합니다. 파티션 테이블의 다른 파티션과 충돌하지 않습니다."
장치 트리 소스에 mci0 노드를 정의해도 괜찮을까요? 어떻게 해야 하나요? 베어박스 문서에서는 예제를 제공하지만 내 경우에는 그다지 도움이 되지 않습니다.
backend_state_sd: part@100000 {
label = "state";
reg = <0x100000 0x20000>;
};
aliases {
state = &state_sd;
};
state_sd: state_memory {
#address-cells = <1>;
#size-cells = <1>;
compatible = "barebox,state";
magic = <0xab67421f>;
backend-type = "raw";
backend = <&backend_state_sd>;
backend-stridesize = <0x40>;
variable@0 {
reg = <0x0 0x1>;
type ="uint8";
default = <0x1>;
};
};
정말 감사합니다!
감사합니다, 발리.
답변1
장치 트리 소스에 mci0 노드를 정의해도 괜찮을까요?
예, 이것이 바로 문서에서 제안하는 내용입니다.
어떻게 해야 하나요? 베어박스 문서에 예제가 제공되어 있지만 내 경우에는 그다지 도움이 되지 않습니다.
이 작업이 어떻게 수행되는지 확인하세요.SoCFPGA Arria10 아킬레스건 보드:
&mmc {
partitions {
compatible = "fixed-partitions";
#size-cells = <1>;
#address-cells = <1>;
state_mmc: partition@400000 {
label = "state";
reg = <0x400000 0x8000>;
};
};
};
추신: 베어박스 메일링 리스트와 프리노드 채널이 있으며, 베어박스 질문에 답할 수 있는 사람들의 밀도가 더 높습니다. :)