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 for Android: free password hash cracker in your pocket
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <4490a094-0b7d-4361-2c0a-906b2cff6020@pengutronix.de>
Date:   Sun, 27 Sep 2020 21:56:24 +0200
From:   Marc Kleine-Budde <mkl@...gutronix.de>
To:     Joakim Zhang <qiangqing.zhang@....com>,
        "linux-can@...r.kernel.org" <linux-can@...r.kernel.org>
Cc:     dl-linux-imx <linux-imx@....com>,
        "netdev@...r.kernel.org" <netdev@...r.kernel.org>
Subject: Re: [PATCH linux-can-next/flexcan 1/4] can: flexcan: initialize all
 flexcan memory for ECC function

On 9/27/20 10:01 AM, Joakim Zhang wrote:
> [...]
>> Can you create a "static const struct" holding the reg (or offset) + len and loop
>> over it. Something linke this?
>>
>> const struct struct flexcan_ram_init ram_init[] {
>> 	void __iomem *reg;
>> 	u16 len;
>> } = {
>> 	{
>> 		.reg = regs->mb,	/* MB RAM */
>> 		.len = sizeof(regs->mb), / sizeof(u32),
>> 	}, {
>> 		.reg = regs->rximr,	/* RXIMR RAM */
>> 		.len = sizeof(regs->rximr),
>> 	}, {
>> 		...
>> 	},
>> };
> 
> In this version, I only initialize the implemented memory, so that it's a
> several trivial memory slice, reserved memory not initialized. Follow your
> point, I need create a global pointer for struct flexcan_reg, i.e. static
> struct flexcan_regs *reg, so that we can use .reg = regs->mb in ram_init[],
> IMHO, I don't quite want to add this, or is there any better solution to get
> the reg/len value?

One option is not to make it a global variable, but to move it into the
function, then you have the reg pointer available.

> According to below notes and discussed with IP owner before, reserved memory
> also can be initialized. So I want to add two memory regions, and initialize
> them together, this could be more clean. I will send out a V2, please let me
> know which one do you think is better?

If it's OK on all SoCs to initialize the complete RAM area, just do it. Then we
can get rid of the proposed struct at all.

> "CTRL2[WRMFRZ] grants write access to all memory positions that require
> initialization, ranging from 0x080 to 0xADF and from 0xF28 to 0xFFF when the
> CAN FD feature is enabled. The RXMGMASK, RX14MASK, RX15MASK, and RXFGMASK
> registers need to be initialized as well. MCR[RFEN] must not be set during
> memory initialization."

Marc

-- 
Pengutronix e.K.                 | Marc Kleine-Budde           |
Embedded Linux                   | https://www.pengutronix.de  |
Vertretung West/Dortmund         | Phone: +49-231-2826-924     |
Amtsgericht Hildesheim, HRA 2686 | Fax:   +49-5121-206917-5555 |



Download attachment "signature.asc" of type "application/pgp-signature" (489 bytes)

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ