lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Date:   Sun, 10 Jun 2018 17:32:02 +0200
From:   Boris Brezillon <boris.brezillon@...tlin.com>
To:     Dmitry Osipenko <digetx@...il.com>
Cc:     Stefan Agner <stefan@...er.ch>, dwmw2@...radead.org,
        computersforpeace@...il.com, marek.vasut@...il.com,
        robh+dt@...nel.org, mark.rutland@....com, thierry.reding@...il.com,
        dev@...xeye.de, miquel.raynal@...tlin.com, richard@....at,
        marcel@...wiler.com, krzk@...nel.org, benjamin.lindqvist@...ian.se,
        jonathanh@...dia.com, pdeschrijver@...dia.com, pgaikwad@...dia.com,
        mirza.krak@...il.com, linux-mtd@...ts.infradead.org,
        linux-tegra@...r.kernel.org, devicetree@...r.kernel.org,
        linux-kernel@...r.kernel.org
Subject: Re: [PATCH v3 4/6] mtd: rawnand: add NVIDIA Tegra NAND Flash
 controller driver

On Sun, 10 Jun 2018 18:00:06 +0300
Dmitry Osipenko <digetx@...il.com> wrote:

> > >> That seems a lot of work for a code path I do not intend to ever use :-)  
> > > 
> > > Are you sure that resetting HW resets the timing and other registers
> > > configuration? Reset implementation is HW-specific, like for example in a
> > > case of a video decoder the registers state is re-intialized on HW reset,
> > > but registers configuration is untouched in a case of resetting GPU. I'd
> > > suggest to check whether NAND controller resetting affects the HW
> > > configuration.  
> > It seems all registers are set back to their documented reset value:
> > 
> > [boot loader/ROM initialized values]
> > [    1.270253] tegra-nand 70008000.nand: Tegra NAND controller register
> > dump
> > [    1.277051] tegra-nand 70008000.nand: COMMAND: 0x66880104
> > [    1.282457] tegra-nand 70008000.nand: STATUS: 0x00000101
> > [    1.287763] tegra-nand 70008000.nand: ISR: 0x01000120
> > [    1.292818] tegra-nand 70008000.nand: IER: 0x00000000
> > [    1.297863] tegra-nand 70008000.nand: CONFIG: 0x00840000
> > [    1.303181] tegra-nand 70008000.nand: TIMING: 0x05040000
> > [    1.308486] tegra-nand 70008000.nand: TIMING2: 0x00000003
> > [    1.313897] tegra-nand 70008000.nand: CMD_REG1: 0x00000000
> > [    1.319377] tegra-nand 70008000.nand: CMD_REG2: 0x00000030
> > [    1.324868] tegra-nand 70008000.nand: ADDR_REG1: 0x03000000
> > [    1.330435] tegra-nand 70008000.nand: ADDR_REG2: 0x00000000
> > [    1.336011] tegra-nand 70008000.nand: DMA_MST_CTRL: 0x04100004
> > [    1.341838] tegra-nand 70008000.nand: DMA_CFG_A: 0x00000fff
> > [    1.347415] tegra-nand 70008000.nand: DMA_CFG_B: 0x0000001b
> > [    1.352991] tegra-nand 70008000.nand: FIFO_CTRL: 0x0000aa00
> > [reset]
> > [    1.358559] tegra-nand 70008000.nand: Tegra NAND controller register
> > dump
> > [    1.365352] tegra-nand 70008000.nand: COMMAND: 0x00800004
> > [    1.370744] tegra-nand 70008000.nand: STATUS: 0x00000101
> > [    1.376060] tegra-nand 70008000.nand: ISR: 0x00000100
> > [    1.381105] tegra-nand 70008000.nand: IER: 0x00000000
> > [    1.386161] tegra-nand 70008000.nand: CONFIG: 0x10030000
> > [    1.391466] tegra-nand 70008000.nand: TIMING: 0x00000000
> > [    1.396782] tegra-nand 70008000.nand: TIMING2: 0x00000000
> > [    1.402174] tegra-nand 70008000.nand: CMD_REG1: 0x00000000
> > [    1.407664] tegra-nand 70008000.nand: CMD_REG2: 0x00000000
> > [    1.413156] tegra-nand 70008000.nand: ADDR_REG1: 0x00000000
> > [    1.418722] tegra-nand 70008000.nand: ADDR_REG2: 0x00000000
> > [    1.424297] tegra-nand 70008000.nand: DMA_MST_CTRL: 0x24000000
> > [    1.430123] tegra-nand 70008000.nand: DMA_CFG_A: 0x00000000
> > [    1.435698] tegra-nand 70008000.nand: DMA_CFG_B: 0x00000000
> > [    1.441264] tegra-nand 70008000.nand: FIFO_CTRL: 0x0000aa00  
> 
> Alright, then indeed it's not really worth to bother with HW resetting here.  
> Probably only a kernel module reload or a reboot will help if HW is hung. 
> Maybe NAND controller / chip recovering is something that NAND core should be 
> handling in a such case by providing a nand_controller_reset() hook?
> 

I don't see what the core could do to help with that. We'd end up with
a new hook implemented by the controller that would be called by the
controller driver when it knows it's safe to reset the controller. So,
why bother exposing that in the core?

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ