смысл вопроса был в том, что допустим корневая не обновилась (в разным причинам) а вы даете команду hwclock --systohc, которую hwclock молча глотает, ничего не делая..
странно то, что у меня на двух платах этот номер прошел, а у вас, напротив, нет.. отличие в том, что у меня использован нативный дебьян. с другой стороны, в системе с бизибоксом от Павла, тоже все работает..
видать, есть какая-то тонкость.. попробуйте по форумам пошерстить, уверен, что проблема давно известна и решена..
вот такая же проблема на at91.com и положительное решение: ссылка
да пробовал я это патч. бестолку. (кстати попутно нашел что у Павла ошибка в make_kernel: для obj-copy не указан путь, из-за чего ядро собирается, но в образ не попадает)
вот что с патчем:
rtc-at91sam9 at91_rtt.0: rtc core: registered at91_rtt as rtc0
rtc-at91sam9 at91_rtt.0: rtc0: SET TIME ! sam9260 Rev A?
crt: Watchdog register . 32768
rtc-at91sam9 at91_rtt.0: SET TIME patched !
rtc-at91sam9 at91_rtt.0: without effect :(
...
rtc-at91sam9 at91_rtt.0: hctosys: unable to read the hardware clock
...
# date
at t 31 17:00:15 MST 1969
# date 011811002011
at y 18 11:00:00 MST 2011
# hwclock --systohc
# hwclock
hwclock: RTC_RD_TIME: Invalid or incomplete multibyte or wide character
#
# ln -s /dev/rtc0 /dev/rtc
# ls /dev/rtc*
/dev/rtc /dev/rtc0
# tftp -g -r rtc-start 192.168.0.2
# chmod +x rtc-start
# ./rtc-start
return 0
# date
at y 18 11:01:49 MST 2011
# hwclock --systohc
# hwclock
hwclock: RTC_RD_TIME: Invalid or incomplete multibyte or wide character
# hwclock -r
hwclock: RTC_RD_TIME: Invalid or incomplete multibyte or wide character
#
сообщение "SET TIME patched !" я вставил в конец патча, чтобы убедиться что он применяется; а после вставил еще
if (gpbr_readl(rtc) == 0) {
dev_warn(&pdev->dev, "without effect :(\n");
и как видим действительно патч эффекта не дает.
Юрий, может скинете свою прошивку куда-нибудь, я бы ее попробывал.
мне не жалко, но прошивку чего?
ядра, рутовой, патчик..
найдена ось зла: gpbr_writel
не работает запись в General-purpose Backup Registers
там где в патче идет запись (gpbr_writel ), сразу же делаю чтение (gpbr_readl) : что бы не записывалось - всегда читается ноль!!!
НЕ ПОНИМАЮ!!!!!
может дело в перемычках каких-то?
J16 вроде стоит верно.
нашел еще
As stated in the RTC driver comments, the SAM9260 Rev A boot ROM will
set the RTT value to zero clearing out any elapsed time since the clock
was last set. Workarounds for this are to not use the boot ROM by
booting from an external parallel flash device or get the time from an
external device such as a DS1302, GPS or a network time server.
значицца так, массу времени потратил на поиски удобоваримой рутовой и овладеванию искусством initramfs, спасибо вездесущему и всезнающему Саше за ЦУ
#cd /<path>/rootfs
#ln -s bin/busybox init
в жизни бы не допер..
короче - это архив тестовой загрузки для 9260.. хм не знаю пойдет ли на хе512.. не уверен
распаковываете, кладете в /tftpboot файл zlinux
питание, стопите uboot, далее
tftpboot 20400000 zlinux
boom 20400000
куски из лога:
rtc-at91sam9 at91_rtt.0: rtc core: registered at91_rtt as rtc0
rtc-at91sam9 at91_rtt.0: rtc0: SET TIME!
rtc-at91sam9 at91_rtt.0: hctosys: unable to read the hardware clock
пробуем
[@ARMETS /]$date
Thu Jan 1 00:00:13 UTC 1970
[@ARMETS /]$hwclock
hwclock: Could not read time from RTC: Invalid or incomplete multibyte or wide character
[@ARMETS /]$/rtc-start
return 0
[@ARMETS /]$hwclock
Thu Jan 1 00:00:05 1970 0.000000 seconds
[@ARMETS /]$date 011822462011
Tue Jan 18 22:46:00 UTC 2011
[@ARMETS /]$hwclock -w
[@ARMETS /]$hwclock
Tue Jan 18 22:46:10 2011 0.000000 seconds
перегружаем словом reboot
rtc-at91sam9 at91_rtt.0: rtc core: registered at91_rtt as rtc0
rtc-at91sam9 at91_rtt.0: setting system clock to 2011-01-18 22:46:24 UTC (1295390784)
[@ARMETS /]$hwclock
Tue Jan 18 22:47:38 2011 0.000000 seconds
напомню, что батарейки у меня нет.
из нечестного - т.к. с рутовой давно не работал, пришлось руками прописать устройства rtc0 rtc иначе не создавались
зы в архиве конфиг этого ядра
Linux version 2.6.35.1 (root@armmaker) (gcc version 4.2.0 20070413 (prerelease) (CodeSourcery Sourcery G++ Lite 2007q1-10)) #59 Fri Feb 18 22:46:36 MSK 2011
CPU: ARM926EJ-S [41069265] revision 5 (ARMv5TEJ), cr=00053177
CPU: VIVT data cache, VIVT instruction cache
Machine: Atmel AT91SAM9260-EK
Memory policy: ECC disabled, Data cache writeback
Clocks: CPU 200 MHz, master 100 MHz, main 12.000 MHz
Built 1 zonelists in Zone order, mobility grouping on. Total pages: 16256
Kernel command line: mem=64M console=ttyS0,115200 rw
PID hash table entries: 256 (order: -2, 1024 bytes)
Dentry cache hash table entries: 8192 (order: 3, 32768 bytes)
Inode-cache hash table entries: 4096 (order: 2, 16384 bytes)
Memory: 64MB = 64MB total
Memory: 60316k/60316k available, 5220k reserved, 0K highmem
Virtual kernel memory layout:
vector : 0xffff0000 - 0xffff1000 ( 4 kB)
fixmap : 0xfff00000 - 0xfffe0000 ( 896 kB)
DMA : 0xffc00000 - 0xffe00000 ( 2 MB)
vmalloc : 0xc4800000 - 0xfee00000 ( 934 MB)
lowmem : 0xc0000000 - 0xc4000000 ( 64 MB)
modules : 0xbf000000 - 0xc0000000 ( 16 MB)
.init : 0xc0008000 - 0xc01c3000 (1772 kB)
.text : 0xc01c3000 - 0xc0442000 (2556 kB)
.data : 0xc0458000 - 0xc0471780 ( 102 kB)
Hierarchical RCU implementation.
Verbose stalled-CPUs detection is disabled.
NR_IRQS:192
AT91: 96 gpio irqs in 3 banks
Console: colour dummy device 80x30
console [ttyS0] enabled
Calibrating delay loop... 99.73 BogoMIPS (lpj=498688)
pid_max: default: 32768 minimum: 301
Mount-cache hash table entries: 512
CPU: Testing write buffer coherency: ok
NET: Registered protocol family 16
bio: create slab <bio-0> at 0
SCSI subsystem initialized
usbcore: registered new interface driver usbfs
usbcore: registered new interface driver hub
usbcore: registered new device driver usb
NET: Registered protocol family 23
Switching to clocksource pit
NET: Registered protocol family 2
IP route cache hash table entries: 1024 (order: 0, 4096 bytes)
TCP established hash table entries: 2048 (order: 2, 16384 bytes)
TCP bind hash table entries: 2048 (order: 1, 8192 bytes)
TCP: Hash tables configured (established 2048 bind 2048)
TCP reno registered
UDP hash table entries: 256 (order: 0, 4096 bytes)
UDP-Lite hash table entries: 256 (order: 0, 4096 bytes)
NET: Registered protocol family 1
NetWinder Floating Point Emulator V0.97 (double precision)
NTFS driver 2.1.29 [Flags: R/O].
msgmni has been set to 117
io scheduler noop registered (default)
atmel_usart.0: ttyS0 at MMIO 0xfefff200 (irq = 1) is a ATMEL_SERIAL
atmel_usart.1: ttyS1 at MMIO 0xfffb0000 (irq = 6) is a ATMEL_SERIAL
atmel_usart.2: ttyS2 at MMIO 0xfffb4000 (irq = 7) is a ATMEL_SERIAL
brd: module loaded
ssc ssc.0: Atmel SSC device at 0xc4828000 (irq 14)
MACB_mii_bus: probed
eth0: Atmel MACB at 0xfffc4000 irq 21 (00:1f:f2:00:00:00)
eth0: attached PHY driver [Generic PHY] (mii_bus:phy_addr=ffffffff:01, irq=-1)
usbcore: registered new interface driver irda-usb
USB IrDA support registered
ohci_hcd: USB 1.1 'Open' Host Controller (OHCI) Driver
at91_ohci at91_ohci: AT91 OHCI
at91_ohci at91_ohci: new USB bus registered, assigned bus number 1
at91_ohci at91_ohci: irq 20, io mem 0x00500000
hub 1-0:1.0: USB hub found
hub 1-0:1.0: 2 ports detected
Initializing USB Mass Storage driver...
usbcore: registered new interface driver usb-storage
USB Mass Storage support registered.
mice: PS/2 mouse device common for all mice
rtc-at91sam9 at91_rtt.0: rtc core: registered at91_rtt as rtc0
rtc-at91sam9 at91_rtt.0: rtc0: SET TIME!
usbcore: registered new interface driver hiddev
usbcore: registered new interface driver usbhid
usbhid: USB HID core driver
TCP cubic registered
NET: Registered protocol family 17
IrCOMM protocol (Dag Brattli)
rtc-at91sam9 at91_rtt.0: hctosys: unable to read the hardware clock
Freeing init memory: 1772K
Starting system...
mount: Mounting none on /dev/pts failed: No such file or directory
chgrp: unknown group name: utmp
eth0: link up (100/Full)
Please press Enter to activate this console.
BusyBox v1.1.2 (2009.04.17-09:24+0000) Built-in shell (ash)
Enter 'help' for a list of built-in commands.
[@ARMETS /]$date
Thu Jan 1 00:01:19 UTC 1970
[@ARMETS /]$hwclock
hwclock: Could not read time from RTC: Invalid or incomplete multibyte or wide character
[@ARMETS /]$ls
bin init lost+found proc sbin usb
dev lib mnt root sys usr
etc linuxrc modules rtc-start tmp var
[@ARMETS /]$./rtc-start
return 0
[@ARMETS /]$hwclock
hwclock: Could not read time from RTC: Invalid or incomplete multibyte or wide character
[@ARMETS /]$date 011822462011
Tue Jan 18 22:46:00 UTC 2011
[@ARMETS /]$hwclock -w
[@ARMETS /]$hwclock
hwclock: Could not read time from RTC: Invalid or incomplete multibyte or wide character
PS Юрий, у Вас какая плата? Какое состояние всех перемычек? Потому что я уже не знаю, куда копать.....