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-next>] [day] [month] [year] [list]
Date:	Tue, 10 Mar 2015 11:33:24 +0200
From:	Peter Ujfalusi <peter.ujfalusi@...com>
To:	Mark Brown <broonie@...nel.org>
CC:	"linux-kernel@...r.kernel.org" <linux-kernel@...r.kernel.org>
Subject: regmap: how to support devices with 'nested' pages

Hi Mark,

I got a device which registers are arranged in 'books' and pages:

book0
 page0
 page1
 ...
 page127
book1
 page0
 page1
 ...
 page127
...
book255
 page0
 page1
 ...
 page127

The pages can be selected via register0 of each page (in a standard way),
however the book switching can only be done via each book's page0's reg127.

With regmap's ranges I can get the pages covered, but with that I can only
stay within one book.

At power on the chip is at book0, page0.
If I want to access book0, page2:
write 2 to reg0 // to switch to page2
access to the desired register in book0, page2

Now if I want to access let's say book3, page4:
write 0 to reg0 // to switch to page0 of book0
write 3 to reg127 // to switch to book3
write 4 to reg0 // to switch to page4 of book3
access to the desired register

Do you know any other device which have similar addressing? Do you have advice
on how to handle this? Should I open code the book switching in the driver,
which means that I should not use the cache at all in regmap.

Thank you,
Péter
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ