Page MenuHomeFreeBSD

tlb1_init() can be called twice on BookE
ClosedPublic

Authored by int0dster_gmail.com on Aug 23 2016, 4:16 AM.
Referenced Files
Unknown Object (File)
Thu, Nov 7, 2:15 AM
Unknown Object (File)
Wed, Oct 30, 12:17 AM
Unknown Object (File)
Wed, Oct 30, 12:03 AM
Unknown Object (File)
Tue, Oct 29, 11:34 PM
Unknown Object (File)
Tue, Oct 29, 10:30 PM
Unknown Object (File)
Tue, Oct 29, 10:15 PM
Unknown Object (File)
Tue, Oct 29, 6:46 PM
Unknown Object (File)
Tue, Oct 29, 2:08 PM

Details

Summary

There is no need to call tlb1_init() twice. Now it is called first time from booke_init()
and second time from powerpc_init() (where it is under BOOKE switch). Although this does not cause immediate
problems in the mainline kernel, this can lead to undesirable side effects like two TLB entries with the same
VA in the TLB1. Presence of two TLB entries with the same VA can hang CPU.

Test Plan

Add initial mapping for UART to the tlb1_init(), build and boot the kernel, ensure that mapping presents
only once (most convinient way - through Lauterbah or similar hardware debugger)

Diff Detail

Repository
rS FreeBSD src repository - subversion
Lint
Lint Not Applicable
Unit
Tests Not Applicable

Event Timeline

int0dster_gmail.com retitled this revision from to tlb1_init() can be called twice on BookE.
int0dster_gmail.com updated this object.
int0dster_gmail.com edited the test plan for this revision. (Show Details)
int0dster_gmail.com set the repository for this revision to rS FreeBSD src repository - subversion.
int0dster_gmail.com added a project: PowerPC.
jhibbits edited edge metadata.

This was leftovers from when we cached TLB1 entries in an in-memory cache, and needed to call tlb1_init() after the BSS was initialized, to reinitialize the cache.

This revision is now accepted and ready to land.Aug 23 2016, 4:31 AM
This revision was automatically updated to reflect the committed changes.