Exemple #1
0
static void
set_scancodes (void)
{
  /* You must have visited computer museum. Keyboard without scancode set
     knowledge. Assume XT. */
  if (!grub_keyboard_orig_set)
    {
      grub_dprintf ("atkeyb", "No sets support assumed\n");
      current_set = 1;
      return;
    }

  grub_keyboard_controller_write (grub_keyboard_controller_orig
				  & ~KEYBOARD_AT_TRANSLATE);

  write_mode (2);
  current_set = query_mode ();
  grub_dprintf ("atkeyb", "returned set %d\n", current_set);
  if (current_set == 2)
    return;

  write_mode (1);
  current_set = query_mode ();
  grub_dprintf ("atkeyb", "returned set %d\n", current_set);
  if (current_set == 1)
    return;
  grub_printf ("No supported scancode set found\n");
}
Exemple #2
0
static int
query_mode (void)
{
  grub_uint8_t ret;
  int e;

  e = write_mode (0);
  if (!e)
    return 0;

  keyboard_controller_wait_until_ready ();

  do
    ret = grub_inb (KEYBOARD_REG_DATA);
  while (ret == GRUB_AT_ACK);

  /* QEMU translates the set even in no-translate mode.  */
  if (ret == 0x43 || ret == 1)
    return 1;
  if (ret == 0x41 || ret == 2)
    return 2;
  if (ret == 0x3f || ret == 3)
    return 3;
  return 0;
}
void Extsram::write_single_byte(uint16_t addr, uint8_t data){
	write_mode();

	set_address(addr);
	*data_p = data;

	default_mode();
}
int board_nand_init(struct nand_chip *nand)
{
	nand->ecc.mode = NAND_ECC_SOFT;

	/* Reference hardware control function */
	nand->cmd_ctrl  = kpn_nand_hwcontrol;
	nand->read_byte  = kpn_nand_read_byte;
	nand->write_buf  = kpn_nand_write_buf;
	nand->read_buf   = kpn_nand_read_buf;
	nand->dev_ready  = kpn_nand_dev_ready;
	nand->chip_delay = KPN_DEFAULT_CHIP_DELAY;

	/* reset mode register */
	write_mode(KPN_CE1N + KPN_CE2N + KPN_WPN);
	return 0;
}
static void kpn_nand_hwcontrol(struct mtd_info *mtd, int cmd, unsigned int ctrl)
{
	u8 reg_val = read_mode();

	if (ctrl & NAND_CTRL_CHANGE) {
		reg_val = reg_val & ~(KPN_ALE + KPN_CLE);

		if (ctrl & NAND_CLE)
			reg_val = reg_val | KPN_CLE;
		if (ctrl & NAND_ALE)
			reg_val = reg_val | KPN_ALE;
		if (ctrl & NAND_NCE)
			reg_val = reg_val & ~KPN_CE1N;
		else
			reg_val = reg_val | KPN_CE1N;

		write_mode(reg_val);
	}
	if (cmd != NAND_CMD_NONE)
		write_data(cmd);

	/* wait until flash is ready */
	kpn_wait_rdy();
}