/[qemu]/qemu/hw/sun4u.c
ViewVC logotype

Diff of /qemu/hw/sun4u.c

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 1.2 by bellard, Sat Jul 23 14:27:54 2005 UTC revision 1.3 by bellard, Sun Oct 30 16:58:32 2005 UTC
# Line 68  void DMA_register_channel (int nchan, Line 68  void DMA_register_channel (int nchan,
68  /* NVRAM helpers */  /* NVRAM helpers */
69  void NVRAM_set_byte (m48t59_t *nvram, uint32_t addr, uint8_t value)  void NVRAM_set_byte (m48t59_t *nvram, uint32_t addr, uint8_t value)
70  {  {
71      m48t59_set_addr(nvram, addr);      m48t59_write(nvram, addr, value);
     m48t59_write(nvram, value);  
72  }  }
73    
74  uint8_t NVRAM_get_byte (m48t59_t *nvram, uint32_t addr)  uint8_t NVRAM_get_byte (m48t59_t *nvram, uint32_t addr)
75  {  {
76      m48t59_set_addr(nvram, addr);      return m48t59_read(nvram, addr);
     return m48t59_read(nvram);  
77  }  }
78    
79  void NVRAM_set_word (m48t59_t *nvram, uint32_t addr, uint16_t value)  void NVRAM_set_word (m48t59_t *nvram, uint32_t addr, uint16_t value)
80  {  {
81      m48t59_set_addr(nvram, addr);      m48t59_write(nvram, addr, value >> 8);
82      m48t59_write(nvram, value >> 8);      m48t59_write(nvram, addr + 1, value & 0xFF);
     m48t59_set_addr(nvram, addr + 1);  
     m48t59_write(nvram, value & 0xFF);  
83  }  }
84    
85  uint16_t NVRAM_get_word (m48t59_t *nvram, uint32_t addr)  uint16_t NVRAM_get_word (m48t59_t *nvram, uint32_t addr)
86  {  {
87      uint16_t tmp;      uint16_t tmp;
88    
89      m48t59_set_addr(nvram, addr);      tmp = m48t59_read(nvram, addr) << 8;
90      tmp = m48t59_read(nvram) << 8;      tmp |= m48t59_read(nvram, addr + 1);
     m48t59_set_addr(nvram, addr + 1);  
     tmp |= m48t59_read(nvram);  
91    
92      return tmp;      return tmp;
93  }  }
94    
95  void NVRAM_set_lword (m48t59_t *nvram, uint32_t addr, uint32_t value)  void NVRAM_set_lword (m48t59_t *nvram, uint32_t addr, uint32_t value)
96  {  {
97      m48t59_set_addr(nvram, addr);      m48t59_write(nvram, addr, value >> 24);
98      m48t59_write(nvram, value >> 24);      m48t59_write(nvram, addr + 1, (value >> 16) & 0xFF);
99      m48t59_set_addr(nvram, addr + 1);      m48t59_write(nvram, addr + 2, (value >> 8) & 0xFF);
100      m48t59_write(nvram, (value >> 16) & 0xFF);      m48t59_write(nvram, addr + 3, value & 0xFF);
     m48t59_set_addr(nvram, addr + 2);  
     m48t59_write(nvram, (value >> 8) & 0xFF);  
     m48t59_set_addr(nvram, addr + 3);  
     m48t59_write(nvram, value & 0xFF);  
101  }  }
102    
103  uint32_t NVRAM_get_lword (m48t59_t *nvram, uint32_t addr)  uint32_t NVRAM_get_lword (m48t59_t *nvram, uint32_t addr)
104  {  {
105      uint32_t tmp;      uint32_t tmp;
106    
107      m48t59_set_addr(nvram, addr);      tmp = m48t59_read(nvram, addr) << 24;
108      tmp = m48t59_read(nvram) << 24;      tmp |= m48t59_read(nvram, addr + 1) << 16;
109      m48t59_set_addr(nvram, addr + 1);      tmp |= m48t59_read(nvram, addr + 2) << 8;
110      tmp |= m48t59_read(nvram) << 16;      tmp |= m48t59_read(nvram, addr + 3);
     m48t59_set_addr(nvram, addr + 2);  
     tmp |= m48t59_read(nvram) << 8;  
     m48t59_set_addr(nvram, addr + 3);  
     tmp |= m48t59_read(nvram);  
111    
112      return tmp;      return tmp;
113  }  }
# Line 132  void NVRAM_set_string (m48t59_t *nvram, Line 118  void NVRAM_set_string (m48t59_t *nvram,
118      int i;      int i;
119    
120      for (i = 0; i < max && str[i] != '\0'; i++) {      for (i = 0; i < max && str[i] != '\0'; i++) {
121          m48t59_set_addr(nvram, addr + i);          m48t59_write(nvram, addr + i, str[i]);
         m48t59_write(nvram, str[i]);  
122      }      }
123      m48t59_set_addr(nvram, addr + max - 1);      m48t59_write(nvram, addr + max - 1, '\0');
     m48t59_write(nvram, '\0');  
124  }  }
125    
126  int NVRAM_get_string (m48t59_t *nvram, uint8_t *dst, uint16_t addr, int max)  int NVRAM_get_string (m48t59_t *nvram, uint8_t *dst, uint16_t addr, int max)
# Line 357  static void sun4u_init(int ram_size, int Line 341  static void sun4u_init(int ram_size, int
341      pci_cmd646_ide_init(pci_bus, bs_table, 1);      pci_cmd646_ide_init(pci_bus, bs_table, 1);
342      kbd_init();      kbd_init();
343      floppy_controller = fdctrl_init(6, 2, 0, 0x3f0, fd_table);      floppy_controller = fdctrl_init(6, 2, 0, 0x3f0, fd_table);
344      nvram = m48t59_init(8, 0, 0x0074, NVRAM_SIZE);      nvram = m48t59_init(8, 0, 0x0074, NVRAM_SIZE, 59);
345      sun4u_NVRAM_set_params(nvram, NVRAM_SIZE, "Sun4u", ram_size, boot_device,      sun4u_NVRAM_set_params(nvram, NVRAM_SIZE, "Sun4u", ram_size, boot_device,
346                           KERNEL_LOAD_ADDR, kernel_size,                           KERNEL_LOAD_ADDR, kernel_size,
347                           kernel_cmdline,                           kernel_cmdline,

Legend:
Removed from v.1.2  
changed lines
  Added in v.1.3

savannah-hackers-public@gnu.org
ViewVC Help
Powered by ViewVC 1.1.26