|
||
|
#122
|
||||
|
||||
|
después de leer los post de modaco y xda no me queda claro nada... salvo que el problema pasa con el recovery y a alguno con elnandroid. parece que se bloquea la conexión usb y luego se brikea o eso he entendido. De todos modos sí deshacemos root, según la guía que hay aquí se hace mediante un exe desde el ordenador no? no se sí es más seguro deshacerlo todo o quedarnos como estamos....
Sent from my HTC Desire using Tapatalk ![]() Mi diamond la he flashaedo desde almacenamiento interno, desde que dieron la posibilidad, para evitar problemas con windows. Tambien existe la posibilidad de Rootear la Desi con una version light de Linux para buscar un poco mas de fiabilidad del SO. Aqui lo tienes para cuando descubran que pasa con los brikeos y lo puedan solucionar. http://android.modaco.com/content/ht...-and-best-way Saludos!
|
|
#124
|
||||
|
||||
|
me acabo de leer el primer post, pero.......... los que las tenemos ya rooteadas sino tocamos nada mas no pasara nada, no? porque el tema ese de quitar la bateria 3 veces y que se brikee no me queda muy claro, un saludo .
|
|
#125
|
||||
|
||||
, sino que cuando se reinicia, si aparece 3 veces seguidas la imagen HTC "quietly brilliant" puede ocurrir.
__________________
Agradecer no cuesta nada
![]() |
|
#126
|
||||
|
||||
|
Yo aquí esperando mi Desire y cada vez con peor cara :S
Esperemos que se aclare todo... Saludos
__________________
|
|
#127
|
||||
|
||||
|
Lo que viene a ser usar el telefono y punto. jajaja tampoco para tanto joer, esto es un retraso o inconveniente puntual que solucionaran, te has hecho con una gran maquina,no lo dudes Última edición por estraduxo Día 20/05/10 a las 14:40:12. |
|
#128
|
||||
|
||||
|
Vaya hombre, ahora que me había decidido a rootear para meter el Apps2SD. ME suscribo al hilo para estar al tanto de las novedades. Gracias fozzy por avisar.
Saludos |
|
#129
|
||||
|
||||
|
estoy mirando cosas del kernel y si parece que sale eso de 3 o lo de break. en varios archivos.
---------------------------------------- #endif /* defined(CONFIG_USB_OHCI_HCD) || defined(CONFIG_USB_OHCI_HCD_MODULE) * /* Enable sys bus clock divider when IDLE state or no bus activity. * au_writel(au_readl(SYS_POWERCTRL) | (0x3 << 5), SYS_POWERCTRL); /* Enable the RTC if not already enabled. * if (!(readb(base + 0x28) & 0x20)) { writeb(readb(base + 0x28) | 0x20, base + 0x28); au_sync(); } /* Put the clock in BCD mode. * if (readb(base + 0x2C) & 0x4) { /* reg B * writeb(readb(base + 0x2c) & ~0x4, base + 0x2c); au_sync(); } } -------------------------------- #include <linux/delay.h> #include <linux/init.h> #include <linux/interrupt.h> #include <asm/mach-au1x00/au1000.h> #include <asm/mach-pb1x00/pb1000.h> #include <prom.h> struct au1xxx_irqmap __initdata au1xxx_irq_map[] = { { AU1000_GPIO_15, IRQF_TRIGGER_LOW, 0 }, }; const char *get_system_type(void) { return "Alchemy Pb1000"; } void board_reset(void) { } void __init board_init_irq(void) { au1xxx_setup_irqmap(au1xxx_irq_map, ARRAY_SIZE(au1xxx_irq_map)); } void __init board_setup(void) { u32 pin_func, static_cfg0; u32 sys_freqctrl, sys_clksrc; u32 prid = read_c0_prid(); #ifdef CONFIG_SERIAL_8250_CONSOLE char *argptr = prom_getcmdline(); argptr = strstr(argptr, "console="); if (argptr == NULL) { argptr = prom_getcmdline(); strcat(argptr, " console=ttyS0,115200"); } #endif /* Set AUX clock to 12 MHz * 8 = 96 MHz * au_writel(8, SYS_AUXPLL); au_writel(0, SYS_PINSTATERD); udelay(100); #if defined(CONFIG_USB_OHCI_HCD) || defined(CONFIG_USB_OHCI_HCD_MODULE) /* Zero and disable FREQ2 * sys_freqctrl = au_readl(SYS_FREQCTRL0); sys_freqctrl &= ~0xFFF00000; au_writel(sys_freqctrl, SYS_FREQCTRL0); /* Zero and disable USBH/USBD clocks * sys_clksrc = au_readl(SYS_CLKSRC); sys_clksrc &= ~(SYS_CS_CUD | SYS_CS_DUD | SYS_CS_MUD_MASK | SYS_CS_CUH | SYS_CS_DUH | SYS_CS_MUH_MASK); au_writel(sys_clksrc, SYS_CLKSRC); sys_freqctrl = au_readl(SYS_FREQCTRL0); sys_freqctrl &= ~0xFFF00000; sys_clksrc = au_readl(SYS_CLKSRC); sys_clksrc &= ~(SYS_CS_CUD | SYS_CS_DUD | SYS_CS_MUD_MASK | SYS_CS_CUH | SYS_CS_DUH | SYS_CS_MUH_MASK); switch (prid & 0x000000FF) { case 0x00: /* DA * case 0x01: /* HA * case 0x02: /* HB * /* CPU core freq to 48 MHz to slow it way down... * au_writel(4, SYS_CPUPLL); /* * Setup 48 MHz FREQ2 from CPUPLL for USB Host * FRDIV2 = 3 -> div by 8 of 384 MHz -> 48 MHz * sys_freqctrl |= (3 << SYS_FC_FRDIV2_BIT) | SYS_FC_FE2; au_writel(sys_freqctrl, SYS_FREQCTRL0); /* CPU core freq to 384 MHz * au_writel(0x20, SYS_CPUPLL); printk(KERN_INFO "Au1000: 48 MHz OHCI workaround enabled\n"); break; default: /* HC and newer * /* FREQ2 = aux / 2 = 48 MHz * sys_freqctrl |= (0 << SYS_FC_FRDIV2_BIT) | SYS_FC_FE2 | SYS_FC_FS2; au_writel(sys_freqctrl, SYS_FREQCTRL0); break; } /* * Route 48 MHz FREQ2 into USB Host and/or Device * sys_clksrc |= SYS_CS_MUX_FQ2 << SYS_CS_MUH_BIT; au_writel(sys_clksrc, SYS_CLKSRC); /* Configure pins GPIO[14:9] as GPIO * pin_func = au_readl(SYS_PINFUNC) & ~(SYS_PF_UR3 | SYS_PF_USB); /* 2nd USB port is USB host * pin_func |= SYS_PF_USB; au_writel(pin_func, SYS_PINFUNC); au_writel(0x2800, SYS_TRIOUTCLR); au_writel(0x0030, SYS_OUTPUTCLR); #endif /* defined(CONFIG_USB_OHCI_HCD) || defined(CONFIG_USB_OHCI_HCD_MODULE) * /* Make GPIO 15 an input (for interrupt line) * pin_func = au_readl(SYS_PINFUNC) & ~SYS_PF_IRF; /* We don't need I2S, so make it available for GPIO[31:29] * pin_func |= SYS_PF_I2S; au_writel(pin_func, SYS_PINFUNC); au_writel(0x8000, SYS_TRIOUTCLR); static_cfg0 = au_readl(MEM_STCFG0) & ~0xc00; au_writel(static_cfg0, MEM_STCFG0); /* configure RCE2* for LCD * au_writel(0x00000004, MEM_STCFG2); /* MEM_STTIME2 * au_writel(0x09000000, MEM_STTIME2); /* Set 32-bit base address decoding for RCE2* * au_writel(0x10003ff0, MEM_STADDR2); /* * PCI CPLD setup * Expand CE0 to cover PCI * au_writel(0x11803e40, MEM_STADDR1); /* Burst visibility on * au_writel(au_readl(MEM_STCFG0) | 0x1000, MEM_STCFG0); au_writel(0x83, MEM_STCFG1); /* ewait enabled, flash timing * au_writel(0x33030a10, MEM_STTIME1); /* slower timing for FPGA * /* Setup the static bus controller * au_writel(0x00000002, MEM_STCFG3); /* type = PCMCIA * au_writel(0x280E3D07, MEM_STTIME3); /* 250ns cycle time * au_writel(0x10000000, MEM_STADDR3); /* any PCMCIA select * /* * Enable Au1000 BCLK switching - note: sed1356 must not use * its BCLK (Au1000 LCLK) for any timings * switch (prid & 0x000000FF) { case 0x00: /* DA * case 0x01: /* HA * case 0x02: /* HB * break; default: /* HC and newer * /* * Enable sys bus clock divider when IDLE state or no bus * activity. * au_writel(au_readl(SYS_POWERCTRL) | (0x3 << 5), SYS_POWERCTRL); break; } } ------------------------------------------ |
|
#130
|
||||
|
||||
|
Lo único que tienen claro por ahora es la intencionalidad por parte de HTC del bloqueo del terminal...
Si llego a saber antes esto me compro un Nexus, que tiene absolutamente todo funcional, icluso el recovery se escribe en el system, y encima cuenta con el apoyo de Cyanogen. |
|
#131
|
||||
|
||||
|
Lo digo porque el break es normal que pueda aparecer, se utiliza para salir de los bucles ignorando sus condiciones, y el 3 que he visto salía así: 0x3 que eso es hexadecimal y aunque tenga el mismo valor realmente supongo que hará referencia a otra cosa, como por ejemplo posiciones de memoria. No me he mirado con detalle el código, ya que de buenas a primeras me ha parecido que te lo estabas mirando para curiosear sin entenderlo mucho y era para evitar que la gente se monte sus propias paranoias con el tema
__________________
Agradecer no cuesta nada
![]() |
|
#132
|
||||
|
||||
|
estoy mirando cosas del kernel y si parece que sale eso de 3 o lo de break. en varios archivos.
---------------------------------------- #endif /* defined(CONFIG_USB_OHCI_HCD) || defined(CONFIG_USB_OHCI_HCD_MODULE) * /* Enable sys bus clock divider when IDLE state or no bus activity. * au_writel(au_readl(SYS_POWERCTRL) | (0x3 << 5), SYS_POWERCTRL); /* Enable the RTC if not already enabled. * if (!(readb(base + 0x28) & 0x20)) { writeb(readb(base + 0x28) | 0x20, base + 0x28); au_sync(); } /* Put the clock in BCD mode. * if (readb(base + 0x2C) & 0x4) { /* reg B * writeb(readb(base + 0x2c) & ~0x4, base + 0x2c); au_sync(); } } -------------------------------- #include <linux/delay.h> #include <linux/init.h> #include <linux/interrupt.h> #include <asm/mach-au1x00/au1000.h> #include <asm/mach-pb1x00/pb1000.h> #include <prom.h> struct au1xxx_irqmap __initdata au1xxx_irq_map[] = { { AU1000_GPIO_15, IRQF_TRIGGER_LOW, 0 }, }; const char *get_system_type(void) { return "Alchemy Pb1000"; } void board_reset(void) { } void __init board_init_irq(void) { au1xxx_setup_irqmap(au1xxx_irq_map, ARRAY_SIZE(au1xxx_irq_map)); } void __init board_setup(void) { u32 pin_func, static_cfg0; u32 sys_freqctrl, sys_clksrc; u32 prid = read_c0_prid(); #ifdef CONFIG_SERIAL_8250_CONSOLE char *argptr = prom_getcmdline(); argptr = strstr(argptr, "console="); if (argptr == NULL) { argptr = prom_getcmdline(); strcat(argptr, " console=ttyS0,115200"); } #endif /* Set AUX clock to 12 MHz * 8 = 96 MHz * au_writel(8, SYS_AUXPLL); au_writel(0, SYS_PINSTATERD); udelay(100); #if defined(CONFIG_USB_OHCI_HCD) || defined(CONFIG_USB_OHCI_HCD_MODULE) /* Zero and disable FREQ2 * sys_freqctrl = au_readl(SYS_FREQCTRL0); sys_freqctrl &= ~0xFFF00000; au_writel(sys_freqctrl, SYS_FREQCTRL0); /* Zero and disable USBH/USBD clocks * sys_clksrc = au_readl(SYS_CLKSRC); sys_clksrc &= ~(SYS_CS_CUD | SYS_CS_DUD | SYS_CS_MUD_MASK | SYS_CS_CUH | SYS_CS_DUH | SYS_CS_MUH_MASK); au_writel(sys_clksrc, SYS_CLKSRC); sys_freqctrl = au_readl(SYS_FREQCTRL0); sys_freqctrl &= ~0xFFF00000; sys_clksrc = au_readl(SYS_CLKSRC); sys_clksrc &= ~(SYS_CS_CUD | SYS_CS_DUD | SYS_CS_MUD_MASK | SYS_CS_CUH | SYS_CS_DUH | SYS_CS_MUH_MASK); switch (prid & 0x000000FF) { case 0x00: /* DA * case 0x01: /* HA * case 0x02: /* HB * /* CPU core freq to 48 MHz to slow it way down... * au_writel(4, SYS_CPUPLL); /* * Setup 48 MHz FREQ2 from CPUPLL for USB Host * FRDIV2 = 3 -> div by 8 of 384 MHz -> 48 MHz * sys_freqctrl |= (3 << SYS_FC_FRDIV2_BIT) | SYS_FC_FE2; au_writel(sys_freqctrl, SYS_FREQCTRL0); /* CPU core freq to 384 MHz * au_writel(0x20, SYS_CPUPLL); printk(KERN_INFO "Au1000: 48 MHz OHCI workaround enabled\n"); break; default: /* HC and newer * /* FREQ2 = aux / 2 = 48 MHz * sys_freqctrl |= (0 << SYS_FC_FRDIV2_BIT) | SYS_FC_FE2 | SYS_FC_FS2; au_writel(sys_freqctrl, SYS_FREQCTRL0); break; } /* * Route 48 MHz FREQ2 into USB Host and/or Device * sys_clksrc |= SYS_CS_MUX_FQ2 << SYS_CS_MUH_BIT; au_writel(sys_clksrc, SYS_CLKSRC); /* Configure pins GPIO[14:9] as GPIO * pin_func = au_readl(SYS_PINFUNC) & ~(SYS_PF_UR3 | SYS_PF_USB); /* 2nd USB port is USB host * pin_func |= SYS_PF_USB; au_writel(pin_func, SYS_PINFUNC); au_writel(0x2800, SYS_TRIOUTCLR); au_writel(0x0030, SYS_OUTPUTCLR); #endif /* defined(CONFIG_USB_OHCI_HCD) || defined(CONFIG_USB_OHCI_HCD_MODULE) * /* Make GPIO 15 an input (for interrupt line) * pin_func = au_readl(SYS_PINFUNC) & ~SYS_PF_IRF; /* We don't need I2S, so make it available for GPIO[31:29] * pin_func |= SYS_PF_I2S; au_writel(pin_func, SYS_PINFUNC); au_writel(0x8000, SYS_TRIOUTCLR); static_cfg0 = au_readl(MEM_STCFG0) & ~0xc00; au_writel(static_cfg0, MEM_STCFG0); /* configure RCE2* for LCD * au_writel(0x00000004, MEM_STCFG2); /* MEM_STTIME2 * au_writel(0x09000000, MEM_STTIME2); /* Set 32-bit base address decoding for RCE2* * au_writel(0x10003ff0, MEM_STADDR2); /* * PCI CPLD setup * Expand CE0 to cover PCI * au_writel(0x11803e40, MEM_STADDR1); /* Burst visibility on * au_writel(au_readl(MEM_STCFG0) | 0x1000, MEM_STCFG0); au_writel(0x83, MEM_STCFG1); /* ewait enabled, flash timing * au_writel(0x33030a10, MEM_STTIME1); /* slower timing for FPGA * /* Setup the static bus controller * au_writel(0x00000002, MEM_STCFG3); /* type = PCMCIA * au_writel(0x280E3D07, MEM_STTIME3); /* 250ns cycle time * au_writel(0x10000000, MEM_STADDR3); /* any PCMCIA select * /* * Enable Au1000 BCLK switching - note: sed1356 must not use * its BCLK (Au1000 LCLK) for any timings * switch (prid & 0x000000FF) { case 0x00: /* DA * case 0x01: /* HA * case 0x02: /* HB * break; default: /* HC and newer * /* * Enable sys bus clock divider when IDLE state or no bus * activity. * au_writel(au_readl(SYS_POWERCTRL) | (0x3 << 5), SYS_POWERCTRL); break; } } ------------------------------------------ ![]() Esos break; que veis en ese código cada dos por tres, no es más que una forma de salir de un bucle o un case... no tiene nada que ver con lo que aquí se denomina brickear el movil... Fdo... Un Programador y medio Ingeniero ;) |
|
#133
|
||||
|
||||
|
La funcion problematica es esta:
#define ULPI_VERIFY_MAX_LOOP_COUNT 3 static int msm_hsusb_phy_verify_access(void __iomem *usb_base) { int temp; for (temp = 0; temp < ULPI_VERIFY_MAX_LOOP_COUNT; temp++) { if (ulpi_read(usb_base, ULPI_DEBUG) != (unsigned)-1) break; msm_hsusb_apps_reset_phy(); } if (temp == ULPI_VERIFY_MAX_LOOP_COUNT) { pr_err("%s: ulpi read failed for %d times\n", __func__, ULPI_VERIFY_MAX_LOOP_COUNT); return -1; } } |
|
#134
|
||||
|
||||
|
Julian1984 se esta empezando a iniciar la "paranoia" colectiva, ya que todos podemos revisar el código liberado por parte de HTC, y como dijeron antes, todo lo que tiene que ver con cosas comentadas anteriormente se asocia al problema de forma directa.
Por lo menos me sirve de consuelo que aunque seamos pocos, somos algunos los que lo entendemos. Y ahora en medio-coña pero es cierto, no me imagino este hilo llevado por gente sin conocimientos del tema, ya que al parecer muchos abrían empezado a devolver o vender de 2a mano las Desire's ![]() ![]() ![]() No os montéis los culebrones si consideráis que entendéis poco, porque llegará alguien que no siga el hilo y esto empezará a desvariar de forma exponencial.
__________________
Agradecer no cuesta nada
![]() |
|
#135
|
||||
|
||||
|
La funcion problematica es esta:
Código:
#define ULPI_VERIFY_MAX_LOOP_COUNT 3
static int msm_hsusb_phy_verify_access(void __iomem *usb_base)
{
int temp;
for (temp = 0; temp < ULPI_VERIFY_MAX_LOOP_COUNT; temp++) {
if (ulpi_read(usb_base, ULPI_DEBUG) != (unsigned)-1)
break;
msm_hsusb_apps_reset_phy();
}
if (temp == ULPI_VERIFY_MAX_LOOP_COUNT) {
pr_err("%s: ulpi read failed for %d times\n",
__func__, ULPI_VERIFY_MAX_LOOP_COUNT);
return -1;
}
}
![]()
__________________
Agradecer no cuesta nada
![]() |
|
#136
|
||||
|
||||
|
Sí y no, la funcion por si sola no, pero la han relacionado con un switch presente en todos los brickeados, tampoco apuntan muchas mas información, casi todo lo estan tratando por IRC en privado entre los cocineros, y la información sale con cuentagotas (cuando sale).
|