Hej
Tak jak w tytule, mam np. folder w linuxie /var/log i jak zrobić by po reboocie kontent tego folderu był zachowany? Linux nie jest na komputerze PC więc nie mam tutaj dysku twardego tylko na pewnym boardzie jest uruchomiony i mam tylko RAM.
Co mi się udało do tej pory dowiedzieć, zaimplementować i obczaić:
- na pewno nie można robić resetu prądowego, tylko jakiś cold reset, L2 reset czy warm reset. Np. w linuxie w kernel spejsie możesz tu się pod to podczepić w virt/kvm/arm/psci.c ze swoim resetem zastępując obecny:
case PSCI_0_2_FN_SYSTEM_RESET:
//kvm_psci_system_reset(vcpu); //to wywalasz
printk(KERN_INFO "before l2_reset_cpu\n");
l2_reset_cpu(); //dajesz swoje własne wstawki asemblerowe m.in. ustawienie bitu od refreshu-ramu, wywołanie coldresetu itp.
printk(KERN_INFO "after l2_reset_cpu\n");
/*
* Same reason as SYSTEM_OFF for preloading r0 (or x0)
* with PSCI return value INTERNAL_FAILURE.
*/
val = PSCI_RET_INTERNAL_FAILURE;
ret = 0;
break;
-
ponadto przed resetem musisz poszukać w procesor subsystemie gdzieśtam w rejestrach pamięci RAM czy kontrolera pamięci RAM by wykonywał się auto-refresh RAMU. Ja znalazłem taki rejestr. Dodałem odpowiednią wstawkę asemblerową.
(iohmc_ctrl_mmr_top_inst.mmr_self_rfsh_req[3:0] Name:User Self Refresh Request Description:When asserted, indicates self refresh request to the specific rank. Each bit corresponds to each rank.These bits are write clear.) -
dowiedziałem się że w uboocie albo SPL boocie RAM jest zerowany i że niby jakoś w device tree uboota trzeba ustawić by katalog /var/log nie był zerowany, ale tego to już nie ogarniam, bo to jeszcze wchodzą pojęcia jak punkty montowania.
Ktoś mógłby pomóc czego mam szukać dalej, bo jestem w tym temacie zielony (nigdy nie miałem z tym do czynienia).