Lines Matching defs:nvram

36    nvram - non-volatile memory with clock
85 hw_nvram_device *nvram = ZALLOC(hw_nvram_device);
86 return nvram;
97 hw_nvram_device *nvram = (hw_nvram_device*)device_data(me);
104 if (nvram->sizeof_memory == 0) {
114 nvram->sizeof_memory = attach_size;
118 if (nvram->sizeof_memory == 0)
120 if (nvram->sizeof_memory < 8)
125 if (nvram->memory == NULL) {
126 nvram->memory = zalloc(nvram->sizeof_memory);
129 memset(nvram->memory, 0, nvram->sizeof_memory);
132 nvram->timezone = 0;
134 nvram->timezone = device_find_integer_property(me, "timezone");
136 nvram->addr_year = nvram->sizeof_memory - 1;
137 nvram->addr_month = nvram->sizeof_memory - 2;
138 nvram->addr_date = nvram->sizeof_memory - 3;
139 nvram->addr_day = nvram->sizeof_memory - 4;
140 nvram->addr_hour = nvram->sizeof_memory - 5;
141 nvram->addr_minutes = nvram->sizeof_memory - 6;
142 nvram->addr_seconds = nvram->sizeof_memory - 7;
143 nvram->addr_control = nvram->sizeof_memory - 8;
164 hw_nvram_update_clock(hw_nvram_device *nvram,
167 if (!(nvram->memory[nvram->addr_control] & 0xc0)) {
169 if (nvram->host_time != host_time) {
170 time_t nvtime = host_time + nvram->timezone;
172 nvram->host_time = host_time;
173 nvram->memory[nvram->addr_year] = hw_nvram_bcd(clock->tm_year);
174 nvram->memory[nvram->addr_month] = hw_nvram_bcd(clock->tm_mon + 1);
175 nvram->memory[nvram->addr_date] = hw_nvram_bcd(clock->tm_mday);
176 nvram->memory[nvram->addr_day] = hw_nvram_bcd(clock->tm_wday + 1);
177 nvram->memory[nvram->addr_hour] = hw_nvram_bcd(clock->tm_hour);
178 nvram->memory[nvram->addr_minutes] = hw_nvram_bcd(clock->tm_min);
179 nvram->memory[nvram->addr_seconds] = hw_nvram_bcd(clock->tm_sec);
185 hw_nvram_set_clock(hw_nvram_device *nvram, cpu *processor)
200 hw_nvram_device *nvram = (hw_nvram_device*)device_data(me);
202 unsigned address = (addr + i) % nvram->sizeof_memory;
203 uint8_t data = nvram->memory[address];
204 hw_nvram_update_clock(nvram, processor);
220 hw_nvram_device *nvram = (hw_nvram_device*)device_data(me);
222 unsigned address = (addr + i) % nvram->sizeof_memory;
224 if (address == nvram->addr_control
226 && (nvram->memory[address] & 0x80) == 0x80)
227 hw_nvram_set_clock(nvram, processor);
229 hw_nvram_update_clock(nvram, processor);
230 nvram->memory[address] = data;
242 { "nvram", hw_nvram_create, &hw_nvram_callbacks },